示例#1
0
    /// <summary>
    /// 回合开始,开始出怪
    /// </summary>
    private IEnumerator RunRound()
    {
        _allRoundsComplete = false;
        for (int i = 0; i < _rounds.Count; i++)
        {
            //回合信息
            StartRoundArgs startRoundArgs = new StartRoundArgs();
            startRoundArgs.RoundIndex = i;
            startRoundArgs.RoundTotal = RoundTotal;

            SendEvent(Consts.E_StartRound, startRoundArgs);

            Round round = _rounds[i];

            for (int j = 0; j < round.Count; j++)
            {
                //出怪信息
                SpawnMonsterArgs spawnMonsterArgs = new SpawnMonsterArgs();
                spawnMonsterArgs.MosterType = round.Monster;

                SendEvent(Consts.E_SpawnMonster, spawnMonsterArgs);

                yield return(new WaitForSeconds(Spawn_Interval));
            }

            _roundIndex++;

            if (i < round.Count - 1)
            {
                yield return(new WaitForSeconds(Round_Interval));
            }
        }
        _allRoundsComplete = true;
    }
示例#2
0
    IEnumerator RunRound()
    {
        for (int i = 0; i < m_Rounds.Length; i++)
        {
            //回合开始事件
            StartRoundArgs e = new StartRoundArgs
            {
                RoundIndex = i,
                RoundTotal = RoundTotal
            };

            SendEvent(Consts.E_StartRound, e);

            Round round = m_Rounds[i];
            for (int j = 0; j < round.Count; j++)
            {
                //出怪间隙
                yield return(new WaitForSeconds(SPAWN_INTERVAL));

                //出怪事件
                SpawnMonsterArgs ee = new SpawnMonsterArgs
                {
                    MonsterType = round.Monster
                };
                SendEvent(Consts.E_SpawnMonster, ee);
            }

            //回合间隙
            yield return(new WaitForSeconds(ROUND_INTERVAL));
        }

        //出怪流程
        m_AllRoundsComplete = true;
    }
示例#3
0
    IEnumerator RunRound()
    {
        for (int i = 0; i < m_Rounds.Count; i++)
        {
            //回合开始事件
            StartRoundArgs e = new StartRoundArgs();
            e.RoundIndex = i;
            e.RoundTotal = RoundTotal;
            SendEvent(Consts.E_StartRound, e);

            Round round = m_Rounds[i];

            for (int k = 0; k < round.Count; k++)
            {
                //出怪间隙
                yield return(new WaitForSeconds(SPAWN_INTERVAL));

                //出怪事件
                SpawnMonsterArgs ee = new SpawnMonsterArgs();
                ee.MonsterType = round.Monster;
                SendEvent(Consts.E_SpawnMonster, ee);
            }

            //回合间隙
            yield return(new WaitForSeconds(ROUND_INTERVAL));
        }

        //出怪完成
        m_AllRoundsComplete = true;
    }
    IEnumerator RunRound()
    {
        m_RoundIndex       = -1;
        m_AllRoundComplete = false;
        // m_AllRoundComplete = false;
        for (int i = 0; i < m_Rounds.Count; i++)
        {
            //设置回合
            m_RoundIndex = i;
            //回合开始事件
            StartRoundArgs e = new StartRoundArgs();
            e.RoundIndex = m_RoundIndex;
            e.RoundTotal = RoundTotal;
            SendEvent(Consts.E_StartRound, e);

            Round round = m_Rounds[i];
            for (int j = 0; j < round.Count; j++)
            {
                //出怪间隔
                yield return(new WaitForSeconds(SPAWN_INTERVAL));

                //出怪事件
                SpawnMonsterArgs ee = new SpawnMonsterArgs()
                {
                    MonsterID = round.Monster
                };

                SendEvent(Consts.E_SpawnMonster, ee);
                //最后一波出怪完成
                if ((i == m_Rounds.Count - 1) && (j == round.Count - 1))
                {
                    //出怪完成
                    m_AllRoundComplete = true;
                }
            }


            //回合数自加
            //m_RoundIndex = m_RoundIndex + 1;
            //等待回合事件间隔
            // if(i<m_Rounds.Count-1)

            if (!m_AllRoundComplete)
            {
                //回合间隙
                yield return(new WaitForSeconds(ROUND_INTERVAL));
            }
        }
        //回合结束事件
    }
示例#5
0
    private void E_StartRound(object data)
    {
        roundModel = GetModel <RoundModel>();
        MapModel mapModel = GetModel <MapModel>();

        End = mapModel.end.transform;
        StartRoundArgs startRoundArgs = data as StartRoundArgs;
        int            index          = startRoundArgs.RoundIndex + 1;
        int            MT             = startRoundArgs.MonsterTotal;

        RoundX.GetComponent <Animator>().SetTrigger("Roundx");
        RoundX.text       = "Round " + index;
        RoundMessage.text = "Round:" + index + "/" + startRoundArgs.RoundTotal;
        CurrentRound.text = "NPC:     /" + MT;
        TotalEnemy        = MT;
        Enemy.text        = TotalEnemy.ToString();
    }
示例#6
0
    /// <summary>
    /// 协程:运行一个回合
    /// </summary>
    /// <returns></returns>
    IEnumerator RunRound()
    {
        //回合开始
        yield return(new WaitForSeconds(ROUND_INTERVAL));

        StartRoundArgs e = new StartRoundArgs
        {
            RoundIndex   = m_RoundIndex,
            RoundTotal   = RoundTotal,
            MonsterTotal = m_Rounds[m_RoundIndex].TotalMonster
        };

        Debug.Log("回合开始");
        SendEvent(Consts.E_StartRound, e);//发送一个回合开始的事件

        List <MonsterGroup> round = m_Rounds[m_RoundIndex].TheRound;
        SpawnMonsterArgs    x     = new SpawnMonsterArgs();

        for (int k = 0; k < round.Count; k++)
        {
            MonsterGroup group = round[k];

            SendEvent(Consts.E_SpawnMonsterGroups, group);//发送一个显示怪物群的消息
            for (int j = 0; j < group.count; j++)
            {
                //出怪间隙
                yield return(new WaitForSeconds(SPAWN_INTERVAL));

                //出怪事件
                x.MonsterID = group.monsterID;
                //Debug.Log("生成怪物"+ group.monsterID);
                if (x == null)
                {
                    Debug.Log("x无效");
                }
                else
                {
                    SendEvent(Consts.E_SpawnMonster, x); //发送一个生成怪物的命令
                }
            }
        }
        m_RoundIndex++;
    }
示例#7
0
    IEnumerator RunRound()
    {
        m_RoundIndex        = -1;
        m_AllRoundsComplete = false;

        for (int i = 0; i < m_Rounds.Count; i++)
        {
            //设置回合
            m_RoundIndex = i;

            //回合开始事件
            StartRoundArgs e = new StartRoundArgs();
            e.RoundIndex = m_RoundIndex;
            e.RoundTotal = RoundTotal;
            SendEvent(Consts.E_StartRound, e);

            Round round = m_Rounds[i];

            for (int k = 0; k < round.Count; k++)
            {
                //出怪间隙
                yield return(new WaitForSeconds(SPAWN_INTERVAL));

                //出怪事件
                SpawnMonsterArgs ee = new SpawnMonsterArgs();
                ee.MonsterID = round.Monster;
                SendEvent(Consts.E_SpawnMonster, ee);

                //最后一波出怪完成
                if ((i == m_Rounds.Count - 1) && (k == round.Count - 1))
                {
                    //出怪完成
                    m_AllRoundsComplete = true;
                }
            }

            if (!m_AllRoundsComplete)
            {
                //回合间隙
                yield return(new WaitForSeconds(ROUND_INTERVAL));
            }
        }
    }