public void MovingLeftAndLeavingBoard() { var l = new Location(0, 0); var moveAvailabilityChain = new MoveAvailabilityChain(l, Direction.Left, team, board); Assert.False(moveAvailabilityChain.ActionAvailable()); }
public void BlueMovingUpToRedGoal() { var l = new Location(0, 5); var moveAvailabilityChain = new MoveAvailabilityChain(l, Direction.Up, team, board); Assert.False(moveAvailabilityChain.ActionAvailable()); }
public void RedMovingDownToBlueGoal() { var l = new Location(0, 2); var moveAvailabilityChain = new MoveAvailabilityChain(l, Direction.Down, opposingTeam, board); Assert.False(moveAvailabilityChain.ActionAvailable()); }
public void MovingUpAndLeavingBoard() { var l = new Location(0, 7); var moveAvailabilityChain = new MoveAvailabilityChain(l, Direction.Up, opposingTeam, board); Assert.False(moveAvailabilityChain.ActionAvailable()); }
protected override bool Validate() { var playerInfo = Board.Players[PlayerId]; var actionAvailability = new MoveAvailabilityChain(playerInfo.Location, _direction, playerInfo.Team, Board); return(actionAvailability.ActionAvailable()); }
private bool IsRandomlyChosenDirectionAppriopriate(Direction direction, Location currentLocation, Location newLocation) { var desiredLocation = GamePlayStrategyInfo.TargetLocation; var isAvailableMove = new MoveAvailabilityChain(currentLocation, direction, GamePlayStrategyInfo.Team, GamePlayStrategyInfo.Board) .ActionAvailable(); var isLocationInTaskArea = GamePlayStrategyInfo.Board.IsLocationInTaskArea(newLocation); var isLocationInAllowedAreaForState = !FromState.RestrictedToTaskArea || isLocationInTaskArea; var isBlockedDirection = desiredLocation.Equals(currentLocation.GetNewLocation(direction)); return(isAvailableMove && !isBlockedDirection && isLocationInAllowedAreaForState); }
public void MovingLeftToFieldWithPlayer() { var moveAvailabilityChain = new MoveAvailabilityChain(locationFail, Direction.Left, team, board); Assert.False(moveAvailabilityChain.ActionAvailable()); }
public void MoveAvailableUp() { var moveAvailabilityChain = new MoveAvailabilityChain(locationSuccess, Direction.Up, team, board); Assert.True(moveAvailabilityChain.ActionAvailable()); }