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 balrond clawmajster v1.0.1
plugins/BalrondClawMajster.dll
Decompiled 2 hours agousing System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using HarmonyLib; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("ProjectAshlands")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("ProjectAshlands")] [assembly: AssemblyCopyright("Copyright © 2023")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("f405ea1c-ac25-47a3-9aa2-a8f56c14bfd6")] [assembly: AssemblyFileVersion("1.0.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")] [module: UnverifiableCode] namespace BalrondClawMajster; [BepInPlugin("balrond.astafaraios.BalrondClawMajster", "ZZZ_BalrondClawMajster", "1.0.1")] public class Launch : BaseUnityPlugin { [HarmonyPatch(typeof(Game), "Awake")] private static class Game_Awake_Patch { public static void Prefix() { ZNetScene_Awake_Patch.hasSpawned = false; } } [HarmonyPatch(typeof(ZNetScene), "Awake")] private static class ZNetScene_Awake_Patch { public static bool hasSpawned; public static void Prefix(ZNetScene __instance) { if ((Object)(object)__instance == (Object)null) { Debug.LogWarning((object)"ZZZ_BalrondClawMajster: No ZNetScene found"); } else { if (hasSpawned) { return; } List<GameObject> list = new List<GameObject>(); list.Add(__instance.m_prefabs.Find((GameObject x) => ((Object)x).name.Contains("FistBjornUndeadClaw"))); list.Add(__instance.m_prefabs.Find((GameObject x) => ((Object)x).name.Contains("FistBjornClaw"))); list.Add(__instance.m_prefabs.Find((GameObject x) => ((Object)x).name.Contains("FistFenrirClaw"))); GameObject doubleAxe = __instance.m_prefabs.Find((GameObject x) => ((Object)x).name == "AxeBerzerkr"); foreach (GameObject item in list) { if (!((Object)item).name.Contains("Anchor")) { itemEdits.EditClaws(item, doubleAxe); } } hasSpawned = true; } } } private readonly Harmony harmony = new Harmony("balrond.astafaraios.BalrondClawMajster"); public const string PluginGUID = "balrond.astafaraios.BalrondClawMajster"; public const string PluginName = "ZZZ_BalrondClawMajster"; public const string PluginVersion = "1.0.1"; public static ClawSetter itemEdits = new ClawSetter(); public static GameObject RootObject; public static GameObject PrefabContainer; private void Awake() { harmony.PatchAll(); } private void OnDestroy() { harmony.UnpatchSelf(); } private static bool IsObjectDBValid() { ObjectDB instance = ObjectDB.instance; return (Object)(object)instance != (Object)null && instance.m_items.Count > 0 && instance.m_recipes.Count > 0 && (Object)(object)instance.GetItemPrefab("Amber") != (Object)null; } } public class ClawSetter { public void EditClaws(GameObject claw, GameObject doubleAxe) { if ((Object)(object)claw == (Object)null) { Debug.LogWarning((object)"claw is null"); return; } ItemDrop component = claw.GetComponent<ItemDrop>(); if ((Object)(object)component == (Object)null) { return; } Debug.Log((object)("Working with claw: " + ((Object)claw).name)); Attack val = component.m_itemData.m_shared.m_secondaryAttack.Clone(); if (val == null || val.m_attackAnimation != "unarmed_kick") { Debug.Log((object)("Claw Secondary not standard skipping: " + ((Object)claw).name)); return; } ItemDrop component2 = doubleAxe.GetComponent<ItemDrop>(); if (!((Object)(object)component2 == (Object)null)) { Attack val2 = component2.m_itemData.m_shared.m_secondaryAttack.Clone(); if (val2 != null) { component.m_itemData.m_shared.m_secondaryAttack = val2; } } } private void CopyAttackEffects(Attack attack, SharedData shared) { attack.m_hitEffect = shared.m_hitEffect; attack.m_hitTerrainEffect = shared.m_hitTerrainEffect; attack.m_startEffect = shared.m_startEffect; attack.m_trailStartEffect = shared.m_trailStartEffect; attack.m_triggerEffect = shared.m_triggerEffect; } private void ClearAttackEffects(SharedData shared) { shared.m_hitEffect = null; shared.m_hitTerrainEffect = null; shared.m_startEffect = null; shared.m_trailStartEffect = null; shared.m_triggerEffect = null; } }