Exemplo n.º 1
0
        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>());
            }
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
        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;
        }
Exemplo n.º 4
0
        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;
            }
        }