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); } } }
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); } } }
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); } }
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); }
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); }
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; } }
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; } } }
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); } } }
public bool CanReload(vShooterWeapon weapon) { throw new NotImplementedException(); }
// event responder #if INVECTOR public void AddShot(vShooterWeapon weapon) { // Debug.Log ("Iv shot seen by scoreboard"); AddShot(); }