Beispiel #1
0
        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);
        }
Beispiel #2
0
        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]);
        }
Beispiel #3
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);
        }