public void OnPrimaryAttackEnd() { _bIsPrimaryAttackKeyHeld = false; AnimatorStates.Set(AnimatorStates.AnimationParameter.FireStop, PlayerMain.Instance.ActiveWeapon.weaponType); AnimatorStates.ResetTrigger(AnimatorStates.AnimationParameter.Fire, PlayerMain.Instance.ActiveWeapon.weaponType); _onPrimaryAttackEndListener.Invoke(); }
/// <summary> /// Function to make the player switch to another weapon /// </summary> private void ChangeActiveWeapon(WeaponBase.WeaponType weaponType) { _isWeaponBeingSwitched = true; PlayerAttack.Instance.OnPrimaryAttackEnd(); AnimatorStates.Set(AnimatorStates.AnimationParameter.Unwield, _activeWeapon.weaponType); SoundManager.Instance.PlayWeaponChange(_activeWeapon.audioClipUnwield); if (_prevDelayedCallWeaponChange != -1) { DelayedCaller.Instance.RemoveDelayedCall(_prevDelayedCallWeaponChange); } _prevDelayedCallWeaponChange = DelayedCaller.Instance.AddDelayedCall(() => { _isWeaponBeingSwitched = false; _weaponSprites[(int)_activeWeapon.weaponType - 1].SetActive(false); _activeWeapon = WeaponsManager.Instance.GetWeapon(weaponType); _weaponSprites[(int)weaponType - 1].SetActive(true); SoundManager.Instance.PlayWeaponChange(_activeWeapon.audioClipWield); }, _weaponUnwieldTime); }
/// <summary> /// Will be triggered whenever the left mouse button is clicked /// </summary> private void OnPrimaryAttackStart() { if (_PrimaryAttackProgress <= PlayerMain.Instance.ActiveWeapon.fireCoolDown && _timeAtPrimaryAttack != -1) { return; } if (!PlayerMain.Instance.IsWeaponBeingSwitched) { _bIsPrimaryAttackKeyHeld = true; AnimatorStates.ResetTrigger(AnimatorStates.AnimationParameter.FireStop, PlayerMain.Instance.ActiveWeapon.weaponType); AnimatorStates.Set(AnimatorStates.AnimationParameter.Fire, PlayerMain.Instance.ActiveWeapon.weaponType); /* WeaponBase activePlayerWeapon = PlayerMain.Instance.ActiveWeapon; * SoundManager.Instance.PlayAudio(activePlayerWeapon.audioSourceFire, activePlayerWeapon.audioClipFire); * for (int i=0;i<PlayerMain.Instance.ActiveWeapon.projectilePerShot;i++) { * FireWeapon(); * }*/ OnPrimaryAttackHeld(); } }
/// <summary> /// Called when the player attacks /// </summary> private void OnPrimaryAttackCallBack() { AnimatorStates.Set(PlayerMain.Instance.ActiveWeapon.cameraShakeAnimationParameter, _mainCameraAnimator); GameObject smoke = VisualEffectsManager.Instance.GetSmokePoolObject(); prevSmoke = smoke; // smoke.SetActive(true); // smoke.transform.position = smokeEffectPosition.transform.position; // smoke.GetComponent<ParticleSystem>().Play(); WeaponBase activeWeapon = PlayerMain.Instance.ActiveWeapon; /* GameObject smokeInstance = Instantiate(smoke); * smokeInstance.SetActive(true); * smokeInstance.transform.parent = activeWeapon.smokeSpawnPoint.transform.parent; * smokeInstance.transform.position = activeWeapon.smokeSpawnPoint.transform.position;*/ smoke.SetActive(true); ///smoke.transform.parent = activeWeapon.smokeSpawnPoint.transform.parent; smoke.transform.position = activeWeapon.smokeSpawnPoint.transform.position; ParticleSystem ps = smoke.GetComponent <ParticleSystem>(); //ps.gameObject.SetActive(true); ps.Play(); DelayedCaller.Instance.AddDelayedCall(() => { ps.Stop(); /*ps.Clear();*/ }, ps.main.duration / 160f); //Destroy(smokeInstance, ps.main.duration/20); GameObject muzzleFlash = VisualEffectsManager.Instance.GetMuzzleFlashObject(); muzzleFlash.SetActive(true); muzzleFlash.transform.parent = activeWeapon.muzzleFlashSpawnPoint.transform.parent; muzzleFlash.transform.position = activeWeapon.muzzleFlashSpawnPoint.transform.position; muzzleFlash.GetComponent <ParticleSystem>().Play(); }