internal virtual void Setup(FactoryRoom room) { Room = room; List <Bomb> bombs = SceneManager.Instance.GameplayState.Bombs; foreach (Bomb bomb in bombs) { _bombs.Add(bomb.gameObject.AddComponent <FactoryBomb>()); } }
internal override void Setup(FactoryRoom room) { base.Setup(room); InvoiceData.Start(); foreach (FactoryBomb bomb in Bombs) { bomb.SetupStartPosition(Room.InitialSpawn); _bombQueue.Enqueue(bomb); } _roomSelectable = Room.RoomSelectable; Room.StartCoroutine(StartGameplay()); Room.StartCoroutine(AdjustSelectableGrid()); }
private void Update() { if (_gameMode == null) { FactoryRoom factoryRoom = FindObjectOfType <FactoryRoom>(); if (factoryRoom == null) { DestroyImmediate(gameObject); return; } _gameMode = factoryRoom.GameMode; return; } float currentTime = _gameMode.RemainingTime; if (currentTime < _previousTime) { if (ShouldTrigger(AllAvailableExpertsTime, currentTime, _previousTime)) { PlayWalkie(AllAvailableExperts); } else if (ShouldTrigger(EvacuateTime, currentTime, _previousTime)) { PlayWalkie(Evacuate); } } else { if (ShouldTrigger(AllAvailableExpertsTime, _previousTime, currentTime)) { PlayWalkie(EmergencyCleared); } } _previousTime = currentTime; }
internal override void Setup(FactoryRoom room) { base.Setup(room); InvoiceData.Enabled = false; FactoryBomb[] bombs = Bombs.ToArray(); Vector3 vanillaBombSpawnPosition = Room.VanillaBombSpawn.position; float bombSpacing = Mathf.Min(SPAWN_LENGTH / (bombs.Length - 1.0f), MAXIMUM_BOMB_SPACING); vanillaBombSpawnPosition.x -= (bombs.Length - 1) * bombSpacing * 0.5f; for (int bombIndex = 0; bombIndex < bombs.Length; ++bombIndex) { bombs[bombIndex].transform.position = vanillaBombSpawnPosition; bombs[bombIndex].SetupHoldableOrigin(vanillaBombSpawnPosition); bombs[bombIndex].EnableBomb(); vanillaBombSpawnPosition.x += bombSpacing; } }