Example #1
0
 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");
                    }
                }
            }
        }
Example #3
0
 public void UpdateGameSessionState(IGameSessionState state, int stepNumber)
 {
     _renderer.DrawMap(state, stepNumber);
 }
Example #4
0
 public void UpdateGameSessionState(IGameSessionState state, int stepNumber)
 {
     FillGameTilesData(state.Map.Tiles);
     FillGameObjectsStepStateData(state.Map.GameObjects);
 }