feat: add experience info helper

This commit is contained in:
k0t9i
2023-01-29 21:46:46 +04:00
parent 8b27c84a9e
commit f8b0b4b894
10 changed files with 460 additions and 53 deletions

View File

@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Client.Domain.Helpers
{
public interface ExperienceHelperInterface
{
ulong GetExperienceToLevel(uint level);
}
}

View File

@@ -30,7 +30,7 @@ namespace Client.Domain.Service
if (entity != null && entities.ContainsKey(entity.Id))
{
factory.Update(entities[entity.Id], content);
OnUpdate(entity);
OnUpdate(entities[entity.Id]);
}
}
else if (operation == MessageOperationEnum.Delete)

View File

@@ -1,5 +1,6 @@
using Client.Domain.Entities;
using Client.Domain.Factories;
using Client.Domain.Helpers;
using Client.Domain.ViewModels;
using System;
using System.Collections.Generic;
@@ -14,17 +15,29 @@ namespace Client.Domain.Service
public override void OnCreate(Hero entity)
{
mainViewModel.CreateHero(entity);
entity.ExperienceInfo.ExpToLevel = experienceHelper.GetExperienceToLevel(entity.ExperienceInfo.Level + 1);
}
public override void OnUpdate(Hero entity)
{
if (entity.ExperienceInfo != null)
{
entity.ExperienceInfo.ExpToLevel = experienceHelper.GetExperienceToLevel(entity.ExperienceInfo.Level + 1);
}
}
public override void OnDelete(Hero entity)
{
mainViewModel.DeleteHero();
}
public HeroHandler(EntityFactoryInterface<Hero> factory, MainViewModelInterface mainViewModel) : base(factory)
public HeroHandler(EntityFactoryInterface<Hero> factory, MainViewModelInterface mainViewModel, ExperienceHelperInterface experienceHelper) : base(factory)
{
this.mainViewModel = mainViewModel;
this.experienceHelper = experienceHelper;
}
private readonly MainViewModelInterface mainViewModel;
private readonly ExperienceHelperInterface experienceHelper;
}
}

View File

@@ -7,16 +7,12 @@ namespace Client.Domain.ValueObjects
private uint level;
private uint exp;
private uint sp;
private ulong expToLevel;
public uint Level { get => level; set { if (value != level) { level = value; OnPropertyChanged("Level"); OnPropertyChanged("ExpToLevel"); } } }
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 uint ExpToLevel {
get
{
return level * 200;
}
}
public ulong ExpToLevel { get => expToLevel; set { if (value != expToLevel) { expToLevel = value; OnPropertyChanged("ExpToLevel"); } } }
public ExperienceInfo(uint level, uint exp, uint sp)
{