public void WarriorClass_Level3_CorrectlySetsUpSelectMove_AttackBoost() { _chanceService.PushWhichEventOccurs(0); int attackIndex, evadeIndex, evadeAndCounterIndex, attackBoostIndex; GetLevel3MoveIndices(out attackIndex, out evadeIndex, out evadeAndCounterIndex, out attackBoostIndex); List <BattleMove> availableMoves = _level3Warrior.AvailableMoves; StatusMove attackBoostMove = availableMoves[attackBoostIndex] as StatusMove ?? new StatusMove("", TargetType.Self, null); _level3Warrior.AddStatus(attackBoostMove.Status); _level3Warrior.SelectMove(_warriorTeam, _humanTeam); double[] chances = _chanceService.LastEventOccursArgs; Assert.AreEqual(0.65, chances[attackIndex]); Assert.AreEqual(0.15, chances[evadeIndex]); Assert.AreEqual(0.10, chances[evadeAndCounterIndex]); Assert.AreEqual(0.10, chances[attackBoostIndex]); }
public void WarriorClass_Level1_CorrectlySetsUpSelectMove_WarriorHasAttackBoostStatus() { _chanceService.PushWhichEventOccurs(0); List <BattleMove> availableMoves = _level1Warrior.AvailableMoves; int attackIndex = availableMoves.FindIndex(bm => bm.MoveType == BattleMoveType.Attack); int evadeIndex = availableMoves.FindIndex(bm => bm.MoveType == BattleMoveType.Status && (bm as StatusMove)?.Status is AutoEvadeStatus); int attackBoostIndex = availableMoves.FindIndex(bm => bm.MoveType == BattleMoveType.Status && (bm as StatusMove)?.Status is StatMultiplierStatus); StatusMove attackBoostMove = availableMoves[attackBoostIndex] as StatusMove ?? new StatusMove("", TargetType.Self, null); _level1Warrior.AddStatus(attackBoostMove.Status); _level1Warrior.SelectMove(_warriorTeam, _humanTeam); double[] chances = _chanceService.LastEventOccursArgs; double oneSixth = 1.0 / 6; Assert.AreEqual(2.0 / 3, chances[attackIndex]); Assert.AreEqual(oneSixth, chances[evadeIndex]); Assert.AreEqual(oneSixth, chances[attackBoostIndex]); }