Files
Crash-Course/Assets/Scripts/Player/Punch.cs

63 lines
1.4 KiB
C#
Raw Normal View History

2025-04-16 19:57:54 -04:00
using UnityEngine; using Game; using Music; using Player;
using UnityEngine.InputSystem;
2025-04-16 19:57:54 -04:00
namespace Player
{
[RequireComponent(typeof(PlayerInput))]
[RequireComponent(typeof(AnimationPlayer))]
public class Punch : MonoBehaviour
{
public bool cancelable = true;
[SerializeField] private BoxCollider2D hurtbox;
InputActionAsset actions;
private void Start()
{
actions = GetComponent<PlayerInput>().actions;
}
private void Update() // Executes punch when 'punch' is pressed
{
2025-02-08 18:54:21 -05:00
if (actions.FindAction("Punch").WasPressedThisFrame())
{
if (!cancelable) return;
2025-02-08 18:54:21 -05:00
ExecutePunch();
}
}
private void ExecutePunch() // Triggers punch animation
2025-02-08 18:54:21 -05:00
{
GetComponent<AnimationPlayer>().Punch();
DisableCancellation();
GetComponent<PlayerMovement>().maxSpeedOverride = 1f; // Slows player down when punching
2025-02-08 18:54:21 -05:00
}
public void EnableHurtbox()
{
2025-02-16 16:47:45 -05:00
if (hurtbox != null) hurtbox.enabled = true;
}
public void DisableHurtbox()
{
2025-02-16 16:47:45 -05:00
if (hurtbox != null) hurtbox.enabled = false;
}
public void DisableCancellation()
{
cancelable = false;
}
public void EnableCancellation()
{
cancelable = true;
}
2025-02-08 18:54:21 -05:00
public void ReturnToMaxSpeed() // Resets player speed after punch
2025-02-08 18:54:21 -05:00
{
GetComponent<PlayerMovement>().maxSpeedOverride = GetComponent<PlayerMovement>().maxSpeed;
}
}
2025-04-16 19:57:54 -04:00
}