private void ShootWeapon() { nextShotAvailable = false; PlayShotSoundFX(); TypeOfBullet bullet = Instantiate(weaponBeingHeld.GetBulletPrefab(), tipOfTheGun.position, Quaternion.identity, null); if (!(bullet is AOEBullet)) { bullet.gameObject.layer = (int)DefinedLayers.PlayerBullets; var playerBullet = bullet.gameObject.AddComponent <PlayerBullet>(); playerBullet.SetDamage(weaponBeingHeld.GetBulletDamage()); } else { var typeOfBullet = bullet.GetComponent <TypeOfBullet>(); typeOfBullet.SetDamage(weaponBeingHeld.GetBulletDamage()); typeOfBullet.SetSpeed(20); typeOfBullet.SetTarget(Camera.main.ScreenToWorldPoint(Input.mousePosition)); } currentBulletManager.BulletFired(); OnBulletFired(currentBulletManager.AvailableBulletsCount()); shootingPS.Play(); StartCoroutine(CanShootAgain()); animator.SetTrigger(RECOIL_TRIGGER); }