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); } }
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); }