using GadgetCore.API; using HarmonyLib; namespace IronmanChest.Patches { [HarmonyPatch(typeof(GameScript))] [HarmonyPatch("SaveGame")] [HarmonyGadget("IronmanChest")] public static class Patch_GameScript_SaveGame { [HarmonyPrefix] public static void Prefix(GameScript __instance, Item[] ___storage, ref int ___storageLevel) { if (Menuu.curProfession == 1) { PreviewLabs.PlayerPrefs.SetInt(Menuu.curChar + "ironmanstorageLevel", ___storageLevel); for (int i = 0; i < Core.settingAmountPages * Core.settingAmountSlots; i++) { PreviewLabs.PlayerPrefs.SetInt(Menuu.curChar + "ironmanstorage" + i + "id", ___storage[i].id); PreviewLabs.PlayerPrefs.SetInt(Menuu.curChar + "ironmanstorage" + i + "q", ___storage[i].q); PreviewLabs.PlayerPrefs.SetInt(Menuu.curChar + "ironmanstorage" + i + "exp", ___storage[i].exp); PreviewLabs.PlayerPrefs.SetInt(Menuu.curChar + "ironmanstorage" + i + "tier", ___storage[i].tier); PreviewLabs.PlayerPrefs.SetInt(Menuu.curChar + "ironmanstorage" + i + "corrupted", ___storage[i].corrupted); PreviewLabs.PlayerPrefs.SetInt(Menuu.curChar + "ironmanstorage" + i + "a0", ___storage[i].aspect[0]); PreviewLabs.PlayerPrefs.SetInt(Menuu.curChar + "ironmanstorage" + i + "a1", ___storage[i].aspect[1]); PreviewLabs.PlayerPrefs.SetInt(Menuu.curChar + "ironmanstorage" + i + "a2", ___storage[i].aspect[2]); PreviewLabs.PlayerPrefs.SetInt(Menuu.curChar + "ironmanstorage" + i + "aL0", ___storage[i].aspectLvl[0]); PreviewLabs.PlayerPrefs.SetInt(Menuu.curChar + "ironmanstorage" + i + "aL1", ___storage[i].aspectLvl[1]); PreviewLabs.PlayerPrefs.SetInt(Menuu.curChar + "ironmanstorage" + i + "aL2", ___storage[i].aspectLvl[2]); } ___storageLevel = PreviewLabs.PlayerPrefs.GetInt("storageLevel"); for (int i = 0; i < Core.settingAmountPages * Core.settingAmountSlots; i++) { ___storage[i].id = PreviewLabs.PlayerPrefs.GetInt("storage" + i + "id"); ___storage[i].q = PreviewLabs.PlayerPrefs.GetInt("storage" + i + "q"); ___storage[i].exp = PreviewLabs.PlayerPrefs.GetInt("storage" + i + "exp"); ___storage[i].tier = PreviewLabs.PlayerPrefs.GetInt("storage" + i + "tier"); ___storage[i].corrupted = PreviewLabs.PlayerPrefs.GetInt("storage" + i + "corrupted"); ___storage[i].aspect[0] = PreviewLabs.PlayerPrefs.GetInt("storage" + i + "a0"); ___storage[i].aspect[1] = PreviewLabs.PlayerPrefs.GetInt("storage" + i + "a1"); ___storage[i].aspect[2] = PreviewLabs.PlayerPrefs.GetInt("storage" + i + "a2"); ___storage[i].aspectLvl[0] = PreviewLabs.PlayerPrefs.GetInt("storage" + i + "aL0"); ___storage[i].aspectLvl[1] = PreviewLabs.PlayerPrefs.GetInt("storage" + i + "aL1"); ___storage[i].aspectLvl[2] = PreviewLabs.PlayerPrefs.GetInt("storage" + i + "aL2"); } } } [HarmonyPostfix] [HarmonyPriority(Priority.Low)] public static void Postfix(GameScript __instance, Item[] ___storage, ref int ___storageLevel) { Patch_GameScript_LoadGame.Postfix(__instance, ___storage, ref ___storageLevel); } } }