fix: fix calculation of exp percentage
This commit is contained in:
parent
a8adf23959
commit
905b189bf2
@ -90,7 +90,7 @@ namespace Client.Application.ViewModels
|
||||
|
||||
private void ExperienceInfo_PropertyChanged(object? sender, System.ComponentModel.PropertyChangedEventArgs e)
|
||||
{
|
||||
if (e.PropertyName == "Exp" || e.PropertyName == "ExpToLevel" || e.PropertyName == "Level")
|
||||
if (e.PropertyName == "Exp" || e.PropertyName == "ExpToLevel" || e.PropertyName == "ExpToPrevLevel" || e.PropertyName == "Level")
|
||||
{
|
||||
OnPropertyChanged("Experience");
|
||||
}
|
||||
|
@ -16,6 +16,7 @@ namespace Client.Domain.Service
|
||||
{
|
||||
mainViewModel.CreateHero(entity);
|
||||
entity.ExperienceInfo.ExpToLevel = experienceHelper.GetExperienceToLevel(entity.ExperienceInfo.Level + 1);
|
||||
entity.ExperienceInfo.ExpToPrevLevel = experienceHelper.GetExperienceToLevel(entity.ExperienceInfo.Level);
|
||||
}
|
||||
|
||||
public override void OnUpdate(Hero entity)
|
||||
@ -23,6 +24,7 @@ namespace Client.Domain.Service
|
||||
if (entity.ExperienceInfo != null)
|
||||
{
|
||||
entity.ExperienceInfo.ExpToLevel = experienceHelper.GetExperienceToLevel(entity.ExperienceInfo.Level + 1);
|
||||
entity.ExperienceInfo.ExpToPrevLevel = experienceHelper.GetExperienceToLevel(entity.ExperienceInfo.Level);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -8,16 +8,18 @@ namespace Client.Domain.ValueObjects
|
||||
private uint exp;
|
||||
private uint sp;
|
||||
private ulong expToLevel;
|
||||
private ulong expPrevToLevel;
|
||||
|
||||
public uint Level { get => level; set { if (value != level) { level = value; OnPropertyChanged("Level"); } } }
|
||||
public uint Exp { get => exp; set { if (value != exp) { exp = value; OnPropertyChanged("Exp"); } } }
|
||||
public uint Sp { get => sp; set { if (value != sp) { sp = value; OnPropertyChanged("Sp"); } } }
|
||||
public ulong ExpToLevel { get => expToLevel; set { if (value != expToLevel) { expToLevel = value; OnPropertyChanged("ExpToLevel"); } } }
|
||||
public ulong ExpToPrevLevel { get => expPrevToLevel; set { if (value != expPrevToLevel) { expPrevToLevel = value; OnPropertyChanged("ExpToPrevLevel"); } } }
|
||||
public double ExpPercent
|
||||
{
|
||||
get
|
||||
{
|
||||
return ExpToLevel != 0 ? Exp / (double) ExpToLevel * 100 : 0;
|
||||
return ExpToLevel != 0 ? (Exp - ExpToPrevLevel) / (double) (ExpToLevel - ExpToPrevLevel) * 100 : 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user