public void PlayError404(bool switchCards) { BoardFieldViewModel vm1 = null; BoardFieldViewModel vm2 = null; if (_selectedField >= 0 && _selectedField < 64) { vm1 = BoardFieldList[_selectedField]; } if (_secondSelectedField >= 0 && _secondSelectedField < 64) { vm2 = BoardFieldList[_secondSelectedField]; } var card1 = vm1.Field.Card; var card2 = vm2.Field.Card; var playerNum = IsPlayerHost ? 1 : 2; _parent.CurrentMenu = MenuType.None; if (card1?.Owner?.PlayerNumber == playerNum && card2?.Owner?.PlayerNumber == playerNum && card1 is OnlineCard && card2 is OnlineCard) { SendGameCommand(string.Format("er {0},{1},{2},{3},{4}", vm1.Field.X + 1, vm1.Field.Y + 1, vm2.Field.X + 1, vm2.Field.Y + 1, switchCards ? 1 : 0)); } ClearFieldSelection(); ClearHighlighting(); }
public GameViewModel(IMenuHolder parent) { _parent = parent; BoardFieldList = new List <BoardFieldViewModel>(); BoardFieldVm = new BoardFieldViewModel[8, 11]; Board = new BoardField[8, 11]; for (ushort y = 0; y < 11; ++y) { for (ushort x = 0; x < 8; ++x) { Board[x, y] = new BoardField(x, y); } } for (int y = 0; y < 11; ++y) { for (int x = 0; x < 8; ++x) { var model = new BoardFieldViewModel(); BoardFieldVm[x, y] = model; BoardFieldList.Add(BoardFieldVm[x, y]); } } _isPlayerHost = true; RegisterBoardToViewModel(); #region Set default visual states // Server area p1 is at index 84, p2 at 85 BoardFieldVm[3, 0].DefaultVisualState = BoardFieldVisualState.Exit; BoardFieldVm[4, 0].DefaultVisualState = BoardFieldVisualState.Exit; BoardFieldVm[3, 7].DefaultVisualState = BoardFieldVisualState.Exit; BoardFieldVm[4, 7].DefaultVisualState = BoardFieldVisualState.Exit; // Stack BoardFieldVm[0, 8].DefaultVisualState = BoardFieldVisualState.Link; // 64 BoardFieldVm[1, 8].DefaultVisualState = BoardFieldVisualState.Link; BoardFieldVm[2, 8].DefaultVisualState = BoardFieldVisualState.Link; BoardFieldVm[3, 8].DefaultVisualState = BoardFieldVisualState.Link; BoardFieldVm[4, 8].DefaultVisualState = BoardFieldVisualState.Virus; // 68 BoardFieldVm[5, 8].DefaultVisualState = BoardFieldVisualState.Virus; BoardFieldVm[6, 8].DefaultVisualState = BoardFieldVisualState.Virus; BoardFieldVm[7, 8].DefaultVisualState = BoardFieldVisualState.Virus; BoardFieldVm[0, 9].DefaultVisualState = BoardFieldVisualState.Link; // 72 BoardFieldVm[1, 9].DefaultVisualState = BoardFieldVisualState.Link; BoardFieldVm[2, 9].DefaultVisualState = BoardFieldVisualState.Link; BoardFieldVm[3, 9].DefaultVisualState = BoardFieldVisualState.Link; BoardFieldVm[4, 9].DefaultVisualState = BoardFieldVisualState.Virus; // 76 BoardFieldVm[5, 9].DefaultVisualState = BoardFieldVisualState.Virus; BoardFieldVm[6, 9].DefaultVisualState = BoardFieldVisualState.Virus; BoardFieldVm[7, 9].DefaultVisualState = BoardFieldVisualState.Virus; // 79 #endregion _players = new PlayerState[2]; _players[0] = new PlayerState(1); _players[1] = new PlayerState(2); _client.GameSyncReceived += GameSyncReceived; _players[0].PropertyChanged += PlayerPropChanged; _players[1].PropertyChanged += PlayerPropChanged; _client.PropertyChanged += (s, a) => { var empty = string.IsNullOrEmpty(a.PropertyName); if (empty || a.PropertyName == nameof(UID)) { OnPropertyChanged(nameof(UID)); } }; }