diff --git a/Patches/HeroControl/MovesetFSMEdits.cs b/Patches/HeroControl/MovesetFSMEdits.cs index 2a66a28..f5d4f3a 100644 --- a/Patches/HeroControl/MovesetFSMEdits.cs +++ b/Patches/HeroControl/MovesetFSMEdits.cs @@ -12,9 +12,9 @@ namespace Needleforge.Patches.HeroControl; [HarmonyPatch(typeof(HeroController), nameof(HeroController.Start))] -internal class MovesetFSMEdits +internal static class MovesetFSMEdits { - private static void Postfix(HeroController __instance) + private static void Prefix(HeroController __instance) { ModHelper.Log("Editing Moveset FSMs..."); DownSlashFSMEdits(__instance); @@ -36,7 +36,8 @@ private static void DownSlashFSMEdits(HeroController hc) return; PlayMakerFSM fsm = hc.crestAttacksFSM; - fsm.Preprocess(); + if (!fsm.Fsm.preprocessed) + fsm.Preprocess(); FsmState Idle = fsm.GetState("Idle")!, @@ -88,7 +89,8 @@ private static void DownSlashFSMEdits(HeroController hc) private static void DashSlashFSMEdits(HeroController hc) { PlayMakerFSM fsm = hc.sprintFSM; - fsm.Preprocess(); + if (!fsm.Fsm.preprocessed) + fsm.Preprocess(); FsmState StartAttack = fsm.GetState("Start Attack")!, diff --git a/Patches/HeroControl/Tool_CrestFSMEdits.cs b/Patches/HeroControl/Tool_CrestFSMEdits.cs index 7ed6913..2d319c9 100644 --- a/Patches/HeroControl/Tool_CrestFSMEdits.cs +++ b/Patches/HeroControl/Tool_CrestFSMEdits.cs @@ -26,10 +26,11 @@ internal class Tool_CrestFSMEdits { UniqueBindDirection.RIGHT, () => HeroController.instance.inputHandler.inputActions.Right.IsPressed } }; - [HarmonyPostfix] + [HarmonyPrefix] private static void AddCrests(HeroController __instance) { - PlayMakerFSM bind = __instance.gameObject.GetFsmPreprocessed("Bind"); + PlayMakerFSM bind = __instance.gameObject.GetFsmPreprocessed("Bind")!; + FsmState CanBind = bind.GetState("Can Bind?"); FsmState BindType = bind.GetState("Bind Type"); @@ -153,7 +154,7 @@ private static void AddCrests(HeroController __instance) CanBind.ReplaceAction(9, replaceSilkCost); } - [HarmonyPostfix] + [HarmonyPrefix] private static void AddTools(HeroController __instance) {