Ejemplo n.º 1
0
    // 接上   再开启协程 _playStep
    IEnumerator _step()
    {
        if (m_battleData.data.stepData != null && m_battleData.data.stepData.Length > 0)
        {
            Data_MapBattle_R.StepData[] datas = m_battleData.data.stepData;
            int iCount = datas.Length;
            for (int i = 0; i < iCount; i++)
            {
                Data_MapBattle_R.StepData stepdata = datas[i];
                yield return(StartCoroutine("_playStep", stepdata));
            }
            yield return(new WaitForSeconds(0.5f));

            end();              // end 调用结束
        }
    }
Ejemplo n.º 2
0
    // 主角攻击  速度10 + 10帧?
    IEnumerator _playStep(Data_MapBattle_R.StepData stepdata)
    {
        BattlePlayer battler = m_players[stepdata.chaBattleId];

        if (stepdata.skill == 61010)            // 技能1
        {
            Animation attackAnim = battler.gameObject.GetComponent <Animation>();
            ActiveAnimation.Play(attackAnim, "attack", AnimationOrTween.Direction.Forward);
            int iFrameCount = playSkillEffect(battler.transform, 61010);              //
            yield return(new WaitForSeconds(Time.deltaTime * iFrameCount));

            Data_MapBattle_R.StepData_Enemy[] enemys = stepdata.enemyChaArr;
            BattlePlayer enemy = null;
            for (int i = 0; i < enemys.Length; i++)                // 敌人受伤
            {
                enemy = m_players[enemys[i].enemyBattleId];
                enemy.ChangeHP(enemys[i].enemyChangeHp);
                iFrameCount = playSkillEffect(enemy.transform, 61011);                  //
            }
            yield return(new WaitForSeconds(Time.deltaTime * iFrameCount));
        }
        else            // 其他技能
        {
            SkillJson skill       = Globals.It.SkillJsonMgr.GetSkill(stepdata.skill);
            int       iFrameCount = playSkillEffect(battler.transform, skill.releaseEffect);        //
            yield return(new WaitForSeconds(Time.deltaTime * iFrameCount));

            Data_MapBattle_R.StepData_Enemy[] enemys = stepdata.enemyChaArr;
            BattlePlayer enemy      = null;
            int          iTempCount = 0;
            iFrameCount = 0;
            for (int i = 0; i < enemys.Length; i++)
            {
                enemy = m_players[enemys[i].enemyBattleId];
                enemy.ChangeHP(enemys[i].enemyChangeHp);
                iTempCount = playSkillEffect(enemy.transform, skill.effect);                  //
                if (iTempCount > iFrameCount)
                {
                    iFrameCount = iTempCount;
                }
            }
            yield return(new WaitForSeconds(Time.deltaTime * iFrameCount));
        }
    }