Files
2026-04-25 23:37:10 +02:00

36 lines
1.1 KiB
C#

using RPGCore.Movement.ObjectModules.UnitMovement.Events;
using RPGCore.ObjectModules.ActionObjectModule;
using RPGCore.ObjectModules.EventObjectModule;
using RPGCore.StatusEffect.ObjectModules.StatusObjectModule;
using RPGCoreCommon.Helpers;
namespace RPGCore.Movement.ObjectModules.UnitMovement.Actions
{
public class JumpAction : BaseActionParallel
{
public override void CanDoIt()
{
Check(
unit.GetComponent<StatusModule>().IsControllable(),
UnitIsBusyMessage);
Check(
unit.GetComponent<UnitMovementModule>().isOnGround,
"Unit is not on ground.");
}
protected override void OnDoIt()
{
unit.rigidbody.linearVelocity = unit.rigidbody.linearVelocity.SetY(unit.GetComponent<UnitMovementModule>().jumpPower);
unit.events.Invoke(new JumpEvent { unit = unit });
EndIt();
}
protected override void OnEndIt()
{
}
protected override void OnCancelIt()
{
}
}
}