Exemple #1
0
        public override Unit Clone()
        {
            var unitWrapper = new UnitWrapper(this);
            var unitClone   = new PegasusKnight(unitWrapper);

            return(unitClone);
        }
Exemple #2
0
        public override Unit Clone()
        {
            var unitWrapper = new UnitWrapper(this);
            var unitClone   = new Cavalier(unitWrapper);

            return(unitClone);
        }
        public Unit GenerateUnit(UnitWrapper unitWrapper)
        {
            var unitClass = unitWrapper.unitClass;

            try {
                return(wrappedUnitGenerator[unitClass].Invoke(unitWrapper));
            } catch {
                throw new Exception($"Could not find Unit Class {unitClass}");
            }
        }
Exemple #4
0
        public Unit(UnitWrapper unitWrapper)
        {
            mName     = unitWrapper.unitName;
            mType     = unitWrapper.unitType;
            mClass    = unitWrapper.unitClass;
            mMoveType = unitWrapper.unitMoveType;

            mMaxHealthPoints     = new Stat(unitWrapper.unitMaxHealthPoints);
            mCurrentHealthPoints = mMaxHealthPoints.Value;
            mStrength            = new Stat(unitWrapper.unitStrength);
            mMagic      = new Stat(unitWrapper.unitMagic);
            mDefense    = new Stat(unitWrapper.unitDefense);
            mResistance = new Stat(unitWrapper.unitResistance);
            mSpeed      = new Stat(unitWrapper.unitSpeed);
            mSkill      = new Stat(unitWrapper.unitSkill);
            mLuck       = new Stat(unitWrapper.unitLuck);
            mMovement   = new Stat(unitWrapper.unitMovement);

            mLevel            = unitWrapper.unitLevel;
            mExperiencePoints = unitWrapper.unitExperiencePoints;

            // TODO: Re-add weapon using WeaponFactory
            var weaponName = unitWrapper.unitWeapon;

            // No need to call equip since modifier is already applied
            mMainWeapon = WeaponFactory.instance.GenerateWeapon(weaponName);

            mUnitEffects = new HashSet <UnitEffect>();

            mSkills = new List <Skill>();

            var skillNames = unitWrapper.unitSkills;

            foreach (var skillName in skillNames)
            {
                var skill = SkillFactory.instance.GenerateSkill(skillName);
                mSkills.Add(skill);
            }

            mConsumableItems = new ConsumableItem[CONSUMABLE_ITEM_LIMIT];

            var itemNames = unitWrapper.unitItems;

            foreach (var itemName in itemNames)
            {
                var item = ItemFactory.instance.GenerateItem(itemName);
                EquipItem(item);
            }
            mLevelToSkills = new Dictionary <int, List <Skill> >();
        }
Exemple #5
0
 public override Unit Generate(UnitWrapper unitWrapper)
 {
     return(new Cavalier(unitWrapper));
 }
Exemple #6
0
 public Cavalier(UnitWrapper unitWrapper) : base(unitWrapper)
 {
     InitGrowthRates();
 }
 public override Unit Generate(UnitWrapper unitWrapper)
 {
     return(new Thief(unitWrapper));
 }
 public Thief(UnitWrapper unitWrapper) : base(unitWrapper)
 {
     InitGrowthRates();
     InitLevelToSkills();
 }
Exemple #9
0
 public override Unit Generate(UnitWrapper unitWrapper)
 {
     return(new Cleric(unitWrapper));
 }
 public ArmoredUnit(UnitWrapper unitWrapper) : base(unitWrapper)
 {
 }
Exemple #11
0
 public PegasusKnight(UnitWrapper unitWrapper) : base(unitWrapper)
 {
     InitGrowthRates();
 }
Exemple #12
0
 public Mage(UnitWrapper unitWrapper) : base(unitWrapper)
 {
     InitGrowthRates();
 }
 public FlyingUnit(UnitWrapper unitWrapper) : base(unitWrapper)
 {
 }
 public override Unit Generate(UnitWrapper unitWrapper)
 {
     return(new Archer(unitWrapper));
 }
 public Archer(UnitWrapper wrapper) : base(wrapper)
 {
     InitGrowthRates();
     InitLevelToSkills();
 }
Exemple #16
0
 public abstract Unit Generate(UnitWrapper unitWrapper);
 public override Unit Generate(UnitWrapper unitWrapper)
 {
     return(new Knight(unitWrapper));
 }
Exemple #18
0
 public InfantryUnit(UnitWrapper unitWrapper) : base(unitWrapper)
 {
 }
 public CavalryUnit(UnitWrapper unitWrapper) : base(unitWrapper)
 {
 }