public Character(string name, ITalentsManager talentsManager) { foreach (Ressource item in Enum.GetValues(typeof(Ressource))) { RacialRessources.Add(item, 0); } Inventaire = new List<string>(); _bonusAspect = new Dictionary<Aspect, int> { {Aspect.Acier, 0}, {Aspect.Arcane, 0}, {Aspect.Eau, 0}, {Aspect.Feu, 0}, {Aspect.Terre, 0}, {Aspect.Vent, 0}, {Aspect.Equilibre, 0}, }; Name = name; _talents = talentsManager.CreateSet(); foreach (var talent in _talents.Values) { talent.LevelChanged += (sender, args) => RecomputePA(); } _aspectPoint = new Dictionary<Aspect, int> { {Aspect.Acier, 30}, {Aspect.Arcane, 30}, {Aspect.Eau, 30}, {Aspect.Feu, 30}, {Aspect.Terre, 30}, {Aspect.Vent, 30}, {Aspect.Equilibre,30}, }; inventory.TrinketChanged += InventoryOnTrinketChanged; ClassChanged += caller => EmptyRessourceStores(); }
public Character( SerializableCharacter serializableCharacter, ITalentsManager manager, IRacesManager racesManager = null, IClassManager classManager = null ) : this(serializableCharacter.Name, manager) { if (racesManager == null) racesManager = RacesManager.Instance; if (classManager == null) classManager = ClassManager.Instance; if (serializableCharacter.Talents != null) { foreach (var item in serializableCharacter.Talents) { try { Talent talent = GetTalent(item.id); if (item.bonus) { talent.Increment(item.level - 1); } else { talent.Increment(item.level); } talent.HaveBonus = item.bonus; talent.SpeLevel = item.speLevel; } catch { continue; } } } _aspectBonus = serializableCharacter.AspectBonus; _aspectMalus = serializableCharacter.AspectMalus; _race = racesManager.GetRace(serializableCharacter.Race); if (serializableCharacter.Classe != null && !serializableCharacter.Classe.Equals("")) classeChar = classManager.getFormName(serializableCharacter.Classe); else classeChar = null; ExperienceAvailable = serializableCharacter.Experience; Inventaire = serializableCharacter.Inventaire; if (_race != null) _bonusAspect = _race.AspectBonus; penPoid = serializableCharacter.penPoid; inventory = serializableCharacter.Inventory ?? new Inventory(); RecomputePA(); }