Please disclose if your mod was created primarily using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of CycleForsakenPower v1.0.0
plugins\CycleForsakenPower.dll
Decompiled 9 months agousing System; using System.CodeDom.Compiler; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Globalization; using System.Reflection; using System.Resources; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using HarmonyLib; using Jotunn; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyTitle("CycleForsakenPower")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("CycleForsakenPower")] [assembly: AssemblyCopyright("Copyright © 2021")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")] [assembly: AssemblyFileVersion("1.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] namespace CycleForsakenPower { [BepInPlugin("sephalon.CycleForsakenPower", "CycleForsakenPower", "1.0.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] [HarmonyPatch] internal class CycleForsakenPower : BaseUnityPlugin { public struct BossInfo { public string m_bossName; public string m_bossDefeatedGlobalKey; public string m_powerID; } public const string PluginGUID = "sephalon.CycleForsakenPower"; public const string PluginName = "CycleForsakenPower"; public const string PluginVersion = "1.0.0"; private static KeyboardShortcut cycleShortcut = new KeyboardShortcut((KeyCode)289, Array.Empty<KeyCode>()); public static List<BossInfo> BossInfoList = new List<BossInfo>(); public void Awake() { AddBossInfo("Eikthyr", "GP_Eikthyr", "defeated_eikthyr"); AddBossInfo("The Elder", "GP_TheElder", "defeated_gdking"); AddBossInfo("Bonemass", "GP_Bonemass", "defeated_bonemass"); AddBossInfo("Moder", "GP_Moder", "defeated_dragon"); AddBossInfo("Yagluth", "GP_Yagluth", "defeated_goblinking"); AddBossInfo("The Queen", "GP_Queen", "defeated_queen"); AddBossInfo("Fader", "GP_Fader", "defeated_fader"); Harmony.CreateAndPatchAll(Assembly.GetExecutingAssembly(), "sephalon.CycleForsakenPower"); } public static void AddBossInfo(string name, string powerID, string key) { BossInfo item = default(BossInfo); item.m_bossName = name; item.m_bossDefeatedGlobalKey = key; item.m_powerID = powerID; BossInfoList.Add(item); } [HarmonyPostfix] [HarmonyPatch(typeof(Player), "Update")] private static void Update_Postfix_Player(ref Player __instance) { if (IsLocalPlayer(in __instance) && ((KeyboardShortcut)(ref cycleShortcut)).IsDown() && ((Character)__instance).TakeInput()) { Logger.LogInfo((object)"F8"); string text = Player.m_localPlayer.GetGuardianPowerName(); if (text == null) { text = "none"; } AdvanceFrom(text); } } public static void AdvanceFrom(string currentPowerID) { bool flag = false; foreach (BossInfo bossInfo in BossInfoList) { if (ZoneSystem.instance.GetGlobalKey(bossInfo.m_bossDefeatedGlobalKey)) { flag = true; break; } } if (!flag) { MessagePlayer("You have not defeated any bosses, so you cannot cycle Forsaken powers"); return; } bool flag2 = false; if (currentPowerID.Equals("none")) { flag2 = true; } foreach (BossInfo bossInfo2 in BossInfoList) { if (flag2 && ZoneSystem.instance.GetGlobalKey(bossInfo2.m_bossDefeatedGlobalKey)) { Player.m_localPlayer.SetGuardianPower(bossInfo2.m_powerID); MessagePlayer(bossInfo2.m_bossName + " power selected"); return; } if (bossInfo2.m_powerID.Equals(currentPowerID)) { flag2 = true; } } foreach (BossInfo bossInfo3 in BossInfoList) { if (ZoneSystem.instance.GetGlobalKey(bossInfo3.m_bossDefeatedGlobalKey)) { Player.m_localPlayer.SetGuardianPower(bossInfo3.m_powerID); MessagePlayer(bossInfo3.m_bossName + " power selected"); return; } } Logger.LogInfo((object)("Cycle Forsaken power didn't work. Current power = " + currentPowerID)); } public static void MessagePlayer(string msg) { ((Character)Player.m_localPlayer).Message((MessageType)2, msg, 0, (Sprite)null); } public static bool IsLocalPlayer(in Player player) { if (Object.op_Implicit((Object)(object)Player.m_localPlayer)) { return (Object)(object)player == (Object)(object)Player.m_localPlayer; } return false; } } } namespace CycleForsakenPower.Properties { [GeneratedCode("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [DebuggerNonUserCode] [CompilerGenerated] internal class Resources { private static ResourceManager resourceMan; private static CultureInfo resourceCulture; [EditorBrowsable(EditorBrowsableState.Advanced)] internal static ResourceManager ResourceManager { get { if (resourceMan == null) { resourceMan = new ResourceManager("CycleForsakenPower.Properties.Resources", typeof(Resources).Assembly); } return resourceMan; } } [EditorBrowsable(EditorBrowsableState.Advanced)] internal static CultureInfo Culture { get { return resourceCulture; } set { resourceCulture = value; } } internal Resources() { } } }