Пример #1
0
        public IEnumerator AsyncPlayerHit()
        {
            RaycastHit[] hits = Physics.SphereCastAll(transform.position, radius, Vector3.one, radius);
            for (int i = 0; i < hits.Length; i++)
            {
                if (hits[i].transform.CompareTag("enemyCollide"))
                {
                    EnemyProgression ep = hits[i].transform.gameObject.GetComponentInParent <EnemyProgression>();

                    if (ep != null)
                    {
                        if (isArcane)
                        {
                            ep.HitMagic(dmg * 2);
                            ep.Slow(141, 0.0f, 2);
                            ep.DmgTakenDebuff(140, 1.65f, 10);
                            ep.FireDebuff(140, dmg / 6, 25);
                        }
                        else
                        {
                            ep.HitMagic(dmg / 2);
                            ep.Slow(140, 0.6f, 7);
                            ep.SendMessage("Burn", SendMessageOptions.DontRequireReceiver);
                            ep.FireDebuff(140, dmg / 10, 25);
                        }
                        yield return(null);
                    }
                    else
                    {
                        hits[i].transform.SendMessageUpwards("HitMagic", dmg, SendMessageOptions.DontRequireReceiver);
                        yield return(null);
                    }
                }
            }
        }