Exemple #1
0
        public void StartLevel(LevelData levelData)
        {
            _blocks    = new List <Block>();
            _levelData = levelData;
            _setLevelNameSignal.Fire(levelData.LevelName);
            _headQuarter = _hqPool.Spawn();
            _headQuarter.transform.position = levelData.HqPosition;
            _playerSpewnPoint = levelData.PlayerSpawnVector3;
            GetMapFromTexture(_levelData.LevelGeometry);
            _mapData = new MapData(_levelData.LevelGeometry);
            _collidedWithBlockSignal += onCollidedWithBlock;
            _enemySpawnController     = new EnemySpawnController();
            _enemySpawnController.Init(15, levelData.EnemySpawnPoints, _enemyPool, _mapData);

            _player = _playerPool.Spawn();
            _player.Player.Position   = _playerSpewnPoint;
            _player.Player.LifesCount = 3;

            _enemySpawnController.InitialSpawnAtStart();

            EnemyTankCount tankCount = new EnemyTankCount();

            tankCount.AllTanksCount    = _enemySpawnController.UnitsCount;
            tankCount.InGameTanksCount = _killedTankCount;
            _setPlayerLifesSignal.Fire(_player.Player.LifesCount);
            _setEnemyTankCountSignal.Fire(tankCount);
            SendTankCountInfo();
        }
Exemple #2
0
        public void Dispose()
        {
            for (int i = 0; i < _blocks.Count; i++)
            {
                if (_blocks[i])
                {
                    _blockPool.Despawn(_blocks[i]);
                }
            }

            _blocks.Clear();

            _killedTankCount = 0;
            SendTankCountInfo();
            _enemySpawnController.Dispose();
            _hqPool.Despawn(_headQuarter);
            _playerPool.Despawn(_player);
            _collidedWithBlockSignal -= onCollidedWithBlock;
        }