示例#1
0
    public override void HandleEvent(string eventName, object data)
    {
        switch (eventName)
        {
        case Consts.E_EnterScene:
            SceneArgs e0 = data as SceneArgs;
            if (e0.SceneIndex == 3)
            {
                //获取数据
                GameModel gModel = GetModel <GameModel>();

                //加载地图
                m_Map = GetComponent <Map>();
                m_Map.LoadLevel(gModel.PlayLevel);
                m_Map.OnTileClick += map_OnTileClick;
                //HU
                //加载萝卜
                Vector3[] path     = m_Map.Path;
                Vector3   pos      = path [path.Length - 2];
                int       Herotype = int.Parse(gModel.PlayLevel.Name);
                SpawnHero(Herotype, pos);
                pos.y     += 0.5f;
                gModel.des = pos;
                //HU
            }
            break;

        case Consts.E_SpawnEnemy:
            SpawnEnemyArgs e1 = data as SpawnEnemyArgs;
            SpawnEnemy(e1.EnemyType);
            break;

        case Consts.E_SpawnTower:
            SpawnTowerArgs e2 = data as SpawnTowerArgs;
            SpawnTower(e2.Position, e2.TowerID);
            break;
        }
    }
示例#2
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));

                //出怪事件
                SpawnEnemyArgs ee = new SpawnEnemyArgs();
                ee.EnemyType = round.Enemy;
                SendEvent(Consts.E_SpawnEnemy, ee);
            }
            //HU
            //回合数自加
            m_RoundIndex++;

            //yield return new WaitForSeconds (ROUND_INTERVAL);
            //回合间隙
            if (i < m_Rounds.Count - 1)
            {
                yield return(new WaitForSeconds(ROUND_INTERVAL));
            }
            //HU
        }

        //出怪完成
        m_AllRoundsComplete = true;
    }
示例#3
0
文件: Game.cs 项目: JovannyM/DB
 private void SpawnEnemy(object sender, SpawnEnemyArgs e) => Enemies.Add(e.Enemy);