public void RedoTurn() { var lastTurn = _undoneTurns.Last(); MineField.RestoreFromSnapshot(lastTurn.MineFieldSnapshot); AddTurn(lastTurn.MineFieldSnapshot, lastTurn.PlayerTurnSnapshot, lastTurn.Description, lastTurn.Time); _undoneTurns.RemoveAt(_undoneTurns.Count - 1); }
public void UndoTurn(int turnId) { var turn = _playerTurns[turnId]; MineField.RestoreFromSnapshot(turn.MineFieldSnapshot); if (turn.GameState != GameStateManager.CurrentState) { GameStateManager.CurrentState = turn.GameState; } _undoneTurns.Add(turn); _playerTurns.RemoveAt(turnId); }
public static MineField CreateFromSnapshot(MineFieldSnapshot snapshot) { var mineField = new MineField( snapshot.Width, snapshot.Height, snapshot.TotalMines, snapshot.IsResolvable, snapshot.MinePutterDifficulty ); mineField.RestoreFromSnapshot(snapshot); return(mineField); }
public MineFieldRenderer(MineField mineField, GraphicsDevice graphicsDevice, Texture2D tileSet) { MineField = mineField; GraphicsDevice = graphicsDevice; _tileSet = tileSet; _textureResolver = new TextureResolver(tileSet, MineField.CellSize, MineField.CellSize); RenderTarget = new RenderTarget2D( GraphicsDevice, mineField.Width * mineField.CellSize, mineField.Height * mineField.CellSize, true, GraphicsDevice.PresentationParameters.BackBufferFormat, DepthFormat.Depth24 ); _spriteBatch = new SpriteBatch(GraphicsDevice); MineField.Changed += (sender, args) => Render(); }
public PlayerTurnsContainer(MineField mineField, GameStateManager gameStateManager) { MineField = mineField; GameStateManager = gameStateManager; }