Пример #1
0
    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();
        //    }
        //}
    }
Пример #2
0
    public void SyncWave(float time, float delay, int index)
    {
        mStartTime = time;
        mDelayTime = delay;
        //mWaveIndex = index;

        if (mCurrentAutomatic != null)
        {
            mCurrentWave = mCurrentAutomatic.GetWaveData(index);
        }
    }
Пример #3
0
    public void StopAutomatic()
    {
        mStartTime = 0.0f;
        mDelayTime = 0.0f;
        //mWaveIndex = -1;
        mSpawning         = false;
        mCurrentWave      = null;
        mCurrentAutomatic = null;

        HideAutomaticGUI();

        StopAllCoroutines();
    }
Пример #4
0
    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);
        }
    }
Пример #5
0
 protected virtual void SpawnWave(AISpawnWaveData wave)
 {
 }