public virtual void Shoot() { if (_canShoot && player.CheckHeat()) { _canShoot = false; StartCoroutine(ShotCooldown()); if (multiStageShoot) { ExecuteShoot(); for (int i = 1; i < multiStageShotsAmount; i++) { StartCoroutine(DelayedShot(i * multiStageShotsDelay)); } } else { ExecuteShoot(); } } }