Exemple #1
0
        private void InstantiateMapObjects(MapInfo map)
        {
            // устанавливаем параметры карты
            _mapSettingsManager.ServerUpdate(map);

            // строим периметр
            for (var i = -map.Width / 2 - 1; i <= map.Width / 2; i++)
            {
                _mapObjectsManager.Add(i + 0.5f, map.Height / 2.0f + 0.5f, MapObjectKind.UnbreakableWall);
                _mapObjectsManager.Add(i + 0.5f, -map.Height / 2.0f - 0.5f, MapObjectKind.UnbreakableWall);
            }

            for (var j = -map.Height / 2; j <= map.Height / 2 - 1; j++)
            {
                _mapObjectsManager.Add(map.Width / 2.0f + 0.5f, j + 0.5f, MapObjectKind.UnbreakableWall);
                _mapObjectsManager.Add(-map.Width / 2.0f - 0.5f, j + 0.5f, MapObjectKind.UnbreakableWall);
            }

            // спавним остальное
            for (var i = 0; i < map.Height; i++)
            {
                for (var j = 0; j < map.Width; j++)
                {
                    var cellKind = map.Map[i][j];
                    switch (cellKind)
                    {
                    case MapObjectKind.None:
                        break;

                    case MapObjectKind.UnbreakableWall:
                    case MapObjectKind.RegularWall:
                    case MapObjectKind.Tree:
                        _mapObjectsManager.Add(-map.Width / 2 + j + 0.5f, -map.Height / 2 + i + 0.5f, cellKind);
                        break;

                    case MapObjectKind.RandomPlayerSpawn:
                        _tankSpawner.AddSpawnPoint(-map.Width / 2 + j + 1.0f, -map.Height / 2 + i);
                        break;

                    case MapObjectKind.RandomBonusSpawner:
                        _bonusSpawner.ServerAddSpawnPoint(-map.Width / 2 + j + 1.0f, -map.Height / 2 + i);
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }
            }
        }
Exemple #2
0
 public static void Add(this MapObjectsManager mapObjects, float x, float y, MapObjectKind objectKind)
 {
     mapObjects.Add(new Vector2(x, y), objectKind);
 }