Exemplo n.º 1
0
    private IEnumerator OnShowAllFight(List <DamageData> allDamage)
    {
        for (int i = 0; i < allDamage.Count; i++)
        {
            FightItemButton target = null;
            Vector3         orgPos = allDamage[i].tType[0] == "P" ? playerButtonPos [allDamage [i].orgIdx] : enemyButtonPos [allDamage [i].orgIdx];

            //當TargetIdx重複時會加10,此時需要減去10
            int minusCount = allDamage [i].targetIdx >= 10 ? 10 : 0;

            target = allDamage[i].tType[1] == "P" ? playerButton [allDamage [i].targetIdx - minusCount] : enemyButton [allDamage [i].targetIdx - minusCount];
            Vector3 targetPos = allDamage[i].tType[1] == "P" ? playerButtonPos [allDamage [i].targetIdx - minusCount] : enemyButtonPos [allDamage [i].targetIdx - minusCount];

            GroundSEController gse = SEPool.Dequeue();
            gse.SetAttackShow(orgPos, targetPos, target, allDamage [i]);
            gse.onRecycleDamage = ShowFightEnd;
            gse.gameObject.SetActive(true);
            gse.Run();

            if (i == 0)
            {
                if (allDamage.Count == 1)
                {
                    yield return(new WaitForSeconds(0.5f));            //該名角色最後攻擊所需時間
                }
                yield return(new WaitForSeconds(0.2f));                //該名角色的物理及魔法攻擊的顯示間隔
            }
            else
            {
                yield return(new WaitForSeconds(0.5f));                //該名角色最後攻擊所需時間
            }
        }

        fightController.OnTriggerSkill(allDamage);
    }