public void TestHeldUpCannotMarkTwice() { RobotAi ai = new MockRobotAi(); ai.State = RobotAiState.HeldUp; ai.HasHeldUpDemandBeenMade = true; Assert.False(ai.Can(RobotAiState.HeldUpDemandMarkEnemies)); Assert.False(ai.Can(RobotAiState.HeldUpDemandMarkAmmo)); }
public void TestStartingStateCanMoveTo() { RobotAi ai = new MockRobotAi(); ai.State = RobotAiState.Start; // Cannot go back to start Assert.False(ai.Can(RobotAiState.Start)); Assert.True(ai.Can(RobotAiState.Inactive)); Assert.True(ai.Can(RobotAiState.Patrol)); }
public void TestSearchingLookAroundShouldFollowUpPlayerPositionIfSeenPlayer() { RobotAi ai = new MockRobotAi(); MockRobot robot = (MockRobot)ai.Robot; ai.PlayerLocations.Add(new PlayerLocation(DateTime.Now, new MockLocation(), true, true)); ai.State = RobotAiState.SearchingLookAroundPointOfInterest; ai.TimeMarker = DateTime.Now - TimeSpan.FromMinutes(10); Assert.True(ai.Can(RobotAiState.SearchingFollowUpPlayerLastSeen)); Assert.False(ai.Can(RobotAiState.SearchingFollowUpPointOfInterest)); }
public void TestHeldUpSubStatesCanMoveToHeldUp() { RobotAi ai = new MockRobotAi(); ai.HasHeldUpDemandBeenMade = false; ai.State = RobotAiState.HeldUpRefuse; Assert.True(ai.Can(RobotAiState.HeldUp)); ai.State = RobotAiState.HeldUpDemandMarkAmmo; Assert.True(ai.Can(RobotAiState.HeldUp)); ai.State = RobotAiState.HeldUpDemandMarkEnemies; Assert.True(ai.Can(RobotAiState.HeldUp)); }
public void TestAlertAttackCanMoveToAlertRepositionAfter1To3Bursts() { RobotAi ai = new MockRobotAi(); ai.State = RobotAiState.AlertAttack; ai.BurstsFired = 1; Assert.False(ai.Can(RobotAiState.AlertReposition)); ai.BurstsFired = 2; Assert.False(ai.Can(RobotAiState.AlertReposition)); ai.BurstsFired = 3; Assert.True(ai.Can(RobotAiState.AlertReposition)); }
public void TestSearchingCanMoveToFollowUpPointOfInterest() { RobotAi ai = new MockRobotAi(); ai.State = RobotAiState.Searching; Assert.True(ai.Can(RobotAiState.SearchingFollowUpPointOfInterest)); }
public void TestDisabledCannotMoveToHeldUp() { RobotAi ai = new MockRobotAi(); ai.State = RobotAiState.Disabled; Assert.False(ai.Can(RobotAiState.HeldUp)); }
public void TestInactiveCannotMoveToHeldUp() { RobotAi ai = new MockRobotAi(); ai.State = RobotAiState.Inactive; Assert.False(ai.Can(RobotAiState.HeldUp)); }
public void TestAlertCannotMoveToHeldUp() { RobotAi ai = new MockRobotAi(); ai.State = RobotAiState.Alert; Assert.False(ai.Can(RobotAiState.HeldUp)); }
public void TestInactiveCanMoveToPatrol() { RobotAi ai = new MockRobotAi(); ai.State = RobotAiState.Inactive; Assert.True(ai.Can(RobotAiState.Patrol)); }
public void TestSuspicionCallHeadQuartersCanMoveToSearching() { RobotAi ai = new MockRobotAi(); ai.State = RobotAiState.SuspicionCallHeadQuarters; Assert.True(ai.Can(RobotAiState.Searching)); }
public void TestAlertAttackAndAlertRepositionLostSightOfPlayerCanMoveToFollowUp() { RobotAi ai = new MockRobotAi(); MockRobot robot = (MockRobot)ai.Robot; robot.CanSeePlayer = false; robot.DetectionLineOfSight = true; ai.PlayerLocations.Add(new PlayerLocation(DateTime.Now, new MockLocation(10, 10, 10), true, true)); ai.State = RobotAiState.AlertAttack; Assert.True(ai.Can(RobotAiState.AlertFollowUp)); ai.State = RobotAiState.AlertReposition; Assert.True(ai.Can(RobotAiState.AlertFollowUp)); }
public void TestAlertCallHeadQuartersCanMoveToAttack() { RobotAi ai = new MockRobotAi(); ai.State = RobotAiState.AlertCallHeadQuarters; Assert.True(ai.Can(RobotAiState.AlertAttack)); }
public void TestSearchingLookAroundPointOfInterestShouldFlipFlopIfPlayerHasBeenSeen() { RobotAi ai = new MockRobotAi(); ai.PlayerLocations.Add(new PlayerLocation(DateTime.Now, new MockLocation(), true, true)); ai.TimeMarker = DateTime.Now - TimeSpan.FromMinutes(10); ai.State = RobotAiState.SearchingLookAroundPlayerLastSeen; Assert.False(ai.Can(RobotAiState.SearchingFollowUpPlayerLastSeen)); Assert.True(ai.Can(RobotAiState.SearchingFollowUpPointOfInterest)); ai.State = RobotAiState.SearchingLookAroundPointOfInterest; Assert.False(ai.Can(RobotAiState.SearchingFollowUpPointOfInterest)); Assert.True(ai.Can(RobotAiState.SearchingFollowUpPlayerLastSeen)); }
public void TestHeldUpSubStatesCannotMoveToGetDownIfNotPlayingAnimation() { RobotAi ai = new MockRobotAi(); MockRobot robot = (MockRobot)ai.Robot; robot.PlayingAnimation = RobotAnimation.None; ai.HasHeldUpDemandBeenMade = false; ai.State = RobotAiState.HeldUpRefuse; Assert.False(ai.Can(RobotAiState.HeldUpGetDown)); ai.State = RobotAiState.HeldUpDemandMarkAmmo; Assert.False(ai.Can(RobotAiState.HeldUpGetDown)); ai.State = RobotAiState.HeldUpDemandMarkEnemies; Assert.False(ai.Can(RobotAiState.HeldUpGetDown)); }
public void TestAlertCannotMoveToCallHeadQuartersBefore2Seconds() { RobotAi ai = new MockRobotAi(); ai.State = RobotAiState.Alert; ai.TimeMarker = DateTime.Now - TimeSpan.FromSeconds(1); Assert.False(ai.Can(RobotAiState.AlertCallHeadQuarters)); }
public void TestAlertCanMoveToCallHeadQuartersAfter2Seconds() { RobotAi ai = new MockRobotAi(); ai.State = RobotAiState.Alert; ai.TimeMarker = DateTime.Now - TimeSpan.FromSeconds(3); Assert.True(ai.Can(RobotAiState.AlertCallHeadQuarters)); }
public void TestAlertAttackCannotMoveToAlertRepositionAfterBursting4Times() { RobotAi ai = new MockRobotAi(); ai.State = RobotAiState.AlertAttack; ai.BurstsFired = 4; Assert.True(ai.Can(RobotAiState.AlertReposition)); }
public void TestHeldUpGetDownCannotMoveToHeldUp() { RobotAi ai = new MockRobotAi(); ai.HasHeldUpDemandBeenMade = false; ai.State = RobotAiState.HeldUpGetDown; Assert.False(ai.Can(RobotAiState.HeldUp)); }
public void TestHeldUpRefuse() { RobotAi ai = new MockRobotAi(); ai.State = RobotAiState.HeldUp; ai.HasHeldUpDemandBeenMade = true; Assert.True(ai.Can(RobotAiState.HeldUpRefuse)); }
public void TestHeldUpCanMarkEnemies() { RobotAi ai = new MockRobotAi(); ai.State = RobotAiState.HeldUp; ai.MarkEnemiesRequested = true; Assert.True(ai.Can(RobotAiState.HeldUpDemandMarkEnemies)); }
public void TestAlertAttackAndAlertCannotRepositionWhenInSightAndInRange() { RobotAi ai = new MockRobotAi(); MockPlayer player = (MockPlayer)ai.Player; MockRobot robot = (MockRobot)ai.Robot; player.Location = new MockLocation(1, 1, 1); robot.Location = new MockLocation(1, 1, 1); robot.CanSeePlayer = true; robot.DetectionLineOfSight = true; ai.PlayerLocations.Add(new PlayerLocation(DateTime.Now, player.Location, true, true)); ai.State = RobotAiState.AlertAttack; Assert.False(ai.Can(RobotAiState.AlertFollowUp)); ai.State = RobotAiState.AlertReposition; Assert.False(ai.Can(RobotAiState.AlertFollowUp)); }
public void TestAlertAttackAndAlertRepositionTooFarOfPlayerCanMoveToFollowUp() { RobotAi ai = new MockRobotAi(); MockPlayer player = (MockPlayer)ai.Player; MockRobot robot = (MockRobot)ai.Robot; player.Location = new MockLocation(100, 100, 100); robot.Location = new MockLocation(1, 1, 1); robot.CanSeePlayer = true; robot.DetectionLineOfSight = true; ai.PlayerLocations.Add(new PlayerLocation(DateTime.Now, player.Location, true, true)); ai.State = RobotAiState.AlertAttack; Assert.True(ai.Can(RobotAiState.AlertFollowUp)); ai.State = RobotAiState.AlertReposition; Assert.True(ai.Can(RobotAiState.AlertFollowUp)); }
public void TestSearchingLookAroundCanFollowUpPointOfInterestIfPlayerNeverSeen() { RobotAi ai = new MockRobotAi(); MockRobot robot = (MockRobot)ai.Robot; ai.State = RobotAiState.SearchingLookAroundPointOfInterest; ai.TimeMarker = DateTime.Now - TimeSpan.FromMinutes(10); Assert.True(ai.Can(RobotAiState.SearchingFollowUpPointOfInterest)); }
public void TestNoHealthMoveToDisabled() { RobotAi ai = new MockRobotAi(); MockRobot robot = (MockRobot)ai.Robot; robot.Health = 0; ai.State = RobotAiState.Patrol; Assert.True(ai.Can(RobotAiState.Disabled)); }
public void TestAlertAttackCannotMoveToAlertRepositionBeforeBursting() { RobotAi ai = new MockRobotAi(); ai.State = RobotAiState.AlertAttack; ai.BurstsFired = 0; Assert.False(ai.Can(RobotAiState.AlertReposition)); }
public void TestHeldUpSubStatesCanMoveToGetDownIfPlayingAnimation() { RobotAi ai = new MockRobotAi(); MockRobot robot = (MockRobot)ai.Robot; robot.PlayingAnimation = RobotAnimation.CoweringOnGround; ai.HasHeldUpDemandBeenMade = false; ai.MarkEnemiesRequested = ai.MarkItemsRequested = ai.GetDownRequested = true; ai.State = RobotAiState.HeldUpRefuse; Assert.True(ai.Can(RobotAiState.HeldUpGetDown)); ai.State = RobotAiState.HeldUpDemandMarkAmmo; Assert.True(ai.Can(RobotAiState.HeldUpGetDown)); ai.State = RobotAiState.HeldUpDemandMarkEnemies; Assert.True(ai.Can(RobotAiState.HeldUpGetDown)); }
public void TestHeadShotMoveToDisabled() { RobotAi ai = new MockRobotAi(); MockRobot robot = (MockRobot)ai.Robot; robot.Head.Shot = true; ai.State = RobotAiState.Patrol; Assert.True(ai.Can(RobotAiState.Disabled)); }
public void TestHitToHurt() { RobotAi ai = new MockRobotAi(); MockRobot robot = (MockRobot)ai.Robot; robot.HitWithItem = true; robot.Health = 100; ai.State = RobotAiState.Patrol; Assert.True(ai.Can(RobotAiState.Hurt)); }
public void TestPatrolReachedWalkingDestinationCanMoveToLookAround() { RobotAi ai = new MockRobotAi(); MockRobot robot = (MockRobot)ai.Robot; robot.Location = new MockLocation(1, 1, 1); // Reached ending ai.State = RobotAiState.PatrolMarchToEnd; robot.PatrolStart = new MockLocation(100, 100, 100); robot.PatrolEnd = new MockLocation(1, 1, 1); Assert.True(ai.Can(RobotAiState.PatrolLookAround)); // Reached beginning ai.State = RobotAiState.PatrolMarchToStart; robot.PatrolEnd = new MockLocation(100, 100, 100); robot.PatrolStart = new MockLocation(1, 1, 1); Assert.True(ai.Can(RobotAiState.PatrolLookAround)); }