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!"); } }
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); }
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)) { }
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; }
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; }
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; }
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); }
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; }
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>(); }