public void UpdateGameSessionsState(IGameSessionState state, int stepNumber) { foreach (var provider in _providers) { provider.UpdateGameSessionState(state, stepNumber); } }
public void DrawMap(IGameSessionState gameSessionState, int stepNumber) { var map = gameSessionState.Map; int n = 1; string border = ""; border = border.PadLeft(map.WorldDimensions.X * 5, '-'); Console.Write($"\nMap at the start of step: {stepNumber}"); Console.Write("\n" + border + "\n"); for (int y = map.WorldDimensions.Y; y > 0; y--) { for (int x = 1; x < map.WorldDimensions.X + 1; x++) { var selectedTile = map.Tiles.First(tile => tile.Coordinates.Equals(new Coordinates(x, y))); string objectsOnTile = $"{selectedTile.GameObjectsOnTile.Count}"; if (selectedTile.GameObjectsOnTile.Count == 1) { var selected = selectedTile.GameObjectsOnTile.First(); //Защита на случай, если добавили новое существо, но не добавили для него символ if (GameObjectSymbols.ContainsKey(selected.GetType().Name)) { objectsOnTile = GameObjectSymbols[selected.GetType().Name].ToString(); } } DrawTile(objectsOnTile, new Coordinates(x, y), map); if (n < map.WorldDimensions.X) { n++; } else { n = 1; Console.Write("\n" + border + "\n"); } } } }
public void UpdateGameSessionState(IGameSessionState state, int stepNumber) { _renderer.DrawMap(state, stepNumber); }
public void UpdateGameSessionState(IGameSessionState state, int stepNumber) { FillGameTilesData(state.Map.Tiles); FillGameObjectsStepStateData(state.Map.GameObjects); }