Пример #1
0
 public void SetRightWeapon(GameObject weapon)
 {
     if (weapon != null)
     {
         var w = weapon.GetComponent <vShooterWeapon>();
         rWeapon = w;
         if (rWeapon)
         {
             rWeapon.ignoreTags = ignoreTags;
             rWeapon.hitLayer   = aimTargetLayer;
             rWeapon.root       = transform;
             rWeapon.onDestroy.AddListener(OnDestroyWeapon);
             if (usingThirdPersonController)
             {
                 if (useAmmoDisplay && !ammoDisplay)
                 {
                     ammoDisplay = FindObjectOfType <vAmmoDisplay>();
                 }
                 if (useAmmoDisplay && ammoDisplay)
                 {
                     ammoDisplay.Show();
                 }
                 UpdateTotalAmmo();
             }
             currentShotTime = 0;
         }
     }
 }
        public void SetRightWeapon(GameObject weapon)
        {
            if (weapon != null)
            {
                var w = weapon.GetComponentInChildren <vShooterWeapon>(true);
                rWeapon = w;
                if (rWeapon)
                {
                    rWeapon.ignoreTags        = ignoreTags;
                    rWeapon.hitLayer          = damageLayer;
                    rWeapon.root              = transform;
                    rWeapon.isSecundaryWeapon = false;
                    rWeapon.onDestroy.AddListener(OnDestroyWeapon);
                    if (rWeapon.dontUseReload)
                    {
                        ReloadWeaponAuto(rWeapon, false);
                    }
                    if (rWeapon.secundaryWeapon)
                    {
                        rWeapon.secundaryWeapon.ignoreTags        = ignoreTags;
                        rWeapon.secundaryWeapon.hitLayer          = damageLayer;
                        rWeapon.secundaryWeapon.root              = transform;
                        rWeapon.secundaryWeapon.isSecundaryWeapon = true;
                        if (rWeapon.secundaryWeapon.dontUseReload)
                        {
                            ReloadWeaponAuto(rWeapon.secundaryWeapon, true);
                        }
                    }

                    currentShotTime = 0;
                    LoadIKAdjust(rWeapon.weaponCategory);
                }
            }
        }
Пример #3
0
    public void ReloadWeapon(vShooterWeapon weapon)
    {
        if (weapon.ammoCount >= weapon.clipSize)
        {
            return;
        }
        var ammoItem = ammoItems.FindAll(item => item.id == weapon.ammoID);

        for (int i = 0; i < ammoItem.Count; i++)
        {
            if (weapon.ammoCount >= weapon.clipSize)
            {
                break;
            }
            var needAmmo = weapon.clipSize - weapon.ammoCount;
            if (ammoItem[i].amount < needAmmo)
            {
                needAmmo = ammoItem[i].amount;
            }

            weapon.AddAmmo(needAmmo);
            if (itemManager)
            {
                itemManager.LeaveItem(ammoItem[i], needAmmo);
            }
        }
    }
Пример #4
0
 void Mod_Weapon(GameObject target)
 {
     if (target.GetComponent <vShooterWeapon>())
     {
         vShooterWeapon org = target.GetComponent <vShooterWeapon>();
         target.AddComponent <PUN_ShooterWeapon>();
         PUN_Helpers.CopyComponentTo(org, target.GetComponent <PUN_ShooterWeapon>());
         DestroyImmediate(org, true);
         // ------------------------------------------- //
     }
 }
        protected void ReloadWeaponAuto(vShooterWeapon weapon, bool secundaryWeapon = false)
        {
            if (!weapon || !weapon.gameObject.activeSelf)
            {
                return;
            }

            if (!((weapon.ammoCount >= weapon.clipSize)))
            {
                var needAmmo = weapon.clipSize - weapon.ammoCount;
                weapon.AddAmmo(needAmmo);
            }
        }
Пример #6
0
    public vAmmo WeaponAmmo(vShooterWeapon weapon)
    {
        if (!weapon)
        {
            return(null);
        }
        var ammo = new vAmmo();

        if (ammoManager && ammoManager.ammos != null && ammoManager.ammos.Count > 0)
        {
            ammo = ammoManager.GetAmmo(weapon.ammoID);
        }
        return(ammo);
    }
Пример #7
0
    protected virtual void UpdateTotalAmmo(vShooterWeapon weapon, ref int targetTotalAmmo, int displayId)
    {
        if (!weapon)
        {
            return;
        }
        var ammoCount = 0;
        var ammo      = WeaponAmmo(weapon);

        if (ammo != null)
        {
            ammoCount += ammo.count;
        }

        targetTotalAmmo = ammoCount;
        UpdateAmmoDisplay(displayId);
    }
Пример #8
0
 protected virtual void HandleShot(vShooterWeapon weapon, GenericInput weaponInput, bool secundaryShot = false)
 {
     if (weapon.chargeWeapon)
     {
         if (weapon.ammoCount > 0 && weapon.powerCharge < 1 && weaponInput.GetButton())
         {
             weapon.powerCharge += Time.deltaTime * weapon.chargeSpeed;
         }
         else if ((weapon.powerCharge >= 1 && weapon.autoShotOnFinishCharge) || weaponInput.GetButtonUp() || (!weaponInput.GetButton() && isAiming && weapon.powerCharge > 0))
         {
             if (shooterManager.hipfireShot)
             {
                 aimTimming = 3f;
             }
             shooterManager.Shoot(aimPosition, !isAiming, secundaryShot);
             weapon.powerCharge = 0;
         }
         animator.SetFloat("PowerCharger", weapon.powerCharge);
     }
     else if (weapon.automaticWeapon ? weaponInput.GetButton() : weaponInput.GetButtonDown())
     {
         if (shooterManager.hipfireShot)
         {
             aimTimming = 3f;
         }
         shooterManager.Shoot(aimPosition, !isAiming, secundaryShot);
     }
     else if (weaponInput.GetButtonDown())
     {
         if (allowAttack == false)
         {
             if (shooterManager.hipfireShot)
             {
                 aimTimming = 1f;
             }
             shooterManager.Shoot(aimPosition, !isAiming, secundaryShot);
             allowAttack = true;
         }
     }
     else
     {
         allowAttack = false;
     }
 }
Пример #9
0
 public void SetRightWeapon(GameObject weapon)
 {
     if (weapon != null)
     {
         var w = weapon.GetComponent <vShooterWeapon>();
         rWeapon = w;
         if (rWeapon)
         {
             rWeapon.ignoreTags = ignoreTags;
             rWeapon.hitLayer   = aimTargetLayer;
             rWeapon.root       = transform;
             rWeapon.onDestroy.AddListener(OnDestroyWeapon);
             if (rWeapon.autoReload)
             {
                 ReloadWeaponAuto(rWeapon, false, false);
             }
             if (rWeapon.secundaryWeapon)
             {
                 rWeapon.secundaryWeapon.ignoreTags        = ignoreTags;
                 rWeapon.secundaryWeapon.hitLayer          = aimTargetLayer;
                 rWeapon.secundaryWeapon.root              = transform;
                 rWeapon.secundaryWeapon.isSecundaryWeapon = true;
                 if (rWeapon.secundaryWeapon.autoReload)
                 {
                     ReloadWeaponAuto(rWeapon.secundaryWeapon, false, true);
                 }
             }
             if (usingThirdPersonController)
             {
                 if (useAmmoDisplay && !ammoDisplayR)
                 {
                     GetAmmoDisplays();
                 }
                 if (useAmmoDisplay && ammoDisplayR)
                 {
                     ammoDisplayR.Show();
                 }
                 UpdateRightAmmo();
             }
             currentShotTime = 0;
         }
     }
 }
Пример #10
0
    protected void ReloadWeaponAuto(vShooterWeapon weapon, bool ignoreAmmo, bool secundaryWeapon = false)
    {
        if (!weapon)
        {
            return;
        }
        UpdateTotalAmmo();

        if (!(!ignoreAmmo && (weapon.ammoCount >= weapon.clipSize || !WeaponHasAmmo(secundaryWeapon))))
        {
            var needAmmo = weapon.clipSize - weapon.ammoCount;

            if (!ignoreAmmo && WeaponAmmo(weapon).count < needAmmo)
            {
                needAmmo = WeaponAmmo(weapon).count;
            }

            weapon.AddAmmo(needAmmo);
            if (!ignoreAmmo)
            {
                WeaponAmmo(weapon).Use(needAmmo);
            }
        }
    }
Пример #11
0
 public bool CanReload(vShooterWeapon weapon)
 {
     throw new NotImplementedException();
 }
Пример #12
0
        // event responder

#if INVECTOR
        public void AddShot(vShooterWeapon weapon)
        {
            // Debug.Log ("Iv shot seen by scoreboard");
            AddShot();
        }