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().IsControllable(), UnitIsBusyMessage); Check( unit.GetComponent().isOnGround, "Unit is not on ground."); } protected override void OnDoIt() { unit.rigidbody.linearVelocity = unit.rigidbody.linearVelocity.SetY(unit.GetComponent().jumpPower); unit.events.Invoke(new JumpEvent { unit = unit }); EndIt(); } protected override void OnEndIt() { } protected override void OnCancelIt() { } } }