public GamePlayerView() { InitializeComponent(); tabControl1.SelectedTab = tpHumanPlayer; _model = new GamePlayerModel { Game = new GameState { new NewGame() } }; _controller = new GamePlayerController(_model, this); }
public GamePlayerController(IGamePlayerModel model, IGamePlayerView view) { Model = model; View = view; view.InputEvent += ViewOnInputEvent; view.NavigateEvent += ViewOnNavigateEvent; Model.CommittedState = Model.Game.Last().NewState; Model.SelectionObject = Location.Undefined; Model.SelectionTarget = Location.Undefined; Model.SelectedVariation = null; Model.EditorState = Model.CommittedState; Model.InHand = Cell.Empty; Model.SelectionState = SelectionState.Unselected; var seenList = new HashSet <Guid>(); Model.AvailableActions = AvailableActionController.GetAvailableActions(Model.CommittedState, seenList); Model.EditMode = false; Model.Restrictions = RestrictionState.None; }
private static MouseTargetFlags GetMouseTargetType(IGamePlayerModel model, Location location, Cell contents) { var flags = MouseTargetFlags.None; if (location == model.SelectionObject) { flags |= MouseTargetFlags.Selection; } else if (location == model.SelectionTarget) { flags |= MouseTargetFlags.Selection | MouseTargetFlags.Target; } else if (model.HighlightLocations?.Contains(location) ?? false) { flags |= MouseTargetFlags.Target; } if (!contents.IsPiece()) { return(flags); } if (contents.GetSide(model.CommittedState.Flags.IsRedTurn(), model.CommittedState.Flags.IsBlueTurn(), false)) { flags |= MouseTargetFlags.OwnPiece; } else { flags |= MouseTargetFlags.OpponentPiece; } if (contents.IsStack()) { flags |= MouseTargetFlags.Stack; } return(flags); }