예제 #1
0
        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));
            }
        }
예제 #2
0
    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);
    }