コード例 #1
0
        public void HumanTeam_GetInputs_MultiTurnMove()
        {
            var multiMove = (MultiTurnBattleMove)TestMoveFactory.Get(description: "testMultiTurn");

            _humanPlayer1.AddSpecialMove(multiMove);

            _humanTeam = new Team(_menuManager, _humanPlayer1);
            _humanTeam.InitializeForBattle(_enemyTeam, _input, _output);

            _input.Push(new List <string> {
                "fight", "special", multiMove.Description, "1"
            });

            foreach (var move in multiMove.Moves)
            {
                var battleMove = _humanTeam.GetInputs(_enemyTeam)[0];

                Assert.AreEqual(move, battleMove.Move);

                switch (move.TargetType)
                {
                case TargetType.Self:
                    Assert.AreEqual(_humanPlayer1, battleMove.Target);
                    break;

                case TargetType.SingleEnemy:
                    Assert.AreEqual(_enemyTeam.Fighters[0], battleMove.Target);
                    break;
                }
            }
        }
コード例 #2
0
        public void CorrectlyHandles_MultiTurnMoves()
        {
            DoNothingMove firstMove  = new DoNothingMove("foo");
            DoNothingMove secondMove = new DoNothingMove("bar");
            DoNothingMove thirdMove  = new DoNothingMove("baz");

            TestMultiTurnMove multiTurnMove = new TestMultiTurnMove("foo", TargetType.Self, firstMove, secondMove, thirdMove);

            TestEnemyFighter enemy = (TestEnemyFighter)TestFighterFactory.GetFighter(TestFighterType.TestEnemy, 1);

            enemy.SetMove(new DoNothingMove("fwop"));
            _enemyTeam = new Team(TestMenuManager.GetTestMenuManager(), enemy);

            TestHumanFighter human = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1);

            human.AddSpecialMove(multiTurnMove);

            _playerTeam = new Team(_manager, human);

            _manager.InitializeForBattle(_playerTeam, _enemyTeam);

            _input.Push(new List <string> {
                "fight", "special move", "foo", "1"
            });

            List <HumanFighter> inputList = new List <HumanFighter> {
                human
            };
            List <BattleMoveWithTarget> returnedList = _manager.GetInputs(inputList);

            Assert.AreEqual(firstMove, returnedList[0].Move);

            returnedList = _manager.GetInputs(inputList);

            Assert.AreEqual(secondMove, returnedList[0].Move);

            returnedList = _manager.GetInputs(inputList);

            Assert.AreEqual(thirdMove, returnedList[0].Move);
        }