Please disclose if any significant portion of your mod was created 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 MeFiuChaosMod v1.0.0
MeFiuChaosMod.dll
Decompiled 14 hours agousing System; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using System.Timers; using BepInEx; using BepInEx.Logging; using HarmonyLib; using Microsoft.CodeAnalysis; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: IgnoresAccessChecksTo("")] [assembly: AssemblyCompany("MeFiuDywan")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("MeFiuChaosMod")] [assembly: AssemblyTitle("MeFiuChaosMod")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace MeFiuChaosMod { [HarmonyPatch(typeof(PlayerController))] internal static class ExamplePlayerControllerPatch { [HarmonyPrefix] [HarmonyPatch("Start")] private static void Start_Prefix(PlayerController __instance) { MeFiuChaosMod.Logger.LogDebug((object)$"{__instance} Start Prefix"); } [HarmonyPostfix] [HarmonyPatch("Start")] private static void Start_Postfix(PlayerController __instance) { MeFiuChaosMod.Logger.LogDebug((object)$"{__instance} Start Postfix"); } } [HarmonyPatch(typeof(GameDirector))] public static class MainChaosMod { private static List<Delegate> chaosEvents = new List<Delegate>(); private static Timer chaosTimer { get; set; } private static Delegate ChaosDelegate { get; set; } private static Delegate ChaosDelegate2 { get; set; } private static bool timerStarted { get; set; } private static void Awake() { MeFiuChaosMod.Logger.LogMessage((object)"MeFiu Chaos Mod has loaded successfully!"); ChaosDelegate = new Action(Deal1DamageChaosEvent); ChaosDelegate2 = new Action(Get1HealthChaosEvent); chaosEvents.Add(ChaosDelegate); chaosEvents.Add(ChaosDelegate2); if (chaosTimer == null) { chaosTimer = new Timer(); } timerStarted = false; chaosTimer.Interval = 10000.0; chaosTimer.Elapsed += ChaosTimerTrigger; } private static void ChaosTimerTrigger(object sender, ElapsedEventArgs e) { MeFiuChaosMod.Logger.LogMessage((object)"Chaos Mod ChaosTimer begin"); int count = chaosEvents.Count; Random random = new Random(); int index = random.Next(0, count); MeFiuChaosMod.Logger.LogMessage((object)("Randomised index: " + index)); MeFiuChaosMod.Logger.LogMessage((object)("Corresponding method: " + chaosEvents[index].Method.Name)); chaosEvents[index].Method.Invoke(chaosEvents[index].Method.Name, new object[0]); MeFiuChaosMod.Logger.LogMessage((object)"Chaos Mod ChaosTimer triggered"); } private static void Deal1DamageChaosEvent() { MeFiuChaosMod.Logger.LogMessage((object)"Should Have dealt 1 damage"); foreach (PlayerAvatar player in GameDirector.instance.PlayerList) { PlayerHealth playerHealth = player.playerHealth; playerHealth.Hurt(1, false, -1, false); } } private static void Get1HealthChaosEvent() { MeFiuChaosMod.Logger.LogMessage((object)"Should Have given 1 health"); foreach (PlayerAvatar player in GameDirector.instance.PlayerList) { PlayerHealth playerHealth = player.playerHealth; playerHealth.Heal(1, true); } } [HarmonyPostfix] [HarmonyPatch("gameStateMain")] private static void GameStateMain_Postfix(GameDirector __instance) { if (chaosTimer == null) { Awake(); } if (RoundDirector.instance.extractionPoints > 0 && !RunManager.instance.levelIsShop) { if (!timerStarted) { chaosTimer.Start(); timerStarted = true; MeFiuChaosMod.Logger.LogMessage((object)"MeFiu Chaos Mod has definitively started the timer"); } } else if (timerStarted) { chaosTimer.Stop(); timerStarted = false; MeFiuChaosMod.Logger.LogMessage((object)"MeFiu Chaos Mod has definitively stopped the timer"); } } } [BepInPlugin("MeFiuDywan.MeFiuChaosMod", "MeFiuChaosMod", "1.0")] public class MeFiuChaosMod : BaseUnityPlugin { internal static MeFiuChaosMod Instance { get; private set; } internal static ManualLogSource Logger => Instance._logger; private ManualLogSource _logger => ((BaseUnityPlugin)this).Logger; internal Harmony? Harmony { get; set; } private void Awake() { Instance = this; ((Component)this).gameObject.transform.parent = null; ((Object)((Component)this).gameObject).hideFlags = (HideFlags)61; Patch(); Logger.LogInfo((object)$"{((BaseUnityPlugin)this).Info.Metadata.GUID} v{((BaseUnityPlugin)this).Info.Metadata.Version} has loaded!"); } internal void Patch() { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Expected O, but got Unknown //IL_0026: Expected O, but got Unknown if (Harmony == null) { Harmony val = new Harmony(((BaseUnityPlugin)this).Info.Metadata.GUID); Harmony val2 = val; Harmony = val; } Harmony.PatchAll(); } internal void Unpatch() { Harmony? harmony = Harmony; if (harmony != null) { harmony.UnpatchSelf(); } } private void Update() { } } }