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 Boss Rush v1.3.4
BossRush.dll
Decompiled 8 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.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using BossRush.Gamemode; using BossRush.Tweaks; using BossRush.Utils.Assets; using EntityStates; using EntityStates.GrandParent; using EntityStates.VoidRaidCrab; using HG.Reflection; using Microsoft.CodeAnalysis; using On.EntityStates.GrandParent; using On.RoR2; using On.RoR2.CharacterAI; using R2API.Utils; using RoR2; using RoR2.Audio; using RoR2.CharacterAI; using RoR2.EntitlementManagement; using RoR2.ExpansionManagement; using RoR2.Navigation; using RoR2.Networking; using RoR2.Skills; using RoR2.UI; using RoR2.WwiseUtils; using TMPro; using UnityEngine; using UnityEngine.AI; using UnityEngine.AddressableAssets; using UnityEngine.Audio; using UnityEngine.Events; using UnityEngine.Networking; using UnityEngine.SceneManagement; using UnityEngine.UI; using YAU.AddressableUtils; using YAU.Content; using YAU.ContentBases; using YAU.Extensions.Enumeration; using YAU.Extensions.Text; using YAU.Extensions.Unity; using YAU.Networking; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: OptIn] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("BossRush")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("BossRush")] [assembly: AssemblyTitle("BossRush")] [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 BossRush { public class WaveManager { public class BossRushObjective : ObjectiveTracker { public WaveManager wave = null; public override string GenerateString() { if (wave == null) { wave = (base.sourceDescriptor.source as BossRushRun).waveManager; } return $"Complete the <style=cIsDamage>Boss Rush</style> ({wave.waveIndex}/{wave.waves.Count()})"; } public override bool IsDirty() { return true; } } public List<Wave> waves; public int waveIndex = 0; public Wave currentWave; public PhaseCounter mithrixPhaseCounter; public BossRushRun run; public static GameObject StackingHealthBarPrefab; private bool isInWaveTransition = false; public bool isPerfectedWave; public bool isVoidtouchedWave; public bool wasVoidtouchedWave; public bool wasPerfectWave; public static WaveManager instance; public bool canInteractWithShrines = true; public WaveManager() { instance = this; } public void Initialize() { //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Expected O, but got Unknown //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Expected O, but got Unknown //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Expected O, but got Unknown //IL_00dd: Unknown result type (might be due to invalid IL or missing references) SetupWaves(); mithrixPhaseCounter = ((Component)Run.instance).gameObject.AddComponent<PhaseCounter>(); mithrixPhaseCounter.phase = 1; CharacterMaster.OnBodyDeath += new hook_OnBodyDeath(OnDeath); MusicController.PickCurrentTrack += new hook_PickCurrentTrack(PlayWaveTrack); AISkillDriver.OnEnable += new hook_OnEnable(ForceIgnoreNodegraph); MusicController.UpdateTeleporterParameters += new hook_UpdateTeleporterParameters(FixTPMusic); if (!Object.op_Implicit((Object)(object)StackingHealthBarPrefab)) { InitHealthBarPrefab(); } isInWaveTransition = true; foreach (PlayerCharacterMasterController item in PlayerCharacterMasterController._instancesReadOnly) { if (Object.op_Implicit((Object)(object)item.master) && Object.op_Implicit((Object)(object)item.master.GetBody())) { item.master.GetBody().SetBuffCount(GameMode.BossRushSpeed.buffIndex, 10); } } } private void ForceIgnoreNodegraph(orig_OnEnable orig, AISkillDriver self) { orig.Invoke(self); self.ignoreNodeGraph = true; } public void PlayWaveTrack(orig_PickCurrentTrack orig, MusicController self, ref MusicTrackDef def) { if (currentWave != null) { def = currentWave.Music; } } public void Unhook() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Expected O, but got Unknown CharacterMaster.OnBodyDeath -= new hook_OnBodyDeath(OnDeath); MusicController.PickCurrentTrack -= new hook_PickCurrentTrack(PlayWaveTrack); AISkillDriver.OnEnable -= new hook_OnEnable(ForceIgnoreNodegraph); MusicController.UpdateTeleporterParameters -= new hook_UpdateTeleporterParameters(FixTPMusic); } private void FixTPMusic(orig_UpdateTeleporterParameters orig, MusicController self, TeleporterInteraction teleporter, Transform cameraTransform, CharacterBody targetBody) { //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004a: 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_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) self.stBossStatus.valueId = CommonWwiseIds.alive; self.rtpcTeleporterPlayerStatus.value = 1f; self.rtpcTeleporterProximityValue.value = 0f; Vector3 val = Vector3.zero - cameraTransform.position; Vector3 forward = cameraTransform.forward; float num = Vector2.SignedAngle(new Vector2(val.x, val.z), new Vector2(forward.x, forward.z)); if (num < 0f) { num += 360f; } self.rtpcTeleporterDirectionValue.value = num; } public void FixScene() { //IL_007b: 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_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Expected O, but got Unknown //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Unknown result type (might be due to invalid IL or missing references) //IL_018c: 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_01ad: Unknown result type (might be due to invalid IL or missing references) //IL_01b2: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01ef: Unknown result type (might be due to invalid IL or missing references) //IL_01f4: Unknown result type (might be due to invalid IL or missing references) //IL_0212: Unknown result type (might be due to invalid IL or missing references) //IL_0217: Unknown result type (might be due to invalid IL or missing references) //IL_0239: Unknown result type (might be due to invalid IL or missing references) //IL_02a0: Unknown result type (might be due to invalid IL or missing references) //IL_02a5: Unknown result type (might be due to invalid IL or missing references) //IL_02c1: Unknown result type (might be due to invalid IL or missing references) //IL_02c6: Unknown result type (might be due to invalid IL or missing references) //IL_02e2: Unknown result type (might be due to invalid IL or missing references) //IL_02e7: Unknown result type (might be due to invalid IL or missing references) //IL_0315: Unknown result type (might be due to invalid IL or missing references) //IL_0329: Unknown result type (might be due to invalid IL or missing references) //IL_0349: Unknown result type (might be due to invalid IL or missing references) //IL_035d: Unknown result type (might be due to invalid IL or missing references) //IL_037d: Unknown result type (might be due to invalid IL or missing references) //IL_0391: Unknown result type (might be due to invalid IL or missing references) //IL_03b1: Unknown result type (might be due to invalid IL or missing references) //IL_03c5: Unknown result type (might be due to invalid IL or missing references) Transform transform = GameObject.Find("HOLDER: Stage").transform; Transform val = transform.Find("ArenaWalls"); MeshCollider component = ((Component)val.Find("Ceiling")).GetComponent<MeshCollider>(); MeshCollider component2 = ((Component)val.Find("CylinderWall")).GetComponent<MeshCollider>(); Transform val2 = transform.Find("PowerCore"); ((Collider)component).enabled = true; ((Collider)component2).enabled = true; Transform val3 = val2.Find("ElementalRingVoidBlackHole"); val3.localScale = new Vector3(5f, 5f, 5f); ((Component)val2).transform.position = new Vector3(0f, 140f, 0f); foreach (Transform item in ((Component)val2).transform) { Transform val4 = item; ((Component)val4).gameObject.layer = LayerIndex.world.intVal; } LightIntensityCurve[] componentsInChildren = ((Component)val3).GetComponentsInChildren<LightIntensityCurve>(); foreach (LightIntensityCurve val5 in componentsInChildren) { ((Behaviour)val5).enabled = false; } Light[] componentsInChildren2 = ((Component)val3).GetComponentsInChildren<Light>(); foreach (Light val6 in componentsInChildren2) { val6.intensity = 3f; } Quaternion val7 = Quaternion.Euler(270f, 0f, 0f); Object.Instantiate<GameObject>(GameObject.MoonPillarHuge, new Vector3(100f, 1f, -1.3f), val7); Object.Instantiate<GameObject>(GameObject.MoonPillarHuge, new Vector3(-100f, 1f, -1.3f), val7); Object.Instantiate<GameObject>(GameObject.MoonPillarHuge, new Vector3(-1.3f, 1f, 100f), val7); Object.Instantiate<GameObject>(GameObject.MoonPillarHuge, new Vector3(-1.3f, 1f, -100f), val7); GameObject val8 = Object.Instantiate<GameObject>(((Component)val2).gameObject, new Vector3(100f, 70f, -1.3f), Quaternion.identity); val8.transform.localScale = new Vector3(0.2f, 0.2f, 0.2f); Transform val9 = val8.transform.Find("ElementalRingVoidBlackHole"); Transform val10 = val9.Find("Runes"); Transform val11 = val9.Find("AreaIndicator"); ((Component)val10).gameObject.SetActive(false); ((Component)val11).gameObject.SetActive(false); Object.Instantiate<GameObject>(val8, new Vector3(-100f, 70f, -1.3f), Quaternion.identity); Object.Instantiate<GameObject>(val8, new Vector3(-1.3f, 70f, 100f), Quaternion.identity); Object.Instantiate<GameObject>(val8, new Vector3(-1.3f, 70f, -100f), Quaternion.identity); if (NetworkServer.active) { GameObject val12 = Object.Instantiate<GameObject>(GameMode.ProgressionSlab, new Vector3(68f, 3f, -71f), Quaternion.Euler(270f, 0f, 0f)); GameObject val13 = Object.Instantiate<GameObject>(GameMode.ProgressionSlab, new Vector3(-68f, 3f, 71f), Quaternion.Euler(270f, 180f, 0f)); GameObject val14 = Object.Instantiate<GameObject>(GameMode.VoidtouchWave, new Vector3(-71f, 3f, -68f), Quaternion.Euler(0f, 0f, 0f)); GameObject val15 = Object.Instantiate<GameObject>(GameMode.PerfectedWave, new Vector3(71f, 3f, 68f), Quaternion.Euler(0f, 180f, 0f)); NetworkServer.Spawn(val12); NetworkServer.Spawn(val13); NetworkServer.Spawn(val14); NetworkServer.Spawn(val15); } if (BossRush.IsSimulAdditionsInstalled) { Transform transform2 = GameObject.Find("HOLDER: Stage").transform; ((Component)transform2.Find("MoonArenaColumn, Huge Alt (4)")).gameObject.SetActive(false); ((Component)transform2.Find("MoonArenaColumn, Huge Alt (5)")).gameObject.SetActive(false); ((Component)transform2.Find("MoonArenaColumn, Huge Alt (6)")).gameObject.SetActive(false); ((Component)transform2.Find("MoonArenaColumn, Huge Alt (7)")).gameObject.SetActive(false); } } public static void InitHealthBarPrefab() { GameObject hUDSimple = GameObject.HUDSimple; GameObject gameObject = ((Component)hUDSimple.transform.Find("MainContainer").Find("MainUIArea").Find("SpringCanvas") .Find("TopCenterCluster") .Find("BossHealthBarRoot") .Find("Container")).gameObject; StackingHealthBarPrefab = RuntimePrefabManager.CreatePrefab(gameObject, "StackableBossBar"); GameObject gameObject2 = ((Component)StackingHealthBarPrefab.transform.Find("BossHealthBarContainer").Find("BackgroundPanel")).gameObject; Image component = ((Component)gameObject2.transform.Find("FillPanel")).GetComponent<Image>(); Image component2 = ((Component)gameObject2.transform.Find("DelayFillPanel")).GetComponent<Image>(); HGTextMeshProUGUI component3 = ((Component)gameObject2.transform.Find("HealthText")).GetComponent<HGTextMeshProUGUI>(); GameObject stackingHealthBarPrefab = StackingHealthBarPrefab; HGTextMeshProUGUI component4 = ((Component)stackingHealthBarPrefab.transform.Find("BossNameLabel")).GetComponent<HGTextMeshProUGUI>(); ((TMP_Text)component4).text = "this should not be here"; UnityExtensions.RemoveComponent<LanguageTextMeshController>((Component)(object)component4); HGTextMeshProUGUI component5 = ((Component)stackingHealthBarPrefab.transform.Find("BossSubtitleLabel")).GetComponent<HGTextMeshProUGUI>(); ((TMP_Text)component5).text = "this also shouldnt be here"; StackableHealthBar stackableHealthBar = StackingHealthBarPrefab.AddComponent<StackableHealthBar>(); stackableHealthBar.FillRect = component; stackableHealthBar.HP = component3; stackableHealthBar.Name = component4; stackableHealthBar.Subtitle = component5; stackableHealthBar.DelayFillRect = component2; ((Component)stackableHealthBar.HP).gameObject.SetActive(true); } public void OnDeath(orig_OnBodyDeath orig, CharacterMaster self, CharacterBody body) { //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_01ec: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self, body); int count = currentWave.WaveSpawns.Count; int num = (from x in Object.FindObjectsOfType<WaveMarker>() where x.body.healthComponent.alive select x).Count(); if (isInWaveTransition || num > 0) { return; } foreach (PlayerCharacterMasterController item in PlayerCharacterMasterController._instancesReadOnly) { if (Object.op_Implicit((Object)(object)item.master) && Object.op_Implicit((Object)(object)item.master.GetBody())) { item.master.GetBody().SetBuffCount(GameMode.BossRushSpeed.buffIndex, 10); } } canInteractWithShrines = true; if (waveIndex >= waves.Count()) { PhaseCounter obj = mithrixPhaseCounter; int phase = obj.phase; obj.phase = phase + 1; if (mithrixPhaseCounter.phase == 2) { PhaseCounter obj2 = mithrixPhaseCounter; phase = obj2.phase; obj2.phase = phase + 1; } if (mithrixPhaseCounter.phase <= 3 || !NetworkServer.active) { run.InvokeDelayed(3f); { foreach (PlayerCharacterMasterController item2 in PlayerCharacterMasterController._instancesReadOnly) { if (Object.op_Implicit((Object)(object)item2.master) && Object.op_Implicit((Object)(object)item2.master.GetBody())) { item2.master.GetBody().SetBuffCount(GameMode.BossRushSpeed.buffIndex, currentWave.BuffStacks); } } return; } } ((MonoBehaviour)run).Invoke("End", 3f); } else { PurchaseInteraction[] array = Object.FindObjectsOfType<PurchaseInteraction>(); foreach (PurchaseInteraction val in array) { val.available = true; } wasPerfectWave = isPerfectedWave; wasVoidtouchedWave = isVoidtouchedWave; isPerfectedWave = false; isVoidtouchedWave = false; if (!isInWaveTransition) { currentWave.OnWaveCompleted(); isInWaveTransition = true; } } } public void SetupWaves() { waves = new List<Wave>(); waves.Add(new Wave(new List<WaveSpawn> { new WaveSpawn(GameObject.TitanMaster, 2f, 1.2f, air: false) }, 3, 2, 0, 0, 5, 4, MusicTrackDef.muBossfightDLC112)); if (BossRush.IsEnemiesReturnsInstalled && Util.CheckRoll(50f, 0f, (CharacterMaster)null) && MasterExists("ColossusMaster")) { waves[0].WaveSpawns[0].MasterPrefab = MasterCatalog.FindMasterPrefab("ColossusMaster"); } waves.Add(new Wave(new List<WaveSpawn> { new WaveSpawn(GameObject.BeetleQueenMaster, 1f, 1f, air: false), new WaveSpawn(GameObject.VagrantMaster, 1f, 1f, air: true) }, 3, 2, 0, 0, 3, 4, MusicTrackDef.muSongLakesHabitatBoss)); waves.Add(new Wave(new List<WaveSpawn> { new WaveSpawn(GameObject.ClayBossMaster, 2f, 2f, air: false) }, 2, 1, 1, 0, 3, 2, MusicTrackDef.muBossfightDLC112)); if (BossRush.IsRARPresent && Util.CheckRoll(50f, 0f, (CharacterMaster)null)) { waves.RemoveAt(waves.Count - 1); waves.Add(new Wave(new List<WaveSpawn> { new WaveSpawn(GameObject.MegaConstructMaster, 1f, 2f, air: true), new WaveSpawn(GameObject.MajorConstructMaster, 1f, 2f, air: false) }, 3, 2, 0, 0, 3, 2, MusicTrackDef.muBossfightDLC112)); } waves.Add(new Wave(new List<WaveSpawn> { new WaveSpawn(GameObject.GravekeeperMaster, 1.5f, 1.4f, air: false), new WaveSpawn(GameObject.ImpBossMaster, 1.5f, 1.4f, air: false) }, 2, 2, 0, 0, 3, 3, MusicTrackDef.muBossfightDLC110)); if (BossRush.IsTyranitarInstalled && Util.CheckRoll(50f, 0f, (CharacterMaster)null) && MasterExists("TyranitarMaster")) { waves[waves.Count - 1].WaveSpawns[0].MasterPrefab = MasterCatalog.FindMasterPrefab("TyranitarMaster"); } if (BossRush.IsEnemiesReturnsInstalled && Util.CheckRoll(25f, 0f, (CharacterMaster)null) && MasterExists("IfritMasterMaster")) { waves.Add(new Wave(new List<WaveSpawn> { new WaveSpawn(MasterCatalog.FindMasterPrefab("IfritMasterMaster"), 2f, 2f, air: false) }, 1, 1, 0, 0, 1, 2, MusicTrackDef.muBossfightDLC112)); } if (BossRush.IsDireseekerPresent && Util.CheckRoll(25f, 0f, (CharacterMaster)null) && MasterExists("DireseekerBossMaster")) { waves.Add(new Wave(new List<WaveSpawn> { new WaveSpawn(MasterCatalog.FindMasterPrefab("DireseekerBossMaster"), 2f, 2f, air: false) }, 1, 1, 0, 0, 1, 2, MusicTrackDef.muBossfightDLC112)); } waves.Add(new Wave(new List<WaveSpawn> { new WaveSpawn(GameObject.GrandparentMaster, 2f, 3f, air: false) { noRandomPos = true } }, 1, 2, 1, 0, 2, 5, MusicTrackDef.muSong22)); waves.Add(new Wave(new List<WaveSpawn> { new WaveSpawn(GameObject.MagmaWormMaster, 1f, 3f, air: false), new WaveSpawn(GameObject.ElectricWormMaster, 1f, 1f, air: false) }, 2, 2, 0, 1, 2, 3, MusicTrackDef.muSong23)); waves.Add(new Wave(new List<WaveSpawn> { new WaveSpawn(GameObject.RoboBallBossMaster, 0.6f, 2f, air: true), new WaveSpawn(GameObject.SuperRoboBallBossMaster, 1.5f, 5f, air: true), new WaveSpawn(GameObject.RoboBallBossMaster, 0.6f, 2f, air: true) }, 1, 3, 0, 0, 2, 3, MusicTrackDef.muSong05)); if (BossRush.IsForgorPresent && MasterExists("BrassMonolithMonsterMaster")) { waves.Add(new Wave(new List<WaveSpawn> { new WaveSpawn(MasterCatalog.FindMasterPrefab("BrassMonolithMonsterMaster"), 3f, 3f, air: false) { noRandomPos = true } }, 1, 1, 0, 0, 2, 2, MusicTrackDef.muSong22)); } if (BossRush.IsStarstormInstalled && Util.CheckRoll(50f, 0f, (CharacterMaster)null) && MasterExists("LampBossMaster")) { waves.RemoveAt(waves.Count - 1); waves.Add(new Wave(new List<WaveSpawn> { new WaveSpawn(MasterCatalog.FindMasterPrefab("LampBossMaster"), 2.5f, 4f, air: false), new WaveSpawn(MasterCatalog.FindMasterPrefab("LampBossMaster"), 2.5f, 4f, air: false) }, 3, 2, 0, 0, 1, 2, MusicTrackDef.muBossfightDLC110)); } waves.Add(new Wave(new List<WaveSpawn> { new WaveSpawn(GameObject.TitanGoldMaster, 5f, 5f, air: false) }, 2, 2, 1, 0, 0, 3, MusicTrackDef.muSong05)); if (BossRush.IsRegigigasInstalled && MasterExists("RegigigasMaster")) { waves.RemoveAt(waves.Count - 1); waves.Add(new Wave(new List<WaveSpawn> { new WaveSpawn(MasterCatalog.FindMasterPrefab("RegigigasMaster"), 3f, 3f, air: false) }, 0, 0, 2, 1, 0, 5, MusicTrackDef.muBossfightDLC112) { IsRegigigas = true }); Debug.Log((object)("Regi master: " + (object)waves[waves.Count - 1].WaveSpawns[0].MasterPrefab)); } if (BossRush.IsGotcePresent && MasterExists("Crowdfunder WoolieMaster")) { waves.Add(new Wave(new List<WaveSpawn> { new WaveSpawn(MasterCatalog.FindMasterPrefab("Crowdfunder WoolieMaster"), 8f, 10f, air: false) }, 2, 1, 0, 0, 1, 2, MusicTrackDef.muSongLakesHabitatBoss)); } waves.Add(new Wave(new List<WaveSpawn> { new WaveSpawn(GameObject.BrotherMaster, 1f, 5f, air: false) }, 2, 2, 1, 0, 2, 4, MusicTrackDef.muSong25)); } public bool MasterExists(string master) { return (Object)(object)MasterCatalog.FindMasterPrefab(master) != (Object)null; } public void DoNextWave() { //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_017a: Unknown result type (might be due to invalid IL or missing references) //IL_017f: Unknown result type (might be due to invalid IL or missing references) //IL_018a: Unknown result type (might be due to invalid IL or missing references) //IL_0194: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Expected O, but got Unknown //IL_01f0: Unknown result type (might be due to invalid IL or missing references) isInWaveTransition = false; currentWave = waves[waveIndex]; canInteractWithShrines = false; Debug.Log((object)"sigma"); Debug.Log((object)currentWave.Music); if (currentWave.IsRegigigas) { run.InvokeRegigigas(); } else { foreach (WaveSpawn waveSpawn in currentWave.WaveSpawns) { if (NetworkServer.active) { waveSpawn.DoSpawn(); } } } foreach (PlayerCharacterMasterController item in PlayerCharacterMasterController._instancesReadOnly) { if (Object.op_Implicit((Object)(object)item.master) && Object.op_Implicit((Object)(object)item.master.GetBody())) { item.master.GetBody().SetBuffCount(GameMode.BossRushSpeed.buffIndex, currentWave.BuffStacks); } } waveIndex++; GenericPickupController[] array = (from x in Object.FindObjectsOfType<GenericPickupController>() where Object.op_Implicit((Object)(object)EquipmentCatalog.GetEquipmentDef(((PickupIndex)(ref x.pickupIndex)).equipmentIndex)) select x).ToArray(); for (int i = 0; i < array.Length; i++) { EffectManager.SpawnEffect(GameObject.ExplosionLunarSun, new EffectData { scale = 2f, origin = ((Component)array[i]).transform.position }, false); Object.Destroy((Object)(object)((Component)array[i]).gameObject); } if (waveIndex >= waves.Count) { AkSoundEngine.SetState("bossPhase", "phase1"); } } } public class WaveSpawn { public SpawnCard spawnCard; public GameObject MasterPrefab; public float Scale = 1f; public float Health = 1f; public Wave wave; public string customName = null; public bool noRandomPos = false; public WaveSpawn(GameObject master, float scale, float hp, bool air) { //IL_0077: 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) MasterPrefab = master; Scale = scale; Health = hp; spawnCard = ScriptableObject.CreateInstance<SpawnCard>(); spawnCard.directorCreditCost = 0; spawnCard.prefab = MasterPrefab; spawnCard.nodeGraphType = (GraphType)(air ? 1 : 0); spawnCard.hullSize = (HullClassification)2; spawnCard.sendOverNetwork = true; } public void DoSpawn() { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Expected O, but got Unknown //IL_0031: Unknown result type (might be due to invalid IL or missing references) //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_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_005f: 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_00a1: Expected O, but got Unknown //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active) { return; } DirectorPlacementRule val = new DirectorPlacementRule(); val.maxDistance = 10f; val.minDistance = 0f; val.placementMode = (PlacementMode)3; val.position = new Vector3(-1.6f, 5.2f, 0.3f) + Random.onUnitSphere * 20f; if (noRandomPos) { val.position = new Vector3(-1.6f, 5.2f, 0.3f); } DirectorSpawnRequest val2 = new DirectorSpawnRequest(spawnCard, val, Run.instance.runRNG); val2.ignoreTeamMemberLimit = true; val2.teamIndexOverride = (TeamIndex)2; val2.onSpawnedServer = delegate(SpawnResult res) { //IL_0001: 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_025c: Unknown result type (might be due to invalid IL or missing references) //IL_0298: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)res.spawnedInstance)) { CharacterMaster component = res.spawnedInstance.GetComponent<CharacterMaster>(); component.SpawnBodyHere(); AISkillDriver[] components = ((Component)component).GetComponents<AISkillDriver>(); foreach (AISkillDriver val3 in components) { val3.maxDistance *= Scale; } Health *= Run.instance.livingPlayerCount; if (Run.instance.livingPlayerCount > 1) { Health += (float)Run.instance.livingPlayerCount * 0.5f; } int num = Mathf.RoundToInt((Health - 1f) * 10f); component.inventory.GiveItem(Items.BoostHp, num); component.inventory.GiveItem(Items.UseAmbientLevel, 1); component.inventory.GiveItem(Items.AdaptiveArmor, 1); CharacterBody body = component.GetBody(); if (body.baseMoveSpeed == 9f) { body.baseMoveSpeed = 12f; } if (wave.IsRegigigas) { MonoBehaviour[] components2 = ((Component)body).GetComponents<MonoBehaviour>(); foreach (MonoBehaviour val4 in components2) { Debug.Log((object)((object)val4).GetType().FullName.Contains("SlowStart")); if (((object)val4).GetType().FullName.Contains("SlowStart")) { ((Behaviour)val4).enabled = false; } } } DeathRewards component2 = ((Component)body).GetComponent<DeathRewards>(); if (Object.op_Implicit((Object)(object)component2)) { float num2 = 300f * ((WaveManager.instance.isPerfectedWave | WaveManager.instance.isVoidtouchedWave) ? 2f : 1f); component2.goldReward = (uint)Mathf.Max(1f, num2 * 2f * Run.instance.compensatedDifficultyCoefficient); } if (WaveManager.instance.isPerfectedWave) { component.inventory.GiveItem(Items.BoostHp, 5); component.inventory.SetEquipmentIndex(Equipment.AffixLunar.equipmentIndex); } else if (WaveManager.instance.isVoidtouchedWave) { component.inventory.GiveItem(Items.BoostHp, 5); component.inventory.SetEquipmentIndex(Equipment.EliteVoidEquipment.equipmentIndex); } NetworkWriter val5 = NetworkingHelper.CreateMessage((short)120, (Action<NetworkWriter>)delegate(NetworkWriter x) { x.Write(((Component)body).gameObject); x.Write(Scale); }); NetworkingHelper.ServerSendToAll(val5); } }; DirectorCore.instance.TrySpawnObject(val2); } [NetworkMessageHandler(client = true, msgType = 120)] public static void HandleWaveMarker(NetworkMessage netmsg) { Debug.Log((object)"handling netmessage for wave marker"); if (Object.op_Implicit((Object)(object)Run.instance) && Run.instance is BossRushRun) { GameObject val = netmsg.reader.ReadGameObject(); if (Object.op_Implicit((Object)(object)val)) { WaveMarker waveMarker = val.AddComponent<WaveMarker>(); waveMarker.scale = netmsg.reader.ReadSingle(); } } else { Debug.Log((object)"not in a boss rush run"); } } } public class Wave { public List<WaveSpawn> WaveSpawns; public int GreenRewards; public int BossRewards; public int WhiteRewards; public int RedRewards; public int LevelRewards; public int BuffStacks; public MusicTrackDef Music; public bool IsRegigigas = false; public Wave(List<WaveSpawn> spawns, int whites, int greens, int reds, int yellows, int levels, int buffStacks, MusicTrackDef music) { WaveSpawns = spawns; foreach (WaveSpawn spawn in spawns) { spawn.wave = this; } WhiteRewards = whites; GreenRewards = greens; RedRewards = reds; BossRewards = yellows; LevelRewards = levels; BuffStacks = buffStacks; Music = music; } public void OnWaveCompleted() { //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) List<PlayerCharacterMasterController> list = PlayerCharacterMasterController._instancesReadOnly.ToList(); TeamManager.instance.SetTeamLevel((TeamIndex)1, TeamManager.instance.GetTeamLevel((TeamIndex)1) + (uint)LevelRewards); WaveManager.instance.run.bonusAmbientLevel += 5f * (DifficultyCatalog.GetDifficultyDef(Run.instance.selectedDifficulty).scalingValue / 2f); if (!NetworkServer.active) { return; } foreach (PlayerCharacterMasterController item in PlayerCharacterMasterController._instancesReadOnly) { if (item.master.IsDeadAndOutOfLivesServer() && item.isConnected) { item.master.Respawn(item.master.deathFootPosition, Quaternion.identity, false); } } bool wasPerfectWave = WaveManager.instance.wasPerfectWave; bool wasVoidtouchedWave = WaveManager.instance.wasVoidtouchedWave; int num = 0; foreach (PlayerCharacterMasterController item2 in list) { CharacterMaster master2 = item2.master; if (num < 1 || !BossRush.IsSharesuiteInstalled) { if (wasPerfectWave) { SpawnPickups(master2, Run.instance.availableLunarItemDropList, WhiteRewards, (ItemTier)3, sort: false); } else if (wasVoidtouchedWave) { SpawnPickups(master2, Run.instance.availableVoidTier1DropList, WhiteRewards, (ItemTier)6, sort: false); } else { SpawnPickups(master2, Run.instance.availableTier1DropList, WhiteRewards, (ItemTier)0); } if (wasVoidtouchedWave) { SpawnPickups(master2, Run.instance.availableVoidTier2DropList, GreenRewards, (ItemTier)7, sort: false); } else { SpawnPickups(master2, Run.instance.availableTier2DropList, GreenRewards, (ItemTier)1); } SpawnPickups(master2, Run.instance.availableTier3DropList, RedRewards, (ItemTier)2, sort: false); SpawnPickups(master2, Run.instance.availableBossDropList, BossRewards, (ItemTier)4, sort: false); SpawnRandomEquip(master2, wasPerfectWave ? Run.instance.availableLunarEquipmentDropList : Run.instance.availableEquipmentDropList); num++; } } static PickupIndex GetDropFrom(List<PickupIndex> drops, ItemTag reqtag, List<PickupIndex> exclude) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0031: 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_0039: Unknown result type (might be due to invalid IL or missing references) return EnumeratorExtensions.GetRandom<PickupIndex>(drops.Where((PickupIndex x) => (ItemCatalog.GetItemDef(((PickupIndex)(ref x)).itemIndex).ContainsTag(reqtag) || (int)reqtag == 0) && ItemCatalog.GetItemDef(((PickupIndex)(ref x)).itemIndex).DoesNotContainTag((ItemTag)6) && ItemCatalog.GetItemDef(((PickupIndex)(ref x)).itemIndex).DoesNotContainTag((ItemTag)18) && ItemCatalog.GetItemDef(((PickupIndex)(ref x)).itemIndex).DoesNotContainTag((ItemTag)17) && ItemCatalog.GetItemDef(((PickupIndex)(ref x)).itemIndex).DoesNotContainTag((ItemTag)10) && ItemCatalog.GetItemDef(((PickupIndex)(ref x)).itemIndex).DoesNotContainTag((ItemTag)14) && !exclude.Contains(x)), Run.instance.runRNG); } static void SpawnPickups(CharacterMaster master, List<PickupIndex> pickups, int amount, ItemTier tier, bool sort = true) { //IL_003e: Unknown result type (might be due to invalid IL or missing references) //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_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_009e: 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_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) if (Object.op_Implicit((Object)(object)master.GetBody())) { if (BossRush.IsBasedInstalled) { sort = false; } float num2 = 360f / (float)amount; Vector3 val2 = Quaternion.AngleAxis((float)Random.Range(0, 360), Vector3.up) * (Vector3.up * 40f + Vector3.forward * 5f); Quaternion val3 = Quaternion.AngleAxis(num2, Vector3.up); for (int i = 0; i < amount; i++) { SpawnPotential(master.GetBody().transform.position, val2, tier, pickups, sort); val2 = val3 * val2; } } } static void SpawnPotential(Vector3 pos, Vector3 vel, ItemTier tier, List<PickupIndex> drops, bool sort) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_000b: 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_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_004d: 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_0068: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0084: 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_00a7: 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_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_012b: 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) //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_0133: 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) CreatePickupInfo val = default(CreatePickupInfo); val.position = pos; val.prefabOverride = GameObject.OptionPickup; val.rotation = Quaternion.identity; ((CreatePickupInfo)(ref val)).pickupIndex = PickupCatalog.FindPickupIndex(tier); val.pickerOptions = (Option[])(object)new Option[3]; val.pickerOptions[0] = new Option { pickupIndex = GetDropFrom(drops, (ItemTag)(sort ? 1 : 0), new List<PickupIndex>()), available = true }; val.pickerOptions[1] = new Option { pickupIndex = GetDropFrom(drops, (ItemTag)(sort ? 3 : 0), new List<PickupIndex> { val.pickerOptions[0].pickupIndex }), available = true }; val.pickerOptions[2] = new Option { pickupIndex = GetDropFrom(drops, (ItemTag)(sort ? 2 : 0), new List<PickupIndex> { val.pickerOptions[0].pickupIndex, val.pickerOptions[1].pickupIndex }), available = true }; PickupDropletController.CreatePickupDroplet(val, val.position, vel); } static void SpawnRandomEquip(CharacterMaster master, List<PickupIndex> pickups) { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0031: 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) if (Object.op_Implicit((Object)(object)master.GetBody())) { PickupDropletController.CreatePickupDroplet(EnumeratorExtensions.GetRandom<PickupIndex>((IEnumerable<PickupIndex>)pickups, Run.instance.runRNG), master.GetBody().corePosition, Vector3.up * 40f); } } } } public class WaveMarker : MonoBehaviour { public Wave wave; public float scale; public CharacterBody body; public void Start() { body = ((Component)this).GetComponent<CharacterBody>(); Transform val = GameObject.Find("HUDSimple(Clone)").transform.Find("MainContainer").Find("MainUIArea").Find("SpringCanvas") .Find("TopCenterCluster") .Find("BossHealthBarRoot"); ((Behaviour)((Component)val).GetComponent<VerticalLayoutGroup>()).enabled = true; ((HorizontalOrVerticalLayoutGroup)((Component)val).GetComponent<VerticalLayoutGroup>()).spacing = 90f; GameObject val2 = Object.Instantiate<GameObject>(WaveManager.StackingHealthBarPrefab, val); StackableHealthBar component = val2.GetComponent<StackableHealthBar>(); component.target = body; HandleScale(); } public void HandleScale() { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) Transform modelTransform = body.modelLocator.modelTransform; modelTransform.localScale *= scale; EnumerableExtensions.ForEachTry<HitBox>((IEnumerable<HitBox>)((Component)body.modelLocator.modelTransform).GetComponentsInChildren<HitBox>(), (Action<HitBox>)delegate(HitBox x) { //IL_0007: 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) Transform transform = ((Component)x).transform; transform.localScale *= scale; }, (IDictionary<HitBox, Exception>)null); } } [BepInPlugin("pseudopulse.BossRush", "BossRush", "1.3.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public class BossRush : BaseUnityPlugin { public const string PluginGUID = "pseudopulse.BossRush"; public const string PluginAuthor = "pseudopulse"; public const string PluginName = "BossRush"; public const string PluginVersion = "1.3.0"; public static ManualLogSource ModLogger; public static YAUContentPack contentPack; public const short SpawnMarkerMessage = 120; public const short InteractShrineMessage = 121; public const short EndlessModeMessage = 122; public const short InitCustomShrineMessage = 123; public static bool IsEndlessModeEnabled; public static bool RandomModeEnabled; public static bool IsGotcePresent; public static bool IsRARPresent; public static bool IsForgorPresent; public static bool IsDireseekerPresent; public static bool IsBasedInstalled; public static bool IsSharesuiteInstalled; public static bool IsStarstormInstalled; public static bool IsRegigigasInstalled; public static bool IsTyranitarInstalled; public static bool IsEnemiesReturnsInstalled; public static bool IsSimulAdditionsInstalled; public void Awake() { ModLogger = ((BaseUnityPlugin)this).Logger; contentPack = ContentPackManager.CreateContentPack(Assembly.GetExecutingAssembly(), "BossRush"); GameMode.Create(); ContentScanner.ScanTypes<TweakBase>(Assembly.GetExecutingAssembly(), (Action<TweakBase>)delegate(TweakBase x) { ((GenericBase)x).Initialize(contentPack, ((BaseUnityPlugin)this).Config, "BossRush"); }); IsGotcePresent = Chainloader.PluginInfos.ContainsKey("com.TheBestAssociatedLargelyLudicrousSillyheadGroup.GOTCE"); IsForgorPresent = Chainloader.PluginInfos.ContainsKey("PlasmaCore.ForgottenRelics"); IsRARPresent = Chainloader.PluginInfos.ContainsKey("prodzpod.RecoveredAndReformed"); IsDireseekerPresent = Chainloader.PluginInfos.ContainsKey("com.rob.Direseeker"); IsBasedInstalled = Chainloader.PluginInfos.ContainsKey("BALLS.WellRoundedBalance"); IsSharesuiteInstalled = Chainloader.PluginInfos.ContainsKey("com.funkfrog_sipondo.sharesuite"); IsStarstormInstalled = Chainloader.PluginInfos.ContainsKey("com.TeamMoonstorm.Starstorm2"); IsRegigigasInstalled = Chainloader.PluginInfos.ContainsKey("com.rob.RegigigasMod"); IsTyranitarInstalled = Chainloader.PluginInfos.ContainsKey("com.rob.Tyranitar"); IsEnemiesReturnsInstalled = Chainloader.PluginInfos.ContainsKey("com.Viliger.EnemiesReturns"); IsSimulAdditionsInstalled = Chainloader.PluginInfos.ContainsKey("Wolfo.SimulacrumAdditions"); } } } namespace BossRush.Gamemode { public class BossRushRun : Run { private float stopwatch = 0f; public WaveManager waveManager; public float bonusAmbientLevel; public override bool spawnWithPod => false; public override bool canFamilyEventTrigger => false; public override void OverrideRuleChoices(RuleChoiceMask mustInclude, RuleChoiceMask mustExclude, ulong runSeed) { ((Run)this).OverrideRuleChoices(mustInclude, mustExclude, runSeed); bool flag = true; for (int i = 0; i < ArtifactCatalog.artifactCount; i++) { ArtifactDef artifactDef = ArtifactCatalog.GetArtifactDef((ArtifactIndex)i); RuleDef val = RuleCatalog.FindRuleDef("Artifacts." + artifactDef.cachedName); ((Run)this).ForceChoice(mustInclude, mustExclude, val.FindChoice("Off")); } } public override void Start() { base.startingScenes = (SceneDef[])(object)new SceneDef[1] { SceneDef.itmoon }; base.startingSceneGroup = null; ((Run)this).Start(); ((Run)this).SetEventFlag("NoArtifactWorld"); Stage.onStageStartGlobal += onStageBegin; } public override void OnDestroy() { ((Run)this).OnDestroy(); waveManager.Unhook(); Stage.onStageStartGlobal -= onStageBegin; ObjectivePanelController.collectObjectiveSources -= CollectObjectives; } public void End() { Run.instance.BeginGameOver(GameEndings.PrismaticTrialEnding); } public void StartWaves() { waveManager.run = this; waveManager.Initialize(); ObjectivePanelController.collectObjectiveSources += CollectObjectives; Wave wave = new Wave(new List<WaveSpawn>(), 3, 2, 0, 0, 2, 0, null); wave.OnWaveCompleted(); } public void CollectObjectives(CharacterMaster master, List<ObjectiveSourceDescriptor> objectiveSourcesList) { //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) objectiveSourcesList.Add(new ObjectiveSourceDescriptor { master = master, objectiveType = typeof(WaveManager.BossRushObjective), source = (Object)(object)this }); } public void InvokeWave() { waveManager.DoNextWave(); } public void onStageBegin(Stage stage) { waveManager = new WaveManager(); waveManager.FixScene(); ((MonoBehaviour)this).Invoke("StartWaves", 5f); } public override void FixedUpdate() { ((Run)this).FixedUpdate(); } public override void AdvanceStage(SceneDef nextScene) { ((Run)this).AdvanceStage(nextScene); } public void InvokeDelayed(float delay = 0f) { ((MonoBehaviour)this).StartCoroutine(InvokeSpawns(delay)); } public void InvokeRegigigas() { ((MonoBehaviour)this).StartCoroutine(HandleRegigigas()); } public IEnumerator HandleRegigigas() { yield return (object)new WaitForSeconds(0.5f); Chat.AddMessage("<style=cStack>[The Void's Neutralizing Gas]</style>"); Chat.AddMessage("<style=cWorldEvent>Neutralizing gas filled the area!</style>"); yield return (object)new WaitForSeconds(1f); Chat.AddMessage("<style=cLunarObjective>Regigigas</style>: ...my <style=cHumanObjective><b>FAVORITE.</b></style>"); ((MonoBehaviour)this).StartCoroutine(InvokeSpawns(0.016f)); } public IEnumerator InvokeSpawns(float delay) { yield return (object)new WaitForSeconds(delay); foreach (WaveSpawn spawn in waveManager.currentWave.WaveSpawns) { if (NetworkServer.active) { yield return (object)new WaitForEndOfFrame(); spawn.DoSpawn(); } } } public override void RecalculateDifficultyCoefficentInternal() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) float runStopwatch = ((Run)this).GetRunStopwatch(); DifficultyDef difficultyDef = DifficultyCatalog.GetDifficultyDef(((Run)this).selectedDifficulty); float num = Mathf.Floor(runStopwatch * (1f / 60f)); float num2 = (float)((Run)this).participatingPlayerCount * 0.3f; float num3 = 0.7f + num2; float num4 = 0.7f + num2; float num5 = Mathf.Pow((float)((Run)this).participatingPlayerCount, 0.2f); float num6 = 0.0506f * difficultyDef.scalingValue * num5; float num7 = 0.0506f * difficultyDef.scalingValue * num5; float num8 = Mathf.Pow(1.15f, (float)base.stageClearCount); base.compensatedDifficultyCoefficient = (num4 + num7 * num) * num8; base.difficultyCoefficient = (num3 + num6 * num) * num8; float num9 = (num3 + num6 * (runStopwatch * (1f / 60f))) * Mathf.Pow(1.15f, (float)base.stageClearCount); ((Run)this).ambientLevel = Mathf.Min((num9 - num3) / 0.33f + 1f, (float)Run.ambientLevelCap); ((Run)this).ambientLevel = ((Run)this).ambientLevel + bonusAmbientLevel; int ambientLevelFloor = ((Run)this).ambientLevelFloor; ((Run)this).ambientLevelFloor = Mathf.FloorToInt(((Run)this).ambientLevel); if (ambientLevelFloor != ((Run)this).ambientLevelFloor && ambientLevelFloor != 0 && ((Run)this).ambientLevelFloor > ambientLevelFloor) { ((Run)this).OnAmbientLevelUp(); } } } public static class GameMode { public enum ShrineType { Waveskip, Perfected, Voidtouched } public class BossRushShrineController : MonoBehaviour { public bool isVoidtouch = false; public bool isPerfected = false; public bool isWaveskip = false; public PurchaseInteraction interaction; public void Start() { interaction = ((Component)this).GetComponent<PurchaseInteraction>(); ((UnityEvent<Interactor>)(object)((Component)this).GetComponent<PurchaseInteraction>().onPurchase).AddListener((UnityAction<Interactor>)OnInteract); } public void FixedUpdate() { WaveManager instance = WaveManager.instance; if (!instance.canInteractWithShrines) { interaction.available = false; } else if (isPerfected && instance.isVoidtouchedWave) { interaction.available = false; } else if (isVoidtouch && instance.isPerfectedWave) { interaction.available = false; } } public void OnInteract(Interactor interactor) { ((Component)this).GetComponent<PurchaseInteraction>().Networkavailable = false; NetworkWriter val = NetworkingHelper.CreateMessage((short)121, (Action<NetworkWriter>)delegate(NetworkWriter x) { x.Write(isVoidtouch); x.Write(isWaveskip); x.Write(isPerfected); }); NetworkingHelper.ServerSendToAll(val); } [NetworkMessageHandler(client = true, msgType = 121)] public static void HandleNet(NetworkMessage netmsg) { if (Object.op_Implicit((Object)(object)Run.instance) && Run.instance is BossRushRun) { bool flag = netmsg.reader.ReadBoolean(); bool flag2 = netmsg.reader.ReadBoolean(); bool flag3 = netmsg.reader.ReadBoolean(); HandleInteract(flag, flag3, flag2); Debug.Log((object)"Handling netmessage"); } } public static void HandleInteract(bool isVoidtouch, bool isPerfected, bool isWaveskip) { if (isVoidtouch) { WaveManager.instance.isVoidtouchedWave = true; Chat.AddMessage("<style=cIsVoid>The Void imbues its power in the wave to come...</style>"); } if (isPerfected) { WaveManager.instance.isPerfectedWave = true; Chat.AddMessage("<style=cIsUtility>The Moon shines its blessing on the wave to come...</style>"); } if (isWaveskip) { WaveManager.instance.DoNextWave(); Chat.AddMessage("<style=cIsDamage>Advancing the simulation!</style>"); } } } [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static hook_RecalculateStats <>9__7_0; internal void <Create>b__7_0(orig_RecalculateStats orig, CharacterBody self) { orig.Invoke(self); if (self.HasBuff(BossRushSpeed)) { self.moveSpeed *= 1f + 0.1f * (float)self.GetBuffCount(BossRushSpeed); } } } public static GameObject bossRushPrefab; public static BuffDef BossRushSpeed; public static GameObject ProgressionSlab; public static GameObject VoidtouchWave; public static GameObject PerfectedWave; public static GameObject HotPooGames; public static void Create() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Expected O, but got Unknown //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_0259: Unknown result type (might be due to invalid IL or missing references) //IL_02ff: Unknown result type (might be due to invalid IL or missing references) //IL_03af: Unknown result type (might be due to invalid IL or missing references) //IL_03b4: Unknown result type (might be due to invalid IL or missing references) //IL_03e2: Unknown result type (might be due to invalid IL or missing references) //IL_03e7: Unknown result type (might be due to invalid IL or missing references) //IL_03ed: Expected O, but got Unknown bossRushPrefab = RuntimePrefabManager.CreatePrefab(new GameObject("bossRushRun"), "bossRushRun"); GameObject classicRun = GameObject.ClassicRun; BossRushRun bossRushRun = bossRushPrefab.AddComponent<BossRushRun>(); ((Run)bossRushRun).lobbyBackgroundPrefab = classicRun.GetComponent<Run>().lobbyBackgroundPrefab; ((Run)bossRushRun).uiPrefab = classicRun.GetComponent<Run>().uiPrefab; ((Run)bossRushRun).userPickable = true; ((Run)bossRushRun).nameToken = "BOSSRUSH_MENU_NAME"; ((Run)bossRushRun).gameOverPrefab = classicRun.GetComponent<Run>().gameOverPrefab; ((Run)bossRushRun).startingSceneGroup = classicRun.GetComponent<Run>().startingSceneGroup; bossRushPrefab.AddComponent<NetworkIdentity>(); bossRushPrefab.AddComponent<DirectorCore>(); bossRushPrefab.AddComponent<TeamManager>(); bossRushPrefab.AddComponent<NetworkRuleBook>(); bossRushPrefab.AddComponent<RunCameraManager>(); RuntimePrefabManager.MakeNetworkPrefab(bossRushPrefab); BossRushSpeed = ScriptableObject.CreateInstance<BuffDef>(); BossRushSpeed.canStack = true; BossRushSpeed.iconSprite = BuffDef.bdCloakSpeed.iconSprite; ((Object)BossRushSpeed).name = "Blessing of the Void"; BossRushSpeed.buffColor = Color.magenta; PerfectedWave = RuntimePrefabManager.CreatePrefab(GameObject.ShrineBoss, "PerfectedWave"); VoidtouchWave = RuntimePrefabManager.CreatePrefab(GameObject.ShrineBoss, "VoidtouchWave"); ProgressionSlab = RuntimePrefabManager.CreatePrefab(GameObject.LunarRecycler, "SkipWave"); NetworkHash128 assetId = PerfectedWave.GetComponent<NetworkIdentity>().assetId; Debug.Log((object)("PerfectedWave ID pre-reset: " + ((object)(NetworkHash128)(ref assetId)).ToString())); UnityExtensions.RemoveComponent<ShrineBossBehavior>(PerfectedWave); UnityExtensions.RemoveComponent<ShrineBossBehavior>(VoidtouchWave); PurchaseInteraction component = VoidtouchWave.GetComponent<PurchaseInteraction>(); component.displayNameToken = "BOSSRUSH_VOID_SHRINE"; component.costType = (CostTypeIndex)0; component.contextToken = "BOSSRUSH_VOID_CONTEXT"; BossRushShrineController bossRushShrineController = VoidtouchWave.AddComponent<BossRushShrineController>(); bossRushShrineController.isVoidtouch = true; MeshRenderer[] componentsInChildren = VoidtouchWave.GetComponentsInChildren<MeshRenderer>(); foreach (MeshRenderer val in componentsInChildren) { if (((Object)((Component)val).gameObject).name == "Symbol") { ((Renderer)val).material = Material.matDeepVoidPortalCenter; } else { ((Renderer)val).material = Material.matDeepVoidPortalOpaque; } } BossRushShrineController bossRushShrineController2 = PerfectedWave.AddComponent<BossRushShrineController>(); bossRushShrineController2.isPerfected = true; PurchaseInteraction component2 = PerfectedWave.GetComponent<PurchaseInteraction>(); component2.displayNameToken = "BOSSRUSH_PERFECTED_SHRINE"; component2.costType = (CostTypeIndex)0; component2.contextToken = "BOSSRUSH_PERFECTED_CONTEXT"; MeshRenderer[] componentsInChildren2 = PerfectedWave.GetComponentsInChildren<MeshRenderer>(); foreach (MeshRenderer val2 in componentsInChildren2) { if (((Object)((Component)val2).gameObject).name == "Symbol") { ((Renderer)val2).material = Material.matLunarGolemChargeGlow; } else { ((Renderer)val2).material = Material.matLunarGolem; } } if (!Object.op_Implicit((Object)(object)ProgressionSlab.GetComponent<PurchaseInteraction>())) { ProgressionSlab.AddComponent<PurchaseInteraction>(); } ProgressionSlab.GetComponent<PurchaseInteraction>().costType = (CostTypeIndex)0; ProgressionSlab.GetComponent<PurchaseInteraction>().contextToken = "BOSSRUSH_WAVESKIP_CONTEXT"; ProgressionSlab.GetComponent<PurchaseInteraction>().displayNameToken = "BOSSRUSH_WAVESKIP_NAME"; BossRushShrineController bossRushShrineController3 = ProgressionSlab.AddComponent<BossRushShrineController>(); bossRushShrineController3.isWaveskip = true; StringExtensions.Add("BOSSRUSH_PERFECTED_SHRINE", "Shrine of the Moon"); StringExtensions.Add("BOSSRUSH_PERFECTED_CONTEXT", "Take on the challenge of the Moon?"); StringExtensions.Add("BOSSRUSH_VOID_SHRINE", "Shrine of the Void"); StringExtensions.Add("BOSSRUSH_VOID_CONTEXT", "Take on the challenge of the Void?"); StringExtensions.Add("BOSSRUSH_WAVESKIP_NAME", "..."); StringExtensions.Add("BOSSRUSH_WAVESKIP_CONTEXT", "Advance the simulation...?"); assetId = PerfectedWave.GetComponent<NetworkIdentity>().assetId; Debug.Log((object)("PerfectedWave ID post-reset: " + ((object)(NetworkHash128)(ref assetId)).ToString())); object obj = <>c.<>9__7_0; if (obj == null) { hook_RecalculateStats val3 = delegate(orig_RecalculateStats orig, CharacterBody self) { orig.Invoke(self); if (self.HasBuff(BossRushSpeed)) { self.moveSpeed *= 1f + 0.1f * (float)self.GetBuffCount(BossRushSpeed); } }; <>c.<>9__7_0 = val3; obj = (object)val3; } CharacterBody.RecalculateStats += (hook_RecalculateStats)obj; BossRush.contentPack.RegisterGameObject(bossRushPrefab); BossRush.contentPack.RegisterScriptableObject((ScriptableObject)(object)BossRushSpeed); UI.Initalize(); } public static void SetupShrineWaveskip(GameObject ProgressionSlab) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)ProgressionSlab.GetComponent<PurchaseInteraction>())) { ProgressionSlab.AddComponent<PurchaseInteraction>(); } ProgressionSlab.GetComponent<PurchaseInteraction>().costType = (CostTypeIndex)0; ProgressionSlab.GetComponent<PurchaseInteraction>().contextToken = "BOSSRUSH_WAVESKIP_CONTEXT"; ProgressionSlab.GetComponent<PurchaseInteraction>().displayNameToken = "BOSSRUSH_WAVESKIP_NAME"; BossRushShrineController bossRushShrineController = ProgressionSlab.AddComponent<BossRushShrineController>(); bossRushShrineController.isWaveskip = true; } } public class StackableHealthBar : MonoBehaviour { public Image FillRect; public Image DelayFillRect; public HUD HUD; public WaveSpawn waveSpawn; public HGTextMeshProUGUI HP; public HGTextMeshProUGUI Name; public HGTextMeshProUGUI Subtitle; public CharacterBody target; private TimeStamp nextAllowedSourceUpdateTime = TimeStamp.negativeInfinity; private float delayedTotalHealthFraction; private float healthFractionVelocity; public void LateUpdate() { if (!Object.op_Implicit((Object)(object)target) || !Object.op_Implicit((Object)(object)target.healthComponent)) { Object.Destroy((Object)(object)((Component)this).gameObject); } float combinedHealth = target.healthComponent.combinedHealth; float fullCombinedHealth = target.healthComponent.fullCombinedHealth; float num = ((fullCombinedHealth == 0f) ? 0f : Mathf.Clamp01(combinedHealth / fullCombinedHealth)); delayedTotalHealthFraction = Mathf.Clamp(Mathf.SmoothDamp(delayedTotalHealthFraction, num, ref healthFractionVelocity, 0.1f, float.PositiveInfinity, Time.deltaTime), num, 1f); FillRect.fillAmount = num; DelayFillRect.fillAmount = delayedTotalHealthFraction; ((TMP_Text)HP).SetText($"{(int)combinedHealth} / {(int)fullCombinedHealth}", true); ((TMP_Text)Name).SetText(Util.GetBestBodyName(((Component)target).gameObject), true); ((TMP_Text)Subtitle).SetText("<sprite name=\"CloudLeft\" tint=1> " + target.GetSubtitle() + " <sprite name=\"CloudRight\" tint=1>", true); } } public static class UI { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static hook_SubmitCmd <>9__0_0; internal void <Initalize>b__0_0(orig_SubmitCmd orig, ConsoleFunctions self, string str) { if (Object.op_Implicit((Object)(object)((Component)self).GetComponent<HGButton>()) && ((Component)self).GetComponent<HGButton>().hoverToken == "BOSSRUSH_HOVERDESC") { if (str == "transition_command \"gamemode bossRushRun; host 0;\"") { orig.Invoke(self, str); } } else { orig.Invoke(self, str); } } } public static void Initalize() { //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_0061: Expected O, but got Unknown StringExtensions.Add("BOSSRUSH_MENU_NAME", "Boss Rush"); StringExtensions.Add("BOSSRUSH_HOVERDESC", "Fight through a gauntlet of powered-up versions of every boss!."); SceneManager.activeSceneChanged += OnSceneChanged; object obj = <>c.<>9__0_0; if (obj == null) { hook_SubmitCmd val = delegate(orig_SubmitCmd orig, ConsoleFunctions self, string str) { if (Object.op_Implicit((Object)(object)((Component)self).GetComponent<HGButton>()) && ((Component)self).GetComponent<HGButton>().hoverToken == "BOSSRUSH_HOVERDESC") { if (str == "transition_command \"gamemode bossRushRun; host 0;\"") { orig.Invoke(self, str); } } else { orig.Invoke(self, str); } }; <>c.<>9__0_0 = val; obj = (object)val; } ConsoleFunctions.SubmitCmd += (hook_SubmitCmd)obj; } private static void OnSceneChanged(Scene prev, Scene next) { //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Expected O, but got Unknown if (!(((Scene)(ref next)).name == "title")) { return; } GameObject val = GameObject.Find("MainMenu"); Transform val2 = val.transform.Find("MENU: Extra Game Mode/ExtraGameModeMenu/Main Panel/GenericMenuButtonPanel/JuicePanel/GenericMenuButton (Eclipse)"); if (Object.op_Implicit((Object)(object)val2)) { GameObject val3 = Object.Instantiate<GameObject>(((Component)val2).gameObject, val2.parent); val3.GetComponent<LanguageTextMeshController>().token = "BOSSRUSH_MENU_NAME"; ConsoleFunctions consoleFunctions = val3.GetComponent<ConsoleFunctions>(); HGButton component = val3.GetComponent<HGButton>(); component.hoverToken = "BOSSRUSH_HOVERDESC"; ((UnityEventBase)((Button)component).onClick).RemoveAllListeners(); ((UnityEvent)((Button)component).onClick).AddListener((UnityAction)delegate { consoleFunctions.SubmitCmd("transition_command \"gamemode bossRushRun; host 0;\""); }); } else { Debug.Log((object)"Could not find transform."); } } } } namespace BossRush.Tweaks { public class Grandparent : TweakBase { public class VoidSunController : MonoBehaviour { public CharacterBody owner; public float stopwatch = 0f; public float delay = 0.03f; private float angleStopwatch; public GameObject beamVfxInstance; private float y = 0f; private float yDir = 20f; public void SpawnVFX() { //IL_0034: 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_004d: Unknown result type (might be due to invalid IL or missing references) beamVfxInstance = Object.Instantiate<GameObject>(GameObject.VoidRaidCrabSpinBeamVFX); beamVfxInstance.transform.SetParent(((Component)this).transform); Transform transform = beamVfxInstance.transform; transform.localScale += new Vector3(0.3f, 0.3f, 0.3f); } public void FixedUpdate() { //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_0159: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Unknown result type (might be due to invalid IL or missing references) //IL_0163: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_0169: Unknown result type (might be due to invalid IL or missing references) //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_0178: Unknown result type (might be due to invalid IL or missing references) //IL_018e: Unknown result type (might be due to invalid IL or missing references) //IL_01a6: Unknown result type (might be due to invalid IL or missing references) //IL_01d7: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Expected O, but got Unknown //IL_01e6: Unknown result type (might be due to invalid IL or missing references) //IL_01eb: Unknown result type (might be due to invalid IL or missing references) //IL_01f2: Unknown result type (might be due to invalid IL or missing references) //IL_0221: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_0242: Unknown result type (might be due to invalid IL or missing references) //IL_025a: Unknown result type (might be due to invalid IL or missing references) //IL_02a0: Unknown result type (might be due to invalid IL or missing references) //IL_02a8: Unknown result type (might be due to invalid IL or missing references) //IL_02ad: Unknown result type (might be due to invalid IL or missing references) //IL_02b5: Unknown result type (might be due to invalid IL or missing references) stopwatch += Time.fixedDeltaTime; angleStopwatch += 90f * Time.fixedDeltaTime; if (angleStopwatch >= 360f) { angleStopwatch = 0f; } if (Object.op_Implicit((Object)(object)owner) && !owner.healthComponent.alive) { owner = null; } if (!Object.op_Implicit((Object)(object)owner)) { if (Object.op_Implicit((Object)(object)beamVfxInstance)) { VfxKillBehavior.KillVfxObject(beamVfxInstance); beamVfxInstance = null; } return; } if (Object.op_Implicit((Object)(object)owner) && !Object.op_Implicit((Object)(object)beamVfxInstance)) { SpawnVFX(); } Vector3 val = owner.master.aiComponents[0].currentEnemy.gameObject.transform.position - ((Component)this).transform.position; Vector3 normalized = ((Vector3)(ref val)).normalized; y = Mathf.Lerp(y, normalized.y, 1.5f * Time.fixedDeltaTime); Vector3 val2 = Quaternion.AngleAxis(angleStopwatch, ((Component)this).transform.up) * normalized; Vector3 val3 = default(Vector3); ((Vector3)(ref val3))..ctor(val2.x, y, val2.z); beamVfxInstance.transform.forward = val3; beamVfxInstance.transform.position = ((Component)this).transform.position; if (stopwatch >= delay) { stopwatch = 0f; BulletAttack val4 = new BulletAttack(); val4.origin = ((Component)this).transform.position; val4.aimVector = val3; val4.minSpread = 0f; val4.maxSpread = 0f; val4.maxDistance = 400f; val4.stopperMask = LayerMask.op_Implicit(0); val4.radius = 4f; val4.smartCollision = false; val4.queryTriggerInteraction = (QueryTriggerInteraction)1; val4.procCoefficient = 1f; val4.procChainMask = default(ProcChainMask); val4.owner = ((Component)owner).gameObject; val4.weapon = ((Component)this).gameObject; val4.damage = 6f * owner.damage * 0.03f; val4.damageColorIndex = (DamageColorIndex)0; val4.damageType = DamageTypeCombo.op_Implicit((DamageType)0); val4.falloffModel = (FalloffModel)0; val4.force = 0f; val4.hitEffectPrefab = SpinBeamAttack.beamImpactEffectPrefab; val4.isCrit = false; val4.HitEffectNormal = false; if (NetworkServer.active) { val4.Fire(); } } } } public override GameObject Body => GameObject.GrandParentBody; public override void ProcessTweaks(CharacterBody body, SkillLocator locator) { base.ProcessTweaks(body, locator); } public override void Initialize(YAUContentPack pack, ConfigFile config, string identifier) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Expected O, but got Unknown base.Initialize(pack, config, identifier); ChannelSun.CreateSun += new hook_CreateSun(OverrideSun); ChannelSunEnd.OnEnter += new hook_OnEnter(OnChannelExit); } public GameObject OverrideSun(orig_CreateSun orig, ChannelSun self, Vector3 sunPos) { //IL_003a: Unknown result type (might be due to invalid IL or missing references) Transform transform = GameObject.Find("HOLDER: Stage").transform; Transform val = ((transform != null) ? transform.Find("PowerCore") : null); if (!(Run.instance is BossRushRun)) { return orig.Invoke(self, sunPos); } VoidSunController voidSunController = ((Component)val).GetComponent<VoidSunController>(); if (!Object.op_Implicit((Object)(object)((Component)val).GetComponent<GenericOwnership>())) { UnityExtensions.AddComponent<GenericOwnership>((Component)(object)val); } if (!Object.op_Implicit((Object)(object)voidSunController)) { voidSunController = UnityExtensions.AddComponent<VoidSunController>((Component)(object)val); } voidSunController.owner = ((EntityState)self).characterBody; return ((Component)val).gameObject; } public void OnChannelExit(orig_OnEnter orig, ChannelSunEnd self) { Transform transform = GameObject.Find("HOLDER: Stage").transform; Transform val = ((transform != null) ? transform.Find("PowerCore") : null); if (!(Run.instance is BossRushRun)) { orig.Invoke(self); return; } VoidSunController component = ((Component)val).GetComponent<VoidSunController>(); component.owner = null; orig.Invoke(self); } } public abstract class TweakBase : GenericBase<TweakBase> { public abstract GameObject Body { get; } public override void Initialize(YAUContentPack pack, ConfigFile config, string identifier) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown ((GenericBase)this).Initialize(pack, config, identifier); CharacterBody.Start += new hook_Start(OnBodyStart); } private void OnBodyStart(orig_Start orig, CharacterBody body) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(body); if (body.bodyIndex == BodyCatalog.FindBodyIndex(Body)) { ProcessTweaks(body, body.skillLocator); } } public virtual void ProcessTweaks(CharacterBody body, SkillLocator locator) { } } } namespace BossRush.Utils.Assets { public static class AssetCollection { public static AssetCollection CalmWaterShadersCollection => Addressables.LoadAssetAsync<AssetCollection>((object)"Calm Water/CalmWaterShadersCollection.asset").WaitForCompletion(); public static AssetCollection DecaliciousShadersCollection => Addressables.LoadAssetAsync<AssetCollection>((object)"Decalicious/DecaliciousShadersCollection.asset").WaitForCompletion(); public static AssetCollection TranslucentImageShadersCollection => Addressables.LoadAssetAsync<AssetCollection>((object)"TranslucentImage/TranslucentImageShadersCollection.asset").WaitForCompletion(); public static AssetCollection CustomPostProcessShaders => Addressables.LoadAssetAsync<AssetCollection>((object)"RoR2/Base/Shaders/CustomPostProcessShaders.asset").WaitForCompletion(); public static AssetCollection DeferredShaders => Addressables.LoadAssetAsync<AssetCollection>((object)"RoR2/Base/Shaders/DeferredShaders.asset").WaitForCompletion(); public static AssetCollection EnvironmentShaders => Addressables.LoadAssetAsync<AssetCollection>((object)"RoR2/Base/Shaders/EnvironmentShaders.asset").WaitForCompletion(); public static AssetCollection FXShaders => Addressables.LoadAssetAsync<AssetCollection>((object)"RoR2/Base/Shaders/FXShaders.asset").WaitForCompletion(); public static AssetCollection PostProcesShaders => Addressables.LoadAssetAsync<AssetCollection>((object)"RoR2/Base/Shaders/PostProcesShaders.asset").WaitForCompletion(); public static AssetCollection ShadersCollection => Addressables.LoadAssetAsync<AssetCollection>((object)"RoR2/Base/Shaders/ShadersCollection.asset").WaitForCompletion(); public static AssetCollection SpeedtreeOverrideShaders => Addressables.LoadAssetAsync<AssetCollection>((object)"RoR2/Base/Shaders/SpeedtreeOverrideShaders.asset").WaitForCompletion(); public static AssetCollection UIShaders => Addressables.LoadAssetAsync<AssetCollection>((object)"RoR2/Base/Shaders/UIShaders.asset").WaitForCompletion(); } public static class Material { public static Material Blue => Addressables.LoadAssetAsync<Material>((object)"Calm Water/Blue.mat").WaitForCompletion(); public static Material Caustics => Addressables.LoadAssetAsync<Material>((object)"Calm Water/Caustics.mat").WaitForCompletion(); public static Material Green => Addressables.LoadAssetAsync<Material>((object)"Calm Water/Green.mat").WaitForCompletion(); public static Material Ground => Addressables.LoadAssetAsync<Material>((object)"Calm Water/Ground.mat").WaitForCompletion(); public static Material IslandClassic => Addressables.LoadAssetAsync<Material>((object)"Calm Water/Island - Classic.mat").WaitForCompletion(); public static Material PondClassic => Addressables.LoadAssetAsync<Material>((object)"Calm Water/Pond - Classic.mat").WaitForCompletion(); public static Material PondDX11 => Addressables.LoadAssetAsync<Material>((object)"Calm Water/Pond - DX11.mat").WaitForCompletion(); public static Material PondSwampDX11 => Addressables.LoadAssetAsync<Material>((object)"Calm Water/PondSwamp - DX11.mat").WaitForCompletion(); public static Material Red => Addressables.LoadAssetAsync<Material>((object)"Calm Water/Red.mat").WaitForCompletion(); public static Material matWaterTest => Addressables.LoadAssetAsync<Material>((object)"Calm Water/matWaterTest.mat").WaitForCompletion(); public static Material DefaultTranslucent => Addressables.LoadAssetAsync<Material>((object)"TranslucentImage/Default-Translucent.mat").WaitForCompletion(); public static Material matArtifactCompoundCircle => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/ArtifactCompounds/matArtifactCompoundCircle.mat").WaitForCompletion(); public static Material matArtifactCompoundDiamond => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/ArtifactCompounds/matArtifactCompoundDiamond.mat").WaitForCompletion(); public static Material matArtifactCompoundFrame => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/ArtifactCompounds/matArtifactCompoundFrame.mat").WaitForCompletion(); public static Material matArtifactCompoundSquare => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/ArtifactCompounds/matArtifactCompoundSquare.mat").WaitForCompletion(); public static Material matArtifactCompoundTriangle => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/ArtifactCompounds/matArtifactCompoundTriangle.mat").WaitForCompletion(); public static Material matArtifactScavScar => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/ArtifactCompounds/matArtifactScavScar.mat").WaitForCompletion(); public static Material matArtifactEnigmaGlow => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Enigma/matArtifactEnigmaGlow.mat").WaitForCompletion(); public static Material matWispSoul => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/WispOnDeath/matWispSoul.mat").WaitForCompletion(); public static Material matWispSoulFire => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/WispOnDeath/matWispSoulFire.mat").WaitForCompletion(); public static Material matAltarSkeleton => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/AltarSkeleton/matAltarSkeleton.mat").WaitForCompletion(); public static Material matAltarSkeletonGlow => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/AltarSkeleton/matAltarSkeletonGlow.mat").WaitForCompletion(); public static Material matBandit2Knife => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2Knife.mat").WaitForCompletion(); public static Material matBandit2Revolver => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2Revolver.mat").WaitForCompletion(); public static Material matBandit2Shotgun => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2Shotgun.mat").WaitForCompletion(); public static Material matBandit2ShotgunAlt => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2ShotgunAlt.mat").WaitForCompletion(); public static Material matBandit => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit.mat").WaitForCompletion(); public static Material matBandit2 => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2.mat").WaitForCompletion(); public static Material matBandit2Coat => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2Coat.mat").WaitForCompletion(); public static Material matBandit2AltColossus => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2AltColossus.mat").WaitForCompletion(); public static Material matBandit2AltColossusWeapons => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2AltColossusWeapons.mat").WaitForCompletion(); public static Material matBandit2Alt => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2Alt.mat").WaitForCompletion(); public static Material matBandit2CoatAlt => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2CoatAlt.mat").WaitForCompletion(); public static Material matBackstabIndicatorParticle => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBackstabIndicatorParticle.mat").WaitForCompletion(); public static Material matBandit2Explosion => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2Explosion.mat").WaitForCompletion(); public static Material matBandit2Hitspark => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2Hitspark.mat").WaitForCompletion(); public static Material matBandit2HitsparkBackstab => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2HitsparkBackstab.mat").WaitForCompletion(); public static Material matBandit2PistolSpin => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2PistolSpin.mat").WaitForCompletion(); public static Material matBandit2Ring => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2Ring.mat").WaitForCompletion(); public static Material matBandit2Shell => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2Shell.mat").WaitForCompletion(); public static Material matBandit2Skull => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2Skull.mat").WaitForCompletion(); public static Material matBandit2SlashBlade => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2SlashBlade.mat").WaitForCompletion(); public static Material matBandit2SmokebombDonut => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2SmokebombDonut.mat").WaitForCompletion(); public static Material matBandit2SmokebombSphere => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2SmokebombSphere.mat").WaitForCompletion(); public static Material matBandit2Splatter1 => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2Splatter1.mat").WaitForCompletion(); public static Material matBandit2SplatterBillboard => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2SplatterBillboard.mat").WaitForCompletion(); public static Material matBandit2SplatterBillboardAlt => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2SplatterBillboardAlt.mat").WaitForCompletion(); public static Material matBandit2SplatterDirectional => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2SplatterDirectional.mat").WaitForCompletion(); public static Material matBandit2SplatterDirectionalAlt => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2SplatterDirectionalAlt.mat").WaitForCompletion(); public static Material matBandit2SplatterOpaqueTrail => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2SplatterOpaqueTrail.mat").WaitForCompletion(); public static Material matBandit2SplatterOpaqueTrailAlt => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2SplatterOpaqueTrailAlt.mat").WaitForCompletion(); public static Material matBandit2TracerTrail => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matBandit2TracerTrail.mat").WaitForCompletion(); public static Material matDestealth => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matDestealth.mat").WaitForCompletion(); public static Material matOmniExplosion1Bandit => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matOmniExplosion1Bandit.mat").WaitForCompletion(); public static Material matOmniHitspark2Bandit => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matOmniHitspark2Bandit.mat").WaitForCompletion(); public static Material matOmniHitspark2BanditAlt => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bandit2/matOmniHitspark2BanditAlt.mat").WaitForCompletion(); public static Material matBeetle => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matBeetle.mat").WaitForCompletion(); public static Material matBeetleopt => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matBeetle_opt.mat").WaitForCompletion(); public static Material matSulfurBeetle => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matSulfurBeetle.mat").WaitForCompletion(); public static Material matBeetleGuard => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matBeetleGuard.mat").WaitForCompletion(); public static Material matBeetleGuardTrail => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matBeetleGuardTrail.mat").WaitForCompletion(); public static Material matAuraPulse => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matAuraPulse.mat").WaitForCompletion(); public static Material matAuraPulseBeetleGuardopt => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matAuraPulse_BeetleGuard_opt.mat").WaitForCompletion(); public static Material matBeetleGuardCharge => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matBeetleGuardCharge.mat").WaitForCompletion(); public static Material matDefenseUpShield => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matDefenseUpShield.mat").WaitForCompletion(); public static Material matDefenseUpShieldopt => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matDefenseUpShield_opt.mat").WaitForCompletion(); public static Material matSulfurBeetleGuard => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matSulfurBeetleGuard.mat").WaitForCompletion(); public static Material matBeetleBreath => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matBeetleBreath.mat").WaitForCompletion(); public static Material matBeetleQueen => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matBeetleQueen.mat").WaitForCompletion(); public static Material matBeetleBugs1 => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matBeetleBugs1.mat").WaitForCompletion(); public static Material matBeetleBugs2 => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matBeetleBugs2.mat").WaitForCompletion(); public static Material matBeetleQueen1 => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matBeetleQueen 1.mat").WaitForCompletion(); public static Material matBeetleQueenAcidDecal => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matBeetleQueenAcidDecal.mat").WaitForCompletion(); public static Material matBeetleQueenAcidFizz => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matBeetleQueenAcidFizz.mat").WaitForCompletion(); public static Material matBeetleSpit => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matBeetleSpit.mat").WaitForCompletion(); public static Material matBeetleSpitLarge => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matBeetleSpitLarge.mat").WaitForCompletion(); public static Material matBeetleSpitShockwave => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matBeetleSpitShockwave.mat").WaitForCompletion(); public static Material matBeetleSpitTrail1 => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matBeetleSpitTrail1.mat").WaitForCompletion(); public static Material matBeetleSpitTrail2 => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matBeetleSpitTrail2.mat").WaitForCompletion(); public static Material matSulfurBeetleQueen => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matSulfurBeetleQueen.mat").WaitForCompletion(); public static Material matBeetleJuice => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matBeetleJuice.mat").WaitForCompletion(); public static Material matBeetleQueenSphere => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matBeetleQueenSphere.mat").WaitForCompletion(); public static Material matBeetleGuardSlamDecal => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matBeetleGuardSlamDecal.mat").WaitForCompletion(); public static Material matBeetleImpact => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matBeetleImpact.mat").WaitForCompletion(); public static Material matGroundSlamIndicator => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Beetle/matGroundSlamIndicator.mat").WaitForCompletion(); public static Material matBell => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bell/matBell.mat").WaitForCompletion(); public static Material matBellBall => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bell/matBellBall.mat").WaitForCompletion(); public static Material matBellBuffBeam => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bell/matBellBuffBeam.mat").WaitForCompletion(); public static Material matBellDevice => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bell/matBellDevice.mat").WaitForCompletion(); public static Material matBellFlashBright => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bell/matBellFlashBright.mat").WaitForCompletion(); public static Material matOmniExplosion1Bell => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bell/matOmniExplosion1Bell.mat").WaitForCompletion(); public static Material matOmniHitspark1Bell => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bell/matOmniHitspark1Bell.mat").WaitForCompletion(); public static Material matBirdshark => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Birdshark/matBirdshark.mat").WaitForCompletion(); public static Material matBirdsharkFeather => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Birdshark/matBirdsharkFeather.mat").WaitForCompletion(); public static Material matBison => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bison/matBison.mat").WaitForCompletion(); public static Material matBisonopt => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bison/matBison_opt.mat").WaitForCompletion(); public static Material matBisonHair => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bison/matBisonHair.mat").WaitForCompletion(); public static Material matBisonHairopt => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bison/matBisonHair_opt.mat").WaitForCompletion(); public static Material matBisonMetalBall => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bison/matBisonMetalBall.mat").WaitForCompletion(); public static Material matBisonMetalBallopt => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bison/matBisonMetalBall_opt.mat").WaitForCompletion(); public static Material matBisonSnowSphere => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bison/matBisonSnowSphere.mat").WaitForCompletion(); public static Material matBisonSnowSphereopt => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bison/matBisonSnowSphere_opt.mat").WaitForCompletion(); public static Material matGenericChargeIndicator => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bison/matGenericChargeIndicator.mat").WaitForCompletion(); public static Material matGenericChargeIndicatorbisonopt => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bison/matGenericChargeIndicator_bison_opt.mat").WaitForCompletion(); public static Material matSnowyOverlay => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Bison/matSnowyOverlay.mat").WaitForCompletion(); public static Material maBrotherDustSpeckledLarge => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/maBrotherDustSpeckledLarge.mat").WaitForCompletion(); public static Material maBrotherGlassOverlay => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/maBrotherGlassOverlay.mat").WaitForCompletion(); public static Material matBrotherDissolveParticle => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrotherDissolveParticle.mat").WaitForCompletion(); public static Material matBrotherEnergizedWaveTell => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrotherEnergizedWaveTell.mat").WaitForCompletion(); public static Material matBrotherEyeTrail => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrotherEyeTrail.mat").WaitForCompletion(); public static Material matBrotherFirePillarIndicator => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrotherFirePillarIndicator.mat").WaitForCompletion(); public static Material matBrotherGlassDistortion => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrotherGlassDistortion.mat").WaitForCompletion(); public static Material matBrotherPostBossSphere => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrotherPostBossSphere.mat").WaitForCompletion(); public static Material matBrotherPreBossSphere => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrotherPreBossSphere.mat").WaitForCompletion(); public static Material matBrotherSlamDecal => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrotherSlamDecal.mat").WaitForCompletion(); public static Material matBrotherSlamDecalCracks => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrotherSlamDecalCracks.mat").WaitForCompletion(); public static Material matBrotherStealAura => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrotherStealAura.mat").WaitForCompletion(); public static Material matBrotherSwing => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrotherSwing.mat").WaitForCompletion(); public static Material matBrotherSwingDistortion => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrotherSwingDistortion.mat").WaitForCompletion(); public static Material matBrotherUltIndicator => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrotherUltIndicator.mat").WaitForCompletion(); public static Material matBrotherUltIndicatorTall => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrotherUltIndicatorTall.mat").WaitForCompletion(); public static Material matLunarShardImpactEffect => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matLunarShardImpactEffect.mat").WaitForCompletion(); public static Material matLunarShardTrail => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matLunarShardTrail.mat").WaitForCompletion(); public static Material matBrotherInfectionBlue => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrotherInfectionBlue.mat").WaitForCompletion(); public static Material matBrotherInfectionGreen => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrotherInfectionGreen.mat").WaitForCompletion(); public static Material matBrotherInfectionRed => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrotherInfectionRed.mat").WaitForCompletion(); public static Material matBrotherInfectionWhite => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrotherInfectionWhite.mat").WaitForCompletion(); public static Material matBrother => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrother.mat").WaitForCompletion(); public static Material matBrotherArmor => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrotherArmor.mat").WaitForCompletion(); public static Material matBrotherCloth => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrotherCloth.mat").WaitForCompletion(); public static Material matBrotherEye => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrotherEye.mat").WaitForCompletion(); public static Material matBrotherEyeHurt => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrotherEyeHurt.mat").WaitForCompletion(); public static Material matBrotherGem => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrotherGem.mat").WaitForCompletion(); public static Material matBrotherHammer => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrotherHammer.mat").WaitForCompletion(); public static Material matBrotherStib => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Brother/matBrotherStib.mat").WaitForCompletion(); public static Material matCaptainColossusAltArmor => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Captain/matCaptainColossusAltArmor.mat").WaitForCompletion(); public static Material matCaptainColossusAltClothes => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Captain/matCaptainColossusAltClothes.mat").WaitForCompletion(); public static Material matCaptainAirstrikeAltAreaIndicatorInner => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Captain/matCaptainAirstrikeAltAreaIndicatorInner.mat").WaitForCompletion(); public static Material matCaptainAirstrikeAltAreaIndicatorOuter => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Captain/matCaptainAirstrikeAltAreaIndicatorOuter.mat").WaitForCompletion(); public static Material matCaptainAirstrikeAltLaser => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Captain/matCaptainAirstrikeAltLaser.mat").WaitForCompletion(); public static Material matCaptainAirstrikeAltRadiusWarning => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Captain/matCaptainAirstrikeAltRadiusWarning.mat").WaitForCompletion(); public static Material matCaptainAirstrikeAreaIndicator => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Captain/matCaptainAirstrikeAreaIndicator.mat").WaitForCompletion(); public static Material matCaptainAirstrikeCore => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Captain/matCaptainAirstrikeCore.mat").WaitForCompletion(); public static Material matCaptainAirstrikeFlechetteBurning => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Captain/matCaptainAirstrikeFlechetteBurning.mat").WaitForCompletion(); public static Material matCaptainAirstrikeTrail => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Captain/matCaptainAirstrikeTrail.mat").WaitForCompletion(); public static Material matCaptainBlueprintsInvalid => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Captain/matCaptainBlueprintsInvalid.mat").WaitForCompletion(); public static Material matCaptainBlueprintsOK => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Captain/matCaptainBlueprintsOK.mat").WaitForCompletion(); public static Material matCaptainBlueprintsWarningInvalid => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Captain/matCaptainBlueprintsWarningInvalid.mat").WaitForCompletion(); public static Material matCaptainBlueprintsWarningOK => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Captain/matCaptainBlueprintsWarningOK.mat").WaitForCompletion(); public static Material matCaptainBodyArmorRing => Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Captain/matCaptainBodyArmorRing.mat").WaitForCompletion(); public static Mate
YAU.dll
Decompiled 8 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.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Cryptography; using System.Security.Permissions; using System.Text; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using EntityStates; using HG; using HG.Reflection; using HarmonyLib; using Microsoft.CodeAnalysis; using On.RoR2; using On.RoR2.Items; using RoR2; using RoR2.Audio; using RoR2.ContentManagement; using RoR2.EntitlementManagement; using RoR2.ExpansionManagement; using RoR2.Navigation; using RoR2.Networking; using RoR2.Projectile; using RoR2.Skills; using RoR2.UI; using TMPro; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Audio; using UnityEngine.Networking; using UnityEngine.SceneManagement; using YAU.AddressableUtils; using YAU.AddressableUtils.Assets; using YAU.Attributes; using YAU.Audio; using YAU.Content; using YAU.Extensions.ROR; using YAU.Extensions.Text; using YAU.Interactables; using YAU.Language; [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("YAU")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("YAU")] [assembly: AssemblyTitle("YAU")] [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 YAU { [BepInPlugin("pseudopulse.YAU", "YAU", "1.1.0")] public class YAU : BaseUnityPlugin { public const string PluginGUID = "pseudopulse.YAU"; public const string PluginAuthor = "pseudopulse"; public const string PluginName = "YAU"; public const string PluginVersion = "1.1.0"; public static ManualLogSource ModLogger; internal static YAUContentPack YAUContent; public void Awake() { ModLogger = ((BaseUnityPlugin)this).Logger; YAUContent = ContentPackManager.CreateContentPack(Assembly.GetExecutingAssembly(), "YAUInternals"); AutoRunCollector.HandleAutoRun(); SoundManager.SetupAudioManager(); } } } namespace YAU.Networking { public class NetworkingHelper { internal static short TakenMessagesIndex = 100; public static short GetMessageIndex() { if (TakenMessagesIndex == short.MaxValue) { YAU.ModLogger.LogError((object)"Mod attempted to request a message index with the maximum amount has been claimed."); throw new OverflowException(); } TakenMessagesIndex++; return TakenMessagesIndex; } public static NetworkWriter CreateMessage(short messageType, Action<NetworkWriter> setup) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown NetworkWriter val = new NetworkWriter(); val.StartMessage(messageType); setup(val); val.FinishMessage(); return val; } public static void ServerSendToAll(NetworkWriter writer) { if (!NetworkServer.active) { return; } foreach (NetworkConnection connection in NetworkServer.connections) { if (connection != null && connection != null) { connection.SendWriter(writer, QosChannelIndex.defaultReliable.intVal); } } } public static void SendToServer(NetworkWriter writer) { if (ClientScene.readyConnection != null) { NetworkConnection readyConnection = ClientScene.readyConnection; if (readyConnection != null) { readyConnection.SendWriter(writer, QosChannelIndex.defaultReliable.intVal); } } } } } namespace YAU.Language { public class LanguageManager { [CompilerGenerated] private static class <>O { public static hook_GetLocalizedStringByToken <0>__Language_GetLocalizedStringByToken; public static hook_TokenIsRegistered <1>__Language_TokenIsRegistered; } private static Dictionary<string, string> languageTokens = new Dictionary<string, string>(); [AutoRun] internal static void Initialize() { //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 //IL_0032: 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) //IL_003d: Expected O, but got Unknown object obj = <>O.<0>__Language_GetLocalizedStringByToken; if (obj == null) { hook_GetLocalizedStringByToken val = Language_GetLocalizedStringByToken; <>O.<0>__Language_GetLocalizedStringByToken = val; obj = (object)val; } Language.GetLocalizedStringByToken += (hook_GetLocalizedStringByToken)obj; object obj2 = <>O.<1>__Language_TokenIsRegistered; if (obj2 == null) { hook_TokenIsRegistered val2 = Language_TokenIsRegistered; <>O.<1>__Language_TokenIsRegistered = val2; obj2 = (object)val2; } Language.TokenIsRegistered += (hook_TokenIsRegistered)obj2; } public static void RegisterLanguageToken(string key, string value) { if (languageTokens.ContainsKey(key)) { YAU.ModLogger.LogError((object)("Attempted to add key " + key + " when the same key was already present.")); } else { languageTokens.Add(key, value); } } private static string Language_GetLocalizedStringByToken(orig_GetLocalizedStringByToken orig, Language self, string token) { if (languageTokens.ContainsKey(token)) { return languageTokens[token]; } return orig.Invoke(self, token); } private static bool Language_TokenIsRegistered(orig_TokenIsRegistered orig, Language self, string token) { if (languageTokens.ContainsKey(token)) { return true; } return orig.Invoke(self, token); } } } namespace YAU.Interfaces { public interface IOnBuffInflictedReceiver { void OnBuffInflicted(BuffDef buff); } internal class OnBuffInflictedHandler { [CompilerGenerated] private static class <>O { public static hook_AddBuff_BuffIndex <0>__HandleUntimed; } internal static void Initialize() { //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>__HandleUntimed; if (obj == null) { hook_AddBuff_BuffIndex val = HandleUntimed; <>O.<0>__HandleUntimed = val; obj = (object)val; } CharacterBody.AddBuff_BuffIndex += (hook_AddBuff_BuffIndex)obj; } internal static void HandleUntimed(orig_AddBuff_BuffIndex orig, CharacterBody self, BuffIndex index) { //IL_0003: 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_0068: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self, index); IOnBuffInflictedReceiver[] components = ((Component)self).GetComponents<IOnBuffInflictedReceiver>(); IOnBuffInflictedReceiver[] array = components; foreach (IOnBuffInflictedReceiver onBuffInflictedReceiver in array) { onBuffInflictedReceiver.OnBuffInflicted(BuffCatalog.GetBuffDef(index)); } if (Object.op_Implicit((Object)(object)self.master)) { IOnBuffInflictedReceiver[] components2 = ((Component)self.master).GetComponents<IOnBuffInflictedReceiver>(); IOnBuffInflictedReceiver[] array2 = components2; foreach (IOnBuffInflictedReceiver onBuffInflictedReceiver2 in array2) { onBuffInflictedReceiver2.OnBuffInflicted(BuffCatalog.GetBuffDef(index)); } } } } } namespace YAU.Interactables { public class CardManager { [CompilerGenerated] private static class <>O { public static hook_RebuildCards <0>__ClassicStageInfo_RebuildCards; } private static List<CustomInteractable> interactables = new List<CustomInteractable>(); public static void RegisterInteractable(CustomInteractable interactable) { interactables.Add(interactable); } [AutoRun] internal static void SetupHooks() { //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>__ClassicStageInfo_RebuildCards; if (obj == null) { hook_RebuildCards val = ClassicStageInfo_RebuildCards; <>O.<0>__ClassicStageInfo_RebuildCards = val; obj = (object)val; } ClassicStageInfo.RebuildCards += (hook_RebuildCards)obj; } private static void ClassicStageInfo_RebuildCards(orig_RebuildCards orig, ClassicStageInfo self, DirectorCardCategorySelection f1, DirectorCardCategorySelection f2) { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self, f1, f2); foreach (CustomInteractable interactable in interactables) { List<string> list = interactable.validScenes.ToList(); Scene activeScene = SceneManager.GetActiveScene(); if (list.Contains(((Scene)(ref activeScene)).name)) { self.interactableCategories.AddCard(0, interactable.directorCard); } } } } public class CustomInteractable { public InteractableSpawnCard spawnCard; public DirectorCard directorCard; public string[] validScenes; public CustomInteractable(InteractableSpawnCard spawnCard, DirectorCard directorCard, string[] validScenes) { this.spawnCard = spawnCard; this.directorCard = directorCard; this.validScenes = validScenes; } } } namespace YAU.Helpers { public class DeployableManager { [CompilerGenerated] private static class <>O { public static hook_GetDeployableSameSlotLimit <0>__HandleLimits; } private static Dictionary<DeployableSlot, Func<CharacterMaster, int>> deployables = new Dictionary<DeployableSlot, Func<CharacterMaster, int>>(); public static void AddDeployable(DeployableSlot slot, Func<CharacterMaster, int> limit) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) deployables.Add(slot, limit); } [AutoRun] internal static void Initialize() { //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>__HandleLimits; if (obj == null) { hook_GetDeployableSameSlotLimit val = HandleLimits; <>O.<0>__HandleLimits = val; obj = (object)val; } CharacterMaster.GetDeployableSameSlotLimit += (hook_GetDeployableSameSlotLimit)obj; } private static int HandleLimits(orig_GetDeployableSameSlotLimit orig, CharacterMaster self, DeployableSlot slot) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) if (deployables.TryGetValue(slot, out var value)) { return value(self); } return orig.Invoke(self, slot); } } public class OverlayManager { public struct Overlay { public Material material; public Func<CharacterModel, bool> action; } [CompilerGenerated] private static class <>O { public static hook_UpdateOverlays <0>__HandleOverlays; } internal static List<Overlay> overlays = new List<Overlay>(); public static void AddOverlay(Overlay overlay) { overlays.Add(overlay); } public static void AddOverlay(Material mat, Func<CharacterModel, bool> action) { Overlay overlay = default(Overlay); overlay.material = mat; overlay.action = action; Overlay item = overlay; overlays.Add(item); } [AutoRun] internal static void Setup() { //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>__HandleOverlays; if (obj == null) { hook_UpdateOverlays val = HandleOverlays; <>O.<0>__HandleOverlays = val; obj = (object)val; } CharacterModel.UpdateOverlays += (hook_UpdateOverlays)obj; } private static void HandleOverlays(orig_UpdateOverlays orig, CharacterModel self) { orig.Invoke(self); foreach (Overlay overlay in overlays) { if (overlay.action(self)) { Material[] currentOverlays = self.currentOverlays; int activeOverlayCount = self.activeOverlayCount; self.activeOverlayCount = activeOverlayCount + 1; currentOverlays[activeOverlayCount] = overlay.material; } } } } public class SettingsManager { } public class Utils { public static Vector3[] GetSafePositionsWithinDistance(Vector3 center, float distance) { //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0068: 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) if (Object.op_Implicit((Object)(object)SceneInfo.instance) && Object.op_Implicit((Object)(object)SceneInfo.instance.groundNodes)) { NodeGraph groundNodes = SceneInfo.instance.groundNodes; List<Vector3> list = new List<Vector3>(); Node[] nodes = groundNodes.nodes; foreach (Node val in nodes) { if (Vector3.Distance(val.position, center) <= distance) { list.Add(val.position); } } return list.ToArray(); } return (Vector3[])(object)new Vector3[1] { center }; } public static Vector3 FindLookRotation(GameObject self, GameObject target) { //IL_0007: 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_0017: 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_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0024: 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) Vector3 val = target.transform.position - self.transform.position; return ((Vector3)(ref val)).normalized; } } public class VoidManager { public struct Corruption { public ItemDef uncorrupt; public List<ItemDef> corrupts; } [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static hook_Init <>9__4_0; internal void <HandleCorruptions>b__4_0(orig_Init orig) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) foreach (Corruption corruption in corruptions) { foreach (ItemDef corrupt in corruption.corrupts) { Pair val = default(Pair); val.itemDef1 = corruption.uncorrupt; val.itemDef2 = corrupt; Pair val2 = val; ItemCatalog.itemRelationships[ItemRelationshipTypes.ContagiousItem] = CollectionExtensions.AddToArray<Pair>(ItemCatalog.itemRelationships[ItemRelationshipTypes.ContagiousItem], val2); } } orig.Invoke(); } } private static List<Corruption> corruptions = new List<Corruption>(); public static void AddCorruption(ItemDef uncorrupted, ItemDef corrupted) { corruptions.Add(new Corruption { uncorrupt = uncorrupted, corrupts = new List<ItemDef> { corrupted } }); } public static void AddCorruption(ItemDef uncorrupted, List<ItemDef> corrupted) { corruptions.Add(new Corruption { uncorrupt = uncorrupted, corrupts = corrupted }); } [AutoRun] internal static void HandleCorruptions() { //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_0020: Expected O, but got Unknown object obj = <>c.<>9__4_0; if (obj == null) { hook_Init val = delegate(orig_Init orig) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) foreach (Corruption corruption in corruptions) { foreach (ItemDef corrupt in corruption.corrupts) { Pair val2 = default(Pair); val2.itemDef1 = corruption.uncorrupt; val2.itemDef2 = corrupt; Pair val3 = val2; ItemCatalog.itemRelationships[ItemRelationshipTypes.ContagiousItem] = CollectionExtensions.AddToArray<Pair>(ItemCatalog.itemRelationships[ItemRelationshipTypes.ContagiousItem], val3); } } orig.Invoke(); }; <>c.<>9__4_0 = val; obj = (object)val; } ContagiousItemManager.Init += (hook_Init)obj; } } } namespace YAU.Extensions.Unity { public static class UnityExtensions { public static void RemoveComponent<T>(this GameObject self) where T : Component { Object.Destroy((Object)(object)self.GetComponent<T>()); } public static void RemoveComponents<T>(this GameObject self) where T : Component { T[] components = self.GetComponents<T>(); for (int i = 0; i < components.Length; i++) { Object.Destroy((Object)(object)components[i]); } } public static void RemoveComponent<T>(this Component self) where T : Component { Object.Destroy((Object)(object)self.GetComponent<T>()); } public static void RemoveComponents<T>(this Component self) where T : Component { T[] components = self.GetComponents<T>(); for (int i = 0; i < components.Length; i++) { Object.Destroy((Object)(object)components[i]); } } public static T AddComponent<T>(this Component self) where T : Component { return self.gameObject.AddComponent<T>(); } public static Sprite MakeSprite(this Texture2D self) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) return Sprite.Create(new Rect(0f, 0f, 512f, 512f), new Vector2(256f, 256f), 1f, self); } } } namespace YAU.Extensions.Text { public static class StringExtensions { public static void Add(this string str, string text) { LanguageManager.RegisterLanguageToken(str, text); } public static T Load<T>(this string str) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) try { return Addressables.LoadAssetAsync<T>((object)str).WaitForCompletion(); } catch { YAU.ModLogger.LogError((object)("Failed to load asset " + str + " of type " + typeof(T).ToString() + ". Returned default(T) instead.")); return default(T); } } public static string RemoveUnsafeCharacters(this string str) { string[] array = new string[17] { "\n", "'", " ", "!", "`", "&", "-", ")", "(", "{", "}", "|", "@", "<", ">", ".", "\\" }; string text = str; string[] array2 = array; foreach (string oldValue in array2) { text = text.Replace(oldValue, ""); } return text; } public static string RemoveUnsafeCharacters(this string str, string[] unsafeChars) { string text = str; foreach (string oldValue in unsafeChars) { text = text.Replace(oldValue, ""); } return text; } public static string AutoFormat(this string str) { return Formatter.FormatString(str); } } internal class Formatter { internal struct Format { public string formatted; public List<string> matching; } private static List<Format> formats = new List<Format> { new Format { formatted = "<style=cIsHealing>%TEXT%</style>", matching = new List<string> { "heal", "health", "barrier", "temporary barrier" } }, new Format { formatted = "<style=cStack>%TEXT%", matching = new List<string> { "(" } }, new Format { formatted = "%TEXT%</style>", matching = new List<string> { ")" } }, new Format { formatted = "<style=cIsUtility>%TEXT%</style>", matching = new List<string> { "shield", "gain", "regenerating", "speed", "boost", "buffs", "increase", "armor" } }, new Format { formatted = "<style=cIsDamage>%TEXT%</style>", matching = new List<string> { "damage" } } }; internal static string FormatString(string str) { foreach (Format format in formats) { foreach (string item in format.matching) { string newValue = format.formatted.Replace("%TEXT%", item); str = str.Replace(item, newValue); } } return str; } } } namespace YAU.Extensions.Enumeration { public static class EnumeratorExtensions { public static T GetRandom<T>(this IEnumerable<T> self) { return self.ElementAt(Random.Range(0, self.Count())); } public static T GetRandom<T>(this IEnumerable<T> self, Xoroshiro128Plus rng) { return self.ElementAt(rng.RangeInt(0, self.Count())); } public static T GetRandom<T>(this IEnumerable<T> self, Func<T, bool> predicate) { try { return self.Where(predicate).ElementAt(Random.Range(0, self.Count())); } catch { return default(T); } } public static T GetRandom<T>(this IEnumerable<T> self, Xoroshiro128Plus rng, Func<T, bool> predicate) { try { return self.Where(predicate).ElementAt(rng.RangeInt(0, self.Count())); } catch { return default(T); } } } } namespace YAU.Extensions.ROR { public static class CharacterExtensions { public static bool HasSkillEquipped(this CharacterBody body, SkillDef skill) { GenericSkill[] components = ((Component)body).GetComponents<GenericSkill>(); foreach (GenericSkill val in components) { if ((Object)(object)val.skillDef == (Object)(object)skill) { return true; } } return false; } public static void ClearInventory(this CharacterBody body) { //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_003c: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)body.inventory)) { return; } List<ItemDef> list = new List<ItemDef>(); foreach (ItemIndex item in body.inventory.itemAcquisitionOrder) { ItemDef itemDef = ItemCatalog.GetItemDef(item); list.Add(itemDef); } foreach (ItemDef item2 in list) { body.inventory.RemoveItem(item2, body.inventory.GetItemCount(item2)); } } public static void ClearInventory(this CharacterBody body, bool hidden) { //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_003c: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)body.inventory)) { return; } List<ItemDef> list = new List<ItemDef>(); foreach (ItemIndex item in body.inventory.itemAcquisitionOrder) { ItemDef itemDef = ItemCatalog.GetItemDef(item); if (hidden) { list.Add(itemDef); } else if (!itemDef.hidden) { list.Add(itemDef); } } foreach (ItemDef item2 in list) { body.inventory.RemoveItem(item2, body.inventory.GetItemCount(item2)); } } } } namespace YAU.Enumeration { public class EnumExtender<T> where T : Enum { private static int current; static EnumExtender() { current = -1; if (!typeof(T).IsEnum) { return; } Type underlyingType = Enum.GetUnderlyingType(typeof(T)); if (underlyingType == typeof(int)) { current = -1; foreach (object value4 in Enum.GetValues(typeof(T))) { int num = Convert.ToInt32(value4); if (num > current) { current = num; } } current += 5; return; } if (underlyingType == typeof(uint)) { current = 0; { foreach (object value5 in Enum.GetValues(typeof(T))) { uint num2 = Convert.ToUInt32(value5); if (num2 > current) { current = (int)(num2 * 2); } } return; } } current = -1; foreach (object value6 in Enum.GetValues(typeof(T))) { int num3 = Convert.ToInt32(value6); if (num3 > current) { current = num3; } } current += 5; } public static T Extend() { T result = (T)Enum.ToObject(typeof(T), current); current = ((Enum.GetUnderlyingType(typeof(T)) == typeof(uint)) ? (current * 2) : (current + 1)); return result; } } public static class EnumExtension { public static T Extend<T>() where T : Enum { return EnumExtender<T>.Extend(); } } } namespace YAU.ContentBases { public static class ContentScanner { public static void ScanContent(Assembly assembly, YAUContentPack pack, ConfigFile config) { string identifier = pack.identifier.ToUpper(); ScanTypes(assembly, delegate(ItemBase x) { x.Initialize(pack, config, identifier); }); ScanTypes(assembly, delegate(SkillBase x) { x.Initialize(pack, identifier); }); ScanTypes(assembly, delegate(InteractableBase x) { x.Initialize(); }); ScanTypes(assembly, delegate(ItemTierBase x) { x.Initialize(pack); }); ScanTypes(assembly, delegate(EquipmentBase x) { x.Initialize(config, pack, identifier); }); } public static void ScanTypes<T>(Assembly assembly, Action<T> action) { IEnumerable<Type> enumerable = from x in assembly.GetTypes() where !x.IsAbstract && x.IsSubclassOf(typeof(T)) select x; foreach (Type item in enumerable) { T obj = (T)Activator.CreateInstance(item); action(obj); } } } public abstract class EquipmentBase<T> : EquipmentBase where T : EquipmentBase<T> { public static T Instance { get; private set; } public EquipmentBase() { if (Instance == null) { Instance = this as T; } else { YAU.ModLogger.LogError((object)("Attempted to instantiate class " + typeof(T).Name + " when an instance already exists.")); } } } public abstract class EquipmentBase { public EquipmentDef EquipmentDef; internal ConfigFile config; internal YAUContentPack contentPack; public abstract string Name { get; } public abstract string PickupDescription { get; } public abstract string FullDescription { get; } public abstract string Lore { get; } public virtual bool IsLunar { get; } = false; public abstract float Cooldown { get; } public virtual bool CanBeRandomlyTriggered { get; } = true; public virtual UnlockableDef Unlockable { get; } = null; public abstract GameObject PickupModel { get; } public abstract Sprite PickupSprite { get; } public virtual bool CanDrop { get; } = true; public virtual bool CanAppearSingleplayer { get; } = true; public virtual bool CanAppearMultiplayer { get; } = true; public virtual ExpansionDef RequiredExpansion { get; } = null; public virtual string LangToken => GetType().Name; public virtual Func<EquipmentBase, bool> EnabledCallback { get; } = DefaultEnabledCallback; private static bool DefaultEnabledCallback(EquipmentBase self) { ConfigSectionAttribute customAttribute = self.GetType().GetCustomAttribute<ConfigSectionAttribute>(); if (customAttribute != null) { if (self.config.Bind<bool>(customAttribute.name, "Enabled", true, "Allow this equipment to appear in runs?").Value) { return true; } return false; } return true; } public void Initialize(ConfigFile config, YAUContentPack contentPack, string identifier) { //IL_0208: Unknown result type (might be due to invalid IL or missing references) //IL_0212: Expected O, but got Unknown this.config = config; this.contentPack = contentPack; EquipmentDef = ScriptableObject.CreateInstance<EquipmentDef>(); ((Object)EquipmentDef).name = LangToken; (identifier + "_EQUIPMENT_" + LangToken + "_NAME").Add(Name); (identifier + "_EQUIPMENT_" + LangToken + "_DESC").Add(FullDescription); (identifier + "_EQUIPMENT_" + LangToken + "_PICKUP").Add(PickupDescription); (identifier + "_EQUIPMENT_" + LangToken + "_LORE").Add(Lore); EquipmentDef.nameToken = identifier + "_EQUIPMENT_" + LangToken + "_NAME"; EquipmentDef.descriptionToken = identifier + "_EQUIPMENT_" + LangToken + "_DESC"; EquipmentDef.loreToken = identifier + "_EQUIPMENT_" + LangToken + "_LORE"; EquipmentDef.pickupToken = identifier + "_EQUIPMENT_" + LangToken + "_PICKUP"; EquipmentDef.isLunar = IsLunar; EquipmentDef.cooldown = Cooldown; EquipmentDef.canBeRandomlyTriggered = CanBeRandomlyTriggered; EquipmentDef.pickupIconSprite = PickupSprite; EquipmentDef.pickupModelPrefab = PickupModel; EquipmentDef.canDrop = CanDrop; EquipmentDef.appearsInMultiPlayer = CanAppearMultiplayer; EquipmentDef.appearsInSinglePlayer = CanAppearSingleplayer; EquipmentDef.unlockableDef = Unlockable; EquipmentDef.requiredExpansion = RequiredExpansion; if (EnabledCallback(this)) { contentPack.RegisterScriptableObject((ScriptableObject)(object)EquipmentDef); } EquipmentSlot.PerformEquipmentAction += (hook_PerformEquipmentAction)((orig_PerformEquipmentAction orig, EquipmentSlot self, EquipmentDef def) => ((Object)(object)def == (Object)(object)EquipmentDef) ? OnEquipmentActivation(self) : orig.Invoke(self, def)); PostCreation(); } public virtual void PostCreation() { } public virtual bool OnEquipmentActivation(EquipmentSlot activator) { return false; } } public abstract class GenericBase<T> : GenericBase where T : GenericBase<T> { public static T Instance { get; private set; } public GenericBase() { if (Instance == null) { Instance = this as T; } else { YAU.ModLogger.LogError((object)("Attempted to instantiate class " + typeof(T).Name + " when an instance already exists.")); } } } public abstract class GenericBase { public YAUContentPack contentPack; public ConfigFile config; public virtual void Initialize(YAUContentPack pack, ConfigFile config, string identifier) { PostCreation(); } public virtual void PostCreation() { } } public abstract class InteractableBase<T> : InteractableBase where T : InteractableBase<T> { public static T Instance { get; private set; } public InteractableBase() { if (Instance == null) { Instance = this as T; } else { YAU.ModLogger.LogError((object)("Attempted to instantiate class " + typeof(T).Name + " when an instance already exists.")); } } } public abstract class InteractableBase { private YAUContentPack contentPack; private ConfigFile config; public GameObject InteractablePrefab; public InteractableSpawnCard spawnCard; public DirectorCard directorCard; public CustomInteractable customInteractable; public abstract string Name { get; } public abstract string Context { get; } public virtual string LangToken => Name.ToUpper().RemoveUnsafeCharacters(); public abstract int CreditCost { get; } public abstract int MaxPerStage { get; } public abstract string CardName { get; } public abstract int Weight { get; } public abstract string[] ValidScenes { get; } public virtual bool IsChest { get; } public virtual string NameToken => "INTERACTABLE_" + LangToken + "_NAME"; public virtual string ContextToken => "INTERACTABLE_" + LangToken + "_CONTEXT"; public virtual NodeFlags RequiredFlags { get; } = (NodeFlags)0; public virtual NodeFlags ForbiddenFlags { get; } = (NodeFlags)8; public virtual int MinimumStageCompletions { get; } = 0; public void Initialize() { LanguageManager.RegisterLanguageToken(NameToken, Name); LanguageManager.RegisterLanguageToken(ContextToken, Context); Setup(); CreateSpawnCard(); CreateDirectorCard(); customInteractable = new CustomInteractable(spawnCard, directorCard, ValidScenes); CardManager.RegisterInteractable(customInteractable); } public virtual void Setup() { } public virtual void CreateDirectorCard() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown directorCard = new DirectorCard(); directorCard.selectionWeight = Weight; directorCard.spawnCard = (SpawnCard)(object)spawnCard; directorCard.preventOverhead = false; directorCard.minimumStageCompletions = MinimumStageCompletions; } public virtual void CreateSpawnCard() { //IL_0024: 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_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) spawnCard = ScriptableObject.CreateInstance<InteractableSpawnCard>(); ((SpawnCard)spawnCard).directorCreditCost = CreditCost; ((SpawnCard)spawnCard).eliteRules = (EliteRules)0; spawnCard.skipSpawnWhenSacrificeArtifactEnabled = IsChest; ((SpawnCard)spawnCard).sendOverNetwork = true; ((SpawnCard)spawnCard).occupyPosition = true; ((SpawnCard)spawnCard).forbiddenFlags = ForbiddenFlags; ((SpawnCard)spawnCard).requiredFlags = RequiredFlags; ((SpawnCard)spawnCard).hullSize = (HullClassification)0; ((SpawnCard)spawnCard).prefab = InteractablePrefab; ((SpawnCard)spawnCard).nodeGraphType = (GraphType)0; ((Object)spawnCard).name = CardName; } } public abstract class ItemBase<T> : ItemBase where T : ItemBase<T> { public static T Instance { get; private set; } public ItemBase() { if (Instance == null) { Instance = this as T; } else { YAU.ModLogger.LogError((object)("Attempted to instantiate class " + typeof(T).Name + " when an instance already exists.")); } } } public abstract class ItemBase { private YAUContentPack contentPack; private ConfigFile config; public ItemDef ItemDef; public abstract string Name { get; } public virtual string TokenName => GetType().Name; public virtual string ConfigSafeName => Name; public abstract string FullDescription { get; } public abstract string PickupDescription { get; } public abstract string Lore { get; } public abstract Sprite Icon { get; } public abstract ItemTier ItemTier { get; } public virtual ItemTierDef ItemTierDef { get; } = null; public abstract Enum[] ItemTags { get; } public abstract GameObject PickupModelPrefab { get; } public virtual UnlockableDef Unlockable { get; } = null; public virtual bool CanRemove { get; } = true; public virtual ExpansionDef RequiredExpansion { get; } = null; public virtual Func<ItemBase, bool> EnabledCallback { get; } = DefaultEnabledCallback; private static bool DefaultEnabledCallback(ItemBase self) { ConfigSectionAttribute customAttribute = self.GetType().GetCustomAttribute<ConfigSectionAttribute>(); if (customAttribute != null) { if (self.config.Bind<bool>(customAttribute.name, "Enabled", true, "Allow this item to appear in runs?").Value) { return true; } return false; } return true; } public void Initialize(YAUContentPack pack, ConfigFile config, string identifier) { //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_0145: Unknown result type (might be due to invalid IL or missing references) contentPack = pack; this.config = config; ItemDef val = ScriptableObject.CreateInstance<ItemDef>(); ((Object)val).name = TokenName; val.pickupIconSprite = Icon; val.pickupModelPrefab = PickupModelPrefab; if (Object.op_Implicit((Object)(object)ItemTierDef)) { val._itemTierDef = ItemTierDef; } else { val.deprecatedTier = ItemTier; } val.canRemove = CanRemove; string text = identifier + "_ITEM_" + TokenName + "_NAME"; string text2 = identifier + "_ITEM_" + TokenName + "_DESC"; string text3 = identifier + "_ITEM_" + TokenName + "_PICKUP"; string text4 = identifier + "_ITEM_" + TokenName + "_LORE"; LanguageManager.RegisterLanguageToken(text, Name); LanguageManager.RegisterLanguageToken(text2, FullDescription); LanguageManager.RegisterLanguageToken(text3, PickupDescription); LanguageManager.RegisterLanguageToken(text4, Lore); val.pickupToken = text3; val.nameToken = text; val.descriptionToken = text2; val.loreToken = text4; List<ItemTag> list = new List<ItemTag>(); Enum[] itemTags = ItemTags; foreach (Enum @enum in itemTags) { list.Add((ItemTag)(object)@enum); } val.tags = list.ToArray(); val.requiredExpansion = RequiredExpansion; ItemDef = val; if (EnabledCallback(this)) { contentPack.RegisterScriptableObject((ScriptableObject)(object)val); } PostCreation(); } public virtual void PostCreation() { } public bool HasItem(CharacterBody body) { return Object.op_Implicit((Object)(object)body.inventory) && body.inventory.GetItemCount(ItemDef) > 0; } public bool HasItem(CharacterMaster master) { return Object.op_Implicit((Object)(object)master.inventory) && master.inventory.GetItemCount(ItemDef) > 0; } public GameObject CreateIconCube(Sprite icon) { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Expected O, but got Unknown //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Expected O, but got Unknown //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) GameObject val = GameObject.CreatePrimitive((PrimitiveType)3); GameObject val2 = RuntimePrefabManager.CreatePrefab(new GameObject(ConfigSafeName + "_IconCube"), ConfigSafeName + "_IconCube"); val.transform.SetParent(val2.transform); Material val3 = new Material(Shader.HGStandard); val3.mainTexture = (Texture)(object)icon.texture; ((Renderer)val.GetComponent<MeshRenderer>()).material = val3; Transform transform = val.transform; transform.localScale *= 2f; return val2; } public GameObject CreateIconCube(Texture icon) { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Expected O, but got Unknown //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Expected O, but got Unknown //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) GameObject val = GameObject.CreatePrimitive((PrimitiveType)3); GameObject val2 = RuntimePrefabManager.CreatePrefab(new GameObject(ConfigSafeName + "_IconCube"), ConfigSafeName + "_IconCube"); val.transform.SetParent(val2.transform); Material val3 = new Material(Shader.HGStandard); val3.mainTexture = icon; ((Renderer)val.GetComponent<MeshRenderer>()).material = val3; Transform transform = val.transform; transform.localScale *= 2f; return val2; } public GameObject CreateIconPlane(Sprite icon) { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Expected O, but got Unknown //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Expected O, but got Unknown //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_007b: 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) GameObject val = GameObject.CreatePrimitive((PrimitiveType)4); GameObject val2 = RuntimePrefabManager.CreatePrefab(new GameObject(ConfigSafeName + "_IconPlane"), ConfigSafeName + "_IconPlane"); val.transform.SetParent(val2.transform); Material val3 = new Material(Shader.HGStandard); val3.mainTexture = (Texture)(object)icon.texture; ((Renderer)val.GetComponent<MeshRenderer>()).material = val3; Transform transform = val.transform; transform.localScale *= 2f; val.transform.localRotation = Quaternion.Euler(-90f, 0f, 0f); return val2; } public GameObject CreateIconPlane(Texture icon) { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Expected O, but got Unknown //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Expected O, but got Unknown //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) GameObject val = GameObject.CreatePrimitive((PrimitiveType)4); GameObject val2 = RuntimePrefabManager.CreatePrefab(new GameObject(ConfigSafeName + "_IconPlane"), ConfigSafeName + "_IconPlane"); val.transform.SetParent(val2.transform); Material val3 = new Material(Shader.HGStandard); val3.mainTexture = icon; ((Renderer)val.GetComponent<MeshRenderer>()).material = val3; Transform transform = val.transform; transform.localScale *= 2f; val.transform.localRotation = Quaternion.Euler(-90f, 0f, 0f); return val2; } } public abstract class ItemTierBase<T> : ItemTierBase where T : ItemTierBase<T> { public static T Instance { get; private set; } public ItemTierBase() { if (Instance == null) { Instance = this as T; } else { YAU.ModLogger.LogError((object)("Attempted to instantiate class " + typeof(T).Name + " when an instance already exists.")); } } } public abstract class ItemTierBase { public static ItemTierDef tierDef; public abstract ColorIndex ColorIndex { get; } public abstract ColorIndex DarkColorIndex { get; } public virtual bool CanRestack { get; } = true; public abstract bool CanScrap { get; } public abstract GameObject DropletPrefab { get; } public abstract GameObject HighlightPrefab { get; } public abstract PickupRules PickupRules { get; } public abstract Texture2D BackgroundTexture { get; } public virtual bool IsDroppable { get; } = true; public abstract string Name { get; } public static ItemTier itemTier => tierDef.tier; public void Initialize(YAUContentPack pack) { //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_0021: 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) //IL_0051: 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) tierDef = ScriptableObject.CreateInstance<ItemTierDef>(); tierDef.colorIndex = ColorIndex; tierDef.darkColorIndex = DarkColorIndex; tierDef.canRestack = CanRestack; tierDef.canScrap = CanScrap; tierDef.pickupRules = PickupRules; tierDef.bgIconTexture = (Texture)(object)BackgroundTexture; tierDef.tier = (ItemTier)10; ((Object)tierDef).name = Name; tierDef.dropletDisplayPrefab = DropletPrefab; tierDef.highlightPrefab = HighlightPrefab; tierDef.isDroppable = IsDroppable; Setup(); pack.RegisterScriptableObject((ScriptableObject)(object)tierDef); } public virtual void Setup() { } } public abstract class SkillBase<T> : SkillBase where T : SkillBase<T> { public static T Instance { get; private set; } public SkillBase() { if (Instance == null) { Instance = this as T; } else { YAU.ModLogger.LogError((object)("Attempted to instantiate class " + typeof(T).Name + " when an instance already exists.")); } } } public abstract class SkillBase { public SkillDef skillDef; private SerializableEntityStateType serializableActivationType; public virtual Type SkillType { get; } = typeof(SkillDef); public abstract string Name { get; } public abstract string Description { get; } public virtual string LangToken => Name.ToUpper().RemoveUnsafeCharacters(); public abstract float Cooldown { get; } public virtual int MaxStock { get; } = 1; public virtual int RechargeStock { get; } = 1; public virtual int StockToConsume { get; } = 1; public virtual string[] Keywords { get; } = null; public abstract Sprite Icon { get; } public abstract Type ActivationState { get; } public abstract string MachineName { get; } public virtual bool CanceledFromSprinting { get; } = true; public virtual bool CancelSprinting { get; } = true; public virtual bool Agile { get; } = false; public virtual bool Combat { get; } = true; public virtual bool ForceSprint { get; } = false; public virtual bool DelayCooldown { get; } = false; public virtual UnlockableDef Unlock { get; } = null; public void Initialize(YAUContentPack pack, string identifier) { //IL_0008: 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) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Expected O, but got Unknown //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) serializableActivationType = new SerializableEntityStateType(ActivationState); pack.RegisterEntityState(ActivationState); skillDef = (SkillDef)ScriptableObject.CreateInstance(SkillType); skillDef.skillName = Name; skillDef.skillNameToken = identifier + "_SKILL_" + LangToken + "_NAME"; skillDef.skillDescriptionToken = identifier + "_SKILL_" + LangToken + "_DESC"; LanguageManager.RegisterLanguageToken(skillDef.skillNameToken, Name); LanguageManager.RegisterLanguageToken(skillDef.skillDescriptionToken, Description); skillDef.keywordTokens = Keywords; skillDef.activationState = serializableActivationType; skillDef.activationStateMachineName = MachineName; skillDef.icon = Icon; skillDef.isCombatSkill = Combat; skillDef.baseMaxStock = MaxStock; skillDef.rechargeStock = RechargeStock; skillDef.baseRechargeInterval = Cooldown; skillDef.canceledFromSprinting = !Agile && CanceledFromSprinting; skillDef.cancelSprintingOnActivation = !Agile && CancelSprinting; skillDef.forceSprintDuringState = ForceSprint; skillDef.resetCooldownTimerOnUse = true; skillDef.beginSkillCooldownOnSkillEnd = DelayCooldown; Setup(); pack.RegisterScriptableObject((ScriptableObject)(object)skillDef); } public virtual void Setup() { } public void AddToBody(GameObject prefab, SkillSlot slot) { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Expected I4, but got Unknown //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Expected O, but got Unknown //IL_00b9: 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) SkillLocator component = prefab.GetComponent<SkillLocator>(); if (Object.op_Implicit((Object)(object)component)) { if (1 == 0) { } GenericSkill val = (GenericSkill)((int)slot switch { 0 => component.primary, 1 => component.secondary, 2 => component.utility, 3 => component.special, _ => null, }); if (1 == 0) { } GenericSkill val2 = val; if (Object.op_Implicit((Object)(object)val2) && Object.op_Implicit((Object)(object)val2.skillFamily)) { Variant val3 = default(Variant); val3.skillDef = skillDef; val3.unlockableDef = Unlock; ((Variant)(ref val3)).viewableNode = new Node(skillDef.skillNameToken, false, (Node)null); Variant val4 = val3; ArrayUtils.ArrayAppend<Variant>(ref val2._skillFamily.variants, ref val4); } } } public bool IsBodyUsing(CharacterBody body) { return body.HasSkillEquipped(skillDef); } } } namespace YAU.Content { public class ContentPackManager { private static List<YAUContentPack> contentPacks = new List<YAUContentPack>(); public static YAUContentPack CreateContentPack(Assembly assembly) { YAUContentPack yAUContentPack = new YAUContentPack(assembly); YAU.ModLogger.LogMessage((object)("Created content pack for assembly: " + assembly.FullName)); contentPacks.Add(yAUContentPack); return yAUContentPack; } public static YAUContentPack CreateContentPack(string identifier) { YAUContentPack yAUContentPack = new YAUContentPack(identifier); YAU.ModLogger.LogMessage((object)("Created content pack: " + identifier)); contentPacks.Add(yAUContentPack); return yAUContentPack; } public static YAUContentPack CreateContentPack(Assembly assembly, string identifier) { YAUContentPack yAUContentPack = new YAUContentPack(assembly, identifier); YAU.ModLogger.LogMessage((object)("Created content pack " + identifier + " for assembly " + assembly.FullName)); contentPacks.Add(yAUContentPack); return yAUContentPack; } } public class YAUContentPack : IContentPackProvider { private string _identifier; private ContentPack pack = new ContentPack(); private Assembly assembly; public List<ItemDef> itemDefs = new List<ItemDef>(); public List<SurvivorDef> survivorDefs = new List<SurvivorDef>(); public List<EquipmentDef> equipmentDefs = new List<EquipmentDef>(); public List<ArtifactDef> artifactDefs = new List<ArtifactDef>(); public List<BuffDef> buffDefs = new List<BuffDef>(); public List<UnlockableDef> unlockableDefs = new List<UnlockableDef>(); public List<SkillDef> skillDefs = new List<SkillDef>(); public List<EntitlementDef> entitlementDefs = new List<EntitlementDef>(); public List<EliteDef> eliteDefs = new List<EliteDef>(); public List<GameEndingDef> gameEndingDefs = new List<GameEndingDef>(); public List<GameObject> bodyPrefabs = new List<GameObject>(); public List<GameObject> masterPrefabs = new List<GameObject>(); public List<GameObject> projectilePrefabs = new List<GameObject>(); public List<GameObject> gameModePrefabs = new List<GameObject>(); public List<SkillFamily> skillFamilies = new List<SkillFamily>(); public List<Type> entityStates = new List<Type>(); public List<ItemTierDef> itemTierDefs = new List<ItemTierDef>(); public List<EffectDef> effectDefs = new List<EffectDef>(); public List<GameObject> networkedObjects = new List<GameObject>(); public List<SceneDef> sceneDefs = new List<SceneDef>(); public string identifier { get { return _identifier; } set { _identifier = value; } } public YAUContentPack(Assembly assembly) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Expected O, but got Unknown //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Expected O, but got Unknown this.assembly = assembly; identifier = assembly.GetName().CodeBase; ContentManager.collectContentPackProviders += (CollectContentPackProvidersDelegate)delegate(AddContentPackProviderDelegate addContentPackProvider) { addContentPackProvider.Invoke((IContentPackProvider)(object)this); }; } public YAUContentPack(string identifier) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Expected O, but got Unknown //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Expected O, but got Unknown this.identifier = identifier; ContentManager.collectContentPackProviders += (CollectContentPackProvidersDelegate)delegate(AddContentPackProviderDelegate addContentPackProvider) { addContentPackProvider.Invoke((IContentPackProvider)(object)this); }; } public YAUContentPack(Assembly assembly, string identifier) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Expected O, but got Unknown //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Expected O, but got Unknown this.assembly = assembly; this.identifier = identifier; ContentManager.collectContentPackProviders += (CollectContentPackProvidersDelegate)delegate(AddContentPackProviderDelegate addContentPackProvider) { addContentPackProvider.Invoke((IContentPackProvider)(object)this); }; } internal void RegisterNetworkedObject(GameObject asset) { networkedObjects.Add(asset); } public void RegisterScriptableObject(ScriptableObject asset) { if (Object.op_Implicit((Object)(object)((asset is ItemDef) ? asset : null))) { itemDefs.Add((ItemDef)(object)((asset is ItemDef) ? asset : null)); } if (Object.op_Implicit((Object)(object)((asset is SurvivorDef) ? asset : null))) { survivorDefs.Add((SurvivorDef)(object)((asset is SurvivorDef) ? asset : null)); } if (Object.op_Implicit((Object)(object)((asset is BuffDef) ? asset : null))) { buffDefs.Add((BuffDef)(object)((asset is BuffDef) ? asset : null)); } if (Object.op_Implicit((Object)(object)((asset is SkillDef) ? asset : null))) { skillDefs.Add((SkillDef)(object)((asset is SkillDef) ? asset : null)); } if (Object.op_Implicit((Object)(object)((asset is GameEndingDef) ? asset : null))) { gameEndingDefs.Add((GameEndingDef)(object)((asset is GameEndingDef) ? asset : null)); } if (Object.op_Implicit((Object)(object)((asset is UnlockableDef) ? asset : null))) { unlockableDefs.Add((UnlockableDef)(object)((asset is UnlockableDef) ? asset : null)); } if (Object.op_Implicit((Object)(object)((asset is EliteDef) ? asset : null))) { eliteDefs.Add((EliteDef)(object)((asset is EliteDef) ? asset : null)); } if (Object.op_Implicit((Object)(object)((asset is EntitlementDef) ? asset : null))) { entitlementDefs.Add((EntitlementDef)(object)((asset is EntitlementDef) ? asset : null)); } if (Object.op_Implicit((Object)(object)((asset is ItemTierDef) ? asset : null))) { itemTierDefs.Add((ItemTierDef)(object)((asset is ItemTierDef) ? asset : null)); } if (Object.op_Implicit((Object)(object)((asset is EquipmentDef) ? asset : null))) { equipmentDefs.Add((EquipmentDef)(object)((asset is EquipmentDef) ? asset : null)); } if (asset is SceneDef) { sceneDefs.Add((SceneDef)(object)((asset is SceneDef) ? asset : null)); } } public void RegisterGameObject(GameObject asset) { //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Expected O, but got Unknown if (Object.op_Implicit((Object)(object)asset.GetComponent<CharacterBody>())) { bodyPrefabs.Add(asset); } if (Object.op_Implicit((Object)(object)asset.GetComponent<CharacterMaster>())) { masterPrefabs.Add(asset); } if (Object.op_Implicit((Object)(object)asset.GetComponent<ProjectileController>())) { projectilePrefabs.Add(asset); } if (Object.op_Implicit((Object)(object)asset.GetComponent<Run>())) { gameModePrefabs.Add(asset); } if (Object.op_Implicit((Object)(object)asset.GetComponent<EffectComponent>())) { EffectDef val = new EffectDef(); val._prefab = asset; val.prefabName = ((Object)asset).name; val.prefabEffectComponent = asset.GetComponent<EffectComponent>(); effectDefs.Add(val); } } public void RegisterSkillFamily(SkillFamily asset) { skillFamilies.Add(asset); } public void RegisterEntityState<T>() where T : EntityState { entityStates.Add(typeof(T)); } public void RegisterEntityState(Type stateType) { if (!stateType.IsAssignableFrom(typeof(EntityState))) { throw new Exception("Attempted to register state that wasn't assignable from type EntityState. This isn't allowed"); } entityStates.Add(stateType); } public IEnumerator LoadStaticContentAsync(LoadStaticContentAsyncArgs args) { pack.artifactDefs.Add(artifactDefs.ToArray()); pack.itemDefs.Add(itemDefs.ToArray()); pack.equipmentDefs.Add(equipmentDefs.ToArray()); pack.survivorDefs.Add(survivorDefs.ToArray()); pack.buffDefs.Add(buffDefs.ToArray()); pack.unlockableDefs.Add(unlockableDefs.ToArray()); pack.skillDefs.Add(skillDefs.ToArray()); pack.entitlementDefs.Add(entitlementDefs.ToArray()); pack.eliteDefs.Add(eliteDefs.ToArray()); pack.gameEndingDefs.Add(gameEndingDefs.ToArray()); pack.gameModePrefabs.Add(gameModePrefabs.ToArray()); pack.bodyPrefabs.Add(bodyPrefabs.ToArray()); pack.masterPrefabs.Add(masterPrefabs.ToArray()); pack.projectilePrefabs.Add(projectilePrefabs.ToArray()); pack.skillFamilies.Add(skillFamilies.ToArray()); pack.entityStateTypes.Add(entityStates.ToArray()); pack.itemTierDefs.Add(itemTierDefs.ToArray()); pack.effectDefs.Add(effectDefs.ToArray()); pack.networkedObjectPrefabs.Add(networkedObjects.ToArray()); pack.sceneDefs.Add(sceneDefs.ToArray()); args.ReportProgress(1f); YAU.ModLogger.LogMessage((object)("Loading content pack: " + identifier)); yield break; } public IEnumerator GenerateContentPackAsync(GetContentPackAsyncArgs args) { pack.identifier = identifier; ContentPack.Copy(pack, args.output); args.ReportProgress(1f); yield break; } public IEnumerator FinalizeAsync(FinalizeAsyncArgs args) { args.ReportProgress(1f); yield break; } } } namespace YAU.Constants { 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 Scenes { public static string AphelianSanctuary = "ancientloft"; public static string VoidFields = "arena"; public static string DistantRoost = "blackbeach"; public static string DistantRoostAlt = "blackbeach2"; public static string AbyssalDepths = "dampcavesimple"; public static string WetlandAspect = "foggyswamp"; public static string RallypointDelta = "frozenwall"; public static string TitanicPlains = "golemplains"; public static string TitanicPlainsAlt = "golemplains2"; public static string AbandonedAqueduct = "goolake"; public static string Commencement = "moon2"; public static string SunderedGrove = "rootjungle"; public static string SirensCall = "shipgraveyard"; public static string SkyMeadow = "skymeadow"; public static string SiphonedForest = "snowyforest"; public static string SulfurPools = "sulfurpools"; public static string VoidLocus = "voidstage"; public static string Planetarium = "voidraid"; public static string ScorchedAcres = "wispgraveyard"; public static string BulwarksAmbry = "artifactword"; public static string Bazaar = "bazaar"; public static string GildedCoast = "goldshores"; public static string MomentWhole = "limbo"; public static string MomentFractured = "mysteryspace"; public static string[] AllStandard = new string[18] { AphelianSanctuary, VoidFields, DistantRoost, DistantRoostAlt, AbyssalDepths, WetlandAspect, RallypointDelta, TitanicPlains, TitanicPlainsAlt, AbandonedAqueduct, Commencement, SunderedGrove, SkyMeadow, SirensCall, SiphonedForest, SulfurPools, ScorchedAcres, BulwarksAmbry }; } public static class WwiseEvents { 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 Kill_loops = 3633988413u; 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_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_clayGrenadier_attack1_launch = 1826024586u; public static uint Play_clayGrenadier_attack2_chargeup = 1264580837u; public static uint Play_clayGrenadier_attack2_explode = 1475316029u; public static uint Play_clayGrenadier_attack2_throw = 3151664278u; public static uint Play_clayGrenadier_death = 4008628731u; public static uint Play_clayGrenadier_idle_VO = 2834945965u; public static uint Play_clayGrenadier_impact = 216053097u; public static uint Play_clayGrenadier_spawn = 1404722828u; public static uint Play_clayGrenadier_step = 2998452545u; public static uint Play_commando_M1 = 4060526873u; public static uint Play_commando_M2 = 4060526874u; public static uint Play_commando_M2_grenade_beep = 767972256u; public static uint Play_commando_M2_grenade_bounce = 2406813524u; public static uint Play_commando_M2_grenade_explo = 1805372450u; public static uint Play_commando_M2_grenade_throw = 2891623396u; public static uint Play_commando_M2_impact = 3856027043u; public static uint Play_commando_R = 1872804647u; public static uint Play_commando_R_stun = 856897882u; public static uint Play_commando_shift = 4030773325u; public static uint Play_deathProjectile_activate = 4274104951u; public static uint Play_deathProjectile_activeLoop = 4274851604u; public static uint Play_deathProjectile_exit = 2255177404u; public static uint Play_deathProjectile_pulse = 3311061351u; public static uint Play_deathProjectile_throw = 3241022660u; public static uint Play_drone_active_loop = 1397126242u; public static uint Play_drone_attack = 2284311463u; public static uint Play_drone_deathpt1 = 263213456u; public static uint Play_drone_deathpt2 = 263213459u; public static uint Play_drone_repair = 1856960692u; public static uint Play_elite_antiHeal_spawn = 691984684u; public static uint Play_elite_antiHeal_turret_die = 3657700870u; public static uint Play_elite_antiHeal_turret_shot = 669631748u; public static uint Play_elite_antiHeal_turret_spawn = 308571281u; public static uint Play_elite_antiHeal_urchin_activeLoop = 3295205085u; public static uint Play_elite_antiHeal_urchin_land = 962572750u; public static uint Play_elite_antiHeal_urchin_spawn = 569941158u; public static uint Play_elite_haunt_ghost_convert = 2762055418u; public static uint Play_elite_haunt_hauntorb_activeLoop = 543514253u; public static uint Play_elite_haunt_spawn = 265705826u; public static uint Play_emergency_drone_heal_loop = 2145196828u; public static uint Play_engi_M1_chargeLoop = 1143106461u; public static uint Play_engi_M1_chargeStock = 1582860475u; public static uint Play_engi_M1_explo = 2460302619u; public static uint Play_engi_M1_land = 1224228428u; public static uint Play_engi_M1_shot = 2716114991u; public static uint Play_engi_M2_arm = 801551500u; public static uint Play_engi_M2_explo = 1876447108u; public static uint Play_engi_M2_land = 1942736441u; public static uint Play_engi_M2_spider_dash = 2039062976u; public static uint Play_engi_M2_throw = 2382761590u; public static uint Play_engi_R_activate = 3298597612u; public static uint Play_engi_R_place = 643340344u; public static uint Play_engi_R_turret_death = 4245687690u; public static uint Play_engi_R_turret_rotate_start = 3711319792u; public static uint Play_engi_R_turret_rotate_stop = 3202539612u; public static uint Play_engi_R_turret_shot = 3407965588u; public static uint Play_engi_R_turret_spawn = 4130025569u; public static uint Play_engi_R_walkingTurret_laser_end = 3407461464u; public static uint Play_engi_R_walkingTurret_laser_start = 1126280707u; public static uint Play_engi_R_walkingTurret_step = 2412533739u; public static uint Play_engi_seekerMissile_explode = 2273471583u; public static uint Play_engi_seekerMissile_HUD_close = 872995266u; public static uint Play_engi_seekerMissile_HUD_loop = 3389061272u; public static uint Play_engi_seekerMissile_HUD_open = 1095370646u; public static uint Play_engi_seekerMissile_lockOn = 407672846u; public static uint Play_engi_seekerMissile_shoot = 2951980765u; public static uint Play_engi_shift_end = 1395092584u; public static uint Play_engi_shift_hit = 1846263908u; public static uint Play_engi_shift_start = 729856403u; public static uint Play_engi_sprint_end = 1589710056u; public static uint Play_engi_sprint_start = 1694535187u; public static uint Play_env_dampCave_crystalLight_loop = 3080548713u; public static uint Play_env_dampCave_steamVent_loop = 2932480344u; public static uint Play_env_desert_wind_gust = 363197352u; public static uint Play_env_fan_activate = 1753248287u; public static uint Play_env_geyser_launch = 3684346483u; public static uint Play_env_geyser_loop = 2001038684u; public static uint Play_env_gooWaterfall_loop = 3671383336u; public static uint Play_env_hiddenLab_laptop_activate = 1191732790u; public static uint Play_env_hiddenLab_laptop_active_loop = 3198839584u; public static uint Play_env_hiddenLab_laptop_button_cycle = 1729294674u; public static uint Play_env_hiddenLab_laptop_sequence_fail = 3795285125u; public static uint Play_env_hiddenLab_laptop_sequence_lock = 535095044u; public static uint Play_env_hiddenLab_laptop_sequence_success = 2883328426u; public static uint Play_env_hiddenLab_TP_active_loop = 1656660852u; public static uint Play_env_hiddenLab_TP_VO = 1027544848u; public static uint Play_env_light_flicker = 1529618755u; public static uint Play_env_moon_planet_destroying_loop = 56354104u; public static uint Play_env_moon_shuttle_engineIdle_loop = 979450395u; public static uint Play_env_roach_scatter = 1578037490u; public static uint Play_env_rootJungle_mushroom_bounce = 1759858961u; public static uint Play_env_ship_interior_loop = 2037610980u; public static uint Play_env_ship_pulsing_energy_loop = 2105493367u; public static uint Play_env_teleporter_active_button = 2694206298u; public static uint Play_env_vase_shatter = 3320446911u; public static uint Play_fireballsOnHit_aliveLoop = 3330327238u; public static uint Play_fireballsOnHit_impact = 1308908475u; public static uint Play_fireballsOnHit_pool_aliveLoop = 289286259u; public static uint Play_fireballsOnHit_shoot = 2071974498u; public static uint Play_flyingVermin_attack1_explo = 2325827633u; public static uint Play_flyingVermin_attack1_loop = 959625319u; public static uint Play_flyingVermin_attack1_start = 2469277671u; public static uint Play_flyingVermin_death = 2852936633u; public static uint Play_flyingVermin_idle_VO = 1488967u; public static uint Play_flyingVermin_impact = 1482226543u; public static uint Play_flyingVermin_spawn = 2569421798u; public static uint Play_flyingVermin_wingFlap = 2482198841u; public static uint Play_golem_clap = 3011704479u; public static uint Play_golem_death = 4251967229u; public static uint Play_golem_idle = 4196494707u; public static uint Play_golem_impact = 790462995u; public static uint Play_golem_laser_charge = 3644347705u; public static uint Play_golem_laser_fire = 3454198445u; public static uint Play_golem_spawn = 1773057618u; public static uint Play_golem_step = 4056609419u; public static uint Play_grandParent_attack1_boulderLarge_impact = 124225148u; public static uint Play_grandParent_attack1_boulderSmall_impact = 3157690056u; public static uint Play_grandParent_attack1_flightLoop = 1108205171u; public static uint Play_grandParent_attack1_throw = 659529741u; public static uint Play_grandParent_attack1_windUp = 1356813166u; public static uint Play_grandParent_attack2_loop = 1723739392u; public static uint Play_grandParent_attack2_spawn = 1710100275u; public static uint Play_grandParent_attack3_spawn = 1361990298u; public static uint Play_grandParent_attack3_sun_activeLoop = 3203163036u; public static uint Play_grandParent_attack3_sun_damageLoop = 406969537u; public static uint Play_grandParent_attack3_sun_destroy = 2118002602u; public static uint Play_grandParent_attack3_sun_spawn = 2441414753u; public static uint Play_grandParent_death = 1713910539u; public static uint Play_grandparent_handStep = 2848869794u; public static uint Play_grandParent_idle_VO = 779063965u; public static uint Play_grandParent_impact = 2762774137u; public static uint Play_grandparent_rotate = 19433626u; public static uint Play_grandParent_spawn = 3902005852u; public static uint Play_gravekeeper_attack1_close = 351879350u; public static uint Play_gravekeeper_attack1_explode = 1862008297u; public static uint Play_gravekeeper_attack1_fire = 187415678u; public static uint Play_gravekeeper_attack1_fly_loop = 48308530u; public static uint Play_gravekeeper_attack1_open = 3258261602u; public static uint Play_gravekeeper_attack2_charge = 843010431u; public static uint Play_gravekeeper_attack2_fly_loop = 4016868819u; public static uint Play_gravekeeper_attack2_impact = 3666498161u; public static uint Play_gravekeeper_attack2_shoot = 1854147796u; public static uint Play_gravekeeper_attack2_shoot_singleChain = 157111274u; public static uint Play_gravekeeper_death_01 = 2997386486u; public static uint Play_gravekeeper_death_impact_01 = 886079489u; public static uint Play_gravekeeper_idle_loop = 1267131317u; public static uint Play_gravekeeper_idle_twitch = 416657018u; public static uint Play_gravekeeper_idle_VO = 3630636154u; public static uint Play_gravekeeper_impact_body = 205671591u; public static uint Play_gravekeeper_impact_canister = 3811738432u; public static uint Play_gravekeeper_jump = 3152593038u; public static uint Play_gravekeeper_land = 1220364025u; public static uint Play_gravekeeper_spawn_01 = 833992567u; public static uint Play_gravekeeper_step = 3893993616u; public static uint Play_greater_wisp_active_loop = 742303752u; public static uint Play_greater_wisp_attack = 1232102909u; public static uint Play_greater_wisp_death = 1444167041u; public static uint Play_greater_wisp_idle = 731002447u; public static uint Play_greater_wisp_impact = 2158457527u; public static uint Play_gup_attack1_charge = 3438622745u; public static uint Play_gup_attack1_shoot = 950894418u; public static uint Play_gup_death = 256612421u; public static uint Play_gup_idle_VO = 1624048235u; public static uint Play_gup_impact = 3673819067u; public static uint Play_gup_spawn = 305164250u; public static uint Play_gup_step = 1253711379u; public static uint Play_healing_drone_heal_loop = 5845797u; public static uint Play_heretic_sprint_end = 789491861u; public static uint Play_heretic_sprint_start = 19266142u; public static uint Play_heretic_squawk = 48852143u; public static uint Play_heretic_step = 303018737u; public static uint Play_heretic_step_sprint = 3042543384u; public static uint Play_heretic_transform = 1223237669u; public static uint Play_hermitCrab_attack = 2071920904u; public static uint Play_hermitCrab_attack_explo = 1299570915u; public static uint Play_hermitCrab_attack_flight_loop = 860273710u; public static uint Play_hermitCrab_burrow = 1102794849u; public static uint Play_hermitCrab_death = 216810634u; public static uint Play_hermitCrab_idle_VO = 3628647800u; public static uint Play_hermitCrab_impact = 3575639578u; public static uint Play_hermitCrab_spawn = 101148513u; public static uint Play_hermitCrab_step = 1911862778u; public static uint Play_hermitCrab_unburrow = 2901751544u; public static uint Play_huntress_m1_flight_loop = 3991633291u; public static uint Play_huntress_m1_ready = 1580388997u; public static uint Play_huntress_m1_shoot = 2005806765u; public static uint Play_huntress_m1_unready = 3092701574u; public static uint Play_huntress_m2_flight_loop = 3255539260u; public static uint Play_huntress_m2_impact = 3716108135u; public static uint Play_huntress_m2_throw = 2486049627u; public static uint Play_huntress_R_aim_loop = 298764410u; public static uint Play_huntress_R_jump = 3742373894u; public static uint Play_huntress_R_rain_loop = 1245670489u; public static uint Play_huntress_R_rain_start = 282745493u; public static uint Play_huntress_R_snipe_readyBow = 2533424749u; public static uint Play_huntress_R_snipe_shoot = 1625097243u; public static uint Play_huntress_shift_end = 976427987u; public static uint Play_huntress_shift_mini_blink = 4022209774u; public static uint Play_huntress_shift_start = 201442408u; public static uint Play_imp_attack = 2774179431u; public static uint Play_imp_attack_blink = 3629323260u; public static uint Play_imp_attack_tell = 940622283u; public static uint Play_imp_death = 3861350375u; public static uint Play_imp_idle_VO = 52008113u; public static uint Play_imp_impact = 3120622133u; public static uint Play_imp_overlord_attack1_land = 1106684340u; public static uint Play_imp_overlord_attack1_pop = 4199685168u; public static uint Play_imp_overlord_attack1_throw = 14820277u; public static uint Play_imp_overlord_attack2_smash = 2956702486u; public static uint Play_imp_overlord_attack2_tell = 819196927u; public static uint Play_imp_overlord_death = 1533958787u; public static uint Play_imp_overlord_idle_loop = 632481506u; public static uint Play_imp_overlord_idle_VO = 2719593925u; public static uint Play_imp_overlord_impact = 4009116561u; public static uint Play_imp_overlord_spawn = 583303092u; public static uint Play_imp_overlord_teleport_end = 200938724u; public static uint Play_imp_overlord_teleport_start = 2511118231u; public static uint Play_imp_spawn = 194906576u; public static uint Play_item_goldgat_fire = 981107519u; public static uint Play_item_goldgat_winddown = 917072005u; public static uint Play_item_goldgat_windup = 285162482u; public static uint Play_item_laserTurbine_charge_loop = 3907556148u; public static uint Play_item_lunar_focusedConvergence = 3972729947u; public static uint Play_item_lunar_primaryReplace_explode = 4293819245u; public static uint Play_item_lunar_primaryReplace_impact = 1243809256u; public static uint Play_item_lunar_primaryReplace_shoot = 320958651u; public static uint Play_item_lunar_secondaryReplace_activate = 2823364229u; public static uint Play_item_lunar_secondaryReplace_active_loop = 3372252345u; public static uint Play_item_lunar_secondaryReplace_explode = 1538162561u; public static uint Play_item_lunar_secondaryReplace_impact = 1781545244u; public static uint Play_item_lunar_secondaryReplace_throw = 3617280490u; public static uint Play_item_lunar_specialReplace_apply = 838666715u; public static uint Play_item_lunar_specialReplace_explode = 445399200u; public static uint Play_item_lunar_use_utilityReplacement_end = 3344329139u; public static uint Play_item_lunar_use_utilityReplacement_start = 1158437704u; public static uint Play_item_proc_armorReduction_hit = 3817389283u; public static uint Play_item_proc_armorReduction_shatter = 3687264935u; public static uint Play_item_proc_attackAndMoveBuff = 1867859700u; public static uint Play_item_proc_bandolier_Loop = 1800237208u; public static uint Play_item_proc_bandolierLand = 2260567040u; public static uint Play_item_proc_bandolierPickup = 2389173779u; public static uint Play_item_proc_bandolierSpawn = 3156422452u; public static uint Play_item_proc_bear = 2639048063u; public static uint Play_item_proc_behemoth = 2630955643u; public static uint Play_item_proc_bleed = 493503047u; public static uint Play_item_proc_bounceChain = 1835757740u; public static uint Play_item_proc_bounceChainPull = 2911094985u; public static uint Play_item_proc_chain_lightning = 4217941291u; public static uint Play_item_proc_clover = 1253570078u; public static uint Play_item_proc_crit_attack_speed1 = 4131003629u; public static uint Play_item_proc_crit_attack_speed2 = 4131003630u; public static uint Play_item_proc_crit_attack_speed3 = 4131003631u; public static uint Play_item_proc_crit_cooldown = 3641613923u; public static uint Play_item_proc_crit_heal = 4185184582u; public static uint Play_item_proc_crowbar = 3038522607u; public static uint Play_item_proc_dagger_fly = 893157561u; public static uint Play_item_proc_dagger_impact = 1843195976u; public static uint Play_item_proc_dagger_spawn = 2440278163u; public static uint Play_item_proc_deathMark = 4156567482u; public static uint Play_item_proc_delicateWatch_break = 4145952825u; public static uint Play_item_proc_equipMag = 3393425640u; public static uint Play_item_proc_extraLife = 10812723u; public static uint Play_item_proc_fallboots_activate = 1060806871u; public static uint Play_item_proc_fallboots_impact = 1203791954u; public static uint Play_item_proc_feather = 4205703066u; public static uint Play_item_proc_fireRingTornado_end = 3174138708u; public static uint Play_item_proc_fireRingTornado_start = 1856621255u; public static uint Play_item_proc_firework_explo = 4073142045u; public static uint Play_item_proc_firework_fire = 3289149845u; public static uint Play_item_proc_firework_fly_loop = 366165761u; public static uint Play_item_proc_ghostOnKill = 156474425u; public static uint Play_item_proc_goldOnHurt = 445783307u; public static uint Play_item_proc_guillotine = 3052861231u; public static uint Play_item_proc_healingPotion = 2286437436u; public static uint Play_item_proc_hoof = 2977775053u; public static uint Play_item_proc_iceRingSpear = 1422900995u; public static uint Play_item_proc_icicle = 4195