private void ThrowGrenade() { data.DecreaseAmmo(); GameObject test = Instantiate(grenade, GameObject.FindGameObjectWithTag("Player").transform.position + GameObject.FindGameObjectWithTag("Player").transform.forward * 2 + GameObject.FindGameObjectWithTag("Player").transform.up * 0.5f, GameObject.FindGameObjectWithTag("Player").transform.rotation); }
// this makes the player wait between shooting IEnumerator wait() { gunData.DecreaseAmmo(); GetComponent <AudioSource>().PlayOneShot(shootSound); if (Physics.Raycast(transform.position, forwardPos, out rayHit, rayLength, layerMask)) { particleRef = Instantiate(impactParticles, rayHit.point, Quaternion.identity); Destroy(particleRef, 0.5f); if (rayHit.transform.gameObject.tag == "Enemy") { //This is where the enemy takes damage, I should try to switch to using switches instead //gunner if (rayHit.transform.gameObject.TryGetComponent(out Enemy enemy)) { rayHit.transform.gameObject.GetComponent <Enemy>().TakeDamage(damage); } //jojo else if (rayHit.transform.gameObject.TryGetComponent(out MeleeCat jojo)) { rayHit.transform.gameObject.GetComponent <MeleeCat>().TakeDamage(damage); } //yakuza else if (rayHit.transform.gameObject.TryGetComponent(out YakuzaCat yakuza)) { rayHit.transform.gameObject.GetComponent <YakuzaCat>().TakeDamage(damage); } // ninja else if (rayHit.transform.gameObject.TryGetComponent(out Ninja ninjaCat)) { rayHit.transform.gameObject.GetComponent <Ninja>().TakeDamage(damage); } else if (rayHit.transform.gameObject.TryGetComponent(out SamuraiBossAI samurai)) { //make a ricochet sound //maybe change the sprite } } } yield return(new WaitForSeconds(0.25f)); if (gunData.GetLoadedAmmo() == 0) { gunData.SetReloading(true); yield return(new WaitForSeconds(2)); gunData.Reload(); } canShoot = true; }