public override void Deserialize(GenericReader reader) { Metaskills = new Dictionary <MetaSkillType, BaseMetaSkill>(); base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 0: { _Stage = reader.ReadInt(); _EvolutionPoints = reader.ReadInt(); NextEvolution = reader.ReadInt(); MaxStage = reader.ReadInt(); MaxAbilities = reader.ReadInt(); CurrentAbilities = reader.ReadInt(); Metaskills = reader.ReadDictionary( () => { var c = (MetaSkillType)reader.ReadInt(); var s = new BaseMetaSkill(reader); return(new KeyValuePair <MetaSkillType, BaseMetaSkill>(c, s)); }); } break; } }
public virtual void DoAbility(MetaSkillType skill, BaseCreature target) { if (Metaskills != null && Metaskills.ContainsKey(skill)) { BaseMetaSkill metaskill = Metaskills[skill]; metaskill.FindAbility(target, this); } }