public void BlindnessStatusCorrectlyPrintsMessage([Values(1, 3)] int statusDuration) { StatusMove blindnessMove = new StatusMove("foo", TargetType.SingleEnemy, new BlindStatus(statusDuration)); _humanFighter.SetMove(blindnessMove, 1); _chanceService.PushEventOccurs(true); _humanFighter.SetMoveTarget(_enemy); _humanFighter.SetMove(_runawayMove); _enemy.SetMove(_doNothing); SilentBattleConfiguration config = new SilentBattleConfiguration(); //act _battleManager.Battle(_humanTeam, _enemyTeam, config: config); MockOutputMessage[] outputs = _output.GetOutputs(); Assert.AreEqual(1, outputs.Length); MockOutputMessage output = outputs[0]; string turnOrTurns = statusDuration == 1 ? "turn" : "turns"; string expectedMessage = $"{_enemy.DisplayName} has been afflicted with blindness for {statusDuration} {turnOrTurns}!\n"; Assert.AreEqual(expectedMessage, output.Message); }
public void StatusMove_AppropriatelyChecksAccuracy([Values(10, 25, 50, 90)] int accuracy) { //Arrange Status status = new BlindStatus(2); StatusMove move = new StatusMove("foo", TargetType.SingleEnemy, status, accuracy: accuracy); _team1Fighter.SetMove(move, 1); _team1Fighter.SetMoveTarget(_team2Fighter); _team1Fighter.SetMove(_runawayMove); _team2Fighter.SetMove(_doNothingMove); _chanceService.PushEventOccurs(false); BattleManagerBattleConfiguration config = new SilentBattleConfiguration(); //Act _battleManager.Battle(_team1, _team2, config: config); //Assert Assert.Null(_team2Fighter.Statuses.FirstOrDefault(s => s.AreEqual(status))); double expectedChance = accuracy / 100.0; Assert.AreEqual(expectedChance, _chanceService.LastChanceVals[0]); }
public void BattleManager_CorrectlyPrintsShadeAbsorbMoveExecutionText() { //arrange ShadeAbsorbingMove absorbingMove = _shade1.GetExecutableMoves(_humanTeam).FirstOrDefault(m => m is ShadeAbsorbingMove) as ShadeAbsorbingMove; _humanFighter.SetMove(_doNothingMove, 1); _humanFighter.SetMove(_runawayMove); _chanceService.PushWhichEventsOccur(_absorptionMoveIndex, 0, _malevolenceChargeIndex, _malevolenceChargeIndex); _chanceService.PushWhichEventsOccur(_malevolenceChargeIndex, _malevolenceChargeIndex); SilentBattleConfiguration config = new SilentBattleConfiguration(); //set up the output message now, before the display name chanegs from the absorption string expectedOutputMessage = $"{_shade1.DisplayName} {absorbingMove?.ExecutionText.Replace(Globals.TargetReplaceText, _shade2.DisplayName)}\n"; //act _battleManager.Battle(_humanTeam, _shadeTeam, config: config); MockOutputMessage output = _output.GetOutputs()[0]; Assert.AreEqual(expectedOutputMessage, output.Message); }