protected override void SpawnWave(AISpawnWaveData wave) { base.SpawnWave(wave); if (mCurrentTimer != null) { mCurrentTimer.currentWave = wave.index; } Debug.Log("Current wave index = " + wave.index); //foreach (Transform tr in pointParent) //{ // SPPointSimulate simulate = tr.GetComponent<SPPointSimulate>(); // if (simulate != null) // { // if (simulates.Contains(simulate)) // { // simulates.Remove(simulate); // } // simulate.Delete(); // } //} }
public void SyncWave(float time, float delay, int index) { mStartTime = time; mDelayTime = delay; //mWaveIndex = index; if (mCurrentAutomatic != null) { mCurrentWave = mCurrentAutomatic.GetWaveData(index); } }
public void StopAutomatic() { mStartTime = 0.0f; mDelayTime = 0.0f; //mWaveIndex = -1; mSpawning = false; mCurrentWave = null; mCurrentAutomatic = null; HideAutomaticGUI(); StopAllCoroutines(); }
IEnumerator SpawnCoroutine(AISpawnAutomaticData auto, int index) { mStartTime = Time.time; //mWaveIndex = -1; mSpawning = true; mCurrentWave = null; mCurrentAutomatic = auto; mTotalCount = 0; ShowAutomaticGUI(); //if (GameConfig.IsMultiMode && IsController) // RPC("RPC_C2S_Start"); OnSpawnStart(); if (index <= -1) { mDelayTime = auto.delayTime; if (GameConfig.IsMultiMode && IsController) { RPCServer(EPacketType.PT_TD_Wave, mDelayTime, -1); } yield return(new WaitForSeconds(auto.delayTime)); } foreach (AISpawnWaveData wave in auto.data.data) { Debug.LogWarning("wave index = " + wave.index + " : " + "index = " + index); if (wave.index < index) { continue; } mDelayTime = wave.delayTime; if (index > -1 && wave.index == index) { mDelayTime = 0.0f; } if (GameConfig.IsMultiMode && IsController) { RPCServer(EPacketType.PT_TD_Wave, mDelayTime, wave.index); } mStartTime = Time.time; mCurrentWave = wave; //mWaveIndex = wave.index; yield return(new WaitForSeconds(mDelayTime)); SpawnWave(wave); foreach (AISpawnData sp in wave.data.data) { int number = Random.Range(sp.minCount, sp.maxCount + 1); mTotalCount += number; for (int i = 0; i < number; i++) { SPTerrainEvent.instance.RegisterSPPoint(Spawn(sp)); yield return(new WaitForSeconds(0.1f)); } } } mStartTime = 0.0f; mDelayTime = 0.0f; //mWaveIndex = -1; mSpawning = false; mCurrentWave = null; mCurrentAutomatic = null; HideAutomaticGUI(); OnSpawnComplete(); if (IsController) { RPCServer(EPacketType.PT_TD_End); } }
protected virtual void SpawnWave(AISpawnWaveData wave) { }