public override bool IsPossible() { var result = NormalPlayerStrategyInfo.Board.Players.Count > 2 && NormalPlayerStrategyInfo.ShouldInitiateKnowledgeExchange(); return(result); }
public PickupPieceStrategyState(NormalPlayerStrategyInfo playerStrategyInfo) : base( StateTransitionType.Triggered, playerStrategyInfo) { Transitions = new Transition[] { new IsAbleToTestStrategyTransition(playerStrategyInfo) }; }
public DestroyPieceStrategyState(NormalPlayerStrategyInfo playerStrategyInfo) : base( StateTransitionType.Triggered, playerStrategyInfo) { Transitions = new Transition[] { new HasNoPieceStrategyTransition(playerStrategyInfo) }; }
public DiscoverStrategyState(NormalPlayerStrategyInfo playerStrategyInfo) : base( StateTransitionType.Triggered, playerStrategyInfo) { Transitions = new Transition[] { new MoveToPieceStrategyTransition(playerStrategyInfo) }; }
public ReportGoalFieldsStrategyState(NormalPlayerStrategyInfo playerStrategyInfo) : base( StateTransitionType.Triggered, playerStrategyInfo) { Transitions = new Transition[] { new IsThereSomeoneToCommunicateWithStrategyTransition(playerStrategyInfo), new IsInGoalWithoutPieceStrategyTransition(playerStrategyInfo) }; }
public InitStrategyState(NormalPlayerStrategyInfo playerStrategyInfo) : base( StateTransitionType.Immediate, playerStrategyInfo) { Transitions = new Transition[] { new IsInGoalWithoutPieceStrategyTransition(playerStrategyInfo), new IsInTaskAreaStrategyTransition(playerStrategyInfo) }; }
public MoveToUndiscoveredGoalStrategyState(NormalPlayerStrategyInfo playerStrategyInfo) : base( StateTransitionType.Triggered, playerStrategyInfo) { Transitions = new Transition[] { new IsNormalPlayerBlockedTransition(playerStrategyInfo, this), new IsOnDesiredUndiscoveredGoalFieldStrategyTransition(playerStrategyInfo), new HasNormalPieceStrategyTransition(playerStrategyInfo) }; }
public InitialMoveAfterPlaceStrategyState(NormalPlayerStrategyInfo playerStrategyInfo) : base( StateTransitionType.Immediate, playerStrategyInfo) { Transitions = new Transition[] { new IsNormalPlayerBlockedTransition(playerStrategyInfo, new InGoalAreaMovingToTaskStrategyState(playerStrategyInfo)), new IsInGoalWithoutPieceStrategyTransition(playerStrategyInfo) }; }
public InGoalAreaMovingToTaskStrategyState(NormalPlayerStrategyInfo playerStrategyInfo) : base( StateTransitionType.Triggered, playerStrategyInfo) { Transitions = new Transition[] { new IsNormalPlayerBlockedTransition(playerStrategyInfo, this), new IsInGoalWithoutPieceStrategyTransition(playerStrategyInfo), new IsInTaskAreaStrategyTransition(playerStrategyInfo) }; }
public MoveToPieceStrategyState(NormalPlayerStrategyInfo playerStrategyInfo) : base( StateTransitionType.Triggered, playerStrategyInfo) { RestrictedToTaskArea = true; Transitions = new Transition[] { new IsNormalPlayerBlockedTransition(playerStrategyInfo, this), new IsOnFieldWithNoPieceStrategyTransition(playerStrategyInfo), new IsNoPieceAvailableStrategyTransition(playerStrategyInfo), new IsOnFieldWithPieceStrategyTransition(playerStrategyInfo) }; }
public NormalPlayerStrategy(PlayerBase player, BoardBase board, Guid playerGuid, int gameId) { var teamCoefficient = player.Team == TeamColor.Blue ? 0 : 1; var offset = teamCoefficient * (board.TaskAreaSize + board.GoalAreaSize); var undiscoveredGoalFields = new List <GoalField>(); for (var i = 0; i < board.Width; ++i) { for (var j = offset; j < offset + board.GoalAreaSize; ++j) { undiscoveredGoalFields.Add(board[new Location(i, j)] as GoalField); } } undiscoveredGoalFields.Shuffle(); NormalPlayerStrategyInfo = new NormalPlayerStrategyInfo(board, player.Id, playerGuid, gameId, player.Team, undiscoveredGoalFields); }
public IsOnFieldWithNoPieceStrategyTransition(NormalPlayerStrategyInfo normalPlayerStrategyInfo) : base( normalPlayerStrategyInfo) { }
public HasShamStrategyTransition(NormalPlayerStrategyInfo normalPlayerStrategyInfo) : base( normalPlayerStrategyInfo) { }
public MoveToPieceStrategyTransition(NormalPlayerStrategyInfo normalPlayerStrategyInfo) : base( normalPlayerStrategyInfo) { }
public IsInTaskAreaStrategyTransition(NormalPlayerStrategyInfo normalPlayerStrategyInfo) : base( normalPlayerStrategyInfo) { }
public IsNoPieceAvailableStrategyTransition(NormalPlayerStrategyInfo normalPlayerStrategyInfo) : base( normalPlayerStrategyInfo) { _directionGenerator = new Random(); }
public IsOnDesiredUndiscoveredGoalFieldStrategyTransition(NormalPlayerStrategyInfo normalPlayerStrategyInfo) : base( normalPlayerStrategyInfo) { }
public IsThereSomeoneToCommunicateWithStrategyTransition(NormalPlayerStrategyInfo normalPlayerStrategyInfo) : base( normalPlayerStrategyInfo) { }
protected NormalPlayerStrategyTransition(NormalPlayerStrategyInfo normalPlayerStrategyInfo) : base( normalPlayerStrategyInfo) { NormalPlayerStrategyInfo = normalPlayerStrategyInfo; }
public IsNormalPlayerBlockedTransition(NormalPlayerStrategyInfo gamePlayStrategyInfo, NormalPlayerStrategyState fromState) : base(gamePlayStrategyInfo, fromState) { _normalPlayerStrategyInfo = gamePlayStrategyInfo; }
public IsAbleToTestStrategyTransition(NormalPlayerStrategyInfo normalPlayerStrategyInfo) : base( normalPlayerStrategyInfo) { }
public IsInGoalWithoutPieceStrategyTransition(NormalPlayerStrategyInfo normalPlayerStrategyInfo) : base( normalPlayerStrategyInfo) { }