36 lines
1.1 KiB
C#
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()
|
|
{
|
|
}
|
|
}
|
|
} |