IEnumerator Shoot() { canIFire = false; for (int i = 0; i < damage; i++) { if (SetTargetEnemy() != null) { EnemyDamage target = SetTargetEnemy(); muzzleFlash.Emit(1); Instantiate(projectileParticle, new Vector3(target.transform.position.x, target.transform.position.y + 3, target.transform.position.z), Quaternion.identity); if (i == damage - 1) { GetComponent <AudioSource>().PlayOneShot(lastGunShot, soundVolume * .6f); } else { GetComponent <AudioSource>().PlayOneShot(gunShot); } target.ProcessDamageRecivedFromMarines(); } yield return(new WaitForSeconds(.1f)); } yield return(new WaitForSeconds(3f / fireRate)); canIFire = true; }