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; } } }
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); }