public bool ActionAvailable() { var builder = new AvailabilityChainBuilder(new IsPieceInCurrentLocationLink(_location, _board)) .AddNextLink(new HasPlayerEmptySlotForPieceLink(_playerId, _board.Players)); return(builder.Build().ValidateLink()); }
public bool ActionAvailable() { var builder = new AvailabilityChainBuilder(new IsNoPiecePlacedLink(_location, _board)) .AddNextLink(new IsPlayerCarryingPieceLink(_playerId, _board.Players)); return(builder.Build().ValidateLink()); }
public bool ActionAvailable() { var builder = new AvailabilityChainBuilder(new IsInsideBoardLink(location, direction, board.Width, board.Height)) .AddNextLink(new IsAvailableTeamAreaLink(location, direction, board.GoalAreaSize, board.TaskAreaSize, team)) .AddNextLink(new IsFieldPlayerUnoccupiedLink(location, direction, board)); return(builder.Build().ValidateLink()); }
public bool ActionAvailable() { var builder = new AvailabilityChainBuilder(new IsInsideBoardLink(location, direction, board.Width, board.Height)); return(builder.Build().ValidateLink()); }
public bool ActionAvailable() { var builder = new AvailabilityChainBuilder(new IsPlayerCarryingPieceLink(_playerId, _players)); return(builder.Build().ValidateLink()); }