// Start is called before the first frame update void Start() { gunScriptLastFrame = getCorrectGunScript(); UpdateUsedGun(currentGunScript != null); onStart.Invoke(gunScriptLastFrame.GetAmmo(), gunScriptLastFrame.GetClipSize(), gunScriptLastFrame.GetRemainingClips(), gunScriptLastFrame.GetAutoFire()); }
public void UpdateUsedGun(bool hasSpecialGun) { if (hasSpecialGun) { defaultGunScript.gameObject.SetActive(false); currentGunScript.gameObject.SetActive(true); } else { defaultGunScript.gameObject.SetActive(true); if (currentGunScript != null) { Destroy(currentGunScript.gameObject); } } weaponController temp = getCorrectGunScript(); onSwapWeapon.Invoke(temp.GetAmmo(), temp.GetClipSize(), temp.GetRemainingClips(), temp.GetAutoFire()); GetComponent <ReloadBar>().EndReload(); }
// Update is called once per frame void Update() { weaponController gunScript = getCorrectGunScript(); currentGunCd -= Time.deltaTime; bool autoFire = gunScript.GetAutoFire(); if (((!autoFire && Input.GetButtonDown(specs.FireButtonName())) || (autoFire && Input.GetButton(specs.FireButtonName()))) && currentGunCd <= 0f) { GetComponent <ReloadBar>().EndReload(); bool result; gunScript.ShootBullet(); if (gunScript.GetAmmo() == 1) { currentGunCd = gunScript.GetMaxReloadCd(); GetComponent <ReloadBar>().StartReloading(); GameObject.Find("/Audio Objects/SFX/Reload").GetComponent <AudioSource>().Play(); } else { currentGunCd = gunScript.GetMaxCd(); } if (gunScript) { result = gunScript.SubtractAmmo(); if (!result) { Destroy(gunScript.gameObject); } weaponController temp = getCorrectGunScript(); if (temp == defaultGunScript) { onShootingEvent.Invoke(temp.GetAmmo() % temp.GetClipSize(), temp.GetClipSize(), -1, autoFire); } else { onShootingEvent.Invoke(temp.GetAmmo() % temp.GetClipSize(), temp.GetClipSize(), temp.GetRemainingClips(), autoFire); } } } if (gunScript != gunScriptLastFrame) { weaponController temp = getCorrectGunScript(); if (gunScript == defaultGunScript) { UpdateUsedGun(false); //onSwapWeapon.Invoke(temp.GetAmmo(), temp.GetClipSize(), -1, temp.GetAutoFire()); } else { UpdateUsedGun(true); //onSwapWeapon.Invoke(temp.GetAmmo(), temp.GetClipSize(), temp.GetRemainingClips(), temp.GetAutoFire()); } } weaponController tmp = getCorrectGunScript(); if (currentGunCd > -Time.deltaTime && currentGunCd < 0f && tmp.GetAmmo() == tmp.GetClipSize()) { GetComponent <ReloadBar>().EndReload(); onEndReload.Invoke(tmp.GetAmmo(), tmp.GetClipSize(), tmp.GetRemainingClips(), tmp.GetAutoFire()); } gunScriptLastFrame = getCorrectGunScript(); }