private void Awake() { waveManager = GameObject.FindGameObjectWithTag("Wave_Manager").GetComponent <WaveManager>(); troopFactory = GameObject.FindGameObjectWithTag("Factory").GetComponent <TroopFactory>(); animatorController = GetComponent <Animator>(); //TO:DO use RunTimeData to get the Barrack class to this respctive GO barrackData = GetComponent <RunTimeBarrackData>(); enabled = false; }
private void HandleAllTroopsRemoved() { GameObject spawnGroup = null; bool checkIsEnemy = false; if (isTurnTrasition) { return; } if (playerSpawnGroup.transform.childCount == 0) { spawnGroup = playerSpawnGroup; checkIsEnemy = false; } else if (enemySpawnGroup.transform.childCount == 0) { spawnGroup = enemySpawnGroup; checkIsEnemy = true; } if (spawnGroup != null) { // TO:DO --> Use list of barracks from RunTimeData [This part of code is to heavy] GameObject[] barracks = GameObject.FindGameObjectsWithTag("Spawner"); int activeBarracks = 0; foreach (GameObject barrack in barracks) { RunTimeBarrackData barrackData = barrack.GetComponent <RunTimeBarrackData>(); Spawner barrackSpawner = barrack.GetComponent <Spawner>(); if (barrackData.isEnemy == checkIsEnemy && barrackSpawner.ActualState == SpawnerStates.SPAWNING) { activeBarracks++; } } if (activeBarracks == 0) { CompleteWave(); } } }