예제 #1
0
        public void Fight_NextTurn_ShouldReturnATurnWithActions()
        {
            // Arrange
            var player = new Player("name", 100);
            var dummy  = new Dummy("name", 100);
            var weapon = new Weapon("weapon", 10, 20, EffectType.Blunt);
            var team1  = new List <Entity>()
            {
                player
            };
            var team2 = new List <Entity>()
            {
                dummy
            };
            var fight        = new Fight(team1, team2);
            var playerAction = new OffensiveAction(player, team2, weapon); // Player choice (target(s) and actionable)

            // Act
            var turn = fight.NextTurn(playerAction); // Just call next turn

            // Assert
            Assert.NotNull(turn, "Turn should not be null");
            Assert.True(turn.Actions.Contains(playerAction), "Turn actions should contain player action");
            Assert.AreEqual(2, turn.Actions.Count, "There should be 2 actions");
        }
예제 #2
0
        public void Fight_WhenAllActionsArePerformed_CurrentTurnIsOver()
        {
            // Arrange
            var player = new Player("name", 100);
            var dummy  = new Dummy("name", 100);
            var weapon = new Weapon("weapon", 10, 20, EffectType.Blunt);
            var team1  = new List <Entity>()
            {
                player
            };
            var team2 = new List <Entity>()
            {
                dummy
            };
            var fight        = new Fight(team1, team2);
            var playerAction = new OffensiveAction(player, team2, weapon); // Player choice (target(s) and actionable)

            // Act
            var turn = fight.NextTurn(playerAction);

            turn.PerformNextAction();
            turn.PerformNextAction();

            // Assert
            Assert.True(fight.CurrentTurnIsOver(), "Current turn should be over");
        }
예제 #3
0
        public void NextAction_ShouldPerformAction()
        {
            // Arrange
            var player = new Player("name", 100);
            var dummy  = new Dummy("name", 100);
            var weapon = new Weapon("weapon", 10, 20, EffectType.Blunt);
            var team1  = new List <Entity> {
                player
            };
            var team2 = new List <Entity> {
                dummy
            };
            var fight        = new Fight(team1, team2);
            var playerAction = new OffensiveAction(player, team2, weapon); // Player choice (target(s) and actionable)

            // Act
            var turn = fight.NextTurn(playerAction);

            turn.PerformNextAction();
            turn.PerformNextAction();

            // Assert
            Assert.Greater(playerAction.Damages, weapon.MinPower);
            Assert.Less(player.Health, player.MaxHealth);
            Assert.Less(dummy.Health, dummy.MaxHealth);
        }