From 5d33345b598e2107df3763f09af3a06a84d65a93 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Thu, 23 May 2024 09:21:25 -0400 Subject: Organized patches --- AnodyneArchipelago/Patches/StatePatches.cs | 39 ++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 AnodyneArchipelago/Patches/StatePatches.cs (limited to 'AnodyneArchipelago/Patches/StatePatches.cs') diff --git a/AnodyneArchipelago/Patches/StatePatches.cs b/AnodyneArchipelago/Patches/StatePatches.cs new file mode 100644 index 0000000..f6acc62 --- /dev/null +++ b/AnodyneArchipelago/Patches/StatePatches.cs @@ -0,0 +1,39 @@ +using AnodyneSharp.Entities; +using AnodyneSharp.Registry; +using AnodyneSharp.States; +using AnodyneSharp; +using HarmonyLib; +using System.Reflection; + +namespace AnodyneArchipelago.Patches +{ + [HarmonyPatch(typeof(AnodyneGame), "Update")] + class GameUpdatePatch + { + static void Postfix() + { + ArchipelagoManager.Update(); + } + } + + [HarmonyPatch(typeof(PlayState), nameof(PlayState.Create))] + class PlayStateCreatePatch + { + static void Prefix(PlayState __instance) + { + // Get player for later access. + FieldInfo playerField = typeof(PlayState).GetField("_player", BindingFlags.NonPublic | BindingFlags.Instance); + Plugin.Player = (Player)playerField.GetValue(__instance); + + // Handle Red Grotto stuff. + GlobalState.events.SetEvent("red_cave_l_ss", 999); + GlobalState.events.SetEvent("red_cave_n_ss", 999); + GlobalState.events.SetEvent("red_cave_r_ss", 999); + + // Connect to archipelago. + Plugin.Instance.Log.LogInfo("Connecting to Archipelago!"); + + ArchipelagoManager.Connect("localhost:38281", "Anodyne", ""); + } + } +} -- cgit 1.4.1