Decompiled source of Boss Rush v1.3.2
YAU.dll
Decompiled 2 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
BossRush.dll
Decompiled 2 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() { //IL_06b2: Unknown result type (might be due to invalid IL or missing references) 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)) { 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)) { waves[waves.Count - 1].WaveSpawns[0].MasterPrefab = MasterCatalog.FindMasterPrefab("TyranitarMaster"); } if (BossRush.IsEnemiesReturnsInstalled && Util.CheckRoll(25f, 0f, (CharacterMaster)null)) { 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)) { 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) { 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)) { 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) { 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) { 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)); if (((BaseUserEntitlementTracker<LocalUser>)(object)EntitlementManager.localUserEntitlementTracker).AnyUserHasEntitlement(((IEnumerable<EntitlementDef>)(object)EntitlementCatalog.entitlementDefs).Where((EntitlementDef x) => ((Object)x).name.Contains("DLC2")).First())) { waves.RemoveAt(waves.Count - 1); waves.Add(new Wave(new List<WaveSpawn> { new WaveSpawn(StringExtensions.Load<GameObject>("RoR2/DLC2/FalseSonBoss/FalseSonBossMaster.prefab"), 1f, 2f, air: false) }, 2, 2, 1, 0, 2, 4, StringExtensions.Load<MusicTrackDef>("RoR2/DLC2/Common/muSong_MeridianFSB.asset"))); } } 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/Capt