Exemplo n.º 1
0
    private void Sprint()
    {
        if (!HasEnergy)
        {
            return;
        }

        //Si on détecte le firstTap et que dans la durée autorisée (SprintWaitForSecondPress) on détecte un appui de la touche "avancer" alors on sprint
        //Le second press après le tap (OnSprint) est géré avec une coroutine qui donne au joueur une certaines durée pour réappuyer sur la touche "avancer"
        //qui sera détectée  dans le OnMove car l'input manager ne gère pas des séries d'action qui permettrait de détecter le tap puis le press
        if (sprintFirstTap)
        {
            if (Vertical > 0 && !IsSprinting)
            {
                IsSprinting = true;
                moveSpeed   = sprintSpeed;

                OnSprint?.Invoke(this, new OnSprintEventArgs {
                    IsSprinting = IsSprinting
                });
            }
            //Si la touche avancé est relaché ou que l'énergie est vide on arrête de sprinter
        }
        else if (((Vertical <= 0)) && IsSprinting)
        {
            CancelSprint();
        }
    }
Exemplo n.º 2
0
 public void RegenSprintCharge()
 {
     if (stamina < staminaMax)
     {
         stamina += 1;
         OnSprint.Invoke(stamina);
     }
 }
Exemplo n.º 3
0
    //Cancel sprint movement
    private void CancelSprint()
    {
        if (IsSprinting)
        {
            IsSprinting = false;
            moveSpeed   = walkSpeed;

            OnSprint?.Invoke(this, new OnSprintEventArgs {
                IsSprinting = IsSprinting
            });
        }
    }
Exemplo n.º 4
0
        private void ToggleSprint()
        {
            switch (sprintToggle)
            {
            case true:
                if (Input.GetButtonDown("Run"))
                {
                    if (m_IsWalking)
                    {
                        m_IsWalking = false;
                        OnSprint?.Invoke(true);
                    }
                    else
                    {
                        m_IsWalking = true;
                        OnSprint?.Invoke(false);
                    }
                }
                break;

            case false:
                if (Input.GetButton("Run"))
                {
                    if (m_IsWalking)
                    {
                        m_IsWalking = false;
                        OnSprint?.Invoke(true);
                    }
                }
                else
                {
                    m_IsWalking = true;
                    OnSprint?.Invoke(false);
                }
                break;
            }


            if (!m_IsWalking && Input.GetAxisRaw("Vertical") < 1) // If player is not holding down forward
            {
                m_IsWalking = true;
                OnSprint?.Invoke(false);
            }
        }
Exemplo n.º 5
0
 public void SpendSprintResource()
 {
     sprintT  = sprintTMax;
     stamina -= 1;
     OnSprint.Invoke(stamina);
 }