public FlashBackTriggersManager(MapGameObject pMap, BaseLevel pLevel) : base(false)
        {
            Instance          = this;
            _flashTriggersMap = new Dictionary <string, FlashBackTrigger>();
            _level            = pLevel;
            _map = pMap;

            var flashesData = _map.ObjectGroups.SelectMany(og => og.Objects)
                              .Where(tileObj => tileObj?.Type.ToLower() == "flashback");

            foreach (var flash in flashesData)
            {
                var flashTrigger = AddFlashbackTriggerToLevel(flash);
                _flashTriggersMap.Add(flashTrigger.name.ToLower(), flashTrigger);
            }
        }
示例#2
0
        public BaseLevel(CaveLevelMapGameObject pCaveLevel, MCamera pCam)
        {
            _caveLevelMap = pCaveLevel;
            _cam          = (FollowCamera)pCam;

            AddChild(_caveLevelMap);

            var doorsManager = new DoorsManager(_caveLevelMap, this);

            AddChild(doorsManager);

            var memoriesManager = new HistoryPickupsManager(_caveLevelMap, this);

            AddChild(memoriesManager);

            var oilPickUpManager = new OilPickUpsManager(_caveLevelMap, this);

            AddChild(oilPickUpManager);

            var flashbacksTriggerManager = new FlashBackTriggersManager(_caveLevelMap, this);

            AddChild(flashbacksTriggerManager);

            var flashbackPickupsManager = new FlashbackPickupsManager(_caveLevelMap, this);

            AddChild(flashbackPickupsManager);

            var hiddenRoomManager = new HiddenRoomCoverManager(this);

            AddChild(hiddenRoomManager);

            var flashbacksManager = new FlashbackManager(this, flashbacksTriggerManager.FlashTriggersMap.Count);

            AddChild(flashbacksManager);



            var darkHallManager = new DarkHallManager(_caveLevelMap, this);

            AddChild(darkHallManager);

            var particlesManager = new ParticleManager();

            _player = new Player();
            AddChild(_player);

            var spawnPoint = GetPlayerSpawnPoint();

            _player.SetXY(spawnPoint.x, spawnPoint.y);

            AddChild(_cam);

            _cam.Target = _player;
            _cam.Map    = _caveLevelMap;
            _cam.SetXY(spawnPoint.x, spawnPoint.y);

            _playerCollision = new PlayerCollision(_player, _caveLevelMap, _cam);
            AddChild(_playerCollision);

            CoroutineManager.StartCoroutine(Start(), this);
        }