Example #1
0
 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();
 }
Example #2
0
 /// <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);
 }
Example #3
0
    /// <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();
        }
    }
Example #4
0
    /// <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();
    }