The area of the code to functionally modify for such an endeavor would be in the PhysicsScript.cs:
if (moveSetScript.basicMoves.landing.animMap[0].clip != null
&& (controlScript.currentMove == null ||
(controlScript.currentMove != null && controlScript.currentMove.cancelMoveWheLanding)))
{
controlScript.isAirRecovering = false;
airAnimation = moveSetScript.basicMoves.landing;
moveDirection = 0;
horizontalJumpForce = 0;
isLanding = true;
controlScript.KillCurrentMove();
delayTime = (Fix64)controlScript.myInfo.physics.landingDelay / (Fix64)UFE.Config.fps;
UFE.DelaySynchronizedAction(ResetLanding, delayTime);
if (airAnimation.autoSpeed)
{
animationSpeed = moveSetScript.GetAnimationLength(airAnimation.name) / delayTime;
}
}
Something like the following (untested code fyi):
In PhysicsScript.cs
if (moveSetScript.basicMoves.landing.animMap[0].clip != null
&& (controlScript.currentMove == null ||
(controlScript.currentMove != null && controlScript.currentMove.cancelMoveWheLanding)))
{
if (controlScript.currentMove.cancelMoveWheLanding && controlScript.currentMove.moveToCancelLanding != null) {
controlScript.CastMove(controlScript.currentMove.moveToCancelLanding, true);
} else {
controlScript.isAirRecovering = false;
airAnimation = moveSetScript.basicMoves.landing;
moveDirection = 0;
horizontalJumpForce = 0;
isLanding = true;
controlScript.KillCurrentMove();
delayTime = (Fix64)controlScript.myInfo.physics.landingDelay / (Fix64)UFE.Config.fps;
UFE.DelaySynchronizedAction(ResetLanding, delayTime);
if (airAnimation.autoSpeed)
{
animationSpeed = moveSetScript.GetAnimationLength(airAnimation.name) / delayTime;
}
}
}
In MoveEditorWindow.cs:
moveInfo.cancelMoveWheLanding = EditorGUILayout.Toggle("Cancel Move On Landing", moveInfo.cancelMoveWheLanding, toggleStyle);
to
moveInfo.cancelMoveWheLanding = EditorGUILayout.Toggle("Cancel Move On Landing", moveInfo.cancelMoveWheLanding, toggleStyle);
if (moveInfo.cancelMoveWheLanding) {
moveInfo.moveToCancelLanding = (MoveInfo)EditorGUILayout.ObjectField("Move To Cancel Into:", moveInfo.moveToCancelLanding, typeof(MoveInfo), false);
}
and in MoveInfo.cs add anywhere in the class:
public MoveInfo moveToCancelLanding;
Again, haven't tested it, but that'd be my first attempt.