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);
    }
Beispiel #2
0
    // 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;
    }