void FixedUpdate() { if (!IsLocked) { // Movimentação do personagem Move(); // Último botão pressionado (para saber qual deverá ser a próxima ação) PlayerAction currentAction = InputManager.Instance.Triggers.lastPressed; // Só realiza ação se ela for permitida, já que dependendo do estado do jogador // algumas ações não podem ser realizada if (currentAction != PlayerAction.None && IsActionAllowed(currentAction)) { switch (currentAction) { case PlayerAction.Attack: StartCoroutine(Attack()); break; case PlayerAction.Grab: if (gridArea) { StartGrab(); } break; case PlayerAction.Jump: Jump(); break; case PlayerAction.SkillAreaAttack: if (energyController.Consume(50)) { StartCoroutine(AreaAttack()); } break; case PlayerAction.SkillDodge: if (energyController.Consume(10)) { StartCoroutine("Dodge"); } break; case PlayerAction.SkillRangedAttack: if (energyController.Consume(25)) { StartCoroutine(RangeAttack()); } break; case PlayerAction.SkillShield: StartCoroutine("Shield"); break; } InputManager.Instance.DeactivateTriggers(); } } }