예제 #1
0
        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;
            }
        }
예제 #2
0
 public virtual void DoAbility(MetaSkillType skill, BaseCreature target)
 {
     if (Metaskills != null && Metaskills.ContainsKey(skill))
     {
         BaseMetaSkill metaskill = Metaskills[skill];
         metaskill.FindAbility(target, this);
     }
 }