Example #1
0
 public DancerBoss(FighterClass fighterClass, int level, IChanceService chanceService)
     : base("",
            level,
            LevelUpManager.GetHealthByLevel <DancerBoss>(level, fighterClass),
            LevelUpManager.GetManaByLevel <DancerBoss>(level, fighterClass),
            LevelUpManager.GetStrengthByLevel <DancerBoss>(level, fighterClass),
            LevelUpManager.GetDefenseByLevel <DancerBoss>(level, fighterClass),
            LevelUpManager.GetSpeedByLevel <DancerBoss>(level, fighterClass),
            LevelUpManager.GetEvadeByLevel <DancerBoss>(level, fighterClass),
            LevelUpManager.GetLuckByLevel <DancerBoss>(level, fighterClass),
            chanceService,
            SpellFactory.GetSpellsByLevel <DancerBoss>(level, fighterClass: fighterClass)
            , MoveFactory.GetMovesByLevel <DancerBoss>(level, fighterClass: fighterClass))
 {
     if (fighterClass == FighterClass.BossDancerKiki)
     {
         BaseName = "Kiki";
     }
     else if (fighterClass == FighterClass.BossDancerRiki)
     {
         BaseName = "Riki";
     }
     else
     {
         throw new ArgumentOutOfRangeException(nameof(fighterClass), "DancerBoss class can only be initialized with Kiki or Riki fighter class!");
     }
 }
Example #2
0
        public HumanFighter(string name, int level, List <Spell> spells = null, List <SpecialMove> specialMoves = null)
            : base(name
                   , level
                   , LevelUpManager.GetHealthByLevel(level)
                   , LevelUpManager.GetManaByLevel(level)
                   , LevelUpManager.GetStrengthByLevel(level)
                   , LevelUpManager.GetDefenseByLevel(level)
                   , LevelUpManager.GetSpeedByLevel(level)
                   , LevelUpManager.GetEvadeByLevel(level)
                   , LevelUpManager.GetLuckByLevel(level)
                   , SpellFactory.GetSpellsByLevel <HumanFighter>(level)
                   , MoveFactory.GetMovesByLevel <HumanFighter>(level)
                   )
        {
            if (spells != null)
            {
                Spells.AddRange(spells);
            }

            if (specialMoves != null)
            {
                SpecialMoves.AddRange(specialMoves);
            }

            _extraSpecialMoves = new List <BattleMove>();
            CurrentExp         = LevelUpManager.GetExpForLevel(level);
            _expToNextLevel    = LevelUpManager.GetExpForLevel(level + 1);
        }
Example #3
0
 public Ogre(int level, IChanceService chanceService)
     : base("Ogre",
            level,
            LevelUpManager.GetHealthByLevel <Ogre>(level),
            LevelUpManager.GetManaByLevel <Ogre>(level),
            LevelUpManager.GetStrengthByLevel <Ogre>(level),
            LevelUpManager.GetDefenseByLevel <Ogre>(level),
            LevelUpManager.GetSpeedByLevel <Ogre>(level),
            LevelUpManager.GetEvadeByLevel <Ogre>(level),
            LevelUpManager.GetLuckByLevel <Ogre>(level),
            chanceService,
            SpellFactory.GetSpellsByLevel <Ogre>(level)
            , MoveFactory.GetMovesByLevel <Ogre>(level))
 {
 }
Example #4
0
 public Barbarian(int level, IChanceService chanceService, string name = null) :
     base(name ?? "Barbarian"
          , level
          , LevelUpManager.GetHealthByLevel <Barbarian>(level)
          , LevelUpManager.GetManaByLevel <Barbarian>(level)
          , LevelUpManager.GetStrengthByLevel <Barbarian>(level)
          , LevelUpManager.GetDefenseByLevel <Barbarian>(level)
          , LevelUpManager.GetSpeedByLevel <Barbarian>(level)
          , LevelUpManager.GetEvadeByLevel <Barbarian>(level)
          , LevelUpManager.GetLuckByLevel <Barbarian>(level)
          , chanceService
          , SpellFactory.GetSpellsByLevel <Barbarian>(level)
          , MoveFactory.GetMovesByLevel <Barbarian>(level))
 {
     _shieldBusterFails = 0;
 }
Example #5
0
 public Zombie(int level, IChanceService chanceService)
     : base("Zombie",
            level,
            LevelUpManager.GetHealthByLevel <Zombie>(level),
            LevelUpManager.GetManaByLevel <Zombie>(level),
            LevelUpManager.GetStrengthByLevel <Zombie>(level),
            LevelUpManager.GetDefenseByLevel <Zombie>(level),
            LevelUpManager.GetSpeedByLevel <Zombie>(level),
            LevelUpManager.GetEvadeByLevel <Zombie>(level),
            LevelUpManager.GetLuckByLevel <Zombie>(level),
            chanceService,
            SpellFactory.GetSpellsByLevel <Zombie>(level)
            , MoveFactory.GetMovesByLevel <Zombie>(level))
 {
     ReviveCounter = 0;
     Killed        = _setReviveCounter;
     TurnEnded    += _turnEnded;
 }
Example #6
0
 public ShieldGuy(int level, IChanceService chanceService, string name = null) :
     base(name ?? "Shield Guy"
          , level
          , LevelUpManager.GetHealthByLevel <ShieldGuy>(level)
          , LevelUpManager.GetManaByLevel <ShieldGuy>(level)
          , LevelUpManager.GetStrengthByLevel <ShieldGuy>(level)
          , LevelUpManager.GetDefenseByLevel <ShieldGuy>(level)
          , LevelUpManager.GetSpeedByLevel <ShieldGuy>(level)
          , LevelUpManager.GetEvadeByLevel <ShieldGuy>(level)
          , LevelUpManager.GetLuckByLevel <ShieldGuy>(level)
          , chanceService
          , SpellFactory.GetSpellsByLevel <ShieldGuy>(level)
          , MoveFactory.GetMovesByLevel <ShieldGuy>(level))
 {
     _basicAttack    = AvailableMoves.FirstOrDefault(bm => bm.MoveType == BattleMoveType.Attack);
     _ironShieldMove = AvailableMoves.FirstOrDefault(bm => bm is ShieldMove) as ShieldMove;
     _healShield     = AvailableMoves.FirstOrDefault(bm => bm is ShieldFortifyingMove && ((ShieldFortifyingMove)bm).FortifyingType == ShieldFortifyingType.Health) as ShieldFortifyingMove;
     _fortifyShield  = AvailableMoves.FirstOrDefault(bm => bm is ShieldFortifyingMove && ((ShieldFortifyingMove)bm).FortifyingType == ShieldFortifyingType.Defense) as ShieldFortifyingMove;
 }
Example #7
0
        public Shade(int level, IChanceService chanceService, int shadeExperience)
            : base("Shade",
                   level,
                   LevelUpManager.GetHealthByLevel <Shade>(level),
                   LevelUpManager.GetManaByLevel <Shade>(level),
                   LevelUpManager.GetStrengthByLevel <Shade>(level),
                   LevelUpManager.GetDefenseByLevel <Shade>(level),
                   LevelUpManager.GetSpeedByLevel <Shade>(level),
                   LevelUpManager.GetEvadeByLevel <Shade>(level),
                   LevelUpManager.GetLuckByLevel <Shade>(level),
                   chanceService,
                   SpellFactory.GetSpellsByLevel <Shade>(level)
                   , MoveFactory.GetMovesByLevel <Shade>(level))
        {
            ShadeExperience     = shadeExperience;
            _malevolenceCounter = 0;

            _chargeMove            = AvailableMoves.FirstOrDefault(bm => bm.MoveType == BattleMoveType.Special);
            _malevolenceAttackMove = AvailableMoves.FirstOrDefault(bm => bm.MoveType == BattleMoveType.ConditionalPowerAttack);
        }
Example #8
0
        public Warrior(int level, IChanceService chanceService, string name = null) :
            base(name ?? "Warrior"
                 , level
                 , LevelUpManager.GetHealthByLevel <Warrior>(level)
                 , LevelUpManager.GetManaByLevel <Warrior>(level)
                 , LevelUpManager.GetStrengthByLevel <Warrior>(level)
                 , LevelUpManager.GetDefenseByLevel <Warrior>(level)
                 , LevelUpManager.GetSpeedByLevel <Warrior>(level)
                 , LevelUpManager.GetEvadeByLevel <Warrior>(level)
                 , LevelUpManager.GetLuckByLevel <Warrior>(level)
                 , chanceService
                 , SpellFactory.GetSpellsByLevel <Warrior>(level)
                 , MoveFactory.GetMovesByLevel <Warrior>(level))
        {
            _attackIndex          = AvailableMoves.FindIndex(bm => bm.MoveType == BattleMoveType.Attack);
            _evadeIndex           = AvailableMoves.FindIndex(bm => bm.MoveType == BattleMoveType.Status && (bm as StatusMove)?.Status is AutoEvadeStatus && !((AutoEvadeStatus)((StatusMove)bm).Status).ShouldCounterAttack);
            _evadeAndCounterIndex = AvailableMoves.FindIndex(bm => bm.MoveType == BattleMoveType.Status && (bm as StatusMove)?.Status is AutoEvadeStatus && ((AutoEvadeStatus)((StatusMove)bm).Status).ShouldCounterAttack);
            _attackBoostIndex     = AvailableMoves.FindIndex(bm => bm.MoveType == BattleMoveType.Status && (bm as StatusMove)?.Status is StatMultiplierStatus);

            _attackBoostMove = AvailableMoves[_attackBoostIndex] as StatusMove;
        }
Example #9
0
        public MegaChicken(int level, IChanceService chanceService)
            : base("Mega Chicken",
                   level,
                   LevelUpManager.GetHealthByLevel <MegaChicken>(level),
                   LevelUpManager.GetManaByLevel <MegaChicken>(level),
                   LevelUpManager.GetStrengthByLevel <MegaChicken>(level),
                   LevelUpManager.GetDefenseByLevel <MegaChicken>(level),
                   LevelUpManager.GetSpeedByLevel <MegaChicken>(level),
                   LevelUpManager.GetEvadeByLevel <MegaChicken>(level),
                   LevelUpManager.GetLuckByLevel <MegaChicken>(level),
                   chanceService,
                   SpellFactory.GetSpellsByLevel <MegaChicken>(level)
                   , MoveFactory.GetMovesByLevel <MegaChicken>(level))
        {
            MagicStrength = 3;

            ExpGivenOnDefeat = 20 + level * 5;

            _layEgg   = new SpecialMove("lay egg", BattleMoveType.Special, TargetType.Self, null);
            _lay2Eggs = new SpecialMove("lay 2 eggs", BattleMoveType.Special, TargetType.Self, null);
            _castEggs = new SpecialMove("cast eggs", BattleMoveType.Special, TargetType.Self, null);
            _eggs     = new List <Egg>();
        }