Beispiel #1
0
        private IGameOverStrategy CreateNoStateChangeStategy()
        {
            BoardMemento current  = _history.GetLastMemento();
            BoardMemento previous = _history[_history.HistorySize - 2];

            return(new NoStateChange(current, previous));
        }
Beispiel #2
0
        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"));
            }
        }
Beispiel #3
0
 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);
     }
 }
Beispiel #4
0
        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);
                }
            }
        }
Beispiel #5
0
 public NoAlive(BoardMemento memento)
 {
     _memento = memento;
 }
Beispiel #6
0
 public NoStateChange(BoardMemento currentState, BoardMemento previousState)
 {
     _currentState  = currentState;
     _previousState = previousState;
 }
Beispiel #7
0
 public EndTurnEventArgs(BoardMemento memento)
 {
     Memento = memento;
 }
Beispiel #8
0
 public void Push(BoardMemento memento)
 {
     _pastMementos.Add(memento);
     _futureMementos.Clear();
 }