예제 #1
0
    void FireShot()
    {
        if (wep.GetAmmo(weaponName) >= 1)
        {
            timeSinceShot = 0;

            UseAmmo();

            // forwards, and down
            Vector3 startPt = projectileStartPoint.transform.position
                              + projectileStartPoint.transform.forward * 2.5f
                              + projectileStartPoint.transform.TransformDirection(Vector3.right) * 0.35f
                              - projectileStartPoint.transform.up * 0.35f
            ;
            // sorta redundant
            milkModel.SendMessage("startKick");

            Quaternion rotation = projectileStartPoint.transform.rotation *
                                  Quaternion.Euler(new Vector3(Random.Range(-4f, 4f), Random.Range(-6f, 6f), 10f));                // aim a little more to the left

            MilkParticle.SetActive(true);
            Instantiate(MilkParticle, startPt, rotation);
            MilkParticle.SetActive(false);

            audio.Play();
            if (wep.GetAmmo(weaponName) == 0)
            {
                Reload();
            }
        }
    }
예제 #2
0
    void Update()
    {
        if (wep.currentWeapon == weaponName)
        {
            timeSinceShot += Time.deltaTime;

            if (!equipped)
            {
                // cancel reload when not equipped
                reloading   = false;
                reloadTimer = 0;

                if (equipTimer >= timeToEquip)
                {
                    equipped      = true;
                    timeSinceShot = rateOfFire;
                }
                else
                {
                    equipTimer += Time.deltaTime;
                }
            }

            // if R key press has been queued
            if (reloading)
            {
                if (reloadTimer >= timeToReload)
                {
                    Reload();
                    reloading     = false;
                    timeSinceShot = rateOfFire;
                }
                else if (timeSinceShot >= rateOfFire)
                {
                    reloadTimer += Time.deltaTime;

                    // starting to reload
                    if ((timeSinceShot - Time.deltaTime) < rateOfFire)
                    {
                        BroadcastMessage("ReloadAnim");
                    }
                }
            }

            if (previousWep != wep.currentWeapon)
            {
                // show viewmodel
                equipTimer = 0;
                EggLauncherModel.SetActive(true);
            }

            if (equipped && !reloading)
            {
                // M1
                if (Time.timeScale == 1)
                {
                    if (Input.GetButton("Fire1") && timeSinceShot >= rateOfFire)
                    {
                        if (wep.GetAmmo(weaponName) >= 1)
                        {
                            FireShot();
                        }
                    }
                }

                if ((Input.GetAxis("Reload") == 1 || wep.GetAmmo(weaponName) == 0) &&
                    wep.GetAmmo(weaponName) < wep.GetMaxAmmo(weaponName))
                {
                    reloadTimer = 0;
                    reloading   = true;

                    if (timeSinceShot >= rateOfFire)
                    {
                        BroadcastMessage("ReloadAnim");
                    }
                }
            }
        }
        else
        {
            if (previousWep != wep.currentWeapon)
            {
                // hide viewmodel
                EggLauncherModel.SetActive(false);
                equipped = false;
            }
        }
        previousWep = wep.currentWeapon;
    }
예제 #3
0
    void Update()
    {
        int randompic = Random.Range(0, 2);

        muzzleFlash1.SetActive(false);
        muzzleFlash2.SetActive(false);
        muzzleLight.GetComponent <Light>().enabled = false;
        if (wep.currentWeapon == weaponName)
        {
            timeSinceShot += Time.deltaTime;

            if (previousWep != wep.currentWeapon)
            {
                // show viewmodel
                equipTimer = 0;
                cornRifleModel.SetActive(true);
            }

            if (!equipped)
            {
                // cancel reload when not equipped
                reloading   = false;
                reloadTimer = 0;

                if (equipTimer >= timeToEquip)
                {
                    equipped      = true;
                    timeSinceShot = rateOfFire;
                }
                else
                {
                    equipTimer += Time.deltaTime;
                }
            }

            if (reloading)
            {
                if (reloadTimer >= timeToReload)
                {
                    Reload();
                    reloading     = false;
                    timeSinceShot = rateOfFire;
                }
                else if (timeSinceShot >= rateOfFire)
                {
                    reloadTimer += Time.deltaTime;

                    // starting to reload
                    if ((timeSinceShot - Time.deltaTime) < rateOfFire)
                    {
                        BroadcastMessage("ReloadAnim");
                    }
                }
            }


            // M1
            if (equipped && !reloading)
            {
                if (Time.timeScale == 1)
                {
                    if (Input.GetButton("Fire1") && timeSinceShot >= rateOfFire)
                    {
                        if (wep.GetAmmo(weaponName) >= 6)
                        {
                            FireShot();
                            //Plays sound and activates the muzzle flash

                            if (randompic == 0)
                            {
                                muzzleFlash1.SetActive(true);
                            }
                            if (randompic == 1)
                            {
                                muzzleFlash2.SetActive(true);
                            }
                            muzzleLight.GetComponent <Light> ().enabled = true;

                            if (wep.GetAmmo(weaponName) == 0)
                            {
                                BroadcastMessage("ReloadAnim");
                                reloadTimer = 0;
                                reloading   = true;
                            }
                        }
                    }
                }

                // reload when R pressed or out of ammo
                if ((Input.GetAxis("Reload") == 1 || wep.GetAmmo(weaponName) == 0) &&
                    wep.GetAmmo(weaponName) < wep.GetMaxAmmo(weaponName))
                {
                    reloadTimer = 0;
                    reloading   = true;

                    if (timeSinceShot >= rateOfFire)
                    {
                        BroadcastMessage("ReloadAnim");
                    }
                }
            }
        }
        else
        {
            if (previousWep != wep.currentWeapon)
            {
                // hide viewmodel
                cornRifleModel.SetActive(false);
                equipped = false;
            }
        }
        previousWep = wep.currentWeapon;
    }
예제 #4
0
    void Update()
    {
        muzzleLight.GetComponent <Light>().enabled = false;
        if (wep.currentWeapon == weaponName)
        {
            timeSinceShot += Time.deltaTime;

            if (!equipped)
            {
                // cancel reload when not equipped
                reloading   = false;
                reloadTimer = 0;

                if (equipTimer >= timeToEquip)
                {
                    equipped      = true;
                    timeSinceShot = rateOfFire;
                }
                else
                {
                    equipTimer += Time.deltaTime;
                }
            }

            if (reloading)
            {
                // reload has finished
                if (reloadTimer >= timeToReload)
                {
                    Reload();
                    reloading     = false;
                    timeSinceShot = rateOfFire;
                }
                else if (timeSinceShot >= rateOfFire)
                {
                    reloadTimer += Time.deltaTime;

                    // starting to reload
                    if ((timeSinceShot - Time.deltaTime) < rateOfFire)
                    {
                        BroadcastMessage("ReloadAnim");
                    }
                }
            }

            if (previousWep != wep.currentWeapon)
            {
                equipTimer = 0;

                // show viewmodel
                revolverModel.SetActive(true);
                crosshair.SetActive(true);
            }
            muzzleFlash.SetActive(false);

            if (equipped && !reloading)
            {
                // M1
                if (Time.timeScale == 1)
                {
                    if (Input.GetButton("Fire1") && timeSinceShot >= rateOfFire)
                    {
                        if (wep.GetAmmo(weaponName) >= 1)
                        {
                            FireShot();
                            //Plays sound and activates the muzzle flash
                            int firemode = random.Next(0, 2);

                            muzzleFlash.SetActive(true);
                            muzzleLight.GetComponent <Light>().enabled = true;
                            audio.Play();
                            if (firemode == 1)
                            {
                                BroadcastMessage("Fire1"); // play anim
                            }
                            else
                            {
                                BroadcastMessage("Fire2"); // play anim
                            }
                        }
                    }
                }

                // when R is pressed or ammo is out, ammo is not full, and it is not currently zoomed
                // queues reload if pressed while in fire cooldown (pulling bolt)
                if ((Input.GetAxis("Reload") == 1 || wep.GetAmmo(weaponName) == 0) &&
                    wep.GetAmmo(weaponName) < wep.GetMaxAmmo(weaponName))
                {
                    reloadTimer = 0;
                    reloading   = true;

                    if (timeSinceShot >= rateOfFire)
                    {
                        BroadcastMessage("ReloadAnim");
                    }
                }
            }
        }
        else
        {
            if (previousWep != wep.currentWeapon)
            {
                // hide viewmodel
                revolverModel.SetActive(false);
                crosshair.SetActive(true);
            }
        }
        previousWep = wep.currentWeapon;
    }
예제 #5
0
    void Update()
    {
        muzzleLight.GetComponent <Light>().enabled = false;
        if (wep.currentWeapon == weaponName)
        {
            crosshair.SetActive(false);
            timeSinceShot += Time.deltaTime;
            zoomCrosshairObject.SetActive(true);

            if (!equipped)
            {
                // cancel reload when not equipped
                reloading   = false;
                reloadTimer = 0;

                if (equipTimer >= timeToEquip)
                {
                    equipped      = true;
                    timeSinceShot = rateOfFire;
                }
                else
                {
                    equipTimer += Time.deltaTime;
                }
            }

            if (reloading)
            {
                // reload has finished
                if (reloadTimer >= timeToReload)
                {
                    Reload();
                    reloading     = false;
                    timeSinceShot = rateOfFire;
                }
                else if (timeSinceShot >= rateOfFire)
                {
                    reloadTimer += Time.deltaTime;

                    // starting to reload
                    if ((timeSinceShot - Time.deltaTime) < rateOfFire)
                    {
                        BroadcastMessage("ReloadAnim");
                    }
                }
            }

            if (previousWep != wep.currentWeapon)
            {
                equipTimer = 0;

                // show viewmodel
                barrettModel1.SetActive(true);
                barrettModel2.SetActive(true);
                barrettModel3.SetActive(true);
                barrettModelParent.SetActive(true);
                barretRend1.enabled = true;
                barretRend2.enabled = true;
                barretRend3.enabled = true;
                crosshair.SetActive(false);
            }
            muzzleFlash.SetActive(false);

            if (equipped && !reloading)
            {
                // M1
                if (Time.timeScale == 1)
                {
                    if (Input.GetButton("Fire1") && timeSinceShot >= rateOfFire)
                    {
                        if (wep.GetAmmo(weaponName) >= 1)
                        {
                            FireShot();
                            //Plays sound and activates the muzzle flash

                            muzzleFlash.SetActive(true);
                            muzzleLight.GetComponent <Light>().enabled = true;
                            audio.Play();

                            // zoom out after shot
                            if (zoomed)
                            {
                                controller.SendMessage("Zoom");
                                zoomed = false;
                                DoZoom(false, defaultFOV, zoomFOV);
                            }
                            crosshair.SetActive(false);

                            BroadcastMessage("Fire"); // play anim
                        }
                    }
                    // only allow zoom when ready to fire (i.e. not playing bolt anim)
                    // add exception for when zoomed
                    if (Input.GetButtonDown("Fire2") && timeSinceShot >= rateOfFire)
                    {
                        zoomed = !zoomed;
                        DoZoom(zoomed, defaultFOV, zoomFOV);

                        // send zoom state to the controller
                        controller.SendMessage("Zoom");

                        // animate the barrett -- not gonna use
                        //if (zoomed) {
                        //	BroadcastMessage ("Scope");
                        //} else {
                        //	BroadcastMessage ("Unscope");
                        //}
                    }
                }

                // when R is pressed or ammo is out, ammo is not full, and it is not currently zoomed
                // queues reload if pressed while in fire cooldown (pulling bolt)
                if ((Input.GetAxis("Reload") == 1 || wep.GetAmmo(weaponName) == 0) &&
                    wep.GetAmmo(weaponName) < wep.GetMaxAmmo(weaponName) && !zoomed)
                {
                    reloadTimer = 0;
                    reloading   = true;

                    if (timeSinceShot >= rateOfFire)
                    {
                        BroadcastMessage("ReloadAnim");
                    }
                }
            }
        }
        else
        {
            if (previousWep != wep.currentWeapon)
            {
                // hide viewmodel
                barrettModel1.SetActive(false);
                barrettModel2.SetActive(false);
                barrettModel3.SetActive(false);
                barrettModelParent.SetActive(false);
                crosshair.SetActive(true);

                // unzoomed if zoomed in
                if (zoomed)
                {
                    zoomed = !zoomed;
                    DoZoom(zoomed, defaultFOV, zoomFOV);

                    // send zoom state to the controller
                    controller.SendMessage("Zoom");
                }
            }
        }
        previousWep = wep.currentWeapon;
    }