private IGameOverStrategy CreateNoStateChangeStategy() { BoardMemento current = _history.GetLastMemento(); BoardMemento previous = _history[_history.HistorySize - 2]; return(new NoStateChange(current, previous)); }
public static async void SaveGame(long userId, BoardMemento board, string saveName) { using (var http = new HttpClient()) { object obj = new SaveModel { Save = board.SaveToDisk(), SaveName = saveName, PlayerId = 1 }; await http.PostAsync($"{baseAddress}/PlayerSaves", new StringContent(JsonConvert.SerializeObject(obj), Encoding.UTF8, "application/json")); } }
public void SelectCursorPosition(PieceColor currentPlayer) { if (PieceSelection.moveOptions.Contains(_cursor.getCoordinates())) { var start = PieceSelection.piece.Coordinates; var end = _cursor.getCoordinates(); var piece = PieceSelection.piece; _moveSelectedPiece(_cursor.getCoordinates()); var memento = new BoardMemento(piece, start, end); var payload = new EndTurnEventArgs(memento); OnEndTurn(payload); } else { _selectCursorPiece(currentPlayer); } }
public static async Task <BoardMemento> LoadGame(long saveId) { using (var http = new HttpClient()) { var result = await http.GetAsync(new Uri($"{baseAddress}/PlayerSaves/{saveId}")); if (result.IsSuccessStatusCode) { var stream = await result.Content.ReadAsStringAsync(); stream = (string)JsonConvert.DeserializeObject(stream); return(BoardMemento.ReadFromStream(stream)); } else { return(null); } } }
public NoAlive(BoardMemento memento) { _memento = memento; }
public NoStateChange(BoardMemento currentState, BoardMemento previousState) { _currentState = currentState; _previousState = previousState; }
public EndTurnEventArgs(BoardMemento memento) { Memento = memento; }
public void Push(BoardMemento memento) { _pastMementos.Add(memento); _futureMementos.Clear(); }