// Update is called once per frame void Update() { if (HasWinner) { return; } if (!_firstWaveSpawned) { StartCoroutine(OnSpawn()); _firstWaveSpawned = true; } if (_collectItems.Length == 0) { _collectItems = FindObjectsOfType <CollectItems>(); if (_collectItems.Length > 0) { _collectItems = _collectItems.Where(c => c.isActiveAndEnabled).ToArray(); } } switch (_stRoom) { case StageRoom.A: if (RoomsInfluenced[0].gameObject.GetComponent <CleanRoom>().RoomCleaned) { _stRoom = StageRoom.B; ballSpawner.transform.parent.position = RoomsInfluenced[1].transform.position; StartCoroutine(OnSpawn()); } break; case StageRoom.B: if (RoomsInfluenced[1].gameObject.GetComponent <CleanRoom>().RoomCleaned) { _stRoom = StageRoom.C; ballSpawner.transform.parent.position = RoomsInfluenced[2].transform.position; StartCoroutine(OnSpawn()); } break; case StageRoom.C: if (RoomsInfluenced[2].gameObject.GetComponent <CleanRoom>().RoomCleaned) { _stRoom = StageRoom.D; ballSpawner.transform.parent.position = RoomsInfluenced[3].transform.position; StartCoroutine(OnSpawn()); } break; case StageRoom.D: if (ItemSpawner.ItemCount <= 0 && _lastWaveSpawned) { if (_collectItems[0].Collected > _collectItems[1].Collected) { Winner = _collectItems[0].GetComponent <Controller>().Color; HasWinner = true; } else if (_collectItems[1].Collected > _collectItems[0].Collected) { Winner = _collectItems[1].GetComponent <Controller>().Color; HasWinner = true; } else { ItemSpawner.ItemCount = 0; Spawner.SpawnWave(); } } break; } }
public FakeAdresseable(StageRoom _stage, SpecialRoom _special, GameObject _prefab) { stage = _stage; special = _special; scenePrefab = _prefab; }