public void AutoEvadeStatus_DoesNotEvadeMagic() { _humanFighter.AddStatus(_evadeButDoNotCounterStatus); _humanFighter.SetMove(_doNothing); Spell fireball = new Spell("fire", MagicType.Fire, SpellType.Attack, TargetType.SingleEnemy, 0, 1); _enemy.AddSpell(fireball); _enemy.SetMove(fireball); _battleManager.Battle(_humanTeam, _enemyTeam); Assert.AreEqual(0, _humanFighter.CurrentHealth); }
public void DoesNotCounter_MagicAttacks() { Spell fireball = new Spell("fire", MagicType.Fire, SpellType.Attack, TargetType.SingleEnemy, 0, 1); _humanFighter.AddStatus(_status); _humanFighter.SetHealth(_enemy.MagicStrength + fireball.Power + 1); _humanFighter.SetMove(_doNothing, 1); _humanFighter.SetMove(_runawayMove); _enemy.AddSpell(fireball); _enemy.SetMove(fireball); _battleManager.Battle(_humanTeam, _enemyTeam); Assert.AreEqual(1, _humanFighter.CurrentHealth); Assert.AreEqual(_enemy.MaxHealth, _enemy.CurrentHealth); }
public void BattleManager_CorrectlyCalculatesMagicalDamageForShield([Values(MagicType.Fire, MagicType.Ice)] MagicType spellMagicType) { int shieldResistance = 10; IronBattleShield shield = new IronBattleShield((shieldResistance * 2) + 1, 0, shieldResistance); _humanPlayer1.SetBattleShield(shield); _logger.SubscribeAll(_humanPlayer1.BattleShield); _humanPlayer1.SetMagicResistance(shieldResistance); _humanPlayer1.SetStrength(_enemyPlayer1.MaxHealth + _enemyPlayer1.Defense); _humanPlayer1.SetMove(_basicAttackMove); _humanPlayer1.SetMoveTarget(_enemyPlayer1); _enemyPlayer1.SetSpeed(1); _enemyPlayer1.SetMagicStrength(shieldResistance * 2); Spell spell = new Spell("foo", spellMagicType, SpellType.Attack, TargetType.SingleEnemy, 0, 0); _enemyPlayer1.AddSpell(spell); _enemyPlayer1.SetMove(spell); _chanceService.PushEventsOccur(true, false); //attack hits, not misses _humanTeam = new Team(_menuManager, _humanPlayer1); _enemyTeam = new Team(_menuManager, _enemyPlayer1); _battleManager.Battle(_humanTeam, _enemyTeam); List <EventLog> logs = _logger.Logs; Assert.AreEqual(1, logs.Count); MagicalDamageTakenEventArgs e = logs[0].E as MagicalDamageTakenEventArgs; Assert.NotNull(e); Assert.AreEqual(shieldResistance, e.Damage); Assert.AreEqual(spellMagicType, e.MagicType); }