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); } } } }