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 EclipsedShoresBaseMod v2.0.4
ESBM.dll
Decompiled 5 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; 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 BepInEx.Configuration; using BepInEx.Logging; using ESBM.TweakHelpers; using ESBM.Utils; using ESBM.Utils.Assets; using EntityStates; using EntityStates.BeetleMonster; using EntityStates.Captain.Weapon; using EntityStates.MeridianEvent; using EntityStates.Missions.BrotherEncounter; using KinematicCharacterController; using Microsoft.CodeAnalysis; using Mono.Cecil; using Mono.Cecil.Cil; using MonoMod.Cil; using MonoMod.RuntimeDetour; using On.EntityStates.BeetleMonster; using On.EntityStates.Captain.Weapon; using On.EntityStates.MeridianEvent; using On.EntityStates.Missions.BrotherEncounter; using On.RoR2; using R2API; using RoR2; using RoR2.Audio; using RoR2.CharacterAI; using RoR2.EntitlementManagement; using RoR2.ExpansionManagement; using RoR2.Navigation; using RoR2.Projectile; using RoR2.Skills; using RoR2.UI; using TMPro; using UnityEngine; using UnityEngine.AI; using UnityEngine.AddressableAssets; using UnityEngine.Audio; using UnityEngine.Networking; using UnityEngine.SceneManagement; [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: AssemblyCompany("ESBM")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+6d6d844bbae1f1ed1aeb6c6755f8ac36b8186a69")] [assembly: AssemblyProduct("ESBM")] [assembly: AssemblyTitle("ESBM")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] [module: UnverifiableCode] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.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 ESBM { public class Beetles { [CompilerGenerated] private static class <>O { public static hook_OnEnter <0>__HandleBeetleJump; public static hook_FixedUpdate <1>__HandleBeetleHitbox; public static hook_Start <2>__OnStageStart; } public static bool currentRunNotInferno = true; public static bool Enabled => ESBM.Bind("Enemy Tweaks", "Jumping Beetles", "Should Beetles perform leaps to close distance. Leaps are more effective and precise at longer ranges, and leaps are much shorter up close.", val: true); public static void Initialize() { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Expected O, but got Unknown //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Expected O, but got Unknown //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Expected O, but got Unknown if (Enabled) { object obj = <>O.<0>__HandleBeetleJump; if (obj == null) { hook_OnEnter val = HandleBeetleJump; <>O.<0>__HandleBeetleJump = val; obj = (object)val; } HeadbuttState.OnEnter += (hook_OnEnter)obj; object obj2 = <>O.<1>__HandleBeetleHitbox; if (obj2 == null) { hook_FixedUpdate val2 = HandleBeetleHitbox; <>O.<1>__HandleBeetleHitbox = val2; obj2 = (object)val2; } HeadbuttState.FixedUpdate += (hook_FixedUpdate)obj2; GameObject beetleMaster = GameObject.BeetleMaster; SkillDef.BeetleBodyHeadbutt.baseRechargeInterval = 2f; SkillDef.BeetleBodyHeadbutt.beginSkillCooldownOnSkillEnd = true; AISkillDriver[] array = (from x in beetleMaster.GetComponents<AISkillDriver>() where (int)x.skillSlot == 0 select x).ToArray(); AISkillDriver[] array2 = array; foreach (AISkillDriver val3 in array2) { val3.maxDistance = 50f; val3.aimType = (AimType)2; } Transform transform = ((Component)GameObject.BeetleBody.GetComponentInChildren<HitBox>()).transform; transform.localScale *= 1.4f; object obj3 = <>O.<2>__OnStageStart; if (obj3 == null) { hook_Start val4 = OnStageStart; <>O.<2>__OnStageStart = val4; obj3 = (object)val4; } Stage.Start += (hook_Start)obj3; } } private static IEnumerator OnStageStart(orig_Start orig, Stage self) { yield return orig.Invoke(self); } private static void HandleBeetleHitbox(orig_FixedUpdate orig, HeadbuttState self) { orig.Invoke(self); if (self.attack != null && ((EntityState)self).isAuthority) { self.attack.Fire((List<HurtBox>)null); } } private static void HandleBeetleJump(orig_OnEnter orig, HeadbuttState self) { //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); self.duration *= 0.75f; if (!((BaseState)self).isGrounded) { return; } float num = 60f; float num2 = 15f; CharacterMaster master = ((EntityState)self).characterBody.master; BaseAI component = ((Component)master).GetComponent<BaseAI>(); if (Object.op_Implicit((Object)(object)component.currentEnemy.gameObject)) { num = Mathf.Clamp(Vector3.Distance(((EntityState)self).transform.position, component.currentEnemy.gameObject.transform.position), 15f, 45f); Vector3 position = component.currentEnemy.gameObject.transform.position; if (position.y > ((EntityState)self).transform.position.y) { num2 = position.y - ((EntityState)self).transform.position.y; } if (num < 30f) { num *= 1.75f; } } ((BaseCharacterController)((EntityState)self).characterMotor).Motor.ForceUnground(0.1f); ((EntityState)self).characterMotor.velocity = ((EntityState)self).characterDirection.forward * num + Vector3.up * Util.Remap(num, 0f, 60f, 1f, num2 * 2f); } } public class Mithrix { [CompilerGenerated] private static class <>O { public static hook_TakeDamageProcess <0>__OnHitEnemy; } public static bool NoCripple; public static void Initialize() { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Expected O, but got Unknown NoCripple = ESBM.Bind("Enemy Tweaks", "No Phase 4 Cripple", "Prevent Mithrix from applying Crippled during phase 4?", val: true); if (NoCripple) { object obj = <>O.<0>__OnHitEnemy; if (obj == null) { hook_TakeDamageProcess val = OnHitEnemy; <>O.<0>__OnHitEnemy = val; obj = (object)val; } HealthComponent.TakeDamageProcess += (hook_TakeDamageProcess)obj; } } private static void OnHitEnemy(orig_TakeDamageProcess orig, HealthComponent self, DamageInfo damageInfo) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) if (NoCripple && ((Enum)damageInfo.damageType.damageType).HasFlag((Enum)(object)(DamageType)4194304) && Object.op_Implicit((Object)(object)PhaseCounter.instance) && PhaseCounter._instance.phase > 2) { ref DamageType damageType = ref damageInfo.damageType.damageType; damageType = (DamageType)((uint)damageType & 0xFFBFFFFFu); } orig.Invoke(self, damageInfo); } } [BepInPlugin("_0.Smxrez.ESBM", "ESBM", "1.0.1")] public class ESBM : BaseUnityPlugin { public const string PluginGUID = "_0.Smxrez.ESBM"; public const string PluginAuthor = "Smxrez"; public const string PluginName = "ESBM"; public const string PluginVersion = "1.0.1"; public static ManualLogSource ModLogger; private static ConfigFile conf; public static BindingFlags FLAGS = BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic; public void Awake() { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Expected O, but got Unknown ModLogger = ((BaseUnityPlugin)this).Logger; conf = new ConfigFile(Path.Combine(Paths.ConfigPath, "Smxrez.ESBM.cfg"), true); MiscTweaks.Initialize(); ItemWeightImprovement.Initialize(); BodyCustomizer.Initializer(); Beetles.Initialize(); Mithrix.Initialize(); PlayerRespawns.Initialize(); NoDiabloDamage.Initialize(); } public void Start() { StunResistance.Initialize(); } public static T Bind<T>(string sec, string key, string desc, T val) { return conf.Bind<T>(sec, key, val, desc).Value; } public static void ApplyIfExists(string assembly, Action<Assembly> handler) { Assembly assembly2 = AppDomain.CurrentDomain.GetAssemblies().FirstOrDefault((Assembly x) => x.GetName().Name == assembly); if (assembly2 != null) { handler(assembly2); } } } public class BodyCustomizer { [CompilerGenerated] private static class <>O { public static hook_Init <0>__OnCatalogInit; } [StructLayout(LayoutKind.Auto)] [CompilerGenerated] private struct <>c__DisplayClass3_0 { public string bodyName; } public static ConfigFile BodyConfig; public static ConfigFile BodyEnableConfig; public static void Initializer() { //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Expected O, but got Unknown //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown object obj = <>O.<0>__OnCatalogInit; if (obj == null) { hook_Init val = OnCatalogInit; <>O.<0>__OnCatalogInit = val; obj = (object)val; } BodyCatalog.Init += (hook_Init)obj; BodyConfig = new ConfigFile(Path.Combine(Paths.ConfigPath, "ESBM-BodyConfig.cfg"), true); } private static IEnumerator OnCatalogInit(orig_Init orig) { yield return orig.Invoke(); <>c__DisplayClass3_0 CS$<>8__locals0 = default(<>c__DisplayClass3_0); foreach (GameObject body in BodyCatalog.allBodyPrefabs) { CS$<>8__locals0.bodyName = ((Object)body).name.Replace("'", ""); if (BodyConfig.Bind<bool>("Config Generation", CS$<>8__locals0.bodyName, false, "Generate configs for this body.").Value) { CharacterBody c = body.GetComponent<CharacterBody>(); c.baseDamage = Bind<float>("Base Damage", "The base damage of the survivor.", c.baseDamage, ref c.levelDamage); c.baseAttackSpeed = Bind<float>("Base Attack Speed", "The base attack speed of the survivor.", c.baseAttackSpeed, ref c.levelAttackSpeed); c.baseMaxHealth = Bind<float>("Base Max Health", "The base maximum health of the survivor.", c.baseMaxHealth, ref c.levelMaxHealth); c.baseArmor = Bind<float>("Base Armor", "The base armor of the survivor.", c.baseArmor, ref c.levelArmor); c.baseMoveSpeed = Bind<float>("Base Movement Speed", "The base movement speed of the survivor.", c.baseMoveSpeed, ref c.levelMoveSpeed); c.baseRegen = Bind<float>("Base Regen", "The base regen of the survivor.", c.baseRegen, ref c.levelRegen); } CS$<>8__locals0 = default(<>c__DisplayClass3_0); T Bind<T>(string name, string desc, T val, ref T levelVal) { T value = BodyConfig.Bind<T>(CS$<>8__locals0.bodyName, name, val, desc).Value; levelVal = BodyConfig.Bind<T>(CS$<>8__locals0.bodyName, name.Replace("Base", "Level"), levelVal, desc.Replace("base", "level")).Value; return value; } } } } public class ItemWeightImprovement { [CompilerGenerated] private static class <>O { public static hook_OnInteractionBegin <0>__HandleChestLootReroll; } public static bool Enabled => ESBM.Bind("Item Weight Tweaks", "Enabled", "Enable item weight scaling? This scales weights so that you are more likely to receive duplicates the more diverse your inventory is.", val: false); public static float Ratio => ESBM.Bind("Item Weight Tweaks", "Inventory Ratio", "The percentage ratio of stacked to unstacked items, as a percentage of stacked compared to total inventory. Item weights of duplicates are increased the further the ratio is from this config.", 2.5f); public static void Initialize() { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Expected O, but got Unknown if (Enabled) { _ = Ratio; object obj = <>O.<0>__HandleChestLootReroll; if (obj == null) { hook_OnInteractionBegin val = HandleChestLootReroll; <>O.<0>__HandleChestLootReroll = val; obj = (object)val; } PurchaseInteraction.OnInteractionBegin += (hook_OnInteractionBegin)obj; } } private static void HandleChestLootReroll(orig_OnInteractionBegin orig, PurchaseInteraction self, Interactor activator) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)((Component)self).GetComponent<ChestBehavior>())) { Scene activeScene = SceneManager.GetActiveScene(); if (!((Scene)(ref activeScene)).name.StartsWith("it")) { ChestBehavior component = ((Component)self).GetComponent<ChestBehavior>(); if (component.dropTable is BasicPickupDropTable && Object.op_Implicit((Object)(object)((Component)activator).GetComponent<CharacterBody>())) { PickupDropTable dropTable = component.dropTable; BasicPickupDropTable val = (BasicPickupDropTable)(object)((dropTable is BasicPickupDropTable) ? dropTable : null); if (!(val.equipmentWeight > 0f) && !(val.lunarItemWeight > 0f) && !(val.lunarEquipmentWeight > 0f) && !(val.lunarCombinedWeight > 0f)) { ? val2 = component; PickupDropTable dropTable2 = component.dropTable; ((ChestBehavior)val2).currentPickup = RollModifiedDrop((BasicPickupDropTable)(object)((dropTable2 is BasicPickupDropTable) ? dropTable2 : null), ((Component)activator).GetComponent<CharacterBody>()); } } } } orig.Invoke(self, activator); } public static UniquePickup RollModifiedDrop(BasicPickupDropTable table, CharacterBody user) { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) DiversePickupTable diversePickupTable = new DiversePickupTable(table, Run.instance.stageRng); return new UniquePickup(diversePickupTable.GenerateDropForPlayer(user.inventory)); } } public class DiversePickupTable { public WeightedSelection<List<PickupIndex>> TierSelection = new WeightedSelection<List<PickupIndex>>(8); public Xoroshiro128Plus rng; public void PopulateFromDropTable(BasicPickupDropTable table) { TierSelection.Clear(); TierSelection.AddChoice(new List<PickupIndex>(), table.tier1Weight); AddToSelection(Run.instance.availableTier1DropList, ref TierSelection.choices[TierSelection.Count - 1].value, table); TierSelection.AddChoice(new List<PickupIndex>(), table.tier2Weight); AddToSelection(Run.instance.availableTier2DropList, ref TierSelection.choices[TierSelection.Count - 1].value, table); TierSelection.AddChoice(new List<PickupIndex>(), table.tier3Weight); AddToSelection(Run.instance.availableTier3DropList, ref TierSelection.choices[TierSelection.Count - 1].value, table); TierSelection.AddChoice(new List<PickupIndex>(), table.voidTier1Weight); AddToSelection(Run.instance.availableVoidTier1DropList, ref TierSelection.choices[TierSelection.Count - 1].value, table); TierSelection.AddChoice(new List<PickupIndex>(), table.voidTier2Weight); AddToSelection(Run.instance.availableVoidTier2DropList, ref TierSelection.choices[TierSelection.Count - 1].value, table); TierSelection.AddChoice(new List<PickupIndex>(), table.voidTier3Weight); AddToSelection(Run.instance.availableVoidTier3DropList, ref TierSelection.choices[TierSelection.Count - 1].value, table); } public DiversePickupTable(BasicPickupDropTable table, Xoroshiro128Plus rng) { PopulateFromDropTable(table); this.rng = rng; } public PickupIndex GenerateDropForPlayer(Inventory inventory) { //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) List<PickupIndex> list = TierSelection.Evaluate(rng.nextNormalizedFloat); WeightedSelection<PickupIndex> val = new WeightedSelection<PickupIndex>(8); float sameTypeWeightMultiplier = GetSameTypeWeightMultiplier(GetTierForSelection(list), inventory); ESBM.ModLogger.LogError((object)("Stackable Weight For Player: " + sameTypeWeightMultiplier)); foreach (PickupIndex item in list) { ItemDef itemDef = ItemCatalog.GetItemDef(PickupCatalog.GetPickupDef(item).itemIndex); float num = 1f; if (inventory.GetItemCount(itemDef) > 0) { num *= ((inventory.GetItemCount(itemDef) > 1) ? sameTypeWeightMultiplier : (sameTypeWeightMultiplier * 0.5f)); } val.AddChoice(item, num); } return val.Evaluate(rng.nextNormalizedFloat); } public static float GetSameTypeWeightMultiplier(ItemTierDef tier, Inventory inventory) { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) float result = 1f; int num = 0; int num2 = 0; foreach (ItemIndex item in inventory.itemAcquisitionOrder) { int itemCount = inventory.GetItemCount(item); num += itemCount; if (itemCount > 1) { num2 += itemCount; } } float num3 = (float)num2 / (float)num; if (num3 < ItemWeightImprovement.Ratio) { result = 1f + (ItemWeightImprovement.Ratio - num3); } return result; } public ItemTierDef GetTierForSelection(List<PickupIndex> selection) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) return ItemCatalog.GetItemDef(PickupCatalog.GetPickupDef(selection[0]).itemIndex)._itemTierDef; } public void AddToSelection(List<PickupIndex> indices, ref List<PickupIndex> selection, BasicPickupDropTable table) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) foreach (PickupIndex index in indices) { if (!IsFilterRequired() || PassesFilter(index)) { selection.Add(index); } } bool IsFilterRequired() { if (table.requiredItemTags.Length == 0) { return table.bannedItemTags.Length == 0; } return true; } bool PassesFilter(PickupIndex index) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Invalid comparison between Unknown and I4 //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) PickupDef pickupDef = PickupCatalog.GetPickupDef(index); if ((int)pickupDef.itemIndex != -1) { ItemDef itemDef = ItemCatalog.GetItemDef(pickupDef.itemIndex); ItemTag[] bannedItemTags = table.bannedItemTags; foreach (ItemTag value in bannedItemTags) { if (Array.IndexOf(itemDef.tags, value) != -1) { return false; } } ItemTag[] requiredItemTags = table.requiredItemTags; foreach (ItemTag value2 in requiredItemTags) { if (Array.IndexOf(itemDef.tags, value2) == -1) { return false; } } return true; } return false; } } } public static class MiscTweaks { public static void Initialize() { ESBM.ApplyIfExists("RazorhiveMod", delegate(Assembly x) { if (ESBM.Bind("Mod Changes :: Razorhive", "Disable Hit Refresh", "Removes Razorhives ability to refresh on hit.", val: false)) { new FieldPatch(x, "RazorwireMod.Items.HiveOrb", "damageType", new ValueData { iVals = new int[0] }, "OnArrival", "r2api_moddedDamageTypes"); new FieldPatch(x, "RazorwireMod.Items.Razorhive", "ItemFullDescription", new ValueData { sVal = "", filter = new Filter { StringFilter = "Each sting <style=cIsUtility>refreshes</style> the duration. " }, operation = "Replace" }); } }); ESBM.ApplyIfExists("Hex3Mod", delegate(Assembly x) { //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Expected O, but got Unknown //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Expected O, but got Unknown if (ESBM.Bind("Mod Changes :: Hex3Mod", "Captains Favor Corruption", "Makes Captains Favor corrupt Sale Star.", val: false)) { new MethodPatch(x, "Hex3Mod.Items.CaptainsFavor", "AddHooks", new ValueData { sVal = "LowerPricedChests", filter = new Filter { StringFilter = "FourHundredTickets" } }, Operation.Replace); new MethodPatch(x, "Hex3Mod.Items.CaptainsFavor", "AddTokens", new ValueData { sVal = "The first chests you open each stage will be replaced by a Void Potential. <style=cIsVoid>Corrupts all Sale Stars.</style>", filter = new Filter { StringFilter = "The first chests you open each stage will be replaced by a Void Potential. <style=cIsVoid>Corrupts all 400 Tickets.</style>" } }, Operation.Replace); new MethodPatch(x, "Hex3Mod.Items.CaptainsFavor", "UpdateItemStatus", new ValueData { sVal = "The first <style=cStack>(+1 per stack)</style> chest you open each stage will be replaced by a <style=cIsVoid>Void Potential</style>, inheriting the chest's item tiers. <style=cIsVoid>Corrupts all Sale Stars.</style>", filter = new Filter { StringFilter = "The first <style=cStack>(+1 per stack)</style> chest you open each stage will be replaced by a <style=cIsVoid>Void Potential</style>, inheriting the chest's item tiers. <style=cIsVoid>Corrupts all 400 Tickets.</style>" } }, Operation.Replace); } float nerf = ESBM.Bind("Mod Changes :: Hex3Mod", "The Unforgivable Stack Nerf", "Nerfs the reduction per stack on The Unforgivable. Default is 0.5", 0.5f); ILHook val = new ILHook((MethodBase)x.GetType("Hex3Mod.Items.TheUnforgivable/UnforgivableBehavior").GetMethod("FixedUpdate", ESBM.FLAGS), (Manipulator)delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown ILCursor val2 = new ILCursor(il); val2.TryGotoNext((MoveType)0, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchDiv(x) }); val2.Remove(); val2.EmitDelegate<Func<float, float, float>>((Func<float, float, float>)((float interval, float stack) => (stack >= 2f) ? (interval * Mathf.Pow(1f - nerf, stack)) : interval)); }); new MethodPatch(x, "Hex3Mod.Items.TheUnforgivable", "UpdateItemStatus", new ValueData { sVal = "Activate your <style=cIsDamage>on-kill effects</style> at your location every <style=cIsDamage>{0}</style> <style=cStack>" + $"(-{nerf * 100f}% per stack)</style> seconds.", filter = new Filter { StringFilter = "Activate your <style=cIsDamage>on-kill effects</style> at your location every <style=cIsDamage>{0}</style> <style=cStack>(-50% per stack)</style> seconds." } }, Operation.Replace); }); ESBM.ApplyIfExists("UmbralMithrix", delegate(Assembly x) { if (ESBM.Bind("Mod Changes :: Umbral Mithrix", "No Glass Clones", "Removes the glass clones from the Umbral Mithrix fight.", val: false)) { new MethodPatch(x, "UmbralMithrix.CloneController", "FixedUpdate", new ValueData(), Operation.Return); } }); ESBM.ApplyIfExists("MysticsItemsPlugin", delegate(Assembly x) { if (ESBM.Bind("Mod Changes :: MysticsItems", "Black Monolith Retier", "Makes Black Monolith a red item.", val: false)) { new FieldPatch(x, "MysticsItems.Items.ExtraShrineUse", "itemDef", new ValueData { spVal = SpriteHandler.ProcessSprite("texRedMonolith.png") }, "OnLoad", "pickupIconSprite", InjectionTiming.End); new MethodPatch(x, "MysticsItems.Items.ExtraShrineUse", "SetItemTierWhenAvailable", new ValueData { eVal = "Tier3" }, Operation.Input, "OnLoad", 1); } int num = ESBM.Bind("Mod Changes :: MysticsItems", "Black Monolith Usages", "Increases the use count of Black Monolith. Default is 1.", 1); new MethodPatch(x, "MysticsItems.Items.ExtraShrineUse", "UpdateShrine", new ValueData { iVal = 2, operation = "Multiply" }, Operation.Input, null, 2); LanguageAPI.AddOverlay("ITEM_MYSTICSITEMS_EXTRASHRINEUSE_DESC", $"All Shrines can be used <style=cIsUtility>{num} <style=cStack>(+{num} per stack)</style></style> more times."); LanguageAPI.AddOverlay("ITEM_MYSTICSITEMS_EXTRASHRINEUSE_PICKUP", "All Shrines can be used " + HumanFriendlyInteger.IntegerToWritten(num) + " more time" + ((num > 1) ? "s" : "") + "."); }); } } public static class NoDiabloDamage { [CompilerGenerated] private static class <>O { public static hook_ModifyProjectile <0>__ModifyProjectile; public static hook_TakeDamage <1>__TakeDamage; } public static ModdedDamageType DiabloType = DamageAPI.ReserveDamageType(); public static void Initialize() { //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Expected O, but got Unknown if (ESBM.Bind("Vanilla Changes :: Diablo Strike", "Ally Protection", "Prevents Diablo damage against allies (knockback still applies)", val: false)) { object obj = <>O.<0>__ModifyProjectile; if (obj == null) { hook_ModifyProjectile val = ModifyProjectile; <>O.<0>__ModifyProjectile = val; obj = (object)val; } CallAirstrikeAlt.ModifyProjectile += (hook_ModifyProjectile)obj; object obj2 = <>O.<1>__TakeDamage; if (obj2 == null) { hook_TakeDamage val2 = TakeDamage; <>O.<1>__TakeDamage = val2; obj2 = (object)val2; } HealthComponent.TakeDamage += (hook_TakeDamage)obj2; } } private static void TakeDamage(orig_TakeDamage orig, HealthComponent self, DamageInfo damageInfo) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Invalid comparison between Unknown and I4 //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) if (DamageAPI.HasModdedDamageType(ref damageInfo.damageType, DiabloType) && (int)self.body.teamComponent.teamIndex == 1 && (Object)(object)damageInfo.attacker != (Object)(object)((Component)self).gameObject) { damageInfo.damage = 1f; damageInfo.damageType |= DamageTypeCombo.op_Implicit((DamageType)2048); damageInfo.force *= 0.35f; } orig.Invoke(self, damageInfo); } private static void ModifyProjectile(orig_ModifyProjectile orig, CallAirstrikeAlt self, ref FireProjectileInfo fireProjectileInfo) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self, ref fireProjectileInfo); DamageTypeCombo value = default(DamageTypeCombo); ((DamageTypeCombo)(ref value))..ctor(DamageTypeCombo.op_Implicit((DamageType)32), (DamageTypeExtended)0, (DamageSource)4); DamageAPI.AddModdedDamageType(ref value, DiabloType); fireProjectileInfo.damageTypeOverride = value; } } public class PlayerRespawns { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Action<TeleporterInteraction> <>9__6_0; public static hook_OnEnter <>9__6_1; public static hook_OnEnter <>9__6_2; public static hook_OnEnter <>9__6_3; public static Func<PlayerCharacterMasterController, bool> <>9__7_0; internal void <Initialize>b__6_0(TeleporterInteraction x) { AttemptRespawnDeadPlayers(); } internal void <Initialize>b__6_1(orig_OnEnter x, MissionCompleted y) { x.Invoke(y); AttemptRespawnDeadPlayers(); } internal void <Initialize>b__6_2(orig_OnEnter x, Phase1 y) { x.Invoke(y); AttemptRespawnDeadPlayers(); } internal void <Initialize>b__6_3(orig_OnEnter x, Phase1 y) { x.Invoke(y); AttemptRespawnDeadPlayers(); } internal bool <AttemptRespawnDeadPlayers>b__7_0(PlayerCharacterMasterController x) { return Object.op_Implicit((Object)(object)x.body); } } public static bool BeforeMithrixEnabled => ESBM.Bind("Player Respawns", "Before Final Bosses", "Should all dead players respawn at the start of a final boss?", val: false); public static bool AfterVieldsEnabled => ESBM.Bind("Player Respawns", "After Void Cells", "Should all dead players respawn upon completion of the Void Fields?", val: false); public static bool AfterTeleporterEnabled => ESBM.Bind("Player Respawns", "After Teleporter", "Should all dead players respawn after the teleporter event is over?", val: false); public static void Initialize() { //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Expected O, but got Unknown //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Expected O, but got Unknown //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Expected O, but got Unknown if (AfterTeleporterEnabled) { TeleporterInteraction.onTeleporterChargedGlobal += delegate { AttemptRespawnDeadPlayers(); }; } if (AfterVieldsEnabled) { object obj = <>c.<>9__6_1; if (obj == null) { hook_OnEnter val = delegate(orig_OnEnter x, MissionCompleted y) { x.Invoke(y); AttemptRespawnDeadPlayers(); }; <>c.<>9__6_1 = val; obj = (object)val; } MissionCompleted.OnEnter += (hook_OnEnter)obj; } if (!BeforeMithrixEnabled) { return; } object obj2 = <>c.<>9__6_2; if (obj2 == null) { hook_OnEnter val2 = delegate(orig_OnEnter x, Phase1 y) { x.Invoke(y); AttemptRespawnDeadPlayers(); }; <>c.<>9__6_2 = val2; obj2 = (object)val2; } Phase1.OnEnter += (hook_OnEnter)obj2; object obj3 = <>c.<>9__6_3; if (obj3 == null) { hook_OnEnter val3 = delegate(orig_OnEnter x, Phase1 y) { x.Invoke(y); AttemptRespawnDeadPlayers(); }; <>c.<>9__6_3 = val3; obj3 = (object)val3; } Phase1.OnEnter += (hook_OnEnter)obj3; } public static void AttemptRespawnDeadPlayers() { //IL_00d9: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active) { return; } PlayerCharacterMasterController[] array = PlayerCharacterMasterController.instances.Where((PlayerCharacterMasterController x) => Object.op_Implicit((Object)(object)x.body)).ToArray(); foreach (PlayerCharacterMasterController instance in PlayerCharacterMasterController.instances) { if (Object.op_Implicit((Object)(object)instance.master) && (!Object.op_Implicit((Object)(object)instance.body) || !instance.body.healthComponent.alive) && (!Object.op_Implicit((Object)(object)instance.master.bodyInstanceObject) || !instance.master.bodyInstanceObject.GetComponent<CharacterBody>().healthComponent.alive)) { instance.master.deathFootPosition = array[Random.Range(0, array.Length)].body.footPosition; instance.master.RespawnExtraLifeShrine(); } } } } public static class StunResistance { [CompilerGenerated] private static class <>O { public static hook_SetStun <0>__ResistStun; public static hook_SetFrozen <1>__ResistFreeze; public static hook_SetShock <2>__ResistShock; } public static BuffDef bdStunRes; public static float ResistPerStack; public static float LargeEnemyMultiplier; public static void Initialize() { //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Expected O, but got Unknown //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Expected O, but got Unknown //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Expected O, but got Unknown if (ESBM.Bind("Enemy CC Resistance", "Enabled", "Whether enemies should build up a tolerance to CC effects.", val: false)) { bdStunRes = ScriptableObject.CreateInstance<BuffDef>(); bdStunRes.isHidden = true; bdStunRes.canStack = true; bdStunRes.isDebuff = false; ContentAddition.AddBuffDef(bdStunRes); object obj = <>O.<0>__ResistStun; if (obj == null) { hook_SetStun val = ResistStun; <>O.<0>__ResistStun = val; obj = (object)val; } SetStateOnHurt.SetStun += (hook_SetStun)obj; object obj2 = <>O.<1>__ResistFreeze; if (obj2 == null) { hook_SetFrozen val2 = ResistFreeze; <>O.<1>__ResistFreeze = val2; obj2 = (object)val2; } SetStateOnHurt.SetFrozen += (hook_SetFrozen)obj2; object obj3 = <>O.<2>__ResistShock; if (obj3 == null) { hook_SetShock val3 = ResistShock; <>O.<2>__ResistShock = val3; obj3 = (object)val3; } SetStateOnHurt.SetShock += (hook_SetShock)obj3; ResistPerStack = ESBM.Bind("Enemy CC Resistance", "Resist Percentage", "How much to resist CC effects by for each CC re-application.", 0.2f); LargeEnemyMultiplier = ESBM.Bind("Enemy CC Resistance", "Large Enemy Multiplier", "The effectiveness multiplier against elites and bosses.", 1.5f); } } private static void ResistStun(orig_SetStun orig, SetStateOnHurt self, float duration) { //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) CharacterBody component = ((Component)self).GetComponent<CharacterBody>(); if (Object.op_Implicit((Object)(object)component)) { int buffCount = component.GetBuffCount(bdStunRes); duration = ((!component.isElite && !component.isChampion) ? (duration * ((buffCount > 1) ? Mathf.Pow(1f - ResistPerStack, (float)(buffCount - 1)) : 1f)) : (duration * ((buffCount > 1) ? Mathf.Pow(1f - ResistPerStack * LargeEnemyMultiplier, (float)(buffCount - 1)) : 1f))); component.AddTimedBuff(bdStunRes, 8f); foreach (TimedBuff timedBuff in component.timedBuffs) { if (timedBuff.buffIndex == bdStunRes.buffIndex) { timedBuff.timer = 8f; } } } orig.Invoke(self, duration); } private static void ResistFreeze(orig_SetFrozen orig, SetStateOnHurt self, float duration) { //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) CharacterBody component = ((Component)self).GetComponent<CharacterBody>(); if (Object.op_Implicit((Object)(object)component)) { int buffCount = component.GetBuffCount(bdStunRes); duration = ((!component.isElite && !component.isChampion) ? (duration * ((buffCount > 1) ? Mathf.Pow(1f - ResistPerStack, (float)(buffCount - 1)) : 1f)) : (duration * ((buffCount > 1) ? Mathf.Pow(1f - ResistPerStack * LargeEnemyMultiplier, (float)(buffCount - 1)) : 1f))); component.AddTimedBuff(bdStunRes, 8f); foreach (TimedBuff timedBuff in component.timedBuffs) { if (timedBuff.buffIndex == bdStunRes.buffIndex) { timedBuff.timer = timedBuff.totalDuration; } } } orig.Invoke(self, duration); } private static void ResistShock(orig_SetShock orig, SetStateOnHurt self, float duration) { //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) CharacterBody component = ((Component)self).GetComponent<CharacterBody>(); if (Object.op_Implicit((Object)(object)component)) { int buffCount = component.GetBuffCount(bdStunRes); duration = ((!component.isElite && !component.isChampion) ? (duration * ((buffCount > 1) ? Mathf.Pow(1f - ResistPerStack, (float)(buffCount - 1)) : 1f)) : (duration * ((buffCount > 1) ? Mathf.Pow(1f - ResistPerStack * LargeEnemyMultiplier, (float)(buffCount - 1)) : 1f))); component.AddTimedBuff(bdStunRes, 8f); foreach (TimedBuff timedBuff in component.timedBuffs) { if (timedBuff.buffIndex == bdStunRes.buffIndex) { timedBuff.timer = timedBuff.totalDuration; } } } orig.Invoke(self, duration); } } } namespace ESBM.TweakHelpers { public enum InjectionTiming { Before, End } public class FieldPatch { public string typeName; public string fieldName; public ValueData mod; public string injection; public InjectionTiming timing; private FieldInfo info; private PropertyInfo pInfo; private Sprite sprite; public string path; private FieldInfo[] infos; private bool post = false; public FieldPatch(Assembly assembly, string type, string field, ValueData mod, string method = null, string childPath = null, InjectionTiming timing = InjectionTiming.Before, Sprite sprite = null) { typeName = type; fieldName = field; this.mod = mod; injection = method; this.timing = timing; this.sprite = sprite; path = childPath; Apply(assembly); } public void Apply(Assembly assembly) { //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Expected O, but got Unknown //IL_0122: Unknown result type (might be due to invalid IL or missing references) Type type = assembly.GetType(typeName); if (mod == null || (Object)(object)mod.spVal != (Object)null) { } info = type.GetField(fieldName, ESBM.FLAGS); if (info == null) { TryApplyProperty(type); return; } infos = ResolveFields(info); if (infos == null) { return; } if (timing == InjectionTiming.End) { post = true; } if (string.IsNullOrEmpty(injection) && infos[infos.Length - 1].IsStatic) { FieldInfo fieldInfo = infos[infos.Length - 1]; if (!(fieldInfo == null)) { mod.Apply(fieldInfo); } } else { new ILHook((MethodBase)type.GetMethod(injection, ESBM.FLAGS), new Manipulator(Hook)); } } public FieldInfo[] ResolveFields(FieldInfo info) { if (string.IsNullOrEmpty(path)) { return new FieldInfo[1] { info }; } string[] array = path.Split("/"); FieldInfo[] array2 = new FieldInfo[array.Length + 1]; array2[0] = info; for (int i = 0; i < array.Length; i++) { info = info.FieldType.GetField(array[i], ESBM.FLAGS); array2[i + 1] = info; } return array2; } public void TryApplyProperty(Type type) { //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Expected O, but got Unknown //IL_002f: Unknown result type (might be due to invalid IL or missing references) pInfo = type.GetProperty(fieldName, ESBM.FLAGS); new ILHook((MethodBase)pInfo.GetMethod, new Manipulator(PropertyHook)); } public void Hook(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown ILCursor val = new ILCursor(il); if (post) { while (val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchRet(x) })) { int index = val.Index; val.Index = index - 1; EmitIL(val); val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchRet(x) }); } } else { EmitIL(val); } } public void EmitIL(ILCursor c) { //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) if (infos[infos.Length - 1].IsStatic) { mod.EmitValue(infos[infos.Length - 1], c); c.Emit(OpCodes.Stsfld, infos[infos.Length - 1]); return; } c.Emit(OpCodes.Ldarg_0); for (int i = 0; i < infos.Length; i++) { FieldInfo fieldInfo = infos[i]; if (i == infos.Length - 1) { mod.EmitValue(fieldInfo, c); c.Emit(OpCodes.Stfld, fieldInfo); } else if (fieldInfo.FieldType.IsValueType) { c.Emit(OpCodes.Ldflda, fieldInfo); } else { c.Emit(OpCodes.Ldfld, fieldInfo); } } } public void PropertyHook(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_0030: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); if (mod.operation == null) { mod.EmitValue(pInfo, val); val.Emit(OpCodes.Ret); return; } while (val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchRet(x) })) { int index = val.Index; val.Index = index - 1; mod.EmitValue(pInfo, val, op: true); val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchRet(x) }); } } } public enum Operation { Replace, Suppress, Return, Input } public class MethodPatch { public string typeName; public string methodName; public ValueData mod; public Operation operation; public int index; public string injection; private MethodInfo info; private MethodInfo target; private ParameterInfo param; private int paramCount; public MethodPatch(Assembly assembly, string type, string method, ValueData mod, Operation operation, string replace = null, int param = 0) { typeName = type; methodName = method; this.mod = mod; injection = replace; this.operation = operation; index = param; Apply(assembly); } public void Apply(Assembly assembly) { //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Expected O, but got Unknown //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Expected O, but got Unknown //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_0196: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Expected O, but got Unknown //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Expected O, but got Unknown //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Expected O, but got Unknown //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Expected O, but got Unknown //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0227: Unknown result type (might be due to invalid IL or missing references) //IL_0231: Expected O, but got Unknown //IL_022c: Unknown result type (might be due to invalid IL or missing references) Type type = assembly.GetType(typeName); try { info = type.GetMethod(methodName, ESBM.FLAGS); } catch { info = type.GetMethods(ESBM.FLAGS).FirstOrDefault((MethodInfo x) => x.GetParameters().Count() >= index); } paramCount = info.GetParameters().Length; if (injection != null) { target = type.GetMethod(injection, ESBM.FLAGS); if (operation == Operation.Suppress) { new ILHook((MethodBase)target, new Manipulator(SuppressI)); } else if (operation == Operation.Return) { new ILHook((MethodBase)target, new Manipulator(ReturnI)); } else if (operation == Operation.Input) { ParameterInfo[] parameters = info.GetParameters(); if (index - 1 < parameters.Length) { param = parameters[index - 1]; new ILHook((MethodBase)target, new Manipulator(InputI)); } } } else if (operation == Operation.Suppress) { new ILHook((MethodBase)info, new Manipulator(Suppress)); } else if (operation == Operation.Return) { new ILHook((MethodBase)info, new Manipulator(Return)); } else if (operation == Operation.Replace) { new ILHook((MethodBase)info, new Manipulator(Replace)); } else if (operation == Operation.Input) { ParameterInfo[] parameters2 = info.GetParameters(); if (index - 1 < parameters2.Length) { param = parameters2[index - 1]; new ILHook((MethodBase)info, new Manipulator(Input)); } } } public void Replace(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown ILCursor val = new ILCursor(il); if (mod.sVal != null) { while (val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchLdstr(x, mod.filter.StringFilter) })) { val.Prev.Operand = mod.sVal; } } else if (mod.filter.FloatFilter != null) { while (val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchLdcR4(x, float.Parse(mod.filter.FloatFilter)) })) { val.Prev.Operand = mod.fVal; } } else if (mod.filter.IntFilter != null) { while (val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchLdcR4(x, (float)int.Parse(mod.filter.IntFilter)) })) { val.Prev.Operand = mod.iVal; } } } public void Suppress(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003c: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); if (info.ReturnType != typeof(void)) { val.EmitDelegate<Func<object>>((Func<object>)(() => GetDefaultValue(info.ReturnType))); } val.Emit(OpCodes.Ret); } public void Return(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_001d: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); mod.EmitValue(info, val); val.Emit(OpCodes.Ret); } public void Input(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); if (mod.operation != null) { val.Emit(OpCodes.Ldarg, info.IsStatic ? (index - 1) : index); } mod.EmitValue(param.ParameterType, val, mod.operation != null); val.Emit(OpCodes.Starg, info.IsStatic ? (index - 1) : index); } public void SuppressI(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); while (val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCallOrCallvirt(x, (MethodBase)info) })) { int num = val.Index; val.Index = num - 1; val.Remove(); for (int i = 0; i < paramCount; i++) { val.Emit(OpCodes.Pop); } if (!info.IsStatic) { val.Emit(OpCodes.Pop); } if (info.ReturnType != typeof(void)) { val.EmitDelegate<Func<object>>((Func<object>)(() => GetDefaultValue(info.ReturnType))); } } } public void ReturnI(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); while (val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCallOrCallvirt(x, (MethodBase)info) })) { int num = val.Index; val.Index = num - 1; val.Remove(); for (int i = 0; i < paramCount; i++) { val.Emit(OpCodes.Pop); } if (!info.IsStatic) { val.Emit(OpCodes.Pop); } if (info.ReturnType != typeof(void)) { mod.EmitValue(info, val); } val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCallOrCallvirt(x, (MethodBase)info) }); } } public void InputI(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_0058: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); while (val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCallOrCallvirt(x, (MethodBase)info) })) { int num = val.Index; val.Index = num - 1; int num2 = val.Index; Instruction val2 = FindParameter(il, val.Next); val.Index = il.IndexOf(val2); if (mod.operation == null) { val.Emit(OpCodes.Pop); } mod.EmitValue(param, val, mod.operation != null); val.Index = num2; val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCallOrCallvirt(x, (MethodBase)info) }); } } private object GetDefaultValue(Type t) { if (t.IsValueType) { return Activator.CreateInstance(t); } return null; } private Instruction FindParameter(ILContext il, Instruction call) { List<Instruction> list = ((IEnumerable<Instruction>)il.Body.Instructions).ToList(); Stack<Instruction> stack = new Stack<Instruction>(); foreach (Instruction item in list) { int num = StackChange(item); if (num > 0) { for (int i = 0; i < num; i++) { stack.Push(item); } } if (num < 0) { for (int j = 0; j < Math.Abs(num); j++) { if (stack.Count > 0) { stack.Pop(); } } } if (item == call) { int num2 = paramCount + ((!info.IsStatic) ? 1 : 0); return stack.ElementAt(stack.Count - (num2 - (index - 1))); } } return null; } private int StackChange(Instruction i) { //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Invalid comparison between Unknown and I4 //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Invalid comparison between Unknown and I4 //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Invalid comparison between Unknown and I4 //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Invalid comparison between Unknown and I4 //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Invalid comparison between Unknown and I4 //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Invalid comparison between Unknown and I4 //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) int num = 0; OpCode opCode = i.OpCode; StackBehaviour stackBehaviourPop = ((OpCode)(ref opCode)).StackBehaviourPop; StackBehaviour val = stackBehaviourPop; if ((int)val != 1) { if ((int)val != 2) { if ((int)val == 27 && (i.OpCode == OpCodes.Call || i.OpCode == OpCodes.Callvirt)) { object operand = i.Operand; IMethodSignature val2 = (IMethodSignature)((operand is IMethodSignature) ? operand : null); int num2 = val2.Parameters.Count; if (val2.HasThis) { num2++; } num += num2; } } else { num += 2; } } else { num++; } opCode = i.OpCode; StackBehaviour stackBehaviourPush = ((OpCode)(ref opCode)).StackBehaviourPush; StackBehaviour val3 = stackBehaviourPush; if ((int)val3 != 20) { if ((int)val3 != 21) { if ((int)val3 == 28 && (i.OpCode == OpCodes.Call || i.OpCode == OpCodes.Callvirt)) { object operand2 = i.Operand; IMethodSignature val4 = (IMethodSignature)((operand2 is IMethodSignature) ? operand2 : null); if (((MemberReference)val4.ReturnType).FullName != typeof(void).FullName) { num--; } } } else { num -= 2; } } else { num--; } return num; } } public static class SpriteHandler { public static Sprite ProcessSprite(string resource) { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Expected O, but got Unknown //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0191: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Expected O, but got Unknown //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) Stream manifestResourceStream = typeof(SpriteHandler).Assembly.GetManifestResourceStream("ESBM.Resources." + resource); byte[] array = new byte[manifestResourceStream.Length]; manifestResourceStream.Read(array); Texture2D val = new Texture2D(2, 2, (TextureFormat)4, false); ImageConversion.LoadImage(val, array); ((Texture)val).filterMode = (FilterMode)1; ((Texture)val).wrapMode = (TextureWrapMode)1; val.Apply(false, false); int width = ((Texture)val).width; int height = ((Texture)val).height; int num = Math.Max(width, height); int num2 = (num - width) / 2; int num3 = (num - height) / 2; Texture2D val2 = val; if (width != height) { val2 = new Texture2D(num, num, val.format, false); Color val3 = default(Color); ((Color)(ref val3))..ctor(0f, 0f, 0f, 0f); for (int i = 0; i < num; i++) { for (int j = 0; j < num; j++) { val2.SetPixel(j, i, val3); } } for (int k = 0; k < height; k++) { for (int l = 0; l < width; l++) { val2.SetPixel(l + num2, k + num3, val.GetPixel(l, k)); } } val2.Apply(false, false); } return Sprite.Create(val2, new Rect(0f, 0f, (float)((Texture)val2).width, (float)((Texture)val2).height), new Vector2(0.5f, 0.5f), 100f, 0u, (SpriteMeshType)0); } } public class ValueData { public string sVal; public int iVal; public float fVal; public bool bVal; public string eVal; public Sprite spVal; public string[] sVals; public int[] iVals; public float[] fVals; public bool[] bVals; public string operation; public Filter filter; public void Apply(FieldInfo info, object instance = null) { object obj = null; if (info.FieldType == typeof(string)) { obj = sVal; } else if (info.FieldType == typeof(int)) { obj = iVal; } else if (info.FieldType == typeof(byte)) { obj = (byte)iVal; } else if (info.FieldType == typeof(float)) { obj = fVal; } else if (info.FieldType == typeof(bool)) { obj = sVal; } else if (info.FieldType.IsEnum) { obj = Enum.Parse(info.FieldType, eVal); } else if (info.FieldType == typeof(string[])) { obj = sVals; } else if (info.FieldType == typeof(int[])) { obj = iVals; } else if (info.FieldType == typeof(byte[])) { obj = CastArray<byte>(iVals); } else if (info.FieldType == typeof(float[])) { obj = fVals; } else if (info.FieldType == typeof(bool[])) { obj = bVals; } else { if (!(info.FieldType == typeof(Sprite))) { return; } obj = spVal; } info.SetValue(instance, v(obj)); object v(object f) { object value = info.GetValue(instance); if (value != null) { return ResolveOperation(value, f); } return f; } } public void Apply(PropertyInfo info, object instance) { object obj = null; if (info.PropertyType == typeof(string)) { obj = sVal; } else if (info.PropertyType == typeof(int)) { obj = iVal; } else if (info.PropertyType == typeof(byte)) { obj = (byte)iVal; } else if (info.PropertyType == typeof(float)) { obj = fVal; } else if (info.PropertyType == typeof(bool)) { obj = sVal; } else if (info.PropertyType.IsEnum) { obj = Enum.Parse(info.PropertyType, eVal); } else if (info.PropertyType == typeof(string[])) { obj = sVals; } else if (info.PropertyType == typeof(int[])) { obj = iVals; } else if (info.PropertyType == typeof(byte[])) { obj = CastArray<byte>(iVals); } else if (info.PropertyType == typeof(float[])) { obj = fVals; } else if (info.PropertyType == typeof(bool[])) { obj = bVals; } else { if (!(info.PropertyType == typeof(Sprite))) { return; } obj = spVal; } info.SetValue(instance, v(obj)); object v(object f) { object value = info.GetValue(instance); if (value != null) { return ResolveOperation(value, f); } return f; } } public void EmitValue(PropertyInfo info, ILCursor c, bool op = false) { EmitValue(info.PropertyType, c, op); } public void EmitValue(FieldInfo info, ILCursor c, bool op = false) { EmitValue(info.FieldType, c, op); } public void EmitValue(MethodInfo info, ILCursor c, bool op = false) { EmitValue(info.ReturnType, c, op); } public void EmitValue(ParameterInfo info, ILCursor c, bool op = false) { EmitValue(info.ParameterType, c, op); } public void EmitValue(Type type, ILCursor c, bool ope = false) { //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_028a: Unknown result type (might be due to invalid IL or missing references) if (type == typeof(string)) { Emit(OpCodes.Ldstr, sVal); } else if (type == typeof(int) || type == typeof(byte)) { Emit(OpCodes.Ldc_I4, iVal); } else if (type == typeof(float)) { Emit(OpCodes.Ldc_R4, fVal); } else if (type == typeof(bool)) { Emit(OpCodes.Ldc_I4, bVal ? 1 : 0); } else if (type == typeof(int[])) { EmitArray(c, iVals); } else if (type == typeof(byte[])) { EmitArray(c, CastArray<byte>(iVals)); } else if (type == typeof(string[])) { EmitArray(c, sVals); } else if (type == typeof(float[])) { EmitArray(c, fVals); } else if (type == typeof(bool[])) { EmitArray(c, bVals); } else if (type == typeof(Sprite)) { c.EmitDelegate<Func<Sprite>>((Func<Sprite>)(() => spVal)); } else if (type.IsEnum) { Type underlyingType = Enum.GetUnderlyingType(type); c.Emit(GetOpCode(underlyingType), Convert.ChangeType(Enum.Parse(type, eVal), underlyingType)); } void Emit(OpCode op, object val) { //IL_002b: Unknown result type (might be due to invalid IL or missing references) if (ope) { ToObject(c, type); } c.Emit(op, val); if (ope) { ToObject(c, type); c.EmitDelegate<Func<object, object, object>>((Func<object, object, object>)((object l, object r) => ResolveOperation(l, r))); FromObject(c, type); } } } public void FromObject(ILCursor c, Type t) { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) if (t.IsValueType) { c.Emit(OpCodes.Unbox_Any, t); } else { c.Emit(OpCodes.Castclass, t); } } public void ToObject(ILCursor c, Type t) { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) if (t.IsValueType) { c.Emit(OpCodes.Box, t); } else { c.Emit(OpCodes.Castclass, typeof(object)); } } public OpCode GetOpCode(Type type) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) if (type == typeof(byte)) { return OpCodes.Ldc_I4; } if (type == typeof(int)) { return OpCodes.Ldc_I4; } if (type == typeof(short)) { return OpCodes.Ldc_I4; } if (type == typeof(long)) { return OpCodes.Ldc_I8; } if (type == typeof(ulong)) { return OpCodes.Ldc_I8; } if (type == typeof(float)) { return OpCodes.Ldc_R4; } if (type == typeof(double)) { return OpCodes.Ldc_R8; } return OpCodes.Ldc_I4; } public T[] CastArray<T>(Array array) { T[] array2 = new T[array.Length]; for (int i = 0; i < array.Length; i++) { array2[i] = (T)array.GetValue(i); } return array2; } public void EmitArray<T>(ILCursor c, T[] array) { c.EmitDelegate<Func<T[]>>((Func<T[]>)(() => array)); } public object ResolveOperation(object left, object right) { if (operation == null) { return right; } bool flag = left is float || right is float; switch (operation.ToLower()) { case "add": if (left is string text && right is string text2) { return text + text2; } if (flag) { return Convert.ToSingle(left) + Convert.ToSingle(right); } return Convert.ToInt32(left) + Convert.ToInt32(right); case "sub": case "subtract": if (flag) { return Convert.ToSingle(left) - Convert.ToSingle(right); } return Convert.ToInt32(left) - Convert.ToInt32(right); case "mul": case "mult": case "multiply": if (flag) { return Convert.ToSingle(left) * Convert.ToSingle(right); } return Convert.ToInt32(left) * Convert.ToInt32(right); case "div": case "divide": if (flag) { return Convert.ToSingle(left) / Convert.ToSingle(right); } return Convert.ToInt32(left) / Convert.ToInt32(right); case "mod": case "modulo": if (flag) { return Convert.ToSingle(left) % Convert.ToSingle(right); } return Convert.ToInt32(left) % Convert.ToInt32(right); case "replace": return (left as string).Replace(filter.StringFilter, right as string); default: return right; } } } public class Filter { public string StringFilter; public string FloatFilter; public string IntFilter; } } namespace ESBM.Utils { public static class StringExtensions { public static void Add(this string token, string text) { LanguageAPI.Add(token, text); } public static void RemoveComponent<T>(this GameObject gameObject) where T : Component { Object.Destroy((Object)(object)gameObject.GetComponent<T>()); } public static void RemoveComponents<T>(this GameObject gameObject) where T : Component { T[] components = gameObject.GetComponents<T>(); for (int i = 0; i < components.Length; i++) { Object.Destroy((Object)(object)components[i]); } } public static T GetRandom<T>(this List<T> list, Xoroshiro128Plus rng = null) { if (rng == null) { return list[Random.RandomRangeInt(0, list.Count)]; } return list[rng.RangeInt(0, list.Count)]; } public static void AddComponent<T>(this Component self) where T : Component { self.gameObject.AddComponent<T>(); } } public static class HumanFriendlyInteger { private static string[] ones = new string[10] { "", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine" }; private static string[] teens = new string[10] { "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen" }; private static string[] tens = new string[8] { "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety" }; private static string[] thousandsGroups = new string[4] { "", " Thousand", " Million", " Billion" }; private static string FriendlyInteger(int n, string leftDigits, int thousands) { if (n == 0) { return leftDigits; } string text = leftDigits; if (text.Length > 0) { text += " "; } if (n < 10) { text += ones[n]; } else if (n < 20) { text += teens[n - 10]; } else if (n < 100) { text += FriendlyInteger(n % 10, tens[n / 10 - 2], 0); } else if (n < 1000) { text += FriendlyInteger(n % 100, ones[n / 100] + " Hundred", 0); } else { text += FriendlyInteger(n % 1000, FriendlyInteger(n / 1000, "", thousands + 1), 0); if (n % 1000 == 0) { return text; } } return text + thousandsGroups[thousands]; } public static string IntegerToWritten(int n) { if (n == 0) { return "Zero"; } if (n < 0) { return "Negative " + IntegerToWritten(-n); } return FriendlyInteger(n, "", 0).ToLower(); } } public static class Keywords { public static string Poison = "KEYWORD_POISON"; public static string Regenerative = "KEYWORD_RAPID_REGEN"; public static string Agile = "KEYWORD_AGILE"; public static string HealthCost = "KEYWORD_PERCENT_HP"; public static string Disperse = "KEYWORD_SONIC_BOOM"; public static string Weak = "KEYWORD_WEAK"; public static string Heavy = "KEYWORD_HEAVY"; public static string Freeze = "KEYWORD_FREEZING"; public static string Stun = "KEYWORD_STUNNING"; public static string Expose = "KEYWORD_EXPOSE"; public static string Shock = "KEYWORD_SHOCKING"; public static string Slayer = "KEYWORD_SLAYER"; public static string Hemorrhage = "KEYWORD_SUPERBLEED"; public static string Ignite = "KEYWORD_IGNITE"; public static string Weakpoint = "KEYWORD_WEAKPOINT"; public static string ActiveReload = "KEYWORD_ACTIVERELOAD"; public static string VoidCorruption = "KEYWORD_VOIDCORRUPTION"; } public static class Events { public static uint Play_item_proc_increasePrimaryDamage = 3525110178u; public static uint Play_item_proc_lowerPricedChest = 2861334124u; public static uint Play_obj_portalShaping_activate = 3169369792u; public static uint Play_item_proc_lowerHealthHigherDamage_active_loop = 2806077218u; public static uint Play_item_proc_lowerHealthHigherDamage_proc = 3144264115u; public static uint Stop_item_proc_lowerHealthHigherDamage_active_loop = 1766373184u; public static uint Play_AMB_zone_helminthRoost = 1401190132u; public static uint Play_env_helminth_jumppad_launch = 804535113u; public static uint Play_env_helminth_jumppad_loop = 1121351506u; public static uint Stop_env_helminth_jumppad_loop = 1859759472u; public static uint Play_item_proc_onLevelUpFreeUnlock_activate = 2156400271u; public static uint Play_item_proc_onLevelUpFreeUnlock_idle = 2826299554u; public static uint Play_item_proc_extraStatsOnLevelUp = 1263627182u; public static uint Play_AMB_zone_villageNight = 446631000u; public static uint Play_item_proc_extraShrineItem = 3488308441u; public static uint Play_ui_artifact_delusion_activate = 2155448709u; public static uint Play_ui_artifact_delusion_failure = 2684473644u; public static uint Play_ui_artifact_delusion_reset = 708431835u; public static uint Play_ui_artifact_delusion_success = 3325363891u; public static uint Play_halcyonite_death = 3525343637u; public static uint Play_halcyonite_idle_loop = 983867080u; public static uint Play_halcyonite_impact = 33305611u; public static uint Play_halcyonite_move_loop = 480080479u; public static uint Play_halcyonite_skill1_chargeup = 1290182503u; public static uint Play_halcyonite_skill1_swing = 936256326u; public static uint Play_halcyonite_skill1_thrust = 1083715706u; public static uint Play_halcyonite_skill2_chargeup = 3979952754u; public static uint Play_halcyonite_skill2_shoot = 3274455546u; public static uint Play_halcyonite_skill3_end = 3079505645u; public static uint Play_halcyonite_skill3_loop = 67562408u; public static uint Play_halcyonite_skill3_start = 970916454u; public static uint Play_halcyonite_spawn = 3688151658u; public static uint Play_halcyonite_VO_alert = 1322088115u; public static uint Stop_halcyonite_idle_loop = 1332844866u; public static uint Stop_halcyonite_move_loop = 2962578225u; public static uint Stop_halcyonite_skill3_loop = 3070087286u; public static uint Play_AMB_zone_lakesDay = 3374250540u; public static uint Play_env_lakes_jumppad_launch = 1567260962u; public static uint Play_env_lakes_jumppad_loop = 3135402281u; public static uint Play_env_lakes_waterfall_loop = 1015031338u; public static uint Stop_env_lakes_jumppad_loop = 417186615u; public static uint Stop_env_lakes_waterfall_loop = 3880166920u; public static uint Play_seeker_selectScreen_idle = 1955843131u; public static uint Play_seeker_skill1_fire = 3158006061u; public static uint Play_seeker_skill1_fire_orb = 39374599u; public static uint Play_seeker_skill1_impact = 2378122475u; public static uint Play_seeker_skill1_orb_explo = 3861306019u; public static uint Play_seeker_skill2_active_loop = 2229939235u; public static uint Play_seeker_skill2_alt_fire = 3268729620u; public static uint Play_seeker_skill2_alt_loop = 2382979698u; public static uint Play_seeker_skill2_end = 3897039939u; public static uint Play_seeker_skill2_fire = 2101638456u; public static uint Play_seeker_skill2_flight_loop = 3838730855u; public static uint Play_seeker_skill2_start = 1063538712u; public static uint Play_seeker_skill3_explo = 985996859u; public static uint Play_seeker_skill3_start = 90951373u; public static uint Play_seeker_skill4_combo_correct = 177463755u; public static uint Play_seeker_skill4_combo_wrong = 884291666u; public static uint Play_seeker_skill4_start = 3296174602u; public static uint Play_seeker_skill4_timeout = 2305681923u; public static uint Play_seeker_skill4_win = 732991608u; public static uint Play_seeker_step = 4226349104u; public static uint Play_seeker_step_sprint = 1145656191u; public static uint Stop_seeker_skill2_active_loop = 127139369u; public static uint Stop_seeker_skill2_alt_loop = 3707674044u; public static uint Stop_seeker_skill2_flight_loop = 2720151021u; public static uint Stop_seeker_skill3_loop = 1337233567u; public static uint Stop_seeker_skill4_start = 2327375048u; public static uint Play_wBisonDeath = 1113517888u; public static uint Play_wBisonHit = 1197473233u; public static uint Play_wBisonShoot1 = 3268390400u; public static uint Play_wBisonSpawn = 1249767875u; public static uint Play_wBlastdoor = 3043230225u; public static uint Play_wBoarDeath = 3944593657u; public static uint Play_wBoarExplosion = 3091761946u; public static uint Play_wBoarHit = 1332006904u; public static uint Play_wBoarMDeath = 2887033908u; public static uint Play_wBoarShoot1 = 2651342963u; public static uint Play_wBoss1Shoot1 = 3380168965u; public static uint Play_wBoss1Shoot2 = 3380168966u; public static uint Play_wBossSkill2 = 857592033u; public static uint Play_wBubbleShield = 3999340508u; public static uint Play_wBullet1 = 3448409474u; public static uint Play_wBullet2 = 3448409473u; public static uint Play_wBullet3 = 3448409472u; public static uint Play_wCasing = 1800381192u; public static uint Play_wChainLightning = 1913174254u; public static uint Play_wChat = 1231583519u; public static uint Play_wChefShoot2_1 = 4002996080u; public static uint Play_wChest0 = 273185112u; public static uint Play_wChest1 = 273185113u; public static uint Play_wChest2 = 273185114u; public static uint Play_wChest5 = 273185117u; public static uint Play_wChildDeath = 3731152613u; public static uint Play_wChildGShoot1 = 2978407106u; public static uint Play_wChildHit = 4072685316u; public static uint Play_wChildShoot1 = 4260787991u; public static uint Play_wClayDeath = 1853199952u; public static uint Play_wClayHit = 2864197409u; public static uint Play_wClayShoot1 = 1969574576u; public static uint Play_wClaySpawn = 1481867283u; public static uint Play_wClick = 1105771879u; public static uint Play_wCoin = 1232716514u; public static uint Play_wCoins = 2360199605u; public static uint Play_wCrabDeath = 2914438815u; public static uint Play_wCrabSpawn = 400103432u; public static uint Play_wCrit_01 = 3774687669u; public static uint Play_wCrowbar = 2755541643u; public static uint Play_wCutsceneAlarm = 2172459452u; public static uint Play_wCutsceneJet = 197474154u; public static uint Play_wCutscenePass = 1461112566u; public static uint Play_wDifficulty = 3657652262u; public static uint Play_wDoll = 1118795882u; public static uint Play_wDrill = 1252691444u; public static uint Play_wDrone1Spawn = 3109566651u; public static uint Play_wEfMushroom = 3355655210u; public static uint Play_wEmbryo = 3519041107u; public static uint Play_wError = 2120356473u; public static uint Play_wExplosiveShot = 1244890662u; public static uint Play_wFeralShoot1 = 732734997u; public static uint Play_wFeralShoot2 = 732734998u; public static uint Play_wFrozen = 1850209911u; public static uint Play_wGeyser = 2014257388u; public static uint Play_wGiantJellyExplosion = 923348941u; public static uint Play_wGiantJellyHit = 3830172407u; public static uint Play_wGolemAttack1 = 1019251312u; public static uint Play_wGolemDeath = 469957963u; public static uint Play_wGolemHit = 1924739498u; public static uint Play_wGolemSpawn = 2658053020u; public static uint Play_wGuardDeath = 2195517878u; public static uint Play_wGuardHit = 3726358359u; public static uint Play_wGuardSpawn = 1193575573u; public static uint Play_wHeavyShoot1 = 2266555164u; public static uint Play_wHitlist = 1828045284u; public static uint Play_wHuntressShoot1 = 2714607293u; public static uint Play_wHuntressShoot3 = 2714607295u; public static uint Play_wImpDeath = 1405469125u; public static uint Play_wImpGShoot1 = 702433570u; public static uint Play_wImpHit = 2697432036u; public static uint Play_wImpShoot1 = 2776445175u; public static uint Play_wImpShoot2 = 2776445172u; public static uint Play_wJanitorShoot1_1 = 2483794322u; public static uint Play_wJanitorShoot1_2 = 2483794321u; public static uint Play_wJanitorShoot2_1 = 1409879677u; public static uint Play_wJanitorShoot2_2 = 1409879678u; public static uint Play_wJanitorShoot4_1 = 1410865383u; public static uint Play_wJanitorShoot4_2 = 1410865380u; public static uint Play_wJarSouls = 4162844532u; public static uint Play_wJellyDeath = 2679553851u; public static uint Play_wJellyHit = 213554906u; public static uint Play_wLevelUp = 1919980434u; public static uint Play_wLevelUpWar = 4023542052u; public static uint Play_wLightning = 1330288141u; public static uint Play_wLizardDeath = 2074794113u; public static uint Play_wLizardGDeath = 4177291774u; public static uint Play_wLizardGHit = 1425978735u; public static uint Play_wLizardGShoot1 = 1170430294u; public static uint Play_wLizardGSpawn = 2684018717u; public static uint Play_wLizardHit = 4207177744u; public static uint Play_wLizardShoot1 = 287412267u; public static uint Play_wLizardSpawn = 1283696654u; public static uint Play_wMine = 1021358464u; public static uint Play_wMinerShoot1 = 1056078324u; public static uint Play_wMinerShoot2 = 1056078327u; public static uint Play_wMinerShoot3 = 1056078326u; public static uint Play_wMinerShoot4 = 1056078321u; public static uint Play_wMissileLaunch = 3415171634u; public static uint Play_wMS = 3023098025u; public static uint Play_wMush = 1473662818u; public static uint Play_wMushDeath = 3463803836u; public static uint Play_wMushHit = 2887429069u; public static uint Play_wMushShoot1 = 487910212u; public static uint Play_wMushSpawn = 4208364455u; public static uint Play_wNautShoot1 = 874719151u; public static uint Play_wPickup = 745840569u; public static uint Play_wPigShoot1 = 4172429713u; public static uint Play_wPodDeath = 368641344u; public static uint Play_wPodHit = 4069172177u; public static uint Play_wPyroShoot1 = 1977581991u; public static uint Play_wReflect = 3534459008u; public static uint Play_wReload = 1935874270u; public static uint Play_wRevive = 3924543518u; public static uint Play_wRiotGrenade = 1170699791u; public static uint Play_wRiotShoot1 = 392428577u; public static uint Play_wSamuraiShoot1 = 2292726403u; public static uint Play_wSamuraiShoot2 = 2292726400u; public static uint Play_wScavengerHit = 3803292342u; public static uint Play_wShield = 144484126u; public static uint Play_wShrine1 = 1516352125u; public static uint Play_wSmite = 1676655215u; public static uint Play_wSniper = 1326789400u; public static uint Play_wSniper2 = 2522836730u; public static uint Play_wSniperShoot3 = 3029163620u; public static uint Play_wSpiderHit = 1534240581u; public static uint Play_wSpiderShoot1 = 4018099836u; public static uint Play_wSpitterHit = 530229631u; public static uint Play_wSpitterShoot1 = 1863108870u; public static uint Play_wSpitterSpawn = 291139117u; public static uint Play_wSqueaky = 1860044956u; public static uint Play_wTeleporter = 1289080377u; public static uint Play_wUse = 1100859862u; public static uint Play_wWatch = 3354880454u; public static uint Play_wWispBDeath = 3021624856u; public static uint Play_wWispBShoot1 = 2025586984u; public static uint Play_wWispDeath = 3169292106u; public static uint Play_wWispGDeath = 1968672835u; public static uint Play_wWispGShoot1 = 969982957u; public static uint Play_wWispHit = 2561235483u; public static uint Play_wWispShoot1 = 914723770u; public static uint Play_wWispSpawn = 3436613665u; public static uint Play_wWormBurning = 2192059253u; public static uint Play_wWormDeath = 3793594386u; public static uint Play_wWormExplosion = 2529227609u; public static uint Play_wWormHit = 3504753139u; public static uint Play_wWormRoar = 1700089088u; public static uint Play_obj_portalColossus_activate = 812056455u; public static uint Play_obj_portalColossus_loop = 1986410382u; public static uint Play_obj_shrineColossus_activate = 2363010998u; public static uint Play_obj_shrineColossus_locked_loop = 3583777048u; public static uint Stop_obj_portalColossus_loop = 1709721620u; public static uint Stop_obj_shrineColossus_locked_loop = 602838254u; public static uint Play_AMB_zone_village = 2140215618u; public static uint Kill_loops = 3633988413u; public static uint Kill_SelectScreen = 314485028u; public static uint Pause_All = 3864097025u; public static uint Play_Achievement = 3433956687u; public static uint Play_acid_larva_attack1_explo = 2451117845u; public static uint Play_acid_larva_attack1_loop = 3362763155u; public static uint Play_acid_larva_attack1_start = 1646746355u; public static uint Play_acid_larva_death = 3568098837u; public static uint Play_acid_larva_idle = 2621183947u; public static uint Play_acid_larva_impact = 2231265675u; public static uint Play_acid_larva_spawn = 3730906858u; public static uint Play_acid_larva_sprint_land = 2824450583u; public static uint Play_acid_larva_sprint_leap = 2639308470u; public static uint Play_acid_larva_step = 828559811u; public static uint Play_acrid_m1_bigSlash = 1656148530u; public static uint Play_acrid_m1_hit = 1822928838u; public static uint Play_acrid_m1_slash = 1719910342u; public static uint Play_acrid_m2_bite_hit = 2714436782u; public static uint Play_acrid_m2_bite_shoot = 456215952u; public static uint Play_acrid_m2_explode = 2736075181u; public static uint Play_acrid_m2_fly_loop = 644013190u; public static uint Play_acrid_m2_shoot = 999289595u; public static uint Play_acrid_R_fly_loop = 1915769387u; public static uint Play_acrid_R_infect = 1007919396u; public static uint Play_acrid_R_shoot = 1160201708u; public static uint Play_acrid_shift_fly_loop = 642600073u; public static uint Play_acrid_shift_jump = 1749522733u; public static uint Play_acrid_shift_land = 320622162u; public static uint Play_acrid_shift_puddle_loop = 1556265730u; public static uint Play_acrid_sprint_start = 801642819u; public static uint Play_acrid_sprint_stop = 3680364993u; public static uint Play_acrid_step = 372958860u; public static uint Play_acrid_step_sprint = 2575316715u; public static uint Play_acrid_step_sprint_hand = 3560327381u; public static uint Play_affix_mendingBomb_explode = 841626335u; public static uint Play_affix_mendingChain_loop = 3768810533u; public static uint Play_affix_void_bug_infect = 939369398u; public static uint Play_affix_void_bug_loop = 1959624827u; public static uint Play_affix_void_bug_spawn = 3394761874u; public static uint Play_affix_void_spawn = 1535219985u; public static uint Play_AMB_zone_arena = 1539048487u; public static uint Play_AMB_zone_artifactWorld = 4134483156u; public static uint Play_AMB_zone_char_select = 1641027481u; public static uint Play_AMB_zone_damp_cave_simple = 1142851345u; public static uint Play_AMB_zone_dark_rain = 938309267u; public static uint Play_AMB_zone_desert = 56392161u; public static uint Play_AMB_zone_lakesDay_01 = 438484882u; public static uint Play_AMB_zone_limbo = 1359925925u; public static uint Play_AMB_zone_moon = 3075336325u; public static uint Play_AMB_zone_rootJungle = 2348244945u; public static uint Play_AMB_zone_ship_graveyard = 642154978u; public static uint Play_AMB_zone_skyMeadow = 3453798682u; public static uint Play_AMB_zone_skyMeadow_hiddenLab = 3040657526u; public static uint Play_AMB_zone_tundra = 38798342u; public static uint Play_AMB_zone_wisp_graveyard = 751162865u; public static uint Play_arenaCrab_idle_VO = 158852972u; public static uint Play_arenaCrab_swim_land = 2386788264u; public static uint Play_arenaCrab_swim_loop = 2401300333u; public static uint Play_arenaCrab_swim_plant = 1572198610u; public static uint Play_arenaCrab_swim_stroke = 2022745195u; public static uint Play_arenaCrab_swim_uproot = 3172304260u; public static uint Play_artifactBoss_attack1_explode = 71177277u; public static uint Play_artifactBoss_attack1_flightLoop = 2591078442u; public static uint Play_artifactBoss_attack1_shoot = 2196529419u; public static uint Play_artifactBoss_death = 4163357724u; public static uint Play_artifactBoss_idle_VO = 1345400638u; public static uint Play_artifactBoss_loop_level1 = 184703648u; public static uint Play_artifactBoss_loop_level2 = 184703651u; public static uint Play_artifactBoss_loop_level3 = 184703650u; public static uint Play_artifactBoss_spawn = 188493575u; public static uint Play_artifactBoss_takehit = 1098257974u; public static uint Play_bandit2_m1_reload_bullet = 452712768u; public static uint Play_bandit2_m1_reload_finish = 888917029u; public static uint Play_bandit2_m1_rifle = 2347126876u; public static uint Play_bandit2_m1_shotgun = 4206201632u; public static uint Play_bandit2_m2_alt_throw = 595565201u; public static uint Play_bandit2_m2_impact = 2278422317u; public static uint Play_bandit2_m2_slash = 4103120750u; public static uint Play_bandit2_R_alt_kill = 4143438424u; public static uint Play_bandit2_R_fire = 1435016856u; public static uint Play_bandit2_R_kill = 3719464252u; public static uint Play_bandit2_R_load = 3765877048u; public static uint Play_bandit2_shift_enter = 2967307668u; public static uint Play_bandit2_shift_exit = 850833398u; public static uint Play_bandit2_step = 3692683083u; public static uint Play_bandit2_step_sprint = 1764271662u; public static uint Play_bandit_M1_pump = 1853111450u; public static uint Play_bandit_M1_shot = 3033552564u; public static uint Play_bandit_M2_load = 2190546849u; public static uint Play_bandit_M2_shot = 1980580961u; public static uint Play_bandit_shift_end = 2770013503u; public static uint Play_bandit_shift_jump = 1325724668u; public static uint Play_bandit_shift_land = 1259710815u; public static uint Play_beetle_guard_attack1 = 763398245u; public static uint Play_beetle_guard_attack2_initial = 2581251415u; public static uint Play_beetle_guard_attack2_spikeLoop = 542781083u; public static uint Play_beetle_guard_death = 1527577102u; public static uint Play_beetle_guard_idle_VO = 3561602500u; public static uint Play_beetle_guard_impact = 2349109310u; public static uint Play_beetle_guard_spawn = 515189165u; public static uint Play_beetle_guard_step = 2628071246u; public static uint Play_beetle_queen_attack1 = 555937964u; public static uint Play_beetle_queen_attack2_impact = 3157521796u; public static uint Play_beetle_queen_attack2_projectile_loop = 1477410428u; public static uint Play_beetle_queen_attack2_shoot = 4217844119u; public static uint Play_beetle_queen_death = 451763711u; public static uint Play_beetle_queen_impact = 806513485u; public static uint Play_beetle_queen_spawn = 2698326632u; public static uint Play_beetle_queen_step = 2551161845u; public static uint Play_beetle_queen_VO_idle = 1845046503u; public static uint Play_beetle_worker_attack = 4241852727u; public static uint Play_beetle_worker_death = 383219511u; public static uint Play_beetle_worker_idle = 1901530073u; public static uint Play_beetle_worker_impact = 1338816453u; public static uint Play_beetle_worker_spawn = 1471942880u; public static uint Play_beetle_worker_step = 1809191501u; public static uint Play_bellBody_attackCreate = 780374380u; public static uint Play_bellBody_attackLand = 1732098311u; public static uint Play_bellBody_attackShoot = 4097802741u; public static uint Play_bellBody_death = 2182572274u; public static uint Play_bellBody_idle_loop = 345208571u; public static uint Play_bellBody_idle_VO = 4021378928u; public static uint Play_bellBody_impact = 2147523650u; public static uint Play_bellBody_spawn = 4144720393u; public static uint Play_bison_charge_attack_collide = 2909411958u; public static uint Play_bison_charge_attack_end_skid = 2235015895u; public static uint Play_bison_charge_attack_start = 2509443544u; public static uint Play_bison_charge_attack_tell = 4101791573u; public static uint Play_bison_death = 3590751484u; public static uint Play_bison_headbutt_attack_hit = 3802411724u; public static uint Play_bison_headbutt_attack_swing = 1417054473u; public static uint Play_bison_idle_graze = 2516815946u; public static uint Play_bison_idle_VO = 3855060446u; public static uint Play_bison_impact = 4030239748u; public static uint Play_bison_spawn = 3910957799u; public static uint Play_bison_step = 2839275484u; public static uint Play_bison_step_charge = 532574671u; public static uint Play_bleedOnCritAndExplode_explode = 2693964769u; public static uint Play_bleedOnCritAndExplode_impact = 3570667772u; public static uint Play_blindVermin_attack1_bite = 901504895u; public static uint Play_blindVermin_death = 3786262665u; public static uint Play_blindVermin_idle_VO = 2536191415u; public static uint Play_blindVermin_impact = 121244671u; public static uint Play_blindVermin_spawn = 2995165238u; public static uint Play_blindVermin_step = 294344023u; public static uint Play_boss_spawn_radius_appear = 4035156426u; public static uint Play_boss_spawn_rumble = 2327315087u; public static uint Play_captain_drone_idle_VO = 1028355892u; public static uint Play_captain_drone_quick_move = 8118127u; public static uint Play_captain_drone_zap = 3992615829u; public static uint Play_captain_m1_chargeStart = 2544146878u; public static uint Play_captain_m1_hit = 3819278833u; public static uint Play_captain_m1_reload = 2226849933u; public static uint Play_captain_m1_shootWide = 532604026u; public static uint Play_captain_m1_shotgun_charge_loop = 2453063032u; public static uint Play_captain_m1_shotgun_shootTight = 1348536996u; public static uint Play_captain_m2_tazed_loop = 3117407908u; public static uint Play_captain_m2_tazer_bounce = 1888136956u; public static uint Play_captain_m2_tazer_impact = 58834266u; public static uint Play_captain_m2_tazer_shoot = 832597929u; public static uint Play_captain_R_aim = 364785367u; public static uint Play_captain_R_aiming_loop = 1040620982u; public static uint Play_captain_R_confirmLocation = 1531948689u; public static uint Play_captain_R_impact = 3902637834u; public static uint Play_captain_R_turret_build = 1359756347u; public static uint Play_captain_R_turret_healing_loop = 788149618u; public static uint Play_captain_shift_active_loop = 3941125189u; public static uint Play_captain_shift_confirm = 2140775262u; public static uint Play_captain_shift_end = 803261989u; public static uint Play_captain_shift_impact = 3269630552u; public static uint Play_captain_shift_preImpact = 1069989355u; public static uint Play_captain_shift_start = 2113266862u; public static uint Play_captain_sprint_start = 3430012852u; public static uint Play_captain_sprint_stop = 1094493224u; public static uint Play_captain_step = 1226612947u; public static uint Play_captain_step_sprint = 2831720022u; public static uint Play_captain_utility_variant_impact = 1357225738u; public static uint Play_captain_utility_variant_laser_loop = 2451237826u; public static uint Play_captain_utility_variant_preImpact = 3461917085u; public static uint Play_char_glass_death = 359633836u; public static uint Play_char_jump_VO = 1654395377u; public static uint Play_char_land = 81910470u; public static uint Play_char_land_fall_damage = 2642009198u; public static uint Play_clayboss_death = 2559714313u; public static uint Play_clayboss_idle_loop = 3870838284u; public static uint Play_clayboss_idle_VO = 628079927u; public static uint Play_clayboss_impact = 1890981503u; public static uint Play_clayboss_M1_explo = 2368148000u; public static uint Play_clayboss_m1_lidClose = 1576056771u; public static uint Play_clayboss_m1_lidOpen = 1470926389u; public static uint Play_clayboss_m1_shoot = 2922284055u; public static uint Play_clayboss_m2_explo = 4043539191u; public static uint Play_clayboss_m2_projectile_loop = 3593581531u; public static uint Play_clayboss_m2_rise = 916955724u; public static uint Play_clayboss_m2_shoot = 600290068u; public static uint Play_clayboss_R_mulch_loop = 968500644u; public static uint Play_clayboss_R_start = 988517284u; public static uint Play_clayboss_R_tether_loop = 3132967749u; public static uint Play_clayboss_spawn = 1768616886u; public static uint Play_clayboss_step = 3088890839u; public static uint Play_clayboss_step_legMove = 869404285u; public static uint Play_clayboss_walk_loop = 212114079u; public static uint Play_clayBruiser_attack1_shoot_bullet = 491470286u; public static uint Play_clayBruiser_attack1_shoot_flyby = 3572694566u; public static uint Play_clayBruiser_attack1_shootLoop = 649113537u; public static uint Play_clayBruiser_attack1_windDown = 263088688u; public static uint Play_clayBruiser_attack1_windUp = 1916278867u; public static uint Play_clayBruiser_attack2_shoot = 1288244652u; public static uint Play_clayBruiser_death = 3332873880u; public static uint Play_clayBruiser_idle_VO = 2519366882u; public static uint Play_clayBruiser_impact = 1250949200u; public static uint Play_clayBruiser_spawn = 817063995u; public static uint Play_clayBruiser_step = 1697475496u; public static uint Play_clayGrenadier_attack1_chargeup = 318212996u; public static uint Play_clayGrenadier_attack1_explode = 2432531130u; public static uint Play_clay