public override void OnEnter() { playerController.animator.SetBool(ACTION_PARAM, true); if (playerController.interactable) { interactable = playerController.interactable.GetComponent <AbstactInteractable>(); } if (interactable is Door || interactable is DoorLocked) { playerController.hurtBox.EnableCollider(false); } }
public override AbstractState UpdateState() { AbstractState interrupt = base.UpdateState(); if (interrupt != null) { return(interrupt); } if (playerController.moveController.IsFalling()) { return(new FallingState(playerController)); } if (playerController.input.IsJumpKeyDown()) { return(new JumpState(playerController)); } if (playerController.input.GetDirectionX() != 0) { return(new MoveState(playerController)); } if (playerController.input.GetDirectionY() == 1 && playerController.interactableInRange) { // Check if interactable activatable AbstactInteractable interactable = playerController.interactable.GetComponent <AbstactInteractable>(); if (interactable && !interactable.permanentDisabled) { return(new ActionState(playerController)); } } if (playerController.DoAttack()) { return(new AttackLightState(playerController)); } if (playerController.DoThrow()) { return(new ThrowIdleState(playerController)); } if (playerController.input.IsWarcry()) { return(new WarcryStat(playerController)); } Move(0, playerController.input.GetDirectionY()); return(null); }