Exemplo n.º 1
0
         // =========================================================================================
         /*private void InputDash()
         {
             if ((Input.GetButtonDown("ControllerB") || bufferDashActive == true) && state == CharacterState.Acting && canMoveCancel == true && currentAttack != null)
             {
                 if (currentAttack.AttackBehavior.DashCancel == true)
                     CancelAction();
             }
             else if (Input.GetButtonDown("ControllerB") && state == CharacterState.Acting)
             {
                 bufferDashActive = true;
                 StartBuffer();
             }

             if (state != CharacterState.Idle && state != CharacterState.Moving || inAir != false)
             {
                 return;
             }

             if(bufferDashActive == true)
             {
                 DashAction();
             }
             else if (Input.GetButtonDown("ControllerB"))
             {
                 DashAction();
             }
         }

         private void DashAction()
         {
             if (Mathf.Abs(Input.GetAxis("Horizontal")) > 0.2f)
             {
                 Action(dashForward);
             }
             else
             {
                 Action(dashBack);
             }
             StopBuffer();
         }*/


        // =========================================================================================
        private void InputJump(Character character, CharacterState state)
        {
            if (crouchTime > 0 && character.State != CharacterState.Acting)
            {
                crouchTime = 0;
            }
            if (crouchTime > 0)
            {
                crouchTime -= Time.deltaTime;// * characterMotionSpeed;
                if (crouchTime <= 0)
                {
                    character.SetSpeed(character.CharacterStat.GetSpeed() * character.Direction, 0);
                    character.CancelAct();
                    character.JumpDefault();
                    return;
                }
            }

            if(bufferJumpActive == true)
            {
                if(state == CharacterState.Idle || state == CharacterState.Moving)
                {
                    JumpAction();
                }
                else if (state == CharacterState.Acting && character.CanMoveCancel == true && character.CurrentAttack != null)
                {
                    if (character.CurrentAttack.AttackBehavior.JumpCancel == true)
                    {
                        character.CancelAction();
                        JumpAction();
                    }
                }
            }

            if (Input.GetButtonDown(controllerA))
            {
                bufferJumpActive = true;
                StartBuffer();
                if (state == CharacterState.Idle || state == CharacterState.Moving)
                {
                    JumpAction();
                }
                else if (state == CharacterState.Acting && character.CanMoveCancel == true && character.CurrentAttack != null)
                {
                    if (character.CurrentAttack.AttackBehavior.JumpCancel == true)
                    {
                        character.CancelAction();
                        JumpAction();
                    }
                }
            }
        }
Exemplo n.º 2
0
 private bool CheckPhases(Character character)
 {
     if(phasesTrigger == null)
         return false;
     if (phase - 1 < phasesTrigger.Length)
     {
         if (character.CharacterStat.GetHP() < phasesTrigger[phase - 1].HpTrigger)
         {
             if(phasesTrigger[phase - 1].resetState == true)
                 character.CancelAct();
             phasesTrigger[phase - 1].HPTriggerEvent.Invoke();
             phase += 1;
             return true;
         }
     }
     return false;
 }