IEnumerator CSTeam(float time) { if (SingleGameStory.curType == SingleGameStory.StoryScene.TrainingShip) { yield break; } yield return(new WaitForSeconds(time)); while (true) { mCScreator = CSMain.GetCreator(CSConst.ciDefMgCamp); if (mCScreator != null) { mCSNpcs = CSMain.GetCSNpcs(mCScreator); mCSnpcTeam.setCSCreator(mCScreator); if (mCScreator.Assembly != null && mCSNpcs.Count > 0) { mCSnpcTeam.InitTeam(); mCSnpcTeam.AddInTeam(mCSNpcs, true); mCSnpcTeam.ReFlashTeam(); } } yield return(new WaitForSeconds(time)); } }
void OnNewWave(AISpawnTDWavesData.TDWaveSpData spData, int idxWave) { m_IsReady = false; m_SpawnFinished = (idxWave >= spData._waveDatas.Count - 1); m_Npcs.Clear(); m_Towers.Clear(); m_Buildings.Clear(); m_Defences.Clear(); m_Entities.Clear(); List <PeEntity> npcs = CSMain.GetCSNpcs(m_Creator); for (int i = 0; i < npcs.Count; i++) { if (npcs[i] != null && PETools.PEUtil.SqrMagnitude(npcs[i].position, assemblyPosition) < assemblyRadius * assemblyRadius) { m_Npcs.Add(npcs[i]); } } m_Towers = EntityMgr.Instance.GetTowerEntities(assemblyPosition, assemblyRadius, false); m_Buildings = CSMain.GetCSBuildings(m_Creator); m_Defences.AddRange(m_Npcs); m_Defences.AddRange(m_Towers); m_Entities.AddRange(m_Defences); m_Entities.AddRange(m_Buildings); }