feat: add view models for all entities
This commit is contained in:
124
Client/Application/ViewModels/HeroSummaryInfoViewModel.cs
Normal file
124
Client/Application/ViewModels/HeroSummaryInfoViewModel.cs
Normal file
@ -0,0 +1,124 @@
|
||||
using Client.Domain.Common;
|
||||
using Client.Domain.Entities;
|
||||
using Client.Domain.ValueObjects;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Client.Application.ViewModels
|
||||
{
|
||||
public class HeroSummaryInfoViewModel : NotifyPropertyChanged
|
||||
{
|
||||
public string Fullname
|
||||
{
|
||||
get
|
||||
{
|
||||
return hero.FullName.Nickname;
|
||||
}
|
||||
}
|
||||
public string Race
|
||||
{
|
||||
get
|
||||
{
|
||||
//toto race string
|
||||
return hero.Phenotype.Race.ToString();
|
||||
}
|
||||
}
|
||||
public string Class
|
||||
{
|
||||
get
|
||||
{
|
||||
//todo class string
|
||||
return hero.Phenotype.Class.ToString();
|
||||
}
|
||||
}
|
||||
public string Level
|
||||
{
|
||||
get
|
||||
{
|
||||
return hero.ExperienceInfo.Level.ToString();
|
||||
}
|
||||
}
|
||||
public Vector3 Position
|
||||
{
|
||||
get
|
||||
{
|
||||
return hero.Transform.Position;
|
||||
}
|
||||
}
|
||||
public ExperienceInfo Experience
|
||||
{
|
||||
get
|
||||
{
|
||||
return hero.ExperienceInfo;
|
||||
}
|
||||
}
|
||||
public HeroSummaryInfoViewModel(Hero hero)
|
||||
{
|
||||
this.hero = hero;
|
||||
|
||||
hero.FullName.PropertyChanged += FullName_PropertyChanged;
|
||||
hero.Phenotype.PropertyChanged += Phenotype_PropertyChanged;
|
||||
hero.ExperienceInfo.PropertyChanged += ExperienceInfo_PropertyChanged;
|
||||
hero.Transform.Position.PropertyChanged += Position_PropertyChanged;
|
||||
}
|
||||
|
||||
private void Position_PropertyChanged(object? sender, System.ComponentModel.PropertyChangedEventArgs e)
|
||||
{
|
||||
OnPropertyChanged("Position");
|
||||
}
|
||||
|
||||
private void Phenotype_PropertyChanged(object? sender, System.ComponentModel.PropertyChangedEventArgs e)
|
||||
{
|
||||
if (e.PropertyName == "Class")
|
||||
{
|
||||
OnPropertyChanged("Class");
|
||||
}
|
||||
if (e.PropertyName == "Race")
|
||||
{
|
||||
OnPropertyChanged("Race");
|
||||
}
|
||||
}
|
||||
|
||||
private void ExperienceInfo_PropertyChanged(object? sender, System.ComponentModel.PropertyChangedEventArgs e)
|
||||
{
|
||||
if (e.PropertyName == "Level")
|
||||
{
|
||||
OnPropertyChanged("Level");
|
||||
}
|
||||
if (e.PropertyName == "Exp" || e.PropertyName == "ExpToLevel")
|
||||
{
|
||||
OnPropertyChanged("Experience");
|
||||
}
|
||||
}
|
||||
|
||||
private void FullName_PropertyChanged(object? sender, System.ComponentModel.PropertyChangedEventArgs e)
|
||||
{
|
||||
if (e.PropertyName == "Nickname")
|
||||
{
|
||||
OnPropertyChanged("Fullname");
|
||||
}
|
||||
}
|
||||
|
||||
private void Hero_PropertyChanged(object? sender, System.ComponentModel.PropertyChangedEventArgs e)
|
||||
{
|
||||
if (e.PropertyName == "Fullname")
|
||||
{
|
||||
OnPropertyChanged("Fullname");
|
||||
}
|
||||
if (e.PropertyName == "Phenotype")
|
||||
{
|
||||
OnPropertyChanged("Class");
|
||||
OnPropertyChanged("Race");
|
||||
}
|
||||
if (e.PropertyName == "ExperienceInfo")
|
||||
{
|
||||
OnPropertyChanged("Level");
|
||||
}
|
||||
}
|
||||
|
||||
private readonly Hero hero;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user