Esempio n. 1
0
        IEnumerator AverageDamage(DamageVO damageVO, float delay, float gapTime, int count)
        {
            yield return(new WaitForSeconds(delay));

            if (count <= 0)
            {
                count = 1;
            }
            float totalVal = damageVO.value;

            if (Mathf.Abs(totalVal) < count)
            {
                count = Mathf.CeilToInt(Mathf.Abs(totalVal));
            }
            float averageVal = totalVal / count;

            for (int i = 0; i < count; i++)
            {
                try
                {
                    DamageVO vo = damageVO.Clone();
                    vo.value = averageVal;
                    Damage(vo);
                }
                catch (System.Exception e)
                {
                    if (Application.isEditor)
                    {
                        Debug.Log(e);
                    }

                    break;
                }
                yield return(new WaitForSeconds(gapTime));
            }
        }