Exemplo n.º 1
0
    public void Shoot()
    {
        if (laserCounter >= laserRate)
        {
            if (recoil)
            {
                recoil.StartRecoil();
            }

            laserCounter = 0;

            GameObject tmp = ObjectPooler.laserPooler.GetPlayerLaser();

            tmp.transform.position = transform.position + new Vector3(0, -0.2f, 0);

            tmp.transform.rotation = Quaternion.Euler(new Vector3(0, 0, 180));
            tmp.GetComponent <Rigidbody2D>().velocity = tmp.transform.up * laserSpeed;
            tmp.transform.localScale = new Vector2(damage, damage);
            tmp.GetComponent <Laser>().SetDamage(damage, damage.Equals(upgradedDamage));
            tmp.GetComponent <Laser>().SetStun(stunTime, stunTime.Equals(upgradedStun));

            Instantiate(bubbleBurst, (Vector2)transform.position + new Vector2(0, -0.2f), Quaternion.identity);

            if (!baby)
            {
                gameManager.Shake(laserShakeDuration, laserShakeAmount, laserShakeDecrease);
                audioManager.PlaySound(1, currPitch);
            }
        }
    }
Exemplo n.º 2
0
    // Update is called once per frame
    public void Update()
    {
        StartCoroutine(FindRecoil());

        if (Arrows <= 0)
        {
            Arrows = 0;
            SetCountAmmo();
            AmmoShot = false;
        }
        if (Arrows <= 10)
        {
            ArrowAmmo.color = new Color(Mathf.Sin(Time.time * 10), 0f, 0f, 1.0f);
        }
        else if (Arrows >= 11)
        {
            ArrowAmmo.color = new Color(1f, 1f, 1f, 1f);
        }


        if (Time.time > nextFire && AmmoShot)
        {
            ArrowObject.SetActive(true);
        }
        else
        {
            ArrowObject.SetActive(false);
        }
        if (Input.GetMouseButton(0) && Time.time > nextFire && AmmoShot == true || Input.GetAxisRaw("Attack") == -1 && Time.time > nextFire && AmmoShot == true)
        {
            Arrows -= 1;
            Rigidbody  Temporary_RigidBody;
            GameObject Temporary_Bullet_Handler;
            recoilComponent.StartRecoil(0.1f, -3f, 10f);
            nextFire = Time.time + fireRate;
            audioSrc.PlayOneShot(shoot);

            Temporary_Bullet_Handler = Instantiate(Bullet, Bullet_Emitter.transform.position, Bullet_Emitter.transform.rotation) as GameObject;
            Temporary_Bullet_Handler.transform.Rotate(Vector3.left);

            Temporary_RigidBody = Temporary_Bullet_Handler.GetComponent <Rigidbody>();
            Temporary_RigidBody.AddForce(CameraPosition.transform.forward * Bullet_Forward_Force);
            Destroy(Temporary_Bullet_Handler, 5.0f);
            SetCountAmmo();
        }

        if (whiteScreenFlashEnabled == true)
        {
            whiteScreen.SetActive(true);
            whiteScreenFlashTimer -= Time.deltaTime;
        }
        if (whiteScreenFlashTimer <= 0)
        {
            whiteScreen.SetActive(false);
            whiteScreenFlashEnabled = false;
            whiteScreenFlashTimer   = whiteScreenFlashTimerStart;
        }
    }
Exemplo n.º 3
0
    void Shoot()
    {
        currentAmmo--;

        muzzleflash.Play();
        cartrage.GetComponent <ParticleSystem>().Play();
        AudioSourceMaster.PlayOneShot(gunSound, Volume);

        recoilComponent.StartRecoil(amountOfRecoil, maxRecoilx, recoilSpeed);
        recoilComponentCam.StartRecoil(amountOfRecoilCam, maxRecoilxCam, recoilSpeedCam);
        GetComponent <Accuracy>().Recoil();

        RaycastHit hit;

        if (Physics.Raycast(gameObject.transform.position, fpsCam.transform.forward, out hit, range))
        {
            Target target = hit.transform.GetComponent <Target>();
            if (target != null)
            {
                target.TakeDamage(damage);
            }

            if (hit.rigidbody != null)
            {
                hit.rigidbody.AddForce(-hit.normal * impactforce);
            }

            if (hit.collider.transform.tag == "Player")
            {
                Hit();
            }

            GameObject impactGO = Instantiate(impacteffect, hit.point, Quaternion.LookRotation(hit.normal));
            Destroy(impactGO, 2f);
        }
    }
Exemplo n.º 4
0
    // Update is called once per frame
    public void Update()
    {
        if (Ammo >= 200)
        {
            Ammo = 200;
            SetCountAmmo();
        }
        if (Ammo <= 0)
        {
            Ammo     = 0;
            AmmoShot = false;
            SetCountAmmo();
        }
        if (Input.GetButtonDown("Pause"))
        {
            paused         = !paused;
            Time.timeScale = paused ? 0 : 1;
            if (Input.GetMouseButtonDown(0) && paused == true)
            {
                Ammo -= 0;
            }
            if (paused == true)
            {
                AmmoShot         = false;
                Cursor.lockState = CursorLockMode.None;
                Cursor.visible   = true;
                CursorCrosshair.SetActive(false);
                OptionsMenu.SetActive(true);
                AssaultRifleGun.SetActive(false);
                pauseText.text = "Game Paused";
                levelMusic.Pause();
            }
            else
            {
                OptionsMenu.SetActive(false);
                ConfirmMenu.SetActive(false);
                AudioMenu.SetActive(false);
                VideoMenu.SetActive(false);
                ControlsMenu.SetActive(false);
                CursorCrosshair.SetActive(true);
                AssaultRifleGun.SetActive(true);
                AmmoShot         = true;
                Cursor.lockState = CursorLockMode.Locked;
                Cursor.visible   = false;
                pauseText.text   = "";
                levelMusic.Play();
            }
        }
        if (Input.GetMouseButton(0) && Time.time > nextFire && AmmoShot == true)
        {
            recoilComponent.StartRecoil(0.01f, -2f, 40f);
            Ammo -= 1;
            SetCountAmmo();
            nextFire           = Time.time + fireRate;
            muzzleFlashEnabled = true;
            Shoot.Play();
            //The Bullet instantiation happens here.
            GameObject Temporary_Bullet_Handler;
            Temporary_Bullet_Handler = Instantiate(Bullet, Bullet_Emitter.transform.position, Bullet_Emitter.transform.rotation) as GameObject;

            //Sometimes bullets may appear rotated incorrectly due to the way its pivot was set from the original modeling package.
            //This is EASILY corrected here, you might have to rotate it from a different axis and or angle based on your particular mesh.
            Temporary_Bullet_Handler.transform.Rotate(Vector3.left * 90);

            //Retrieve the Rigidbody component from the instantiated Bullet and control it.
            Rigidbody Temporary_RigidBody;
            Temporary_RigidBody = Temporary_Bullet_Handler.GetComponent <Rigidbody>();

            //Tell the bullet to be "pushed" forward by an amount set by Bullet_Forward_Force.
            Temporary_RigidBody.AddForce(CameraPosition.transform.forward * Bullet_Forward_Force);

            //Basic Clean Up, set the Bullets to self destruct after 10 Seconds, I am being VERY generous here, normally 3 seconds is plenty.
            Destroy(Temporary_Bullet_Handler, 10.0f);
        }
        if (Ammo <= 25)
        {
            AssaultAmmo.color = new Color(Mathf.Sin(Time.time * 10), 0f, 0f, 1.0f);
        }
        else if (Ammo >= 26)
        {
            AssaultAmmo.color = new Color(1f, 1f, 1f, 1f);
        }
        if (muzzleFlashEnabled == true)
        {
            MuzzleFlashObject.SetActive(true);
            MuzzleFlashObject.transform.Rotate(Random.Range(0, 90), Random.Range(0, 90), Random.Range(0, 90));
            muzzleFlashTimer -= Time.deltaTime;
        }
        if (muzzleFlashTimer <= 0)
        {
            MuzzleFlashObject.SetActive(false);
            muzzleFlashEnabled = false;
            muzzleFlashTimer   = muzzleFlashTimerStart;
        }
        if (whiteScreenFlashEnabled == true)
        {
            whiteScreen.SetActive(true);
            whiteScreenFlashTimer -= Time.deltaTime;
        }
        if (whiteScreenFlashTimer <= 0)
        {
            whiteScreen.SetActive(false);
            whiteScreenFlashEnabled = false;
            whiteScreenFlashTimer   = whiteScreenFlashTimerStart;
        }
    }
Exemplo n.º 5
0
    void Shoot(float weapon_type)
    {
        currentAmmo--;

        if (weapon_type == W_SNIPER)
        {
            animator.SetBool("Scoped", false);
        }

        if (weapon_type != W_GLANUCHER)
        {
            RaycastHit hit;

            if (Physics.Raycast(fpsCam.transform.position, fpsCam.transform.forward, out hit, range))
            {
                string hit_tag = hit.transform.gameObject.tag;

                switch (hit_tag)
                {
                case "Enemy":
                    Instantiate(impactEffectEnemy, hit.point, Quaternion.LookRotation(hit.normal));
                    break;

                case "enemy_runner":
                    Instantiate(impactEffectEnemy, hit.point, Quaternion.LookRotation(hit.normal));
                    break;

                case "enemy_scratcher":
                    Instantiate(impactEffectEnemy, hit.point, Quaternion.LookRotation(hit.normal));
                    break;

                case "enemy_shooter":
                    Instantiate(impactEffectEnemy, hit.point, Quaternion.LookRotation(hit.normal));
                    break;

                case "Pickup0":

                    break;

                default:
                    Instantiate(impactEffectSolid, hit.point, Quaternion.LookRotation(hit.normal));
                    break;
                }

                // Get the gameobject from the object that was hit
                GameObject obj = hit.collider.gameObject;
                // Get the enemyctrl script from current object to check if it's really enemy type
                var script = obj.GetComponent <EnemyCtrl>();
                // Get the enemy type (SCRATCHER, SHOOTER, RUNNER)
                //EnemyCtrl.ENEMY_TYPE enemy_type = script.type;

                // Check if has a texture attatched (if not, can't be destroyed)
                // Check if is enemy
                if (script != null)
                {
                    switch (weapon_type)
                    {
                    case W_AUTOMATIC:
                        script.hp -= DMG_AUTOMATIC;
                        break;

                    case W_SNIPER:
                        script.hp -= DMG_SNIPER;
                        break;
                    }
                }
            }
        }
        else
        {
            Vector3    dir     = fpsCam.transform.forward;
            GameObject granade = Instantiate(granadeModel, throwFromObject.position, fpsCam.transform.rotation);
            granade.GetComponent <Rigidbody>().AddForce(dir * throwForce, ForceMode.Impulse);
        }

        // Weapon recoil
        switch (GUN_TYPE)
        {
        case W_AUTOMATIC:
            recoilComponent.StartRecoil(0.018f, 0.018f, 20f);
            break;

        case W_SNIPER:
            recoilComponent.StartRecoil(0.075f, 0.075f, 10f);
            break;

        case W_GLANUCHER:

            recoilComponent.StartRecoil(0.075f, -0.20f, 10f);

            break;
        }
    }
Exemplo n.º 6
0
    // Update is called once per frame
    public void Update()
    {
        if (Ammo >= 8)
        {
            Ammo = 8;
            SetCountAmmo();
        }
        if (Ammo <= 0)
        {
            Ammo = 0;
            ProtonBall.SetActive(false);
            SetCountAmmo();
            AmmoShot = false;
        }
        if (Input.GetButtonDown("Pause"))
        {
            paused         = !paused;
            Time.timeScale = paused ? 0 : 1;
            if (Input.GetMouseButtonDown(0) && paused == true)
            {
                Ammo -= 0;
            }
            if (paused == true)
            {
                AmmoShot         = false;
                Cursor.lockState = CursorLockMode.None;
                Cursor.visible   = true;
                CursorCrosshair.SetActive(false);
                OptionsMenu.SetActive(true);
                BFGProtonGun.SetActive(false);
                pauseText.text = "Game Paused";
                levelMusic.Pause();
            }
            else
            {
                OptionsMenu.SetActive(false);
                ConfirmMenu.SetActive(false);
                AudioMenu.SetActive(false);
                VideoMenu.SetActive(false);
                ControlsMenu.SetActive(false);
                CursorCrosshair.SetActive(true);
                BFGProtonGun.SetActive(true);
                AmmoShot         = true;
                Cursor.lockState = CursorLockMode.Locked;
                Cursor.visible   = false;
                pauseText.text   = "";
                levelMusic.Play();
            }
        }
        if (Input.GetMouseButton(0) && Time.time > nextFire && AmmoShot == true)
        {
            GunCharge = true;
            if (GunCharge)
            {
                SetGun        = true;
                ChargeUpTimer = Mathf.Clamp(ChargeUpTimer + Time.deltaTime, 0, ChargeUpTime);
                ShakeTimer    = Mathf.Clamp(ShakeTimer + Time.deltaTime, 0, ShakeTime);
                if (ChargeUpTimer > 0 && ChargeUpTimer < 0.1)
                {
                    PowerUp = true;
                }
                if (ChargeUpTimer > 1 && shot)
                {
                    ChargingUp.Play();
                    shot = false;
                }
                //if (ChargeUpTimer > 2.5 && shot)
                //{

                //    if (shot)
                //    {
                //        Shoot.Play();
                //        shot = false;
                //    }
                //}

                if (ChargeUpTimer >= ChargeUpTime && Time.time > nextFire)
                {
                    QuakeSound.Play();
                    Shoot.Play();
                    Bullet.SetActive(true);
                    recoilComponent.StartRecoil(0.5f, -20f, 10f);
                    Ammo -= 1;
                    SetCountAmmo();
                    nextFire = Time.time + fireRate;
                    ProtonBall.SetActive(false);
                    muzzleFlashEnabled         = true;
                    camTransform.localPosition = camOriginalPos;
                    GameObject Temporary_Bullet_Handler;
                    Temporary_Bullet_Handler = Instantiate(Bullet, Bullet_Emitter.transform.position, Bullet_Emitter.transform.rotation) as GameObject;
                    Temporary_Bullet_Handler.transform.Rotate(Vector3.left * 90);
                    Rigidbody Temporary_RigidBody;
                    Temporary_RigidBody = Temporary_Bullet_Handler.GetComponent <Rigidbody>();
                    Temporary_RigidBody.AddForce(CameraPosition.transform.forward * Bullet_Forward_Force);
                    Destroy(Temporary_Bullet_Handler, 4.0f);
                }

                MuzzleFlashObject.SetActive(true);
                ps.gameObject.SetActive(true);
            }
        }
        else
        {
            shot = true;
            ps.gameObject.SetActive(false);
            ChargeUpTimer = 0;
            ShakeTimer    = 0;
            GunCharge     = false;
            MuzzleFlashObject.SetActive(false);
            ChargingUp.Stop();
            ChargeUp.Stop();
            camTransform.localPosition = camOriginalPos;
            if (SetGun)
            {
                gunTransform.localPosition = gunOriginalPos;
                SetGun = false;
            }

            ChargeUpTimer = Mathf.Clamp(ChargeUpTimer - Time.deltaTime, 0, ChargeUpTime);
            ShakeTimer    = Mathf.Clamp(ShakeTimer - Time.deltaTime, 0, ShakeTime);
            if (ChargeUpTimer < 2f && ChargeUpTimer > 1.8f)
            {
                //PlayerAudSrc.clip = MiniGunSpinDown;
                //PlayerAudSrc.loop = false;
                PowerDown = true;
            }
        }

        if (ShakeTimer > 0 && GunCharge)
        {
            camTransform.localPosition = camOriginalPos + Random.insideUnitSphere * ShakeTimer / 2;
            gunTransform.localPosition = gunOriginalPos + Random.insideUnitSphere * GunShakeAmount;
        }
        if (PowerUp)
        {
            ChargeUp.Play();



            PowerUp = false;
        }
        if (PowerDown)
        {
            //PlayerAudSrc.PlayOneShot(MiniGunSpinDown, 0.7f);
            PowerDown = false;
        }

        if (Time.time > nextFire && AmmoShot == true)
        {
            ProtonBall.SetActive(true);
        }
        if (Ammo <= 1)
        {
            BFGcountAmmo.color = new Color(Mathf.Sin(Time.time * 10), 0f, 0f, 1.0f);
        }
        else if (Ammo >= 2)
        {
            BFGcountAmmo.color = new Color(1f, 1f, 1f, 1f);
        }
        if (muzzleFlashEnabled == true)
        {
            //MuzzleFlashObject.transform.Rotate(Random.Range(0, 90), Random.Range(0, 90), Random.Range(0, 90));
            ProtonBall.SetActive(false);
            MuzzleFlashObject.SetActive(true);
            muzzleFlashTimer -= Time.deltaTime;
        }
        if (muzzleFlashTimer <= 0)
        {
            MuzzleFlashObject.SetActive(false);
            muzzleFlashEnabled = false;
            muzzleFlashTimer   = muzzleFlashTimerStart;
        }
        if (whiteScreenFlashEnabled == true)
        {
            whiteScreen.SetActive(true);
            whiteScreenFlashTimer -= Time.deltaTime;
        }
        if (whiteScreenFlashTimer <= 0)
        {
            whiteScreen.SetActive(false);
            whiteScreenFlashEnabled = false;
            whiteScreenFlashTimer   = whiteScreenFlashTimerStart;
        }
    }
Exemplo n.º 7
0
    // Update is called once per frame
    public void Update()
    {
        Axisz = Barrel.transform.rotation.eulerAngles.z;
        if (GotAmmo)
        {
            SpinSpeed = 200;
            float theta = Time.deltaTime * SpinSpeed;
            Barrel.transform.Rotate(Vector3.forward, theta);
            if (BarrelSpin && BarrelCounter == 0 && AmmoShot)
            {
                Barrel.transform.Rotate(Vector3.forward, theta);
                Mathf.Clamp(Axisz, 240, 240);
            }
            if (Axisz > 237 && BarrelCounter == 0 && AmmoShot)
            {
                GotAmmo       = false;
                BarrelSpin    = false;
                BarrelCounter = 1;
            }
            if (BarrelSpin && BarrelCounter == 1 && AmmoShot)
            {
                Barrel.transform.Rotate(Vector3.forward, theta);
                Mathf.Clamp(Axisz, 0, 0);
            }
            if (Axisz > 0 && Axisz < 6 && BarrelCounter == 1 && AmmoShot)
            {
                GotAmmo       = false;
                BarrelSpin    = false;
                BarrelCounter = 2;
            }
            if (BarrelSpin && BarrelCounter == 2 && AmmoShot)
            {
                Barrel.transform.Rotate(Vector3.forward, theta);
                Mathf.Clamp(Axisz, 120, 120);
            }
            if (Axisz >= 117 && BarrelCounter == 2 && AmmoShot)
            {
                GotAmmo       = false;
                BarrelSpin    = false;
                BarrelCounter = 0;
            }
        }

        if (BarrelSpin && !AmmoShot)
        {
            SpinSpeed = 50;
            float theta = Time.deltaTime * SpinSpeed;
            Barrel.transform.Rotate(Vector3.forward, theta);
        }
        if (BarrelSpin && BarrelCounter == 0 && AmmoShot)
        {
            SpinSpeed = 200;
            float theta = Time.deltaTime * SpinSpeed;
            Barrel.transform.Rotate(Vector3.forward, theta);
            Mathf.Clamp(Axisz, 240, 240);
        }
        if (Axisz > 237 && BarrelCounter == 0 && AmmoShot)
        {
            BarrelSpin    = false;
            BarrelCounter = 1;
        }
        if (BarrelSpin && BarrelCounter == 1 && AmmoShot)
        {
            float theta = Time.deltaTime * SpinSpeed;
            Barrel.transform.Rotate(Vector3.forward, theta);
            Mathf.Clamp(Axisz, 0, 0);
        }
        if (Axisz > 0 && Axisz < 6 && BarrelCounter == 1 && AmmoShot)
        {
            BarrelSpin    = false;
            BarrelCounter = 2;
        }


        if (BarrelSpin && BarrelCounter == 2 && AmmoShot)
        {
            float theta = Time.deltaTime * SpinSpeed;
            Barrel.transform.Rotate(Vector3.forward, theta);
            Mathf.Clamp(Axisz, 120, 120);
        }
        if (Axisz >= 117 && BarrelCounter == 2 && AmmoShot)
        {
            BarrelSpin    = false;
            BarrelCounter = 0;
        }



        if (Ammo >= 10)
        {
            Ammo = 10;
            SetCountAmmo();
        }
        if (Ammo <= 0)
        {
            Ammo = 0;
            Rocket.SetActive(false);
            Rocket2.SetActive(false);
            Rocket3.SetActive(false);
            BarrelSpin = true;
            SetCountAmmo();
            AmmoShot = false;
        }

        if (Input.GetButtonDown("Pause"))
        {
            paused         = !paused;
            Time.timeScale = paused ? 0 : 1;
            if (Input.GetMouseButtonDown(0) && paused == true)
            {
                Ammo -= 0;
            }
            if (paused == true)
            {
                AmmoShot         = false;
                Cursor.lockState = CursorLockMode.None;
                Cursor.visible   = true;
                CursorCrosshair.SetActive(false);
                OptionsMenu.SetActive(true);
                RocketLauncherGun.SetActive(false);
                pauseText.text = "Game Paused";
                levelMusic.Pause();
            }
            else
            {
                OptionsMenu.SetActive(false);
                ConfirmMenu.SetActive(false);
                AudioMenu.SetActive(false);
                VideoMenu.SetActive(false);
                ControlsMenu.SetActive(false);
                CursorCrosshair.SetActive(true);
                RocketLauncherGun.SetActive(true);
                AmmoShot         = true;
                Cursor.lockState = CursorLockMode.Locked;
                Cursor.visible   = false;
                pauseText.text   = "";
                levelMusic.Play();
            }
        }
        if (Input.GetMouseButton(0) && Time.time > nextFire && AmmoShot == true && RocketSlot0 == true)
        {
            BarrelSpin = true;
            Bullet.SetActive(true);
            recoilComponent.StartRecoil(0.5f, -20f, 10f);
            Ammo -= 1;
            SetCountAmmo();
            nextFire = Time.time + fireRate;

            muzzleFlashEnabled = true;
            Shoot.Play();
            //The Bullet instantiation happens here.
            //GameObject Temporary_Bullet_Handler;
            Rocket3.SetActive(true);
            Rocket.SetActive(false);
            Rocket2.SetActive(true);
            GameObject Temporary_Bullet_Handler;
            Temporary_Bullet_Handler = Instantiate(Bullet, SlotOne_Bullet_Emitter.transform.position, SlotOne_Bullet_Emitter.transform.rotation) as GameObject;
            Temporary_Bullet_Handler.transform.Rotate(Vector3.left * 90);

            //Retrieve the Rigidbody component from the instantiated Bullet and control it.
            Rigidbody Temporary_RigidBody;
            Temporary_RigidBody = Temporary_Bullet_Handler.GetComponent <Rigidbody>();

            //Tell the bullet to be "pushed" forward by an amount set by Bullet_Forward_Force.
            Temporary_RigidBody.AddForce(CameraPosition.transform.forward * Bullet_Forward_Force);

            //Basic Clean Up, set the Bullets to self destruct after 10 Seconds, I am being VERY generous here, normally 3 seconds is plenty.
            Destroy(Temporary_Bullet_Handler, 4.0f);
            RocketSlot0 = false;
            RocketSlot1 = true;
            RocketSlot2 = false;
        }
        if (Input.GetMouseButton(0) && Time.time > nextFire && AmmoShot == true && RocketSlot1 == true)
        {
            BarrelSpin = true;
            Bullet.SetActive(true);
            recoilComponent.StartRecoil(0.5f, -20f, 10f);
            Ammo -= 1;
            SetCountAmmo();
            nextFire           = Time.time + fireRate;
            muzzleFlashEnabled = true;
            Shoot.Play();
            //The Bullet instantiation happens here.
            //GameObject Temporary_Bullet_Handler;
            Rocket2.SetActive(false);
            Rocket3.SetActive(true);
            Rocket.SetActive(true);

            GameObject Temporary_Bullet_Handler;
            Temporary_Bullet_Handler = Instantiate(Bullet, SlotTwo_Bullet_Emitter.transform.position, SlotTwo_Bullet_Emitter.transform.rotation) as GameObject;
            Temporary_Bullet_Handler.transform.Rotate(Vector3.left * 90);

            //Retrieve the Rigidbody component from the instantiated Bullet and control it.
            Rigidbody Temporary_RigidBody;
            Temporary_RigidBody = Temporary_Bullet_Handler.GetComponent <Rigidbody>();

            //Tell the bullet to be "pushed" forward by an amount set by Bullet_Forward_Force.
            Temporary_RigidBody.AddForce(CameraPosition.transform.forward * Bullet_Forward_Force);

            //Basic Clean Up, set the Bullets to self destruct after 10 Seconds, I am being VERY generous here, normally 3 seconds is plenty.
            Destroy(Temporary_Bullet_Handler, 4.0f);
            RocketSlot0 = false;
            RocketSlot1 = false;
            RocketSlot2 = true;
        }
        if (Input.GetMouseButton(0) && Time.time > nextFire && AmmoShot == true && RocketSlot2 == true)
        {
            BarrelSpin = true;
            Bullet.SetActive(true);
            recoilComponent.StartRecoil(0.5f, -20f, 10f);
            Ammo -= 1;
            SetCountAmmo();
            nextFire = Time.time + fireRate;

            if (Ammo <= 0)
            {
                Ammo = 0;
                Rocket.SetActive(false);
                Rocket2.SetActive(false);
                Rocket3.SetActive(false);
                RocketLauncherGun.SetActive(false);
                AmmoShot = false;
            }
            muzzleFlashEnabled = true;
            Shoot.Play();
            //The Bullet instantiation happens here.
            //GameObject Temporary_Bullet_Handler;
            Rocket3.SetActive(false);
            Rocket.SetActive(true);
            Rocket2.SetActive(true);
            GameObject Temporary_Bullet_Handler;
            Temporary_Bullet_Handler = Instantiate(Bullet, SlotThree_Bullet_Emitter.transform.position, SlotThree_Bullet_Emitter.transform.rotation) as GameObject;
            Temporary_Bullet_Handler.transform.Rotate(Vector3.left * 90);

            //Retrieve the Rigidbody component from the instantiated Bullet and control it.
            Rigidbody Temporary_RigidBody;
            Temporary_RigidBody = Temporary_Bullet_Handler.GetComponent <Rigidbody>();

            //Tell the bullet to be "pushed" forward by an amount set by Bullet_Forward_Force.
            Temporary_RigidBody.AddForce(CameraPosition.transform.forward * Bullet_Forward_Force);

            //Basic Clean Up, set the Bullets to self destruct after 10 Seconds, I am being VERY generous here, normally 3 seconds is plenty.
            Destroy(Temporary_Bullet_Handler, 4.0f);
            RocketSlot0 = true;
            RocketSlot1 = false;
            RocketSlot2 = false;
        }

        if (Time.time > nextFire && AmmoShot == true)
        {
            Rocket.SetActive(true);
            Rocket2.SetActive(true);
            Rocket3.SetActive(true);
        }
        if (Ammo <= 1)
        {
            RocketcountAmmo.color = new Color(Mathf.Sin(Time.time * 10), 0f, 0f, 1.0f);
        }
        else if (Ammo >= 2)
        {
            RocketcountAmmo.color = new Color(1f, 1f, 1f, 1f);
        }
        if (muzzleFlashEnabled == true && RocketSlot0 == true)
        {
            //Reload.Play();
            SlotOneMuzzleFlashObject.transform.Rotate(Random.Range(0, 90), Random.Range(0, 90), Random.Range(0, 90));
            Rocket3.SetActive(true);
            Rocket.SetActive(false);
            Rocket2.SetActive(true);
            SlotOneMuzzleFlashObject.SetActive(true);
            muzzleFlashTimer -= Time.deltaTime;
        }
        if (muzzleFlashEnabled == true && RocketSlot1 == true)
        {
            //Reload.Play();
            SlotTwoMuzzleFlashObject.transform.Rotate(Random.Range(0, 90), Random.Range(0, 90), Random.Range(0, 90));
            Rocket3.SetActive(true);
            Rocket.SetActive(true);
            Rocket2.SetActive(false);
            SlotTwoMuzzleFlashObject.SetActive(true);
            muzzleFlashTimer -= Time.deltaTime;
        }
        if (muzzleFlashEnabled == true && RocketSlot2 == true)
        {
            //Reload.Play();
            SlotThreeMuzzleFlashObject.transform.Rotate(Random.Range(0, 90), Random.Range(0, 90), Random.Range(0, 90));
            Rocket3.SetActive(false);
            Rocket.SetActive(true);
            Rocket2.SetActive(true);
            SlotThreeMuzzleFlashObject.SetActive(true);
            muzzleFlashTimer -= Time.deltaTime;
        }
        if (muzzleFlashTimer <= 0)
        {
            SlotOneMuzzleFlashObject.SetActive(false);
            SlotTwoMuzzleFlashObject.SetActive(false);
            SlotThreeMuzzleFlashObject.SetActive(false);
            muzzleFlashEnabled = false;
            muzzleFlashTimer   = muzzleFlashTimerStart;
        }
        if (whiteScreenFlashEnabled == true)
        {
            whiteScreen.SetActive(true);
            whiteScreenFlashTimer -= Time.deltaTime;
        }
        if (whiteScreenFlashTimer <= 0)
        {
            whiteScreen.SetActive(false);
            whiteScreenFlashEnabled = false;
            whiteScreenFlashTimer   = whiteScreenFlashTimerStart;
        }
    }
Exemplo n.º 8
0
    //&& Time.time > nextFire
    // Update is called once per frame
    public void Update()
    {
        if (Time.time > nextFire && AmmoShot == true)
        {
            FlakShell.SetActive(true);
        }
        if (Ammo >= 60)
        {
            Ammo = 60;
            SetCountAmmo();
        }
        if (Ammo <= 0)
        {
            FlakShell.SetActive(false);
            Ammo = 0;
            SetCountAmmo();
            AmmoShot = false;
        }
        if (Input.GetButtonDown("Pause"))
        {
            paused         = !paused;
            Time.timeScale = paused ? 0 : 1;
            if (Input.GetMouseButtonDown(0) && paused == true)
            {
                Ammo -= 0;
            }
            if (paused == true)
            {
                AmmoShot         = false;
                Cursor.lockState = CursorLockMode.None;
                Cursor.visible   = true;
                CursorCrosshair.SetActive(false);
                OptionsMenu.SetActive(true);
                FlakCannonGun.SetActive(false);
                pauseText.text = "Game Paused";
                levelMusic.Pause();
            }
            else
            {
                OptionsMenu.SetActive(false);
                ConfirmMenu.SetActive(false);
                AudioMenu.SetActive(false);
                VideoMenu.SetActive(false);
                ControlsMenu.SetActive(false);
                CursorCrosshair.SetActive(true);
                FlakCannonGun.SetActive(true);
                AmmoShot         = true;
                Cursor.visible   = false;
                Cursor.lockState = CursorLockMode.Locked;
                Cursor.visible   = false;
                pauseText.text   = "";
                levelMusic.Play();
            }
        }
        if (Input.GetMouseButton(0) && Time.time > nextFire && AmmoShot == true)
        {
            FlakShell.SetActive(false);
            recoilComponent.StartRecoil(0.2f, -10f, 10f);
            Ammo -= 1;
            SetCountAmmo();
            nextFire = Time.time + fireRate;

            muzzleFlashEnabled = true;
            //nextFire = Time.time + fireRate;
            Shoot.Play();
            RandomizeForce();

            GameObject Temporary_Bullet_Handler;
            Temporary_Bullet_Handler = Instantiate(ShellBullet, Bullet_Emitter1.transform.position, Bullet_Emitter1.transform.rotation) as GameObject;
            Temporary_Bullet_Handler.transform.Rotate(Vector3.left * 90);
            Rigidbody Temporary_RigidBody;
            Temporary_RigidBody = Temporary_Bullet_Handler.GetComponent <Rigidbody>();
            Temporary_RigidBody.AddForce(CameraPosition.transform.forward * Bullet_Forward_Force1);
            Temporary_RigidBody.AddForce(CameraPosition.transform.right * Bullet_Side_Force1);
            Temporary_RigidBody.AddForce(CameraPosition.transform.up * Bullet_Up_Force1);
            Destroy(Temporary_Bullet_Handler, 10.0f);

            GameObject Temporary_Bullet_Handler2;
            Temporary_Bullet_Handler2 = Instantiate(ShellBullet, Bullet_Emitter2.transform.position, Bullet_Emitter2.transform.rotation) as GameObject;
            Temporary_Bullet_Handler2.transform.Rotate(Vector3.left * 90);
            Rigidbody Temporary_RigidBody2;
            Temporary_RigidBody2 = Temporary_Bullet_Handler2.GetComponent <Rigidbody>();
            Temporary_RigidBody2.AddForce(CameraPosition.transform.forward * Bullet_Forward_Force2);
            Temporary_RigidBody2.AddForce(CameraPosition.transform.right * Bullet_Side_Force2);
            Temporary_RigidBody2.AddForce(CameraPosition.transform.up * Bullet_Up_Force2);
            Destroy(Temporary_Bullet_Handler2, 10.0f);

            GameObject Temporary_Bullet_Handler3;
            Temporary_Bullet_Handler3 = Instantiate(ShellBullet, Bullet_Emitter3.transform.position, Bullet_Emitter3.transform.rotation) as GameObject;
            Temporary_Bullet_Handler3.transform.Rotate(Vector3.left * 90);
            Rigidbody Temporary_RigidBody3;
            Temporary_RigidBody3 = Temporary_Bullet_Handler3.GetComponent <Rigidbody>();
            Temporary_RigidBody3.AddForce(CameraPosition.transform.forward * Bullet_Forward_Force3);
            Temporary_RigidBody3.AddForce(CameraPosition.transform.right * Bullet_Side_Force3);
            Temporary_RigidBody3.AddForce(CameraPosition.transform.up * Bullet_Up_Force3);
            Destroy(Temporary_Bullet_Handler3, 10.0f);

            GameObject Temporary_Bullet_Handler4;
            Temporary_Bullet_Handler4 = Instantiate(ShellBullet, Bullet_Emitter4.transform.position, Bullet_Emitter4.transform.rotation) as GameObject;
            Temporary_Bullet_Handler4.transform.Rotate(Vector3.left * 90);
            Rigidbody Temporary_RigidBody4;
            Temporary_RigidBody4 = Temporary_Bullet_Handler4.GetComponent <Rigidbody>();
            Temporary_RigidBody4.AddForce(CameraPosition.transform.forward * Bullet_Forward_Force4);
            Temporary_RigidBody4.AddForce(CameraPosition.transform.right * Bullet_Side_Force4);
            Temporary_RigidBody4.AddForce(CameraPosition.transform.up * Bullet_Up_Force4);
            Destroy(Temporary_Bullet_Handler4, 10.0f);


            GameObject Temporary_Bullet_Handler5;
            Temporary_Bullet_Handler5 = Instantiate(ShellBullet, Bullet_Emitter5.transform.position, Bullet_Emitter5.transform.rotation) as GameObject;
            Temporary_Bullet_Handler5.transform.Rotate(Vector3.left * 90);
            Rigidbody Temporary_RigidBody5;
            Temporary_RigidBody5 = Temporary_Bullet_Handler5.GetComponent <Rigidbody>();
            Temporary_RigidBody5.AddForce(CameraPosition.transform.forward * Bullet_Forward_Force5);
            Temporary_RigidBody5.AddForce(CameraPosition.transform.right * Bullet_Side_Force5);
            Temporary_RigidBody5.AddForce(CameraPosition.transform.up * Bullet_Up_Force5);
            Destroy(Temporary_Bullet_Handler5, 10.0f);
        }
        if (Ammo <= 10)
        {
            FlakcountAmmo.color = new Color(Mathf.Sin(Time.time * 10), 0f, 0f, 1.0f);
        }
        else if (Ammo >= 11)
        {
            FlakcountAmmo.color = new Color(1f, 1f, 1f, 1f);
        }
        if (muzzleFlashEnabled == true)
        {
            FlakShell.SetActive(false);
            MuzzleFlashObject.transform.Rotate(Random.Range(0, 90), Random.Range(0, 90), Random.Range(0, 90));
            MuzzleFlashObject.SetActive(true);
            muzzleFlashTimer -= Time.deltaTime;
        }
        if (muzzleFlashTimer <= 0)
        {
            MuzzleFlashObject.SetActive(false);
            muzzleFlashEnabled = false;
            muzzleFlashTimer   = muzzleFlashTimerStart;
        }
        if (whiteScreenFlashEnabled == true)
        {
            whiteScreen.SetActive(true);
            whiteScreenFlashTimer -= Time.deltaTime;
        }
        if (whiteScreenFlashTimer <= 0)
        {
            whiteScreen.SetActive(false);
            whiteScreenFlashEnabled = false;
            whiteScreenFlashTimer   = whiteScreenFlashTimerStart;
        }
    }