using System; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Text; using BepInEx; using Dungeonator; using ExpandTheGungeon.ExpandComponent; using ExpandTheGungeon.ExpandComponents; using ExpandTheGungeon.ExpandDungeonFlows; using ExpandTheGungeon.ExpandLoadingScreens; using ExpandTheGungeon.ExpandMain; using ExpandTheGungeon.ExpandPrefab; using ExpandTheGungeon.ExpandUtilities; using ExpandTheGungeon.ItemAPI; using ExpandTheGungeon.SpriteAPI; using FullInspector; using Gungeon; using HarmonyLib; using HutongGames.PlayMaker; using HutongGames.PlayMaker.Actions; using InControl; using Ionic.Zip; using MonoMod.RuntimeDetour; using Pathfinding; using UnityEngine; using UnityEngine.Rendering; using UnityEngine.SceneManagement; using UnityEngine.Serialization; using UnityEngine.UI; using UnityEngine.Video; using tk2dRuntime.TileMap; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyTitle("ExpandTheGungeon")] [assembly: AssemblyDescription("ExpandTheGungeon for Enter the Gungeon.")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("Apache Modding Inc")] [assembly: AssemblyProduct("ExpandTheGungeon")] [assembly: AssemblyCopyright("Copyright © 2025")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("879a1d67-4a5c-4a21-9823-426d1752d3d2")] [assembly: AssemblyFileVersion("3.0.8")] [assembly: AssemblyVersion("3.0.8.0")] namespace ExpandTheGungeon { public class ExpandDebugCamera : BraveBehaviour { public static bool DebugCameraEnabled = false; public static float ResetAfterLoadTime = 3f; public static float DebugViewCoverage = 0.1f; public static Vector2 DebugViewPortPosition = new Vector2(140f, 85f); public static Vector2 FoyerCameraPosition = Vector2.op_Implicit(new Vector3(27f, 25f)); private static ExpandDebugCamera m_instance; private bool m_SkipOcclusionEnable; private bool m_FoyerTimerSet; private bool m_IsActive; private float m_EndTimer; private GameManager m_GameManager; private Pixelator m_Pixelator; private GameObject m_CameraObject; private CameraController m_MainCamera; public static ExpandDebugCamera Instance { get { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)m_instance)) { m_instance = new GameObject("EX Debug Camera Manager", new Type[1] { typeof(ExpandDebugCamera) }) { layer = 22 }.GetComponent(); } return m_instance; } } public static void SetInitialCameraPosition(Pixelator pixelator, CameraController mainCamera) { mainCamera.SetManualControl(true, false); pixelator.DoOcclusionLayer = false; Instance.Init(); } public static void ClearLoadScreenBackground(FoyerPreloader Instance) { if (Object.op_Implicit((Object)(object)Instance.Throbber) && !((dfControl)Instance.Throbber).IsVisible) { ((dfControl)Instance.Throbber).IsVisible = true; } if (Object.op_Implicit((Object)(object)Instance.RatThrobber) && ((dfControl)Instance.RatThrobber).IsVisible) { ((dfControl)Instance.RatThrobber).IsVisible = false; } GameObject val = null; for (int i = 0; i < ((Component)Instance).gameObject.transform.childCount; i++) { if (((Object)((Component)((Component)Instance).gameObject.transform.GetChild(i)).gameObject).name.Contains("weird named camera")) { ((Behaviour)((Component)((Component)Instance).gameObject.transform.GetChild(i)).gameObject.GetComponent()).enabled = false; } else if (((Object)((Component)((Component)Instance).gameObject.transform.GetChild(i)).gameObject).name.Contains("FadeCanvas")) { ((Behaviour)((Component)((Component)Instance).gameObject.transform.GetChild(i)).gameObject.GetComponentInChildren()).enabled = false; } } if (Object.op_Implicit((Object)(object)val)) { for (int j = 0; j < val.transform.childCount; j++) { if (((Object)((Component)val.transform.GetChild(j)).gameObject).name.Contains("FadeCanvas")) { ((Behaviour)((Component)val.transform.GetChild(j)).gameObject.GetComponentInChildren()).enabled = false; } } } if (!Object.op_Implicit((Object)(object)m_instance)) { ExpandDebugCamera.Instance.Init(); } } public void Init() { //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) Object.DontDestroyOnLoad((Object)(object)((Component)this).gameObject); m_SkipOcclusionEnable = false; m_IsActive = false; m_EndTimer = ResetAfterLoadTime; if (Object.op_Implicit((Object)(object)Pixelator.Instance)) { m_Pixelator = Pixelator.Instance; m_Pixelator.DoOcclusionLayer = false; m_Pixelator.KillAllFades = true; } m_CameraObject = GameObject.Find("Main Camera"); if (Object.op_Implicit((Object)(object)m_CameraObject)) { m_MainCamera = m_CameraObject.GetComponent(); } else if (Object.op_Implicit((Object)(object)Camera.main)) { m_MainCamera = ((Component)Camera.main).GetComponent(); } if (Object.op_Implicit((Object)(object)GameManager.Instance)) { m_GameManager = GameManager.Instance; } if (Object.op_Implicit((Object)(object)m_MainCamera)) { m_MainCamera.SetManualControl(true, false); m_MainCamera.OverridePosition = Vector2.op_Implicit(DebugViewPortPosition); m_MainCamera.SetZoomScaleImmediate(DebugViewCoverage); } m_FoyerTimerSet = false; m_IsActive = true; } public void Update() { //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: 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_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) if (!m_IsActive) { return; } if (Object.op_Implicit((Object)(object)m_Pixelator)) { m_Pixelator.DoOcclusionLayer = false; if (!m_GameManager.IsFoyer) { m_Pixelator.KillAllFades = true; } } if (Object.op_Implicit((Object)(object)m_MainCamera)) { m_MainCamera.SetManualControl(true, false); m_MainCamera.OverridePosition = Vector2.op_Implicit(DebugViewPortPosition); m_MainCamera.SetZoomScaleImmediate(DebugViewCoverage); } else { m_CameraObject = GameObject.Find("Main Camera"); if (Object.op_Implicit((Object)(object)m_CameraObject)) { m_MainCamera = m_CameraObject.GetComponent(); } else if (Object.op_Implicit((Object)(object)Camera.main)) { m_MainCamera = ((Component)Camera.main).GetComponent(); } if (!Object.op_Implicit((Object)(object)m_CameraObject)) { return; } m_MainCamera.SetManualControl(true, false); m_MainCamera.OverridePosition = Vector2.op_Implicit(DebugViewPortPosition); m_MainCamera.SetZoomScaleImmediate(DebugViewCoverage); ((Component)m_MainCamera).gameObject.transform.position = Vector2.op_Implicit(DebugViewPortPosition); } if (m_GameManager.IsFoyer && !m_FoyerTimerSet) { m_FoyerTimerSet = true; m_EndTimer = 1.5f; } } public void LateUpdate() { if (m_IsActive) { if (!Object.op_Implicit((Object)(object)m_Pixelator)) { m_Pixelator = Pixelator.Instance; } DoPostLoadCheck(); } } private void DoPostLoadCheck() { if (!Object.op_Implicit((Object)(object)m_GameManager)) { m_GameManager = GameManager.Instance; } else if (!m_GameManager.IsLoadingLevel) { m_EndTimer -= BraveTime.DeltaTime; if (m_EndTimer <= 0f) { m_EndTimer = 99f; DoReset(); } } } private void DoReset(bool destroyOnExit = true) { //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) m_IsActive = false; if (!Object.op_Implicit((Object)(object)m_GameManager) | !Object.op_Implicit((Object)(object)m_Pixelator)) { return; } if (ExpandSettings.debugMode && m_Pixelator.slavedCameras != null && m_Pixelator.slavedCameras.Count > 0) { ExpandUtility.DumpTexture2DToFile(ExpandUtility.GenerateTexture2DFromRenderTexture(Pixelator.Instance.slavedCameras[0].activeTexture), ((Object)((Component)m_GameManager.Dungeon).gameObject).name, useRandomFilenames: true); } if (Object.op_Implicit((Object)(object)m_MainCamera)) { if (m_GameManager.IsFoyer) { m_MainCamera.OverridePosition = Vector2.op_Implicit(FoyerCameraPosition); } m_MainCamera.SetZoomScaleImmediate(1f); if (!m_GameManager.IsFoyer && !m_GameManager.IsSelectingCharacter) { m_MainCamera.SetManualControl(false, false); } } if (Object.op_Implicit((Object)(object)m_GameManager.PrimaryPlayer) && m_GameManager.PrimaryPlayer.HasPassiveItem(ThirdEye.ThirdEyeID)) { m_SkipOcclusionEnable = true; } if (!m_SkipOcclusionEnable && Object.op_Implicit((Object)(object)m_GameManager.PrimaryPlayer) && Object.op_Implicit((Object)(object)m_GameManager.GetOtherPlayer(m_GameManager.PrimaryPlayer)) && m_GameManager.GetOtherPlayer(m_GameManager.PrimaryPlayer).HasPassiveItem(ThirdEye.ThirdEyeID)) { m_SkipOcclusionEnable = true; } if (!m_SkipOcclusionEnable && !m_GameManager.IsFoyer) { m_Pixelator.DoOcclusionLayer = true; } m_Pixelator.KillAllFades = false; if (m_GameManager.IsFoyer) { m_Pixelator.FadeToBlack(0.5f, true, 0f); } if (destroyOnExit) { Object.Destroy((Object)(object)((Component)this).gameObject); } } protected override void OnDestroy() { if (m_IsActive) { DoReset(destroyOnExit: false); } ((BraveBehaviour)this).OnDestroy(); } } public class ExpandConsole { public const string ConsoleCommandName = "expand"; public static List itemList; public static List debugCommands = new List { "debugcamera", "stats", "clearroom", "unsealroom", "fixplayerinput", "destroyloadscreen" }; public static void InitConsoleCommands(string MainCommandName) { //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Expected O, but got Unknown ETGModConsole.Commands.AddGroup(MainCommandName, (Action)ExpandConsoleInfo); ETGModConsole.Commands.GetGroup(MainCommandName).AddUnit("createSpriteCollection", (Action)ExpandSerializeCollection); ETGModConsole.Commands.GetGroup(MainCommandName).AddUnit("dump_layout", (Action)ExpandDumpLayout); ETGModConsole.Commands.GetGroup(MainCommandName).AddUnit("debug", (Action)ExpandDebug); ETGModConsole.Commands.GetGroup(MainCommandName).AddUnit("debug", (Action)ExpandDebug, new AutocompletionSettings((Func)((int index, string input) => (index == 0) ? DungeonFlowModule.ReturnMatchesFromList(input.ToLower(), debugCommands) : new string[0]))); ETGModConsole.Commands.GetGroup(MainCommandName).AddUnit("list_items", (Action)ExpandCustomItemsInfo); ETGModConsole.Commands.GetGroup(MainCommandName).AddUnit("youtubemode", (Action)ExpandYouTubeSafeCommand); ETGModConsole.Commands.GetGroup(MainCommandName).AddUnit("savesettings", (Action)ExpandExportSettings); } private static void ExpandConsoleInfo(string[] consoleText) { if (ETGModConsole.Commands.GetGroup("expand") == null || ETGModConsole.Commands.GetGroup("expand").GetAllUnitNames() == null) { return; } List list = new List(); string[] allUnitNames = ETGModConsole.Commands.GetGroup("expand").GetAllUnitNames(); foreach (string item in allUnitNames) { list.Add(item); } if (list.Count <= 0) { return; } if (!m_IsCommandValid(consoleText, string.Empty, string.Empty)) { ETGModConsole.Log((object)"[ExpandTheGungeon] No sub command specified! The following console commands are available for ExpandTheGungeon:\n", false); { foreach (string item2 in list) { ETGModConsole.Log((object)(" " + item2 + "\n"), false); } return; } } if (list.Contains(consoleText[0].ToLower())) { return; } ETGModConsole.Log((object)"[ExpandTheGungeon] Invalid sub-command! The following console commands are available for ExpandTheGungeon:\n", false); foreach (string item3 in list) { ETGModConsole.Log((object)(" " + item3 + "\n"), false); } } private static void ExpandDebug(string[] consoleText) { //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Expected O, but got Unknown //IL_027e: Unknown result type (might be due to invalid IL or missing references) //IL_0283: Unknown result type (might be due to invalid IL or missing references) //IL_02b7: Unknown result type (might be due to invalid IL or missing references) //IL_02bd: Invalid comparison between Unknown and I4 //IL_033c: Unknown result type (might be due to invalid IL or missing references) //IL_0342: Invalid comparison between Unknown and I4 //IL_030a: Unknown result type (might be due to invalid IL or missing references) //IL_030f: Unknown result type (might be due to invalid IL or missing references) string text = string.Empty; foreach (string debugCommand in debugCommands) { text = text + "\n" + debugCommand; } if (!m_IsCommandValid(consoleText, text, "debug")) { return; } GameManager instance = GameManager.Instance; PlayerController val = ((instance != null) ? instance.PrimaryPlayer : null); GameManager instance2 = GameManager.Instance; CameraController val2 = ((instance2 != null) ? instance2.MainCameraController : null); RoomHandler val3 = null; if (Object.op_Implicit((Object)(object)val)) { val3 = val.CurrentRoom; } switch (consoleText[0].ToLower()) { case "debugcamera": if (ExpandDebugCamera.DebugCameraEnabled) { ExpandDebugCamera.DebugCameraEnabled = false; ETGModConsole.Log((object)"[ExpandTheGungeon] Loading screen camera disabled!", false); } else { ExpandDebugCamera.DebugCameraEnabled = true; ETGModConsole.Log((object)"[ExpandTheGungeon] Loading screen camera enabled!", false); } break; case "stats": if (!ExpandSettings.debugMode) { ExpandSettings.debugMode = true; ETGModConsole.Log((object)"[ExpandTheGungeon] Installing RoomHandler.OnEntered Hook....", false); ExpandHooks.enterRoomHook = new Hook((MethodBase)typeof(RoomHandler).GetMethod("OnEntered", BindingFlags.Instance | BindingFlags.NonPublic), typeof(ExpandHooks).GetMethod("EnteredNewRoomHook", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(RoomHandler)); } else if (ExpandSettings.debugMode) { ExpandSettings.debugMode = false; if (ExpandHooks.enterRoomHook != null) { ETGModConsole.Log((object)"[ExpandTheGungeon] Uninstalling RoomHandler.OnEntered Hook....", false); ExpandHooks.enterRoomHook.Dispose(); ExpandHooks.enterRoomHook = null; } } ETGModConsole.Log((object)"[ExpandTheGungeon] Debug Stats: ", false); ETGModConsole.Log((object)("Debug Stats: " + ExpandSettings.debugMode), false); ETGModConsole.Log((object)("Debug Exceptions: " + ExpandSettings.debugMode), false); break; case "clearroom": { if (val3 == null) { break; } List activeEnemies = val3.GetActiveEnemies((ActiveEnemyType)1); if (activeEnemies != null && activeEnemies.Count > 0) { for (int i = 0; i < activeEnemies.Count; i++) { val3.DeregisterEnemy(activeEnemies[i], false); Object.Destroy((Object)(object)((Component)activeEnemies[i]).gameObject); } } break; } case "unsealroom": if (val3 != null && val3.IsSealed) { val3.UnsealRoom(); } break; case "fixplayerinput": { if (Object.op_Implicit((Object)(object)val2) && Object.op_Implicit((Object)(object)val)) { val2.OverridePosition = ((BraveBehaviour)val).transform.position; val2.SetManualControl(false, true); } if (Object.op_Implicit((Object)(object)val)) { val.CurrentInputState = (PlayerInputState)0; ((BraveBehaviour)val).healthHaver.IsVulnerable = true; } GameManager instance3 = GameManager.Instance; if (instance3 != null && (int)instance3.CurrentGameType == 1) { PlayerController otherPlayer2 = GameManager.Instance.GetOtherPlayer(val); if (Object.op_Implicit((Object)(object)otherPlayer2)) { otherPlayer2.CurrentInputState = (PlayerInputState)0; ((BraveBehaviour)otherPlayer2).healthHaver.IsVulnerable = true; } } break; } case "destroyloadscreen": { if (Object.op_Implicit((Object)(object)val2) && Object.op_Implicit((Object)(object)val)) { val2.OverridePosition = ((BraveBehaviour)val).transform.position; val2.SetManualControl(false, true); } if (Object.op_Implicit((Object)(object)val)) { val.CurrentInputState = (PlayerInputState)0; ((BraveBehaviour)val).healthHaver.IsVulnerable = true; } if ((int)GameManager.Instance.CurrentGameType == 1) { PlayerController otherPlayer = GameManager.Instance.GetOtherPlayer(val); if (Object.op_Implicit((Object)(object)otherPlayer)) { otherPlayer.CurrentInputState = (PlayerInputState)0; ((BraveBehaviour)otherPlayer).healthHaver.IsVulnerable = true; } } FoyerPreloader val4 = Object.FindObjectOfType(); if (Object.op_Implicit((Object)(object)val4)) { Object.Destroy((Object)(object)((Component)val4).gameObject); } break; } default: ETGModConsole.Log((object)("[ExpandTheGungeon] ERROR: Unknown sub-command. Valid Commands: \n" + text), false); break; } } private static void ExpandDumpLayout(string[] consoleText) { string text = "currentroom\ncurrentroomhandler\nallknownroomprefabs\ncurrentdungeonlayout"; if (!m_IsCommandValid(consoleText, text, "dump_layout")) { return; } if (consoleText[0].ToLower() == "currentroom") { RoomDebug.DumpCurrentRoomLayout(); } else if (consoleText[0].ToLower() == "currentroomhandler") { RoomHandler absoluteParentRoom = ((DungeonPlaceableBehaviour)GameManager.Instance.PrimaryPlayer).GetAbsoluteParentRoom(); RoomDebug.DumpCurrentRoomLayout(null, absoluteParentRoom); } else if (consoleText[0] == "allknownroomprefabs") { ETGModConsole.Log((object)"Saving room layouts to PNG files. Please wait...", false); foreach (WeightedRoom element in ExpandPrefabs.CastleRoomTable.includedRooms.elements) { if ((Object)(object)element.room != (Object)null) { RoomDebug.LogRoomToPNGFile(element.room); } } foreach (WeightedRoom element2 in ExpandPrefabs.SewersRoomTable.includedRooms.elements) { if ((Object)(object)element2.room != (Object)null) { RoomDebug.LogRoomToPNGFile(element2.room); } } foreach (WeightedRoom element3 in ExpandPrefabs.Gungeon_RoomTable.includedRooms.elements) { if ((Object)(object)element3.room != (Object)null) { RoomDebug.LogRoomToPNGFile(element3.room); } } foreach (WeightedRoom element4 in ExpandPrefabs.AbbeyRoomTable.includedRooms.elements) { if ((Object)(object)element4.room != (Object)null) { RoomDebug.LogRoomToPNGFile(element4.room); } } foreach (WeightedRoom element5 in ExpandPrefabs.MinesRoomTable.includedRooms.elements) { if ((Object)(object)element5.room != (Object)null) { RoomDebug.LogRoomToPNGFile(element5.room); } } foreach (WeightedRoom element6 in ExpandPrefabs.CatacombsRoomTable.includedRooms.elements) { if ((Object)(object)element6.room != (Object)null) { RoomDebug.LogRoomToPNGFile(element6.room); } } foreach (WeightedRoom element7 in ExpandPrefabs.ForgeRoomTable.includedRooms.elements) { if ((Object)(object)element7.room != (Object)null) { RoomDebug.LogRoomToPNGFile(element7.room); } } foreach (WeightedRoom element8 in ExpandPrefabs.BulletHellRoomTable.includedRooms.elements) { if ((Object)(object)element8.room != (Object)null) { RoomDebug.LogRoomToPNGFile(element8.room); } } foreach (WeightedRoom element9 in ExpandPrefabs.SecretRoomTable.includedRooms.elements) { RoomDebug.LogRoomToPNGFile(element9.room); } ETGModConsole.Log((object)"Room dump process complete!", false); } else if (consoleText[0].ToLower() == "currentdungeonlayout") { RoomDebug.LogDungeonToPNGFile(); ETGModConsole.Log((object)("Current Dungeon '" + ((Object)((Component)GameManager.Instance.Dungeon).gameObject).name + "' has been succesfully dumped."), false); } else { ETGModConsole.Log((object)("[ExpandTheGungeon] [dump_layout] ERROR: Unknown sub-command. Valid Commands: \n" + text), false); } } private static void ExpandCustomItemsInfo(string[] consoleText) { ETGModConsole.Log((object)"Custom Items: ", false); foreach (string item in itemList) { ETGModConsole.Log((object)(" " + item), false); } } private static void ExpandYouTubeSafeCommand(string[] consoleTest) { if (ExpandSettings.youtubeSafeMode) { ETGModConsole.Log((object)"No longer YouTube safe.", false); ExpandSettings.youtubeSafeMode = false; } else { ETGModConsole.Log((object)"Now YouTube Safe.", false); ExpandSettings.youtubeSafeMode = true; } } private static void ExpandExportSettings(string[] consoleText) { ExpandSettings.SaveSettings(); ETGModConsole.Log((object)"[ExpandTheGungeon] Settings have been saved!", false); } public static void ExpandSerializeCollection(string[] consoleText) { try { ExpandAssets.InitSpritesAssetBundle(); } catch (Exception ex) { Debug.Log((object)"[ExpandTheGungeon] ERROR: Exception while loading sprite asset bundles! This is an option asset bundle however it is required for building sprite collections!"); Debug.LogException(ex); } int xres = 2048; int yres = 2048; List value = null; string text = "EXTrapCollection"; string text2 = text; string pathOverride = string.Empty; if (!ExpandLists.SpriteCollections.TryGetValue(text, out value)) { ETGModConsole.Log((object)"[ExpandTheGungeon] ERROR: Default list not found!", false); } else if (consoleText.Length > 1) { xres = int.Parse(consoleText[0]); yres = int.Parse(consoleText[1]); if (consoleText.Length > 2) { text2 = consoleText[2]; if (!ExpandLists.SpriteCollections.TryGetValue(text2, out value)) { ETGModConsole.Log((object)"[ExpandTheGungeon] Requested Collection not found! Using predefined list instead!", false); ExpandLists.SpriteCollections.TryGetValue(text, out value); } } else { ETGModConsole.Log((object)"[ExpandTheGungeon] Collection name not specified! Using predefined fall back list...", false); } if (consoleText.Length > 3) { pathOverride = consoleText[3]; } SpriteSerializer.SerializeSpriteCollection(text2, value, xres, yres, pathOverride); ETGModConsole.Log((object)"[ExpandTheGungeon] Sprite collection successfully built and exported!", false); } else { ETGModConsole.Log((object)"[ExpandTheGungeon] Not enough commands or too many! Must provide atlas name and resolution! Please specify a name, width, and height!", false); ETGModConsole.Log((object)"[ExpandTheGungeon] Using default resolution and collection...", false); SpriteSerializer.SerializeSpriteCollection(text, value, xres, yres); } } private static bool m_IsCommandValid(string[] CommandText, string validCommands, string sourceSubCommand) { if (CommandText == null) { if (!string.IsNullOrEmpty(validCommands) && !string.IsNullOrEmpty(sourceSubCommand)) { ETGModConsole.Log((object)("[ExpandTheGungeon] [" + sourceSubCommand + "] ERROR: Invalid console command specified! Valid Sub-Commands: \n" + validCommands), false); } return false; } if (CommandText.Length == 0) { if (!string.IsNullOrEmpty(validCommands) && !string.IsNullOrEmpty(sourceSubCommand)) { ETGModConsole.Log((object)("[ExpandTheGungeon] [" + sourceSubCommand + "] No sub-command specified. Valid Sub-Commands: \n" + validCommands), false); } return false; } if (string.IsNullOrEmpty(CommandText[0])) { if (!string.IsNullOrEmpty(validCommands) && !string.IsNullOrEmpty(sourceSubCommand)) { ETGModConsole.Log((object)("[ExpandTheGungeon] [" + sourceSubCommand + "] No sub-command specified. Valid Sub-Commands: \n" + validCommands), false); } return false; } if (CommandText.Length > 1) { if (!string.IsNullOrEmpty(validCommands) && !string.IsNullOrEmpty(sourceSubCommand)) { ETGModConsole.Log((object)("[ExpandTheGungeon] [" + sourceSubCommand + "] ERROR: Only one sub-command is accepted!. Valid Commands: \n" + validCommands), false); } return false; } return true; } } public class ExpandFoyer : BraveBehaviour { private enum State { PreFoyerCheck, CheckSettings, SpawnObjects, Exit, Inactive } [NonSerialized] public static GameObject EXFoyerChecker; [NonSerialized] public static ExpandFoyer Instance; private State m_State; private GameObject m_FoyerButton; public static void CreateFoyerController() { //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) if (!Object.op_Implicit((Object)(object)Instance)) { GameObject obj = Object.Instantiate(EXFoyerChecker, Vector3.zero, Quaternion.identity); Instance = obj.GetComponent(); Object.DontDestroyOnLoad((Object)(object)obj); } } public ExpandFoyer() { m_State = State.PreFoyerCheck; } public void Update() { if (GameManager.IsShuttingDown | !GameManager.HasInstance | (GameStatsManager.Instance == null)) { return; } switch (m_State) { case State.PreFoyerCheck: if (ExpandTheGungeon.loadStatus != ExpandTheGungeon.LoadStatus.LoadFinished) { break; } if (!BlackAndGoldenRevolver.RevolverExceptionListsBuilt) { BlackAndGoldenRevolver.BuildExceptionsList(); } if (!Foyer.DoIntroSequence) { if (ExpandLoadingScreen.LoadingScreenObject.activeSelf) { ExpandLoadingScreen.LoadingScreenObject.SetActive(false); } if (ExpandLoadingScreen.LoadingBarObject.activeSelf) { ExpandLoadingScreen.LoadingBarObject.SetActive(false); } m_State = State.CheckSettings; } break; case State.CheckSettings: if (!ExpandTheGungeon.ListsCleared) { StaticReferenceManager.AllHealthHavers.Clear(); if (Object.op_Implicit((Object)(object)GameManager.Instance)) { if (Object.op_Implicit((Object)(object)GameManager.Instance.PrimaryPlayer)) { StaticReferenceManager.AllHealthHavers.Add(((BraveBehaviour)GameManager.Instance.PrimaryPlayer).healthHaver); } if (Object.op_Implicit((Object)(object)GameManager.Instance.SecondaryPlayer)) { StaticReferenceManager.AllHealthHavers.Add(((BraveBehaviour)GameManager.Instance.SecondaryPlayer).healthHaver); } } StaticReferenceManager.AllBros.Clear(); StaticReferenceManager.AllEnemies.Clear(); ExpandTheGungeon.ListsCleared = true; } if (ExpandSettings.EnableTestDungeonFlow) { GameManager.Instance.InjectedFlowPath = ExpandSettings.TestFlow; GameManager.Instance.InjectedLevelName = ExpandSettings.TestFloor; ExpandSettings.EnableTestDungeonFlow = false; } if (GameManager.Instance.EnemyReplacementTiers != null) { ExpandEnemyReplacements.Init(GameManager.Instance.EnemyReplacementTiers); } ExpandDungeonMusicAPI.EnteredNewCustomFloor = false; m_State = State.SpawnObjects; break; case State.SpawnObjects: if (!GameStatsManager.Instance.GetFlag((GungeonFlags)50120)) { m_State = State.Exit; break; } CreateCasinoWarp(); m_State = State.Exit; break; case State.Exit: m_State = State.Inactive; if (Object.op_Implicit((Object)(object)((Component)this).gameObject)) { Object.Destroy((Object)(object)((Component)this).gameObject); } break; case State.Inactive: break; } } public void CreateCasinoWarp() { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)m_FoyerButton)) { m_FoyerButton = Object.Instantiate(ExpandPrefabs.EXFoyerTrigger, new Vector3(50.2f, 60.7f, 61.8f), Quaternion.identity); RoomHandler absoluteRoom = Vector3Extensions.GetAbsoluteRoom(m_FoyerButton.transform.position); ExpandCasinoWarpTrigger component = m_FoyerButton.GetComponent(); component.ConfigureOnPlacement(Vector3Extensions.GetAbsoluteRoom(m_FoyerButton.transform.position)); absoluteRoom.RegisterInteractable((IPlayerInteractable)(object)component); } } protected override void OnDestroy() { Instance = null; ((BraveBehaviour)this).OnDestroy(); } } public class ExpandObjectMods { public static void InitSpecialMods() { ExpandSettings.randomSeed = Random.value; if (!(!Object.op_Implicit((Object)(object)GameManager.Instance) | !Object.op_Implicit((Object)(object)GameManager.Instance.Dungeon))) { ExpandStaticReferenceManager.PopulateLists(); InitObjectMods(GameManager.Instance.Dungeon); ExpandDungeonFlow.isGlitchFlow = false; ExpandSettings.SewersIsFuture = false; } } private static void InitObjectMods(Dungeon dungeon) { //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Invalid comparison between Unknown and I4 //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Invalid comparison between Unknown and I4 //IL_0262: Unknown result type (might be due to invalid IL or missing references) //IL_0268: Invalid comparison between Unknown and I4 //IL_0291: Unknown result type (might be due to invalid IL or missing references) //IL_0297: Invalid comparison between Unknown and I4 //IL_029e: Unknown result type (might be due to invalid IL or missing references) //IL_02a4: Invalid comparison between Unknown and I4 //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01c3: Invalid comparison between Unknown and I4 //IL_0302: Unknown result type (might be due to invalid IL or missing references) //IL_0308: Invalid comparison between Unknown and I4 //IL_05e9: Unknown result type (might be due to invalid IL or missing references) //IL_09e7: Unknown result type (might be due to invalid IL or missing references) //IL_09f6: Unknown result type (might be due to invalid IL or missing references) //IL_09fb: Unknown result type (might be due to invalid IL or missing references) //IL_0a00: Unknown result type (might be due to invalid IL or missing references) //IL_0a02: Unknown result type (might be due to invalid IL or missing references) //IL_0a23: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)GameManager.Instance) | !Object.op_Implicit((Object)(object)dungeon)) { return; } if (ExpandSettings.EnableJungleRain && (int)dungeon.tileIndices.tilesetId == 8192) { GameObject obj = Object.Instantiate(ExpandAssets.LoadAsset("ExpandJungleThunderStorm")); obj.transform.parent = ((Component)dungeon).gameObject.transform; ExpandThunderStormPlacable component = obj.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.RainIntensity = ExpandSettings.JungleRainIntensity; component.ConfigureOnPlacement(null); } } ExpandDungeonMusicAPI.EnteredNewCustomFloor = false; try { GameManager instance = GameManager.Instance; if (Object.op_Implicit((Object)(object)((instance != null) ? instance.DungeonMusicController : null))) { bool value = false; bool num = ExpandDungeonMusicAPI.CustomLevelMusic.TryGetValue(dungeon.musicEventName, out value); FieldInfo field = typeof(DungeonFloorMusicController).GetField("COOLDOWN_TIMER", BindingFlags.Instance | BindingFlags.NonPublic); FieldInfo field2 = typeof(DungeonFloorMusicController).GetField("MUSIC_CHANGE_TIMER", BindingFlags.Instance | BindingFlags.NonPublic); if (num && value) { field.SetValue(GameManager.Instance.DungeonMusicController, 34f); field2.SetValue(GameManager.Instance.DungeonMusicController, 50f); } else { field.SetValue(GameManager.Instance.DungeonMusicController, 22.5f); field2.SetValue(GameManager.Instance.DungeonMusicController, 40f); } } } catch (Exception) { } if ((int)dungeon.tileIndices.tilesetId == 4096 && dungeon.data != null && dungeon.data.rooms != null) { foreach (RoomHandler room in dungeon.data.rooms) { if (room == null || room.area == null || (int)room.area.PrototypeRoomCategory != 3) { continue; } foreach (AIActor activeEnemy in room.GetActiveEnemies((ActiveEnemyType)1)) { if (Object.op_Implicit((Object)(object)activeEnemy) && activeEnemy.EnemyGuid == ExpandEnemyDatabase.ParasiteBossGUID) { activeEnemy.AdditionalSafeItemDrops = new List { (PickupObject)(object)ExpandKeyBulletPickup.OldKeyObject.GetComponent() }; break; } } break; } } if (GameManager.Instance.CurrentFloor == 1) { ExpandSettings.HasSpawnedSecretBoss = false; } if ((int)dungeon.LevelOverrideType != 2) { ExpandPrefabs.SerManuel.GetComponent().forcePreventVictoryMusic = true; } else { ExpandPrefabs.SerManuel.GetComponent().forcePreventVictoryMusic = false; } if (((int)GameManager.Instance.CurrentGameMode == 2) | ((int)GameManager.Instance.CurrentGameMode == 3) | dungeon.IsGlitchDungeon) { foreach (RoomHandler room2 in dungeon.data.rooms) { if (!string.IsNullOrEmpty(room2.GetRoomName()) && room2.GetRoomName().ToLower().StartsWith("elevatormaintenance") && (((int)dungeon.tileIndices.tilesetId == 2) | dungeon.IsGlitchDungeon) && dungeon.data.Entrance != null && dungeon.data.Entrance.GetRoomName().ToLower().StartsWith("elevator entrance")) { dungeon.data.Entrance.TargetPitfallRoom = room2; dungeon.data.Entrance.ForcePitfallForFliers = true; } } } PlayerController primaryPlayer = GameManager.Instance.PrimaryPlayer; PlayerController secondaryPlayer = GameManager.Instance.SecondaryPlayer; bool flag = false; if (ExpandPlaceFloorObjects.PlayerHasThirdEye && Object.op_Implicit((Object)(object)Pixelator.Instance) && Pixelator.Instance.DoOcclusionLayer) { Pixelator.Instance.DoOcclusionLayer = false; } if (Object.op_Implicit((Object)(object)primaryPlayer) && primaryPlayer.HasPassiveItem(CorruptedJunk.CorruptedJunkID)) { flag = true; } if (Object.op_Implicit((Object)(object)secondaryPlayer) && secondaryPlayer.HasPassiveItem(CorruptedJunk.CorruptedJunkID)) { flag = true; } AIActor[] array; if (ExpandSettings.EnableExpandedGlitchFloors && ((dungeon.IsGlitchDungeon | ExpandDungeonFlow.isGlitchFlow) || flag)) { if (!dungeon.IsGlitchDungeon && !ExpandDungeonFlow.isGlitchFlow && flag) { if (Object.FindObjectsOfType() == null || Object.FindObjectsOfType().Length == 0) { return; } array = Object.FindObjectsOfType(); foreach (AIActor val in array) { if (!val.IsBlackPhantom && !((BraveBehaviour)val).healthHaver.IsBoss && !string.IsNullOrEmpty(val.EnemyGuid) && (Object)(object)val.optionalPalette == (Object)null && (string.IsNullOrEmpty(((GameActor)val).OverrideDisplayName) | !((GameActor)val).OverrideDisplayName.StartsWith("Corrupted")) && !ExpandLists.DontGlitchMeList.Contains(val.EnemyGuid) && ((DungeonPlaceableBehaviour)val).GetAbsoluteParentRoom() != null && !string.IsNullOrEmpty(((DungeonPlaceableBehaviour)val).GetAbsoluteParentRoom().GetRoomName()) && ((DungeonPlaceableBehaviour)val).GetAbsoluteParentRoom().GetRoomName().ToLower() .StartsWith("corrupted")) { if (Random.value <= 0.6f) { ExpandShaders.Instance.BecomeGlitched(val, 0.04f, 0.07f, 0.05f, 0.07f, 0.05f); ExpandEnemyCorruptor.CorruptExistingEnemy(val); } if (Random.value <= 0.25f && !ExpandLists.blobsAndCritters.Contains(val.EnemyGuid) && (Object)(object)((Component)val).GetComponent() == (Object)null) { ((Component)val).gameObject.AddComponent(); } } } MaybeSetupGlitchEnemyStun(dungeon, forceRun: true); return; } if (dungeon.IsGlitchDungeon | ExpandDungeonFlow.isGlitchFlow) { if (ExpandDungeonFlow.isGlitchFlow && !dungeon.IsGlitchDungeon) { dungeon.IsGlitchDungeon = true; } if (GameManager.HasInstance) { ExpandUtility.CheckAndFixNextLevelIndex(GameManager.Instance); } dungeon.BossMasteryTokenItemId = CustomMasterRounds.GtlichFloorMasterRoundID; if (ExpandSettings.EnableGlitchFloorScreenShader && !ExpandLists.InvalidGraphicsModes.Contains(SystemInfo.graphicsDeviceType)) { Object.Instantiate(ExpandAssets.LoadAsset("EXGlitchFloorScreenFX")).transform.SetParent(((Component)dungeon).gameObject.transform); } if (Object.FindObjectsOfType() != null && Object.FindObjectsOfType().Length != 0) { array = Object.FindObjectsOfType(); foreach (AIActor val2 in array) { float glitchInterval = Random.Range(0.02f, 0.04f); float dispProbability = Random.Range(0.06f, 0.08f); float dispIntensity = Random.Range(0.07f, 0.1f); float colorProbability = Random.Range(0.035f, 0.1f); float colorIntensity = Random.Range(0.05f, 0.1f); if (!val2.IsBlackPhantom && !((BraveBehaviour)val2).healthHaver.IsBoss && !string.IsNullOrEmpty(val2.EnemyGuid) && (Object)(object)val2.optionalPalette == (Object)null && (string.IsNullOrEmpty(((GameActor)val2).OverrideDisplayName) | !((GameActor)val2).OverrideDisplayName.StartsWith("Corrupted")) && !ExpandLists.DontGlitchMeList.Contains(val2.EnemyGuid)) { if (Random.value <= 0.6f) { ExpandShaders.Instance.BecomeGlitched(val2, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); ExpandEnemyCorruptor.CorruptExistingEnemy(val2); } if (Random.value <= 0.25f && !ExpandLists.blobsAndCritters.Contains(val2.EnemyGuid) && (Object)(object)((Component)val2).GetComponent() == (Object)null) { ((Component)val2).gameObject.AddComponent(); } } } } if (Object.FindObjectsOfType() != null && Object.FindObjectsOfType().Length != 0) { BraveBehaviour[] array2 = Object.FindObjectsOfType(); foreach (BraveBehaviour val3 in array2) { if (Random.value <= 0.05f && Object.op_Implicit((Object)(object)((Component)val3).gameObject) && !Object.op_Implicit((Object)(object)((Component)val3).gameObject.GetComponent()) && !Object.op_Implicit((Object)(object)((Component)val3).gameObject.GetComponent()) && (string.IsNullOrEmpty(((Object)((Component)val3).gameObject).name) | (!((Object)((Component)val3).gameObject).name.ToLower().StartsWith("glitchtile") && !((Object)((Component)val3).gameObject).name.ToLower().StartsWith("ex secret door") && !((Object)((Component)val3).gameObject).name.ToLower().StartsWith("lock") && !((Object)((Component)val3).gameObject).name.ToLower().StartsWith("chest")))) { float glitchInterval2 = Random.Range(0.02f, 0.04f); float dispProbability2 = Random.Range(0.06f, 0.08f); float dispIntensity2 = Random.Range(0.07f, 0.1f); float colorProbability2 = Random.Range(0.035f, 0.1f); float colorIntensity2 = Random.Range(0.05f, 0.1f); ExpandShaders.Instance.BecomeGlitched(val3, glitchInterval2, dispProbability2, dispIntensity2, colorProbability2, colorIntensity2); } } } ExpandPlaceCorruptedEnemies.Instance.PlaceRandomEnemies(dungeon, GameManager.Instance.CurrentFloor); ExpandPlaceCorruptedEnemies.DestroyInstance(); MaybeSetupGlitchEnemyStun(dungeon); GameObject[] array3 = Object.FindObjectsOfType(); List list = new List(); if (array3 != null && array3.Length != 0) { GameObject[] array4 = array3; foreach (GameObject val4 in array4) { if (!string.IsNullOrEmpty(((Object)val4).name) && ((Object)val4).name.ToLower().StartsWith("red barrel") && val4.transform.childCount > 0 && (Object)(object)val4.transform.Find("Red Barrel") != (Object)null && Random.value <= 0.45f) { list.Add(val4); } } if (list.Count > 0) { for (int j = 0; j < list.Count; j++) { Vector2 val5 = TransformExtensions.PositionVector2(list[j].transform) + new Vector2(0.5f, 0.5f); RoomHandler absoluteRoom = Vector3Extensions.GetAbsoluteRoom(val5); Object.Destroy((Object)(object)list[j]); AIActor aiActor = AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(ExpandEnemyDatabase.ExplodyBoyGUID), val5, absoluteRoom, true, (AwakenAnimationType)0, true); float glitchInterval3 = Random.Range(0.02f, 0.04f); float dispProbability3 = Random.Range(0.06f, 0.08f); float dispIntensity3 = Random.Range(0.07f, 0.1f); float colorProbability3 = Random.Range(0.035f, 0.1f); float colorIntensity3 = Random.Range(0.05f, 0.1f); ExpandShaders.Instance.BecomeGlitched(aiActor, glitchInterval3, dispProbability3, dispIntensity3, colorProbability3, colorIntensity3); } } } } } if (string.IsNullOrEmpty(ExpandDungeonMusicAPI.TempCustomBossMusic)) { return; } AIActor[] array5 = Object.FindObjectsOfType(); if (array5 == null || array5.Length == 0) { return; } array = array5; foreach (AIActor val6 in array) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)val6).healthHaver) && ((BraveBehaviour)val6).healthHaver.HasHealthBar && ((BraveBehaviour)val6).healthHaver.IsBoss && Object.op_Implicit((Object)(object)((Component)val6).gameObject.GetComponent())) { ((Component)val6).gameObject.GetComponent().BossMusicEvent = ExpandDungeonMusicAPI.TempCustomBossMusic; ExpandDungeonMusicAPI.TempCustomBossMusic = string.Empty; } } } private static void MaybeSetupGlitchEnemyStun(Dungeon dungeon, bool forceRun = false) { //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Invalid comparison between Unknown and I4 if (!dungeon.IsGlitchDungeon && !forceRun) { return; } foreach (RoomHandler room in dungeon.data.rooms) { if (string.IsNullOrEmpty(room.GetRoomName()) || (int)room.area.PrototypeRoomCategory == 3 || !room.HasActiveEnemies((ActiveEnemyType)0)) { continue; } foreach (AIActor activeEnemy in room.GetActiveEnemies((ActiveEnemyType)0)) { if (!string.IsNullOrEmpty(((GameActor)activeEnemy).OverrideDisplayName) && ((GameActor)activeEnemy).OverrideDisplayName.ToLower().StartsWith("corrupted")) { ((Component)activeEnemy).gameObject.AddComponent(); } } } } } public static class ExpandSettings { public static bool EnableLogo = true; public static bool EnableTestDungeonFlow = false; public static string TestFlow = "Test_CustomRoom_Flow"; public static string TestFloor = "tt_phobos"; public static bool debugMode = false; public static bool youtubeSafeMode = true; public static bool IsHardModeBuild = false; public static bool RestoreOldRooms = false; public static bool EnableJungleRain = true; public static bool EnableBloodiedScarfFix = true; public static bool EnableExpandedGlitchFloors = true; public static bool EnableGlitchFloorScreenShader = true; public static bool EnableEXItems = true; public static float JungleRainIntensity = 400f; public static bool EnableAsyncAssetLoading = true; [NonSerialized] public static bool spritesBundlePresent = false; [NonSerialized] public static bool allowGlitchFloor = false; [NonSerialized] public static bool glitchElevatorHasBeenUsed = false; [NonSerialized] public static bool HasSpawnedSecretBoss = false; [NonSerialized] public static float randomSeed = 0.5f; [NonSerialized] public static bool PlayingPunchoutArcade = false; [NonSerialized] public static bool HasSpawnedFakePastChest = false; [NonSerialized] public static bool HasVisitedBackrooms = false; [NonSerialized] public static bool BackroomsEntrancePlaced = false; [NonSerialized] public static bool SewersIsFuture = false; public static void LoadSettings() { if (File.Exists(Path.Combine(ETGMod.ResourcesDirectory, "ExpandTheGungeon_Settings.txt"))) { string text = File.ReadAllText(Path.Combine(ETGMod.ResourcesDirectory, "ExpandTheGungeon_Settings.txt")); ExpandCachedStats expandCachedStats = ScriptableObject.CreateInstance(); JsonUtility.FromJsonOverwrite(text, (object)expandCachedStats); OverwriteUserSettings(expandCachedStats); } else { SaveSettings(); } } public static void SaveSettings() { _ = string.Empty; string text = JsonUtility.ToJson((object)ScriptableObject.CreateInstance(), true); if (File.Exists(Path.Combine(ETGMod.ResourcesDirectory, "ExpandTheGungeon_Settings.txt"))) { File.Delete(Path.Combine(ETGMod.ResourcesDirectory, "ExpandTheGungeon_Settings.txt")); } ExpandAssets.SaveStringToFile(text, ETGMod.ResourcesDirectory, "ExpandTheGungeon_Settings.txt"); } public static void OverwriteUserSettings(ExpandCachedStats stats) { EnableLogo = stats.EnableLogo; EnableTestDungeonFlow = stats.EnableTestDungeonFlow; TestFlow = stats.TestFlow; TestFloor = stats.TestFloor; debugMode = stats.debugMode; youtubeSafeMode = stats.youtubeSafeMode; IsHardModeBuild = stats.IsHardModeBuild; EnableJungleRain = stats.EnableJungleRain; EnableBloodiedScarfFix = stats.EnableBloodiedScarfFix; EnableExpandedGlitchFloors = stats.EnableExpandedGlitchFloors; EnableGlitchFloorScreenShader = stats.EnableGlitchFloorScreenShader; EnableEXItems = stats.EnableEXItems; JungleRainIntensity = stats.JungleRainIntensity; EnableAsyncAssetLoading = stats.EnableAsyncAssetLoading; } } public class ExpandCachedStats : ScriptableObject { public bool EnableLogo; public bool EnableTestDungeonFlow; public string TestFlow; public string TestFloor; public bool debugMode; public bool youtubeSafeMode; public bool IsHardModeBuild; public bool RestoreOldRooms; public bool EnableJungleRain; public bool EnableBloodiedScarfFix; public bool EnableExpandedGlitchFloors; public bool EnableGlitchFloorScreenShader; public bool EnableEXItems; public float JungleRainIntensity; public bool EnableAsyncAssetLoading; public ExpandCachedStats() { EnableLogo = ExpandSettings.EnableLogo; EnableTestDungeonFlow = ExpandSettings.EnableTestDungeonFlow; TestFlow = ExpandSettings.TestFlow; TestFloor = ExpandSettings.TestFloor; debugMode = ExpandSettings.debugMode; youtubeSafeMode = ExpandSettings.youtubeSafeMode; IsHardModeBuild = ExpandSettings.IsHardModeBuild; RestoreOldRooms = ExpandSettings.RestoreOldRooms; EnableJungleRain = ExpandSettings.EnableJungleRain; EnableBloodiedScarfFix = ExpandSettings.EnableBloodiedScarfFix; EnableExpandedGlitchFloors = ExpandSettings.EnableExpandedGlitchFloors; EnableGlitchFloorScreenShader = ExpandSettings.EnableGlitchFloorScreenShader; EnableEXItems = ExpandSettings.EnableEXItems; JungleRainIntensity = ExpandSettings.JungleRainIntensity; EnableAsyncAssetLoading = ExpandSettings.EnableAsyncAssetLoading; } } public class DungeonFlowModule { private static List knownFlows = new List(); private static List knownTilesets = new List(); private static List knownScenes = new List(); public static string[] ReturnMatchesFromList(string matchThis, List inThis) { List list = new List(); string text = matchThis.ToLower(); foreach (string inThi in inThis) { string text2 = inThi.ToLower(); if (StringAutocompletionExtensions.AutocompletionMatch(text2, text)) { list.Add(text2); } } return list.ToArray(); } public static void Install() { //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: Expected O, but got Unknown if (ExpandDungeonFlow.KnownFlows != null && ExpandDungeonFlow.KnownFlows.Length != 0) { DungeonFlow[] array = ExpandDungeonFlow.KnownFlows; foreach (DungeonFlow val in array) { if (((Object)val).name != null && ((Object)val).name != string.Empty) { knownFlows.Add(((Object)val).name.ToLower()); } } } knownFlows.Add("npcparadise"); knownFlows.Add("secret_doublebeholster_flow"); foreach (GameLevelDefinition dungeonFloor in GameManager.Instance.dungeonFloors) { if (dungeonFloor.dungeonPrefabPath != null && dungeonFloor.dungeonPrefabPath != string.Empty) { knownTilesets.Add(dungeonFloor.dungeonPrefabPath.ToLower()); } if (dungeonFloor.dungeonSceneName != null && dungeonFloor.dungeonSceneName != string.Empty) { knownScenes.Add(dungeonFloor.dungeonSceneName.ToLower()); } } foreach (GameLevelDefinition customFloor in GameManager.Instance.customFloors) { if (customFloor.dungeonPrefabPath != null && customFloor.dungeonPrefabPath != string.Empty) { knownTilesets.Add(customFloor.dungeonPrefabPath.ToLower()); } if (customFloor.dungeonSceneName != null && customFloor.dungeonSceneName != string.Empty) { knownScenes.Add(customFloor.dungeonSceneName.ToLower()); } } ETGModConsole.Commands.AddUnit("load_flow", (Action)LoadFlowFunction, new AutocompletionSettings((Func)((int index, string input) => index switch { 0 => ReturnMatchesFromList(input.ToLower(), knownFlows), 1 => ReturnMatchesFromList(input.ToLower(), knownTilesets), 2 => ReturnMatchesFromList(input.ToLower(), knownScenes), _ => new string[0], }))); } public static void LoadFlowFunction(string[] args) { if ((args == null) | (args.Length == 0) | (args[0].ToLower() == "help")) { ETGModConsole.Log((object)"WARNING: this command can crash gungeon! \nIf the game hangs on loading screen, use console to load a different level!\nUsage: load_flow [FLOW NAME] [TILESET NAME]. [TILESET NAME] is optional. Press tab for a list of each.\nOnce you run the command and you press escape, you should see the loading screen. If nothing happens when you use the command, the flow you tried to load doesn't exist or the path to it needs to be manually specified. Example: \"load_flow NPCParadise\".\nIf it hangs on loading screen then the tileset you tried to use doesn't exist, is no longer functional, or the flow uses rooms that are not compatible with the chosen tileset.\nAlso, you should probably know that if you run this command from the breach, the game never gives you the ability to shoot or use active items, so you should probably start a run first.", false); return; } if (args != null && args.Length > 3) { ETGModConsole.Log((object)"ERROR: Too many arguments specified! DungoenFlow name, dungoen prefab name, and dungoen scene name are the expected arguments!", false); return; } bool flag = args.Length > 1; bool flag2 = args.Length > 2; if (flag && !knownTilesets.Contains(args[1]) && Object.op_Implicit((Object)(object)DungeonDatabase.GetOrLoadByName(args[1]))) { knownTilesets.Add(args[1]); } bool num = flag && !knownTilesets.Contains(args[1]); string text = args[0].Replace('-', ' '); if (ExpandDungeonFlow.GlitchChestFlows.Contains(text.ToLower())) { ExpandDungeonFlow.isGlitchFlow = true; } if (num) { ETGModConsole.Log((object)"Not a valid tileset!", false); return; } try { string text2 = "Attempting to load Dungeon Flow \"" + args[0] + "\""; if (flag) { text2 = text2 + " with tileset \"" + args[1] + "\""; } if (flag2) { text2 = text2 + " and scene \"" + args[2] + "\""; } text2 += "."; ETGModConsole.Log((object)text2, false); if (args.Length == 1) { GameManager.Instance.LoadCustomFlowForDebug(text, "", ""); } else if (args.Length == 2) { string text3 = args[1]; GameManager.Instance.LoadCustomFlowForDebug(text, text3, ""); } else if (args.Length == 3) { string text4 = args[1]; string text5 = args[2]; GameManager.Instance.LoadCustomFlowForDebug(text, text4, text5); } else { ETGModConsole.Log((object)"If you're trying to go nowhere, you're succeeding.", false); } } catch (Exception ex) { ETGModConsole.Log((object)"WHOOPS! Something went wrong! Most likely you tried to load a broken flow, or the tileset is incomplete and doesn't have the right tiles for the flow.", false); ETGModConsole.Log((object)"In order to get the game back into working order, the mod is now loading NPCParadise, with the castle tileset.", false); Debug.Log((object)"WHOOPS! Something went wrong! Most likely you tried to load a broken flow, or the tileset is incomplete and doesn't have the right tiles for the flow."); Debug.Log((object)"In order to get the game back into working order, the mod is now loading NPCParadise, with the castle tileset."); Debug.LogException(ex); ExpandDungeonFlow.isGlitchFlow = false; GameManager.Instance.LoadCustomFlowForDebug("npcparadise", "Base_Castle", "tt_castle"); } } } [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("ApacheThunder.etg.ExpandTheGungeon", "ExpandTheGungeon", "3.0.8")] public class ExpandTheGungeon : BaseUnityPlugin { public enum LoadStatus { PreStartup, PreInit, LoadStart, LoadAudio, LoadSprites, LoadItems, LoadPrefabs, LoadEnemies, LoadRooms, LoadFloors, LoadCleanup, LoadFinished, LoadError, Other } public static LoadStatus lastNonErrorState = LoadStatus.PreStartup; private static LoadStatus m_LoadStatus = LoadStatus.PreStartup; public static Texture2D ModLogo; public static Texture2D ModLogoMini; public static Hook GameManagerHook; public static Hook initializeMainMenuHook; public const string GUID = "ApacheThunder.etg.ExpandTheGungeon"; public const string ModName = "ExpandTheGungeon"; public const string VERSION = "3.0.8"; public static string ZipFilePath; public static string FilePath; public static string ResourcesPath; public static bool ItemAPISetup = false; public static bool ListsCleared = false; public static bool PreventInput = true; public static bool MrCapInUse = false; public static bool PortableShipInUse = false; public static string ModShaderBundleName = "ExpandShaders"; public const string ModAssetBundleName = "ExpandSharedAuto"; public const string ModLinuxShaderBundleName = "ExpandShaders_Linux"; public const string ModMacOSShaderBundleName = "ExpandShaders_MacOS"; public const string ModSettingsFileName = "ExpandTheGungeon_Settings.txt"; public const string ModAudioAssetBundleName = "ExpandAudio"; public const string ModSpriteAssetBundleName = "ExpandSpritesBase"; public const string ModSoundBankName = "EX_SFX"; public static StringDB Strings; public static List ExceptionTextList; public static string ExceptionText; public static LoadStatus loadStatus { get { return m_LoadStatus; } set { m_LoadStatus = value; if (value != LoadStatus.LoadError) { lastNonErrorState = value; } ExpandLoadingScreen.RefreshText = true; } } public void Start() { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Invalid comparison between Unknown and I4 //IL_01a6: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Invalid comparison between Unknown and I4 new Harmony("ApacheThunder.etg.ExpandTheGungeon").PatchAll(Assembly.GetExecutingAssembly()); FilePath = ETGMod.FolderPath((BaseUnityPlugin)(object)this); ZipFilePath = ETGMod.FolderPath((BaseUnityPlugin)(object)this); ResourcesPath = ETGMod.ResourcesDirectory; ExceptionTextList = new List(); bool flag = false; try { ExpandSettings.LoadSettings(); } catch (Exception lastException) { flag = true; ExpandAssets.LastException = lastException; } ExpandLoadingScreen.Init(); if (flag) { ExpandAssets.HandleError(); ExpandConsole.itemList = new List(); return; } ExpandConsole.itemList = new List { "Baby Good Hammer", "Corruption Bomb", "Table Tech Assassin", "ex:bloodied_scarf", "Cronenberg Bullets", "Mimiclay", "The Lead Key", "RockSlide", "Corrupted Master Round", "Wooden Crest", "Bootleg Pistol", "Bootleg Shotgun", "Bootleg Machine Pistol", "Bulletkin Gun", "Baby Sitter", "Pow Block", "Cursed Brick", "Black Revolver", "Golden Revolver", "Sonic Box", "The Third Eye", "Clown Friend", "Clown Bullets", "Portable Elevator", "Portable Ship", "Old Key", "Mr Cap" }; RuntimePlatform platform = Application.platform; if ((int)platform != 1) { if ((int)platform == 13) { ModShaderBundleName = "ExpandShaders_Linux"; } } else { ModShaderBundleName = "ExpandShaders_MacOS"; } loadStatus = LoadStatus.PreInit; try { ExpandAssets.InitCustomAssetBundles(); AssetBundle val = ResourceManager.LoadAssetBundle("ExpandSharedAuto"); if (Object.op_Implicit((Object)(object)val)) { ExpandFoyer.EXFoyerChecker = val.LoadAsset("EXFoyerChecker"); ModLogo = val.LoadAsset("EXLogo"); ModLogoMini = val.LoadAsset("EXLogoMini"); } val = null; ExpandObjectDatabase.InitObjectDatabase(); ExpandPrefabs.PreInit(); } catch (Exception lastException2) { ExpandAssets.LastException = lastException2; ExpandAssets.HandleError(); return; } ETGModMainBehaviour.WaitForGameManagerStart((Action)GMStart); } public void GMStart(GameManager gameManager) { //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Expected O, but got Unknown //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Expected O, but got Unknown loadStatus = LoadStatus.LoadStart; if (ExpandSettings.EnableAsyncAssetLoading) { ExpandLoadingScreen.UpdateLoadingBar(loadStatus); } if (ExceptionTextList.Count > 0) { foreach (string exceptionText in ExceptionTextList) { ETGModConsole.Log((object)exceptionText, false); } return; } ExpandFoyer.CreateFoyerController(); try { Strings = new StringDB(); ExpandHooks.InstallMidGameSaveHooks(); if (ExpandSettings.EnableLogo) { initializeMainMenuHook = new Hook((MethodBase)typeof(MainMenuFoyerController).GetMethod("InitializeMainMenu", BindingFlags.Instance | BindingFlags.Public), typeof(ExpandTheGungeon).GetMethod("InitializeMainMenuHook", BindingFlags.Instance | BindingFlags.Public), (object)typeof(MainMenuFoyerController)); } gameManager.OnNewLevelFullyLoaded += ExpandObjectMods.InitSpecialMods; ExpandHooks.InstallRequiredHooks(); } catch (Exception ex) { ETGModConsole.Log((object)"[ExpandTheGungeon] ERROR: Exception occured while installing hooks!", false); ExpandLoadingScreen.LoadText[LoadStatus.LoadError] = "ERROR: Exception while installing hooks!"; loadStatus = LoadStatus.LoadError; ExpandLoadingScreen.UpdateText(ExpandLoadingScreen.LoadText[loadStatus], noCloser: true); Debug.Log((object)"[ExpandTheGungeon] ERROR: Exception occured while installing hooks!"); Debug.LogException(ex); return; } loadStatus = LoadStatus.LoadAudio; AssetBundle expandSharedAssets = ResourceManager.LoadAssetBundle("ExpandSharedAuto"); AssetBundle expandAudio = ResourceManager.LoadAssetBundle("ExpandAudio"); AssetBundle sharedAssets = ResourceManager.LoadAssetBundle("shared_auto_001"); ResourceManager.LoadAssetBundle("brave_resources_001"); try { ExpandAssets.InitAudio(expandAudio, "EX_SFX"); } catch (Exception lastException) { ExpandAssets.LastException = lastException; ExpandAssets.HandleError(); return; } loadStatus = LoadStatus.LoadSprites; try { ExpandDungeonPrefabs.InitFloorDefinitions(gameManager); ExpandPrefabs.InitSpriteCollections(expandSharedAssets, sharedAssets); ExpandEnemyDatabase.InitSpriteCollections(expandSharedAssets); } catch (Exception lastException2) { expandAudio = null; sharedAssets = null; ExpandAssets.LastException = lastException2; ExpandAssets.HandleError(); return; } loadStatus = LoadStatus.LoadItems; ExpandAssets.SetupItemAPI(expandSharedAssets); expandSharedAssets = null; expandAudio = null; sharedAssets = null; if (loadStatus == LoadStatus.LoadError) { ExpandAssets.HandleError(); } else if (Object.op_Implicit((Object)(object)ExpandLoadingScreen.Instance)) { ((MonoBehaviour)ExpandLoadingScreen.Instance).StartCoroutine(ExpandAssets.InitAssets(gameManager)); } else { ((MonoBehaviour)gameManager).StartCoroutine(ExpandAssets.InitAssets(gameManager)); } } public void InitializeMainMenuHook(Action orig, MainMenuFoyerController self) { //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0071: 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_0085: 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_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: 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_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) orig(self); if (!ExpandSettings.EnableLogo) { return; } bool flag = false; if (Object.FindObjectsOfType() != null) { BaseUnityPlugin[] array = Object.FindObjectsOfType(); for (int i = 0; i < array.Length; i++) { if (array[i].Info.Metadata.GUID.ToLower().Contains("frostandgunfire")) { flag = true; } } } if (flag) { SetupLabel(self.TitleCard, "ExpandTheGungeon: v3.0.8", Color.white, Vector2.op_Implicit(new Vector2(380f, 22f)), new Vector2(264f, 22f), new Vector2(276f, 22f)); return; } if ((Object)(object)ModLogo == (Object)null) { ModLogo = ExpandAssets.LoadAsset("EXLogo"); ((Texture)ModLogo).filterMode = (FilterMode)0; } ((dfTextureSprite)self.TitleCard).Texture = (Texture)(object)ModLogo; SetupLabel(self.TitleCard, "v3.0.8", Color.black, Vector2.op_Implicit(new Vector2(564f, -28f)), new Vector2(64f, 16f), new Vector2(74f, 16f)); } private void SetupLabel(dfControl controlParent, string TextString, Color TextColor, Vector3 UIPosition, Vector2 Size, Vector2 MaxSize) { //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_0109: 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_0126: 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_0135: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_017e: 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_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //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_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_01f6: 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_021a: Unknown result type (might be due to invalid IL or missing references) //IL_021f: Unknown result type (might be due to invalid IL or missing references) //IL_0234: Unknown result type (might be due to invalid IL or missing references) //IL_023f: Unknown result type (might be due to invalid IL or missing references) //IL_0244: Unknown result type (might be due to invalid IL or missing references) //IL_024b: Unknown result type (might be due to invalid IL or missing references) //IL_0252: 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_0265: Expected O, but got Unknown //IL_0283: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing references) //IL_0208: Unknown result type (might be due to invalid IL or missing references) dfTiledSprite component = ExpandAssets.LoadOfficialAsset("Weapon Skull Ammo FG", ExpandAssets.AssetSource.SharedAuto1).GetComponent(); dfFont component2 = ExpandAssets.LoadOfficialAsset("04b03_df40", ExpandAssets.AssetSource.SharedAuto1).GetComponent(); dfLabel val = controlParent.AddControl(); ((Object)val).name = "EXVersionLabel"; val.Atlas = ((dfSprite)component).Atlas; val.Font = (dfFontBase)(object)component2; ((dfControl)val).Anchor = (dfAnchorStyle)8; ((dfControl)val).IsEnabled = true; ((dfControl)val).IsVisible = true; ((dfControl)val).IsInteractive = true; ((dfControl)val).Tooltip = string.Empty; ((dfControl)val).Pivot = (dfPivotPoint)8; ((dfControl)val).zindex = 9; ((dfControl)val).Opacity = 1f; ((dfControl)val).Color = Color32.op_Implicit(TextColor); ((dfControl)val).DisabledColor = Color32.op_Implicit(Color.gray); ((dfControl)val).Size = Size; ((dfControl)val).MinimumSize = ((dfControl)val).Size; ((dfControl)val).MaximumSize = MaxSize; ((dfControl)val).ClipChildren = false; ((dfControl)val).InverseClipChildren = false; ((dfControl)val).TabIndex = -1; ((dfControl)val).CanFocus = false; ((dfControl)val).AutoFocus = false; ((dfControl)val).IsLocalized = false; ((dfControl)val).HotZoneScale = Vector2.one; ((dfControl)val).AllowSignalEvents = true; ((dfControl)val).PrecludeUpdateCycle = false; val.PerCharacterOffset = Vector2.op_Implicit(Vector2.zero); val.PreventFontChanges = true; val.BackgroundSprite = string.Empty; val.BackgroundColor = Color32.op_Implicit(Color.white); if (TextColor == Color.white) { val.BackgroundColor = Color32.op_Implicit(Color.black); } val.AutoSize = true; val.AutoHeight = false; val.WordWrap = false; val.Text = TextString; val.BottomColor = Color32.op_Implicit(Color.white); if (TextColor == Color.white) { val.BottomColor = Color32.op_Implicit(Color.black); } val.TextAlignment = (TextAlignment)2; val.VerticalAlignment = (dfVerticalAlignment)0; val.TextScale = 0.5f; val.TextScaleMode = (dfTextScaleMode)0; val.CharacterSpacing = 0; val.ColorizeSymbols = false; val.ProcessMarkup = false; val.Outline = false; val.OutlineSize = 0; val.ShowGradient = false; val.OutlineColor = Color32.op_Implicit(Color.white); if (TextColor == Color.white) { val.OutlineColor = Color32.op_Implicit(Color.black); } val.Shadow = false; val.ShadowColor = Color32.op_Implicit(Color.gray); val.ShadowOffset = new Vector2(1f, -1f); val.Padding = new RectOffset { left = 0, right = 0, top = 0, bottom = 0 }; val.TabSize = 48; val.MaintainJapaneseFont = false; val.MaintainKoreanFont = false; val.MaintainRussianFont = false; ((dfControl)val).Position = UIPosition; component2 = null; component = null; } } public static class Tools { public static bool verbose = false; public static string modID = "EX"; private static string defaultLog = Path.Combine(ETGMod.ResourcesDirectory, modID + "_customItemsLog.txt"); public static void Init() { if (File.Exists(defaultLog)) { File.Delete(defaultLog); } } public static void Print(T obj, string color = "FFFFFF", bool force = false) { if (verbose || force) { ETGModConsole.Log((object)("" + modID + ": " + obj.ToString() + ""), false); } Log(obj.ToString()); } public static void PrintRaw(T obj, bool force = false) { if (verbose || force) { ETGModConsole.Log((object)obj.ToString(), false); } Log(obj.ToString()); } public static void PrintError(T obj, string color = "FF0000") { ETGModConsole.Log((object)("" + modID + ": " + obj.ToString() + ""), false); Log(obj.ToString()); } public static void PrintException(Exception e, string color = "FF0000") { ETGModConsole.Log((object)("" + modID + ": " + e.Message + ""), false); ETGModConsole.Log((object)e.StackTrace, false); Log(e.Message); Log("\t" + e.StackTrace); } public static void Log(T obj) { using StreamWriter streamWriter = new StreamWriter(Path.Combine(ETGMod.ResourcesDirectory, defaultLog), append: true); streamWriter.WriteLine(obj.ToString()); } public static void Log(T obj, string fileName) { if (verbose) { using (StreamWriter streamWriter = new StreamWriter(Path.Combine(ETGMod.ResourcesDirectory, fileName), append: true)) { streamWriter.WriteLine(obj.ToString()); } } } public static void LogStringToFile(string text, string fileName) { using StreamWriter streamWriter = new StreamWriter(Path.Combine(ETGMod.ResourcesDirectory, fileName), append: true); streamWriter.WriteLine(text); } public static void Dissect(this GameObject obj) { Print(((Object)obj).name + " Components:"); Component[] components = obj.GetComponents(); foreach (Component val in components) { Print(" " + ((object)val).GetType()); } } public static void ShowHitBox(this SpeculativeRigidbody body) { //IL_0049: 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_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: 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_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) PixelCollider hitboxPixelCollider = body.HitboxPixelCollider; GameObject obj = GameObject.CreatePrimitive((PrimitiveType)3); ((Object)obj).name = "HitboxDisplay"; obj.transform.SetParent(((BraveBehaviour)body).transform); Print(((Object)body).name ?? ""); Print($" Offset: {hitboxPixelCollider.Offset}, Dimesions: {hitboxPixelCollider.Dimensions}"); obj.transform.localScale = new Vector3((float)hitboxPixelCollider.Dimensions.x / 16f, (float)hitboxPixelCollider.Dimensions.y / 16f, 1f); Vector3 localPosition = new Vector3((float)hitboxPixelCollider.Offset.x + (float)hitboxPixelCollider.Dimensions.x * 0.5f, (float)hitboxPixelCollider.Offset.y + (float)hitboxPixelCollider.Dimensions.y * 0.5f, -16f) / 16f; obj.transform.localPosition = localPosition; } public static void HideHitBox(this SpeculativeRigidbody body) { Transform val = ((BraveBehaviour)body).transform.Find("HitboxDisplay"); if (Object.op_Implicit((Object)(object)val)) { Object.Destroy((Object)(object)val); } } public static void ExportTexture(Texture texture) { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Expected O, but got Unknown File.WriteAllBytes(Path.Combine(ETGMod.ResourcesDirectory, ((Object)texture).name + ".png"), ImageConversion.EncodeToPNG((Texture2D)texture)); } public static void ExportTexture(Texture2D texture) { File.WriteAllBytes(Path.Combine(ETGMod.ResourcesDirectory, ((Object)texture).name + ".png"), ImageConversion.EncodeToPNG(texture)); } public static void DumpSpecificSpriteCollection(tk2dSpriteCollectionData sprites, bool debugMode = false, bool overrideFlag = false) { //IL_039b: Unknown result type (might be due to invalid IL or missing references) //IL_03a2: Expected O, but got Unknown //IL_0427: Unknown result type (might be due to invalid IL or missing references) //IL_042e: Expected O, but got Unknown //IL_0630: Unknown result type (might be due to invalid IL or missing references) string spriteCollectionName = sprites.spriteCollectionName; string text = "DUMPsprites/" + spriteCollectionName; string path = Path.Combine(ETGMod.ResourcesDirectory, text.Replace('/', Path.DirectorySeparatorChar).Replace('\\', Path.DirectorySeparatorChar) + ".png"); if (debugMode) { ETGModConsole.Log((object)("[ExpandTheGungeon] Debug: Current Sprite Collection Length: " + sprites.spriteDefinitions.Length), false); } if (File.Exists(path)) { return; } Texture2D val = null; Texture2D val2 = null; Color[] array = null; for (int i = 0; i < sprites.spriteDefinitions.Length; i++) { tk2dSpriteDefinition val3 = sprites.spriteDefinitions[i]; Texture mainTexture = val3.material.mainTexture; Texture2D val4 = (Texture2D)(object)((mainTexture is Texture2D) ? mainTexture : null); if (!((Object)(object)val4 != (Object)null) && val3.Valid && !((Object)(object)val3.materialInst != (Object)null && overrideFlag)) { continue; } try { _ = val3.name; string text2 = text + "/" + val3.name; if ((Object)(object)val != (Object)(object)val4) { if (debugMode) { ETGModConsole.Log((object)"[ExpandTheGungeon] Debug: Dumping Sprite Atlas to file.", false); } val = val4; val2 = ETGMod.GetRW(val4); array = val2.GetPixels(); path = Path.Combine(ETGMod.ResourcesDirectory, text.Replace('/', Path.DirectorySeparatorChar).Replace('\\', Path.DirectorySeparatorChar) + ".png"); Directory.GetParent(path).Create(); File.WriteAllBytes(path, ImageConversion.EncodeToPNG(val2)); } double num = 1.0; double num2 = 1.0; double num3 = 0.0; double num4 = 0.0; for (int j = 0; j < val3.uvs.Length; j++) { if ((double)val3.uvs[j].x < num) { num = val3.uvs[j].x; } if ((double)val3.uvs[j].y < num2) { num2 = val3.uvs[j].y; } if (num3 < (double)val3.uvs[j].x) { num3 = val3.uvs[j].x; } if (num4 < (double)val3.uvs[j].y) { num4 = val3.uvs[j].y; } } int num5 = (int)Math.Floor(num * (double)((Texture)val4).width); int num6 = (int)Math.Floor(num2 * (double)((Texture)val4).height); int num7 = (int)Math.Ceiling(num3 * (double)((Texture)val4).width); int num8 = (int)Math.Ceiling(num4 * (double)((Texture)val4).height); int num9 = num7 - num5; int num10 = num8 - num6; Texture2D val5; if ((double)val3.uvs[0].x == num && (double)val3.uvs[0].y == num2 && (double)val3.uvs[1].x == num3 && (double)val3.uvs[1].y == num2 && (double)val3.uvs[2].x == num && (double)val3.uvs[2].y == num4 && (double)val3.uvs[3].x == num3 && (double)val3.uvs[3].y == num4) { if (debugMode) { ETGModConsole.Log((object)("[ExpandTheGungeon] Debug: flag8 at SpriteID " + i), false); } val5 = new Texture2D(num9, num10); val5.SetPixels(val2.GetPixels(num5, num6, num9, num10)); } else { if (val3.uvs[0].x == val3.uvs[1].x) { int num11 = num10; num10 = num9; num9 = num11; if (debugMode) { ETGModConsole.Log((object)("[ExpandTheGungeon] Debug: flag9 at SpriteID " + i), false); } } if (debugMode) { ETGModConsole.Log((object)("[ExpandTheGungeon] Debug: Prepering to dump sprite texture at SpriteID " + i), false); } val5 = new Texture2D(num9, num10); double num12 = val3.uvs[1].x - val3.uvs[0].x; double num13 = val3.uvs[2].x - val3.uvs[0].x; double num14 = val3.uvs[1].y - val3.uvs[0].y; double num15 = val3.uvs[2].y - val3.uvs[0].y; double num16 = (float)((Texture)val4).width * (val3.uvs[3].x - val3.uvs[0].x); double num17 = (float)((Texture)val4).height * (val3.uvs[3].y - val3.uvs[0].y); double num18 = 0.001; double num19 = ((num12 < num18) ? 0.0 : num16); double num20 = ((num13 < num18) ? 0.0 : num16); double num21 = ((num14 < num18) ? 0.0 : num17); double num22 = ((num15 < num18) ? 0.0 : num17); if (debugMode) { ETGModConsole.Log((object)"[ExpandTheGungeon] Debug: Prepering to set pixels for texture2D4...", false); } for (int k = 0; k < num10; k++) { double num23 = (double)k / (double)num10; for (int l = 0; l < num9; l++) { double num24 = (double)l / (double)num9; double num25 = num24 * num19 + num23 * num20; double num26 = num24 * num21 + num23 * num22; double num27 = Math.Round((double)(val3.uvs[0].y * (float)((Texture)val4).height) + num26) * (double)((Texture)val4).width + Math.Round((double)(val3.uvs[0].x * (float)((Texture)val4).width) + num25); val5.SetPixel(l, k, array[(int)num27]); } } } if (debugMode) { ETGModConsole.Log((object)"[ExpandTheGungeon] Debug: Writing sprite texture to file...", false); } path = Path.Combine(ETGMod.ResourcesDirectory, text2.Replace('/', Path.DirectorySeparatorChar).Replace('\\', Path.DirectorySeparatorChar) + ".png"); if (!File.Exists(path)) { Directory.GetParent(path).Create(); File.WriteAllBytes(path, ImageConversion.EncodeToPNG(val5)); } } catch (Exception ex) { if (debugMode) { ETGModConsole.Log((object)("Exception occured while processing sprite id '" + i + "'!"), false); Debug.LogException(ex); } } } } } public class ExpandAssets { public enum AssetSource { BraveResources, SharedAuto1, SharedAuto2, EnemiesBase, FlowBase } public static Exception LastException; public static IEnumerator InitAssets(GameManager gameManager) { AssetBundle expandSharedAssets1 = ResourceManager.LoadAssetBundle("ExpandSharedAuto"); ResourceManager.LoadAssetBundle("ExpandAudio"); AssetBundle sharedAssets = ResourceManager.LoadAssetBundle("shared_auto_001"); AssetBundle sharedAssets2 = ResourceManager.LoadAssetBundle("shared_auto_002"); AssetBundle braveResources = ResourceManager.LoadAssetBundle("brave_resources_001"); AssetBundle enemiesBase = ResourceManager.LoadAssetBundle("enemies_base_001"); ExpandTheGungeon.loadStatus = ExpandTheGungeon.LoadStatus.LoadPrefabs; if (ExpandSettings.EnableAsyncAssetLoading) { yield return ExpandLoadingScreen.WaitForTextUpdate(); } try { ExpandPrefabs.InitPrefabs(expandSharedAssets1, sharedAssets, sharedAssets2, braveResources, enemiesBase); } catch (Exception lastException) { LastException = lastException; HandleError(); yield break; } ExpandTheGungeon.loadStatus = ExpandTheGungeon.LoadStatus.LoadEnemies; if (ExpandSettings.EnableAsyncAssetLoading) { yield return ExpandLoadingScreen.WaitForTextUpdate(); } try { ExpandAmmonomiconDatabase.Init(expandSharedAssets1); ExpandEnemyDatabase.InitPrefabs(expandSharedAssets1); } catch (Exception lastException2) { LastException = lastException2; HandleError(); yield break; } ExpandTheGungeon.loadStatus = ExpandTheGungeon.LoadStatus.LoadRooms; if (ExpandSettings.EnableAsyncAssetLoading) { yield return ExpandLoadingScreen.WaitForTextUpdate(); } try { ExpandRoomPrefabs.InitCustomRooms(expandSharedAssets1, sharedAssets, sharedAssets2, braveResources, enemiesBase); } catch (Exception lastException3) { LastException = lastException3; HandleError(); yield break; } ExpandTheGungeon.loadStatus = ExpandTheGungeon.LoadStatus.LoadFloors; if (ExpandSettings.EnableAsyncAssetLoading) { yield return ExpandLoadingScreen.WaitForTextUpdate(); } try { ExpandDungeonFlow.InitDungeonFlows(sharedAssets2); BootlegGuns.PostInit(); ClownFriend.PostInit(); ExpandDungeonPrefabs.InitDungoenPrefabs(expandSharedAssets1, sharedAssets, sharedAssets2, braveResources); } catch (Exception lastException4) { LastException = lastException4; HandleError(); yield break; } ExpandTheGungeon.loadStatus = ExpandTheGungeon.LoadStatus.LoadCleanup; if (ExpandSettings.EnableAsyncAssetLoading) { yield return ExpandLoadingScreen.WaitForTextUpdate(); } try { DungeonFlowModule.Install(); ExpandConsole.InitConsoleCommands("expand"); if (!ETGModConsole.DungeonDictionary.ContainsKey("foyer")) { ETGModConsole.DungeonDictionary.Add("foyer", "tt_foyer"); } ETGModConsole.DungeonDictionary.Add("belly", "tt_belly"); ETGModConsole.DungeonDictionary.Add("monster", "tt_belly"); ETGModConsole.DungeonDictionary.Add("jungle", "tt_jungle"); ETGModConsole.DungeonDictionary.Add("office", "tt_office"); ETGModConsole.DungeonDictionary.Add("future", "tt_future"); ETGModConsole.DungeonDictionary.Add("phobos", "tt_phobos"); ETGModConsole.DungeonDictionary.Add("space", "tt_space"); ETGModConsole.DungeonDictionary.Add("west", "tt_west"); ETGModConsole.DungeonDictionary.Add("oldwest", "tt_west"); ETGModConsole.DungeonDictionary.Add("backrooms", "tt_backrooms"); } catch (Exception lastException5) { LastException = lastException5; HandleError(); yield break; } if (ExpandSettings.EnableAsyncAssetLoading) { Object.Destroy((Object)(object)AmmonomiconController.Instance); } if (ExpandTheGungeon.loadStatus == ExpandTheGungeon.LoadStatus.LoadError) { HandleError(); yield break; } ExpandTheGungeon.loadStatus = ExpandTheGungeon.LoadStatus.LoadFinished; if (ExpandSettings.EnableAsyncAssetLoading) { yield return ExpandLoadingScreen.WaitForTextUpdate(); } Object.DontDestroyOnLoad((Object)new GameObject("ExpandFinished")); if (!ExpandLoadingScreen.KeepLoading && Object.op_Implicit((Object)(object)ExpandLoadingScreen.Instance)) { yield return ((MonoBehaviour)ExpandLoadingScreen.Instance).StartCoroutine(ExpandLoadingScreen.DestroyLoadScreen(ExpandLoadingScreen.Instance)); } } public static void SetupItemAPI(AssetBundle expandSharedAssets1) { if (!ExpandTheGungeon.ItemAPISetup) { try { Assets.SetupSpritesFromAssembly(Assembly.GetExecutingAssembly(), "ExpandTheGungeon/Sprites"); Tools.Init(); ItemBuilder.Init(); BabyGoodHammer.Init(expandSharedAssets1); CorruptionBomb.Init(expandSharedAssets1); ExpandRedScarf.Init(expandSharedAssets1); TableTechAssassin.Init(expandSharedAssets1); CorruptedJunk.Init(expandSharedAssets1); BootlegGuns.Init(expandSharedAssets1); CronenbergBullets.Init(expandSharedAssets1); Mimiclay.Init(expandSharedAssets1); TheLeadKey.Init(expandSharedAssets1); RockSlide.Init(expandSharedAssets1); CustomMasterRounds.Init(expandSharedAssets1); WoodenCrest.Init(expandSharedAssets1); BulletKinGun.Init(); BabySitter.Init(expandSharedAssets1); PowBlock.Init(expandSharedAssets1); CursedBrick.Init(expandSharedAssets1); SonicRing.Init(expandSharedAssets1); SonicBox.Init(expandSharedAssets1); ThirdEye.Init(expandSharedAssets1); ClownBullets.Init(expandSharedAssets1); ClownFriend.Init(expandSharedAssets1); PortableElevator.Init(expandSharedAssets1); PortableShip.Init(expandSharedAssets1); WestBrosRevolverGenerator.Init(); HotShotShotGun.Init(); ExpandKeyBulletPickup.Init(expandSharedAssets1); MrCap.Init(expandSharedAssets1); ExpandSynergies.Init(); ExpandTheGungeon.ItemAPISetup = true; } catch (Exception ex) { ExpandTheGungeon.loadStatus = ExpandTheGungeon.LoadStatus.LoadError; LastException = ex; Tools.PrintException(ex); } } } public static void HandleError(bool printToConsole = true) { string text = "ERROR: "; text = ExpandTheGungeon.lastNonErrorState switch { ExpandTheGungeon.LoadStatus.PreInit => text + "Error encountered during pre-init!", ExpandTheGungeon.LoadStatus.LoadStart => text + "Error encountered during load start!", ExpandTheGungeon.LoadStatus.LoadAudio => text + "Error setting up audio!", ExpandTheGungeon.LoadStatus.LoadSprites => text + "Error building sprite collections!", ExpandTheGungeon.LoadStatus.LoadItems => text + "Error building item prefabs!", ExpandTheGungeon.LoadStatus.LoadPrefabs => text + "Error building prefabs!", ExpandTheGungeon.LoadStatus.LoadEnemies => text + "Error building enemy prefabs!", ExpandTheGungeon.LoadStatus.LoadRooms => text + "Error building room prefabs!", ExpandTheGungeon.LoadStatus.LoadFloors => text + "Error building gungeon floors!", ExpandTheGungeon.LoadStatus.LoadCleanup => text + "Error encountered during load cleanup!", _ => text + "Unknown Error!", }; ExpandLoadingScreen.LoadText[ExpandTheGungeon.LoadStatus.LoadError] = text; ExpandTheGungeon.loadStatus = ExpandTheGungeon.LoadStatus.LoadError; if (!ExpandSettings.EnableAsyncAssetLoading) { ExpandLoadingScreen.UpdateText(text, noCloser: true); } if (printToConsole) { ETGModConsole.Log((object)("[ExpandTheGungeon] " + text), true); } if (LastException != null) { Debug.Log((object)LastException); } } public static T LoadShaderAsset(string assetPath) where T : Object { return ResourceManager.LoadAssetBundle(ExpandTheGungeon.ModShaderBundleName).LoadAsset(assetPath); } public static T LoadAsset(string assetPath) where T : Object { return ResourceManager.LoadAssetBundle("ExpandSharedAuto").LoadAsset(assetPath); } public static T LoadSpriteAsset(string assetPath) where T : Object { return ResourceManager.LoadAssetBundle("ExpandSpritesBase").LoadAsset(assetPath); } public static T LoadOfficialAsset(string assetPath, AssetSource assetType) where T : Object { return assetType switch { AssetSource.BraveResources => ResourceManager.LoadAssetBundle("brave_resources_001").LoadAsset(assetPath), AssetSource.SharedAuto1 => ResourceManager.LoadAssetBundle("shared_auto_001").LoadAsset(assetPath), AssetSource.SharedAuto2 => ResourceManager.LoadAssetBundle("shared_auto_002").LoadAsset(assetPath), AssetSource.EnemiesBase => ResourceManager.LoadAssetBundle("enemies_base_001").LoadAsset(assetPath), AssetSource.FlowBase => ResourceManager.LoadAssetBundle("flows_base_001").LoadAsset(assetPath), _ => ResourceManager.LoadAssetBundle("brave_resources_001").LoadAsset(assetPath), }; } public static void InitSpritesAssetBundle() { Dictionary dictionary = (Dictionary)typeof(ResourceManager).GetField("LoadedBundles", BindingFlags.Static | BindingFlags.NonPublic).GetValue(typeof(ResourceManager)); AssetBundle val = null; val = LoadFromModZIPOrModFolder("ExpandSpritesBase".ToLower()); if ((Object)(object)val != (Object)null) { dictionary.Add("ExpandSpritesBase", val); ExpandSettings.spritesBundlePresent = true; } } public static void InitCustomAssetBundles(string nameSpace = null) { Dictionary dictionary = ReflectionHelpers.ReflectGetField>(typeof(ResourceManager), "LoadedBundles"); AssetBundle val = null; AssetBundle val2 = null; AssetBundle val3 = null; try { if (string.IsNullOrEmpty(nameSpace)) { val = LoadFromModZIPOrModFolder("ExpandSharedAuto".ToLower()); val2 = LoadFromModZIPOrModFolder("ExpandAudio".ToLower()); val3 = LoadFromModZIPOrModFolder(ExpandTheGungeon.ModShaderBundleName.ToLower()); } else { val = LoadAssetBundleFromResource("ExpandSharedAuto", nameSpace); val2 = LoadAssetBundleFromResource("ExpandAudio", nameSpace); val3 = LoadAssetBundleFromResource(ExpandTheGungeon.ModShaderBundleName, nameSpace); } if ((Object)(object)val != (Object)null) { dictionary.Add("ExpandSharedAuto", val); if ((Object)(object)val2 != (Object)null) { dictionary.Add("ExpandAudio", val2); if ((Object)(object)val3 != (Object)null) { dictionary.Add(ExpandTheGungeon.ModShaderBundleName, val3); return; } string text = "[ExpandTheGungeon] ERROR: ExpandShaders asset bundle not found!"; Debug.Log((object)text); ExpandTheGungeon.ExceptionTextList.Add(text); } else { string text2 = "[ExpandTheGungeon] ERROR: ExpandAudio asset bundle not found!"; Debug.Log((object)text2); ExpandTheGungeon.ExceptionTextList.Add(text2); } } else { string text3 = "[ExpandTheGungeon] ERROR: ExpandSharedAuto asset bundle not found!"; Debug.Log((object)text3); ExpandTheGungeon.ExceptionTextList.Add(text3); } } catch (Exception ex) { string text4 = "[ExpandTheGungeon] ERROR: Exception while loading custom asset bundles! Possible GUID conflict with other custom AssetBundles?"; Debug.Log((object)text4); Debug.LogException(ex); ExpandTheGungeon.ExceptionTextList.Add(text4); } } public static AssetBundle LoadFromModZIPOrModFolder(string AssetBundleName) { AssetBundle val = null; if (File.Exists(ExpandTheGungeon.ZipFilePath)) { if (ExpandSettings.debugMode) { Debug.Log((object)"Zip Found"); } ZipFile val2 = ZipFile.Read(ExpandTheGungeon.ZipFilePath); if (val2 != null && val2.Entries.Count > 0) { foreach (ZipEntry entry in val2.Entries) { if (entry.FileName == AssetBundleName) { using (MemoryStream memoryStream = new MemoryStream()) { entry.Extract((Stream)memoryStream); memoryStream.Seek(0L, SeekOrigin.Begin); val = AssetBundle.LoadFromStream((Stream)memoryStream); } break; } } } } else if (File.Exists(ExpandTheGungeon.FilePath + "/" + AssetBundleName)) { try { val = AssetBundle.LoadFromFile(ExpandTheGungeon.FilePath + "/" + AssetBundleName); } catch (Exception) { } } if (Object.op_Implicit((Object)(object)val)) { return val; } return null; } public static AssetBundle LoadAssetBundleFromResource(string AssetBundleName, string nameSpace) { using (Stream stream = Assembly.GetCallingAssembly().GetManifestResourceStream($"{nameSpace}." + AssetBundleName)) { if (stream != null) { byte[] array = new byte[stream.Length]; stream.Read(array, 0, array.Length); return AssetBundle.LoadFromMemory(array); } } ETGModConsole.Log((object)("No bytes found in " + AssetBundleName), false); return null; } public static void InitAudio(AssetBundle expandAudio, string assetPath) { //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) TextAsset val = expandAudio.LoadAsset(assetPath); if (!Object.op_Implicit((Object)(object)val)) { return; } byte[] bytes = val.bytes; IntPtr intPtr = Marshal.AllocHGlobal(bytes.Length); try { Marshal.Copy(bytes, 0, intPtr, bytes.Length); uint num = default(uint); AKRESULT val2 = AkSoundEngine.LoadAndDecodeBankFromMemory(intPtr, (uint)bytes.Length, false, ((Object)val).name, false, ref num); if (ExpandSettings.debugMode) { Console.WriteLine($"Result of soundbank load: {val2}."); } } finally { Marshal.FreeHGlobal(intPtr); } } public static void DumpTexture2DToFile(Texture2D target, bool useRandomFilenames = false) { if ((Object)(object)target == (Object)null) { return; } string text = "DUMPsprites/DUMP" + ((Object)target).name; string text2 = text + "/DUMP" + ((Object)target).name; if (useRandomFilenames) { text = text + "_" + Guid.NewGuid(); text2 = text2 + "_" + Guid.NewGuid(); } string path = Path.Combine(ETGMod.ResourcesDirectory, text.Replace('/', Path.DirectorySeparatorChar).Replace('\\', Path.DirectorySeparatorChar) + ".png"); if (!File.Exists(path)) { path = Path.Combine(ETGMod.ResourcesDirectory, text2.Replace('/', Path.DirectorySeparatorChar).Replace('\\', Path.DirectorySeparatorChar) + ".png"); if (!File.Exists(path)) { Directory.GetParent(path).Create(); File.WriteAllBytes(path, ImageConversion.EncodeToPNG(target)); } } } public static string RetrieveStringFromAssetBundle(AssetBundle bundle, string AssetPath) { return bundle.LoadAsset(AssetPath).text; } public static List BuildStringListFromAssetBundle(string assetPath) { if (string.IsNullOrEmpty(assetPath)) { return new List(); } TextAsset val = ExpandAssets.LoadAsset(assetPath); if (!Object.op_Implicit((Object)(object)val)) { ETGModConsole.Log((object)("[ExpandTheGungeon] ERROR: TextAsset: " + assetPath + " was not found!"), false); return new List(0); } string text = BytesToString(ExpandAssets.LoadAsset(assetPath).bytes); if (string.IsNullOrEmpty(text)) { ETGModConsole.Log((object)("[ExpandTheGungeon] ERROR: TextAsset: " + ((Object)val).name + " contains no strings!"), false); return new List(0); } List list = new List(); string[] array = text.Split(new char[1] { '\n' }); if ((array == null) | (array.Length == 0)) { return list; } string[] array2 = array; foreach (string item in array2) { list.Add(item); } return list; } public static string BytesToString(byte[] bytes) { return Encoding.UTF8.GetString(bytes, 0, bytes.Length); } public static void SaveStringToFile(string text, string filePath, string fileName) { using StreamWriter streamWriter = new StreamWriter(Path.Combine(filePath, fileName), append: true); streamWriter.WriteLine(text); } public static string DeserializeJSONDataFromAssetBundle(AssetBundle bundle, string AssetPath, string basePath = "Assets/ExpandSerializedData/", string fileExtension = ".txt") { string text = string.Empty; try { text = bundle.LoadAsset(basePath + AssetPath + fileExtension).text; } catch (Exception) { } if (!string.IsNullOrEmpty(text)) { return text; } ETGModConsole.Log((object)("[ExpandTheGungeon] Error! Requested Text asset: " + AssetPath + " returned null! Ensure asset exists in asset bundle!"), true); return string.Empty; } public static string[] GetLinesFromAssetBundle(AssetBundle bundle, string AssetPath, string basePath = "Assets/", string fileExtension = ".txt") { string text = string.Empty; try { text = bundle.LoadAsset(basePath + AssetPath + fileExtension).text; } catch (Exception) { } if (!string.IsNullOrEmpty(text)) { return text.Split(new char[1] { '\n' }); } ETGModConsole.Log((object)("[ExpandTheGungeon] Error! Requested Text asset: " + AssetPath + " returned null! Ensure asset exists in asset bundle!"), true); return new string[0]; } public static TileIndexGrid DeserializeTileIndexGridFromAssetBundle(AssetBundle bundle, string AssetPath, string basePath = "Assets/ExpandSerializedData/TilesetData/", string fileExtension = ".txt") { string text = string.Empty; try { text = bundle.LoadAsset(basePath + AssetPath + fileExtension).text; } catch (Exception) { } if (!string.IsNullOrEmpty(text)) { TileIndexGrid val = ScriptableObject.CreateInstance(); JsonUtility.FromJsonOverwrite(text, (object)val); return val; } ETGModConsole.Log((object)("[ExpandTheGungeon] Error! Requested Text asset: " + AssetPath + " returned null! Ensure asset exists in asset bundle!"), true); return null; } public static FacewallIndexGridDefinition DeserializeFacewallGridDefinitionFromAssetBundle(AssetBundle bundle, string AssetPath, string basePath = "Assets/ExpandSerializedData/TilesetData/", string fileExtension = ".txt") { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Expected O, but got Unknown string text = string.Empty; try { text = bundle.LoadAsset(basePath + AssetPath + fileExtension).text; } catch (Exception) { } if (!string.IsNullOrEmpty(text)) { FacewallIndexGridDefinition val = new FacewallIndexGridDefinition(); JsonUtility.FromJsonOverwrite(text, (object)val); return val; } ETGModConsole.Log((object)("[ExpandTheGungeon] Error! Requested Text asset: " + AssetPath + " returned null! Ensure asset exists in asset bundle!"), true); return null; } } } namespace ExpandTheGungeon.SpriteAPI { public static class SpriteSerializer { private static tk2dSpriteCollectionData newCollection; private static RuntimeAtlasPacker AtlasPacker; public static void SerializeSpriteCollection(string CollectionName, List spriteNames, int Xres, int Yres, string pathOverride = null) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Expected O, but got Unknown if (!ExpandSettings.spritesBundlePresent) { ETGModConsole.Log((object)"[ExpandTheGungeon] Unserialized sprite textures stored in optional asset bundle but it is missing! Ensure you have it setup properly!", false); return; } GameObject val = new GameObject(CollectionName); newCollection = GenerateNewSpriteCollection(val, CollectionName); AtlasPacker = new RuntimeAtlasPacker(Xres, Yres, (TextureFormat)4, 2); AddSpriteToObject(val, ExpandAssets.LoadSpriteAsset(spriteNames[0])); if (spriteNames.Count > 0) { for (int i = 1; i < spriteNames.Count; i++) { AddSpriteToCollection(ExpandAssets.LoadSpriteAsset(spriteNames[i]), newCollection); } } DumpSpriteCollection(newCollection, pathOverride); tk2dSpriteDefinition[] spriteDefinitions = newCollection.spriteDefinitions; for (int j = 0; j < spriteDefinitions.Length; j++) { spriteDefinitions[j].material = null; } newCollection.material = null; newCollection.materials = null; newCollection.textures = null; if (!string.IsNullOrEmpty(pathOverride)) { SaveStringToFile(JsonUtility.ToJson((object)newCollection), pathOverride, CollectionName + ".txt"); } else { SaveStringToFile(JsonUtility.ToJson((object)newCollection), ETGMod.ResourcesDirectory, CollectionName + ".txt"); } Object.Destroy((Object)(object)val); newCollection = null; AtlasPacker = null; } public static void SerializeSpriteCollection(tk2dSpriteCollectionData collectionData, bool SaveTextures = false, string pathOverride = null) { if (SaveTextures) { DumpSpriteCollection(collectionData, pathOverride); } collectionData.material = null; collectionData.materials = null; collectionData.textures = null; tk2dSpriteDefinition[] spriteDefinitions = collectionData.spriteDefinitions; for (int i = 0; i < spriteDefinitions.Length; i++) { spriteDefinitions[i].material = null; } if (!string.IsNullOrEmpty(pathOverride)) { SaveStringToFile(JsonUtility.ToJson((object)collectionData), pathOverride, ((Object)collectionData).name + ".txt"); } else { SaveStringToFile(JsonUtility.ToJson((object)collectionData), ETGMod.ResourcesDirectory, ((Object)collectionData).name + ".txt"); } } public static GameObject DeserializeSpriteCollectionFromAssetBundle(AssetBundle assetBundle, string GameObjectPath, string spriteAtlasPath, string serializedCollectionJSONName, bool addSpriteToObject = false, string spriteDefintionName = null, Material overrideMaterial = null) { //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Expected O, but got Unknown //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Expected O, but got Unknown GameObject val = assetBundle.LoadAsset(GameObjectPath); Texture2D mainTexture = assetBundle.LoadAsset(spriteAtlasPath); tk2dSpriteCollectionData val2 = val.AddComponent(); JsonUtility.FromJsonOverwrite(DeserializeJSONDataFromAssetBundle(assetBundle, serializedCollectionJSONName), (object)val2); if (Object.op_Implicit((Object)(object)overrideMaterial)) { val2.materials = (Material[])(object)new Material[1] { new Material(overrideMaterial) }; } else { val2.materials = (Material[])(object)new Material[1] { new Material(ShaderCache.Acquire(PlayerController.DefaultShaderName)) }; } val2.materials[0].mainTexture = (Texture)(object)mainTexture; tk2dSpriteDefinition[] spriteDefinitions = val2.spriteDefinitions; for (int i = 0; i < spriteDefinitions.Length; i++) { spriteDefinitions[i].material = val2.materials[0]; } val2.InitDictionary(); val2.inst.InitDictionary(); if (addSpriteToObject) { tk2dSprite val3 = val.AddComponent(); if (!string.IsNullOrEmpty(spriteDefintionName)) { ((tk2dBaseSprite)val3).SetSprite(val2, spriteDefintionName); } else { ((tk2dBaseSprite)val3).SetSprite(val2, 0); } ((tk2dBaseSprite)val3).SortingOrder = 0; val.GetComponent().sprite = (tk2dBaseSprite)(object)val3; } return val; } public static tk2dSprite AddSpriteToObject(GameObject obj, GameObject existingSpriteCollectionObject, string mainSpriteDefinitionName, PerpendicularState spriteAlignment = 0, float HeightOffGround = 1f) { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0020: 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) tk2dSprite val = obj.AddComponent(); ((tk2dBaseSprite)val).SetSprite(existingSpriteCollectionObject.GetComponent(), mainSpriteDefinitionName); ((tk2dBaseSprite)val).SortingOrder = 0; if ((int)spriteAlignment != 0) { ((tk2dBaseSprite)val).CachedPerpState = spriteAlignment; } if (HeightOffGround != 1f) { ((tk2dBaseSprite)val).HeightOffGround = HeightOffGround; } obj.GetComponent().sprite = (tk2dBaseSprite)(object)val; return val; } public static tk2dSprite AddSpriteToObject(GameObject obj, tk2dSpriteCollectionData existingSpriteCollection, string mainSpriteDefinitionName, PerpendicularState spriteAlignment = 0, float HeightOffGround = 1f) { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) tk2dSprite val = obj.AddComponent(); ((tk2dBaseSprite)val).SetSprite(existingSpriteCollection, mainSpriteDefinitionName); ((tk2dBaseSprite)val).SortingOrder = 0; if ((int)spriteAlignment != 0) { ((tk2dBaseSprite)val).CachedPerpState = spriteAlignment; } if (HeightOffGround != 1f) { ((tk2dBaseSprite)val).HeightOffGround = HeightOffGround; } obj.GetComponent().sprite = (tk2dBaseSprite)(object)val; return val; } public static tk2dSprite AddSpriteToObject(GameObject obj, GameObject existingSpriteCollectionObject, int spriteID, PerpendicularState spriteAlignment = 0) { tk2dSprite val = obj.AddComponent(); ((tk2dBaseSprite)val).SetSprite(existingSpriteCollectionObject.GetComponent(), spriteID); ((tk2dBaseSprite)val).SortingOrder = 0; obj.GetComponent().sprite = (tk2dBaseSprite)(object)val; return val; } public static tk2dSprite AddSpriteToObject(GameObject obj, tk2dSpriteCollectionData existingSpriteCollection, string mainSpriteDefinitionName, PerpendicularState spriteAlignment = 0) { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) tk2dSprite val = obj.AddComponent(); ((tk2dBaseSprite)val).SetSprite(existingSpriteCollection, mainSpriteDefinitionName); ((tk2dBaseSprite)val).SortingOrder = 0; if ((int)spriteAlignment != 0) { ((tk2dBaseSprite)val).CachedPerpState = spriteAlignment; } obj.GetComponent().sprite = (tk2dBaseSprite)(object)val; return val; } public static tk2dSprite AddSpriteToObject(GameObject obj, tk2dSpriteCollectionData existingSpriteCollection, int spriteID, PerpendicularState spriteAlignment = 0) { //IL_0016: 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_001b: Unknown result type (might be due to invalid IL or missing references) tk2dSprite val = obj.AddComponent(); ((tk2dBaseSprite)val).SetSprite(existingSpriteCollection, spriteID); ((tk2dBaseSprite)val).SortingOrder = 0; if ((int)spriteAlignment != 0) { ((tk2dBaseSprite)val).CachedPerpState = spriteAlignment; } obj.GetComponent().sprite = (tk2dBaseSprite)(object)val; return val; } public static void DumpSpriteCollection(tk2dSpriteCollectionData sprites, string pathOverride = null) { //IL_03b6: Unknown result type (might be due to invalid IL or missing references) //IL_03bd: Expected O, but got Unknown //IL_040c: Unknown result type (might be due to invalid IL or missing references) //IL_0413: Expected O, but got Unknown //IL_0606: Unknown result type (might be due to invalid IL or missing references) string text = "DUMPsprites/" + sprites.spriteCollectionName; string path = Path.Combine(ETGMod.ResourcesDirectory, text.Replace('/', Path.DirectorySeparatorChar).Replace('\\', Path.DirectorySeparatorChar) + ".png"); if (!string.IsNullOrEmpty(pathOverride)) { Path.Combine(pathOverride, text.Replace('/', Path.DirectorySeparatorChar).Replace('\\', Path.DirectorySeparatorChar) + ".png"); } bool num = File.Exists(path); bool flag = false; if (num) { return; } Texture2D val = null; Texture2D val2 = null; Texture2D val3 = null; Texture2D val4 = null; Color[] array = null; for (int i = 0; i < sprites.spriteDefinitions.Length; i++) { try { tk2dSpriteDefinition val5 = sprites.spriteDefinitions[i]; object obj; if (val5 == null) { obj = null; } else { Material material = val5.material; obj = ((material != null) ? material.mainTexture : null); } if (Object.op_Implicit((Object)obj)) { Texture mainTexture = val5.material.mainTexture; val4 = (Texture2D)(object)((mainTexture is Texture2D) ? mainTexture : null); } if ((Object)(object)val4 == (Object)null || !val5.Valid || ((Object)(object)val5.materialInst != (Object)null && flag)) { continue; } string text2 = text + "/" + val5.name; if ((Object)(object)val != (Object)(object)val4) { val = val4; val2 = ETGMod.GetRW(val4); array = val2.GetPixels(); path = Path.Combine(ETGMod.ResourcesDirectory, text.Replace('/', Path.DirectorySeparatorChar).Replace('\\', Path.DirectorySeparatorChar) + ".png"); Directory.GetParent(path).Create(); File.WriteAllBytes(path, ImageConversion.EncodeToPNG(val2)); } double num2 = 1.0; double num3 = 1.0; double num4 = 0.0; double num5 = 0.0; for (int j = 0; j < val5.uvs.Length; j++) { if ((double)val5.uvs[j].x < num2) { num2 = val5.uvs[j].x; } if ((double)val5.uvs[j].y < num3) { num3 = val5.uvs[j].y; } if (num4 < (double)val5.uvs[j].x) { num4 = val5.uvs[j].x; } if (num5 < (double)val5.uvs[j].y) { num5 = val5.uvs[j].y; } } int num6 = (int)Math.Floor(num2 * (double)((Texture)val4).width); int num7 = (int)Math.Floor(num3 * (double)((Texture)val4).height); int num8 = (int)Math.Ceiling(num4 * (double)((Texture)val4).width); int num9 = (int)Math.Ceiling(num5 * (double)((Texture)val4).height); int num10 = num8 - num6; int num11 = num9 - num7; Vector2[] uvs = val5.uvs; if (uvs != null && uvs.Length > 3) { if ((double)val5.uvs[0].x == num2 && (double)val5.uvs[0].y == num3 && (double)val5.uvs[1].x == num4 && (double)val5.uvs[1].y == num3 && (double)val5.uvs[2].x == num2 && (double)val5.uvs[2].y == num5 && (double)val5.uvs[3].x == num4 && (double)val5.uvs[3].y == num5) { val3 = new Texture2D(num10, num11); val3.SetPixels(val2.GetPixels(num6, num7, num10, num11)); } else { if (val5.uvs[0].x == val5.uvs[1].x) { int num12 = num11; num11 = num10; num10 = num12; } val3 = new Texture2D(num10, num11); double num13 = val5.uvs[1].x - val5.uvs[0].x; double num14 = val5.uvs[2].x - val5.uvs[0].x; double num15 = val5.uvs[1].y - val5.uvs[0].y; double num16 = val5.uvs[2].y - val5.uvs[0].y; double num17 = (float)((Texture)val4).width * (val5.uvs[3].x - val5.uvs[0].x); double num18 = (float)((Texture)val4).height * (val5.uvs[3].y - val5.uvs[0].y); double num19 = 0.001; double num20 = ((num13 < num19) ? 0.0 : num17); double num21 = ((num14 < num19) ? 0.0 : num17); double num22 = ((num15 < num19) ? 0.0 : num18); double num23 = ((num16 < num19) ? 0.0 : num18); for (int k = 0; k < num11; k++) { double num24 = (double)k / (double)num11; for (int l = 0; l < num10; l++) { double num25 = (double)l / (double)num10; double num26 = num25 * num20 + num24 * num21; double num27 = num25 * num22 + num24 * num23; double num28 = Math.Round((double)(val5.uvs[0].y * (float)((Texture)val4).height) + num27) * (double)((Texture)val4).width + Math.Round((double)(val5.uvs[0].x * (float)((Texture)val4).width) + num26); val3.SetPixel(l, k, array[(int)num28]); } } } } if (Object.op_Implicit((Object)(object)val3)) { path = Path.Combine(ETGMod.ResourcesDirectory, text2.Replace('/', Path.DirectorySeparatorChar).Replace('\\', Path.DirectorySeparatorChar) + ".png"); if (!File.Exists(path)) { Directory.GetParent(path).Create(); File.WriteAllBytes(path, ImageConversion.EncodeToPNG(val3)); } } } catch (Exception ex) { ETGModConsole.Log((object)("Exception with sprite ID: " + i), true); ETGModConsole.Log((object)"This sprite was skipped.", true); Debug.Log((object)ex); } } } public static string DeserializeJSONDataFromAssetBundle(AssetBundle bundle, string AssetPath) { string empty = string.Empty; try { empty = bundle.LoadAsset(AssetPath).text; } catch (Exception ex) { ETGModConsole.Log((object)("[ExpandTheGungeon] Error! Requested Text asset: " + AssetPath + " returned null! Ensure asset exists in asset bundle!"), true); Debug.LogException(ex); return string.Empty; } if (!string.IsNullOrEmpty(empty)) { return empty; } ETGModConsole.Log((object)("[ExpandTheGungeon] Error! Requested Text asset: " + AssetPath + " returned null! Ensure asset exists in asset bundle!"), true); return string.Empty; } public static void SaveStringToFile(string text, string filePath, string fileName) { using StreamWriter streamWriter = new StreamWriter(Path.Combine(filePath, fileName), append: true); streamWriter.WriteLine(text); } private static void AddSpriteToObject(GameObject targetObject, Texture2D sourceTexture) { SpriteFromTexture(sourceTexture, targetObject); } private static GameObject SpriteFromTexture(Texture2D existingTexture, GameObject obj) { tk2dSprite val = obj.AddComponent(); int num = AddSpriteToCollection(existingTexture, newCollection); ((tk2dBaseSprite)val).SetSprite(newCollection, num); ((tk2dBaseSprite)val).SortingOrder = 0; obj.GetComponent().sprite = (tk2dBaseSprite)(object)val; return obj; } private static int AddSpriteToCollection(Texture2D existingTexture, tk2dSpriteCollectionData collection) { tk2dSpriteDefinition obj = ConstructDefinition(existingTexture); obj.name = ((Object)existingTexture).name; return AddSpriteToCollection(obj, collection); } private static void AddSpritesToCollection(AssetBundle assetSource, List AssetNames, tk2dSpriteCollectionData collection) { //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Expected O, but got Unknown List list = new List(); foreach (string AssetName in AssetNames) { list.Add((Texture)(object)assetSource.LoadAsset(AssetName)); } if (list.Count <= 0) { return; } foreach (Texture2D item in list) { Texture2D val = item; tk2dSpriteDefinition obj = ConstructDefinition(val); obj.name = ((Object)val).name; AddSpriteToCollection(obj, collection); } } private static int AddSpriteToCollection(tk2dSpriteDefinition spriteDefinition, tk2dSpriteCollectionData collection, bool InitDictionary = false) { tk2dSpriteDefinition[] array = (collection.spriteDefinitions = collection.spriteDefinitions.Concat((IEnumerable)(object)new tk2dSpriteDefinition[1] { spriteDefinition }).ToArray()); if (InitDictionary) { typeof(tk2dSpriteCollectionData).GetField("spriteNameLookupDict", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(collection, null); collection.InitDictionary(); } return array.Length - 1; } private static tk2dSpriteCollectionData GenerateNewSpriteCollection(GameObject targetObject, string CollectionName = null, tk2dSpriteDefinition[] spriteDefinitions = null, bool initDictionary = false) { //IL_005f: Unknown result type (might be due to invalid IL or missing references) tk2dSpriteCollectionData val = targetObject.AddComponent(); val.version = 3; val.materialIdsValid = true; if (spriteDefinitions != null) { val.spriteDefinitions = spriteDefinitions; } val.spriteDefinitions = (tk2dSpriteDefinition[])(object)new tk2dSpriteDefinition[0]; val.premultipliedAlpha = false; val.shouldGenerateTilemapReflectionData = false; val.materials = (Material[])(object)new Material[0]; val.textures = (Texture[])(object)new Texture[0]; val.pngTextures = (TextAsset[])(object)new TextAsset[0]; val.textureFilterMode = (FilterMode)0; val.textureMipMaps = false; val.allowMultipleAtlases = false; val.spriteCollectionGUID = Guid.NewGuid().ToString(); if (!string.IsNullOrEmpty(CollectionName)) { val.spriteCollectionName = CollectionName; } else { val.spriteCollectionName = ((Object)targetObject).name + "_Collection"; } val.loadable = false; val.buildKey = Random.Range(800000000, 999999999); val.dataGuid = Guid.NewGuid().ToString(); val.managedSpriteCollection = false; val.hasPlatformData = false; val.spriteCollectionPlatforms = new string[0]; val.spriteCollectionPlatformGUIDs = new string[0]; if (initDictionary) { val.InitDictionary(); } return val; } private static tk2dSpriteDefinition ConstructDefinition(Texture2D texture) { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Expected O, but got Unknown //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Expected O, but got Unknown //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_0091: 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) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_0114: 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_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_0154: 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_016f: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01ea: 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_0201: Unknown result type (might be due to invalid IL or missing references) //IL_0206: Unknown result type (might be due to invalid IL or missing references) //IL_021b: Unknown result type (might be due to invalid IL or missing references) //IL_0220: Unknown result type (might be due to invalid IL or missing references) //IL_0261: Unknown result type (might be due to invalid IL or missing references) //IL_0266: Unknown result type (might be due to invalid IL or missing references) //IL_0276: Unknown result type (might be due to invalid IL or missing references) //IL_027b: Unknown result type (might be due to invalid IL or missing references) //IL_0297: Unknown result type (might be due to invalid IL or missing references) //IL_029c: Unknown result type (might be due to invalid IL or missing references) //IL_02ac: Unknown result type (might be due to invalid IL or missing references) //IL_02b1: Unknown result type (might be due to invalid IL or missing references) RuntimeAtlasSegment val = AtlasPacker.Pack(texture, false); Material val2 = new Material(ShaderCache.Acquire(PlayerController.DefaultShaderName)); val2.mainTexture = (Texture)(object)val.texture; int width = ((Texture)texture).width; int height = ((Texture)texture).height; float num = 0f; float num2 = 0f; float num3 = (float)width / 16f; float num4 = (float)height / 16f; tk2dSpriteDefinition val3 = new tk2dSpriteDefinition(); val3.normals = (Vector3[])(object)new Vector3[4] { new Vector3(0f, 0f, -1f), new Vector3(0f, 0f, -1f), new Vector3(0f, 0f, -1f), new Vector3(0f, 0f, -1f) }; val3.tangents = (Vector4[])(object)new Vector4[4] { new Vector4(1f, 0f, 0f, 1f), new Vector4(1f, 0f, 0f, 1f), new Vector4(1f, 0f, 0f, 1f), new Vector4(1f, 0f, 0f, 1f) }; val3.texelSize = new Vector2(0.0625f, 0.0625f); val3.extractRegion = false; val3.regionX = 0; val3.regionY = 0; val3.regionW = 0; val3.regionH = 0; val3.flipped = (FlipMode)0; val3.complexGeometry = false; val3.physicsEngine = (PhysicsEngine)0; val3.colliderType = (ColliderType)1; val3.collisionLayer = (CollisionLayer)6; val3.position0 = new Vector3(num, num2, 0f); val3.position1 = new Vector3(num + num3, num2, 0f); val3.position2 = new Vector3(num, num2 + num4, 0f); val3.position3 = new Vector3(num + num3, num2 + num4, 0f); val3.material = val2; val3.materialInst = val2; val3.materialId = 0; val3.uvs = val.uvs; val3.boundsDataCenter = new Vector3(num3 / 2f, num4 / 2f, 0f); val3.boundsDataExtents = new Vector3(num3, num4, 0f); val3.untrimmedBoundsDataCenter = new Vector3(num3 / 2f, num4 / 2f, 0f); val3.untrimmedBoundsDataExtents = new Vector3(num3, num4, 0f); val3.name = ((Object)texture).name; return val3; } } } namespace ExpandTheGungeon.ItemAPI { public class ClownBullets : PassiveItem { public static GameObject ClownBulletsObject; public static int ClownBulletsID; public float ActivationChance; public float ChanceToDevolve; public string TargetGUID; public List EnemyGuidsToIgnore; public bool NormalizeAcrossFireRate; public float ActivationsPerSecond; public float MinActivationChance; private PlayerController m_player; public ClownBullets() { ActivationChance = 1f; ActivationsPerSecond = 0.09f; MinActivationChance = 0.045f; ChanceToDevolve = 1f; NormalizeAcrossFireRate = true; TargetGUID = string.Empty; EnemyGuidsToIgnore = new List(); } public static void Init(AssetBundle expandSharedAssets1) { //IL_0060: 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) ClownBulletsObject = expandSharedAssets1.LoadAsset("EXClownBullets"); SpriteSerializer.AddSpriteToObject(ClownBulletsObject, ExpandPrefabs.EXItemCollection, "clownbullets", (PerpendicularState)0); ClownBullets clownBullets = ClownBulletsObject.AddComponent(); ((Object)ClownBulletsObject).name = "Clown Bullets"; string shortDesc = "Make fools of your enemy..."; string longDesc = "Some have said bullet kin are quite foolish compared to the more experienced gundead. Devolve your enemies to the clowns they should be with these special rounds! "; ItemBuilder.SetupItem((PickupObject)(object)clownBullets, shortDesc, longDesc, "ex"); ((PickupObject)clownBullets).quality = (ItemQuality)1; if (!ExpandSettings.EnableEXItems) { ((PickupObject)clownBullets).quality = (ItemQuality)(-100); } ClownBulletsID = ((PickupObject)clownBullets).PickupObjectId; } public override void Pickup(PlayerController player) { if (!base.m_pickedUp) { m_player = player; ((PassiveItem)this).Pickup(player); player.PostProcessProjectile += PostProcessProjectile; if (string.IsNullOrEmpty(TargetGUID)) { TargetGUID = ExpandEnemyDatabase.ClownkinGUID; } } } private void PostProcessProjectile(Projectile obj, float effectChanceScalar) { float num = ActivationChance; Gun val = ((!Object.op_Implicit((Object)(object)m_player)) ? null : ((GameActor)m_player).CurrentGun); if (NormalizeAcrossFireRate && Object.op_Implicit((Object)(object)val)) { float num2 = 1f / val.DefaultModule.cooldownTime; num = Mathf.Clamp01(ActivationsPerSecond / num2); num = Mathf.Max(MinActivationChance, num); } if (Random.value < num && !Object.op_Implicit((Object)(object)((Component)obj).gameObject.GetComponent())) { ClownBulletsModifier clownBulletsModifier = ((Component)obj).gameObject.AddComponent(); clownBulletsModifier.chanceToDevolve = ChanceToDevolve; clownBulletsModifier.ClownKinGUID = TargetGUID; clownBulletsModifier.EnemyGuidsToIgnore = EnemyGuidsToIgnore; } } public override DebrisObject Drop(PlayerController player) { DebrisObject obj = ((PassiveItem)this).Drop(player); m_player = null; ((PassiveItem)((Component)obj).GetComponent()).m_pickedUpThisRun = true; player.PostProcessProjectile -= PostProcessProjectile; return obj; } protected override void OnDestroy() { ((PassiveItem)this).OnDestroy(); if (Object.op_Implicit((Object)(object)m_player)) { m_player.PostProcessProjectile -= PostProcessProjectile; _ = m_player; } } } public class ClownBulletsModifier : MonoBehaviour { public float chanceToDevolve; public string ClownKinGUID; public List EnemyGuidsToIgnore; public ClownBulletsModifier() { chanceToDevolve = 0.1f; ClownKinGUID = string.Empty; EnemyGuidsToIgnore = new List(); } private void Start() { Projectile component = ((Component)this).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.OnHitEnemy = (Action)Delegate.Combine(component.OnHitEnemy, new Action(HandleHitEnemy)); } } private void HandleHitEnemy(Projectile sourceProjectile, SpeculativeRigidbody enemyRigidbody, bool killingBlow) { //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Expected O, but got Unknown if (killingBlow || !Object.op_Implicit((Object)(object)enemyRigidbody) || !Object.op_Implicit((Object)(object)((BraveBehaviour)enemyRigidbody).aiActor) || Random.value > chanceToDevolve) { return; } AIActor aiActor = ((BraveBehaviour)enemyRigidbody).aiActor; if (!aiActor.IsNormalEnemy || aiActor.IsHarmlessEnemy || ((BraveBehaviour)aiActor).healthHaver.IsBoss) { return; } string enemyGuid = aiActor.EnemyGuid; for (int i = 0; i < EnemyGuidsToIgnore.Count; i++) { if (EnemyGuidsToIgnore[i] == enemyGuid) { return; } } aiActor.Transmogrify(EnemyDatabase.GetOrLoadByGuid(ClownKinGUID), (GameObject)ResourceCache.Acquire("Global VFX/VFX_Item_Spawn_Poof")); AkSoundEngine.PostEvent("Play_WPN_devolver_morph_01", ((Component)this).gameObject); } } public class ClownFriend : PassiveItem { public static GameObject ClownFriendObject; public static int ClownFriendID; [EnemyIdentifier] public string CompanionGuid; public float BalloonRespawnTimer; public GameObject[] BalloonPrefabs; [NonSerialized] public bool BalloonWasPopped; [NonSerialized] public ExpandBalloonController PlayerBalloon; [NonSerialized] private bool m_PickedUp; [NonSerialized] private bool m_SynergyObtained; [NonSerialized] private float m_Timer; [NonSerialized] private GameObject m_extantCompanion; [NonSerialized] private string[] m_confettiNames; public static void Init(AssetBundle expandSharedAssets1) { //IL_005c: 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) ClownFriendObject = expandSharedAssets1.LoadAsset("Clown Friend"); SpriteSerializer.AddSpriteToObject(ClownFriendObject, ExpandPrefabs.EXItemCollection, "clownfriend", (PerpendicularState)0); ClownFriend clownFriend = ClownFriendObject.AddComponent(); clownFriend.CompanionGuid = ExpandEnemyDatabase.ClownkinAltGUID; string shortDesc = "Fool's Company..."; string longDesc = "A wondering Clownkin has learned the art of the balloon gun. He decided to follow you on your journey...for some reason..."; ItemBuilder.SetupItem((PickupObject)(object)clownFriend, shortDesc, longDesc, "ex"); ((PickupObject)clownFriend).quality = (ItemQuality)4; if (!ExpandSettings.EnableEXItems) { ((PickupObject)clownFriend).quality = (ItemQuality)(-100); } ExpandLists.CompanionItems.Add(ClownFriendObject); ClownFriendID = ((PickupObject)clownFriend).PickupObjectId; } public static void PostInit() { ClownFriendObject.GetComponent().BalloonPrefabs = (GameObject[])(object)new GameObject[4] { ExpandPrefabs.EX_GreenBalloon, ExpandPrefabs.EX_BlueBalloon, ExpandPrefabs.EX_YellowBalloon, ExpandPrefabs.EX_PinkBalloon }; } public ClownFriend() { CompanionGuid = ExpandEnemyDatabase.ClownkinAltGUID; BalloonRespawnTimer = 30f; BalloonWasPopped = false; m_PickedUp = false; m_SynergyObtained = false; m_confettiNames = new string[3] { "Global VFX/Confetti_Blue_001", "Global VFX/Confetti_Yellow_001", "Global VFX/Confetti_Green_001" }; m_Timer = BalloonRespawnTimer; } private void CreateCompanion(PlayerController owner) { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: 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_002c: Invalid comparison between Unknown and I4 //IL_004f: 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_002e: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_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) AIActor orLoadByGuid = EnemyDatabase.GetOrLoadByGuid(CompanionGuid); if (Object.op_Implicit((Object)(object)orLoadByGuid)) { Vector3 val = ((BraveBehaviour)owner).transform.position; if ((int)GameManager.Instance.CurrentLevelOverrideState == 1) { val += new Vector3(1.125f, -0.3125f, 0f); } GameObject extantCompanion = Object.Instantiate(((Component)orLoadByGuid).gameObject, val, Quaternion.identity); m_extantCompanion = extantCompanion; CompanionController orAddComponent = GameObjectExtensions.GetOrAddComponent(m_extantCompanion); orAddComponent.Initialize(owner); if (Object.op_Implicit((Object)(object)((BraveBehaviour)orAddComponent).specRigidbody)) { PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(((BraveBehaviour)orAddComponent).specRigidbody, (int?)null, false); } } } private void DoConfetti(Vector2 startPosition, int ConfettiCount = 8) { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Expected O, but got Unknown //IL_0042: 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_005c: 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_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008c: 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) for (int i = 0; i < ConfettiCount; i++) { GameObject val = (GameObject)ResourceCache.Acquire(BraveUtility.RandomElement(m_confettiNames)); if (Object.op_Implicit((Object)(object)val)) { WaftingDebrisObject component = Object.Instantiate(val).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { ((BraveBehaviour)component).sprite.PlaceAtPositionByAnchor(Vector2Extensions.ToVector3ZUp(startPosition, 0f) + new Vector3(0.5f, 0.5f, 0f), (Anchor)4); Vector2 insideUnitCircle = Random.insideUnitCircle; insideUnitCircle.y = 0f - Mathf.Abs(insideUnitCircle.y); ((DebrisObject)component).Trigger(Vector2Extensions.ToVector3ZUp(insideUnitCircle, 1.5f) * Random.Range(0.5f, 2f), 0.5f, 0f); } } } } public void RespawnBalloon(PlayerController player) { //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_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)player)) { if (Object.op_Implicit((Object)(object)PlayerBalloon)) { Object.Destroy((Object)(object)((Component)PlayerBalloon).gameObject); } PlayerBalloon = Object.Instantiate(BraveUtility.RandomElement(BalloonPrefabs), ((Component)player).gameObject.transform.position, Quaternion.identity).GetComponent(); if (Object.op_Implicit((Object)(object)PlayerBalloon)) { Vector3 val = default(Vector3); ((Vector3)(ref val))..ctor(1f, 2f); Transform transform = ((Component)PlayerBalloon).gameObject.transform; transform.position += val + new Vector3(0f, 0f, 1f); PlayerBalloon.BalloonOffset = val + new Vector3(0f, 0f, 1f); PlayerBalloon.BalloonSprite = (tk2dBaseSprite)(object)((Component)PlayerBalloon).gameObject.GetComponent(); PlayerBalloon.BalloonFloatHeight = 3f; PlayerBalloon.FloatUpOnDeathSpeed = Random.Range(2.75f, 3.5f); PlayerBalloon.DoBlankOnPop = true; PlayerBalloon.BlankChance = -1f; PlayerBalloon.ParentClownkinController = null; PlayerBalloon.ParentClownFriendItem = this; PlayerBalloon.PopsOnProjectileHit = true; PlayerBalloon.BlankVFXPrefab = BraveResources.Load("Global VFX/BlankVFX_Ghost", ".prefab"); PlayerBalloon.Initialize((GameActor)(object)player); } } } private void DestroyCompanion() { if (Object.op_Implicit((Object)(object)m_extantCompanion)) { if (Object.op_Implicit((Object)(object)m_extantCompanion.GetComponent()) && Object.op_Implicit((Object)(object)m_extantCompanion.GetComponent().m_Balloon)) { Object.Destroy((Object)(object)m_extantCompanion.GetComponent().m_Balloon); Object.Destroy((Object)(object)m_extantCompanion.GetComponent()); } Object.Destroy((Object)(object)m_extantCompanion); m_extantCompanion = null; } } protected override void Update() { //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)base.m_owner) | !base.m_pickedUp | Dungeon.IsGenerating) { return; } if (base.m_owner.HasPassiveItem(ClownBullets.ClownBulletsID) && !m_SynergyObtained) { m_SynergyObtained = true; if (!BalloonWasPopped) { RespawnBalloon(base.m_owner); AkSoundEngine.PostEvent("Play_OBJ_prize_won_01", ((Component)base.m_owner).gameObject); DoConfetti(Vector2.op_Implicit(((Component)base.m_owner).gameObject.transform.position)); } } else if (!base.m_owner.HasPassiveItem(ClownBullets.ClownBulletsID)) { m_SynergyObtained = false; if (Object.op_Implicit((Object)(object)PlayerBalloon)) { Object.Destroy((Object)(object)((Component)PlayerBalloon).gameObject); } } if (!m_SynergyObtained | !BalloonWasPopped) { return; } m_Timer -= BraveTime.DeltaTime; if (m_Timer < 0f) { m_Timer = BalloonRespawnTimer; BalloonWasPopped = false; if (base.m_owner.HasPassiveItem(ClownBullets.ClownBulletsID)) { RespawnBalloon(base.m_owner); AkSoundEngine.PostEvent("Play_OBJ_prize_won_01", ((Component)base.m_owner).gameObject); DoConfetti(Vector2.op_Implicit(((Component)base.m_owner).gameObject.transform.position)); } } else { ((PassiveItem)this).Update(); } } public override void Pickup(PlayerController player) { ((PassiveItem)this).Pickup(player); player.OnNewFloorLoaded = (Action)Delegate.Combine(player.OnNewFloorLoaded, new Action(HandleNewFloor)); CreateCompanion(player); if (m_SynergyObtained && !BalloonWasPopped) { RespawnBalloon(player); } } private void HandleNewFloor(PlayerController obj) { DestroyCompanion(); CreateCompanion(obj); } public override DebrisObject Drop(PlayerController player) { DestroyCompanion(); player.OnNewFloorLoaded = (Action)Delegate.Remove(player.OnNewFloorLoaded, new Action(HandleNewFloor)); DebrisObject val = ((PassiveItem)this).Drop(player); if (Object.op_Implicit((Object)(object)val)) { ClownFriend component = ((Component)val).gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.m_PickedUp = true; if (Object.op_Implicit((Object)(object)component.PlayerBalloon)) { Object.Destroy((Object)(object)((Component)component.PlayerBalloon).gameObject); } } } return val; } public override void MidGameSerialize(List data) { ((PickupObject)this).MidGameSerialize(data); data.Add(m_PickedUp); } public override void MidGameDeserialize(List data) { ((PassiveItem)this).MidGameDeserialize(data); if (data.Count == 1) { m_PickedUp = (bool)data[0]; } } protected override void OnDestroy() { if ((Object)(object)base.m_owner != (Object)null) { PlayerController owner = base.m_owner; owner.OnNewFloorLoaded = (Action)Delegate.Remove(owner.OnNewFloorLoaded, new Action(HandleNewFloor)); } if (Object.op_Implicit((Object)(object)PlayerBalloon)) { Object.Destroy((Object)(object)((Component)PlayerBalloon).gameObject); } DestroyCompanion(); ((PassiveItem)this).OnDestroy(); } } public class MrCap : PlayerItem { public static int MrCapPickupID; public static GameObject MrCapObject; public static GameObject MrCapProjectile; public static GameObject MrCapVFX; public static GameObject MrCapHammerTarget; public static GameObject MrCapHammer; public static float MrCapTossCooldown = 3f; public static float MrCapAfterUseCooldown = 60f; public bool InUse; public bool InFlight; public bool AllowFreeRoam; public MrCap currentMrCap; public ExpandHatVFX attachedPlayerHat; public ExpandHatMindController CurrentMindControl; private bool m_PickedUp; private bool m_DoingHatVFX; private float m_FlightTimer; private float m_MaxFlightTime; private GameObject spawnedHatObject; public static void Init(AssetBundle expandSharedAssets1) { //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0275: Unknown result type (might be due to invalid IL or missing references) //IL_027f: Expected O, but got Unknown //IL_006c: Unknown result type (might be due to invalid IL or missing references) MrCapObject = expandSharedAssets1.LoadAsset("Mr Cap"); SpriteSerializer.AddSpriteToObject(MrCapObject, ExpandPrefabs.EXItemCollection, "hatty_item", (PerpendicularState)0); MrCap mrCap = MrCapObject.AddComponent(); string shortDesc = "Total Control"; string longDesc = "This santient hat once was on a certain odyssey with a certain small plumber.\n\n He is now on vacation. Unfortunately the Gungeon turned out to not be a good vacation spot so now he's trapped down here with you.\n\nHe might as well help you on your journey. Maybe it will be his ticket of here."; ItemBuilder.SetupItem((PickupObject)(object)mrCap, shortDesc, longDesc, "ex"); ItemBuilder.SetCooldownType((PlayerItem)(object)mrCap, ItemBuilder.CooldownType.Timed, MrCapTossCooldown); ((PickupObject)mrCap).quality = (ItemQuality)4; if (!ExpandSettings.EnableEXItems) { ((PickupObject)mrCap).quality = (ItemQuality)(-100); } ItemBuilder.AddPassiveStatModifier((PickupObject)(object)mrCap, (StatType)8, 1f, (ModifyMethod)0); List spriteNameList = new List { "hatty_item", "hatty_item", "hatty_item_active_blue", "hatty_item_active_blue", "hatty_item_active_red", "hatty_item_active_red", "hatty_item_active_blue", "hatty_item_active_blue", "hatty_item_active_red", "hatty_item_active_red", "hatty_item_active_blue", "hatty_item_active_blue", "hatty_item" }; List spriteNameList2 = new List { "hatty_001", "hatty_002", "hatty_003", "hatty_004", "hatty_005", "hatty_006" }; ExpandUtility.GenerateSpriteAnimator(MrCapObject); ExpandUtility.AddAnimation(MrCapObject.GetComponent(), ExpandPrefabs.EXItemCollection.GetComponent(), spriteNameList, "Activate", (WrapMode)2, 8); MrCapPickupID = ((PickupObject)mrCap).PickupObjectId; MrCapProjectile = expandSharedAssets1.LoadAsset("EXMrCapProjectile"); GameObject gameObject = ((Component)MrCapProjectile.transform.Find("Sprite")).gameObject; SpriteSerializer.AddSpriteToObject(gameObject, ExpandPrefabs.EXItemCollection, "hatty_001", (PerpendicularState)0); GameObject val = BraveResources.Load("PlayerRogueShip", ".prefab"); TrailRenderer component = ((Component)gameObject.transform.Find("Trail")).gameObject.GetComponent(); TrailRenderer component2 = ((Component)((Component)((Component)((Component)val.transform.Find("PlayerRotatePoint")).transform.Find("PlayerSprite")).transform.Find("engine 1")).transform.Find("trail mix (1)")).gameObject.GetComponent(); ((Renderer)component).material = new Material(((Renderer)component2).material); ExpandHatProjectile expandHatProjectile = MrCapProjectile.AddComponent(); PickupObject byId = PickupObjectDatabase.GetById(448); ExpandUtility.DuplicateComponent(expandHatProjectile, ((SpawnObjectPlayerItem)((byId is SpawnObjectPlayerItem) ? byId : null)).objectToSpawn.GetComponent()); ((Projectile)expandHatProjectile).DestroyMode = (ProjectileDestroyMode)0; ((Projectile)expandHatProjectile).PenetratesInternalWalls = true; SpeculativeRigidbody obj = MrCapProjectile.AddComponent(); PickupObject byId2 = PickupObjectDatabase.GetById(448); ExpandUtility.DuplicateRigidBody(obj, ((SpawnObjectPlayerItem)((byId2 is SpawnObjectPlayerItem) ? byId2 : null)).objectToSpawn.GetComponent()); obj.CanPush = false; ExpandUtility.AddAnimation(ExpandUtility.GenerateSpriteAnimator(gameObject, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true), ExpandPrefabs.EXItemCollection, spriteNameList2, "spin", (WrapMode)0, 12); MrCapVFX = expandSharedAssets1.LoadAsset("EXMrCapVFX"); SpriteSerializer.AddSpriteToObject(MrCapVFX, ExpandPrefabs.EXItemCollection, "hatty_001", (PerpendicularState)0); MrCapVFX.AddComponent(); MrCapHammerTarget = expandSharedAssets1.LoadAsset("MrCapHammerTarget"); SpriteSerializer.AddSpriteToObject(((Component)MrCapHammerTarget.transform.Find("Sprite")).gameObject, ExpandPrefabs.EXItemCollection, "hatty_hammertarget_001", (PerpendicularState)2, 0f); MrCapHammer = ExpandForgeHammerComponent.BuildHammerPrefab(expandSharedAssets1, "Mr Cap Forge Hammer", "8x8_fireball_companion_projectile_dark", SkipBulletBuild: false, IsFriendlyBullet: true, isHattyHammer: true, out ExpandPrefabs.EXFriendlyForgeHammerBullet); ExpandForgeHammerComponent component3 = MrCapHammer.GetComponent(); component3.PowerScalesWithFloors = false; component3.IsCapturedHammer = true; component3.TracksPlayer = true; component3.TracksRandomEnemy = false; component3.DeactivateOnEnemiesCleared = false; } public MrCap() { AllowFreeRoam = true; InUse = false; m_PickedUp = false; m_DoingHatVFX = false; m_FlightTimer = 6f; m_MaxFlightTime = 6f; } private bool IsUsableRightNow(PlayerController user) { //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004a: 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) if (!Object.op_Implicit((Object)(object)user)) { return false; } if (InFlight) { return false; } if (GameManager.HasInstance) { GameManager instance = GameManager.Instance; if (instance != null && instance.Dungeon?.LevelOverrideType == (LevelOverrideState?)3) { return false; } } if (ExpandTheGungeon.PortableShipInUse) { return false; } if (((PlayerItem)this).IsOnCooldown) { return false; } return true; } public override bool CanBeUsed(PlayerController user) { return IsUsableRightNow(user); } protected override void DoEffect(PlayerController user) { if (!m_PickedUp) { m_PickedUp = true; } if (!Object.op_Implicit((Object)(object)currentMrCap)) { currentMrCap = this; } HandleMrCapToss(user); } protected override void OnPreDrop(PlayerController player) { ((PlayerItem)this).OnPreDrop(player); if (InUse) { base.timeCooldown = MrCapAfterUseCooldown; if (Object.op_Implicit((Object)(object)base.LastOwner)) { ((PlayerItem)this).ApplyCooldown(base.LastOwner); } } if (Object.op_Implicit((Object)(object)CurrentMindControl)) { CurrentMindControl.Detach(); } if (Object.op_Implicit((Object)(object)spawnedHatObject)) { Object.Destroy((Object)(object)spawnedHatObject); } InUse = false; m_PickedUp = false; m_FlightTimer = m_MaxFlightTime; RemovePlayerHat(player); } public override void Pickup(PlayerController player) { ((PlayerItem)this).Pickup(player); if (Object.op_Implicit((Object)(object)((Component)player).gameObject.GetComponentInChildren())) { attachedPlayerHat = ((Component)player).gameObject.GetComponentInChildren(); attachedPlayerHat.targetType = ExpandHatVFX.TargetType.Player; attachedPlayerHat.vanishOverride = false; } else { DoHatVFX(player); } currentMrCap = this; m_PickedUp = true; m_FlightTimer = m_MaxFlightTime; } public void DoDetach(bool KillTarget = false) { InUse = false; base.timeCooldown = MrCapAfterUseCooldown; if (Object.op_Implicit((Object)(object)base.LastOwner)) { ((PlayerItem)this).ApplyCooldown(base.LastOwner); } if (Object.op_Implicit((Object)(object)CurrentMindControl)) { CurrentMindControl.Detach(KillTarget); } } public override void Update() { if (!(Dungeon.IsGenerating | !GameManager.HasInstance | GameManager.IsShuttingDown | GameManager.Instance.IsLoadingLevel)) { if (!AllowFreeRoam && InUse && Object.op_Implicit((Object)(object)base.LastOwner) && Object.op_Implicit((Object)(object)CurrentMindControl) && CurrentMindControl.targetType == ExpandHatMindController.TargetType.AIActor && !base.LastOwner.IsInCombat) { CurrentMindControl.Detach(); InUse = false; } else if (InUse && Object.op_Implicit((Object)(object)base.LastOwner) && !Object.op_Implicit((Object)(object)CurrentMindControl)) { InUse = false; } ((PlayerItem)this).Update(); } } public void LateUpdate() { if (Dungeon.IsGenerating | !GameManager.HasInstance | GameManager.IsShuttingDown | GameManager.Instance.IsLoadingLevel) { return; } if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).spriteAnimator) && !((BraveBehaviour)this).spriteAnimator.IsPlaying("Activate") && ((BraveBehaviour)this).sprite.GetCurrentSpriteDef().name != "hatty_item") { ((BraveBehaviour)this).sprite.SetSprite("hatty_item"); } if (m_PickedUp && (InUse | InFlight)) { if (InFlight) { m_FlightTimer -= BraveTime.DeltaTime; if (m_FlightTimer <= 0f) { m_FlightTimer = m_MaxFlightTime; InFlight = false; } } if (Object.op_Implicit((Object)(object)attachedPlayerHat)) { attachedPlayerHat.vanishOverride = true; } } else if (m_PickedUp && Object.op_Implicit((Object)(object)attachedPlayerHat)) { if (!m_DoingHatVFX) { attachedPlayerHat.vanishOverride = false; if (attachedPlayerHat.targetType != ExpandHatVFX.TargetType.Player) { attachedPlayerHat.targetType = ExpandHatVFX.TargetType.Player; } if ((Object)(object)attachedPlayerHat.hatOwner != (Object)(object)base.LastOwner) { attachedPlayerHat.hatOwner = base.LastOwner; } } } else if (m_PickedUp && !m_DoingHatVFX && !Object.op_Implicit((Object)(object)attachedPlayerHat)) { DoHatVFX(base.LastOwner); } } private void HandleMrCapToss(PlayerController user) { if (InUse && Object.op_Implicit((Object)(object)CurrentMindControl)) { CurrentMindControl.Detach(); InUse = false; ((PlayerItem)this).ClearCooldowns(); base.timeCooldown = MrCapAfterUseCooldown; ((PlayerItem)this).ApplyCooldown(user); } else { base.timeCooldown = MrCapTossCooldown; ((PlayerItem)this).ClearCooldowns(); DoHatToss(user, MrCapProjectile, 0f); } } private void DoHatToss(PlayerController user, GameObject objectToSpawn, float angleFromAim) { //IL_0033: 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) ((BraveBehaviour)this).spriteAnimator.Play("Activate"); if (Object.op_Implicit((Object)(object)spawnedHatObject)) { Object.Destroy((Object)(object)spawnedHatObject); } GameObject val = SpawnManager.SpawnProjectile(MrCapProjectile, Vector2.op_Implicit(((BraveBehaviour)user).sprite.WorldTopCenter), Quaternion.identity, false); spawnedHatObject = val; ExpandHatProjectile component = spawnedHatObject.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { AkSoundEngine.PostEvent("Play_EX_CapToss_01", ((Component)this).gameObject); m_FlightTimer = m_MaxFlightTime; ((Projectile)component).Owner = (GameActor)(object)user; component.hatItemOwner = currentMrCap; ((Projectile)component).TreatedAsNonProjectileForChallenge = true; ((Projectile)component).OnBecameDebris = (Action)Delegate.Combine(((Projectile)component).OnBecameDebris, new Action(HatOnDebris)); ((Projectile)component).OnBecameDebrisGrounded = (Action)Delegate.Combine(((Projectile)component).OnBecameDebrisGrounded, new Action(HatOnDebris)); InFlight = true; } } public void HatOnDebris(DebrisObject obj) { Object.Destroy((Object)(object)((Component)obj).gameObject); } public void DoHatVFX(PlayerController player) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: 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_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: 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_005b: Unknown result type (might be due to invalid IL or missing references) m_DoingHatVFX = true; RemovePlayerHat(player); Bounds bounds = ((BraveBehaviour)player).sprite.GetBounds(); float y = ((Bounds)(ref bounds)).size.y; bounds = ((tk2dBaseSprite)MrCapVFX.GetComponent()).GetBounds(); float num = y - ((Bounds)(ref bounds)).size.y / 2.1f; ((GameActor)player).PlayEffectOnActor(MrCapVFX, new Vector3(0f, num, 0f), true, false, true); attachedPlayerHat = ((Component)player).gameObject.GetComponentInChildren(); if (Object.op_Implicit((Object)(object)attachedPlayerHat)) { attachedPlayerHat.hatOwner = player; attachedPlayerHat.targetType = ExpandHatVFX.TargetType.Player; } m_DoingHatVFX = false; } public void RemovePlayerHat(PlayerController player) { if (Object.op_Implicit((Object)(object)attachedPlayerHat)) { ((BraveBehaviour)this).sprite.DetachRenderer(((BraveBehaviour)attachedPlayerHat).sprite); Object.Destroy((Object)(object)((Component)attachedPlayerHat).gameObject); attachedPlayerHat = null; } if (Object.op_Implicit((Object)(object)player) && Object.op_Implicit((Object)(object)((Component)player).gameObject.GetComponentInChildren())) { Object.Destroy((Object)(object)((Component)((Component)player).gameObject.GetComponentInChildren()).gameObject); } } protected override void OnDestroy() { m_PickedUp = false; ((PlayerItem)this).OnDestroy(); } } public class ExpandKeyBulletPickup : PassiveItem { public static GameObject OldKeyMinimapObject; public static GameObject OldKeyObject; public static int OldKeyID; public int numberKeyBullets; public bool IsOldWestBigKey; public string overrideBloopSpriteName; private bool m_hasBeenPickedUp; private SpeculativeRigidbody m_srb; public static void Init(AssetBundle expandSharedAssets1) { //IL_0048: 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) OldKeyObject = expandSharedAssets1.LoadAsset("Old Key"); ExpandKeyBulletPickup expandKeyBulletPickup = OldKeyObject.AddComponent(); SpriteSerializer.AddSpriteToObject(OldKeyObject, ExpandPrefabs.EXItemCollection, "west_key_001", (PerpendicularState)0); ExpandUtility.GenerateOrAddToRigidBody(OldKeyObject, (CollisionLayer)16, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(7, 18), (IntVector2?)new IntVector2(2, 1)); ((BraveBehaviour)expandKeyBulletPickup).specRigidbody.PixelColliders[0].IsTrigger = true; OldKeyMinimapObject = expandSharedAssets1.LoadAsset("EX_WestKeyMinimap"); SpriteSerializer.AddSpriteToObject(OldKeyMinimapObject, ExpandPrefabs.EXItemCollection, "west_key_minimap", (PerpendicularState)2); ((PassiveItem)expandKeyBulletPickup).minimapIcon = OldKeyMinimapObject; string shortDesc = "A mysterious old Key..."; string longDesc = "It has rusted a little from the beast's stomach acid.\n\nIt unlocks something..."; ItemBuilder.SetupItem((PickupObject)(object)expandKeyBulletPickup, shortDesc, longDesc, "ex"); OldKeyID = ((PickupObject)expandKeyBulletPickup).PickupObjectId; } public ExpandKeyBulletPickup() { //IL_0029: Unknown result type (might be due to invalid IL or missing references) numberKeyBullets = 0; IsOldWestBigKey = true; ((PickupObject)this).IgnoredByRat = true; overrideBloopSpriteName = string.Empty; ((PickupObject)this).quality = (ItemQuality)(-50); ((PickupObject)this).CanBeDropped = false; ((PickupObject)this).CanBeSold = false; m_hasBeenPickedUp = false; } private void Start() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Expected O, but got Unknown //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Expected O, but got Unknown m_srb = ((BraveBehaviour)this).specRigidbody; m_srb.OnTriggerCollision = (OnTriggerDelegate)Delegate.Combine((Delegate?)(object)m_srb.OnTriggerCollision, (Delegate?)new OnTriggerDelegate(OnPreCollision)); ((PassiveItem)this).RegisterMinimapIcon(); ((PickupObject)this).IsBeingSold = true; } protected override void Update() { //IL_0037: Unknown result type (might be due to invalid IL or missing references) if (IsOldWestBigKey && !((PassiveItem)this).PickedUp && !m_hasBeenPickedUp && !GameManager.Instance.IsLoadingLevel && Object.op_Implicit((Object)(object)this) && !GameManager.Instance.IsAnyPlayerInRoom(Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)this).transform.position))) { PlayerController bestActivePlayer = GameManager.Instance.BestActivePlayer; if (Object.op_Implicit((Object)(object)bestActivePlayer) && !bestActivePlayer.IsGhost && bestActivePlayer.AcceptingAnyInput) { m_hasBeenPickedUp = true; ((PickupObject)this).Pickup(bestActivePlayer); } } } private void OnPreCollision(SpeculativeRigidbody otherRigidbody, SpeculativeRigidbody source, CollisionData collisionData) { if (!(((PassiveItem)this).PickedUp | m_hasBeenPickedUp)) { PlayerController component = ((Component)otherRigidbody).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)this).sprite, true); m_hasBeenPickedUp = true; ((PickupObject)this).Pickup(component); } } } public override void Pickup(PlayerController player) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).spriteAnimator)) { ((BraveBehaviour)this).spriteAnimator.StopAndResetFrame(); } player.BloopItemAboveHead(((BraveBehaviour)this).sprite, overrideBloopSpriteName); if (!IsOldWestBigKey) { PlayerConsumables carriedConsumables = player.carriedConsumables; carriedConsumables.KeyBullets += numberKeyBullets; } AkSoundEngine.PostEvent("Play_OBJ_key_pickup_01", ((Component)this).gameObject); m_hasBeenPickedUp = true; ((PickupObject)this).IsBeingSold = false; ((PassiveItem)this).Pickup(player); } protected override void OnDestroy() { ((PassiveItem)this).OnDestroy(); } } public class PortableElevator : PlayerItem { public static int PortableElevatorID; public static GameObject PortableElevatorOBJ; public List ValidDestinations; public float maxDistance; public GameObject reticleQuad; private PlayerController m_currentUser; private tk2dBaseSprite m_extantReticleQuad; private ExpandReticleRiserEffect m_ReticleEffect; private bool m_WasUsed; private float m_currentAngle; private float m_currentDistance; public static void Init(AssetBundle expandSharedAssets1) { //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) PortableElevatorOBJ = expandSharedAssets1.LoadAsset("Portable Elevator"); SpriteSerializer.AddSpriteToObject(PortableElevatorOBJ, ExpandPrefabs.EXItemCollection, "portable_elevator", (PerpendicularState)0); PortableElevator portableElevator = PortableElevatorOBJ.AddComponent(); string shortDesc = "Make a Hasty Exit"; string longDesc = "Sometimes you just need to escape. A one time use item Lunk found but he dropped it while exploring the Gungeon because he was too busy looking at his map."; ItemBuilder.SetupItem((PickupObject)(object)portableElevator, shortDesc, longDesc, "ex"); ItemBuilder.SetCooldownType((PlayerItem)(object)portableElevator, ItemBuilder.CooldownType.Damage, 275f); ItemBuilder.AddPassiveStatModifier((PickupObject)(object)portableElevator, (StatType)8, 1f, (ModifyMethod)0); ((PickupObject)portableElevator).quality = (ItemQuality)3; if (!ExpandSettings.EnableEXItems) { ((PickupObject)portableElevator).quality = (ItemQuality)(-100); } List spriteNameList = new List { "portable_elevator", "portable_elevator", "portable_elevator_pushed", "portable_elevator_pushed", "portable_elevator" }; ExpandUtility.GenerateSpriteAnimator(PortableElevatorOBJ); ExpandUtility.AddAnimation(PortableElevatorOBJ.GetComponent(), ExpandPrefabs.EXItemCollection.GetComponent(), spriteNameList, "Activate", (WrapMode)2, 2); PortableElevatorID = ((PickupObject)portableElevator).PickupObjectId; } public PortableElevator() { ValidDestinations = new List { "tt_office", "tt_phobos", "tt_space" }; maxDistance = 10f; m_WasUsed = false; m_currentDistance = 5f; } public override bool CanBeUsed(PlayerController user) { if (IsUsableRightNow(user)) { return ((PlayerItem)this).CanBeUsed(user); } return false; } private bool IsUsableRightNow(PlayerController user) { if (!Object.op_Implicit((Object)(object)user)) { return false; } if (user.IsInCombat | (user.CurrentRoom == null)) { return false; } if (user.CurrentRoom.IsSealed) { return false; } return true; } protected bool CanDropElevatorHere(PlayerController Owner, Vector2 centerOffset) { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: 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_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0049: 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_0060: Invalid comparison between Unknown and I4 if (Object.op_Implicit((Object)(object)Owner) && Owner.IsInCombat) { return false; } for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { Vector2 val = centerOffset + new Vector2((float)i, (float)j); if (!Owner.IsValidPlayerPosition(val)) { return false; } CellData val2 = GameManager.Instance.Dungeon.data[Vector2Extensions.ToIntVector2(val, (VectorConversions)0)]; if (val2 == null) { return false; } if ((int)val2.type != 2) { return false; } if ((val2.parentRoom == null) | (Owner.CurrentRoom == null) | (val2.parentRoom != Owner.CurrentRoom)) { return false; } } } return true; } public override void Update() { ((PlayerItem)this).Update(); if (((PlayerItem)this).IsCurrentlyActive) { if (Object.op_Implicit((Object)(object)m_extantReticleQuad)) { UpdateReticlePosition(); return; } ((PlayerItem)this).IsCurrentlyActive = false; ((PlayerItem)this).ClearCooldowns(); } } private void UpdateReticlePosition() { //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: 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_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: 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_0132: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_0151: 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_0166: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0171: 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_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_0185: 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_018f: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0040: 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_0051: 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_01bf: 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_01d8: Unknown result type (might be due to invalid IL or missing references) Bounds bounds; if (BraveInput.GetInstanceForPlayer(m_currentUser.PlayerIDX).IsKeyboardAndMouse(false)) { Vector2 val = Vector3Extensions.XY(m_currentUser.unadjustedAimPoint); bounds = m_extantReticleQuad.GetBounds(); Vector2 val2 = val - Vector3Extensions.XY(((Bounds)(ref bounds)).extents); ((BraveBehaviour)m_extantReticleQuad).transform.position = Vector2.op_Implicit(val2); } else { BraveInput instanceForPlayer = BraveInput.GetInstanceForPlayer(m_currentUser.PlayerIDX); Vector2 val3 = ((GameActor)m_currentUser).CenterPosition + Vector3Extensions.XY(Quaternion.Euler(0f, 0f, m_currentAngle) * Vector2.op_Implicit(Vector2.right)) * m_currentDistance; val3 += ((TwoAxisInputControl)instanceForPlayer.ActiveActions.Aim).Vector * 8f * BraveTime.DeltaTime; m_currentAngle = BraveMathCollege.Atan2Degrees(val3 - ((GameActor)m_currentUser).CenterPosition); m_currentDistance = Vector2.Distance(val3, ((GameActor)m_currentUser).CenterPosition); m_currentDistance = Mathf.Min(m_currentDistance, maxDistance); val3 = ((GameActor)m_currentUser).CenterPosition + Vector3Extensions.XY(Quaternion.Euler(0f, 0f, m_currentAngle) * Vector2.op_Implicit(Vector2.right)) * m_currentDistance; Vector2 val4 = val3; bounds = m_extantReticleQuad.GetBounds(); Vector2 val5 = val4 - Vector3Extensions.XY(((Bounds)(ref bounds)).extents); ((BraveBehaviour)m_extantReticleQuad).transform.position = Vector2.op_Implicit(val5); } if (CanDropElevatorHere(m_currentUser, Vector2.op_Implicit(((Component)m_extantReticleQuad).gameObject.transform.position + new Vector3(1f, 1f)))) { m_extantReticleQuad.SetSprite("portable_elevator_reticle_green"); if (Object.op_Implicit((Object)(object)m_ReticleEffect)) { m_ReticleEffect.CurrentSpriteName = "portable_elevator_reticle_green"; } } else { m_extantReticleQuad.SetSprite("portable_elevator_reticle_red"); if (Object.op_Implicit((Object)(object)m_ReticleEffect)) { m_ReticleEffect.CurrentSpriteName = "portable_elevator_reticle_red"; } } } protected override void OnPreDrop(PlayerController user) { ((PlayerItem)this).OnPreDrop(user); if (Object.op_Implicit((Object)(object)m_extantReticleQuad)) { Object.Destroy((Object)(object)((Component)m_extantReticleQuad).gameObject); } if (m_WasUsed) { Object.Destroy((Object)(object)((Component)this).gameObject); } } protected override void DoEffect(PlayerController user) { //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_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) ((PlayerItem)this).IsCurrentlyActive = true; m_currentUser = user; GameObject val = Object.Instantiate(ExpandPrefabs.EXPortableElevator_Reticle); m_extantReticleQuad = val.GetComponent(); m_ReticleEffect = val.GetComponent(); m_currentAngle = BraveMathCollege.Atan2Degrees(Vector3Extensions.XY(m_currentUser.unadjustedAimPoint) - ((GameActor)m_currentUser).CenterPosition); m_currentDistance = 5f; UpdateReticlePosition(); ((BraveBehaviour)this).spriteAnimator.Play("Activate"); } protected override void DoActiveEffect(PlayerController user) { //IL_0028: 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_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008d: 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) if (!Object.op_Implicit((Object)(object)user) || user.CurrentRoom == null) { return; } if (!CanDropElevatorHere(user, Vector2.op_Implicit(((Component)m_extantReticleQuad).gameObject.transform.position + new Vector3(1f, 1f)))) { AkSoundEngine.PostEvent("Play_OBJ_purchase_unable_01", ((Component)user).gameObject); return; } Vector2 currentTarget = Vector2.op_Implicit(((Component)m_extantReticleQuad).gameObject.transform.position + new Vector3(0f, 0.25f)); if (Object.op_Implicit((Object)(object)m_extantReticleQuad)) { Object.Destroy((Object)(object)((Component)m_extantReticleQuad).gameObject); } ((PlayerItem)this).IsCurrentlyActive = true; AkSoundEngine.PostEvent("Play_OBJ_computer_boop_01", ((Component)user).gameObject); DoElevatorDrop(currentTarget, user.CurrentRoom); ((PlayerItem)this).IsCurrentlyActive = false; m_WasUsed = true; Minimap.Instance.RegisterRoomIcon(user.CurrentRoom, ExpandPrefabs.Belly_ExitRoomIcon, false); user.DropActiveItem((PlayerItem)(object)this, 4f, false); } private void DoElevatorDrop(Vector2 currentTarget, RoomHandler targetRoom) { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0006: 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) GameObject val = Object.Instantiate(ExpandPrefabs.EXPortableElevator_Departure, Vector2.op_Implicit(currentTarget), Quaternion.identity); ExpandNewElevatorController component = val.GetComponent(); component.OverrideBossMusic = "Play_EX_MUS_ShotsFired_01"; component.OverrideFloorName = BraveUtility.RandomElement(BraveUtility.Shuffle(ValidDestinations)); component.IsPortableElevator = true; component.ConfigureOnPlacement(targetRoom); if (!(Random.value <= 0.004f)) { return; } if (val.GetComponentsInChildren(true) != null) { tk2dBaseSprite[] componentsInChildren = val.GetComponentsInChildren(true); foreach (tk2dBaseSprite sprite in componentsInChildren) { ExpandShaders.Instance.ApplyGlitchShader(sprite); } } component.IsGlitchElevator = true; } protected override void OnDestroy() { if (Object.op_Implicit((Object)(object)m_extantReticleQuad)) { Object.Destroy((Object)(object)((Component)m_extantReticleQuad).gameObject); } ((PlayerItem)this).OnDestroy(); } } public class PortableShip : PlayerItem { public enum ItemState { NotConfigured, Inactive, Active } public static int PortableShipID; public static GameObject PortableShipOBJ; public static GameObject PortableShipShadow; public GameObject ShipPrefab; public GameObject CoopShipPrefab; public Texture2D CoopShipPalette; public ExplosionData ShipExplosionData; public StatModifier contactDamageModifier; private GameObject m_ShipPrefabInstance; private GameObject m_ShipShadowPrefabInstance; public ItemState itemState; public tk2dSpriteAnimator ShipAnimator; private tk2dSprite m_ShipSprite; private tk2dSprite m_ShipShadowSprite; private tk2dBaseSprite m_RocketItemSprite; private AIBulletBank m_ShipBulletBank; private List LaserShootPoints; private bool m_DoingDodgeRoll; private bool m_ShipHidden; private bool m_HasCoopSynergy; private bool m_FireProjectile; private float m_MissileCooldown; private float m_LaserCooldown; private float m_DodgeCooldown; private float m_DamageCooldown; private float m_CurrentLaserCooldown; private float m_CurrentDodgeCooldown; private string m_CachedShipStartSpriteName; private float m_currentShadowYScale; private float m_currentAngle; private bool m_PickedUp; public static void Init(AssetBundle expandSharedAssets1) { //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) PortableShipOBJ = expandSharedAssets1.LoadAsset("Portable Ship"); SpriteSerializer.AddSpriteToObject(PortableShipOBJ, ExpandPrefabs.EXItemCollection, "portableship", (PerpendicularState)0); PortableShipShadow = expandSharedAssets1.LoadAsset("EXPortableShip_Shadow"); tk2dSprite obj = SpriteSerializer.AddSpriteToObject(((Component)PortableShipShadow.transform.Find("spriteObject")).gameObject, ExpandPrefabs.EXItemCollection, "portableship_shadow", (PerpendicularState)2, -1f); ((tk2dBaseSprite)obj).usesOverrideMaterial = true; ((BraveBehaviour)obj).renderer.material.shader = ((BraveBehaviour)((Component)((Component)GameManager.Instance.RewardManager.A_Chest).gameObject.transform.Find("Shadow")).gameObject.GetComponent()).renderer.material.shader; PortableShip portableShip = PortableShipOBJ.AddComponent(); string shortDesc = "Become Space Ship"; string longDesc = "There were stories of someone with a ship fetish who got lost in the Gungeon. He found a way to transform himself into a ship based on the one a certain well known Gungeoneer used. Some say he's still down there roaming around as a minature space ship..."; ItemBuilder.SetupItem((PickupObject)(object)portableShip, shortDesc, longDesc, "ex"); ItemBuilder.SetCooldownType((PlayerItem)(object)portableShip, ItemBuilder.CooldownType.Timed, 3f); ((PickupObject)portableShip).quality = (ItemQuality)4; ItemBuilder.AddPassiveStatModifier((PickupObject)(object)portableShip, (StatType)8, 1f, (ModifyMethod)0); if (!ExpandSettings.EnableEXItems) { ((PickupObject)portableShip).quality = (ItemQuality)(-100); } PortableShipID = ((PickupObject)portableShip).PickupObjectId; } public PortableShip() { //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: 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_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: 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_00d6: Expected O, but got Unknown ShipPrefab = BraveResources.Load("PlayerRogueShip", ".prefab"); CoopShipPalette = BraveResources.Load("PlayerCoopShip", ".prefab").GetComponent().PaletteTex; ShipExplosionData = ExpandUtility.GenerateExplosionData(null, null, null, null, useDefaultExplosion: false, doDamage: true, forceUseThisRadius: true, 3f, DamagesPlayer: false); m_RocketItemSprite = ((BraveBehaviour)PickupObjectDatabase.GetById(502)).sprite; itemState = ItemState.NotConfigured; contactDamageModifier = new StatModifier { amount = 1f, statToBoost = (StatType)21, modifyType = (ModifyMethod)0, isMeatBunBuff = false, ignoredForSaveData = true }; m_DoingDodgeRoll = false; m_DamageCooldown = 240f; m_DodgeCooldown = 0.12f; m_MissileCooldown = 3f; m_LaserCooldown = 0.15f; m_ShipHidden = false; m_HasCoopSynergy = false; m_FireProjectile = false; m_CurrentLaserCooldown = 0f; m_CurrentDodgeCooldown = 0f; m_currentAngle = 0f; m_currentShadowYScale = 1f; m_CachedShipStartSpriteName = string.Empty; m_PickedUp = false; } protected bool IsKeyboardAndMouse(PlayerController player) { return BraveInput.GetInstanceForPlayer(player.PlayerIDX).IsKeyboardAndMouse(false); } public override bool CanBeUsed(PlayerController user) { if (ExpandTheGungeon.MrCapInUse) { return false; } return ((PlayerItem)this).CanBeUsed(user); } private void DoConfigure(PlayerController player) { //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_003b: Unknown result type (might be due to invalid IL or missing references) //IL_037a: Unknown result type (might be due to invalid IL or missing references) //IL_0384: Expected O, but got Unknown //IL_0384: Unknown result type (might be due to invalid IL or missing references) //IL_038e: Expected O, but got Unknown //IL_02a9: Unknown result type (might be due to invalid IL or missing references) //IL_02ae: Unknown result type (might be due to invalid IL or missing references) //IL_02b3: Unknown result type (might be due to invalid IL or missing references) //IL_0307: Unknown result type (might be due to invalid IL or missing references) //IL_0211: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)m_ShipPrefabInstance)) { m_ShipPrefabInstance = Object.Instantiate(((Component)ShipPrefab.transform.Find("PlayerRotatePoint")).gameObject, Vector2.op_Implicit(((BraveBehaviour)player).sprite.WorldCenter), Quaternion.identity); ((Object)m_ShipPrefabInstance).name = "ShipRotatePoint"; m_ShipPrefabInstance.transform.SetParent(((Component)player).gameObject.transform); if (Object.op_Implicit((Object)(object)m_ShipPrefabInstance.transform.Find("PlayerSprite"))) { m_ShipSprite = ((Component)m_ShipPrefabInstance.transform.Find("PlayerSprite")).gameObject.GetComponent(); } ((Object)((Component)m_ShipSprite).gameObject).name = "ShipSprite"; ((tk2dBaseSprite)m_ShipSprite).HeightOffGround = 1f; ((tk2dBaseSprite)m_ShipSprite).UpdateZDepth(); AIBulletBank component = ShipPrefab.GetComponent(); m_ShipBulletBank = ((Component)player).gameObject.AddComponent(); m_ShipBulletBank.Bullets = new List { component.Bullets[0], component.Bullets[1] }; m_ShipBulletBank.useDefaultBulletIfMissing = false; m_ShipBulletBank.transforms = new List(); if (Object.op_Implicit((Object)(object)m_ShipBulletBank) && Object.op_Implicit((Object)(object)m_ShipBulletBank.Bullets[1].BulletObject.GetComponent())) { m_ShipBulletBank.Bullets[1].BulletObject.GetComponent().IgnoreQueues = true; } m_CachedShipStartSpriteName = ((tk2dBaseSprite)m_ShipSprite).CurrentSprite.name; ShipAnimator = ((Component)m_ShipSprite).gameObject.GetComponent(); if (base.LastOwner.HasPassiveItem(326) | base.LastOwner.HasPassiveItem(491) | base.LastOwner.HasPassiveItem(BabySitter.BabySitterID)) { m_HasCoopSynergy = true; ((tk2dBaseSprite)m_ShipSprite).OverrideMaterialMode = (SpriteMaterialOverrideMode)2; ((BraveBehaviour)m_ShipSprite).renderer.material.SetTexture("_PaletteTex", (Texture)(object)CoopShipPalette); } LaserShootPoints = new List { ((Component)m_ShipSprite).gameObject.transform.Find("Fire1"), ((Component)m_ShipSprite).gameObject.transform.Find("Fire2") }; m_ShipPrefabInstance.SetActive(false); } if (!Object.op_Implicit((Object)(object)m_ShipShadowPrefabInstance)) { m_ShipShadowPrefabInstance = Object.Instantiate(PortableShipShadow, Vector2.op_Implicit(((BraveBehaviour)player).sprite.WorldCenter), Quaternion.identity); if (Object.op_Implicit((Object)(object)m_ShipShadowPrefabInstance)) { m_ShipShadowPrefabInstance.transform.SetParent(((Component)player).gameObject.transform); m_ShipShadowPrefabInstance.transform.localPosition = new Vector3(0.825f, -0.24f, 0f); Transform val = m_ShipShadowPrefabInstance.transform.Find("spriteObject"); if (Object.op_Implicit((Object)(object)val)) { m_ShipShadowSprite = ((Component)val).gameObject.GetComponent(); ((tk2dBaseSprite)m_ShipShadowSprite).HeightOffGround = -1f; ((tk2dBaseSprite)m_ShipShadowSprite).UpdateZDepth(); } m_ShipShadowPrefabInstance.SetActive(false); } } SpeculativeRigidbody specRigidbody = ((BraveBehaviour)player).specRigidbody; specRigidbody.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Combine((Delegate?)(object)specRigidbody.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(HandlePrerigidbodyCollision)); player.OnReceivedDamage += HandlePlayerDamaged; itemState = ItemState.Inactive; } public override void Pickup(PlayerController player) { ((PlayerItem)this).Pickup(player); DoConfigure(player); m_PickedUp = true; } protected override void DoEffect(PlayerController user) { //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_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) if (!m_PickedUp) { DoConfigure(user); m_PickedUp = true; } switch (itemState) { case ItemState.Active: FireMissileVolley(user, m_ShipBulletBank); ((PlayerItem)this).ClearCooldowns(); break; case ItemState.Inactive: { m_currentAngle = BraveMathCollege.Atan2Degrees(Vector3Extensions.XY(user.unadjustedAimPoint) - ((GameActor)user).CenterPosition); ExpandTheGungeon.PortableShipInUse = true; m_ShipPrefabInstance.SetActive(true); m_ShipShadowPrefabInstance.SetActive(true); base.timeCooldown = m_MissileCooldown; ((BraveBehaviour)this).sprite.SetSprite(m_RocketItemSprite.Collection, m_RocketItemSprite.GetCurrentSpriteDef().name); ((GameActor)user).SetIsFlying(true, "PlayerIsShip", false, false); user.IsVisible = false; ((GameActor)user).ToggleShadowVisiblity(false); HealthHaver healthHaver = ((BraveBehaviour)user).healthHaver; healthHaver.Armor += 1f; AkSoundEngine.PostEvent("Play_OBJ_computer_boop_01", ((Component)user).gameObject); ((PlayerItem)this).ClearCooldowns(); user.ownerlessStatModifiers.Add(contactDamageModifier); user.stats.RecalculateStats(user, false, false); user.ReceivesTouchDamage = false; if (Object.op_Implicit((Object)(object)m_ShipSprite)) { ((tk2dBaseSprite)m_ShipSprite).HeightOffGround = 1f; ((tk2dBaseSprite)m_ShipSprite).UpdateZDepth(); } if (Object.op_Implicit((Object)(object)m_ShipShadowSprite)) { ((tk2dBaseSprite)m_ShipShadowSprite).HeightOffGround = -1f; ((tk2dBaseSprite)m_ShipShadowSprite).UpdateZDepth(); } itemState = ItemState.Active; break; } case ItemState.NotConfigured: ((PlayerItem)this).ClearCooldowns(); break; } } public override void Update() { //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Invalid comparison between Unknown and I4 //IL_0083: 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_00fb: 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_010b: 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_0126: 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_0136: Unknown result type (might be due to invalid IL or missing references) //IL_0160: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) ((PlayerItem)this).Update(); switch (itemState) { case ItemState.NotConfigured: break; case ItemState.Active: if (!Object.op_Implicit((Object)(object)base.LastOwner) | m_ShipHidden) { break; } if (!m_HasCoopSynergy && (base.LastOwner.HasPassiveItem(326) | base.LastOwner.HasPassiveItem(491) | base.LastOwner.HasPassiveItem(BabySitter.BabySitterID))) { m_HasCoopSynergy = true; ((tk2dBaseSprite)m_ShipSprite).OverrideMaterialMode = (SpriteMaterialOverrideMode)2; ((BraveBehaviour)m_ShipSprite).renderer.material.SetTexture("_PaletteTex", (Texture)(object)CoopShipPalette); } if (base.LastOwner.AcceptingNonMotionInput || (int)base.LastOwner.CurrentInputState == 3) { CheckPlayerInput(base.LastOwner, m_ShipBulletBank); if (m_CurrentDodgeCooldown > m_DodgeCooldown) { CheckDodgeRollInput(base.LastOwner); } m_currentAngle = BraveMathCollege.Atan2Degrees(Vector3Extensions.XY(base.LastOwner.unadjustedAimPoint) - ((GameActor)base.LastOwner).CenterPosition); } m_currentAngle = BraveMathCollege.Atan2Degrees(Vector3Extensions.XY(base.LastOwner.unadjustedAimPoint) - ((GameActor)base.LastOwner).CenterPosition); m_ShipPrefabInstance.transform.rotation = Quaternion.Euler(0f, 0f, m_currentAngle); m_ShipShadowPrefabInstance.transform.localRotation = Quaternion.Euler(0f, m_currentShadowYScale, m_currentAngle); m_ShipShadowPrefabInstance.transform.localScale = new Vector3(1f, m_currentShadowYScale, 1f); ((tk2dBaseSprite)m_ShipSprite).ForceRotationRebuild(); ((tk2dBaseSprite)m_ShipShadowSprite).ForceRotationRebuild(); base.LastOwner.IsOnFire = false; base.LastOwner.IsVisible = false; base.LastOwner.ToggleRenderer(false, ""); base.LastOwner.ToggleHandRenderers(false, ""); base.LastOwner.ToggleGunRenderers(false, ""); ((GameActor)base.LastOwner).ToggleShadowVisiblity(false); base.LastOwner.CurrentPoisonMeterValue = 0f; base.LastOwner.IsGunLocked = true; if (m_FireProjectile && m_CurrentLaserCooldown <= 0f) { FireProjectiles(base.LastOwner, m_ShipBulletBank); m_CurrentLaserCooldown = m_LaserCooldown; } m_CurrentLaserCooldown -= BraveTime.DeltaTime; m_CurrentDodgeCooldown += BraveTime.DeltaTime; if (Object.op_Implicit((Object)(object)ShipAnimator) && ShipAnimator.IsPlaying("fire_e") && Object.op_Implicit((Object)(object)ExpandStaticReferenceManager.CurrentGungeoneerMimic)) { ExpandStaticReferenceManager.CurrentGungeoneerMimic.FireOverride = true; } if (!m_DoingDodgeRoll && !ShipAnimator.IsPlaying("dodgeroll_right_e") && !ShipAnimator.IsPlaying("dodgeroll_left_e") && !ShipAnimator.IsPlaying("fire_e") && !ShipAnimator.IsPlaying("idle_e") && !m_FireProjectile) { ShipAnimator.Play("idle_e"); } break; case ItemState.Inactive: if (Object.op_Implicit((Object)(object)ExpandStaticReferenceManager.CurrentGungeoneerMimic)) { ExpandStaticReferenceManager.CurrentGungeoneerMimic.FireOverride = false; } break; } } private void CheckPlayerInput(PlayerController player, AIBulletBank bulletbank) { if (!Object.op_Implicit((Object)(object)BraveInput.GetInstanceForPlayer(player.PlayerIDX))) { return; } bool flag = (!player.IsDodgeRolling || player.IsSlidingOverSurface) && player.CurrentStoneGunTimer <= 0f; if (m_FireProjectile && !BraveInput.GetInstanceForPlayer(player.PlayerIDX).GetButton((GungeonActionType)8)) { m_FireProjectile = false; } if (player.SuppressThisClick) { while (BraveInput.GetInstanceForPlayer(player.PlayerIDX).GetButtonDown((GungeonActionType)8)) { BraveInput.GetInstanceForPlayer(player.PlayerIDX).ConsumeButtonDown((GungeonActionType)8); if (BraveInput.GetInstanceForPlayer(player.PlayerIDX).GetButtonUp((GungeonActionType)8)) { BraveInput.GetInstanceForPlayer(player.PlayerIDX).ConsumeButtonUp((GungeonActionType)8); } } if (!BraveInput.GetInstanceForPlayer(player.PlayerIDX).GetButton((GungeonActionType)8)) { player.SuppressThisClick = false; } } else if (flag && BraveInput.GetInstanceForPlayer(player.PlayerIDX).GetButtonDown((GungeonActionType)8)) { m_FireProjectile = true; if (false || true) { BraveInput.GetInstanceForPlayer(player.PlayerIDX).ConsumeButtonDown((GungeonActionType)8); } } else if (BraveInput.GetInstanceForPlayer(player.PlayerIDX).GetButtonUp((GungeonActionType)8)) { m_FireProjectile = false; BraveInput.GetInstanceForPlayer(player.PlayerIDX).ConsumeButtonUp((GungeonActionType)8); } } protected void CheckDodgeRollInput(PlayerController player) { //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_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) if (player.WasPausedThisFrame || m_DoingDodgeRoll || player.IsDodgeRolling) { return; } Vector2 velocity = ((BraveBehaviour)player).specRigidbody.Velocity; if (!(velocity == Vector2.zero)) { bool flag = false; BraveInput instanceForPlayer = BraveInput.GetInstanceForPlayer(player.PlayerIDX); if (instanceForPlayer.GetButtonDown((GungeonActionType)9)) { instanceForPlayer.ConsumeButtonDown((GungeonActionType)9); flag = true; m_DoingDodgeRoll = true; } if (flag) { ((MonoBehaviour)this).StartCoroutine(ScaleShadowSprite()); ((MonoBehaviour)this).StartCoroutine(PlayDodgeRollAnimation(player, velocity)); } } } private IEnumerator ScaleShadowSprite() { float elapsed2 = 0f; float duration = 0.15f; Vector2 startVector = Vector2.one; Vector2 endVector = new Vector2(0.2f, 0.2f); while (elapsed2 < duration) { elapsed2 += BraveTime.DeltaTime; m_currentShadowYScale = Vector2.Lerp(startVector, endVector, elapsed2 / duration).y; yield return null; } elapsed2 = 0f; yield return null; while (elapsed2 < duration) { elapsed2 += BraveTime.DeltaTime; m_currentShadowYScale = Vector2.Lerp(endVector, startVector, elapsed2 / duration).y; yield return null; } } protected IEnumerator PlayDodgeRollAnimation(PlayerController player, Vector2 direction) { //IL_0015: 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) ((Vector2)(ref direction)).Normalize(); string text = ((BraveMathCollege.ClampAngle180(Vector2Extensions.ToAngle(direction) - m_currentAngle) < 0f) ? "dodgeroll_right_e" : "dodgeroll_left_e"); tk2dSpriteAnimationClip tk2dSpriteAnimationClip = ShipAnimator.GetClipByName(text); if (tk2dSpriteAnimationClip != null) { float num = (float)tk2dSpriteAnimationClip.frames.Length / player.rollStats.GetModifiedTime(player); ShipAnimator.Play(tk2dSpriteAnimationClip, 0f, num, false); player.AdditionalCanDodgeRollWhileFlying.AddOverride("IsAFlyingShip", (float?)null); player.ForceStartDodgeRoll(direction); yield return null; player.AdditionalCanDodgeRollWhileFlying.RemoveOverride("IsAFlyingShip"); yield return null; while (ShipAnimator.IsPlaying(tk2dSpriteAnimationClip)) { yield return null; } ShipAnimator.Play("idle_e"); m_CurrentDodgeCooldown = 0f; } m_DoingDodgeRoll = false; } protected void FireMissileVolley(PlayerController player, AIBulletBank bulletbank) { //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_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_0060: Unknown result type (might be due to invalid IL or missing references) foreach (Transform laserShootPoint in LaserShootPoints) { for (int i = 0; i < 5; i++) { FireBullet(player, bulletbank, laserShootPoint, Vector2.op_Implicit(Quaternion.Euler(0f, 0f, -90f + m_currentAngle + Mathf.Lerp(-20f, 20f, (float)i / 4f)) * Vector2.op_Implicit(Vector2.up)), "missile"); } } } protected void FireProjectiles(PlayerController player, AIBulletBank bulletbank) { //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_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) if (player.IsInputOverridden | (Time.timeScale == 0f) | GameManager.IsBossIntro | GameManager.Instance.PreventPausing) { return; } foreach (Transform laserShootPoint in LaserShootPoints) { FireBullet(player, bulletbank, laserShootPoint, Vector2.op_Implicit(Quaternion.Euler(0f, 0f, -90f + m_currentAngle) * Vector2.op_Implicit(Vector2.up)), "default"); } if (!m_DoingDodgeRoll && !ShipAnimator.IsPlaying("dodgeroll_right_e") && !ShipAnimator.IsPlaying("dodgeroll_left_e") && !ShipAnimator.IsPlaying("fire_e")) { ShipAnimator.Play("fire_e"); } } private void FireBullet(PlayerController player, AIBulletBank bulletbank, Transform shootPoint, Vector2 dirVec, string bulletType) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) Projectile component = bulletbank.CreateProjectileFromBank(Vector2.op_Implicit(shootPoint.position), BraveMathCollege.Atan2Degrees(((Vector2)(ref dirVec)).normalized), bulletType, (string)null, false, true, false).GetComponent(); component.Owner = (GameActor)(object)player; component.Shooter = ((BraveBehaviour)player).specRigidbody; component.collidesWithPlayer = false; ((BraveBehaviour)component).specRigidbody.RegisterSpecificCollisionException(((BraveBehaviour)player).specRigidbody); if (ExpandSettings.debugMode) { player.DoPostProcessProjectile(component); } } private void ResetConfig(PlayerController player = null, bool ShipWasDestroyed = false, bool OnDestroy = false) { //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Expected O, but got Unknown //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Expected O, but got Unknown //IL_0261: Unknown result type (might be due to invalid IL or missing references) //IL_026c: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)m_ShipBulletBank) && Object.op_Implicit((Object)(object)m_ShipBulletBank.Bullets[1].BulletObject.GetComponent()) && Object.op_Implicit((Object)(object)m_ShipBulletBank.Bullets[1].BulletObject.GetComponent())) { m_ShipBulletBank.Bullets[1].BulletObject.GetComponent().IgnoreQueues = true; } if (Object.op_Implicit((Object)(object)ExpandStaticReferenceManager.CurrentGungeoneerMimic)) { ExpandStaticReferenceManager.CurrentGungeoneerMimic.FireOverride = false; } if (Object.op_Implicit((Object)(object)player)) { if (!((BraveBehaviour)player).healthHaver.IsVulnerable) { ((BraveBehaviour)player).healthHaver.IsVulnerable = true; } ((GameActor)player).SetIsFlying(false, "PlayerIsShip", false, false); player.IsVisible = true; ((GameActor)player).ToggleShadowVisiblity(true); player.IsGunLocked = false; player.ToggleRenderer(true, ""); player.ToggleGunRenderers(true, ""); player.ToggleHandRenderers(true, ""); player.AdditionalCanDodgeRollWhileFlying.RemoveOverride("IsAFlyingShip"); if (!ShipWasDestroyed) { SpeculativeRigidbody specRigidbody = ((BraveBehaviour)player).specRigidbody; specRigidbody.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Remove((Delegate?)(object)specRigidbody.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(HandlePrerigidbodyCollision)); player.OnReceivedDamage -= HandlePlayerDamaged; } if (itemState == ItemState.Active) { if (((BraveBehaviour)player).healthHaver.Armor > 0f) { HealthHaver healthHaver = ((BraveBehaviour)player).healthHaver; healthHaver.Armor -= 1f; } player.ReceivesTouchDamage = true; player.ownerlessStatModifiers.Remove(contactDamageModifier); player.stats.RecalculateStats(player, false, false); } } else if (Object.op_Implicit((Object)(object)base.LastOwner)) { base.LastOwner.ToggleRenderer(true, ""); base.LastOwner.ToggleGunRenderers(true, ""); base.LastOwner.ToggleHandRenderers(true, ""); } if (ExpandSettings.debugMode) { ((BraveBehaviour)this).sprite.SetSprite(ExpandPrefabs.EXItemCollection.GetComponent(), "portableship_alt"); } else { ((BraveBehaviour)this).sprite.SetSprite(ExpandPrefabs.EXItemCollection.GetComponent(), "portableship"); } itemState = ItemState.Inactive; if (ShipWasDestroyed) { if (Object.op_Implicit((Object)(object)player)) { AkSoundEngine.PostEvent("Play_OBJ_metronome_fail_01", ((Component)player).gameObject); } else { AkSoundEngine.PostEvent("Play_OBJ_metronome_fail_01", ((Component)this).gameObject); } Exploder.Explode(m_ShipPrefabInstance.transform.position, ShipExplosionData, Vector2.zero, (Action)null, true, (CoreDamageTypes)0, false); m_ShipPrefabInstance.SetActive(false); m_ShipShadowPrefabInstance.SetActive(false); base.timeCooldown = m_DamageCooldown; if (Object.op_Implicit((Object)(object)player)) { ((PlayerItem)this).ApplyCooldown(player); } else if (Object.op_Implicit((Object)(object)base.LastOwner)) { ((PlayerItem)this).ApplyCooldown(base.LastOwner); } ExpandTheGungeon.PortableShipInUse = false; return; } m_HasCoopSynergy = false; m_ShipBulletBank = null; m_ShipSprite = null; m_ShipHidden = false; if (Object.op_Implicit((Object)(object)m_ShipPrefabInstance)) { m_ShipPrefabInstance.transform.parent = null; } if (Object.op_Implicit((Object)(object)m_ShipShadowPrefabInstance)) { m_ShipShadowPrefabInstance.transform.parent = null; } LaserShootPoints.Clear(); Object.Destroy((Object)(object)m_ShipPrefabInstance); Object.Destroy((Object)(object)m_ShipShadowPrefabInstance); Object.Destroy((Object)(object)m_ShipBulletBank); m_ShipPrefabInstance = null; m_ShipShadowPrefabInstance = null; m_currentAngle = 0f; m_FireProjectile = false; m_DoingDodgeRoll = false; m_CurrentLaserCooldown = 0f; m_CurrentDodgeCooldown = 0f; ExpandTheGungeon.PortableShipInUse = false; } private void HandlePrerigidbodyCollision(SpeculativeRigidbody myRigidbody, PixelCollider myPixelCollider, SpeculativeRigidbody otherRigidbody, PixelCollider otherPixelCollider) { ItemState itemState = this.itemState; if (itemState == ItemState.Active && Object.op_Implicit((Object)(object)otherRigidbody)) { if (!string.IsNullOrEmpty(((Object)((Component)otherRigidbody).gameObject).name) && ((Object)((Component)otherRigidbody).gameObject).name.ToLower().Contains("table") && Object.op_Implicit((Object)(object)((Component)otherRigidbody).gameObject.transform.parent) && Object.op_Implicit((Object)(object)((Component)((Component)otherRigidbody).gameObject.transform.parent).gameObject.GetComponent()) && !((Component)((Component)otherRigidbody).gameObject.transform.parent).gameObject.GetComponent().IsFlipped) { PhysicsEngine.SkipCollision = true; } else if (Object.op_Implicit((Object)(object)((Component)otherRigidbody).gameObject.GetComponent())) { PhysicsEngine.SkipCollision = true; } } } private void HandlePlayerDamaged(PlayerController player) { if (Object.op_Implicit((Object)(object)player) && itemState == ItemState.Active) { itemState = ItemState.Inactive; ResetConfig(player, ShipWasDestroyed: true); } } protected override void OnPreDrop(PlayerController user) { ResetConfig(user); ((PlayerItem)this).OnPreDrop(user); } protected override void OnDestroy() { ResetConfig(null, ShipWasDestroyed: false, OnDestroy: true); ((PlayerItem)this).OnDestroy(); } } public class SonicBox : PassiveItem { public static GameObject SonicBoxObject; private static readonly List m_IdleFrames = new List { "SonicBox_Idle_01", "SonicBox_Idle_02", "SonicBox_Idle_03" }; [EnemyIdentifier] public string CompanionGuid; public StatModifier DeathStatModifier; public string HitAnimation; public float RingDropChance; [NonSerialized] private bool m_PickedUp; [NonSerialized] private bool m_HasDied; [NonSerialized] private bool m_HasGivenStats; [NonSerialized] private float m_healthRemaining; private float m_maxHealthRemaining; [NonSerialized] public bool PreventRespawnOnFloorLoad; private GameObject m_extantCompanion; private bool m_canSpawnRings; private float m_RingCoolDown; public static void Init(AssetBundle expandSharedAssets1) { //IL_00b0: 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) SonicBoxObject = expandSharedAssets1.LoadAsset("EXSonicBox"); SpriteSerializer.AddSpriteToObject(SonicBoxObject, ExpandPrefabs.EXItemCollection, "SonicBox_Idle_02", (PerpendicularState)0); ExpandUtility.GenerateSpriteAnimator(SonicBoxObject, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true); ExpandUtility.AddAnimation(SonicBoxObject.GetComponent(), ExpandPrefabs.EXItemCollection.GetComponent(), m_IdleFrames, "Idle", (WrapMode)0, 16); SonicBox sonicBox = SonicBoxObject.AddComponent(); string name = "Sonic Box"; string shortDesc = "Gotta Go Fast!"; string longDesc = "Sonic the Hedgehog has found his way to the Gungeon and loves to spin dash into the Gundead!"; ItemBuilder.SetupEXItem((PickupObject)(object)sonicBox, name, shortDesc, longDesc); ((PickupObject)sonicBox).quality = (ItemQuality)4; if (!ExpandSettings.EnableEXItems) { ((PickupObject)sonicBox).quality = (ItemQuality)(-100); } ExpandLists.CompanionItems.Add(SonicBoxObject); } public SonicBox() { //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_0022: 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_0029: 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 CompanionGuid = ExpandEnemyDatabase.SonicCompanionGUID; DeathStatModifier = new StatModifier { amount = 1.5f, statToBoost = (StatType)5, modifyType = (ModifyMethod)1 }; RingDropChance = 0.25f; HitAnimation = "rebound"; m_PickedUp = false; m_HasDied = false; m_HasGivenStats = false; m_canSpawnRings = false; PreventRespawnOnFloorLoad = false; m_healthRemaining = 0f; m_RingCoolDown = 0f; } private void CompanionOnDamaged(float resultValue, float maxValue, CoreDamageTypes damageTypes, DamageCategory damageCategory, Vector2 damageDirection) { //IL_0082: Unknown result type (might be due to invalid IL or missing references) m_healthRemaining = resultValue; m_maxHealthRemaining = maxValue; if (m_canSpawnRings && RingDropChance > Random.value && Object.op_Implicit((Object)(object)m_extantCompanion)) { ((BraveBehaviour)m_extantCompanion.GetComponent()).behaviorSpeculator.Stun(1f, true); m_extantCompanion.GetComponent().PlayUntilFinished(HitAnimation, false, (string)null, -1f, false); int amountToDrop = Random.Range(3, 10); ExpandUtility.SpawnCustomCurrency(m_extantCompanion.GetComponent().GetUnitCenter((ColliderType)2), amountToDrop, SonicRing.RingID); AkSoundEngine.PostEvent("Play_EX_SonicLoseRings_01", m_extantCompanion); } m_canSpawnRings = false; } private void OnPreDeath(Vector2 direction) { //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_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_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Expected O, but got Unknown if (Object.op_Implicit((Object)(object)this) && Object.op_Implicit((Object)(object)base.m_owner) && !m_HasDied && !m_HasGivenStats) { m_HasGivenStats = true; StatModifier item = new StatModifier { statToBoost = (StatType)14, modifyType = (ModifyMethod)0, amount = 2f }; base.m_owner.ownerlessStatModifiers.Add(item); base.m_owner.ownerlessStatModifiers.Add(DeathStatModifier); base.m_owner.stats.RecalculateStats(base.m_owner, false, false); m_HasDied = true; base.m_owner.DropPassiveItem((PassiveItem)(object)this); } } private void CreateCompanion(PlayerController owner) { //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_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Invalid comparison between Unknown and I4 //IL_0054: 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_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Expected O, but got Unknown //IL_0034: 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_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) if (!(PreventRespawnOnFloorLoad | m_HasDied)) { AIActor orLoadByGuid = EnemyDatabase.GetOrLoadByGuid(CompanionGuid); Vector3 val = ((BraveBehaviour)owner).transform.position; if ((int)GameManager.Instance.CurrentLevelOverrideState == 1) { val += new Vector3(1.125f, -0.3125f, 0f); } GameObject val2 = (m_extantCompanion = Object.Instantiate(((Component)orLoadByGuid).gameObject, val, Quaternion.identity)); CompanionController orAddComponent = GameObjectExtensions.GetOrAddComponent(m_extantCompanion); orAddComponent.Initialize(owner); val2.GetComponent().OnPreDeath += OnPreDeath; val2.GetComponent().OnDamaged += new OnDamagedEvent(CompanionOnDamaged); if (m_healthRemaining > 0f) { val2.GetComponent().SetHealthMaximum(m_maxHealthRemaining, (float?)null, false); val2.GetComponent().ForceSetCurrentHealth(m_healthRemaining); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)orAddComponent).specRigidbody)) { PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(((BraveBehaviour)orAddComponent).specRigidbody, (int?)null, false); } } } private void DestroyCompanion() { //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Expected O, but got Unknown if (Object.op_Implicit((Object)(object)m_extantCompanion)) { if (Object.op_Implicit((Object)(object)m_extantCompanion.GetComponent())) { m_extantCompanion.GetComponent().OnPreDeath -= OnPreDeath; m_extantCompanion.GetComponent().OnDamaged -= new OnDamagedEvent(CompanionOnDamaged); } if (!m_HasDied) { m_maxHealthRemaining = m_extantCompanion.GetComponent().GetMaxHealth(); m_healthRemaining = m_extantCompanion.GetComponent().GetCurrentHealth(); } Object.Destroy((Object)(object)m_extantCompanion); m_extantCompanion = null; } } protected override void Update() { if (!m_canSpawnRings) { m_RingCoolDown += BraveTime.DeltaTime; if (m_RingCoolDown > 2f) { m_RingCoolDown = 0f; m_canSpawnRings = true; } } ((PassiveItem)this).Update(); } public override void Pickup(PlayerController player) { if (m_HasDied) { ((BraveBehaviour)this).spriteAnimator.playAutomatically = false; ((BraveBehaviour)this).spriteAnimator.Stop(); ((BraveBehaviour)this).sprite.SetSprite("SonicBox_Broken_01"); } else { ((BraveBehaviour)this).spriteAnimator.playAutomatically = false; ((BraveBehaviour)this).spriteAnimator.Stop(); ((BraveBehaviour)this).sprite.SetSprite("SonicBox_Idle_02"); } ((PassiveItem)this).Pickup(player); player.OnNewFloorLoaded = (Action)Delegate.Combine(player.OnNewFloorLoaded, new Action(HandleNewFloor)); CreateCompanion(player); } private void HandleNewFloor(PlayerController obj) { DestroyCompanion(); if (!PreventRespawnOnFloorLoad | !m_HasDied) { CreateCompanion(obj); } } public override DebrisObject Drop(PlayerController player) { DestroyCompanion(); player.OnNewFloorLoaded = (Action)Delegate.Remove(player.OnNewFloorLoaded, new Action(HandleNewFloor)); DebrisObject val = ((PassiveItem)this).Drop(player); if (Object.op_Implicit((Object)(object)val)) { SonicBox component = ((Component)val).gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.m_HasDied = m_HasDied; component.m_PickedUp = true; component.m_healthRemaining = m_healthRemaining; component.m_maxHealthRemaining = m_maxHealthRemaining; if (component.m_HasDied) { ((PassiveItem)component).m_pickedUpThisRun = true; ((BraveBehaviour)component).spriteAnimator.playAutomatically = false; ((BraveBehaviour)component).spriteAnimator.Stop(); ((BraveBehaviour)component).sprite.SetSprite("SonicBox_Broken_01"); component.Break(); } else { ((BraveBehaviour)component).spriteAnimator.playAutomatically = true; ((BraveBehaviour)component).spriteAnimator.Play(); } } } return val; } public void Break() { base.m_pickedUp = true; Object.Destroy((Object)(object)((Component)this).gameObject, 1f); } public override void MidGameSerialize(List data) { ((PickupObject)this).MidGameSerialize(data); data.Add(m_PickedUp); data.Add(m_HasDied); data.Add(m_healthRemaining); data.Add(m_maxHealthRemaining); data.Add(m_HasGivenStats); } public override void MidGameDeserialize(List data) { ((PassiveItem)this).MidGameDeserialize(data); if (data.Count == 4) { m_PickedUp = (bool)data[0]; m_HasDied = (bool)data[1]; m_healthRemaining = (float)data[2]; m_maxHealthRemaining = (float)data[3]; m_HasGivenStats = (bool)data[4]; } } protected override void OnDestroy() { if ((Object)(object)base.m_owner != (Object)null) { PlayerController owner = base.m_owner; owner.OnNewFloorLoaded = (Action)Delegate.Remove(owner.OnNewFloorLoaded, new Action(HandleNewFloor)); } DestroyCompanion(); ((PassiveItem)this).OnDestroy(); } } public class BabySitter : PassiveItem { public static GameObject BabySitterObject; public static int BabySitterID; [EnemyIdentifier] public string CompanionGuid; public StatModifier DeathStatModifier; [NonSerialized] private bool m_PickedUp; [NonSerialized] private bool m_HasDied; [NonSerialized] private bool m_HasGivenStats; [NonSerialized] private float m_healthRemaining; private float m_maxHealthRemaining; [NonSerialized] public bool PreventRespawnOnFloorLoad; private GameObject m_extantCompanion; public static void Init(AssetBundle expandSharedAssets1) { //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) BabySitterObject = expandSharedAssets1.LoadAsset("Baby Sitter"); SpriteSerializer.AddSpriteToObject(BabySitterObject, ExpandPrefabs.EXItemCollection, "babysitter", (PerpendicularState)0); BabySitter babySitter = BabySitterObject.AddComponent(); string shortDesc = "You've got a friend in me..."; string longDesc = "Looks like you're stuck baby sitting him today.\n\nHe'll try his best to be useful.\nTry not to get him killed."; ItemBuilder.SetupItem((PickupObject)(object)babySitter, shortDesc, longDesc, "ex"); ((PickupObject)babySitter).quality = (ItemQuality)3; if (!ExpandSettings.EnableEXItems) { ((PickupObject)babySitter).quality = (ItemQuality)(-100); } ExpandLists.CompanionItems.Add(BabySitterObject); BabySitterID = ((PickupObject)babySitter).PickupObjectId; } public BabySitter() { //IL_0007: 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_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Expected O, but got Unknown DeathStatModifier = new StatModifier { amount = 1.8f, statToBoost = (StatType)5, modifyType = (ModifyMethod)1 }; CompanionGuid = ExpandEnemyDatabase.FriendlyCultistGUID; m_PickedUp = false; m_HasDied = false; m_HasGivenStats = false; PreventRespawnOnFloorLoad = false; m_healthRemaining = 0f; } private void CompanionOnHealthChanged(float resultValue, float maxValue) { m_healthRemaining = resultValue; m_maxHealthRemaining = maxValue; } private void OnPreDeath(Vector2 direction) { //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_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_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Expected O, but got Unknown if (Object.op_Implicit((Object)(object)this) && Object.op_Implicit((Object)(object)base.m_owner) && !m_HasDied && !m_HasGivenStats) { m_HasGivenStats = true; StatModifier item = new StatModifier { statToBoost = (StatType)14, modifyType = (ModifyMethod)0, amount = 2f }; base.m_owner.ownerlessStatModifiers.Add(item); base.m_owner.ownerlessStatModifiers.Add(DeathStatModifier); base.m_owner.stats.RecalculateStats(base.m_owner, false, false); m_HasDied = true; base.m_owner.DropPassiveItem((PassiveItem)(object)this); } } private void CreateCompanion(PlayerController owner) { //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_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Invalid comparison between Unknown and I4 //IL_0054: 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_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Expected O, but got Unknown //IL_0034: 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_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) if (!(PreventRespawnOnFloorLoad | m_HasDied)) { AIActor orLoadByGuid = EnemyDatabase.GetOrLoadByGuid(CompanionGuid); Vector3 val = ((BraveBehaviour)owner).transform.position; if ((int)GameManager.Instance.CurrentLevelOverrideState == 1) { val += new Vector3(1.125f, -0.3125f, 0f); } GameObject val2 = (m_extantCompanion = Object.Instantiate(((Component)orLoadByGuid).gameObject, val, Quaternion.identity)); CompanionController orAddComponent = GameObjectExtensions.GetOrAddComponent(m_extantCompanion); orAddComponent.Initialize(owner); val2.GetComponent().OnPreDeath += OnPreDeath; val2.GetComponent().OnHealthChanged += new OnHealthChangedEvent(CompanionOnHealthChanged); if (m_healthRemaining > 0f) { val2.GetComponent().SetHealthMaximum(m_maxHealthRemaining, (float?)null, false); val2.GetComponent().ForceSetCurrentHealth(m_healthRemaining); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)orAddComponent).specRigidbody)) { PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(((BraveBehaviour)orAddComponent).specRigidbody, (int?)null, false); } } } private void DestroyCompanion() { //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Expected O, but got Unknown if (Object.op_Implicit((Object)(object)m_extantCompanion)) { if (Object.op_Implicit((Object)(object)m_extantCompanion.GetComponent())) { m_extantCompanion.GetComponent().OnPreDeath -= OnPreDeath; m_extantCompanion.GetComponent().OnHealthChanged -= new OnHealthChangedEvent(CompanionOnHealthChanged); } if (!m_HasDied) { m_maxHealthRemaining = m_extantCompanion.GetComponent().GetMaxHealth(); m_healthRemaining = m_extantCompanion.GetComponent().GetCurrentHealth(); } Object.Destroy((Object)(object)m_extantCompanion); m_extantCompanion = null; } } protected override void Update() { ((PassiveItem)this).Update(); } public override void Pickup(PlayerController player) { ((PassiveItem)this).Pickup(player); player.OnNewFloorLoaded = (Action)Delegate.Combine(player.OnNewFloorLoaded, new Action(HandleNewFloor)); CreateCompanion(player); } private void HandleNewFloor(PlayerController obj) { DestroyCompanion(); if (!PreventRespawnOnFloorLoad | !m_HasDied) { CreateCompanion(obj); } } public override DebrisObject Drop(PlayerController player) { DestroyCompanion(); player.OnNewFloorLoaded = (Action)Delegate.Remove(player.OnNewFloorLoaded, new Action(HandleNewFloor)); DebrisObject val = ((PassiveItem)this).Drop(player); if (Object.op_Implicit((Object)(object)val)) { BabySitter component = ((Component)val).gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.m_HasDied = m_HasDied; component.m_PickedUp = true; component.m_healthRemaining = m_healthRemaining; component.m_maxHealthRemaining = m_maxHealthRemaining; if (component.m_HasDied) { ((PassiveItem)component).m_pickedUpThisRun = true; component.Break(); } } } return val; } public void Break() { base.m_pickedUp = true; Object.Destroy((Object)(object)((Component)this).gameObject, 1f); } public override void MidGameSerialize(List data) { ((PickupObject)this).MidGameSerialize(data); data.Add(m_PickedUp); data.Add(m_HasDied); data.Add(m_healthRemaining); data.Add(m_maxHealthRemaining); data.Add(m_HasGivenStats); } public override void MidGameDeserialize(List data) { ((PassiveItem)this).MidGameDeserialize(data); if (data.Count == 4) { m_PickedUp = (bool)data[0]; m_HasDied = (bool)data[1]; m_healthRemaining = (float)data[2]; m_maxHealthRemaining = (float)data[3]; m_HasGivenStats = (bool)data[4]; } } protected override void OnDestroy() { if ((Object)(object)base.m_owner != (Object)null) { PlayerController owner = base.m_owner; owner.OnNewFloorLoaded = (Action)Delegate.Remove(owner.OnNewFloorLoaded, new Action(HandleNewFloor)); } DestroyCompanion(); ((PassiveItem)this).OnDestroy(); } } public class BootlegGuns : Gun { public static int BootlegPistolID; public static int BootlegMachinePistolID; public static int BootlegShotgunID; public static Gun BootlegPistol; public static Gun BootlegMachinePistol; public static Gun BootlegShotgun; public static GameObject PistolProjectile; public static GameObject MachinePistolProjectile; public static GameObject ShotgunProjectile; public static void Init(AssetBundle expandSharedAssets1) { //IL_0062: 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_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Unknown result type (might be due to invalid IL or missing references) //IL_0260: Unknown result type (might be due to invalid IL or missing references) //IL_0265: Unknown result type (might be due to invalid IL or missing references) //IL_0284: Unknown result type (might be due to invalid IL or missing references) //IL_02a1: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_03c3: Unknown result type (might be due to invalid IL or missing references) //IL_043c: Unknown result type (might be due to invalid IL or missing references) //IL_0450: Unknown result type (might be due to invalid IL or missing references) //IL_0455: Unknown result type (might be due to invalid IL or missing references) //IL_0476: Unknown result type (might be due to invalid IL or missing references) //IL_0496: Unknown result type (might be due to invalid IL or missing references) //IL_02b0: Unknown result type (might be due to invalid IL or missing references) //IL_04fb: Unknown result type (might be due to invalid IL or missing references) //IL_05db: Unknown result type (might be due to invalid IL or missing references) //IL_05e5: Expected O, but got Unknown //IL_05e6: Unknown result type (might be due to invalid IL or missing references) //IL_05f0: Expected O, but got Unknown //IL_05f1: Unknown result type (might be due to invalid IL or missing references) //IL_05fb: Expected O, but got Unknown //IL_05fc: Unknown result type (might be due to invalid IL or missing references) //IL_0606: Expected O, but got Unknown //IL_0607: Unknown result type (might be due to invalid IL or missing references) //IL_0611: Expected O, but got Unknown //IL_04a6: Unknown result type (might be due to invalid IL or missing references) //IL_0649: Unknown result type (might be due to invalid IL or missing references) //IL_06d0: Unknown result type (might be due to invalid IL or missing references) Gun val = Databases.Items.NewGun("Bootleg Pistol", "bootleg_pistol"); Game.Items.Rename("outdated_gun_mods:bootleg_pistol", "ex:bootleg_pistol"); GunExt.SetShortDescription((PickupObject)(object)val, "Of questionable quality..."); GunExt.SetLongDescription((PickupObject)(object)val, "It's a counterfeit gun.\n\nDue to low quality standards, this weapon may be prone to exploding under certain circumstances..."); GunExt.SetupSprite(val, (tk2dSpriteCollectionData)null, "bootleg_pistol_idle_001", 18); GunExt.AddProjectileModuleFrom(val, "Magnum", true, true); Transform barrelOffset = val.barrelOffset; barrelOffset.localPosition -= new Vector3(0.3f, 0.2f, 0f); val.DefaultModule.ammoCost = 1; val.PreventOutlines = true; val.reloadTime = 1f; val.gunClass = (GunClass)1; val.ammo = 140; val.SetBaseMaxAmmo(140); ((PickupObject)val).quality = (ItemQuality)1; if (!ExpandSettings.EnableEXItems) { ((PickupObject)val).quality = (ItemQuality)(-100); } ((PickupObject)val).UsesCustomCost = true; ((PickupObject)val).CustomCost = 10; ((BraveBehaviour)val).encounterTrackable.EncounterGuid = "baad9dd6d005458daf02933f6a1ba926"; ((Component)val).gameObject.AddComponent(); ((Component)val).gameObject.AddComponent(); Databases.Items.Add((PickupObject)(object)val, false, "ANY"); BootlegPistolID = ((PickupObject)val).PickupObjectId; PistolProjectile = expandSharedAssets1.LoadAsset("EXBootlegPistolProjectile"); SpriteSerializer.AddSpriteToObject(((Component)PistolProjectile.transform.Find("Sprite")).gameObject, ExpandPrefabs.EXGunCollection, "bootleg_pistol_projectile_001", (PerpendicularState)0); ExpandUtility.DuplicateRigidBody(PistolProjectile.AddComponent(), ((BraveBehaviour)val.DefaultModule.projectiles[0]).specRigidbody); Projectile val2 = PistolProjectile.AddComponent(); ExpandUtility.DuplicateComponent(val2, val.DefaultModule.projectiles[0]); val.DefaultModule.projectiles[0] = val2; PistolProjectile.gameObject.transform.localPosition = val.barrelOffset.localPosition; Gun val3 = Databases.Items.NewGun("Bootleg Machine Pistol", "bootleg_machinepistol"); Game.Items.Rename("outdated_gun_mods:bootleg_machine_pistol", "ex:bootleg_machine_pistol"); GunExt.SetShortDescription((PickupObject)(object)val3, "Of questionable quality..."); GunExt.SetLongDescription((PickupObject)(object)val3, "It's a counterfeit machine gun.\n\nDue to low quality standards, this weapon may be prone to exploding under certain circumstances..."); GunExt.SetupSprite(val3, (tk2dSpriteCollectionData)null, "bootleg_machinepistol_idle_001", 30); GunExt.AddProjectileModuleFrom(val3, ((Object)PickupObjectDatabase.GetById(43)).name, true, true); Transform barrelOffset2 = val3.barrelOffset; barrelOffset2.localPosition -= new Vector3(0.3f, 0.2f, 0f); val3.PreventOutlines = true; val3.reloadTime = 1.2f; val3.gunClass = (GunClass)10; val3.ammo = 600; val3.SetBaseMaxAmmo(600); ((PickupObject)val3).quality = (ItemQuality)1; if (!ExpandSettings.EnableEXItems) { ((PickupObject)val3).quality = (ItemQuality)(-100); } val3.gunSwitchGroup = "Uzi"; ((PickupObject)val3).UsesCustomCost = true; ((PickupObject)val3).CustomCost = 15; ((BraveBehaviour)val3).encounterTrackable.EncounterGuid = "e56adda5081347e5b9e0cf2556689b0e"; ((Component)val3).gameObject.AddComponent(); ((Component)val3).gameObject.AddComponent(); Databases.Items.Add((PickupObject)(object)val3, false, "ANY"); BootlegMachinePistolID = ((PickupObject)val3).PickupObjectId; MachinePistolProjectile = expandSharedAssets1.LoadAsset("EXBootlegMachinePistolProjectile"); SpriteSerializer.AddSpriteToObject(((Component)MachinePistolProjectile.transform.Find("Sprite")).gameObject, ExpandPrefabs.EXGunCollection, "bootleg_pistol_projectile_001", (PerpendicularState)0); ExpandUtility.DuplicateRigidBody(MachinePistolProjectile.AddComponent(), ((BraveBehaviour)val3.DefaultModule.projectiles[0]).specRigidbody); Projectile val4 = MachinePistolProjectile.AddComponent(); ExpandUtility.DuplicateComponent(val4, val3.DefaultModule.projectiles[0]); val3.DefaultModule.projectiles[0] = val4; MachinePistolProjectile.gameObject.transform.localPosition = val3.barrelOffset.localPosition; Gun val5 = Databases.Items.NewGun("Bootleg Shotgun", "bootleg_shotgun"); Game.Items.Rename("outdated_gun_mods:bootleg_shotgun", "ex:bootleg_shotgun"); GunExt.SetShortDescription((PickupObject)(object)val5, "Of questionable quality..."); GunExt.SetLongDescription((PickupObject)(object)val5, "It's a counterfeit shotgun.\n\nDue to low quality standards, this weapon may be prone to exploding under certain circumstances..."); GunExt.SetupSprite(val5, (tk2dSpriteCollectionData)null, "bootleg_shotgun_idle_001", 18); GunExt.AddProjectileModuleFrom(val5, ((Object)PickupObjectDatabase.GetById(51)).name, true, true); Transform barrelOffset3 = val5.barrelOffset; barrelOffset3.localPosition -= new Vector3(0.3f, 0.2f, 0f); val5.PreventOutlines = true; val5.reloadTime = 1.8f; val5.gunClass = (GunClass)5; val5.ammo = 150; val5.SetBaseMaxAmmo(150); ((PickupObject)val5).quality = (ItemQuality)1; if (!ExpandSettings.EnableEXItems) { ((PickupObject)val5).quality = (ItemQuality)(-100); } val5.gunSwitchGroup = "Shotgun"; ((PickupObject)val5).UsesCustomCost = true; ((PickupObject)val5).CustomCost = 18; ((BraveBehaviour)val5).encounterTrackable.EncounterGuid = "fa0575b4cf0140ddb6b0ed6d962bff47"; ((Component)val5).gameObject.AddComponent(); ((Component)val5).gameObject.AddComponent(); val5.DefaultModule.ammoType = (AmmoType)4; Databases.Items.Add((PickupObject)(object)val5, false, "ANY"); BootlegShotgunID = ((PickupObject)val5).PickupObjectId; ShotgunProjectile = expandSharedAssets1.LoadAsset("EXBootlegShotgunProjectile"); SpriteSerializer.AddSpriteToObject(((Component)ShotgunProjectile.transform.Find("Sprite")).gameObject, ExpandPrefabs.EXGunCollection, "bootleg_pistol_projectile_001", (PerpendicularState)0); ExpandUtility.DuplicateRigidBody(ShotgunProjectile.AddComponent(), ((BraveBehaviour)val5.DefaultModule.projectiles[0]).specRigidbody); Projectile val6 = ShotgunProjectile.AddComponent(); ExpandUtility.DuplicateComponent(val6, val5.DefaultModule.projectiles[0]); val5.DefaultModule.projectiles[0] = val6; ProjectileVolleyData val7 = ScriptableObject.CreateInstance(); val7.projectiles = new List { val5.DefaultModule, new ProjectileModule(), new ProjectileModule(), new ProjectileModule(), new ProjectileModule(), new ProjectileModule() }; for (int i = 1; i < val7.projectiles.Count; i++) { JsonUtility.FromJsonOverwrite(JsonUtility.ToJson((object)val5.DefaultModule), (object)val7.projectiles[i]); val7.projectiles[i].ammoType = (AmmoType)0; val7.projectiles[i].ammoCost = 0; } val7.UsesBeamRotationLimiter = false; val7.BeamRotationDegreesPerSecond = 30f; val7.ModulesAreTiers = false; val7.UsesShotgunStyleVelocityRandomizer = true; val7.DecreaseFinalSpeedPercentMin = -15f; val7.IncreaseFinalSpeedPercentMax = 15f; val5.Volley = val7; ((Component)val6).gameObject.transform.localPosition = val5.barrelOffset.localPosition; BootlegPistol = val; BootlegMachinePistol = val3; BootlegShotgun = val5; } public static void PostInit() { if (Object.op_Implicit((Object)(object)BootlegPistol) && Object.op_Implicit((Object)(object)((Component)BootlegPistol).gameObject.GetComponent())) { ((Component)BootlegPistol).gameObject.GetComponent().TransfmorgifyTargetGUIDs = new List { ExpandEnemyDatabase.BootlegBulletManGUID }; } if (Object.op_Implicit((Object)(object)BootlegMachinePistol) && Object.op_Implicit((Object)(object)((Component)BootlegMachinePistol).gameObject.GetComponent())) { ((Component)BootlegMachinePistol).gameObject.GetComponent().TransfmorgifyTargetGUIDs = new List { ExpandEnemyDatabase.BootlegBulletManBandanaGUID }; } if (Object.op_Implicit((Object)(object)BootlegShotgun) && Object.op_Implicit((Object)(object)((Component)BootlegShotgun).gameObject.GetComponent())) { ((Component)BootlegShotgun).gameObject.GetComponent().IsBootlegShotgun = true; } } } public class BulletKinGun : Gun { public static int BulletKinGunID = -1; public static void Init() { //IL_008a: 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) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) Gun val = Databases.Items.NewGun("The Bullet Kin Gun", "bulletkin_gun"); Game.Items.Rename("outdated_gun_mods:the_bullet_kin_gun", "ex:bulletkin_gun"); GunExt.SetShortDescription((PickupObject)(object)val, "Fires Bullet Kin..."); GunExt.SetLongDescription((PickupObject)(object)val, "This gun fires Bullet Kins....Don't ask questions. Just accept it."); GunExt.SetupSprite(val, (tk2dSpriteCollectionData)null, "bulletkin_gun_idle_001", 18); GunExt.AddProjectileModuleFrom(val, "Magnum", true, true); val.DefaultModule.ammoCost = 1; val.DefaultModule.angleVariance = 0f; val.DefaultModule.numberOfShotsInClip = 1; val.DefaultModule.shootStyle = (ShootStyle)0; val.DefaultModule.sequenceStyle = (ProjectileSequenceStyle)0; val.DefaultModule.cooldownTime = 0.15f; val.DefaultModule.positionOffset = new Vector3(0.05f, 0.01f); val.reloadTime = 0.6f; val.gunClass = (GunClass)1; val.ammo = 140; val.SetBaseMaxAmmo(140); ((PickupObject)val).quality = (ItemQuality)2; if (!ExpandSettings.EnableEXItems) { ((PickupObject)val).quality = (ItemQuality)(-100); } ref string alternateSwitchGroup = ref val.alternateSwitchGroup; PickupObject byId = PickupObjectDatabase.GetById(150); alternateSwitchGroup = ((Gun)((byId is Gun) ? byId : null)).gunSwitchGroup; ref string gunSwitchGroup = ref val.gunSwitchGroup; PickupObject byId2 = PickupObjectDatabase.GetById(150); gunSwitchGroup = ((Gun)((byId2 is Gun) ? byId2 : null)).gunSwitchGroup; ((BraveBehaviour)val).encounterTrackable.EncounterGuid = "43a080b46fa448ef8d2be35f93ab6e64"; ((Component)val).gameObject.AddComponent(); Databases.Items.Add((PickupObject)(object)val, false, "ANY"); BulletKinGunID = ((PickupObject)val).PickupObjectId; } } public class ExpandFireEnemiesGunMod : MonoBehaviour, IGunInheritable { public List EnemyGUIDs; private bool m_FiresJammedEnemies; private float m_baseDamageMod; private Gun m_gun; public ExpandFireEnemiesGunMod() { EnemyGUIDs = new List { "01972dee89fc4404a5c408d50007dad5" }; m_baseDamageMod = 1.1f; } private void Awake() { if (!Object.op_Implicit((Object)(object)m_gun)) { m_gun = ((Component)this).GetComponent(); } if (Object.op_Implicit((Object)(object)m_gun)) { m_gun.OnInitializedWithOwner = (Action)Delegate.Combine(m_gun.OnInitializedWithOwner, new Action(OnGunInitialized)); if ((Object)(object)m_gun.CurrentOwner != (Object)null) { OnGunInitialized(m_gun.CurrentOwner); } } } private void Start() { } private void Update() { if (Object.op_Implicit((Object)(object)m_gun) && Object.op_Implicit((Object)(object)m_gun.CurrentOwner) && Object.op_Implicit((Object)(object)m_gun.CurrentOwner) && m_gun.CurrentOwner is PlayerController) { GameActor currentOwner = m_gun.CurrentOwner; PlayerController val = (PlayerController)(object)((currentOwner is PlayerController) ? currentOwner : null); if ((val.HasGun(39) | val.HasPassiveItem(815)) && !EnemyGUIDs.Contains("4d37ce3d666b4ddda8039929225b7ede")) { EnemyGUIDs.Add("4d37ce3d666b4ddda8039929225b7ede"); } else if (!val.HasGun(39) && !val.HasPassiveItem(815) && EnemyGUIDs.Contains("4d37ce3d666b4ddda8039929225b7ede")) { EnemyGUIDs.Remove("4d37ce3d666b4ddda8039929225b7ede"); } if ((val.HasGun(51) | val.HasPassiveItem(815)) && !EnemyGUIDs.Contains("b54d89f9e802455cbb2b8a96a31e8259") && !EnemyGUIDs.Contains("128db2f0781141bcb505d8f00f9e4d47")) { EnemyGUIDs.Add("128db2f0781141bcb505d8f00f9e4d47"); EnemyGUIDs.Add("b54d89f9e802455cbb2b8a96a31e8259"); } else if (!val.HasGun(51) && !val.HasPassiveItem(815) && EnemyGUIDs.Contains("b54d89f9e802455cbb2b8a96a31e8259") && EnemyGUIDs.Contains("128db2f0781141bcb505d8f00f9e4d47")) { EnemyGUIDs.Remove("128db2f0781141bcb505d8f00f9e4d47"); EnemyGUIDs.Remove("b54d89f9e802455cbb2b8a96a31e8259"); } if ((val.HasPassiveItem(572) | val.HasPassiveItem(815)) && !EnemyGUIDs.Contains("76bc43539fc24648bff4568c75c686d1")) { EnemyGUIDs.Add("76bc43539fc24648bff4568c75c686d1"); } else if (!val.HasPassiveItem(572) && !val.HasPassiveItem(815) && EnemyGUIDs.Contains("76bc43539fc24648bff4568c75c686d1")) { EnemyGUIDs.Remove("76bc43539fc24648bff4568c75c686d1"); } if ((val.HasPassiveItem(407) | val.HasPassiveItem(815)) && !m_FiresJammedEnemies) { m_FiresJammedEnemies = true; } else if (!val.HasPassiveItem(407) && !val.HasPassiveItem(815) && m_FiresJammedEnemies) { m_FiresJammedEnemies = false; } } } private void OnGunInitialized(GameActor actor) { if (!((Object)(object)actor == (Object)null) && actor is PlayerController) { Gun gun = m_gun; gun.PostProcessProjectile = (Action)Delegate.Combine(gun.PostProcessProjectile, new Action(EXPostProcessProjectile)); } } public void EXPostProcessProjectile(Projectile projectile) { //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_0152: 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_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_01d0: Unknown result type (might be due to invalid IL or missing references) //IL_0304: Unknown result type (might be due to invalid IL or missing references) //IL_0371: Unknown result type (might be due to invalid IL or missing references) //IL_0380: Unknown result type (might be due to invalid IL or missing references) //IL_0385: Unknown result type (might be due to invalid IL or missing references) //IL_0264: Unknown result type (might be due to invalid IL or missing references) //IL_0269: Unknown result type (might be due to invalid IL or missing references) //IL_03c0: Unknown result type (might be due to invalid IL or missing references) //IL_03cf: Unknown result type (might be due to invalid IL or missing references) //IL_03d4: Unknown result type (might be due to invalid IL or missing references) //IL_02cc: Unknown result type (might be due to invalid IL or missing references) //IL_02d1: Unknown result type (might be due to invalid IL or missing references) //IL_02a1: Unknown result type (might be due to invalid IL or missing references) //IL_02a6: Unknown result type (might be due to invalid IL or missing references) if ((EnemyGUIDs == null) | (EnemyGUIDs.Count <= 0)) { return; } AIActor orLoadByGuid = EnemyDatabase.GetOrLoadByGuid(BraveUtility.RandomElement(EnemyGUIDs)); if (!Object.op_Implicit((Object)(object)orLoadByGuid)) { return; } float num = m_baseDamageMod; if (Object.op_Implicit((Object)(object)((BraveBehaviour)projectile).sprite) && Object.op_Implicit((Object)(object)((BraveBehaviour)((BraveBehaviour)projectile).sprite).renderer)) { ((BraveBehaviour)((BraveBehaviour)projectile).sprite).renderer.enabled = false; } if ((orLoadByGuid.EnemyGuid == "128db2f0781141bcb505d8f00f9e4d47") | (orLoadByGuid.EnemyGuid == "b54d89f9e802455cbb2b8a96a31e8259")) { num += 0.35f; } if (m_FiresJammedEnemies) { num += 0.25f; } ProjectileData baseData = projectile.baseData; baseData.damage *= num; if (orLoadByGuid.EnemyGuid == "76bc43539fc24648bff4568c75c686d1") { ProjectileData baseData2 = projectile.baseData; baseData2.damage /= 2f; projectile.AppliesStun = true; projectile.AppliedStunDuration = 3f; projectile.StunApplyChance = 0.4f; } if (!Object.op_Implicit((Object)(object)((Component)orLoadByGuid).gameObject.GetComponent()) && orLoadByGuid.EnemyGuid != "76bc43539fc24648bff4568c75c686d1") { ProjectileData baseData3 = projectile.baseData; baseData3.force += 5f; } projectile.pierceMinorBreakables = true; Vector3 position = ((BraveBehaviour)projectile).transform.position; AIActor val = Object.Instantiate(orLoadByGuid, position, ((BraveBehaviour)projectile).transform.rotation); if (Object.op_Implicit((Object)(object)projectile.Owner) && projectile.Owner is PlayerController) { GameActor owner = projectile.Owner; float bulletScaleModifier = ((PlayerController)((owner is PlayerController) ? owner : null)).BulletScaleModifier; ((Component)val).gameObject.layer = LayerMask.NameToLayer("Unpixelated"); val.EnemyScale = new Vector2(bulletScaleModifier, bulletScaleModifier); SpriteOutlineManager.ChangeOutlineLayer(((BraveBehaviour)val).sprite, LayerMask.NameToLayer("Unpixelated")); if (val.EnemyScale != Vector2.one) { ((GameActor)val).HasShadow = false; Object.Destroy((Object)(object)((GameActor)val).ShadowObject); } } ((Behaviour)((BraveBehaviour)val).specRigidbody).enabled = false; val.IgnoreForRoomClear = true; val.IsHarmlessEnemy = true; val.CanTargetEnemies = true; val.CanTargetPlayers = false; val.procedurallyOutlined = false; if (!m_FiresJammedEnemies && val.EnemyGuid != "76bc43539fc24648bff4568c75c686d1") { if (val.EnemyGuid == "01972dee89fc4404a5c408d50007dad5") { ((GameActor)val).RegisterOverrideColor(Color32.op_Implicit(new Color32(byte.MaxValue, (byte)240, (byte)190, (byte)220)), "Pale BulletKin"); } else if (val.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((GameActor)val).RegisterOverrideColor(Color32.op_Implicit(new Color32((byte)170, (byte)170, (byte)170, (byte)190)), "Pale Generic Enemy"); } else { ((GameActor)val).RegisterOverrideColor(Color32.op_Implicit(new Color32((byte)160, (byte)160, (byte)160, (byte)170)), "Pale Generic Enemy"); } } if (((BraveBehaviour)val).specRigidbody.GetPixelCollider((ColliderType)1) != null) { PixelCollider val2 = ExpandUtility.DuplicatePixelCollider(((BraveBehaviour)val).specRigidbody.GetPixelCollider((ColliderType)2)); val2.CollisionLayer = (CollisionLayer)4; ((BraveBehaviour)projectile).specRigidbody.PixelColliders = new List { val2 }; ((BraveBehaviour)projectile).specRigidbody.Reinitialize(); } ((Component)val).gameObject.transform.parent = ((BraveBehaviour)projectile).transform; if ((orLoadByGuid.EnemyGuid == "01972dee89fc4404a5c408d50007dad5") | (orLoadByGuid.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede")) { Transform transform = ((Component)val).gameObject.transform; transform.localPosition -= new Vector3(0.5f, 0.5f); } else if ((orLoadByGuid.EnemyGuid == "128db2f0781141bcb505d8f00f9e4d47") | (orLoadByGuid.EnemyGuid == "b54d89f9e802455cbb2b8a96a31e8259")) { Transform transform2 = ((Component)val).gameObject.transform; transform2.localPosition -= new Vector3(0.5f, 1f); } ((BraveBehaviour)val).sprite.UpdateZDepth(); if (m_FiresJammedEnemies) { val.BecomeBlackPhantom(); } projectile.OnDestruction += OnDestruction; } public void OnDestruction(Projectile projectile) { //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Expected O, but got Unknown //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Expected O, but got Unknown //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_01d5: Unknown result type (might be due to invalid IL or missing references) //IL_022e: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Unknown result type (might be due to invalid IL or missing references) //IL_03e3: Unknown result type (might be due to invalid IL or missing references) AIActor componentInChildren = ((Component)projectile).GetComponentInChildren(); new List(); if (!Object.op_Implicit((Object)(object)componentInChildren)) { return; } ((Behaviour)((BraveBehaviour)componentInChildren).specRigidbody).enabled = true; ((BraveBehaviour)componentInChildren).specRigidbody.HitboxPixelCollider.IsTrigger = true; PixelCollider hitboxPixelCollider = ((BraveBehaviour)componentInChildren).specRigidbody.HitboxPixelCollider; hitboxPixelCollider.CollisionLayerIgnoreOverride |= CollisionMask.LayerToMask((CollisionLayer)4); ((BraveBehaviour)componentInChildren).specRigidbody.AddCollisionLayerIgnoreOverride(CollisionMask.LayerToMask((CollisionLayer)0, (CollisionLayer)1)); ((BraveBehaviour)componentInChildren).sprite.UpdateZDepth(); ((BraveBehaviour)componentInChildren).specRigidbody.UpdateCollidersOnScale = true; ((BraveBehaviour)componentInChildren).specRigidbody.UpdateCollidersOnRotation = true; ((BraveBehaviour)componentInChildren).specRigidbody.Reinitialize(); ((BraveBehaviour)componentInChildren).specRigidbody.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Combine((Delegate?)(object)((BraveBehaviour)componentInChildren).specRigidbody.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(HandlePreCollision)); if (m_FiresJammedEnemies && Random.value <= 0.9f) { componentInChildren.CanDropCurrency = false; } RoomHandler absoluteRoom = Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)projectile).transform.position); if ((componentInChildren.EnemyGuid == "128db2f0781141bcb505d8f00f9e4d47") | (componentInChildren.EnemyGuid == "b54d89f9e802455cbb2b8a96a31e8259")) { ((BraveBehaviour)componentInChildren).healthHaver.spawnBulletScript = false; } if (absoluteRoom == null) { ((Component)componentInChildren).gameObject.transform.parent = null; if (Object.op_Implicit((Object)(object)((Component)componentInChildren).gameObject.GetComponent()) && ((Component)componentInChildren).gameObject.GetComponent().explosionData != null) { ((Component)componentInChildren).gameObject.GetComponent().explosionData.ignoreList = new List(); ((Component)componentInChildren).gameObject.GetComponent().explosionData.damageToPlayer = 0f; if (Object.op_Implicit((Object)(object)projectile.Owner) && projectile.Owner is PlayerController) { ((Component)componentInChildren).gameObject.GetComponent().explosionData.ignoreList.Add(((BraveBehaviour)projectile.Owner).specRigidbody); } } ((BraveBehaviour)componentInChildren).healthHaver.ApplyDamage(10000f, Vector2.zero, "Self Destruct", (CoreDamageTypes)0, (DamageCategory)5, true, (PixelCollider)null, true); return; } ((Component)componentInChildren).gameObject.transform.parent = absoluteRoom.hierarchyParent; float num = 0.08f; if (m_FiresJammedEnemies) { num += 0.03f; } if (Random.value <= num && absoluteRoom.HasActiveEnemies((ActiveEnemyType)1)) { if (componentInChildren.EnemyScale == Vector2.one) { componentInChildren.procedurallyOutlined = true; } ExpandUtility.CorrectForWalls(componentInChildren); componentInChildren.CanTargetEnemies = true; componentInChildren.CanTargetPlayers = false; componentInChildren.IgnoreForRoomClear = true; if (Object.op_Implicit((Object)(object)((Component)componentInChildren).gameObject.GetComponent())) { ((Component)componentInChildren).gameObject.GetComponent().Initialize(absoluteRoom, true); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)componentInChildren).bulletBank)) { ((BraveBehaviour)componentInChildren).bulletBank.OnProjectileCreated = (Action)Delegate.Combine(((BraveBehaviour)componentInChildren).bulletBank.OnProjectileCreated, new Action(HandleCompanionPostProcessProjectile)); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)componentInChildren).aiShooter)) { ((BraveBehaviour)componentInChildren).aiShooter.PostProcessProjectile = (Action)Delegate.Combine(((BraveBehaviour)componentInChildren).aiShooter.PostProcessProjectile, new Action(HandleCompanionPostProcessProjectile)); } componentInChildren.ConfigureOnPlacement(absoluteRoom); ((Component)componentInChildren).gameObject.AddComponent(); return; } if (absoluteRoom != null) { componentInChildren.ConfigureOnPlacement(absoluteRoom); ((Component)componentInChildren).gameObject.transform.parent = absoluteRoom.hierarchyParent; } else { ((Component)componentInChildren).gameObject.transform.parent = null; } if (Object.op_Implicit((Object)(object)((Component)componentInChildren).gameObject.GetComponent()) && ((Component)componentInChildren).gameObject.GetComponent().explosionData != null) { ((Component)componentInChildren).gameObject.GetComponent().explosionData.ignoreList = new List(); ((Component)componentInChildren).gameObject.GetComponent().explosionData.damageToPlayer = 0f; if (Object.op_Implicit((Object)(object)projectile.Owner) && projectile.Owner is PlayerController) { ((Component)componentInChildren).gameObject.GetComponent().explosionData.ignoreList.Add(((BraveBehaviour)projectile.Owner).specRigidbody); } } ((BraveBehaviour)componentInChildren).healthHaver.ApplyDamage(10000f, Vector2.zero, "Self Destruct", (CoreDamageTypes)0, (DamageCategory)5, true, (PixelCollider)null, true); } protected static void HandlePreCollision(SpeculativeRigidbody myRigidbody, PixelCollider myPixelCollider, SpeculativeRigidbody otherRigidbody, PixelCollider otherPixelCollider) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)otherRigidbody).aiActor) && Object.op_Implicit((Object)(object)((BraveBehaviour)otherRigidbody).healthHaver) && !((BraveBehaviour)otherRigidbody).healthHaver.IsBoss) { PhysicsEngine.SkipCollision = true; } } protected void HandleCompanionPostProcessProjectile(Projectile obj) { if (Object.op_Implicit((Object)(object)obj)) { obj.collidesWithPlayer = false; obj.TreatedAsNonProjectileForChallenge = true; ProjectileData baseData = obj.baseData; baseData.damage *= 8f; if (m_FiresJammedEnemies) { ProjectileData baseData2 = obj.baseData; baseData2.damage *= 2f; } obj.RuntimeUpdateScale(1f / obj.AdditionalScaleMultiplier); obj.RuntimeUpdateScale(0.75f); } } public void InheritData(Gun sourceGun) { } public void MidGameSerialize(List data, int dataIndex) { } public void MidGameDeserialize(List data, ref int dataIndex) { dataIndex++; } private void OnDestroy() { } } public class CronenbergBullets : BulletStatusEffectItem { public static CronenbergBullets m_CachedCronenbergBulletsItem; private static GameObject CronebergItemObject; public static void Init(AssetBundle expandSharedAssets1) { //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) CronebergItemObject = expandSharedAssets1.LoadAsset("Cronenberg Bullets"); SpriteSerializer.AddSpriteToObject(CronebergItemObject, ExpandPrefabs.EXItemCollection, "cronenbergbullets", (PerpendicularState)0); CronenbergBullets cronenbergBullets = CronebergItemObject.AddComponent(); string shortDesc = "Creates abominations..."; string longDesc = "Legends say a mad scientist tried to experiment on the gundead to create monsters to do his bidding.\n\nHe ultimiately parished by the hands of his own abominations. The item he crafted was thought to be lost to the Gungeon...Until some lucky (or unlucky?) Gungeoneers found it."; ItemBuilder.SetupItem((PickupObject)(object)cronenbergBullets, shortDesc, longDesc, "ex"); ((PickupObject)cronenbergBullets).quality = (ItemQuality)3; if (!ExpandSettings.EnableEXItems) { ((PickupObject)cronenbergBullets).quality = (ItemQuality)(-100); } ((PickupObject)cronenbergBullets).CustomCost = 50; ((BulletStatusEffectItem)cronenbergBullets).chanceOfActivating = 0.055f; ((BulletStatusEffectItem)cronenbergBullets).chanceFromBeamPerSecond = 0.055f; ((BulletStatusEffectItem)cronenbergBullets).TintBullets = false; ((BulletStatusEffectItem)cronenbergBullets).TintBeams = false; ((BulletStatusEffectItem)cronenbergBullets).TintColor = new Color(0.94f, 0f, 0.992f, 1f); ((BulletStatusEffectItem)cronenbergBullets).TintPriority = 5; ((BulletStatusEffectItem)cronenbergBullets).AddsDamageType = false; ((BulletStatusEffectItem)cronenbergBullets).DamageTypesToAdd = (CoreDamageTypes)0; ((BulletStatusEffectItem)cronenbergBullets).AppliesSpeedModifier = false; ((BulletStatusEffectItem)cronenbergBullets).AppliesDamageOverTime = false; ((BulletStatusEffectItem)cronenbergBullets).AppliesCharm = false; ((BulletStatusEffectItem)cronenbergBullets).AppliesFreeze = false; ((BulletStatusEffectItem)cronenbergBullets).FreezeScalesWithDamage = false; ((BulletStatusEffectItem)cronenbergBullets).FreezeAmountPerDamage = 1f; ((BulletStatusEffectItem)cronenbergBullets).AppliesFire = false; ((BulletStatusEffectItem)cronenbergBullets).ConfersElectricityImmunity = false; ((BulletStatusEffectItem)cronenbergBullets).AppliesTransmog = true; ((BulletStatusEffectItem)cronenbergBullets).TransmogTargetGuid = "76bc43539fc24648bff4568c75c686d1"; ((BulletStatusEffectItem)cronenbergBullets).Synergies = (BulletStatusEffectItemSynergy[])(object)new BulletStatusEffectItemSynergy[0]; m_CachedCronenbergBulletsItem = cronenbergBullets; } } public class CorruptedJunk : PassiveItem { public enum ItemEffectType { BigCash, ArmorUp, ManyKeys, BlanksRUS, HealthPak, DrStone, MuchAmmo } public static GameObject CorruptedJunkObject; public static int CorruptedJunkID; private static List m_SpriteNames; private bool m_PickedUp; public List AllowedEffects; private ItemEffectType m_SelectedEffect; public static void Init(AssetBundle expandSharedAssets1) { //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) CorruptedJunkObject = expandSharedAssets1.LoadAsset("Corrupted Junk"); CorruptedJunk corruptedJunk = CorruptedJunkObject.AddComponent(); SpriteSerializer.AddSpriteToObject(CorruptedJunkObject, ExpandPrefabs.EXItemCollection, "corrupted_poopsack_09", (PerpendicularState)0); string shortDesc = "Next Time... What even is this!?"; string longDesc = "Just some corrupted junk.\n\nCarrying this around makes you question your sanity..."; ItemBuilder.SetupItem((PickupObject)(object)corruptedJunk, shortDesc, longDesc, "ex"); ((PickupObject)corruptedJunk).quality = (ItemQuality)4; if (!ExpandSettings.EnableEXItems) { ((PickupObject)corruptedJunk).quality = (ItemQuality)(-100); } ((PickupObject)corruptedJunk).CanBeDropped = false; CorruptedJunkID = ((PickupObject)corruptedJunk).PickupObjectId; m_SpriteNames = new List { "corrupted_poopsack_01", "corrupted_poopsack_02", "corrupted_poopsack_03", "corrupted_poopsack_04", "corrupted_poopsack_05", "corrupted_poopsack_06", "corrupted_poopsack_07", "corrupted_poopsack_08", "corrupted_poopsack_09", "corrupted_poopsack_10" }; ExpandUtility.GenerateSpriteAnimator(CorruptedJunkObject, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true); ExpandUtility.AddAnimation(CorruptedJunkObject.GetComponent(), ExpandPrefabs.EXItemCollection.GetComponent(), m_SpriteNames, "idle", (WrapMode)5, 20); } public CorruptedJunk() { m_PickedUp = false; AllowedEffects = new List { ItemEffectType.BigCash, ItemEffectType.ArmorUp, ItemEffectType.ManyKeys, ItemEffectType.BlanksRUS, ItemEffectType.HealthPak, ItemEffectType.DrStone, ItemEffectType.MuchAmmo }; } public override void Pickup(PlayerController player) { ((PassiveItem)this).Pickup(player); ExpandPlaceFloorObjects.PlayerHasCorruptedJunk = true; HandleUIAnimation(); HandleRandomEffect(player); m_PickedUp = true; } private void HandleUIAnimation() { MinimapUIController val = null; val = ((!Object.op_Implicit((Object)(object)Minimap.Instance)) ? Object.FindObjectOfType() : Minimap.Instance.UIMinimap); if (!Object.op_Implicit((Object)(object)val)) { return; } List> list = ReflectionHelpers.ReflectGetField>>(typeof(MinimapUIController), "dockItems", val); if (list != null && list.Count > 0) { for (int i = 0; i < list.Count; i++) { if (list[i].Second is CorruptedJunk) { if (!Object.op_Implicit((Object)(object)((Component)list[i].First).gameObject.GetComponent())) { ExpandUtility.GenerateSpriteAnimator(((Component)list[i].First).gameObject, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true); ExpandUtility.AddAnimation(((Component)list[i].First).gameObject.GetComponent(), ((tk2dBaseSprite)list[i].First).Collection, m_SpriteNames, "idle", (WrapMode)5, 20); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)list[i].First).spriteAnimator) && !((BraveBehaviour)list[i].First).spriteAnimator.IsPlaying("idle")) { ((BraveBehaviour)list[i].First).spriteAnimator.Play("idle"); } } else if (!m_PickedUp && Random.value <= 0.6f) { ExpandShaders.Instance.ApplyGlitchShader(list[i].First); } } } List> list2 = ReflectionHelpers.ReflectGetField>>(typeof(MinimapUIController), "secondaryDockItems", val); if (list2 == null || list2.Count <= 0) { return; } for (int j = 0; j < list2.Count; j++) { if (list2[j].Second is CorruptedJunk) { if (!Object.op_Implicit((Object)(object)((Component)list2[j].First).gameObject.GetComponent())) { ExpandUtility.GenerateSpriteAnimator(((Component)list2[j].First).gameObject, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true); ExpandUtility.AddAnimation(((Component)list2[j].First).gameObject.GetComponent(), ((tk2dBaseSprite)list2[j].First).Collection, m_SpriteNames, "idle", (WrapMode)5, 20); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)list2[j].First).spriteAnimator) && !((BraveBehaviour)list2[j].First).spriteAnimator.IsPlaying("idle")) { ((BraveBehaviour)list2[j].First).spriteAnimator.Play("idle"); } } else if (!m_PickedUp && Random.value <= 0.6f) { ExpandShaders.Instance.ApplyGlitchShader(list2[j].First); } } } private void HandleRandomEffect(PlayerController player) { //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Invalid comparison between Unknown and I4 //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_010c: 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_0113: 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_0123: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Expected O, but got Unknown //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: 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_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01e1: Expected O, but got Unknown if (m_PickedUp | (AllowedEffects == null) | (AllowedEffects.Count <= 0)) { return; } ExpandShaders.Instance.GlitchScreenForDuration(); AllowedEffects = BraveUtility.Shuffle(AllowedEffects); m_SelectedEffect = BraveUtility.RandomElement(AllowedEffects); if (m_SelectedEffect == ItemEffectType.ArmorUp) { HealthHaver healthHaver = ((BraveBehaviour)player).healthHaver; healthHaver.Armor += 10f; } else if (m_SelectedEffect == ItemEffectType.BigCash) { player.carriedConsumables.Currency = 999; } else if (m_SelectedEffect == ItemEffectType.ManyKeys) { player.carriedConsumables.KeyBullets = 999; } else if (m_SelectedEffect == ItemEffectType.BlanksRUS) { PickupObject byId = PickupObjectDatabase.GetById(224); for (int i = 0; i < Random.Range(5, 10); i++) { if (Object.op_Implicit((Object)(object)byId)) { LootEngine.GivePrefabToPlayer(((Component)byId).gameObject, player); } } } else if (m_SelectedEffect == ItemEffectType.HealthPak) { if ((int)player.characterIdentity != 2) { StatModifier item = new StatModifier { statToBoost = (StatType)3, amount = Random.Range(4, 6), modifyType = (ModifyMethod)0, isMeatBunBuff = false }; player.ownerlessStatModifiers.Add(item); player.stats.RecalculateStats(player, false, false); } else { HealthHaver healthHaver2 = ((BraveBehaviour)player).healthHaver; healthHaver2.Armor += (float)Random.Range(4, 6); } } else if (m_SelectedEffect == ItemEffectType.DrStone) { PickupObject byId2 = PickupObjectDatabase.GetById(565); for (int j = 0; j < Random.Range(8, 12); j++) { if (Object.op_Implicit((Object)(object)byId2)) { LootEngine.GivePrefabToPlayer(((Component)byId2).gameObject, player); } } } else if (m_SelectedEffect == ItemEffectType.MuchAmmo) { StatModifier item2 = new StatModifier { statToBoost = (StatType)9, amount = Random.Range(1.5f, 3f), modifyType = (ModifyMethod)1, isMeatBunBuff = false }; player.ownerlessStatModifiers.Add(item2); player.stats.RecalculateStats(player, false, false); } } public override DebrisObject Drop(PlayerController player) { DebrisObject result = ((PassiveItem)this).Drop(player); ((PassiveItem)((Component)this).GetComponent()).m_pickedUpThisRun = true; ((Component)this).GetComponent().m_PickedUp = true; ExpandPlaceFloorObjects.PlayerHasCorruptedJunk = false; return result; } public override void MidGameSerialize(List data) { ((PickupObject)this).MidGameSerialize(data); data.Add(m_PickedUp); } public override void MidGameDeserialize(List data) { ((PassiveItem)this).MidGameDeserialize(data); if (data.Count == 1) { m_PickedUp = (bool)data[0]; } } protected override void Update() { ((PassiveItem)this).Update(); } protected override void OnDestroy() { ExpandPlaceFloorObjects.PlayerHasCorruptedJunk = false; ((PassiveItem)this).OnDestroy(); } } public class CursedBrick : PassiveItem { public static int CursedBrickID = -1; public static GameObject CursedBrickObject; public static void Init(AssetBundle expandSharedAssets1) { //IL_0051: 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_007a: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Expected O, but got Unknown //IL_0060: Unknown result type (might be due to invalid IL or missing references) CursedBrickObject = expandSharedAssets1.LoadAsset("Cursed Brick"); SpriteSerializer.AddSpriteToObject(CursedBrickObject, ExpandPrefabs.EXItemCollection, "cursedbrick", (PerpendicularState)0); CursedBrick cursedBrick = CursedBrickObject.AddComponent(); string shortDesc = "Fragment of a living wall..."; string longDesc = "There seems to be sounds emanating from the walls around you!\n\nThis item can't be dropped."; ItemBuilder.SetupItem((PickupObject)(object)cursedBrick, shortDesc, longDesc, "ex"); ((PickupObject)cursedBrick).quality = (ItemQuality)1; if (!ExpandSettings.EnableEXItems) { ((PickupObject)cursedBrick).quality = (ItemQuality)(-100); } ((PickupObject)cursedBrick).CanBeDropped = false; ((PassiveItem)cursedBrick).passiveStatModifiers = (StatModifier[])(object)new StatModifier[1] { new StatModifier { statToBoost = (StatType)14, amount = 1f, modifyType = (ModifyMethod)0, isMeatBunBuff = false } }; CursedBrickID = ((PickupObject)cursedBrick).PickupObjectId; } public override void Pickup(PlayerController player) { if (!base.m_pickedUp) { base.m_owner = player; ExpandPlaceFloorObjects.PlayerHasWallMimicItem = true; ((PassiveItem)this).Pickup(player); } } public override DebrisObject Drop(PlayerController player) { DebrisObject val = ((PassiveItem)this).Drop(player); if (Object.op_Implicit((Object)(object)val)) { CursedBrick component = ((Component)val).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { ((PassiveItem)component).m_pickedUpThisRun = true; } } if (Object.op_Implicit((Object)(object)player)) { base.m_owner = null; } ExpandPlaceFloorObjects.PlayerHasWallMimicItem = false; return val; } protected override void OnDestroy() { ExpandPlaceFloorObjects.PlayerHasWallMimicItem = false; ((PassiveItem)this).OnDestroy(); } } public class CustomMasterRounds : MonoBehaviour { public static int GtlichFloorMasterRoundID = -1; public static GameObject GlitchFloorMasterRound; public static void Init(AssetBundle expandSharedAssets1) { //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Expected O, but got Unknown GlitchFloorMasterRound = expandSharedAssets1.LoadAsset("Corrupted Master Round"); SpriteSerializer.AddSpriteToObject(GlitchFloorMasterRound, ExpandPrefabs.EXItemCollection, "glitchround", (PerpendicularState)0); BasicStatPickup val = GlitchFloorMasterRound.AddComponent(); string shortDesc = "Corrupted Chamber"; string longDesc = "This weird artifact indicates mastery of... somewhere"; ItemBuilder.SetupItem((PickupObject)(object)val, shortDesc, longDesc, "ex"); ((PickupObject)val).quality = (ItemQuality)(-100); ((PickupObject)val).ItemSpansBaseQualityTiers = false; ((PickupObject)val).additionalMagnificenceModifier = 0f; ((PickupObject)val).ItemRespectsHeartMagnificence = true; ((PickupObject)val).associatedItemChanceMods = (LootModData[])(object)new LootModData[0]; ((PickupObject)val).contentSource = (ContentSource)0; ((PickupObject)val).ShouldBeExcludedFromShops = false; ((PickupObject)val).CanBeDropped = true; ((PickupObject)val).PreventStartingOwnerFromDropping = false; ((PickupObject)val).PersistsOnDeath = false; ((PickupObject)val).RespawnsIfPitfall = false; ((PickupObject)val).PreventSaveSerialization = false; ((PickupObject)val).IgnoredByRat = false; ((PickupObject)val).SaveFlagToSetOnAcquisition = (GungeonFlags)0; ((PickupObject)val).UsesCustomCost = true; ((PickupObject)val).CustomCost = 90; ((PickupObject)val).CanBeSold = true; ((PassiveItem)val).passiveStatModifiers = (StatModifier[])(object)new StatModifier[0]; ((PassiveItem)val).ArmorToGainOnInitialPickup = 0; val.modifiers = new List { new StatModifier { statToBoost = (StatType)3, modifyType = (ModifyMethod)0, amount = 1f, isMeatBunBuff = false } }; val.ArmorToGive = 0; val.ModifiesDodgeRoll = false; val.DodgeRollTimeMultiplier = 0.9f; val.DodgeRollDistanceMultiplier = 1.25f; val.AdditionalInvulnerabilityFrames = 0; val.IsJunk = false; val.GivesCurrency = false; val.CurrencyToGive = 0; val.IsMasteryToken = true; GtlichFloorMasterRoundID = ((PickupObject)val).PickupObjectId; ExpandShaders.Instance.ApplyGlitchShader(((BraveBehaviour)val).sprite); ((BraveBehaviour)val).sprite.usesOverrideMaterial = true; } } public class ExpandRedScarf : PassiveItem { public static BlinkPassiveItem m_BlinkPassive; public static GameObject EXRedScarfObject; public float DodgeRollTimeMultiplier; public float DodgeRollDistanceMultiplier; public int AdditionalInvulnerabilityFrames; public ScarfAttachmentDoer ScarfPrefab; public GameObject BlinkpoofVfx; private bool m_CurrentlyBlinking; private float m_timeHeldBlinkButton; private Vector2 m_cachedBlinkPosition; private Vector2 lockedDodgeRollDirection; private tk2dSprite m_extantBlinkShadow; private ScarfAttachmentDoer m_scarf; private AfterImageTrailController afterimage; public static void Init(AssetBundle expandSharedAssets1) { //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_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0116: 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_0196: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_0279: Unknown result type (might be due to invalid IL or missing references) if (ExpandSettings.EnableBloodiedScarfFix) { return; } m_BlinkPassive = ((Component)PickupObjectDatabase.GetById(436)).GetComponent(); if (Object.op_Implicit((Object)(object)m_BlinkPassive)) { EXRedScarfObject = expandSharedAssets1.LoadAsset("Bloodied Scarf"); EXRedScarfObject.AddComponent(); EXRedScarfObject.AddComponent(); ExpandUtility.DuplicateSprite(EXRedScarfObject.GetComponent(), ((Component)m_BlinkPassive).GetComponent()); ExpandRedScarf component = EXRedScarfObject.GetComponent(); ItemBuilder.SetupItem((PickupObject)(object)component, "Blink Away", "Dodge roll is augmented with a blink\n\nThis simple scarf was once worn by a skilled assassin. Betrayed by his brothers and assumed dead...", "ex"); ItemBuilder.AddPassiveStatModifier((PickupObject)(object)component, (StatType)10, 1.3f, (ModifyMethod)1); ((PickupObject)component).itemName = "Red Bandana"; ((PickupObject)component).PickupObjectId = 436; ((PickupObject)component).quality = ((PickupObject)m_BlinkPassive).quality; if (!ExpandSettings.EnableEXItems) { ((PickupObject)component).quality = (ItemQuality)(-100); } ((PickupObject)component).additionalMagnificenceModifier = ((PickupObject)m_BlinkPassive).additionalMagnificenceModifier; ((PickupObject)component).ItemSpansBaseQualityTiers = ((PickupObject)m_BlinkPassive).ItemSpansBaseQualityTiers; ((PickupObject)component).ItemRespectsHeartMagnificence = ((PickupObject)m_BlinkPassive).ItemRespectsHeartMagnificence; ((PickupObject)component).associatedItemChanceMods = ((PickupObject)m_BlinkPassive).associatedItemChanceMods; ((PickupObject)component).contentSource = ((PickupObject)m_BlinkPassive).contentSource; ((PickupObject)component).ShouldBeExcludedFromShops = ((PickupObject)m_BlinkPassive).ShouldBeExcludedFromShops; ((PickupObject)component).CanBeDropped = ((PickupObject)m_BlinkPassive).CanBeDropped; ((PickupObject)component).PreventStartingOwnerFromDropping = ((PickupObject)m_BlinkPassive).PreventStartingOwnerFromDropping; ((PickupObject)component).PersistsOnDeath = ((PickupObject)m_BlinkPassive).PersistsOnDeath; ((PickupObject)component).RespawnsIfPitfall = ((PickupObject)m_BlinkPassive).RespawnsIfPitfall; ((PickupObject)component).PreventStartingOwnerFromDropping = ((PickupObject)m_BlinkPassive).PreventStartingOwnerFromDropping; ((PickupObject)component).IgnoredByRat = ((PickupObject)m_BlinkPassive).IgnoredByRat; ((PickupObject)component).SaveFlagToSetOnAcquisition = ((PickupObject)m_BlinkPassive).SaveFlagToSetOnAcquisition; ((PickupObject)component).ForcedPositionInAmmonomicon = ((PickupObject)m_BlinkPassive).ForcedPositionInAmmonomicon; ((PickupObject)component).UsesCustomCost = ((PickupObject)m_BlinkPassive).UsesCustomCost; ((PickupObject)component).CustomCost = ((PickupObject)m_BlinkPassive).CustomCost; ((PickupObject)component).PersistsOnPurchase = ((PickupObject)m_BlinkPassive).PersistsOnPurchase; ((PickupObject)component).CanBeSold = ((PickupObject)m_BlinkPassive).CanBeSold; ((PassiveItem)component).passiveStatModifiers = ((PassiveItem)m_BlinkPassive).passiveStatModifiers; ((PassiveItem)component).ArmorToGainOnInitialPickup = ((PassiveItem)m_BlinkPassive).ArmorToGainOnInitialPickup; ((PassiveItem)component).minimapIcon = ((PassiveItem)m_BlinkPassive).minimapIcon; component.DodgeRollTimeMultiplier = m_BlinkPassive.DodgeRollTimeMultiplier; component.DodgeRollDistanceMultiplier = m_BlinkPassive.DodgeRollDistanceMultiplier; component.AdditionalInvulnerabilityFrames = m_BlinkPassive.AdditionalInvulnerabilityFrames; component.ScarfPrefab = m_BlinkPassive.ScarfPrefab; component.BlinkpoofVfx = m_BlinkPassive.BlinkpoofVfx; if (ExpandSettings.EnableEXItems) { ((PickupObject)m_BlinkPassive).quality = (ItemQuality)(-100); } } } public override void Pickup(PlayerController player) { //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_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) if (!base.m_pickedUp) { m_CurrentlyBlinking = false; m_cachedBlinkPosition = Vector2.op_Implicit(((BraveBehaviour)player).transform.position); if (Object.op_Implicit((Object)(object)ScarfPrefab)) { m_scarf = Object.Instantiate(((Component)ScarfPrefab).gameObject).GetComponent(); m_scarf.Initialize((GameActor)(object)player); } if (!PassiveItem.ActiveFlagItems.ContainsKey(player)) { PassiveItem.ActiveFlagItems.Add(player, new Dictionary()); } if (!PassiveItem.ActiveFlagItems[player].ContainsKey(((object)this).GetType())) { PassiveItem.ActiveFlagItems[player].Add(((object)this).GetType(), 1); } else { PassiveItem.ActiveFlagItems[player][((object)this).GetType()] = PassiveItem.ActiveFlagItems[player][((object)this).GetType()] + 1; } afterimage = ((Component)player).gameObject.AddComponent(); afterimage.spawnShadows = false; afterimage.shadowTimeDelay = 0.05f; afterimage.shadowLifetime = 0.3f; afterimage.minTranslation = 0.05f; afterimage.dashColor = Color.black; afterimage.maxEmission = 0f; afterimage.minEmission = 0f; afterimage.OverrideImageShader = ShaderCache.Acquire("Brave/Internal/DownwellAfterImage"); ((PassiveItem)this).Pickup(player); } } protected override void Update() { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Invalid comparison between Unknown and I4 if (GameManager.HasInstance && !GameManager.Instance.IsLoadingLevel && !Dungeon.IsGenerating && (int)GameManager.Instance.CurrentLevelOverrideState != 4) { if (Object.op_Implicit((Object)(object)((PassiveItem)this).Owner) && base.m_pickedUp) { HandleBlink(((PassiveItem)this).Owner); } ((PassiveItem)this).Update(); } } public void HandleBlink(PlayerController Owner) { //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: 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_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0112: 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_021d: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0170: 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_0184: Unknown result type (might be due to invalid IL or missing references) //IL_0189: 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_0196: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01bb: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Unknown result type (might be due to invalid IL or missing references) //IL_0128: 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) //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)GameManager.Instance.Dungeon) && GameManager.Instance.Dungeon.IsEndTimes) { ClearBlinkShadow(); return; } if (Owner.WasPausedThisFrame) { ClearBlinkShadow(); return; } BraveInput instanceForPlayer = BraveInput.GetInstanceForPlayer(Owner.PlayerIDX); GungeonActions val = ReflectionHelpers.ReflectGetField(typeof(PlayerController), "m_activeActions", Owner); AdjustInputVector(((TwoAxisInputControl)val.Move).Vector, BraveInput.MagnetAngles.movementCardinal, BraveInput.MagnetAngles.movementOrdinal); bool flag = false; bool flag2 = false; if (instanceForPlayer.GetButtonDown((GungeonActionType)9)) { flag2 = true; } if (((OneAxisInputControl)instanceForPlayer.ActiveActions.DodgeRollAction).IsPressed) { m_timeHeldBlinkButton += BraveTime.DeltaTime; if (m_timeHeldBlinkButton < 0.3f) { m_cachedBlinkPosition = ((BraveBehaviour)Owner).specRigidbody.UnitCenter; } else { Vector2 cachedBlinkPosition = m_cachedBlinkPosition; if (BraveInput.GetInstanceForPlayer(Owner.PlayerIDX).IsKeyboardAndMouse(false)) { m_cachedBlinkPosition = Vector3Extensions.XY(Owner.unadjustedAimPoint) - (((GameActor)Owner).CenterPosition - ((BraveBehaviour)Owner).specRigidbody.UnitCenter); } else if (val != null) { Vector2 cachedBlinkPosition2 = m_cachedBlinkPosition; Vector2 vector = ((TwoAxisInputControl)val.Aim).Vector; m_cachedBlinkPosition = cachedBlinkPosition2 + ((Vector2)(ref vector)).normalized * BraveTime.DeltaTime * 15f; } m_cachedBlinkPosition = BraveMathCollege.ClampToBounds(m_cachedBlinkPosition, GameManager.Instance.MainCameraController.MinVisiblePoint, GameManager.Instance.MainCameraController.MaxVisiblePoint); UpdateBlinkShadow(Owner, m_cachedBlinkPosition - cachedBlinkPosition, CanBlinkToPoint(Owner, m_cachedBlinkPosition, Vector3Extensions.XY(((BraveBehaviour)Owner).transform.position) - ((BraveBehaviour)Owner).specRigidbody.UnitCenter)); } } else if (((OneAxisInputControl)instanceForPlayer.ActiveActions.DodgeRollAction).WasReleased || flag2) { if (m_timeHeldBlinkButton >= 0.3f) { flag = true; } } else { m_timeHeldBlinkButton = 0f; } if (flag) { ((BraveBehaviour)Owner).healthHaver.TriggerInvulnerabilityPeriod(0.001f); Owner.DidUnstealthyAction(); BlinkToPoint(Owner, m_cachedBlinkPosition); m_timeHeldBlinkButton = 0f; flag = false; } } public void BlinkToPoint(PlayerController Owner, Vector2 targetPoint) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_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_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_0041: 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_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_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: 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) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: 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_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0105: 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_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_0136: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Unknown result type (might be due to invalid IL or missing references) m_cachedBlinkPosition = targetPoint; Vector2 val = m_cachedBlinkPosition - ((BraveBehaviour)Owner).specRigidbody.UnitCenter; lockedDodgeRollDirection = ((Vector2)(ref val)).normalized; Vector2 centerOffset = Vector3Extensions.XY(((BraveBehaviour)Owner).transform.position) - ((BraveBehaviour)Owner).specRigidbody.UnitCenter; bool num = CanBlinkToPoint(Owner, m_cachedBlinkPosition, centerOffset); ClearBlinkShadow(); if (num) { m_CurrentlyBlinking = true; ((MonoBehaviour)this).StartCoroutine(HandleBlinkTeleport(Owner, m_cachedBlinkPosition, lockedDodgeRollDirection)); return; } Vector2 val2 = ((BraveBehaviour)Owner).specRigidbody.UnitCenter - m_cachedBlinkPosition; float num2 = ((Vector2)(ref val2)).magnitude; Vector2? val3 = null; float num3 = 0f; val2 = ((Vector2)(ref val2)).normalized; while (num2 > 0f) { num3 += 1f; num2 -= 1f; Vector2 val4 = m_cachedBlinkPosition + val2 * num3; if (CanBlinkToPoint(Owner, val4 + new Vector2(1f, 0f), centerOffset)) { val3 = val4; break; } } if (val3.HasValue) { val = val3.Value - ((BraveBehaviour)Owner).specRigidbody.UnitCenter; if (Vector2.Dot(((Vector2)(ref val)).normalized, lockedDodgeRollDirection) > 0f) { m_cachedBlinkPosition = val3.Value; m_CurrentlyBlinking = true; ((MonoBehaviour)this).StartCoroutine(HandleBlinkTeleport(Owner, m_cachedBlinkPosition, lockedDodgeRollDirection)); } } } private IEnumerator HandleBlinkTeleport(PlayerController Owner, Vector2 targetPoint, Vector2 targetDirection) { //IL_0015: 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: 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) targetPoint -= new Vector2(0.75f, 0.125f); OnBlinkStarted(Owner, targetDirection); List list = ReflectionHelpers.ReflectGetField>(typeof(PlayerController), "m_rollDamagedEnemies", Owner); if (list != null) { list.Clear(); typeof(PlayerController).GetField("m_rollDamagedEnemies", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(Owner, list); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)Owner).knockbackDoer)) { ((BraveBehaviour)Owner).knockbackDoer.ClearContinuousKnockbacks(); } Owner.IsEthereal = true; Owner.IsVisible = false; float RecoverySpeed = GameManager.Instance.MainCameraController.OverrideRecoverySpeed; bool IsLerping = GameManager.Instance.MainCameraController.IsLerping; yield return (object)new WaitForSeconds(0.1f); GameManager.Instance.MainCameraController.OverrideRecoverySpeed = 80f; GameManager.Instance.MainCameraController.IsLerping = true; if (Owner.IsPrimaryPlayer) { GameManager.Instance.MainCameraController.UseOverridePlayerOnePosition = true; GameManager.Instance.MainCameraController.OverridePlayerOnePosition = targetPoint; yield return (object)new WaitForSeconds(0.12f); ((BraveBehaviour)Owner).specRigidbody.Velocity = Vector2.zero; ((BraveBehaviour)Owner).specRigidbody.Position = new Position(targetPoint); GameManager.Instance.MainCameraController.UseOverridePlayerOnePosition = false; } else { GameManager.Instance.MainCameraController.UseOverridePlayerTwoPosition = true; GameManager.Instance.MainCameraController.OverridePlayerTwoPosition = targetPoint; yield return (object)new WaitForSeconds(0.12f); ((BraveBehaviour)Owner).specRigidbody.Velocity = Vector2.zero; ((BraveBehaviour)Owner).specRigidbody.Position = new Position(targetPoint); GameManager.Instance.MainCameraController.UseOverridePlayerTwoPosition = false; } GameManager.Instance.MainCameraController.OverrideRecoverySpeed = RecoverySpeed; GameManager.Instance.MainCameraController.IsLerping = IsLerping; Owner.IsEthereal = false; Owner.IsVisible = true; m_CurrentlyBlinking = false; if (!(Owner.CurrentFireMeterValue <= 0f)) { Owner.CurrentFireMeterValue = Mathf.Max(0f, Owner.CurrentFireMeterValue -= 0.5f); if (Owner.CurrentFireMeterValue == 0f) { Owner.IsOnFire = false; } } } protected void ClearBlinkShadow() { if (Object.op_Implicit((Object)(object)m_extantBlinkShadow)) { Object.Destroy((Object)(object)((Component)m_extantBlinkShadow).gameObject); m_extantBlinkShadow = null; } } protected void UpdateBlinkShadow(PlayerController Owner, Vector2 delta, bool canWarpDirectly) { //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0173: 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) //IL_0038: Expected O, but got Unknown //IL_0066: 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_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0095: 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_0111: 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_028f: Unknown result type (might be due to invalid IL or missing references) //IL_029f: Unknown result type (might be due to invalid IL or missing references) //IL_02a4: Unknown result type (might be due to invalid IL or missing references) //IL_02af: Unknown result type (might be due to invalid IL or missing references) //IL_02b4: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_0279: Unknown result type (might be due to invalid IL or missing references) //IL_025e: Unknown result type (might be due to invalid IL or missing references) int? num = ReflectionHelpers.ReflectGetField(typeof(PlayerController), "m_overrideFlatColorID", Owner); if ((Object)(object)m_extantBlinkShadow == (Object)null) { GameObject val = new GameObject("blinkshadow"); m_extantBlinkShadow = tk2dSprite.AddComponent(val, ((BraveBehaviour)Owner).sprite.Collection, ((BraveBehaviour)Owner).sprite.spriteId); ((BraveBehaviour)m_extantBlinkShadow).transform.position = Vector2.op_Implicit(m_cachedBlinkPosition + (Vector3Extensions.XY(((BraveBehaviour)((BraveBehaviour)Owner).sprite).transform.position) - ((BraveBehaviour)Owner).specRigidbody.UnitCenter)); ((Component)m_extantBlinkShadow).gameObject.AddComponent().Library = ((BraveBehaviour)Owner).spriteAnimator.Library; if (num.HasValue) { ((BraveBehaviour)m_extantBlinkShadow).renderer.material.SetColor(num.Value, (!canWarpDirectly) ? new Color(0.4f, 0f, 0f, 1f) : new Color(0.25f, 0.25f, 0.25f, 1f)); } ((tk2dBaseSprite)m_extantBlinkShadow).usesOverrideMaterial = true; ((tk2dBaseSprite)m_extantBlinkShadow).FlipX = ((BraveBehaviour)Owner).sprite.FlipX; ((tk2dBaseSprite)m_extantBlinkShadow).FlipY = ((BraveBehaviour)Owner).sprite.FlipY; Owner.OnBlinkShadowCreated?.Invoke(m_extantBlinkShadow); } else { if (delta == Vector2.zero) { ((BraveBehaviour)m_extantBlinkShadow).spriteAnimator.Stop(); ((tk2dBaseSprite)m_extantBlinkShadow).SetSprite(((BraveBehaviour)Owner).sprite.Collection, ((BraveBehaviour)Owner).sprite.spriteId); } else { float? num2 = null; try { num2 = ReflectionHelpers.ReflectGetField(typeof(PlayerController), "m_currentGunAngle", Owner); } catch (Exception) { } string text = string.Empty; if (num2.HasValue) { text = GetBaseAnimationName(Owner, delta, num2.Value, invertThresholds: false, forceTwoHands: true); } if (!string.IsNullOrEmpty(text) && !((BraveBehaviour)m_extantBlinkShadow).spriteAnimator.IsPlaying(text)) { ((BraveBehaviour)m_extantBlinkShadow).spriteAnimator.Play(text); } } if (num.HasValue) { ((BraveBehaviour)m_extantBlinkShadow).renderer.material.SetColor(num.Value, (!canWarpDirectly) ? new Color(0.4f, 0f, 0f, 1f) : new Color(0.25f, 0.25f, 0.25f, 1f)); } ((BraveBehaviour)m_extantBlinkShadow).transform.position = Vector2.op_Implicit(m_cachedBlinkPosition + (Vector3Extensions.XY(((BraveBehaviour)((BraveBehaviour)Owner).sprite).transform.position) - ((BraveBehaviour)Owner).specRigidbody.UnitCenter)); } ((tk2dBaseSprite)m_extantBlinkShadow).FlipX = ((BraveBehaviour)Owner).sprite.FlipX; ((tk2dBaseSprite)m_extantBlinkShadow).FlipY = ((BraveBehaviour)Owner).sprite.FlipY; } protected virtual string GetBaseAnimationName(PlayerController Owner, Vector2 v, float gunAngle, bool invertThresholds = false, bool forceTwoHands = false) { //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Invalid comparison between Unknown and I4 //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Invalid comparison between Unknown and I4 //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) bool flag = m_RenderBodyHand(Owner); string empty = string.Empty; bool flag2 = (Object)(object)((GameActor)Owner).CurrentGun != (Object)null; if (flag2 && (int)((GameActor)Owner).CurrentGun.Handedness == 4) { forceTwoHands = true; } if ((int)GameManager.Instance.CurrentLevelOverrideState == 4) { flag2 = false; } float num = 155f; float num2 = 25f; if (invertThresholds) { num = -155f; num2 -= 50f; } float num3 = 120f; float num4 = 60f; float num5 = -60f; float num6 = -120f; bool flag3 = gunAngle <= num && gunAngle >= num2; if (invertThresholds) { flag3 = gunAngle <= num || gunAngle >= num2; } if (Owner.IsGhost) { if (flag3) { if (gunAngle < num3 && gunAngle >= num4) { empty = "ghost_idle_back"; } else { float num7 = 105f; empty = ((!(Mathf.Abs(gunAngle) > num7)) ? "ghost_idle_back_right" : "ghost_idle_back_left"); } } else if (gunAngle <= num5 && gunAngle >= num6) { empty = "ghost_idle_front"; } else { float num8 = 105f; empty = ((!(Mathf.Abs(gunAngle) > num8)) ? "ghost_idle_right" : "ghost_idle_left"); } } else if (((GameActor)Owner).IsFlying) { empty = (flag3 ? ((!(gunAngle < num3) || !(gunAngle >= num4)) ? "jetpack_right_bw" : "jetpack_up") : ((!(gunAngle <= num5) || !(gunAngle >= num6)) ? ((!flag) ? "jetpack_right" : "jetpack_right_hand") : ((!flag) ? "jetpack_down" : "jetpack_down_hand"))); } else if (v == Vector2.zero || Owner.IsStationary) { empty = (Owner.IsPetting ? "pet" : (flag3 ? ((!(gunAngle < num3) || !(gunAngle >= num4)) ? (((!forceTwoHands && flag2) || Owner.ForceHandless) ? "idle_bw" : "idle_bw_twohands") : ((!(!forceTwoHands && flag2) && !Owner.ForceHandless) ? "idle_backward_twohands" : ((!flag) ? "idle_backward" : "idle_backward_hand"))) : ((!(gunAngle <= num5) || !(gunAngle >= num6)) ? ((!(!forceTwoHands && flag2) && !Owner.ForceHandless) ? "idle_twohands" : ((!flag) ? "idle" : "idle_hand")) : ((!(!forceTwoHands && flag2) && !Owner.ForceHandless) ? "idle_forward_twohands" : ((!flag) ? "idle_forward" : "idle_forward_hand"))))); } else if (flag3) { string text = (((!forceTwoHands && flag2) || Owner.ForceHandless) ? "run_right_bw" : "run_right_bw_twohands"); if (gunAngle < num3 && gunAngle >= num4) { text = ((!(!forceTwoHands && flag2) && !Owner.ForceHandless) ? "run_up_twohands" : ((!flag) ? "run_up" : "run_up_hand")); } empty = text; } else { string text2 = "run_right"; if (gunAngle <= num5 && gunAngle >= num6) { text2 = "run_down"; } if ((forceTwoHands || !flag2) && !Owner.ForceHandless) { text2 += "_twohands"; } else if (flag) { text2 += "_hand"; } empty = text2; } if (Owner.UseArmorlessAnim && !Owner.IsGhost) { empty += "_armorless"; } return empty; } protected bool CanBlinkToPoint(PlayerController Owner, Vector2 point, Vector2 centerOffset) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002a: 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_0048: Invalid comparison between Unknown and I4 //IL_007c: 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_008a: Invalid comparison between Unknown and I4 bool flag = Owner.IsValidPlayerPosition(point + centerOffset); if (flag && Owner.CurrentRoom != null) { CellData val = GameManager.Instance.Dungeon.data[Vector2Extensions.ToIntVector2(point, (VectorConversions)0)]; if (val == null) { return false; } RoomHandler nearestRoom = val.nearestRoom; if ((int)val.type != 2) { flag = false; } if (Owner.CurrentRoom.IsSealed && nearestRoom != Owner.CurrentRoom) { flag = false; } if (Owner.CurrentRoom.IsSealed && val.isExitCell) { flag = false; } if ((int)nearestRoom.visibility == 0 || (int)nearestRoom.visibility == 3) { flag = false; } } if (Owner.CurrentRoom == null) { flag = false; } if (Owner.IsDodgeRolling | ((GameActor)Owner).IsFalling | Owner.IsCurrentlyCoopReviving | Owner.IsInMinecart | Owner.IsInputOverridden) { return false; } return flag; } private bool m_RenderBodyHand(PlayerController Onwer) { //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Invalid comparison between Unknown and I4 if (!Onwer.ForceHandless && (Object)(object)Onwer.CurrentSecondaryGun == (Object)null) { if (!((Object)(object)((GameActor)Onwer).CurrentGun == (Object)null)) { return (int)((GameActor)Onwer).CurrentGun.Handedness != 1; } return true; } return false; } private bool CheckDodgeRollDepth(PlayerController Owner) { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Invalid comparison between Unknown and I4 if (Owner.IsSlidingOverSurface && !Owner.DodgeRollIsBlink) { if (!Owner.CurrentRoom.IsShop) { return (int)GameManager.Instance.CurrentLevelOverrideState != 2; } return false; } bool num = PassiveItem.IsFlagSetForCharacter(Owner, typeof(PegasusBootsItem)); int num2 = ((!num) ? 1 : 2); if (num && Owner.HasActiveBonusSynergy((CustomSynergyType)170, false)) { num2++; } num2 = 1; int? num3 = ReflectionHelpers.ReflectGetField(typeof(PlayerController), "m_currentDodgeRollDepth", Owner); if (!num3.HasValue) { num3 = 0; } if (Owner.IsDodgeRolling) { return num3.Value < num2; } return true; } protected virtual bool CanDodgeRollWhileFlying(PlayerController Owner) { if (!Owner.AdditionalCanDodgeRollWhileFlying.Value) { if (PassiveItem.ActiveFlagItems.ContainsKey(Owner)) { return PassiveItem.ActiveFlagItems[Owner].ContainsKey(typeof(WingsItem)); } return false; } return true; } protected Vector2 AdjustInputVector(Vector2 rawInput, float cardinalMagnetAngle, float ordinalMagnetAngle) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008c: 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) float num = BraveMathCollege.ClampAngle360(BraveMathCollege.Atan2Degrees(rawInput)); float num2 = num % 90f; float num3 = (num + 45f) % 90f; float num4 = 0f; if (cardinalMagnetAngle > 0f) { if (num2 < cardinalMagnetAngle) { num4 = 0f - num2; } else if (num2 > 90f - cardinalMagnetAngle) { num4 = 90f - num2; } } if (ordinalMagnetAngle > 0f) { if (num3 < ordinalMagnetAngle) { num4 = 0f - num3; } else if (num3 > 90f - ordinalMagnetAngle) { num4 = 90f - num3; } } num += num4; return Vector3Extensions.XY(Quaternion.Euler(0f, 0f, num) * Vector3.right) * ((Vector2)(ref rawInput)).magnitude; } private void OnBlinkStarted(PlayerController obj, Vector2 dirVec) { if (!Object.op_Implicit((Object)(object)GameManager.Instance.Dungeon) || !GameManager.Instance.Dungeon.IsEndTimes) { ((MonoBehaviour)obj).StartCoroutine(HandleAfterImageStop(obj)); } } private IEnumerator HandleAfterImageStop(PlayerController player) { ((GameActor)player).PlayEffectOnActor(BlinkpoofVfx, Vector3.zero, false, true, false); AkSoundEngine.PostEvent("Play_CHR_ninja_dash_01", ((Component)this).gameObject); afterimage.spawnShadows = true; while (m_CurrentlyBlinking) { yield return null; } if (Object.op_Implicit((Object)(object)afterimage)) { afterimage.spawnShadows = false; } ((GameActor)player).PlayEffectOnActor(BlinkpoofVfx, Vector3.zero, false, true, false); AkSoundEngine.PostEvent("Play_CHR_ninja_dash_01", ((Component)this).gameObject); } public override DebrisObject Drop(PlayerController player) { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) DebrisObject obj = ((PassiveItem)this).Drop(player); ClearBlinkShadow(); m_CurrentlyBlinking = false; m_cachedBlinkPosition = Vector2.op_Implicit(((BraveBehaviour)player).transform.position); if (PassiveItem.ActiveFlagItems[player].ContainsKey(((object)this).GetType())) { PassiveItem.ActiveFlagItems[player][((object)this).GetType()] = Mathf.Max(0, PassiveItem.ActiveFlagItems[player][((object)this).GetType()] - 1); if (PassiveItem.ActiveFlagItems[player][((object)this).GetType()] == 0) { PassiveItem.ActiveFlagItems[player].Remove(((object)this).GetType()); } } if (Object.op_Implicit((Object)(object)m_scarf)) { Object.Destroy((Object)(object)((Component)m_scarf).gameObject); m_scarf = null; } if (Object.op_Implicit((Object)(object)afterimage)) { Object.Destroy((Object)(object)afterimage); } afterimage = null; ((PassiveItem)((Component)obj).GetComponent()).m_pickedUpThisRun = true; return obj; } protected override void OnDestroy() { ClearBlinkShadow(); m_CurrentlyBlinking = false; if (Object.op_Implicit((Object)(object)m_scarf)) { Object.Destroy((Object)(object)((Component)m_scarf).gameObject); m_scarf = null; } if (base.m_pickedUp && Object.op_Implicit((Object)(object)base.m_owner) && PassiveItem.ActiveFlagItems != null && PassiveItem.ActiveFlagItems.ContainsKey(base.m_owner) && PassiveItem.ActiveFlagItems[base.m_owner].ContainsKey(((object)this).GetType())) { PassiveItem.ActiveFlagItems[base.m_owner][((object)this).GetType()] = Mathf.Max(0, PassiveItem.ActiveFlagItems[base.m_owner][((object)this).GetType()] - 1); if (PassiveItem.ActiveFlagItems[base.m_owner][((object)this).GetType()] == 0) { PassiveItem.ActiveFlagItems[base.m_owner].Remove(((object)this).GetType()); } } if ((Object)(object)base.m_owner != (Object)null) { _ = base.m_owner; if (Object.op_Implicit((Object)(object)afterimage)) { Object.Destroy((Object)(object)afterimage); } afterimage = null; } ((PassiveItem)this).OnDestroy(); } } public class FakePrefab : Component { internal static HashSet ExistingFakePrefabs = new HashSet(); public static bool IsFakePrefab(Object o) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_002f: Unknown result type (might be due to invalid IL or missing references) if (o is GameObject) { return ExistingFakePrefabs.Contains((GameObject)o); } return o is Component && ExistingFakePrefabs.Contains(((Component)o).gameObject); } public static void MarkAsFakePrefab(GameObject obj) { ExistingFakePrefabs.Add(obj); } public static GameObject Clone(GameObject obj) { IsFakePrefab((Object)(object)obj); bool activeSelf = obj.activeSelf; if (activeSelf) { obj.SetActive(false); } GameObject val = Object.Instantiate(obj); if (activeSelf) { obj.SetActive(true); } ExistingFakePrefabs.Add(val); return val; } public static Object InstantiateFakePrefab(Object o, Object new_o) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Expected O, but got Unknown //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0040: 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) try { if (o is GameObject && ExistingFakePrefabs.Contains((GameObject)o)) { if (ExpandSettings.debugMode) { Tools.Print("Activating fake prefab: " + o.name); } ((GameObject)new_o).SetActive(true); } else if (o is Component && ExistingFakePrefabs.Contains(((Component)o).gameObject)) { ((Component)new_o).gameObject.SetActive(true); } } catch (Exception ex) { if (ExpandSettings.debugMode) { Debug.Log((object)ex); } } return new_o; } } public static class FakePrefabHooks { public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5); public static void Init() { //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing references) new Hook((MethodBase)typeof(PlayerController).GetMethod("AcquirePassiveItemPrefabDirectly"), typeof(FakePrefabHooks).GetMethod("AcquirePassiveItemPrefabDirectly")); new Hook((MethodBase)typeof(PlayerItem).GetMethod("Pickup"), typeof(FakePrefabHooks).GetMethod("ActivePickup")); new Hook((MethodBase)typeof(Object).GetMethod("Instantiate", new Type[3] { typeof(Object), typeof(Transform), typeof(bool) }), typeof(FakePrefabHooks).GetMethod("InstantiateOPI")); new Hook((MethodBase)typeof(Object).GetMethod("Instantiate", new Type[2] { typeof(Object), typeof(Transform) }), typeof(FakePrefabHooks).GetMethod("InstantiateOP")); new Hook((MethodBase)typeof(Object).GetMethod("Instantiate", new Type[1] { typeof(Object) }), typeof(FakePrefabHooks).GetMethod("InstantiateO")); new Hook((MethodBase)typeof(Object).GetMethod("Instantiate", new Type[3] { typeof(Object), typeof(Vector3), typeof(Quaternion) }), typeof(FakePrefabHooks).GetMethod("InstantiateOPR")); new Hook((MethodBase)typeof(Object).GetMethod("Instantiate", new Type[4] { typeof(Object), typeof(Vector3), typeof(Quaternion), typeof(Transform) }), typeof(FakePrefabHooks).GetMethod("InstantiateOPRP")); } public static void AcquirePassiveItemPrefabDirectly(Action orig, PlayerController self, PassiveItem item) { try { bool num = FakePrefab.IsFakePrefab((Object)(object)((Component)item).gameObject); if (num) { ((Component)item).gameObject.SetActive(true); } orig(self, item); if (num) { ((Component)item).gameObject.SetActive(false); } } catch (Exception ex) { if (ExpandSettings.debugMode) { Debug.Log((object)ex); } } } public static void ActivePickup(Action orig, PlayerItem self, PlayerController player) { try { bool num = FakePrefab.IsFakePrefab((Object)(object)((Component)self).gameObject); if (num) { ((Component)self).gameObject.SetActive(true); } orig(self, player); if (num) { ((Component)self).gameObject.SetActive(false); } } catch (Exception ex) { if (ExpandSettings.debugMode) { Debug.Log((object)ex); } } } public static Object InstantiateOPI(Func orig, Object original, Transform parent, bool instantiateInWorldSpace) { return FakePrefab.InstantiateFakePrefab(original, orig(original, parent, instantiateInWorldSpace)); } public static Object InstantiateOP(Func orig, Object original, Transform parent) { return FakePrefab.InstantiateFakePrefab(original, orig(original, parent)); } public static Object InstantiateO(Func orig, Object original) { return FakePrefab.InstantiateFakePrefab(original, orig(original)); } public static Object InstantiateOPR(Func orig, Object original, Vector3 position, Quaternion rotation) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0004: Unknown result type (might be due to invalid IL or missing references) return FakePrefab.InstantiateFakePrefab(original, orig(original, position, rotation)); } public static Object InstantiateOPRP(Func orig, Object original, Vector3 position, Quaternion rotation, Transform parent) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0004: Unknown result type (might be due to invalid IL or missing references) return FakePrefab.InstantiateFakePrefab(original, orig(original, position, rotation, parent)); } } public static class ItemBuilder { public enum CooldownType { Timed, Damage, PerRoom, None } public static void Init() { FakePrefabHooks.Init(); } public static void SetupItem(PickupObject item, string shortDesc, string longDesc, string AmmonomiconSpriteName, string idPool = "expandItems") { try { ((BraveBehaviour)item).encounterTrackable = null; Databases.Items.SetupItem(item, ((Object)item).name); SpriteBuilder.AddToAmmonomicon(((BraveBehaviour)item).sprite.Collection.GetSpriteDefinition(AmmonomiconSpriteName), ((BraveBehaviour)item).sprite.Collection.GetSpriteDefinition(AmmonomiconSpriteName).material); ((BraveBehaviour)item).encounterTrackable.journalData.AmmonomiconSprite = AmmonomiconSpriteName; GunExt.SetName(item, ((Object)item).name); GunExt.SetShortDescription(item, shortDesc); GunExt.SetLongDescription(item, longDesc); if (item is PlayerItem) { ((PlayerItem)((item is PlayerItem) ? item : null)).consumable = false; } Game.Items.Add(idPool + ":" + ((Object)item).name.ToLower().Replace(" ", "_"), item); Databases.Items.Add(item, false, "ANY"); } catch (Exception ex) { Debug.LogException(ex); ETGModConsole.Log((object)ex.Message, false); ETGModConsole.Log((object)ex.StackTrace, false); } } public static void SetupItem(PickupObject item, string shortDesc, string longDesc, string idPool = "expandItems") { try { ((BraveBehaviour)item).encounterTrackable = null; Databases.Items.SetupItem(item, ((Object)item).name); SpriteBuilder.AddToAmmonomicon(((BraveBehaviour)item).sprite.GetCurrentSpriteDef()); if (Object.op_Implicit((Object)(object)((BraveBehaviour)item).encounterTrackable) && ((BraveBehaviour)item).encounterTrackable.journalData != null && Object.op_Implicit((Object)(object)((BraveBehaviour)item).sprite) && ((BraveBehaviour)item).sprite.GetCurrentSpriteDef() != null && !string.IsNullOrEmpty(((BraveBehaviour)item).sprite.GetCurrentSpriteDef().name)) { ((BraveBehaviour)item).encounterTrackable.journalData.AmmonomiconSprite = ((BraveBehaviour)item).sprite.GetCurrentSpriteDef().name; } else if (Object.op_Implicit((Object)(object)((BraveBehaviour)item).encounterTrackable) && ((BraveBehaviour)item).encounterTrackable.journalData != null) { ((BraveBehaviour)item).encounterTrackable.journalData.AmmonomiconSprite = "BROKEN_SPRITE"; } GunExt.SetName(item, ((Object)item).name); GunExt.SetShortDescription(item, shortDesc); GunExt.SetLongDescription(item, longDesc); if (item is PlayerItem) { ((PlayerItem)((item is PlayerItem) ? item : null)).consumable = false; } Game.Items.Add(idPool + ":" + ((Object)item).name.ToLower().Replace(" ", "_"), item); Databases.Items.Add(item, false, "ANY"); } catch (Exception ex) { Debug.LogException(ex); ETGModConsole.Log((object)ex.Message, false); ETGModConsole.Log((object)ex.StackTrace, false); } } public static void SetupEXItem(PickupObject item, string name, string shortDesc, string longDesc, string idPool = "ex", bool createEncounterTrackable = true) { try { ((BraveBehaviour)item).encounterTrackable = null; Databases.Items.SetupItem(item, ((Object)item).name); SpriteBuilder.AddToAmmonomicon(((BraveBehaviour)item).sprite.GetCurrentSpriteDef()); ((BraveBehaviour)item).encounterTrackable.journalData.AmmonomiconSprite = ((BraveBehaviour)item).sprite.GetCurrentSpriteDef().name; GunExt.SetName(item, name); GunExt.SetShortDescription(item, shortDesc); GunExt.SetLongDescription(item, longDesc); if (item is PlayerItem) { ((PlayerItem)((item is PlayerItem) ? item : null)).consumable = false; } Game.Items.Add(idPool + ":" + name.ToLower().Replace(" ", "_"), item); Databases.Items.Add(item, false, "ANY"); if (!createEncounterTrackable) { Object.Destroy((Object)(object)((BraveBehaviour)item).encounterTrackable); } } catch (Exception ex) { Debug.LogException(ex); ETGModConsole.Log((object)ex.Message, false); ETGModConsole.Log((object)ex.StackTrace, false); } } public static void SetCooldownType(PlayerItem item, CooldownType cooldownType, float value) { item.damageCooldown = -1f; item.roomCooldown = -1; item.timeCooldown = -1f; switch (cooldownType) { case CooldownType.Timed: item.timeCooldown = value; break; case CooldownType.Damage: item.damageCooldown = value; break; case CooldownType.PerRoom: item.roomCooldown = (int)value; break; } } public static void AddPassiveStatModifier(PickupObject po, StatType statType, float amount, ModifyMethod method = 0) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Expected O, but got Unknown //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: 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) //IL_0016: Unknown result type (might be due to invalid IL or missing references) StatModifier val = new StatModifier(); val.amount = amount; val.statToBoost = statType; val.modifyType = method; if (po is PlayerItem) { PlayerItem val2 = (PlayerItem)(object)((po is PlayerItem) ? po : null); if (val2.passiveStatModifiers == null) { val2.passiveStatModifiers = (StatModifier[])(object)new StatModifier[1] { val }; } else { val2.passiveStatModifiers = val2.passiveStatModifiers.Concat((IEnumerable)(object)new StatModifier[1] { val }).ToArray(); } return; } if (!(po is PassiveItem)) { throw new NotSupportedException("Object must be of type PlayerItem or PassiveItem"); } PassiveItem val3 = (PassiveItem)(object)((po is PassiveItem) ? po : null); if (val3.passiveStatModifiers == null) { val3.passiveStatModifiers = (StatModifier[])(object)new StatModifier[1] { val }; } else { val3.passiveStatModifiers = val3.passiveStatModifiers.Concat((IEnumerable)(object)new StatModifier[1] { val }).ToArray(); } } public static IEnumerator HandleDuration(PlayerItem item, float duration, PlayerController user, Action OnFinish) { if (!item.IsCurrentlyActive) { SetPrivateType(item, "m_isCurrentlyActive", value: true); SetPrivateType(item, "m_activeElapsed", 0f); SetPrivateType(item, "m_activeDuration", duration); item.OnActivationStatusChanged?.Invoke(item); GetPrivateType(item, "m_activeElapsed"); GetPrivateType(item, "m_activeDuration"); while (GetPrivateType(item, "m_activeElapsed") < GetPrivateType(item, "m_activeDuration") && item.IsCurrentlyActive) { yield return null; } SetPrivateType(item, "m_isCurrentlyActive", value: false); item.OnActivationStatusChanged?.Invoke(item); OnFinish?.Invoke(user); } } private static void SetPrivateType(T obj, string field, bool value) { typeof(T).GetField(field, BindingFlags.Instance | BindingFlags.NonPublic).SetValue(obj, value); } private static void SetPrivateType(T obj, string field, float value) { typeof(T).GetField(field, BindingFlags.Instance | BindingFlags.NonPublic).SetValue(obj, value); } private static T2 GetPrivateType(T obj, string field) { return (T2)typeof(T).GetField(field, BindingFlags.Instance | BindingFlags.NonPublic).GetValue(obj); } } public class BabyGoodHammer : PlayerItem { public static GameObject hammerSpawnFX; public static GameObject hammerItemObject; public static string CompanionGuid; public static int HammerPickupID; public bool PreventRespawnOnFloorLoad; private GameObject m_extantCompanion; private bool m_HammersHidden; private bool m_PickedUp; public GameObject ExtantCompanion => m_extantCompanion; public static void Init(AssetBundle expandSharedAssets1) { //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) hammerItemObject = expandSharedAssets1.LoadAsset("Baby Good Hammer"); BabyGoodHammer babyGoodHammer = hammerItemObject.AddComponent(); SpriteSerializer.AddSpriteToObject(hammerItemObject, ExpandPrefabs.EXItemCollection, "babygoodhammer", (PerpendicularState)0); string shortDesc = "It's Hammer Time!"; string longDesc = "Summons a Dead Blow Hammer.\n\nIt's cry sounds a lot like a whistle.\n\nThe closer you are to the Forge, the more powerful the hammers will be."; ItemBuilder.SetupItem((PickupObject)(object)babyGoodHammer, shortDesc, longDesc, "ex"); ItemBuilder.SetCooldownType((PlayerItem)(object)babyGoodHammer, ItemBuilder.CooldownType.Damage, 350f); ItemBuilder.AddPassiveStatModifier((PickupObject)(object)babyGoodHammer, (StatType)8, 1f, (ModifyMethod)0); ((PickupObject)babyGoodHammer).quality = (ItemQuality)3; if (!ExpandSettings.EnableEXItems) { ((PickupObject)babyGoodHammer).quality = (ItemQuality)(-100); } hammerSpawnFX = expandSharedAssets1.LoadAsset("HammerSpawningFX"); SpriteSerializer.AddSpriteToObject(hammerSpawnFX, ExpandPrefabs.EXItemCollection, "babygoodhammer_spawn_00", (PerpendicularState)0); List spriteNameList = new List { "babygoodhammer_spawn_00", "babygoodhammer_spawn_00", "babygoodhammer_spawn_01", "babygoodhammer_spawn_01", "babygoodhammer_spawn_01", "babygoodhammer_spawn_01", "babygoodhammer_spawn_02", "babygoodhammer_spawn_03", "babygoodhammer_spawn_04", "babygoodhammer_spawn_05", "babygoodhammer_spawn_06", "babygoodhammer_spawn_07", "babygoodhammer_spawn_08", "babygoodhammer_spawn_09", "babygoodhammer_spawn_10", "babygoodhammer_spawn_11", "babygoodhammer_spawn_12", "babygoodhammer_spawn_13", "babygoodhammer_spawn_14", "babygoodhammer_spawn_15", "babygoodhammer_spawn_16", "babygoodhammer_spawn_17", "babygoodhammer_spawn_18", "babygoodhammer_spawn_19", "babygoodhammer_spawn_20", "babygoodhammer_spawn_21", "babygoodhammer_spawn_22", "babygoodhammer_spawn_23", "babygoodhammer_spawn_24", "babygoodhammer_spawn_25" }; ExpandUtility.GenerateSpriteAnimator(hammerSpawnFX); tk2dSpriteAnimator component = hammerSpawnFX.GetComponent(); List spriteNameList2 = new List { "babygoodhammer_spawn_25", "babygoodhammer_spawn_24", "babygoodhammer_spawn_23", "babygoodhammer_spawn_22", "babygoodhammer_spawn_21", "babygoodhammer_spawn_20", "babygoodhammer_spawn_19", "babygoodhammer_spawn_18", "babygoodhammer_spawn_17", "babygoodhammer_spawn_16", "babygoodhammer_spawn_15", "babygoodhammer_spawn_14", "babygoodhammer_spawn_13", "babygoodhammer_spawn_12", "babygoodhammer_spawn_11", "babygoodhammer_spawn_10", "babygoodhammer_spawn_09", "babygoodhammer_spawn_08", "babygoodhammer_spawn_07", "babygoodhammer_spawn_06", "babygoodhammer_spawn_05", "babygoodhammer_spawn_04", "babygoodhammer_spawn_03", "babygoodhammer_spawn_02", "babygoodhammer_spawn_01", "babygoodhammer_spawn_01", "babygoodhammer_spawn_01", "babygoodhammer_spawn_01", "babygoodhammer_spawn_00" }; ExpandUtility.AddAnimation(component, ExpandPrefabs.EXItemCollection.GetComponent(), spriteNameList, "HammerSpawn", (WrapMode)2); ExpandUtility.AddAnimation(component, ExpandPrefabs.EXItemCollection.GetComponent(), spriteNameList2, "HammerReturnSpawn", (WrapMode)2); HammerPickupID = ((PickupObject)babyGoodHammer).PickupObjectId; ExpandLists.CompanionItems.Add(hammerItemObject); } public BabyGoodHammer() { PreventRespawnOnFloorLoad = false; m_HammersHidden = false; m_PickedUp = false; } public override bool CanBeUsed(PlayerController user) { if (IsUsableRightNow(user)) { return ((PlayerItem)this).CanBeUsed(user); } return false; } private bool IsUsableRightNow(PlayerController user) { if (user.IsInCombat) { if (ExpandStaticReferenceManager.AllFriendlyHammers != null && ExpandStaticReferenceManager.AllFriendlyHammers.Count > 0) { foreach (ExpandForgeHammerComponent allFriendlyHammer in ExpandStaticReferenceManager.AllFriendlyHammers) { if ((Object)(object)allFriendlyHammer != (Object)null && ((DungeonPlaceableBehaviour)allFriendlyHammer).GetAbsoluteParentRoom() == user.CurrentRoom && allFriendlyHammer.IsActive) { return false; } } } return true; } return false; } protected override void DoEffect(PlayerController user) { //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) if (!m_PickedUp) { DoConfigure(user); m_PickedUp = true; } if (BraveUtility.RandomBool()) { AkSoundEngine.PostEvent("Play_ENM_smiley_whistle_01", ((Component)this).gameObject); } else { AkSoundEngine.PostEvent("Play_ENM_smiley_whistle_02", ((Component)this).gameObject); } if (StaticReferenceManager.AllEnemies.Count > 0) { List list = new List(); foreach (AIActor allEnemy in StaticReferenceManager.AllEnemies) { if (allEnemy.EnemyGuid == CompanionGuid) { list.Add(allEnemy); } } if (list.Count <= 0) { ((MonoBehaviour)this).StartCoroutine(HandleSpawnAnimation(user)); ((MonoBehaviour)this).StartCoroutine(SpawnHammer(user)); } else { m_HammersHidden = true; foreach (AIActor item in list) { ((Behaviour)((Component)item).gameObject.GetComponent()).enabled = false; item.ToggleRenderers(false); ((GameActor)item).IsGone = true; ((BraveBehaviour)item).behaviorSpeculator.InterruptAndDisable(); ((BraveBehaviour)item).specRigidbody.CollideWithOthers = false; ((MonoBehaviour)this).StartCoroutine(HandleSpawnAnimation(user, Vector2.op_Implicit(((BraveBehaviour)item).sprite.WorldBottomLeft))); ((MonoBehaviour)this).StartCoroutine(SpawnHammer(user)); } } if (StaticReferenceManager.AllForgeHammers.Count <= 0) { return; } for (int i = 0; i < StaticReferenceManager.AllForgeHammers.Count; i++) { if (Object.op_Implicit((Object)(object)StaticReferenceManager.AllForgeHammers[i]) && ReflectionHelpers.ReflectGetField(typeof(ForgeHammerController), "m_room", StaticReferenceManager.AllForgeHammers[i]) == user.CurrentRoom) { StaticReferenceManager.AllForgeHammers[i].Deactivate(); ((MonoBehaviour)this).StartCoroutine(SpawnHammer(user)); } } } else { ((MonoBehaviour)this).StartCoroutine(HandleSpawnAnimation(user)); ((MonoBehaviour)this).StartCoroutine(SpawnHammer(user)); } } private IEnumerator HandleSpawnAnimation(PlayerController user, Vector3? overridePosition = null) { Vector3 val = ((BraveBehaviour)user).transform.position + new Vector3(0f, 1.25f); if (overridePosition.HasValue) { val = overridePosition.Value; } GameObject targetObject = Object.Instantiate(hammerSpawnFX, val, Quaternion.identity); yield return null; tk2dSpriteAnimator hammerAnimator = targetObject.GetComponent(); if ((Object)(object)hammerAnimator != (Object)null) { if (!overridePosition.HasValue) { LootEngine.DoDefaultSynergyPoof(Vector2.op_Implicit(targetObject.transform.position + new Vector3(0.1f, 0.1f)), false); LootEngine.DoDefaultItemPoof(Vector2.op_Implicit(targetObject.transform.position + new Vector3(0.1f, 0.1f)), false, false); } hammerAnimator.Play("HammerSpawn"); while (hammerAnimator.Playing) { Transform transform = targetObject.transform; transform.position += new Vector3(0f, 0.02f); yield return null; } Object.Destroy((Object)(object)targetObject); } else { Object.Destroy((Object)(object)targetObject); } } private IEnumerator HandleHammerReturn(AIActor targetHammer, Vector3 returnPosition) { //IL_0015: 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) GameObject targetObject = Object.Instantiate(hammerSpawnFX, returnPosition, Quaternion.identity); yield return null; tk2dSpriteAnimator hammerAnimator = targetObject.GetComponent(); if ((Object)(object)hammerAnimator != (Object)null) { hammerAnimator.Play("HammerReturnSpawn"); while (hammerAnimator.Playing) { Transform transform = targetObject.transform; transform.position -= new Vector3(0f, 0.02f); yield return null; } Vector3 position = targetObject.transform.position; if (!Object.op_Implicit((Object)(object)targetHammer) && Object.op_Implicit((Object)(object)base.LastOwner)) { ForceCompanionRegeneration(base.LastOwner, Vector2.op_Implicit(returnPosition)); if (Object.op_Implicit((Object)(object)((BraveBehaviour)targetHammer).specRigidbody)) { ((BraveBehaviour)targetHammer).specRigidbody.Reinitialize(); PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(((BraveBehaviour)targetHammer).specRigidbody, (int?)null, false); } } else { ((Behaviour)((Component)targetHammer).gameObject.GetComponent()).enabled = true; targetHammer.ToggleRenderers(true); ((GameActor)targetHammer).IsGone = false; ((Behaviour)((BraveBehaviour)targetHammer).behaviorSpeculator).enabled = true; ((Component)targetHammer).gameObject.transform.position = position; if (Object.op_Implicit((Object)(object)((BraveBehaviour)targetHammer).specRigidbody)) { ((BraveBehaviour)targetHammer).specRigidbody.CollideWithOthers = true; ((BraveBehaviour)targetHammer).specRigidbody.Reinitialize(); PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(((BraveBehaviour)targetHammer).specRigidbody, (int?)null, false); } } Object.Destroy((Object)(object)targetObject); } else { ((Behaviour)((Component)targetHammer).gameObject.GetComponent()).enabled = true; targetHammer.ToggleRenderers(true); ((GameActor)targetHammer).IsGone = false; ((Behaviour)((BraveBehaviour)targetHammer).behaviorSpeculator).enabled = true; ((Component)targetHammer).gameObject.transform.position = returnPosition - new Vector3(0f, 4.5f); if (Object.op_Implicit((Object)(object)((BraveBehaviour)targetHammer).specRigidbody)) { ((BraveBehaviour)targetHammer).specRigidbody.CollideWithOthers = true; ((BraveBehaviour)targetHammer).specRigidbody.Reinitialize(); PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(((BraveBehaviour)targetHammer).specRigidbody, (int?)null, false); } Object.Destroy((Object)(object)targetObject); } } public static IEnumerator SpawnHammer(PlayerController user, float spawnDelay = 0f) { if (spawnDelay > 0f) { yield return (object)new WaitForSeconds(spawnDelay); } RoomHandler currentRoom2 = user.CurrentRoom; IntVector2? spawnPosition = currentRoom2.GetRandomVisibleClearSpot(2, 2); yield return (object)new WaitForSeconds(1f); if (!spawnPosition.HasValue) { spawnPosition = Vector2Extensions.ToIntVector2(((GameActor)user).CenterPosition, (VectorConversions)2) - user.CurrentRoom.area.basePosition; } if (spawnPosition.HasValue) { RoomHandler currentRoom = user.CurrentRoom; GameObject ForgeHammer = DungeonPlaceableUtility.InstantiateDungeonPlaceable(ExpandPrefabs.EXFriendlyForgeHammer, currentRoom, spawnPosition.Value, true, (AwakenAnimationType)0, false); yield return null; if (Object.op_Implicit((Object)(object)ForgeHammer)) { ExpandForgeHammerComponent component = ForgeHammer.GetComponent(); component.Owner = user; component.ConfigureOnPlacement(currentRoom); } yield return null; } } public override void Pickup(PlayerController player) { ((PlayerItem)this).Pickup(player); m_PickedUp = true; DoConfigure(player); } protected override void OnPreDrop(PlayerController player) { ((PlayerItem)this).OnPreDrop(player); m_PickedUp = false; DestroyCompanion(); player.OnNewFloorLoaded = (Action)Delegate.Remove(player.OnNewFloorLoaded, new Action(HandleNewFloor)); } public override void Update() { //IL_00b8: 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_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) ((PlayerItem)this).Update(); if (Dungeon.IsGenerating || !m_PickedUp || !m_HammersHidden || !Object.op_Implicit((Object)(object)base.LastOwner) || ((DungeonPlaceableBehaviour)base.LastOwner).GetAbsoluteParentRoom() == null || base.LastOwner.IsInCombat) { return; } m_HammersHidden = false; if (StaticReferenceManager.AllEnemies.Count <= 0) { return; } new List(); foreach (AIActor allEnemy in StaticReferenceManager.AllEnemies) { if (allEnemy.EnemyGuid == CompanionGuid && ((GameActor)allEnemy).IsGone) { ((DungeonPlaceableBehaviour)base.LastOwner).GetAbsoluteParentRoom(); Vector3 val = new Vector3(0f, 5.5f); IntVector2 bestRewardLocation = base.LastOwner.CurrentRoom.GetBestRewardLocation(new IntVector2(2, 2), (RewardLocationStyle)1, false); Vector3 returnPosition = val + ((IntVector2)(ref bestRewardLocation)).ToVector3(); ((MonoBehaviour)this).StartCoroutine(HandleHammerReturn(allEnemy, returnPosition)); } } } private void DoConfigure(PlayerController player) { player.OnNewFloorLoaded = (Action)Delegate.Combine(player.OnNewFloorLoaded, new Action(HandleNewFloor)); CreateCompanion(player); } private void CreateCompanion(PlayerController owner) { //IL_0027: 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_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Invalid comparison between Unknown and I4 //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_003a: 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_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) if (PreventRespawnOnFloorLoad || string.IsNullOrEmpty(CompanionGuid)) { return; } AIActor orLoadByGuid = EnemyDatabase.GetOrLoadByGuid(CompanionGuid); Vector3 val = ((BraveBehaviour)owner).transform.position; if ((int)GameManager.Instance.CurrentLevelOverrideState == 1) { val += new Vector3(1.125f, -0.3125f, 0f); } m_extantCompanion = Object.Instantiate(((Component)orLoadByGuid).gameObject, val, Quaternion.identity); if (Object.op_Implicit((Object)(object)m_extantCompanion)) { CompanionController orAddComponent = GameObjectExtensions.GetOrAddComponent(m_extantCompanion); orAddComponent.Initialize(owner); if (Object.op_Implicit((Object)(object)((BraveBehaviour)orAddComponent).specRigidbody)) { PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(((BraveBehaviour)orAddComponent).specRigidbody, (int?)null, false); } if (m_HammersHidden) { ((Behaviour)orAddComponent).enabled = false; m_extantCompanion.GetComponent().ToggleRenderers(false); ((GameActor)m_extantCompanion.GetComponent()).IsGone = true; ((BraveBehaviour)m_extantCompanion.GetComponent()).behaviorSpeculator.InterruptAndDisable(); ((BraveBehaviour)orAddComponent).specRigidbody.CollideWithOthers = false; } } } public void ForceCompanionRegeneration(PlayerController owner, Vector2? overridePosition) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: 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_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0067: 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) bool flag = false; Vector2 val = Vector2.zero; if (Object.op_Implicit((Object)(object)m_extantCompanion)) { flag = true; val = Vector3Extensions.XY(m_extantCompanion.transform.position); } if (overridePosition.HasValue) { flag = true; val = overridePosition.Value; } DestroyCompanion(); CreateCompanion(owner); if (Object.op_Implicit((Object)(object)m_extantCompanion) && flag) { m_extantCompanion.transform.position = Vector2Extensions.ToVector3ZisY(val, 0f); SpeculativeRigidbody component = m_extantCompanion.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.Reinitialize(); } } } public void ForceDisconnectCompanion() { m_extantCompanion = null; } private void DestroyCompanion() { if (Object.op_Implicit((Object)(object)m_extantCompanion)) { Object.Destroy((Object)(object)m_extantCompanion); m_extantCompanion = null; } } private void HandleNewFloor(PlayerController obj) { DestroyCompanion(); if (!PreventRespawnOnFloorLoad) { CreateCompanion(obj); } } protected override void OnDestroy() { if ((Object)(object)base.LastOwner != (Object)null) { PlayerController lastOwner = base.LastOwner; lastOwner.OnNewFloorLoaded = (Action)Delegate.Remove(lastOwner.OnNewFloorLoaded, new Action(HandleNewFloor)); } m_PickedUp = false; DestroyCompanion(); ((PlayerItem)this).OnDestroy(); } } public class CorruptionBomb : PlayerItem { public static GameObject corruptionbomb; public static int CorruptionBombPickupID; private static GameObject glitchBombSpawnObject; private static GameObject glitchBombMinimapObject; private List CommonItemDrops = new List { 73, 127, 224, 565 }; private List RareItemDrops = new List { 74, 276, 137, 104, 63, 78, 67, 120, 600 }; private bool m_PickedUp; public bool CurrentlyInUse; public static void Init(AssetBundle expandSharedAssets1) { //IL_0098: 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) string name = "Corruption Bomb"; corruptionbomb = expandSharedAssets1.LoadAsset("EXCorruptionBomb"); ((Object)corruptionbomb).name = name; SpriteSerializer.AddSpriteToObject(corruptionbomb, ExpandPrefabs.EXItemCollection, "corruptionbomb", (PerpendicularState)0); CorruptionBomb corruptionBomb = corruptionbomb.AddComponent(); string shortDesc = "Causes widespread corruption."; string longDesc = "It is said that a mysterious gungeoneer from a far away\nuniverse brought this item into the Gungeon.\n\nHis excessive use of this item may be responsible for the corrupted floors some gungeoneers may stumble upon."; ItemBuilder.SetupItem((PickupObject)(object)corruptionBomb, shortDesc, longDesc, "ex"); ItemBuilder.SetCooldownType((PlayerItem)(object)corruptionBomb, ItemBuilder.CooldownType.Damage, 750f); ((PickupObject)corruptionBomb).IgnoredByRat = true; ((PlayerItem)corruptionBomb).consumable = false; ((PlayerItem)corruptionBomb).canStack = true; ((PlayerItem)corruptionBomb).numberOfUses = 3; ((PlayerItem)corruptionBomb).m_cachedNumberOfUses = 3; ((PlayerItem)corruptionBomb).UsesNumberOfUsesBeforeCooldown = true; ((PickupObject)corruptionBomb).quality = (ItemQuality)5; if (!ExpandSettings.EnableEXItems) { ((PickupObject)corruptionBomb).quality = (ItemQuality)(-100); } CorruptionBombPickupID = ((PickupObject)corruptionBomb).PickupObjectId; glitchBombMinimapObject = expandSharedAssets1.LoadAsset("EXCorruptionBomb_MinimapIcon"); SpriteSerializer.AddSpriteToObject(glitchBombMinimapObject, ExpandPrefabs.EXItemCollection, "corruptionbomb_minimapicon", (PerpendicularState)0); ((PlayerItem)corruptionBomb).minimapIcon = glitchBombMinimapObject; List spriteNameList = new List { "corruptionbomb_spin_01", "corruptionbomb_spin_02", "corruptionbomb_spin_03", "corruptionbomb_spin_04", "corruptionbomb_spin_05", "corruptionbomb_spin_06", "corruptionbomb_spin_07", "corruptionbomb_spin_08", "corruptionbomb_spin_09", "corruptionbomb_spin_10" }; glitchBombSpawnObject = expandSharedAssets1.LoadAsset("EXCorruptionBomb_Projectile"); SpriteSerializer.AddSpriteToObject(glitchBombSpawnObject, ExpandPrefabs.EXItemCollection, "corruptionbomb_spin_01", (PerpendicularState)0); ExpandUtility.GenerateSpriteAnimator(glitchBombSpawnObject, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: true); ExpandUtility.AddAnimation(glitchBombSpawnObject.GetComponent(), ExpandPrefabs.EXItemCollection.GetComponent(), spriteNameList, "CorruptionSpawn", (WrapMode)2, 7); } public CorruptionBomb() { m_PickedUp = false; } private void DoConfigure(PlayerController player) { player.OnAnyEnemyReceivedDamage = (Action)Delegate.Combine(player.OnAnyEnemyReceivedDamage, new Action(AnyDamageDealt)); ((PickupObject)this).IgnoredByRat = false; if (!ExpandHooks.IsHooksInstalled) { ExpandHooks.InstallPrimaryHooks(); } } public override void Pickup(PlayerController player) { ((PlayerItem)this).Pickup(player); m_PickedUp = true; DoConfigure(player); AkSoundEngine.PostEvent("Play_EX_CorruptionBombPickup_01", ((Component)player).gameObject); } protected override void OnPreDrop(PlayerController user) { ((PlayerItem)this).OnPreDrop(user); if (Object.op_Implicit((Object)(object)user) && m_PickedUp) { user.OnAnyEnemyReceivedDamage = (Action)Delegate.Remove(user.OnAnyEnemyReceivedDamage, new Action(AnyDamageDealt)); } } protected override void AfterCooldownApplied(PlayerController user) { ((PlayerItem)this).AfterCooldownApplied(user); base.numberOfUses = 3; } public override bool CanBeUsed(PlayerController user) { if (!Object.op_Implicit((Object)(object)user) || user.InExitCell || user.CurrentRoom == null || CurrentlyInUse) { return false; } return ((PlayerItem)this).CanBeUsed(user); } public bool CorruptionAlreadyExists(PlayerController user) { //IL_0038: 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) if (ExpandStaticReferenceManager.AllCorruptionSoundObjects.Count > 0) { foreach (GameObject allCorruptionSoundObject in ExpandStaticReferenceManager.AllCorruptionSoundObjects) { if (Object.op_Implicit((Object)(object)allCorruptionSoundObject) && user.CurrentRoom != null && Vector3Extensions.GetAbsoluteRoom(allCorruptionSoundObject.transform.position) != null && Vector3Extensions.GetAbsoluteRoom(allCorruptionSoundObject.transform.position) == user.CurrentRoom) { return true; } } } return false; } protected override void DoEffect(PlayerController user) { if (!m_PickedUp) { DoConfigure(user); m_PickedUp = true; } AkSoundEngine.PostEvent("Play_EX_CorruptionBombFire_01", ((Component)user).gameObject); CurrentlyInUse = true; CleanUpRoom(user); ((MonoBehaviour)GameManager.Instance).StartCoroutine(HandleSpawnAnimation(user)); } private void CleanUpRoom(PlayerController user) { //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_0254: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Unknown result type (might be due to invalid IL or missing references) if (((DungeonPlaceableBehaviour)user).GetAbsoluteParentRoom() == null) { return; } RoomHandler absoluteParentRoom = ((DungeonPlaceableBehaviour)user).GetAbsoluteParentRoom(); if (StaticReferenceManager.AllDebris.Count > 0) { for (int i = 0; i < StaticReferenceManager.AllDebris.Count; i++) { if (Object.op_Implicit((Object)(object)StaticReferenceManager.AllDebris[i]) && Object.op_Implicit((Object)(object)((Component)StaticReferenceManager.AllDebris[i]).gameObject) && Object.op_Implicit((Object)(object)((Component)StaticReferenceManager.AllDebris[i]).gameObject.transform) && Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)StaticReferenceManager.AllDebris[i]).transform.position) != null && Vector3Extensions.GetAbsoluteRoom(((Component)StaticReferenceManager.AllDebris[i]).gameObject.transform.position) == absoluteParentRoom && !string.IsNullOrEmpty(((Object)((Component)StaticReferenceManager.AllDebris[i]).gameObject).name) && (((Object)((Component)StaticReferenceManager.AllDebris[i]).gameObject).name.StartsWith("EX_RoomCorruption_") | ((Object)((Component)StaticReferenceManager.AllDebris[i]).gameObject).name.StartsWith("GlitchTile"))) { StaticReferenceManager.AllDebris[i].ForceDestroyAndMaybeRespawn(); } } } if (ExpandStaticReferenceManager.AllGlitchTiles.Count > 0) { for (int j = 0; j < ExpandStaticReferenceManager.AllGlitchTiles.Count; j++) { if (Object.op_Implicit((Object)(object)ExpandStaticReferenceManager.AllGlitchTiles[j]) && Object.op_Implicit((Object)(object)((Component)ExpandStaticReferenceManager.AllGlitchTiles[j]).gameObject) && Object.op_Implicit((Object)(object)((Component)ExpandStaticReferenceManager.AllGlitchTiles[j]).gameObject.transform) && Vector3Extensions.GetAbsoluteRoom(((Component)ExpandStaticReferenceManager.AllGlitchTiles[j]).gameObject.transform.position) != null && Vector3Extensions.GetAbsoluteRoom(((Component)ExpandStaticReferenceManager.AllGlitchTiles[j]).gameObject.transform.position) == absoluteParentRoom) { Object.Destroy((Object)(object)((Component)ExpandStaticReferenceManager.AllGlitchTiles[j]).gameObject); } } } if (ExpandStaticReferenceManager.AllCorruptionSoundObjects.Count <= 0) { return; } for (int k = 0; k < ExpandStaticReferenceManager.AllCorruptionSoundObjects.Count; k++) { GameObject val = ExpandStaticReferenceManager.AllCorruptionSoundObjects[k]; if (Object.op_Implicit((Object)(object)val) && Object.op_Implicit((Object)(object)val.transform) && Vector3Extensions.GetAbsoluteRoom(val.transform.position) != null && Vector3Extensions.GetAbsoluteRoom(val.transform.position) == absoluteParentRoom) { AkSoundEngine.PostEvent("Stop_EX_CorruptionAmbience_01", val); AkSoundEngine.PostEvent("Stop_EX_CorruptionAmbience_02", val); ExpandStaticReferenceManager.AllCorruptionSoundObjects.Remove(val); Object.Destroy((Object)(object)val); } } } private IEnumerator HandleSpawnAnimation(PlayerController user) { GameObject targetObject = Object.Instantiate(glitchBombSpawnObject, Vector2.op_Implicit(((GameActor)user).CenterPosition), Quaternion.identity); yield return null; tk2dSpriteAnimator bombAnimator = targetObject.GetComponent(); if (!((Object)(object)bombAnimator != (Object)null) || user.CurrentRoom == null) { yield break; } Vector2 roomBottomLeft = user.CurrentRoom.area.UnitBottomLeft; Vector2 roomTopRight = user.CurrentRoom.area.UnitTopRight; Vector3 movementDirection = new Vector3(0f, 3f); BraveInput instanceForPlayer = BraveInput.GetInstanceForPlayer(user.PlayerIDX); if (Object.op_Implicit((Object)(object)instanceForPlayer)) { if (instanceForPlayer.IsKeyboardAndMouse(false)) { movementDirection = Vector2.op_Implicit(Vector3Extensions.XY(user.unadjustedAimPoint) - TransformExtensions.PositionVector2(targetObject.transform)); } else if (instanceForPlayer.ActiveActions != null) { movementDirection = Vector2.op_Implicit(((TwoAxisInputControl)instanceForPlayer.ActiveActions.Aim).Vector); } ((Vector3)(ref movementDirection)).Normalize(); } float num = 20f; movementDirection = new Vector3(movementDirection.x / num, movementDirection.y / num); bombAnimator.Play("CorruptionSpawn"); float num2 = 0f; float num3 = 1.4f; float FlashFadeTime = 0.3f; float FlashHoldTime = 0.4f; bool CmaeraOverridden = GameManager.Instance.MainCameraController.UseOverridePlayerTwoPosition | GameManager.Instance.MainCameraController.UseOverridePlayerOnePosition | GameManager.Instance.MainCameraController.ManualControl; Pixelator.Instance.DoFinalNonFadedLayer = true; Pixelator.Instance.FadeToColor(num2, new Color(0f, 0f, 0f, 0.6f), true, num3); BraveTime.SetTimeScaleMultiplier(0.15f, glitchBombSpawnObject); if (!CmaeraOverridden) { GameManager.Instance.MainCameraController.SetManualControl(true, false); Pixelator.Instance.LerpToLetterbox(0.35f, 0.6f); } while (bombAnimator.Playing) { Transform transform = targetObject.transform; Transform transform2 = targetObject.transform; Vector3 val2 = (transform2.position += movementDirection); transform.position = Vector2.op_Implicit(BraveMathCollege.ClampToBounds(Vector2.op_Implicit(val2), roomBottomLeft + Vector2.one, roomTopRight - Vector2.one)); GameManager.Instance.MainCameraController.OverridePosition = targetObject.transform.position; yield return null; } Pixelator.Instance.DoFinalNonFadedLayer = false; BraveTime.ClearMultiplier(glitchBombSpawnObject); if (!CmaeraOverridden) { GameManager.Instance.MainCameraController.SetManualControl(false, true); Pixelator.Instance.LerpToLetterbox(0.5f, 0f); } AkSoundEngine.PostEvent("Play_EX_CorruptionBombExplode_01", targetObject); Pixelator.Instance.FadeToColor(FlashFadeTime, new Color(1f, 1f, 1f, 0.7f), true, FlashHoldTime); Vector2 lastPosition = TransformExtensions.PositionVector2(targetObject.transform); LootEngine.DoDefaultSynergyPoof(lastPosition, false); Object.Destroy((Object)(object)targetObject); RoomHandler m_targetRoom = Vector3Extensions.GetAbsoluteRoom(lastPosition); if (m_targetRoom == null) { ((MonoBehaviour)GameManager.Instance).StartCoroutine(DelayedUsableTimer(1.5f)); yield break; } GameObject m_NewSoundObject = new GameObject("EX_RoomCorruption_" + Random.Range(10000, 99999)); m_NewSoundObject.transform.position = Vector2.op_Implicit(lastPosition); m_NewSoundObject.AddComponent(); ExpandCorruptedRoomAmbiencePlacable component = m_NewSoundObject.GetComponent(); component.CameFromCorruptionBomb = true; component.GoesAwayEventually = true; component.ConfigureOnPlacement(m_targetRoom); yield return null; float m_prevWaveDist = 0f; float distortionMaxRadius = 40f; float distortionDuration = 1.5f; float num4 = 1.25f; float num5 = 0.08f; Exploder.DoDistortionWave(lastPosition, num4, num5, distortionMaxRadius, distortionDuration); TriggerBlank(lastPosition, null, 40f, 0.5f, silent: true, breaksWalls: true, breaksObjects: false, 0f, disableDamage: true); List m_CachedRoomCellList = new List(); IntVector2 val3 = Vector2Extensions.ToIntVector2(m_targetRoom.area.UnitBottomLeft, (VectorConversions)2) - new IntVector2(2, 2); IntVector2 val4 = m_targetRoom.area.dimensions + new IntVector2(4, 4); for (int j = 0; j <= val4.x; j++) { for (int k = 0; k <= val4.y; k++) { IntVector2 item = new IntVector2(j, k) + new IntVector2(val3.x, val3.y); m_CachedRoomCellList.Add(item); } } if (Object.op_Implicit((Object)(object)m_NewSoundObject)) { ExpandStaticReferenceManager.AllCorruptionSoundObjects.Add(m_NewSoundObject); } ((MonoBehaviour)GameManager.Instance).StartCoroutine(DelayedUsableTimer(1.5f)); float waveRemaining = distortionDuration - BraveTime.DeltaTime; List shrinesToProcess = new List(); List npcsToProcess = new List(); List breakablesToProcess = new List(); List tablesToProcess = new List(); List movableTrapsToProcess = new List(); List hammersToProcess = new List(); FlippableCover[] AllTables = Object.FindObjectsOfType(); ChallengeShrineController[] AllChallengeShrines = Object.FindObjectsOfType(); while (waveRemaining > 0f) { waveRemaining -= BraveTime.DeltaTime; float num6 = BraveMathCollege.LinearToSmoothStepInterpolate(0f, distortionMaxRadius, 1f - waveRemaining / distortionDuration); if (m_CachedRoomCellList.Count > 0) { for (int l = 0; l < m_CachedRoomCellList.Count; l++) { IntVector2 val5 = m_CachedRoomCellList[l]; Vector2 val6 = ((IntVector2)(ref val5)).ToVector2(); float num7 = Vector2.Distance(val6, lastPosition); bool flag = false; if (Vector3Extensions.GetAbsoluteRoom(val6) != null && Vector3Extensions.GetAbsoluteRoom(val6 - new Vector2(0f, 1f)) == m_targetRoom && !flag && num7 >= m_prevWaveDist - 0.25f && num7 <= num6 + 0.25f) { GenerateCorruptedTileAtPositionMaybe(GameManager.Instance.Dungeon, m_targetRoom, Vector2Extensions.ToIntVector2(val6, (VectorConversions)2), 0.2f); } } } if (StaticReferenceManager.AllMinorBreakables.Count > 0) { for (int m = 0; m < StaticReferenceManager.AllMinorBreakables.Count; m++) { Vector2 val7 = TransformExtensions.PositionVector2(((BraveBehaviour)StaticReferenceManager.AllMinorBreakables[m]).transform); float num8 = Vector2.Distance(val7, lastPosition); bool flag2 = false; string name = ((Object)((Component)StaticReferenceManager.AllMinorBreakables[m]).gameObject).name; if (Vector3Extensions.GetAbsoluteRoom(val7) == null || Vector3Extensions.GetAbsoluteRoom(val7) != m_targetRoom || flag2 || !(string.IsNullOrEmpty(name) | !name.StartsWith("Corrupted")) || !(num8 >= m_prevWaveDist - 0.25f) || !(num8 <= num6 + 0.25f)) { continue; } if (Random.value <= 0.4f) { tk2dBaseSprite component2 = ((Component)StaticReferenceManager.AllMinorBreakables[m]).gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { ExpandShaders.Instance.ApplyGlitchShader(component2); } if (!breakablesToProcess.Contains(StaticReferenceManager.AllMinorBreakables[m])) { breakablesToProcess.Add(StaticReferenceManager.AllMinorBreakables[m]); } } else if (Random.value <= 0.6f) { StaticReferenceManager.AllMinorBreakables[m].Break(); } } } if (StaticReferenceManager.AllLocks != null && StaticReferenceManager.AllLocks.Count > 0) { for (int n = 0; n < StaticReferenceManager.AllLocks.Count; n++) { Vector2 val8 = TransformExtensions.PositionVector2(((BraveBehaviour)StaticReferenceManager.AllLocks[n]).transform); float num9 = Vector2.Distance(val8, lastPosition); bool flag3 = false; if ((Object)(object)StaticReferenceManager.AllLocks[n] != (Object)null && Vector3Extensions.GetAbsoluteRoom(val8) != null && ((Vector3Extensions.GetAbsoluteRoom(val8 - new Vector2(2f, 2f)) == m_targetRoom) | (Vector3Extensions.GetAbsoluteRoom(val8 + new Vector2(2f, 2f)) == m_targetRoom)) && !flag3 && num9 >= m_prevWaveDist - 0.25f && num9 <= num6 + 0.25f && (int)StaticReferenceManager.AllLocks[n].lockMode == 0 && StaticReferenceManager.AllLocks[n].IsLocked && Object.op_Implicit((Object)(object)((Component)StaticReferenceManager.AllLocks[n]).gameObject)) { StaticReferenceManager.AllLocks[n].ForceUnlock(); LootEngine.DoDefaultItemPoof(val8, false, true); AkSoundEngine.PostEvent("Play_EX_CorruptedObjectTransform_01", ((Component)StaticReferenceManager.AllLocks[n]).gameObject); } } } if (StaticReferenceManager.AllChests.Count > 0) { for (int num10 = 0; num10 < StaticReferenceManager.AllChests.Count; num10++) { Vector2 val9 = TransformExtensions.PositionVector2(((BraveBehaviour)StaticReferenceManager.AllChests[num10]).transform); float num11 = Vector2.Distance(val9, lastPosition); bool flag4 = false; if ((Object)(object)StaticReferenceManager.AllChests[num10] != (Object)null && Vector3Extensions.GetAbsoluteRoom(val9) != null && Vector3Extensions.GetAbsoluteRoom(val9) == m_targetRoom && !flag4 && num11 >= m_prevWaveDist - 0.25f && num11 <= num6 + 0.25f && !StaticReferenceManager.AllChests[num10].pickedUp && StaticReferenceManager.AllChests[num10].IsLocked && !StaticReferenceManager.AllChests[num10].IsRainbowChest && (int)StaticReferenceManager.AllChests[num10].ChestIdentifier != 1) { LootEngine.DoDefaultItemPoof(val9, false, true); AkSoundEngine.PostEvent("Play_EX_CorruptedObjectTransform_01", ((Component)StaticReferenceManager.AllChests[num10]).gameObject); StaticReferenceManager.AllChests[num10].ForceUnlock(); } } } if (StaticReferenceManager.AllNpcs.Count > 0) { for (int num12 = 0; num12 < StaticReferenceManager.AllNpcs.Count; num12++) { Vector2 val10 = TransformExtensions.PositionVector2(((BraveBehaviour)StaticReferenceManager.AllNpcs[num12]).transform); float num13 = Vector2.Distance(val10, lastPosition); bool flag5 = false; string name2 = ((Object)((Component)StaticReferenceManager.AllNpcs[num12]).gameObject).name; if (Object.op_Implicit((Object)(object)((Component)StaticReferenceManager.AllNpcs[num12]).gameObject.GetComponent())) { if (!((Behaviour)((Component)StaticReferenceManager.AllNpcs[num12]).gameObject.GetComponent()).enabled) { flag5 = true; } } else { flag5 = true; } if (!flag5 && (string.IsNullOrEmpty(name2) | !name2.StartsWith("Corrupted") | !Object.op_Implicit((Object)(object)((Component)StaticReferenceManager.AllNpcs[num12]).gameObject.GetComponent())) && !Object.op_Implicit((Object)(object)((Component)StaticReferenceManager.AllNpcs[num12]).gameObject.GetComponent()) && num13 >= m_prevWaveDist - 0.25f && num13 <= num6 + 0.25f && (Object)(object)StaticReferenceManager.AllNpcs[num12] != (Object)null && Vector3Extensions.GetAbsoluteRoom(val10) != null && Vector3Extensions.GetAbsoluteRoom(val10) == m_targetRoom) { tk2dBaseSprite component3 = ((Component)StaticReferenceManager.AllNpcs[num12]).gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)component3)) { ExpandShaders.Instance.ApplyGlitchShader(component3); } LootEngine.DoDefaultItemPoof(val10, false, true); if (npcsToProcess != null && !npcsToProcess.Contains(((Component)StaticReferenceManager.AllNpcs[num12]).gameObject)) { npcsToProcess.Add(((Component)StaticReferenceManager.AllNpcs[num12]).gameObject); } AkSoundEngine.PostEvent("Play_EX_CorruptedObjectTransform_01", ((Component)StaticReferenceManager.AllNpcs[num12]).gameObject); } } } if (AllChallengeShrines != null && AllChallengeShrines.Length != 0) { for (int num14 = 0; num14 < AllChallengeShrines.Length; num14++) { Vector2 val11 = TransformExtensions.PositionVector2(((Component)AllChallengeShrines[num14]).gameObject.transform); float glitchInterval = Random.Range(0.02f, 0.06f); float dispProbability = Random.Range(0.07f, 0.09f); float dispIntensity = Random.Range(0.085f, 0.2f); float colorProbability = Random.Range(0.04f, 0.15f); float colorIntensity = Random.Range(0.08f, 0.14f); bool flag6 = false; string name3 = ((Object)((Component)AllChallengeShrines[num14]).gameObject).name; float num15 = Vector2.Distance(val11, lastPosition); if (!((Object)(object)AllChallengeShrines[num14] != (Object)null) || ((DungeonPlaceableBehaviour)AllChallengeShrines[num14]).GetAbsoluteParentRoom() == null || ((DungeonPlaceableBehaviour)AllChallengeShrines[num14]).GetAbsoluteParentRoom() != m_targetRoom || flag6 || !(string.IsNullOrEmpty(name3) | !name3.StartsWith("Corrupted")) || !(num15 >= m_prevWaveDist - 0.25f) || !(num15 <= num6 + 0.25f)) { continue; } tk2dBaseSprite[] componentsInChildren = ((Component)AllChallengeShrines[num14]).gameObject.GetComponentsInChildren(true); if (componentsInChildren != null && !shrinesToProcess.Contains(((Component)AllChallengeShrines[num14]).gameObject)) { shrinesToProcess.Add(((Component)AllChallengeShrines[num14]).gameObject); tk2dBaseSprite[] array = componentsInChildren; foreach (tk2dBaseSprite sprite in array) { ExpandShaders.Instance.ApplyGlitchShader(sprite, usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); } AkSoundEngine.PostEvent("Play_EX_CorruptedObjectTransform_01", ((Component)AllChallengeShrines[num14]).gameObject); } else if (Object.op_Implicit((Object)(object)((Component)AllChallengeShrines[num14]).gameObject.GetComponent()) && !shrinesToProcess.Contains(((Component)AllChallengeShrines[num14]).gameObject)) { shrinesToProcess.Add(((Component)AllChallengeShrines[num14]).gameObject); ExpandShaders.Instance.ApplyGlitchShader(((Component)AllChallengeShrines[num14]).gameObject.GetComponent(), usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); AkSoundEngine.PostEvent("Play_EX_CorruptedObjectTransform_01", ((Component)AllChallengeShrines[num14]).gameObject); } } } if (StaticReferenceManager.AllAdvancedShrineControllers != null && StaticReferenceManager.AllAdvancedShrineControllers.Count > 0) { List allAdvancedShrineControllers = StaticReferenceManager.AllAdvancedShrineControllers; for (int num17 = 0; num17 < allAdvancedShrineControllers.Count; num17++) { Vector2 val12 = TransformExtensions.PositionVector2(((Component)allAdvancedShrineControllers[num17]).gameObject.transform); float glitchInterval2 = Random.Range(0.02f, 0.06f); float dispProbability2 = Random.Range(0.07f, 0.09f); float dispIntensity2 = Random.Range(0.085f, 0.2f); float colorProbability2 = Random.Range(0.04f, 0.15f); float colorIntensity2 = Random.Range(0.08f, 0.14f); bool flag7 = false; string name4 = ((Object)((Component)allAdvancedShrineControllers[num17]).gameObject).name; float num18 = Vector2.Distance(val12, lastPosition); if (!((Object)(object)allAdvancedShrineControllers[num17] != (Object)null) || ((DungeonPlaceableBehaviour)allAdvancedShrineControllers[num17]).GetAbsoluteParentRoom() == null || ((DungeonPlaceableBehaviour)allAdvancedShrineControllers[num17]).GetAbsoluteParentRoom() != m_targetRoom || flag7 || !(string.IsNullOrEmpty(name4) | !name4.StartsWith("Corrupted")) || !(num18 >= m_prevWaveDist - 0.25f) || !(num18 <= num6 + 0.25f)) { continue; } tk2dBaseSprite[] componentsInChildren2 = ((Component)allAdvancedShrineControllers[num17]).gameObject.GetComponentsInChildren(true); if (componentsInChildren2 != null && !shrinesToProcess.Contains(((Component)allAdvancedShrineControllers[num17]).gameObject)) { shrinesToProcess.Add(((Component)allAdvancedShrineControllers[num17]).gameObject); tk2dBaseSprite[] array = componentsInChildren2; foreach (tk2dBaseSprite sprite2 in array) { ExpandShaders.Instance.ApplyGlitchShader(sprite2, usesOverrideMaterial: true, glitchInterval2, dispProbability2, dispIntensity2, colorProbability2, colorIntensity2); } AkSoundEngine.PostEvent("Play_EX_CorruptedObjectTransform_01", ((Component)allAdvancedShrineControllers[num17]).gameObject); } else if (Object.op_Implicit((Object)(object)((Component)allAdvancedShrineControllers[num17]).gameObject.GetComponent()) && !shrinesToProcess.Contains(((Component)allAdvancedShrineControllers[num17]).gameObject)) { shrinesToProcess.Add(((Component)allAdvancedShrineControllers[num17]).gameObject); ExpandShaders.Instance.ApplyGlitchShader(((Component)allAdvancedShrineControllers[num17]).gameObject.GetComponent(), usesOverrideMaterial: true, glitchInterval2, dispProbability2, dispIntensity2, colorProbability2, colorIntensity2); AkSoundEngine.PostEvent("Play_EX_CorruptedObjectTransform_01", ((Component)allAdvancedShrineControllers[num17]).gameObject); } } } if (AllTables != null && AllTables.Length != 0) { for (int num19 = 0; num19 < AllTables.Length; num19++) { Vector2 val13 = TransformExtensions.PositionVector2(((BraveBehaviour)AllTables[num19]).transform); float num20 = Vector2.Distance(val13, lastPosition); bool flag8 = false; string name5 = ((Object)((Component)AllTables[num19]).gameObject).name; if (!((Object)(object)AllTables[num19] != (Object)null) || !Object.op_Implicit((Object)(object)((Component)AllTables[num19]).GetComponent()) || ((Object)AllTables[num19]).name.StartsWith("Corrupted") || Vector3Extensions.GetAbsoluteRoom(val13) == null || Vector3Extensions.GetAbsoluteRoom(val13) != m_targetRoom || flag8 || !(string.IsNullOrEmpty(name5) | !name5.StartsWith("Corrupted")) || !(num20 >= m_prevWaveDist - 0.25f) || !(num20 <= num6 + 0.25f) || !(Random.value <= 0.6f)) { continue; } if (!tablesToProcess.Contains(((Component)AllTables[num19]).gameObject)) { tablesToProcess.Add(((Component)AllTables[num19]).gameObject); } if (((Component)AllTables[num19]).gameObject.GetComponentsInChildren(true) != null) { tk2dBaseSprite[] componentsInChildren3 = ((Component)AllTables[num19]).gameObject.GetComponentsInChildren(true); if (componentsInChildren3.Length != 0) { tk2dBaseSprite[] array = componentsInChildren3; foreach (tk2dBaseSprite sprite3 in array) { ExpandShaders.Instance.ApplyGlitchShader(sprite3); } } } else { tk2dBaseSprite component4 = ((Component)AllTables[num19]).gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)component4)) { ExpandShaders.Instance.ApplyGlitchShader(component4); } } LootEngine.DoDefaultItemPoof(val13, false, true); AkSoundEngine.PostEvent("Play_EX_CorruptedObjectTransform_01", ((Component)AllTables[num19]).gameObject); } } if (ExpandStaticReferenceManager.AllBeholsterShrines != null && ExpandStaticReferenceManager.AllBeholsterShrines.Count > 0) { List allBeholsterShrines = ExpandStaticReferenceManager.AllBeholsterShrines; for (int num21 = 0; num21 < allBeholsterShrines.Count; num21++) { float glitchInterval3 = Random.Range(0.02f, 0.06f); float dispProbability3 = Random.Range(0.07f, 0.09f); float dispIntensity3 = Random.Range(0.085f, 0.2f); float colorProbability3 = Random.Range(0.04f, 0.15f); float colorIntensity3 = Random.Range(0.08f, 0.14f); string name6 = ((Object)((Component)ExpandStaticReferenceManager.AllBeholsterShrines[num21]).gameObject).name; float num22 = Vector2.Distance(TransformExtensions.PositionVector2(((BraveBehaviour)allBeholsterShrines[num21]).transform), lastPosition); if (false || !(string.IsNullOrEmpty(name6) | !name6.StartsWith("Corrupted")) || !(num22 >= m_prevWaveDist - 0.25f) || !(num22 <= num6 + 0.25f) || !((Object)(object)allBeholsterShrines[num21] != (Object)null) || ((DungeonPlaceableBehaviour)allBeholsterShrines[num21]).GetAbsoluteParentRoom() == null || ((DungeonPlaceableBehaviour)allBeholsterShrines[num21]).GetAbsoluteParentRoom() != m_targetRoom) { continue; } tk2dBaseSprite[] componentsInChildren4 = ((Component)allBeholsterShrines[num21]).gameObject.GetComponentsInChildren(true); if (componentsInChildren4 != null && !shrinesToProcess.Contains(((Component)allBeholsterShrines[num21]).gameObject)) { tk2dBaseSprite[] array = componentsInChildren4; foreach (tk2dBaseSprite sprite4 in array) { ExpandShaders.Instance.ApplyGlitchShader(sprite4, usesOverrideMaterial: true, glitchInterval3, dispProbability3, dispIntensity3, colorProbability3, colorIntensity3); } AkSoundEngine.PostEvent("Play_EX_CorruptedObjectTransform_01", ((Component)allBeholsterShrines[num21]).gameObject); shrinesToProcess.Add(((Component)allBeholsterShrines[num21]).gameObject); } else if (Object.op_Implicit((Object)(object)((Component)allBeholsterShrines[num21]).gameObject.GetComponent()) && !shrinesToProcess.Contains(((Component)allBeholsterShrines[num21]).gameObject)) { ExpandShaders.Instance.ApplyGlitchShader(((Component)allBeholsterShrines[num21]).gameObject.GetComponent(), usesOverrideMaterial: true, glitchInterval3, dispProbability3, dispIntensity3, colorProbability3, colorIntensity3); AkSoundEngine.PostEvent("Play_EX_CorruptedObjectTransform_01", ((Component)allBeholsterShrines[num21]).gameObject); shrinesToProcess.Add(((Component)allBeholsterShrines[num21]).gameObject); } } } if (ExpandStaticReferenceManager.AllMovingTraps.Count > 0) { for (int num23 = 0; num23 < ExpandStaticReferenceManager.AllMovingTraps.Count; num23++) { PathingTrapController val14 = ExpandStaticReferenceManager.AllMovingTraps[num23]; Vector2 val15 = TransformExtensions.PositionVector2(((BraveBehaviour)val14).transform); float num24 = Vector2.Distance(val15, lastPosition); if (false || !(num24 >= m_prevWaveDist - 0.25f) || !(num24 <= num6 + 0.25f) || !((Object)(object)val14 != (Object)null) || Vector3Extensions.GetAbsoluteRoom(val15) == null || Vector3Extensions.GetAbsoluteRoom(val15) != m_targetRoom) { continue; } tk2dSlicedSprite[] components = ((Component)val14).gameObject.GetComponents(); if (components != null) { tk2dSlicedSprite[] array2 = components; foreach (tk2dSlicedSprite sprite5 in array2) { float glitchInterval4 = Random.Range(0.02f, 0.06f); float dispProbability4 = Random.Range(0.07f, 0.09f); float dispIntensity4 = Random.Range(0.085f, 0.2f); float colorProbability4 = Random.Range(0.04f, 0.15f); float colorIntensity4 = Random.Range(0.08f, 0.14f); ExpandShaders.Instance.ApplyGlitchShader(sprite5, glitchInterval4, dispProbability4, dispIntensity4, colorProbability4, colorIntensity4); } } LootEngine.DoDefaultItemPoof(val15, false, true); AkSoundEngine.PostEvent("Play_EX_CorruptedObjectTransform_01", ((Component)val14).gameObject); if (!movableTrapsToProcess.Contains(((Component)val14).gameObject)) { movableTrapsToProcess.Add(((Component)val14).gameObject); } if (ExpandStaticReferenceManager.AllMovingTraps.Contains(val14)) { ExpandStaticReferenceManager.AllMovingTraps.Remove(val14); } } } if (ExpandStaticReferenceManager.AllConveyorBelts.Count > 0) { for (int num25 = 0; num25 < ExpandStaticReferenceManager.AllConveyorBelts.Count; num25++) { Vector2 val16 = TransformExtensions.PositionVector2(((BraveBehaviour)ExpandStaticReferenceManager.AllConveyorBelts[num25]).transform); float num26 = Vector2.Distance(val16, lastPosition); if (0 == 0 && num26 >= m_prevWaveDist - 0.25f && num26 <= num6 + 0.25f && (Object)(object)ExpandStaticReferenceManager.AllConveyorBelts[num25] != (Object)null && Vector3Extensions.GetAbsoluteRoom(val16) != null && Vector3Extensions.GetAbsoluteRoom(val16) == m_targetRoom) { ConveyorBelt val17 = ExpandStaticReferenceManager.AllConveyorBelts[num25]; AkSoundEngine.PostEvent("Play_EX_CorruptedObjectDestroyed_01", ((Component)val17).gameObject); if (ExpandStaticReferenceManager.AllConveyorBelts.Contains(val17)) { ExpandStaticReferenceManager.AllConveyorBelts.Remove(val17); } Object.Destroy((Object)(object)((Component)val17).gameObject); } } } if (StaticReferenceManager.AllForgeHammers.Count > 0) { for (int num27 = 0; num27 < StaticReferenceManager.AllForgeHammers.Count; num27++) { Vector2 val18 = TransformExtensions.PositionVector2(((Component)StaticReferenceManager.AllForgeHammers[num27]).gameObject.transform); float num28 = Vector2.Distance(val18, lastPosition); if (false || !(num28 >= m_prevWaveDist - 0.25f) || !(num28 <= num6 + 0.25f) || !((Object)(object)StaticReferenceManager.AllForgeHammers[num27] != (Object)null) || Vector3Extensions.GetAbsoluteRoom(val18) == null || Vector3Extensions.GetAbsoluteRoom(val18) != m_targetRoom) { continue; } ForgeHammerController val19 = StaticReferenceManager.AllForgeHammers[num27]; GameObject gameObject = ((Component)StaticReferenceManager.AllForgeHammers[num27]).gameObject; if (((BraveBehaviour)((BraveBehaviour)val19).sprite).renderer.enabled) { if (!hammersToProcess.Contains(((Component)val19).gameObject)) { hammersToProcess.Add(((Component)val19).gameObject); } float glitchInterval5 = Random.Range(0.02f, 0.06f); float dispProbability5 = Random.Range(0.07f, 0.09f); float dispIntensity5 = Random.Range(0.085f, 0.2f); float colorProbability5 = Random.Range(0.04f, 0.15f); float colorIntensity5 = Random.Range(0.08f, 0.14f); ExpandShaders.Instance.ApplyGlitchShader(((BraveBehaviour)val19).sprite, usesOverrideMaterial: true, glitchInterval5, dispProbability5, dispIntensity5, colorProbability5, colorIntensity5); AkSoundEngine.PostEvent("Play_EX_CorruptedObjectTransform_01", gameObject); } } } if (m_targetRoom.GetActiveEnemies((ActiveEnemyType)0) != null && m_targetRoom.GetActiveEnemies((ActiveEnemyType)0).Count != 0) { for (int num29 = 0; num29 < m_targetRoom.GetActiveEnemies((ActiveEnemyType)0).Count; num29++) { AIActor val20 = m_targetRoom.GetActiveEnemies((ActiveEnemyType)0)[num29]; bool flag9 = false; if ((Object)(object)val20 != (Object)null && !Object.op_Implicit((Object)(object)((Component)val20).gameObject.GetComponent()) && (string.IsNullOrEmpty(((GameActor)val20).OverrideDisplayName) | !((GameActor)val20).OverrideDisplayName.StartsWith("Corrupted")) && !((BraveBehaviour)val20).healthHaver.IsDead && !((BraveBehaviour)val20).healthHaver.IsBoss && ((BraveBehaviour)val20).healthHaver.IsVulnerable && !val20.IgnoreForRoomClear && !val20.IsMimicEnemy && val20.HasBeenEngaged && Object.op_Implicit((Object)(object)((BraveBehaviour)val20).specRigidbody) && ((BraveBehaviour)val20).specRigidbody.CollideWithOthers) { Vector2 unitCenter = ((BraveBehaviour)val20).specRigidbody.GetUnitCenter((ColliderType)2); float num30 = Vector2.Distance(unitCenter, lastPosition); if (flag9 || !(num30 >= m_prevWaveDist - 0.25f) || !(num30 <= num6 + 0.25f) || !((Object)(object)val20 != (Object)null) || string.IsNullOrEmpty(val20.EnemyGuid)) { continue; } if (Object.op_Implicit((Object)(object)((BraveBehaviour)val20).behaviorSpeculator)) { ((BraveBehaviour)val20).behaviorSpeculator.InterruptAndDisable(); if ((val20.EnemyGuid == "c0260c286c8d4538a697c5bf24976ccf") | (val20.EnemyGuid == "5f15093e6f684f4fb09d3e7e697216b4")) { ((Behaviour)((BraveBehaviour)val20).behaviorSpeculator).enabled = false; } else { Object.Destroy((Object)(object)((BraveBehaviour)val20).behaviorSpeculator); } if (Random.value <= 0.4f) { val20.ClearPath(); } } if (Object.op_Implicit((Object)(object)((BraveBehaviour)val20).aiShooter)) { ((BraveBehaviour)val20).aiShooter.ToggleGunAndHandRenderers(false, "CorruptionFX"); } if ((Object)(object)((Component)val20).gameObject.GetComponent() == (Object)null && (Object)(object)((Component)val20).gameObject.GetComponent() == (Object)null) { ((Component)val20).gameObject.AddComponent(); ExpandExplodeOnDeath component5 = ((Component)val20).gameObject.GetComponent(); if (val20.EnemyGuid != "98ea2fe181ab4323ab6e9981955a9bca" && val20.EnemyGuid != "21dd14e5ca2a4a388adab5b11b69a1e1" && val20.EnemyGuid != "ccf6d241dad64d989cbcaca2a8477f01") { component5.ExplosionNotGuranteed = true; } } if (Object.op_Implicit((Object)(object)((Component)val20).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)val20).gameObject.GetComponent()); ((BraveBehaviour)val20).healthHaver.minimumHealth = 0f; ((BraveBehaviour)val20).healthHaver.ForceSetCurrentHealth(15f); } if (Object.op_Implicit((Object)(object)((Component)val20).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)val20).gameObject.GetComponent()); ((BraveBehaviour)val20).healthHaver.minimumHealth = 0f; } if (Object.op_Implicit((Object)(object)((Component)val20).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)val20).gameObject.GetComponent()); ((BraveBehaviour)val20).healthHaver.minimumHealth = 0f; ((BraveBehaviour)val20).healthHaver.ForceSetCurrentHealth(25f); } if (Object.op_Implicit((Object)(object)((Component)val20).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)val20).gameObject.GetComponent()); ((BraveBehaviour)val20).healthHaver.minimumHealth = 0f; ((BraveBehaviour)val20).healthHaver.ForceSetCurrentHealth(18f); } if (Object.op_Implicit((Object)(object)((Component)val20).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)val20).gameObject.GetComponent()); ((BraveBehaviour)val20).healthHaver.minimumHealth = 0f; ((BraveBehaviour)val20).healthHaver.ForceSetCurrentHealth(30f); } if (Object.op_Implicit((Object)(object)((Component)val20).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)val20).gameObject.GetComponent()); ((BraveBehaviour)val20).healthHaver.minimumHealth = 0f; ((BraveBehaviour)val20).healthHaver.ForceSetCurrentHealth(30f); } if (Object.op_Implicit((Object)(object)((Component)val20).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)val20).gameObject.GetComponent()); } if (Object.op_Implicit((Object)(object)((Component)val20).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)val20).gameObject.GetComponent()); } if (val20.EnemyGuid == "21dd14e5ca2a4a388adab5b11b69a1e1") { if (((Component)val20).gameObject.GetComponentsInChildren(true) != null) { for (int num31 = 0; num31 < ((Component)val20).gameObject.GetComponentsInChildren(true).Length; num31++) { Object.Destroy((Object)(object)((Component)val20).gameObject.GetComponentsInChildren(true)[num31]); } } if (Object.op_Implicit((Object)(object)((Component)val20).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)val20).gameObject.GetComponent()); } ((BraveBehaviour)val20).healthHaver.minimumHealth = 0f; ((BraveBehaviour)val20).healthHaver.ForceSetCurrentHealth(35f); } List obj = new List { "383175a55879441d90933b5c4e60cf6f", "022d7c822bc146b58fe3b0287568aaa2", "c0260c286c8d4538a697c5bf24976ccf", "5f15093e6f684f4fb09d3e7e697216b4", "7b0b1b6d9ce7405b86b75ce648025dd6", "475c20c1fd474dfbad54954e7cba29c1" }; List list = new List { "9b2cf2949a894599917d4d391a0b7394", "3cadf10c489b461f9fb8814abc1a09c1", "9b4fb8a2a60a457f90dcf285d34143ac", "cd4a4b7f612a4ba9a720b9f97c52f38c", "9215d1a221904c7386b481a171e52859", "4db03291a12144d69fe940d5a01de376" }; if (!obj.Contains(val20.EnemyGuid)) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)val20).aiAnimator)) { Object.Destroy((Object)(object)((BraveBehaviour)val20).aiAnimator); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)val20).spriteAnimator)) { Object.Destroy((Object)(object)((BraveBehaviour)val20).spriteAnimator); } if (Object.op_Implicit((Object)(object)((Component)val20).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)val20).gameObject.GetComponent()); } ((Component)val20).gameObject.AddComponent(); tk2dSpriteAnimator component6 = ((Component)val20).gameObject.GetComponent(); component6.Library = null; component6.DefaultClipId = 0; component6.AdditionalCameraVisibilityRadius = 0f; component6.AnimateDuringBossIntros = false; component6.AlwaysIgnoreTimeScale = true; component6.ForceSetEveryFrame = false; component6.playAutomatically = false; component6.IsFrameBlendedAnimation = false; component6.clipTime = 0f; component6.deferNextStartClip = false; SpriteBuilder.AddAnimation(component6, ((BraveBehaviour)val20).sprite.Collection, new List { ((BraveBehaviour)val20).sprite.spriteId }, "DummyFrame", (WrapMode)2); } if (Object.op_Implicit((Object)(object)((Component)val20).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)val20).gameObject.GetComponent()); ((BraveBehaviour)val20).healthHaver.minimumHealth = 0f; ((BraveBehaviour)val20).healthHaver.ForceSetCurrentHealth(30f); } if (Object.op_Implicit((Object)(object)((Component)val20).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)val20).gameObject.GetComponent()); } val20.HitByEnemyBullets = true; val20.CollisionDamage = 0f; val20.AlwaysShowOffscreenArrow = true; ((BraveBehaviour)val20).healthHaver.IsVulnerable = true; ((BraveBehaviour)val20).healthHaver.PreventAllDamage = false; ((BraveBehaviour)val20).healthHaver.incorporealityOnDamage = false; if (list.Contains(val20.EnemyGuid)) { m_targetRoom.DeregisterEnemy(val20, false); val20.AlwaysShowOffscreenArrow = false; val20.IgnoreForRoomClear = true; } if (!string.IsNullOrEmpty(val20.GetActorName())) { ((GameActor)val20).OverrideDisplayName = "Corrupted " + val20.GetActorName(); } else { ((GameActor)val20).OverrideDisplayName = "Corrupted Enemy"; } if (Random.value <= 0.05f) { if (val20.AdditionalSafeItemDrops == null) { val20.AdditionalSafeItemDrops = new List(); } if (Random.value <= 0.1f) { val20.AdditionalSafeItemDrops.Add(PickupObjectDatabase.GetById(BraveUtility.RandomElement(RareItemDrops))); } else { val20.AdditionalSafeItemDrops.Add(PickupObjectDatabase.GetById(BraveUtility.RandomElement(CommonItemDrops))); } } if ((val20.EnemyGuid == "0239c0680f9f467dbe5c4aab7dd1eca6") | (val20.EnemyGuid == "e61cab252cfb435db9172adc96ded75f") | (val20.EnemyGuid == "1a4872dafdb34fd29fe8ac90bd2cea67")) { ExpandEnemyCorruptor.CorruptExistingEnemy(val20); } else { if ((Object)(object)((Component)val20).gameObject.GetComponent() != (Object)null) { Object.Destroy((Object)(object)((Component)val20).gameObject.GetComponent()); } if ((Object)(object)((Component)val20).GetComponent() == (Object)null && (Object)(object)((Component)val20).GetComponent() == (Object)null && Random.value <= 0.25f) { ((Component)val20).gameObject.AddComponent(); } } if (Object.op_Implicit((Object)(object)((BraveBehaviour)val20).sprite)) { ExpandShaders.Instance.ApplyGlitchShader(((BraveBehaviour)val20).sprite); } AkSoundEngine.PostEvent("Play_EX_CorruptedObjectTransform_01", ((Component)val20).gameObject); LootEngine.DoDefaultItemPoof(unitCenter, false, true); } else if ((Object)(object)val20 != (Object)null && !string.IsNullOrEmpty(val20.EnemyGuid) && (string.IsNullOrEmpty(((GameActor)val20).OverrideDisplayName) | !((GameActor)val20).OverrideDisplayName.StartsWith("Corrupted")) && !((BraveBehaviour)val20).healthHaver.IsDead && val20.IgnoreForRoomClear) { if (!(new List { "b5e699a0abb94666bda567ab23bd91c4", "d4dd2b2bbda64cc9bcec534b4e920518", "02a14dec58ab45fb8aacde7aacd25b01", "699cd24270af4cd183d671090d8323a1", "a446c626b56d4166915a4e29869737fd", "ba928393c8ed47819c2c5f593100a5bc", "88f037c3f93b4362a040a87b30770407", "33b212b856b74ff09252bf4f2e8b8c57", "3f2026dc3712490289c4658a2ba4a24b" }.Contains(val20.EnemyGuid) | val20.IsMimicEnemy) || !(val20.EnemyGuid != "479556d05c7c44f3b6abb3b2067fc778")) { continue; } Vector2 unitCenter2 = ((BraveBehaviour)val20).specRigidbody.GetUnitCenter((ColliderType)2); float num32 = Vector2.Distance(unitCenter2, lastPosition); if (flag9 || !(num32 >= m_prevWaveDist - 0.25f) || !(num32 <= num6 + 0.25f)) { continue; } if (!string.IsNullOrEmpty(val20.GetActorName())) { ((GameActor)val20).OverrideDisplayName = "Corrupted " + val20.GetActorName(); } else { ((GameActor)val20).OverrideDisplayName = "Corrupted Enemy"; } if (Object.op_Implicit((Object)(object)((Component)val20).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)val20).gameObject.GetComponent()); ((BraveBehaviour)val20).healthHaver.minimumHealth = 0f; ((BraveBehaviour)val20).healthHaver.ForceSetCurrentHealth(15f); } if (Object.op_Implicit((Object)(object)((Component)val20).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)val20).GetComponent()); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)val20).behaviorSpeculator)) { ((BraveBehaviour)val20).behaviorSpeculator.InterruptAndDisable(); Object.Destroy((Object)(object)((BraveBehaviour)val20).behaviorSpeculator); if (Random.value <= 0.4f) { val20.ClearPath(); } } if (Object.op_Implicit((Object)(object)((BraveBehaviour)val20).aiShooter)) { ((BraveBehaviour)val20).aiShooter.ToggleGunAndHandRenderers(false, "CorruptionFX"); } if (val20.EnemyGuid == "ba928393c8ed47819c2c5f593100a5bc" && Object.op_Implicit((Object)(object)((Component)val20).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)val20).gameObject.GetComponent()); } if (!Object.op_Implicit((Object)(object)((Component)val20).GetComponent())) { ((Component)val20).gameObject.AddComponent(); ExpandExplodeOnDeath component7 = ((Component)val20).gameObject.GetComponent(); if (!Object.op_Implicit((Object)(object)((Component)val20).gameObject.GetComponent()) && val20.EnemyGuid != "ba928393c8ed47819c2c5f593100a5bc") { component7.ExplosionNotGuranteed = true; component7.ExplosionOdds = 0f; } } if (Object.op_Implicit((Object)(object)((BraveBehaviour)val20).sprite)) { ExpandShaders.Instance.ApplyGlitchShader(((BraveBehaviour)val20).sprite); } if (Object.op_Implicit((Object)(object)((Component)val20).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)val20).gameObject.GetComponent()); } if (!new List { "383175a55879441d90933b5c4e60cf6f", "022d7c822bc146b58fe3b0287568aaa2", "c0260c286c8d4538a697c5bf24976ccf", "5f15093e6f684f4fb09d3e7e697216b4", "0108a031c74940739c56a22068c915b6" }.Contains(val20.EnemyGuid)) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)val20).aiAnimator)) { Object.Destroy((Object)(object)((BraveBehaviour)val20).aiAnimator); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)val20).spriteAnimator)) { Object.Destroy((Object)(object)((BraveBehaviour)val20).spriteAnimator); } ((Component)val20).gameObject.AddComponent(); tk2dSpriteAnimator component8 = ((Component)val20).gameObject.GetComponent(); component8.Library = null; component8.DefaultClipId = 0; component8.AdditionalCameraVisibilityRadius = 0f; component8.AnimateDuringBossIntros = false; component8.AlwaysIgnoreTimeScale = true; component8.ForceSetEveryFrame = false; component8.playAutomatically = false; component8.IsFrameBlendedAnimation = false; component8.clipTime = 0f; component8.deferNextStartClip = false; SpriteBuilder.AddAnimation(component8, ((BraveBehaviour)val20).sprite.Collection, new List { ((BraveBehaviour)val20).sprite.spriteId }, "DummyFrame", (WrapMode)2); } if (Object.op_Implicit((Object)(object)((Component)val20).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)val20).gameObject.GetComponent()); ((BraveBehaviour)val20).healthHaver.minimumHealth = 0f; ((BraveBehaviour)val20).healthHaver.ForceSetCurrentHealth(30f); } if (Object.op_Implicit((Object)(object)((Component)((BraveBehaviour)val20).gameActor).GetComponent())) { Object.Destroy((Object)(object)((Component)val20).gameObject.GetComponent()); } if ((val20.EnemyGuid == "33b212b856b74ff09252bf4f2e8b8c57") | (val20.EnemyGuid == "3f2026dc3712490289c4658a2ba4a24b") | (val20.EnemyGuid == "ba928393c8ed47819c2c5f593100a5bc")) { if (user.IsInCombat) { ((BraveBehaviour)val20).healthHaver.SetHealthMaximum(25f, (float?)null, false); } } else if (val20.EnemyGuid == "88f037c3f93b4362a040a87b30770407") { ((BraveBehaviour)val20).healthHaver.SetHealthMaximum(25f, (float?)null, false); } val20.HitByEnemyBullets = true; val20.CollisionDamage = 0f; ((BraveBehaviour)val20).healthHaver.IsVulnerable = true; ((BraveBehaviour)val20).healthHaver.PreventAllDamage = false; ((BraveBehaviour)val20).healthHaver.incorporealityOnDamage = false; LootEngine.DoDefaultItemPoof(unitCenter2, false, true); AkSoundEngine.PostEvent("Play_EX_CorruptedObjectTransform_01", ((Component)val20).gameObject); } else if (!flag9 && (Object)(object)val20 != (Object)null && !string.IsNullOrEmpty(val20.EnemyGuid) && !((BraveBehaviour)val20).healthHaver.IsDead && ((BraveBehaviour)val20).healthHaver.IsBoss && val20.HasBeenEngaged) { float num33 = Vector2.Distance(((BraveBehaviour)val20).specRigidbody.GetUnitCenter((ColliderType)2), lastPosition); if (!flag9 && num33 >= m_prevWaveDist - 0.25f && num33 <= num6 + 0.25f) { ((MonoBehaviour)GameManager.Instance).StartCoroutine(DelayedEnemyDamage(val20, 0.5f, 145f, null, (CoreDamageTypes)0, (DamageCategory)0)); } } } } m_prevWaveDist = num6; yield return null; } if (breakablesToProcess.Count > 0) { foreach (MinorBreakable item2 in breakablesToProcess) { if (Object.op_Implicit((Object)(object)item2)) { if (!string.IsNullOrEmpty(((Object)((Component)item2).gameObject).name)) { ((Object)((Component)item2).gameObject).name = "Corrupted " + ((Object)((Component)item2).gameObject).name; } else { ((Object)((Component)item2).gameObject).name = "Corrupted Object"; } item2.OnBreakContext = (Action)Delegate.Combine(item2.OnBreakContext, new Action(MaybeSpawnSomethingOnBreak)); } } } if (shrinesToProcess.Count > 0) { foreach (GameObject item3 in shrinesToProcess) { if (Object.op_Implicit((Object)(object)item3)) { AdvancedShrineController component9 = item3.GetComponent(); ShrineController component10 = item3.GetComponent(); ChallengeShrineController component11 = item3.GetComponent(); BeholsterShrineController component12 = item3.GetComponent(); RoomHandler absoluteRoom = Vector3Extensions.GetAbsoluteRoom(item3.transform.position); if (!string.IsNullOrEmpty(((Object)item3.gameObject).name)) { ((Object)item3.gameObject).name = "Corrupted " + ((Object)item3.gameObject).name; } else { ((Object)item3.gameObject).name = "Corrupted Shrine"; } if (Object.op_Implicit((Object)(object)component9) && absoluteRoom != null) { absoluteRoom.DeregisterInteractable((IPlayerInteractable)(object)component9); component9.GetRidOfMinimapIcon(); Object.Destroy((Object)(object)item3.GetComponent()); } if (Object.op_Implicit((Object)(object)component10)) { absoluteRoom.DeregisterInteractable((IPlayerInteractable)(object)component10); component10.GetRidOfMinimapIcon(); Object.Destroy((Object)(object)item3.GetComponent()); } if (Object.op_Implicit((Object)(object)component11) && absoluteRoom != null) { absoluteRoom.DeregisterInteractable((IPlayerInteractable)(object)component9); component11.GetRidOfMinimapIcon(); Object.Destroy((Object)(object)item3.GetComponent()); } if (Object.op_Implicit((Object)(object)component12)) { ExpandStaticReferenceManager.AllBeholsterShrines.Remove(component12); absoluteRoom.DeregisterInteractable((IPlayerInteractable)(object)component12); Object.Destroy((Object)(object)item3.GetComponent()); } if (Object.op_Implicit((Object)(object)item3.GetComponent())) { Object.Destroy((Object)(object)item3.GetComponent()); } ExpandUtility.GenerateHealthHaver(item3, 25f, disableAnimator: true, explodesOnDeath: true, (DeathType)1, flashesOnDamage: true, exploderSpawnsItem: true); } yield return null; } } if (npcsToProcess.Count > 0) { foreach (GameObject item4 in npcsToProcess) { RoomHandler absoluteRoom2 = Vector3Extensions.GetAbsoluteRoom(item4.transform.position); if (absoluteRoom2 != null) { TalkDoerLite component13 = item4.GetComponent(); if (Object.op_Implicit((Object)(object)component13)) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)component13).sprite) && Object.op_Implicit((Object)(object)((BraveBehaviour)component13).specRigidbody)) { if (absoluteRoom2 != null) { absoluteRoom2.DeregisterInteractable((IPlayerInteractable)(object)component13); } if ((Object)(object)((Component)component13).gameObject.GetComponent() != (Object)null && ((Behaviour)((Component)component13).gameObject.GetComponent()).enabled) { ((Behaviour)((Component)component13).gameObject.GetComponent()).enabled = false; } ((BraveBehaviour)component13).renderer.enabled = false; if (Object.op_Implicit((Object)(object)((BraveBehaviour)component13).specRigidbody)) { ((BraveBehaviour)component13).specRigidbody.CollideWithOthers = false; } if (SpriteOutlineManager.HasOutline(((BraveBehaviour)component13).sprite)) { SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)component13).sprite, false); } ((BraveBehaviour)((BraveBehaviour)component13).sprite).RegenerateCache(); _ = string.Empty; string text = (string.IsNullOrEmpty(((Object)((Component)component13).gameObject).name) ? "Corrupted NPC" : ("Corrupted NPC " + ((Object)((Component)component13).gameObject).name)); GameObject val21 = new GameObject(text); val21.transform.position = ((Component)component13).gameObject.transform.position; val21.transform.parent = m_targetRoom.hierarchyParent; val21.AddComponent(); tk2dSprite component14 = val21.GetComponent(); tk2dBaseSprite sprite6 = ((BraveBehaviour)component13).sprite; ExpandUtility.DuplicateSprite(component14, (tk2dSprite)(object)((sprite6 is tk2dSprite) ? sprite6 : null)); ((BraveBehaviour)component14).renderer.enabled = true; ((tk2dBaseSprite)component14).HeightOffGround = 0.5f; ExpandShaders.Instance.ApplyGlitchShader(component14); val21.AddComponent(); SpeculativeRigidbody component15 = val21.GetComponent(); if (Object.op_Implicit((Object)(object)((BraveBehaviour)component13).specRigidbody)) { ExpandUtility.DuplicateRigidBody(component15, ((BraveBehaviour)component13).specRigidbody); component15.CollideWithOthers = true; component15.Velocity = Vector2.zero; } GameObjectExtensions.SetLayerRecursively(val21, LayerMask.NameToLayer("FG_Critical")); ((tk2dBaseSprite)component14).UpdateZDepth(); ExpandUtility.GenerateHealthHaver(val21, 20f, disableAnimator: true, explodesOnDeath: true, (DeathType)1, flashesOnDamage: true, BraveUtility.RandomBool()); val21.GetComponent(); ExpandExplodeOnDeath component16 = val21.GetComponent(); if (Object.op_Implicit((Object)(object)component16)) { component16.isCorruptedNPC = true; } if (StaticReferenceManager.AllShops != null && StaticReferenceManager.AllShops.Count > 0) { foreach (BaseShopController allShop in StaticReferenceManager.AllShops) { if (Object.op_Implicit((Object)(object)((Component)allShop.shopkeepFSM).GetComponent()) && ((DungeonPlaceableBehaviour)allShop).GetAbsoluteParentRoom() != null && ((DungeonPlaceableBehaviour)allShop).GetAbsoluteParentRoom() == absoluteRoom2 && Object.op_Implicit((Object)(object)((Component)allShop.shopkeepFSM).GetComponent()) && (Object)(object)((Component)allShop.shopkeepFSM).GetComponent() == (Object)(object)component13) { if (Object.op_Implicit((Object)(object)component16)) { component16.NPCShop = allShop; } break; } } } } else { component13.SpeaksGleepGlorpenese = true; } } } yield return null; } } if (movableTrapsToProcess.Count > 0) { for (int i = 0; i < movableTrapsToProcess.Count; i++) { if (Object.op_Implicit((Object)(object)movableTrapsToProcess[i]) && Object.op_Implicit((Object)(object)movableTrapsToProcess[i].GetComponent())) { movableTrapsToProcess[i].GetComponent().Velocity = Vector2.zero; GameObject val22 = new GameObject("Corrupted Trap" + Random.Range(100, 999)); val22.transform.position = movableTrapsToProcess[i].transform.position; val22.transform.parent = m_targetRoom.hierarchyParent; tk2dSlicedSprite[] components2 = movableTrapsToProcess[i].GetComponents(); if (components2 != null) { tk2dSlicedSprite[] array2 = components2; foreach (tk2dSlicedSprite sourceSprite in array2) { val22.AddComponent(); tk2dSlicedSprite component17 = val22.GetComponent(); ExpandUtility.DuplicateSlicedSprite(component17, sourceSprite); float glitchInterval6 = Random.Range(0.02f, 0.06f); float dispProbability6 = Random.Range(0.07f, 0.09f); float dispIntensity6 = Random.Range(0.085f, 0.2f); float colorProbability6 = Random.Range(0.04f, 0.15f); float colorIntensity6 = Random.Range(0.08f, 0.14f); ExpandShaders.Instance.ApplyGlitchShader(component17, glitchInterval6, dispProbability6, dispIntensity6, colorProbability6, colorIntensity6); } } val22.AddComponent(); ExpandUtility.DuplicateRigidBody(val22.GetComponent(), movableTrapsToProcess[i].GetComponent()); ExpandUtility.GenerateHealthHaver(val22, 35f, disableAnimator: true, explodesOnDeath: true, (DeathType)1); Object.Destroy((Object)(object)movableTrapsToProcess[i].gameObject); } yield return null; } } if (hammersToProcess.Count > 0) { foreach (GameObject item5 in hammersToProcess) { ForgeHammerController component18 = item5.GetComponent(); if (Object.op_Implicit((Object)(object)component18) && Object.op_Implicit((Object)(object)((BraveBehaviour)component18).sprite) && ((BraveBehaviour)((BraveBehaviour)component18).sprite).renderer.enabled) { tk2dBaseSprite sprite7 = ((BraveBehaviour)component18).sprite; tk2dSprite val23 = (tk2dSprite)(object)((sprite7 is tk2dSprite) ? sprite7 : null); if (Object.op_Implicit((Object)(object)val23) && Object.op_Implicit((Object)(object)((BraveBehaviour)component18).specRigidbody)) { float glitchInterval7 = Random.Range(0.02f, 0.06f); float dispProbability7 = Random.Range(0.07f, 0.09f); float dispIntensity7 = Random.Range(0.085f, 0.2f); float colorProbability7 = Random.Range(0.04f, 0.15f); float colorIntensity7 = Random.Range(0.08f, 0.14f); ((BraveBehaviour)component18).renderer.enabled = false; GameObject val24 = new GameObject("Corrupted Dead Blow " + Random.Range(100, 999)) { layer = item5.layer }; val24.transform.position = item5.transform.position; val24.transform.parent = m_targetRoom.hierarchyParent; val24.AddComponent(); val24.AddComponent(); tk2dSprite component19 = val24.GetComponent(); SpeculativeRigidbody component20 = val24.GetComponent(); ExpandUtility.DuplicateSprite(component19, val23); ExpandUtility.DuplicateRigidBody(component20, ((BraveBehaviour)component18).specRigidbody); ((Behaviour)component20).enabled = true; ((BraveBehaviour)component19).renderer.enabled = true; ExpandShaders.Instance.ApplyGlitchShader((tk2dBaseSprite)(object)component19, usesOverrideMaterial: true, glitchInterval7, dispProbability7, dispIntensity7, colorProbability7, colorIntensity7); PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(component20, (int?)null, false); ExpandUtility.GenerateHealthHaver(val24, 30f, disableAnimator: true, explodesOnDeath: true, (DeathType)1); component18.Deactivate(); } } else if (Object.op_Implicit((Object)(object)component18)) { component18.Deactivate(); } } } if (tablesToProcess.Count > 0) { foreach (GameObject item6 in tablesToProcess) { if (Object.op_Implicit((Object)(object)item6)) { if (!string.IsNullOrEmpty(((Object)item6.gameObject).name)) { ((Object)item6.gameObject).name = "Corrupted " + ((Object)item6.gameObject).name; } else { ((Object)item6.gameObject).name = "Corrupted Table"; } if (Object.op_Implicit((Object)(object)item6.GetComponent()) && Random.value <= 0.3f) { m_targetRoom.DeregisterInteractable((IPlayerInteractable)(object)item6.GetComponent()); } item6.AddComponent(); m_targetRoom.RegisterInteractable((IPlayerInteractable)(object)item6.GetComponent()); } } } movementDirection = default(Vector3); } private void TriggerBlank(Vector2 center, PlayerController Owner = null, float overrideRadius = 40f, float overrideTimeAtMaxRadius = 0.5f, bool silent = false, bool breaksWalls = true, bool breaksObjects = true, float overrideForce = -1f, bool disableDamage = false) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) GameObject val = (silent ? ((GameObject)null) : ((GameObject)BraveResources.Load("Global VFX/BlankVFX", ".prefab"))); if (!silent) { AkSoundEngine.PostEvent("Play_OBJ_silenceblank_use_01", ((Component)this).gameObject); AkSoundEngine.PostEvent("Stop_ENM_attack_cancel_01", ((Component)this).gameObject); } SilencerInstance obj = new GameObject("silencer").AddComponent(); obj.ForceNoDamage = disableDamage; obj.TriggerSilencer(center, 50f, overrideRadius, val, (!silent) ? 0.15f : 0f, (!silent) ? 0.2f : 0f, (float)((!silent) ? 50 : 0), (float)((!silent) ? 10 : 0), silent ? 0f : ((overrideForce < 0f) ? 140f : overrideForce), (float)(breaksObjects ? ((!silent) ? 15 : 5) : 0), overrideTimeAtMaxRadius, Owner, breaksWalls, false); if (Object.op_Implicit((Object)(object)Owner)) { Owner.DoVibration((Time)10, (Strength)20); } } private IEnumerator DelayedUsableTimer(float delay) { yield return (object)new WaitForSeconds(delay); CurrentlyInUse = false; } private IEnumerator DelayedEnemyDamage(AIActor targetEnemy, float delay, float DamageAmount, Vector2? DamageDirection = null, CoreDamageTypes DamageType = 0, DamageCategory damageCategory = 0, bool ignoreInvulnerablity = false, bool ignoreDamageCap = false) { //IL_0024: 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_002c: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) yield return (object)new WaitForSeconds(delay); Vector2 val = Vector2.zero; if (DamageDirection.HasValue) { val = DamageDirection.Value; } ((BraveBehaviour)targetEnemy).healthHaver.ApplyDamage(DamageAmount, val, "DelayedCorruptionBombDamage", DamageType, damageCategory, ignoreInvulnerablity, (PixelCollider)null, ignoreDamageCap); } private void AnyDamageDealt(float damageAmount, bool fatal, HealthHaver target) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) _ = ((BraveBehaviour)target).transform.position; AIActor component = ((Component)target).GetComponent(); if (Object.op_Implicit((Object)(object)component) && damageAmount >= 3f && !fatal) { if (!string.IsNullOrEmpty(((GameActor)component).OverrideDisplayName) && ((GameActor)component).OverrideDisplayName.StartsWith("Corrupted")) { AkSoundEngine.PostEvent("Play_EX_CorruptedObjectDamage_01", ((Component)target).gameObject); } } else if (Object.op_Implicit((Object)(object)component) && fatal) { if (!string.IsNullOrEmpty(((GameActor)component).OverrideDisplayName) && ((GameActor)component).OverrideDisplayName.StartsWith("Corrupted")) { AkSoundEngine.PostEvent("Play_EX_CorruptedObjectDestroyed_01", ((Component)target).gameObject); } } else if (Object.op_Implicit((Object)(object)((Component)target).GetComponent()) && !Object.op_Implicit((Object)(object)component) && !fatal && !string.IsNullOrEmpty(((Object)((Component)target).gameObject).name) && ((Object)((Component)target).gameObject).name.StartsWith("Corrupted")) { AkSoundEngine.PostEvent("Play_EX_CorruptedObjectDamage_01", ((Component)target).gameObject); } } private void MaybeSpawnSomethingOnBreak(MinorBreakable breakable) { //IL_0001: 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_0047: 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_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) if (Vector3Extensions.GetAbsoluteRoom(breakable.CenterPoint) != null && Random.value <= 0.6f) { if (Random.value <= 0.65f) { RoomHandler absoluteRoom = Vector3Extensions.GetAbsoluteRoom(breakable.CenterPoint); AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(BraveUtility.RandomElement(ExpandLists.PotCritterGUIDList)), breakable.CenterPoint, absoluteRoom, true, (AwakenAnimationType)0, true); } else if (Random.value <= 0.1f) { LootEngine.SpawnItem(((Component)PickupObjectDatabase.GetById(BraveUtility.RandomElement(new List { 74, 73, 127 }))).gameObject, Vector2.op_Implicit(breakable.CenterPoint), Vector2.zero, 0f, true, false, false); } else { LootEngine.SpawnItem(((Component)PickupObjectDatabase.GetById(BraveUtility.RandomElement(new List { 68, 70 }))).gameObject, Vector2.op_Implicit(breakable.CenterPoint), Vector2.zero, 0f, true, false, false); } } } private void GenerateCorruptedTileAtPositionMaybe(Dungeon dungeon, RoomHandler parentRoom, IntVector2 position, float CorruptionOdds = 0.5f, bool AllowGlitchShader = true, float GlitchShaderOdds = 0.2f) { //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Invalid comparison between Unknown and I4 //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Invalid comparison between Unknown and I4 //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Invalid comparison between Unknown and I4 //IL_034b: Unknown result type (might be due to invalid IL or missing references) //IL_0351: Unknown result type (might be due to invalid IL or missing references) //IL_0362: Unknown result type (might be due to invalid IL or missing references) //IL_0368: Unknown result type (might be due to invalid IL or missing references) //IL_037a: Unknown result type (might be due to invalid IL or missing references) //IL_0380: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Invalid comparison between Unknown and I4 //IL_03b1: Unknown result type (might be due to invalid IL or missing references) //IL_03b6: Unknown result type (might be due to invalid IL or missing references) //IL_03c0: Expected O, but got Unknown //IL_03c9: Unknown result type (might be due to invalid IL or missing references) //IL_03ce: 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_00da: Invalid comparison between Unknown and I4 //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Invalid comparison between Unknown and I4 //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Invalid comparison between Unknown and I4 //IL_0464: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Invalid comparison between Unknown and I4 //IL_048a: Unknown result type (might be due to invalid IL or missing references) //IL_0480: 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_0176: Invalid comparison between Unknown and I4 //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Invalid comparison between Unknown and I4 //IL_0523: Unknown result type (might be due to invalid IL or missing references) //IL_0575: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Invalid comparison between Unknown and I4 //IL_059b: Unknown result type (might be due to invalid IL or missing references) //IL_05a1: Unknown result type (might be due to invalid IL or missing references) //IL_05b4: Unknown result type (might be due to invalid IL or missing references) //IL_05ba: Unknown result type (might be due to invalid IL or missing references) if (((Object)(object)dungeon == (Object)null || parentRoom == null) | (Random.value > CorruptionOdds)) { return; } tk2dSpriteCollectionData dungeonCollection = dungeon.tileIndices.dungeonCollection; List list = new List(); List list2 = new List(); List list3 = new List(); if ((int)dungeon.tileIndices.tilesetId == 2) { list = ExpandLists.CastleWallIDs; list2 = ExpandLists.CastleFloorIDs; list3 = ExpandLists.CastleMiscIDs; } else if ((int)dungeon.tileIndices.tilesetId == 1) { list = ExpandLists.GungeonWallIDs; list2 = ExpandLists.GungeonFloorIDs; list3 = ExpandLists.GungeonMiscIDs; } else if ((int)dungeon.tileIndices.tilesetId == 16) { list = ExpandLists.MinesWallIDs; list2 = ExpandLists.MinesFloorIDs; list3 = ExpandLists.MinesMiscIDs; } else if ((int)dungeon.tileIndices.tilesetId == 32) { list = ExpandLists.HollowsWallIDs; list2 = ExpandLists.HollowsFloorIDs; list3 = ExpandLists.HollowsMiscIDs; } else if ((int)dungeon.tileIndices.tilesetId == 64) { list = ExpandLists.ForgeWallIDs; list2 = ExpandLists.ForgeFloorIDs; list3 = ExpandLists.ForgeMiscIDs; } else if ((int)dungeon.tileIndices.tilesetId == 128) { list = ExpandLists.BulletHell_WallIDs; list2 = ExpandLists.BulletHell_FloorIDs; list3 = ExpandLists.BulletHell_MiscIDs; } else if ((int)dungeon.tileIndices.tilesetId == 4) { list = ExpandLists.SewerWallIDs; list2 = ExpandLists.SewerFloorIDs; list3 = ExpandLists.SewerMiscIDs; } else if ((int)dungeon.tileIndices.tilesetId == 8) { list = ExpandLists.AbbeyWallIDs; list2 = ExpandLists.AbbeyFloorIDs; list3 = ExpandLists.AbbeyMiscIDs; } else if (((int)dungeon.tileIndices.tilesetId == 32768) | ((int)dungeon.tileIndices.tilesetId == 8192)) { list = ExpandLists.RatDenWallIDs; list2 = ExpandLists.RatDenFloorIDs; list3 = ExpandLists.RatDenMiscIDs; } else if ((int)dungeon.tileIndices.tilesetId == 2048) { foreach (int nakatomi_OfficeWallID in ExpandLists.Nakatomi_OfficeWallIDs) { list.Add(nakatomi_OfficeWallID); } foreach (int nakatomi_OfficeFloorID in ExpandLists.Nakatomi_OfficeFloorIDs) { list2.Add(nakatomi_OfficeFloorID); } foreach (int nakatomi_OfficeMiscID in ExpandLists.Nakatomi_OfficeMiscIDs) { list3.Add(nakatomi_OfficeMiscID); } foreach (int nakatomi_FutureWallID in ExpandLists.Nakatomi_FutureWallIDs) { list.Add(nakatomi_FutureWallID + 704); } foreach (int nakatomi_FutureFloorID in ExpandLists.Nakatomi_FutureFloorIDs) { list2.Add(nakatomi_FutureFloorID + 704); } foreach (int nakatomi_FutureMiscID in ExpandLists.Nakatomi_FutureMiscIDs) { list3.Add(nakatomi_FutureMiscID + 704); } } else { dungeonCollection = DungeonDatabase.GetOrLoadByName("Base_Gungeon").tileIndices.dungeonCollection; list = ExpandLists.GungeonWallIDs; list2 = ExpandLists.GungeonFloorIDs; list3 = ExpandLists.GungeonMiscIDs; } bool flag = false; if (dungeon.data.isWall(position.x, position.y) | dungeon.data.isAnyFaceWall(position.x, position.y) | dungeon.data.isWall(position.x, position.y - 1)) { flag = true; } GameObject val = new GameObject("GlitchTile_" + Random.Range(1000000, 9999999)) { layer = 22 }; val.transform.position = Vector2.op_Implicit(((IntVector2)(ref position)).ToVector2()); val.transform.parent = parentRoom.hierarchyParent; List list4 = new List(); int num = Random.Range(1, 3); if (num == 1) { list4 = BraveUtility.Shuffle(list); } if (num == 2) { list4 = BraveUtility.Shuffle(list2); } if (num == 3) { list4 = BraveUtility.Shuffle(list3); } val.AddComponent(); tk2dSprite component = val.GetComponent(); ((tk2dBaseSprite)component).Collection = dungeonCollection; ((tk2dBaseSprite)component).SetSprite(((tk2dBaseSprite)component).Collection, BraveUtility.RandomElement(list4)); ((tk2dBaseSprite)component).ignoresTiltworldDepth = false; ((tk2dBaseSprite)component).depthUsesTrimmedBounds = false; ((tk2dBaseSprite)component).allowDefaultLayer = false; ((tk2dBaseSprite)component).OverrideMaterialMode = (SpriteMaterialOverrideMode)0; ((tk2dBaseSprite)component).independentOrientation = false; ((tk2dBaseSprite)component).hasOffScreenCachedUpdate = false; if (flag) { ((tk2dBaseSprite)component).CachedPerpState = (PerpendicularState)1; } else { ((tk2dBaseSprite)component).CachedPerpState = (PerpendicularState)2; } ((tk2dBaseSprite)component).SortingOrder = 2; ((tk2dBaseSprite)component).IsBraveOutlineSprite = false; ((tk2dBaseSprite)component).IsZDepthDirty = false; component.ApplyEmissivePropertyBlock = false; component.GenerateUV2 = false; component.LockUV2OnFrameOne = false; component.StaticPositions = false; val.AddComponent(); DebrisObject component2 = val.GetComponent(); component2.angularVelocity = 0f; component2.angularVelocityVariance = 0f; component2.animatePitFall = false; component2.bounceCount = 0; component2.breakOnFallChance = 0f; component2.breaksOnFall = false; component2.canRotate = false; component2.changesCollisionLayer = false; component2.collisionStopsBullets = false; component2.followupBehavior = (DebrisFollowupAction)0; component2.IsAccurateDebris = true; component2.IsCorpse = false; component2.lifespanMax = 1200f; component2.lifespanMin = 1100f; component2.motionMultiplier = 0f; component2.pitFallSplash = false; component2.playAnimationOnTrigger = false; component2.PreventAbsorption = true; component2.PreventFallingInPits = true; ((EphemeralObject)component2).Priority = (EphemeralPriority)4; component2.shouldUseSRBMotion = false; component2.usesDirectionalFallAnimations = false; component2.usesLifespan = true; if (flag) { if (dungeon.data.isFaceWallLower(position.x, position.y) && !dungeon.data.isWall(position.x, position.y - 1)) { DepthLookupManager.ProcessRenderer(((BraveBehaviour)component).renderer, (GungeonSortingLayer)0); ((tk2dBaseSprite)component).IsPerpendicular = false; ((tk2dBaseSprite)component).HeightOffGround = 0f; ((tk2dBaseSprite)component).UpdateZDepth(); } else { ((tk2dBaseSprite)component).HeightOffGround = 3f; ((tk2dBaseSprite)component).UpdateZDepth(); } GameObjectExtensions.SetLayerRecursively(val, LayerMask.NameToLayer("FG_Critical")); } else { DepthLookupManager.ProcessRenderer(((BraveBehaviour)component).renderer, (GungeonSortingLayer)0); GameObjectExtensions.SetLayerRecursively(val, LayerMask.NameToLayer("BG_Critical")); ((tk2dBaseSprite)component).IsPerpendicular = false; ((tk2dBaseSprite)component).HeightOffGround = -1.7f; ((tk2dBaseSprite)component).SortingOrder = 2; ((tk2dBaseSprite)component).UpdateZDepth(); } if (AllowGlitchShader && Random.value <= GlitchShaderOdds) { float glitchInterval = Random.Range(0.02f, 0.06f); float dispProbability = Random.Range(0.07f, 0.09f); float dispIntensity = Random.Range(0.085f, 0.2f); float colorProbability = Random.Range(0.04f, 0.15f); float colorIntensity = Random.Range(0.08f, 0.14f); ExpandShaders.Instance.ApplyGlitchShader((tk2dBaseSprite)(object)component, usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); } } } public static class AnimateProjectileTools { public static void AddMuzzle(this Gun gun) { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Expected O, but got Unknown if (!Object.op_Implicit((Object)(object)gun.muzzleOffset)) { GameObject val = new GameObject(); val.transform.parent = ((BraveBehaviour)gun).transform; gun.muzzleOffset = val.transform; } } public static List ConstructListOfSameValues(T value, int length) { List list = new List(); for (int i = 0; i < length; i++) { list.Add(value); } return list; } public static tk2dSpriteDefinition CopyDefinitionFrom(this tk2dSpriteDefinition other) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: 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_0044: 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_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: 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_00a9: 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_00b3: 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_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: 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_010c: Expected O, but got Unknown //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Expected O, but got Unknown //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0154: 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_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01dd: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Unknown result type (might be due to invalid IL or missing references) //IL_0223: Unknown result type (might be due to invalid IL or missing references) //IL_0228: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0267: Unknown result type (might be due to invalid IL or missing references) //IL_0268: Unknown result type (might be due to invalid IL or missing references) //IL_026d: Unknown result type (might be due to invalid IL or missing references) //IL_0279: Unknown result type (might be due to invalid IL or missing references) //IL_0285: Unknown result type (might be due to invalid IL or missing references) //IL_0291: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Unknown result type (might be due to invalid IL or missing references) //IL_02a9: Unknown result type (might be due to invalid IL or missing references) //IL_02ac: Unknown result type (might be due to invalid IL or missing references) //IL_02d6: Unknown result type (might be due to invalid IL or missing references) //IL_02d8: Unknown result type (might be due to invalid IL or missing references) //IL_02dd: Unknown result type (might be due to invalid IL or missing references) //IL_02e0: Unknown result type (might be due to invalid IL or missing references) //IL_031c: Unknown result type (might be due to invalid IL or missing references) //IL_031d: Unknown result type (might be due to invalid IL or missing references) //IL_0322: Unknown result type (might be due to invalid IL or missing references) //IL_0325: Unknown result type (might be due to invalid IL or missing references) //IL_0361: Unknown result type (might be due to invalid IL or missing references) //IL_0362: Unknown result type (might be due to invalid IL or missing references) //IL_0368: Expected O, but got Unknown //IL_037f: Unknown result type (might be due to invalid IL or missing references) //IL_0384: Unknown result type (might be due to invalid IL or missing references) //IL_0389: 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_039f: Unknown result type (might be due to invalid IL or missing references) //IL_03ab: Unknown result type (might be due to invalid IL or missing references) //IL_03e3: Unknown result type (might be due to invalid IL or missing references) //IL_03e8: Unknown result type (might be due to invalid IL or missing references) //IL_03ed: Unknown result type (might be due to invalid IL or missing references) //IL_03f5: Unknown result type (might be due to invalid IL or missing references) //IL_0403: Unknown result type (might be due to invalid IL or missing references) //IL_0411: Unknown result type (might be due to invalid IL or missing references) //IL_041d: Unknown result type (might be due to invalid IL or missing references) tk2dSpriteDefinition val = new tk2dSpriteDefinition { boundsDataCenter = new Vector3 { x = other.boundsDataCenter.x, y = other.boundsDataCenter.y, z = other.boundsDataCenter.z }, boundsDataExtents = new Vector3 { x = other.boundsDataExtents.x, y = other.boundsDataExtents.y, z = other.boundsDataExtents.z }, colliderConvex = other.colliderConvex, colliderSmoothSphereCollisions = other.colliderSmoothSphereCollisions, colliderType = other.colliderType, colliderVertices = other.colliderVertices, collisionLayer = other.collisionLayer, complexGeometry = other.complexGeometry, extractRegion = other.extractRegion, flipped = other.flipped, indices = other.indices, material = new Material(other.material), materialId = other.materialId, materialInst = new Material(other.materialInst), metadata = other.metadata, name = other.name, normals = other.normals, physicsEngine = other.physicsEngine, position0 = new Vector3 { x = other.position0.x, y = other.position0.y, z = other.position0.z }, position1 = new Vector3 { x = other.position1.x, y = other.position1.y, z = other.position1.z }, position2 = new Vector3 { x = other.position2.x, y = other.position2.y, z = other.position2.z }, position3 = new Vector3 { x = other.position3.x, y = other.position3.y, z = other.position3.z }, regionH = other.regionH, regionW = other.regionW, regionX = other.regionX, regionY = other.regionY, tangents = other.tangents, texelSize = new Vector2 { x = other.texelSize.x, y = other.texelSize.y }, untrimmedBoundsDataCenter = new Vector3 { x = other.untrimmedBoundsDataCenter.x, y = other.untrimmedBoundsDataCenter.y, z = other.untrimmedBoundsDataCenter.z }, untrimmedBoundsDataExtents = new Vector3 { x = other.untrimmedBoundsDataExtents.x, y = other.untrimmedBoundsDataExtents.y, z = other.untrimmedBoundsDataExtents.z } }; List list = new List(); Vector2[] uvs = other.uvs; foreach (Vector2 val2 in uvs) { list.Add(new Vector2 { x = val2.x, y = val2.y }); } val.uvs = list.ToArray(); List list2 = new List(); Vector3[] colliderVertices = other.colliderVertices; foreach (Vector3 val3 in colliderVertices) { list2.Add(new Vector3 { x = val3.x, y = val3.y, z = val3.z }); } val.colliderVertices = list2.ToArray(); return val; } public static tk2dSpriteDefinition SetProjectileSpriteRight2(this Projectile proj, string name, int pixelWidth, int pixelHeight, bool lightened = true, Anchor anchor = 0, int? overrideColliderPixelWidth = null, int? overrideColliderPixelHeight = null, bool anchorChangesCollider = true, bool fixesScale = false, int? overrideColliderOffsetX = null, int? overrideColliderOffsetY = null, Projectile overrideProjectileToCopyFrom = null) { //IL_0041: 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_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) try { ETGMod.GetAnySprite((BraveBehaviour)(object)proj).spriteId = Databases.Items.ProjectileCollection.inst.GetSpriteIdByName(name); tk2dSpriteDefinition val = SetupDefinitionForProjectileSprite(name, ETGMod.GetAnySprite((BraveBehaviour)(object)proj).spriteId, pixelWidth, pixelHeight, lightened, overrideColliderPixelWidth, overrideColliderPixelHeight, overrideColliderOffsetX, overrideColliderOffsetY, overrideProjectileToCopyFrom); val.ConstructOffsetsFromAnchor(anchor, Vector2.op_Implicit(val.position3), fixesScale, anchorChangesCollider); ETGMod.GetAnySprite((BraveBehaviour)(object)proj).scale = new Vector3(1f, 1f, 1f); ((BraveBehaviour)proj).transform.localScale = new Vector3(1f, 1f, 1f); ((BraveBehaviour)ETGMod.GetAnySprite((BraveBehaviour)(object)proj)).transform.localScale = new Vector3(1f, 1f, 1f); proj.AdditionalScaleMultiplier = 1f; return val; } catch (Exception ex) { ETGModConsole.Log((object)"Ooops! Seems like something got very, Very, VERY wrong. Here's the exception:", false); ETGModConsole.Log((object)ex.ToString(), false); return null; } } public static tk2dSpriteDefinition SetupDefinitionForProjectileSprite(string name, int id, int pixelWidth, int pixelHeight, bool lightened = true, int? overrideColliderPixelWidth = null, int? overrideColliderPixelHeight = null, int? overrideColliderOffsetX = null, int? overrideColliderOffsetY = null, Projectile overrideProjectileToCopyFrom = null) { //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0111: 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_0130: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0154: 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_016f: Unknown result type (might be due to invalid IL or missing references) //IL_0174: 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_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01f0: Unknown result type (might be due to invalid IL or missing references) //IL_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Unknown result type (might be due to invalid IL or missing references) //IL_0215: Unknown result type (might be due to invalid IL or missing references) if (!overrideColliderPixelWidth.HasValue) { overrideColliderPixelWidth = pixelWidth; } if (!overrideColliderPixelHeight.HasValue) { overrideColliderPixelHeight = pixelHeight; } if (!overrideColliderOffsetX.HasValue) { overrideColliderOffsetX = 0; } if (!overrideColliderOffsetY.HasValue) { overrideColliderOffsetY = 0; } float num = (float)pixelWidth / 16f; float num2 = (float)pixelHeight / 16f; float num3 = (float)overrideColliderPixelWidth.Value / 16f; float num4 = (float)overrideColliderPixelHeight.Value / 16f; float num5 = (float)overrideColliderOffsetX.Value / 16f; float num6 = (float)overrideColliderOffsetY.Value / 16f; tk2dSpriteDefinition val = Databases.Items.ProjectileCollection.inst.spriteDefinitions[ETGMod.GetAnySprite((BraveBehaviour)(object)(overrideProjectileToCopyFrom ?? ((Gun)/*isinst with value type is only supported in some contexts*/).DefaultModule.projectiles[0])).spriteId].CopyDefinitionFrom(); val.boundsDataCenter = new Vector3(num / 2f, num2 / 2f, 0f); val.boundsDataExtents = new Vector3(num, num2, 0f); val.untrimmedBoundsDataCenter = new Vector3(num / 2f, num2 / 2f, 0f); val.untrimmedBoundsDataExtents = new Vector3(num, num2, 0f); val.texelSize = new Vector2(0.0625f, 0.0625f); val.position0 = new Vector3(0f, 0f, 0f); val.position1 = new Vector3(0f + num, 0f, 0f); val.position2 = new Vector3(0f, 0f + num2, 0f); val.position3 = new Vector3(0f + num, 0f + num2, 0f); val.colliderVertices = (Vector3[])(object)new Vector3[2]; val.colliderVertices[0] = new Vector3(num5, num6, 0f); val.colliderVertices[1] = new Vector3(num3 / 2f, num4 / 2f); val.name = name; Databases.Items.ProjectileCollection.inst.spriteDefinitions[id] = val; return val; } public static void AnimateProjectile(this Projectile proj, List names, int fps, bool loops, List pixelSizes, List lighteneds, List anchors, List anchorsChangeColliders, List fixesScales, List manualOffsets, List overrideColliderPixelSizes, List overrideColliderOffsets, List overrideProjectilesToCopyFrom) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Expected O, but got Unknown //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_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Expected O, but got Unknown //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: 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_023b: 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_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_0190: 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_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_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_01d0: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: Unknown result type (might be due to invalid IL or missing references) //IL_01e9: Unknown result type (might be due to invalid IL or missing references) //IL_01f1: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_01fd: Unknown result type (might be due to invalid IL or missing references) //IL_0202: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) tk2dSpriteAnimationClip val = new tk2dSpriteAnimationClip(); val.name = "idle"; val.fps = fps; List list = new List(); for (int i = 0; i < names.Count; i++) { string text = names[i]; IntVector2 val2 = pixelSizes[i]; IntVector2? val3 = overrideColliderPixelSizes[i]; IntVector2? val4 = overrideColliderOffsets[i]; Vector3? val5 = manualOffsets[i]; bool changesCollider = anchorsChangeColliders[i]; bool fixesScale = fixesScales[i]; if (!val5.HasValue) { val5 = Vector2.op_Implicit(Vector2.zero); } Anchor anchor = anchors[i]; bool lightened = lighteneds[i]; Projectile overrideProjectileToCopyFrom = overrideProjectilesToCopyFrom[i]; tk2dSpriteAnimationFrame val6 = new tk2dSpriteAnimationFrame(); val6.spriteId = Databases.Items.ProjectileCollection.inst.GetSpriteIdByName(text); val6.spriteCollection = Databases.Items.ProjectileCollection; list.Add(val6); int? overrideColliderPixelWidth = null; int? overrideColliderPixelHeight = null; if (val3.HasValue) { overrideColliderPixelWidth = val3.Value.x; overrideColliderPixelHeight = val3.Value.y; } int? overrideColliderOffsetX = null; int? overrideColliderOffsetY = null; if (val4.HasValue) { overrideColliderOffsetX = val4.Value.x; overrideColliderOffsetY = val4.Value.y; } tk2dSpriteDefinition val7 = SetupDefinitionForProjectileSprite(text, val6.spriteId, val2.x, val2.y, lightened, overrideColliderPixelWidth, overrideColliderPixelHeight, overrideColliderOffsetX, overrideColliderOffsetY, overrideProjectileToCopyFrom); val7.ConstructOffsetsFromAnchor(anchor, Vector2.op_Implicit(val7.position3), fixesScale, changesCollider); val7.position0 += val5.Value; val7.position1 += val5.Value; val7.position2 += val5.Value; val7.position3 += val5.Value; if (i == 0) { ETGMod.GetAnySprite((BraveBehaviour)(object)proj).SetSprite(val6.spriteCollection, val6.spriteId); } } val.wrapMode = (WrapMode)((!loops) ? 2 : 0); val.frames = list.ToArray(); if ((Object)(object)((BraveBehaviour)((BraveBehaviour)proj).sprite).spriteAnimator == (Object)null) { ((BraveBehaviour)((BraveBehaviour)proj).sprite).spriteAnimator = ((Component)((BraveBehaviour)proj).sprite).gameObject.AddComponent(); } ((BraveBehaviour)((BraveBehaviour)proj).sprite).spriteAnimator.playAutomatically = true; if ((Object)(object)((BraveBehaviour)((BraveBehaviour)proj).sprite).spriteAnimator.Library == (Object)null) { ((BraveBehaviour)((BraveBehaviour)proj).sprite).spriteAnimator.Library = ((Component)((BraveBehaviour)((BraveBehaviour)proj).sprite).spriteAnimator).gameObject.AddComponent(); ((BraveBehaviour)((BraveBehaviour)proj).sprite).spriteAnimator.Library.clips = (tk2dSpriteAnimationClip[])(object)new tk2dSpriteAnimationClip[0]; ((Behaviour)((BraveBehaviour)((BraveBehaviour)proj).sprite).spriteAnimator.Library).enabled = true; } ((BraveBehaviour)((BraveBehaviour)proj).sprite).spriteAnimator.Library.clips = ((BraveBehaviour)((BraveBehaviour)proj).sprite).spriteAnimator.Library.clips.Concat((IEnumerable)(object)new tk2dSpriteAnimationClip[1] { val }).ToArray(); ((BraveBehaviour)((BraveBehaviour)proj).sprite).spriteAnimator.DefaultClipId = ((BraveBehaviour)((BraveBehaviour)proj).sprite).spriteAnimator.Library.GetClipIdByName("idle"); ((BraveBehaviour)((BraveBehaviour)proj).sprite).spriteAnimator.deferNextStartClip = false; } public static void ConstructOffsetsFromAnchor(this tk2dSpriteDefinition def, Anchor anchor, Vector2? scale = null, bool fixesScale = false, bool changesCollider = true) { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Invalid comparison between Unknown and I4 //IL_0020: 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_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: 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_0052: 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_004a: Invalid comparison between Unknown and I4 //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Invalid comparison between Unknown and I4 //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Invalid comparison between Unknown and I4 //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Invalid comparison between Unknown and I4 //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Invalid comparison between Unknown and I4 //IL_00c5: 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_0090: Invalid comparison between Unknown and I4 //IL_0074: 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_006c: Invalid comparison between Unknown and I4 //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Invalid comparison between Unknown and I4 //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Invalid comparison between Unknown and I4 //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Invalid comparison between Unknown and I4 //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Invalid comparison between Unknown and I4 //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Invalid comparison between Unknown and I4 //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Invalid comparison between Unknown and I4 //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Invalid comparison between Unknown and I4 //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Invalid comparison between Unknown and I4 //IL_018a: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Invalid comparison between Unknown and I4 //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Invalid comparison between Unknown and I4 //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Invalid comparison between Unknown and I4 //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Invalid comparison between Unknown and I4 //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_0160: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Invalid comparison between Unknown and I4 //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Invalid comparison between Unknown and I4 if (!scale.HasValue) { scale = Vector2.op_Implicit(def.position3); } if (fixesScale) { Vector2 value = scale.Value - Vector3Extensions.XY(def.position0); scale = value; } float num = 0f; if ((int)anchor == 1 || (int)anchor == 4 || (int)anchor == 7) { num = 0f - scale.Value.x / 2f; } else if ((int)anchor == 2 || (int)anchor == 5 || (int)anchor == 8) { num = 0f - scale.Value.x; } float num2 = 0f; if ((int)anchor == 3 || (int)anchor == 4 || (int)anchor == 3) { num2 = 0f - scale.Value.y / 2f; } else if ((int)anchor == 6 || (int)anchor == 7 || (int)anchor == 8) { num2 = 0f - scale.Value.y; } def.MakeOffset(new Vector2(num, num2)); if (changesCollider && def.colliderVertices != null && def.colliderVertices.Length != 0) { float num3 = 0f; if ((int)anchor == 0 || (int)anchor == 3 || (int)anchor == 6) { num3 = scale.Value.x / 2f; } else if ((int)anchor == 2 || (int)anchor == 5 || (int)anchor == 8) { num3 = 0f - scale.Value.x / 2f; } float num4 = 0f; if ((int)anchor == 0 || (int)anchor == 1 || (int)anchor == 2) { num4 = scale.Value.y / 2f; } else if ((int)anchor == 6 || (int)anchor == 7 || (int)anchor == 8) { num4 = 0f - scale.Value.y / 2f; } ref Vector3 reference = ref def.colliderVertices[0]; reference += new Vector3(num3, num4, 0f); } } public static void MakeOffset(this tk2dSpriteDefinition def, Vector2 offset, bool changesCollider = false) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0010: 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_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_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_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_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: 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_0128: Unknown result type (might be due to invalid IL or missing references) //IL_012d: 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) float x = offset.x; float y = offset.y; def.position0 += new Vector3(x, y, 0f); def.position1 += new Vector3(x, y, 0f); def.position2 += new Vector3(x, y, 0f); def.position3 += new Vector3(x, y, 0f); def.boundsDataCenter += new Vector3(x, y, 0f); def.boundsDataExtents += new Vector3(x, y, 0f); def.untrimmedBoundsDataCenter += new Vector3(x, y, 0f); def.untrimmedBoundsDataExtents += new Vector3(x, y, 0f); if (def.colliderVertices != null && def.colliderVertices.Length != 0 && changesCollider) { ref Vector3 reference = ref def.colliderVertices[0]; reference += new Vector3(x, y, 0f); } } } public class BlackAndGoldenRevolver : GunBehaviour { public static int GoldenRevolverID = -1; public static int BlackRevolverID = -1; public static bool RevolverExceptionListsBuilt = false; public static Dictionary exceptionEnemies = new Dictionary(); public static List moddedEnemiesSkipped = new List(); public static GameObject WestBrosBlackRevolverProjectile; public static GameObject WestBrosGoldenRevolverProjectile; public static Hook ProjectileHook; public static readonly List ProjectileSpriteList = new List { "gr_black_revolver_projectile_001", "gr_black_revolver_projectile_002", "gr_black_revolver_projectile_003", "gr_black_revolver_projectile_004", "gr_black_revolver_projectile_005", "gr_black_revolver_projectile_006" }; private bool HasReloaded; public static void BuildExceptionsList() { RevolverExceptionListsBuilt = true; foreach (EnemyDatabaseEntry entry in ((AssetBundleDatabase)(object)EnemyDatabase.Instance).Entries) { if (entry == null) { continue; } try { AIActor orLoadByGuid = EnemyDatabase.GetOrLoadByGuid(((AssetBundleDatabaseEntry)entry).myGuid); if ((Object)(object)orLoadByGuid == (Object)null) { moddedEnemiesSkipped.Add(((AssetBundleDatabaseEntry)entry).myGuid); } else { ProcessEnemyEntry(orLoadByGuid, wasSkippedEarlier: false); } } catch (Exception ex) { moddedEnemiesSkipped.Add(((AssetBundleDatabaseEntry)entry).myGuid); if (ExpandSettings.debugMode) { Debug.Log((object)("[ExpandTheGungeon] Exception caught trying to add enemy with GUID " + ((AssetBundleDatabaseEntry)entry).myGuid.ToString() + " to BlackAndGoldenRevolver.ExceptionEnemies!")); Debug.Log((object)"[ExpandTheGungeon] This Enemy will be processed seperately by looking for it in Game.Enemies.Entries later!"); Debug.LogException(ex); } } if (moddedEnemiesSkipped.Count <= 0) { continue; } foreach (AIActor entry2 in Game.Enemies.Entries) { if (entry2.EnemyGuid.Contains(entry2.EnemyGuid)) { ProcessEnemyEntry(entry2, wasSkippedEarlier: true); break; } } } if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Done setting up black and golden revolver enemy excweptions"); } } public static void ProcessEnemyEntry(AIActor enemy, bool wasSkippedEarlier) { if (!Object.op_Implicit((Object)(object)enemy) || enemy.BlackPhantomProperties == null || !Object.op_Implicit((Object)(object)((BraveBehaviour)enemy).healthHaver) || ((BraveBehaviour)enemy).healthHaver.healthIsNumberOfHits || ((BraveBehaviour)enemy).healthHaver.IsBoss) { return; } float num = 1f + enemy.BlackPhantomProperties.BonusHealthPercentIncrease + BlackPhantomProperties.GlobalPercentIncrease; if (!(enemy.BlackPhantomProperties.MaxTotalHealth > 0f) || !(enemy.BlackPhantomProperties.MaxTotalHealth < ((BraveBehaviour)enemy).healthHaver.GetMaxHealth() * num)) { return; } float value = enemy.BlackPhantomProperties.MaxTotalHealth / ((BraveBehaviour)enemy).healthHaver.GetMaxHealth(); exceptionEnemies.Add(enemy.EnemyGuid, value); if (ExpandSettings.debugMode) { if (!wasSkippedEarlier) { Debug.Log((object)("[ExpandTheGungeon] Enemy with " + enemy.EnemyGuid.ToString() + " succesfully added to BlackAndGoldenRevolver.ExceptionEnemies list.")); } else { Debug.Log((object)("[ExpandTheGungeon] Skipped enemy with GUID " + enemy.EnemyGuid.ToString() + " succesfully added to BlackAndGoldenRevolver.ExceptionEnemies!")); } } } public static void AddBothVariants() { WestBrosBlackRevolverProjectile = ExpandAssets.LoadAsset("WestBrosBlackRevolverProjectile"); WestBrosGoldenRevolverProjectile = ExpandAssets.LoadAsset("WestBrosGoldenRevolverProjectile"); _ = ((Component)WestBrosBlackRevolverProjectile.transform.Find("Sprite")).gameObject; _ = ((Component)WestBrosGoldenRevolverProjectile.transform.Find("Sprite")).gameObject; Add(isGoldenVersion: true); Add(isGoldenVersion: false); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Now setting up projectile hook"); } if (ProjectileHook == null) { ProjectileHook = ProjectileHookClass.AddHook(); } if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Done setting up projectile hook"); } if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Done setting up black and golden revolver"); } } private static void Add(bool isGoldenVersion) { //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01bb: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Unknown result type (might be due to invalid IL or missing references) //IL_0209: Unknown result type (might be due to invalid IL or missing references) //IL_0214: 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_021c: Unknown result type (might be due to invalid IL or missing references) //IL_021e: Unknown result type (might be due to invalid IL or missing references) //IL_0225: Expected O, but got Unknown //IL_0275: Unknown result type (might be due to invalid IL or missing references) //IL_0288: Unknown result type (might be due to invalid IL or missing references) //IL_03cd: Unknown result type (might be due to invalid IL or missing references) string arg = (isGoldenVersion ? "Golden" : "Black"); string arg2 = (isGoldenVersion ? "golden" : "black"); Gun val = Databases.Items.NewGun($"{arg} Revolver", $"gr_{arg2}_revolver"); Game.Items.Rename($"outdated_gun_mods:{arg2}_revolver", $"ex:{arg2}_revolver"); ((Component)val).gameObject.AddComponent(); GunExt.SetShortDescription((PickupObject)(object)val, "Six Deep"); string text = "Bullets fired from this cursed revolver jam enemies on hit, but also completely ignore their increased strength, damaging them as if they were unjammed."; text = ((!isGoldenVersion) ? (text + "\n\nThis revolver was once carried by the bearer of a terrible curse. It is cold to the touch. A dark wind blows.") : (text + "\n\nThree bullet kin, that were completely unalike each other, set aside their differences to obtain this revolver, that was once carried by the bearer of a terrible curse. Their presence can still be felt while wielding it.")); GunExt.SetLongDescription((PickupObject)(object)val, text); GunExt.SetupSprite(val, (tk2dSpriteCollectionData)null, $"gr_{arg2}_revolver_idle_001", 5); tk2dSpriteAnimationClip clipByName = ((Component)val).GetComponent().GetClipByName(val.idleAnimation); List list = clipByName.frames.ToList(); list.Add(list[2]); list.Add(list[1]); for (int i = 0; i < 5; i++) { list.Add(list[0]); } clipByName.frames = list.ToArray(); GunExt.SetAnimationFPS(val, val.shootAnimation, 12); GunExt.SetAnimationFPS(val, val.reloadAnimation, 14); PickupObject byId = PickupObjectDatabase.GetById(22); Gun val2 = (Gun)(object)((byId is Gun) ? byId : null); GunExt.AddProjectileModuleFrom(val, val2, true, true); val.gunSwitchGroup = val2.gunSwitchGroup; val.muzzleFlashEffects = val2.muzzleFlashEffects; val.AddMuzzle(); val.muzzleOffset.localPosition = new Vector3(1.2f, 0.8f, 0f); val.barrelOffset.localPosition = new Vector3(1.4f, 0.8f, 0f); val.DefaultModule.shootStyle = (ShootStyle)0; val.DefaultModule.sequenceStyle = (ProjectileSequenceStyle)0; val.DefaultModule.cooldownTime = 0.07f; val.DefaultModule.numberOfShotsInClip = 6; val.DefaultModule.angleVariance = 0f; val.DefaultModule.ammoCost = 1; StatModifier val3 = new StatModifier { amount = 2f, statToBoost = (StatType)14, modifyType = (ModifyMethod)0 }; val.currentGunStatModifiers = (StatModifier[])(object)new StatModifier[1] { val3 }; val.shellCasing = val2.shellCasing; val.shellsToLaunchOnFire = 0; val.shellsToLaunchOnReload = val.DefaultModule.numberOfShotsInClip; val.reloadShellLaunchFrame = val2.reloadShellLaunchFrame; val.reloadTime = 1f; val.gunClass = (GunClass)1; val.SetBaseMaxAmmo(666); ((PickupObject)val).quality = (ItemQuality)(-100); ((BraveBehaviour)val).encounterTrackable.EncounterGuid = $"this is the {arg2} skull revolver"; Projectile val4 = (isGoldenVersion ? WestBrosGoldenRevolverProjectile.AddComponent() : WestBrosBlackRevolverProjectile.AddComponent()); GameObject gameObject = ((Component)((BraveBehaviour)val4).transform.Find("Sprite")).gameObject; tk2dSprite val5 = SpriteSerializer.AddSpriteToObject(gameObject, ExpandEnemyDatabase.WestBrosCollection, "gr_black_revolver_projectile_001", (PerpendicularState)0); ExpandUtility.GenerateSpriteAnimator(gameObject, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true); ExpandUtility.AddAnimation(gameObject.GetComponent(), ((tk2dBaseSprite)val5).Collection, ProjectileSpriteList, "idle", (WrapMode)0, 13); ExpandUtility.DuplicateRigidBody(((Component)val4).gameObject.AddComponent(), ((BraveBehaviour)val2.DefaultModule.projectiles[0]).specRigidbody); ExpandUtility.DuplicateComponent(val4, val2.DefaultModule.projectiles[0]); val.DefaultModule.projectiles[0] = val4; val4.baseData.damage = 14f; val4.baseData.speed = 25f; val4.baseData.force = 14f; ((BraveBehaviour)val4).transform.localPosition = val.barrelOffset.localPosition; val4.shouldRotate = true; ((Component)val4).gameObject.AddComponent().jamsEnemies = true; Databases.Items.Add((PickupObject)(object)val, false, "ANY"); if (isGoldenVersion) { AddHoveringGunComponent(val); GoldenRevolverID = ((PickupObject)val).PickupObjectId; } else { BlackRevolverID = ((PickupObject)val).PickupObjectId; } } private static void AddHoveringGunComponent(Gun goldenRevolver) { //IL_0043: 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_0051: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) CustomHoveringGunSynergyProcessor customHoveringGunSynergyProcessor = ((Component)goldenRevolver).gameObject.AddComponent(); customHoveringGunSynergyProcessor.RequiresSynergy = false; customHoveringGunSynergyProcessor.UsesMultipleGuns = true; customHoveringGunSynergyProcessor.TargetGunIDs = new int[3] { WestBrosRevolverGenerator.GetWestBrosRevolverID(WestBros.Angel), WestBrosRevolverGenerator.GetWestBrosRevolverID(WestBros.Nome), WestBrosRevolverGenerator.GetWestBrosRevolverID(WestBros.Tuc) }; customHoveringGunSynergyProcessor.PositionType = (HoverPosition)1; customHoveringGunSynergyProcessor.AimType = (AimType)0; customHoveringGunSynergyProcessor.FireType = (FireType)1; customHoveringGunSynergyProcessor.FireCooldown = 1f; customHoveringGunSynergyProcessor.FireDuration = 0f; customHoveringGunSynergyProcessor.OnlyOnEmptyReload = false; customHoveringGunSynergyProcessor.ShootAudioEvent = null; customHoveringGunSynergyProcessor.OnEveryShotAudioEvent = null; customHoveringGunSynergyProcessor.FinishedShootingAudioEvent = null; customHoveringGunSynergyProcessor.Trigger = (TriggerStyle)0; customHoveringGunSynergyProcessor.NumToTrigger = 3; customHoveringGunSynergyProcessor.TriggerDuration = -1f; customHoveringGunSynergyProcessor.ConsumesTargetGunAmmo = false; customHoveringGunSynergyProcessor.ChanceToConsumeTargetGunAmmo = 0f; } public override void OnPostFired(PlayerController player, Gun gun) { ((GunBehaviour)this).OnPostFired(player, gun); } public override void Update() { ((GunBehaviour)this).Update(); if (Object.op_Implicit((Object)(object)base.gun.CurrentOwner) && !base.gun.IsReloading && !HasReloaded) { HasReloaded = true; } } public override void OnReloadPressed(PlayerController player, Gun gun, bool bSOMETHING) { if (gun.IsReloading && HasReloaded) { HasReloaded = false; ((GunBehaviour)this).OnReloadPressed(player, gun, bSOMETHING); } } } public class SkullRevolverBullet : MonoBehaviour { public bool jamsEnemies; private bool currentlyAppliedDamageBonus; public void Start() { Projectile component = ((Component)this).GetComponent(); ProjectileHookClass.OnPreDidDamage = (Action)Delegate.Combine(ProjectileHookClass.OnPreDidDamage, new Action(AddDamageModifier)); ProjectileHookClass.OnPostDidDamage = (Action)Delegate.Combine(ProjectileHookClass.OnPostDidDamage, new Action(RemoveDamageModifier)); if (jamsEnemies) { component.OnHitEnemy = (Action)Delegate.Combine(component.OnHitEnemy, new Action(JamEnemyOnHit)); } } public void OnDestroy() { ProjectileHookClass.OnPreDidDamage = (Action)Delegate.Remove(ProjectileHookClass.OnPreDidDamage, new Action(AddDamageModifier)); ProjectileHookClass.OnPostDidDamage = (Action)Delegate.Remove(ProjectileHookClass.OnPostDidDamage, new Action(RemoveDamageModifier)); } public void AddDamageModifier(Projectile projectile, SpeculativeRigidbody enemyRigidbody, bool alive) { ApplyDamageModifier(projectile, enemyRigidbody, alive, addDamage: true); } public void RemoveDamageModifier(Projectile projectile, SpeculativeRigidbody enemyRigidbody, bool alive) { ApplyDamageModifier(projectile, enemyRigidbody, alive, addDamage: false); } public void ApplyDamageModifier(Projectile projectile, SpeculativeRigidbody enemyRigidbody, bool alive, bool addDamage) { if (!Object.op_Implicit((Object)(object)this) || !Object.op_Implicit((Object)(object)projectile) || !Object.op_Implicit((Object)(object)enemyRigidbody) || currentlyAppliedDamageBonus == addDamage) { return; } AIActor component = ((Component)enemyRigidbody).GetComponent(); if (Object.op_Implicit((Object)(object)component) && alive && Object.op_Implicit((Object)(object)((BraveBehaviour)component).healthHaver) && component.IsBlackPhantom) { float num = (((BraveBehaviour)component).healthHaver.IsBoss ? (1f + component.BlackPhantomProperties.BonusHealthPercentIncrease + BlackPhantomProperties.GlobalBossPercentIncrease) : (BlackAndGoldenRevolver.exceptionEnemies.ContainsKey(component.EnemyGuid) ? BlackAndGoldenRevolver.exceptionEnemies[component.EnemyGuid] : (1f + component.BlackPhantomProperties.BonusHealthPercentIncrease + BlackPhantomProperties.GlobalPercentIncrease))); if (addDamage) { projectile.BlackPhantomDamageMultiplier *= num; } else { projectile.BlackPhantomDamageMultiplier /= num; } currentlyAppliedDamageBonus = addDamage; } } public void JamEnemyOnHit(Projectile projectile, SpeculativeRigidbody enemyRigidbody, bool killedEnemy) { if (Object.op_Implicit((Object)(object)this) && Object.op_Implicit((Object)(object)projectile) && Object.op_Implicit((Object)(object)enemyRigidbody)) { AIActor component = ((Component)enemyRigidbody).GetComponent(); if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)((BraveBehaviour)component).healthHaver) && ((BraveBehaviour)component).healthHaver.IsAlive && !((BraveBehaviour)component).healthHaver.IsBoss && !component.IsBlackPhantom) { component.BecomeBlackPhantom(); } } } } public class ProjectileHookClass : Projectile { public delegate T7 CustomFunc(T1 p1, T2 p2, T3 p3, out T4 p4, T5 p5, T6 p6); public static Action OnPreDidDamage; public static Action OnPostDidDamage; public static Hook AddHook() { //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Expected O, but got Unknown return new Hook((MethodBase)typeof(Projectile).GetMethod("HandleDamage", BindingFlags.Instance | BindingFlags.NonPublic), typeof(ProjectileHookClass).GetMethod("HandleDamageHook", BindingFlags.Static | BindingFlags.NonPublic)); } private static HandleDamageResult HandleDamageHook(CustomFunc orig, Projectile self, SpeculativeRigidbody rigidbody, PixelCollider hitPixelCollider, out bool killedTarget, PlayerController player, bool alreadyPlayerDelayed) { //IL_0042: Unknown result type (might be due to invalid IL or missing references) bool arg = Object.op_Implicit((Object)(object)rigidbody) && Object.op_Implicit((Object)(object)((BraveBehaviour)rigidbody).healthHaver) && ((BraveBehaviour)rigidbody).healthHaver.IsAlive; if (OnPreDidDamage != null) { OnPreDidDamage(self, rigidbody, arg); } HandleDamageResult result = orig(self, rigidbody, hitPixelCollider, out killedTarget, player, alreadyPlayerDelayed); if (OnPostDidDamage != null) { OnPostDidDamage(self, rigidbody, arg); } return result; } } public class CustomHoveringGunSynergyProcessor : MonoBehaviour { public CustomSynergyType RequiredSynergy; public bool RequiresSynergy; public int TargetGunID; public bool UsesMultipleGuns; public int[] TargetGunIDs; public HoverPosition PositionType; public AimType AimType; public FireType FireType; public float FireCooldown; public float FireDuration; public bool OnlyOnEmptyReload; public string ShootAudioEvent; public string OnEveryShotAudioEvent; public string FinishedShootingAudioEvent; public TriggerStyle Trigger; public int NumToTrigger; public float TriggerDuration; public bool ConsumesTargetGunAmmo; public float ChanceToConsumeTargetGunAmmo; private bool m_actionsLinked; private PlayerController m_cachedLinkedPlayer; private Gun m_gun; private PassiveItem m_item; private List m_hovers; private List m_initialized; public CustomHoveringGunSynergyProcessor() { FireCooldown = 1f; FireDuration = 2f; NumToTrigger = 1; TriggerDuration = -1f; ChanceToConsumeTargetGunAmmo = 0.5f; m_hovers = new List(); m_initialized = new List(); } public void Awake() { m_gun = ((Component)this).GetComponent(); m_item = ((Component)this).GetComponent(); } private bool IsInitialized(int index) { if (m_initialized.Count > index) { return m_initialized[index]; } return false; } public void Update() { //IL_0001: 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_0108: Invalid comparison between Unknown and I4 //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Invalid comparison between Unknown and I4 //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) if ((int)Trigger == 0) { if (Object.op_Implicit((Object)(object)m_gun)) { if (Object.op_Implicit((Object)(object)m_gun) && ((Behaviour)m_gun).isActiveAndEnabled && Object.op_Implicit((Object)(object)m_gun.CurrentOwner) && (!RequiresSynergy || m_gun.OwnerHasSynergy(RequiredSynergy))) { for (int i = 0; i < NumToTrigger; i++) { if (!IsInitialized(i)) { Enable(i); } } } else { DisableAll(); } } else { if (!Object.op_Implicit((Object)(object)m_item)) { return; } if (Object.op_Implicit((Object)(object)m_item) && Object.op_Implicit((Object)(object)m_item.Owner) && (!RequiresSynergy || m_item.Owner.HasActiveBonusSynergy(RequiredSynergy, false))) { for (int j = 0; j < NumToTrigger; j++) { if (!IsInitialized(j)) { Enable(j); } } } else { DisableAll(); } } } else if ((int)Trigger == 1) { if (!m_actionsLinked && Object.op_Implicit((Object)(object)m_gun) && Object.op_Implicit((Object)(object)m_gun.CurrentOwner)) { ref PlayerController cachedLinkedPlayer = ref m_cachedLinkedPlayer; GameActor currentOwner = m_gun.CurrentOwner; (cachedLinkedPlayer = (PlayerController)(object)((currentOwner is PlayerController) ? currentOwner : null)).OnReceivedDamage += HandleOwnerDamaged; m_actionsLinked = true; } else if (m_actionsLinked && Object.op_Implicit((Object)(object)m_gun) && !Object.op_Implicit((Object)(object)m_gun.CurrentOwner) && Object.op_Implicit((Object)(object)m_cachedLinkedPlayer)) { m_cachedLinkedPlayer.OnReceivedDamage -= HandleOwnerDamaged; m_cachedLinkedPlayer = null; m_actionsLinked = false; } } else if ((int)Trigger == 2) { if (!m_actionsLinked && Object.op_Implicit((Object)(object)m_gun) && Object.op_Implicit((Object)(object)m_gun.CurrentOwner)) { ref PlayerController cachedLinkedPlayer2 = ref m_cachedLinkedPlayer; GameActor currentOwner2 = m_gun.CurrentOwner; (cachedLinkedPlayer2 = (PlayerController)(object)((currentOwner2 is PlayerController) ? currentOwner2 : null)).OnUsedPlayerItem += HandleOwnerItemUsed; m_actionsLinked = true; } else if (m_actionsLinked && Object.op_Implicit((Object)(object)m_gun) && !Object.op_Implicit((Object)(object)m_gun.CurrentOwner) && Object.op_Implicit((Object)(object)m_cachedLinkedPlayer)) { m_cachedLinkedPlayer.OnUsedPlayerItem -= HandleOwnerItemUsed; m_cachedLinkedPlayer = null; m_actionsLinked = false; } } } private void HandleOwnerItemUsed(PlayerController sourcePlayer, PlayerItem sourceItem) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) if ((RequiresSynergy && !sourcePlayer.HasActiveBonusSynergy(RequiredSynergy, false)) || !Object.op_Implicit((Object)(object)GetOwner())) { return; } for (int i = 0; i < NumToTrigger; i++) { int j; for (j = 0; IsInitialized(j); j++) { } Enable(j); ((MonoBehaviour)this).StartCoroutine(ActiveItemDisable(j, sourcePlayer)); } } private void HandleOwnerDamaged(PlayerController sourcePlayer) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) if (RequiresSynergy && !sourcePlayer.HasActiveBonusSynergy(RequiredSynergy, false)) { return; } for (int i = 0; i < NumToTrigger; i++) { int j; for (j = 0; IsInitialized(j); j++) { } Enable(j); ((MonoBehaviour)this).StartCoroutine(TimedDisable(j, TriggerDuration)); } } private IEnumerator ActiveItemDisable(int index, PlayerController player) { yield return null; while (Object.op_Implicit((Object)(object)player) && Object.op_Implicit((Object)(object)player.CurrentItem) && player.CurrentItem.IsActive) { yield return null; } Disable(index); } private IEnumerator TimedDisable(int index, float duration) { yield return (object)new WaitForSeconds(duration); Disable(index); } private void OnDisable() { DisableAll(); } private PlayerController GetOwner() { if (Object.op_Implicit((Object)(object)m_gun)) { GameActor currentOwner = m_gun.CurrentOwner; return (PlayerController)(object)((currentOwner is PlayerController) ? currentOwner : null); } if (Object.op_Implicit((Object)(object)m_item)) { return m_item.Owner; } return null; } private void Enable(int index) { //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: 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_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Unknown result type (might be due to invalid IL or missing references) if (m_initialized.Count > index && m_initialized[index]) { return; } PlayerController owner = GetOwner(); Object obj = ResourceCache.Acquire("Global Prefabs/HoveringGun"); GameObject val = Object.Instantiate((GameObject)(object)((obj is GameObject) ? obj : null), Vector2Extensions.ToVector3ZisY(((GameActor)owner).CenterPosition, 0f), Quaternion.identity); val.transform.parent = ((BraveBehaviour)owner).transform; while (m_hovers.Count < index + 1) { m_hovers.Add(null); m_initialized.Add(item: false); } m_hovers[index] = val.GetComponent(); m_hovers[index].ShootAudioEvent = ShootAudioEvent; m_hovers[index].OnEveryShotAudioEvent = OnEveryShotAudioEvent; m_hovers[index].FinishedShootingAudioEvent = FinishedShootingAudioEvent; m_hovers[index].ConsumesTargetGunAmmo = ConsumesTargetGunAmmo; m_hovers[index].ChanceToConsumeTargetGunAmmo = ChanceToConsumeTargetGunAmmo; m_hovers[index].Position = PositionType; m_hovers[index].Aim = AimType; m_hovers[index].Trigger = FireType; m_hovers[index].CooldownTime = FireCooldown; m_hovers[index].ShootDuration = FireDuration; m_hovers[index].OnlyOnEmptyReload = OnlyOnEmptyReload; Gun val2 = null; int num = TargetGunID; if (UsesMultipleGuns) { num = TargetGunIDs[index]; } for (int i = 0; i < owner.inventory.AllGuns.Count; i++) { if (((PickupObject)owner.inventory.AllGuns[i]).PickupObjectId == num) { val2 = owner.inventory.AllGuns[i]; } } if (!Object.op_Implicit((Object)(object)val2)) { PickupObject obj2 = ((ObjectDatabase)(object)PickupObjectDatabase.Instance).InternalGetById(num); val2 = (Gun)(object)((obj2 is Gun) ? obj2 : null); } m_hovers[index].Initialize(val2, owner); m_initialized[index] = true; } private void Disable(int index) { if (Object.op_Implicit((Object)(object)m_hovers[index])) { Object.Destroy((Object)(object)((Component)m_hovers[index]).gameObject); } } private void DisableAll() { for (int i = 0; i < m_hovers.Count; i++) { if (Object.op_Implicit((Object)(object)m_hovers[i])) { Object.Destroy((Object)(object)((Component)m_hovers[i]).gameObject); } } m_hovers.Clear(); m_initialized.Clear(); } public void OnDestroy() { if (m_actionsLinked && Object.op_Implicit((Object)(object)m_cachedLinkedPlayer)) { m_cachedLinkedPlayer.OnReceivedDamage -= HandleOwnerDamaged; m_cachedLinkedPlayer = null; m_actionsLinked = false; } } } public class WestBrosRevolverGenerator { public static int WestBrosAngelGunID = -1; public static int WestBrosNomeGunID = -1; public static int WestBrosTucGunID = -1; public static void Init() { Generate(WestBros.Angel); Generate(WestBros.Nome); Generate(WestBros.Tuc); BlackAndGoldenRevolver.AddBothVariants(); } public static void Generate(WestBros whichBro) { //IL_00c6: 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_0113: Unknown result type (might be due to invalid IL or missing references) //IL_011f: 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_017c: Unknown result type (might be due to invalid IL or missing references) string text = whichBro.ToString(); string arg = text.ToLower(); Gun val = Databases.Items.NewGun($"{text}'s Revolver", $"gr_{arg}_rev"); Game.Items.Rename($"outdated_gun_mods:{arg}'s_revolver", $"ex:{arg}s_revolver"); PickupObject byId = PickupObjectDatabase.GetById(22); Gun val2 = (Gun)(object)((byId is Gun) ? byId : null); GunExt.SetShortDescription((PickupObject)(object)val, "TODO"); GunExt.SetLongDescription((PickupObject)(object)val, "TODO"); GunExt.SetupSprite(val, (tk2dSpriteCollectionData)null, $"gr_{arg}_rev_idle_001", 8); GunExt.SetAnimationFPS(val, val.shootAnimation, 12); GunExt.SetAnimationFPS(val, val.enemyPreFireAnimation, 8); GunExt.SetAnimationFPS(val, val.reloadAnimation, 8); ((BraveBehaviour)val).spriteAnimator.GetClipByName(val.enemyPreFireAnimation).wrapMode = (WrapMode)2; GunExt.AddProjectileModuleFrom(val, val2, true, true); val.gunSwitchGroup = val2.gunSwitchGroup; val.muzzleFlashEffects = val2.muzzleFlashEffects; val.barrelOffset.localPosition = new Vector3(1.1f, 0.3f, 0f); val.DefaultModule.shootStyle = (ShootStyle)0; val.DefaultModule.sequenceStyle = (ProjectileSequenceStyle)0; val.DefaultModule.cooldownTime = 0.07f; val.DefaultModule.numberOfShotsInClip = 6; val.DefaultModule.angleVariance = 4f; val.DefaultModule.ammoCost = 0; val.reloadTime = 1f; val.gunClass = (GunClass)1; val.SetBaseMaxAmmo(350); ((PickupObject)val).quality = (ItemQuality)(-100); ((BraveBehaviour)val).encounterTrackable.EncounterGuid = $"this is {text}'s new revolver"; Projectile val3 = Object.Instantiate(val.DefaultModule.projectiles[0]); ((Component)val3).gameObject.SetActive(false); FakePrefab.MarkAsFakePrefab(((Component)val3).gameObject); Object.DontDestroyOnLoad((Object)(object)val3); val.DefaultModule.projectiles[0] = val3; val3.baseData.damage = 6f; ((BraveBehaviour)val3).transform.parent = val.barrelOffset; ((Component)val3).gameObject.AddComponent().jamsEnemies = false; Databases.Items.Add((PickupObject)(object)val, false, "ANY"); switch (whichBro) { case WestBros.Angel: WestBrosAngelGunID = ((PickupObject)val).PickupObjectId; break; case WestBros.Nome: WestBrosNomeGunID = ((PickupObject)val).PickupObjectId; break; case WestBros.Tuc: WestBrosTucGunID = ((PickupObject)val).PickupObjectId; break; } } public static int GetWestBrosRevolverID(WestBros whichBro) { return whichBro switch { WestBros.Angel => WestBrosAngelGunID, WestBros.Nome => WestBrosNomeGunID, WestBros.Tuc => WestBrosTucGunID, _ => throw new Exception("Invalid enum value"), }; } } public class HotShotShotGun { public static int HotShotShotGunID; public static Gun HotShot_ShotGun; public static void Init() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_0189: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Expected O, but got Unknown //IL_0194: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Expected O, but got Unknown //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Expected O, but got Unknown //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Expected O, but got Unknown //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Expected O, but got Unknown //IL_0293: 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_02b7: Unknown result type (might be due to invalid IL or missing references) //IL_02c9: Unknown result type (might be due to invalid IL or missing references) //IL_02db: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) ? val = Databases.Items; PickupObject byId = PickupObjectDatabase.GetById(51); Gun val2 = ((ItemDB)val).NewGun("HotShot Shotgun", (Gun)(object)((byId is Gun) ? byId : null), "hotshot_shotgun"); Game.Items.Rename("outdated_gun_mods:hotshot_shotgun", "ex:hotshot_shotgun"); GunExt.SetShortDescription((PickupObject)(object)val2, "You aren't supposed to have this..."); GunExt.SetLongDescription((PickupObject)(object)val2, "The gun used by Hot Shot Shotgun Kin."); GunExt.AddProjectileModuleFrom(val2, ((Object)PickupObjectDatabase.GetById(51)).name, true, true); ? val3 = val2.barrelOffset; PickupObject byId2 = PickupObjectDatabase.GetById(51); ((Transform)val3).localPosition = ((Gun)((byId2 is Gun) ? byId2 : null)).barrelOffset.localPosition; PickupObject byId3 = PickupObjectDatabase.GetById(51); if (Object.op_Implicit((Object)(object)((Gun)((byId3 is Gun) ? byId3 : null)).muzzleOffset) && Object.op_Implicit((Object)(object)val2.muzzleOffset)) { ? val4 = ((Component)val2.muzzleOffset).transform; PickupObject byId4 = PickupObjectDatabase.GetById(51); ((Transform)val4).localPosition = ((Gun)((byId4 is Gun) ? byId4 : null)).muzzleOffset.localPosition; } val2.reloadTime = 1.8f; val2.gunClass = (GunClass)5; val2.ammo = 150; val2.SetBaseMaxAmmo(150); ((PickupObject)val2).quality = (ItemQuality)(-100); val2.gunSwitchGroup = "Shotgun"; ((BraveBehaviour)val2).encounterTrackable.EncounterGuid = "dc52f8e79c7c4a679238643a5bcb49c3"; Databases.Items.Add((PickupObject)(object)val2, false, "ANY"); HotShotShotGunID = ((PickupObject)val2).PickupObjectId; Projectile component = ((Component)EnemyDatabase.GetOrLoadByGuid("128db2f0781141bcb505d8f00f9e4d47")).gameObject.GetComponent().Bullets[0].BulletObject.GetComponent(); val2.DefaultModule.projectiles[0] = component; ProjectileVolleyData val5 = ScriptableObject.CreateInstance(); val5.projectiles = new List { val2.DefaultModule, new ProjectileModule(), new ProjectileModule(), new ProjectileModule(), new ProjectileModule(), new ProjectileModule() }; val5.UsesBeamRotationLimiter = false; val5.BeamRotationDegreesPerSecond = 30f; val5.ModulesAreTiers = false; val5.UsesShotgunStyleVelocityRandomizer = true; val5.DecreaseFinalSpeedPercentMin = -15f; val5.IncreaseFinalSpeedPercentMax = 15f; JsonUtility.FromJsonOverwrite(JsonUtility.ToJson((object)val2.DefaultModule), (object)val5.projectiles[1]); JsonUtility.FromJsonOverwrite(JsonUtility.ToJson((object)val2.DefaultModule), (object)val5.projectiles[2]); JsonUtility.FromJsonOverwrite(JsonUtility.ToJson((object)val2.DefaultModule), (object)val5.projectiles[3]); JsonUtility.FromJsonOverwrite(JsonUtility.ToJson((object)val2.DefaultModule), (object)val5.projectiles[4]); JsonUtility.FromJsonOverwrite(JsonUtility.ToJson((object)val2.DefaultModule), (object)val5.projectiles[5]); val5.projectiles[1].ammoType = (AmmoType)0; val5.projectiles[2].ammoType = (AmmoType)0; val5.projectiles[3].ammoType = (AmmoType)0; val5.projectiles[4].ammoType = (AmmoType)0; val5.projectiles[5].ammoType = (AmmoType)0; val2.Volley = val5; HotShot_ShotGun = val2; } } public class PowBlock : PlayerItem { public static int PowBlockPickupID = -1; public static GameObject PowBlockObject; private static readonly List PowBlockIdleSprites = new List { "PowBlock", "PowBlock_Idle_01", "PowBlock_Idle_02", "PowBlock_Idle_03", "PowBlock_Idle_04", "PowBlock_Idle_05", "PowBlock_Idle_06", "PowBlock_Idle_07", "PowBlock_Idle_07", "PowBlock_Idle_07", "PowBlock_Idle_07", "PowBlock_Idle_08", "PowBlock_Idle_09", "PowBlock_Idle_10", "PowBlock_Idle_11", "PowBlock_Idle_12", "PowBlock_Idle_13", "PowBlock_Idle_14" }; private static readonly List PowBlockUsedSprites = new List { "PowBlock_Used", "PowBlock_Used" }; public List ExcludedEnemies; public ScreenShakeSettings PowScreenShake; private bool m_InUse; public static void Init(AssetBundle expandSharedAssets1) { //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) PowBlockObject = expandSharedAssets1.LoadAsset("Pow Block"); tk2dSprite val = SpriteSerializer.AddSpriteToObject(PowBlockObject, ExpandPrefabs.EXItemCollection, "PowBlock", (PerpendicularState)0); ExpandUtility.GenerateSpriteAnimator(PowBlockObject, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true); tk2dSpriteAnimator component = PowBlockObject.GetComponent(); ExpandUtility.AddAnimation(component, ((tk2dBaseSprite)val).Collection, PowBlockIdleSprites, "Idle", (WrapMode)0, 8); ExpandUtility.AddAnimation(component, ((tk2dBaseSprite)val).Collection, PowBlockUsedSprites, "POW", (WrapMode)0, 2); PowBlock powBlock = PowBlockObject.AddComponent(); string shortDesc = "Shaken not stirred..."; string longDesc = "A special block that when stomped on causes a violent shaking.\n\nEnemies shall lose their footing."; ItemBuilder.SetupItem((PickupObject)(object)powBlock, shortDesc, longDesc, "ex"); ItemBuilder.SetCooldownType((PlayerItem)(object)powBlock, ItemBuilder.CooldownType.Damage, 380f); ((PickupObject)powBlock).quality = (ItemQuality)2; if (!ExpandSettings.EnableEXItems) { ((PickupObject)powBlock).quality = (ItemQuality)(-100); } PowBlockPickupID = ((PickupObject)powBlock).PickupObjectId; } public PowBlock() { //IL_0007: 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_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_002d: 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_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_004d: 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_0055: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Expected O, but got Unknown PowScreenShake = new ScreenShakeSettings { magnitude = 3f, speed = 15f, time = 0.05f, falloff = 0.1f, direction = new Vector2(0f, -1f), vibrationType = (VibrationType)10, simpleVibrationTime = (Time)10, simpleVibrationStrength = (Strength)30 }; ExcludedEnemies = new List { "cd4a4b7f612a4ba9a720b9f97c52f38c", "22fc2c2c45fb47cf9fb5f7b043a70122", "9215d1a221904c7386b481a171e52859", "9b4fb8a2a60a457f90dcf285d34143ac", "45192ff6d6cb43ed8f1a874ab6bef316", "0108a031c74940739c56a22068c915b6" }; m_InUse = false; } private bool IsUsableRightNow(PlayerController user) { if (m_InUse | !user.IsInCombat) { return false; } return true; } public override bool CanBeUsed(PlayerController user) { if (IsUsableRightNow(user)) { return ((PlayerItem)this).CanBeUsed(user); } return false; } protected override void DoEffect(PlayerController user) { m_InUse = true; ((BraveBehaviour)this).spriteAnimator.Play("POW"); PowTime(user); } public override void Pickup(PlayerController player) { ((PlayerItem)this).Pickup(player); } protected override void OnPreDrop(PlayerController player) { ((PlayerItem)this).OnPreDrop(player); } public override void Update() { ((PlayerItem)this).Update(); if (!Dungeon.IsGenerating) { if (!m_InUse && ((PlayerItem)this).IsOnCooldown && !((BraveBehaviour)this).spriteAnimator.IsPlaying("POW")) { ((BraveBehaviour)this).spriteAnimator.Play("POW"); } else if (!m_InUse && !((PlayerItem)this).IsOnCooldown && !((BraveBehaviour)this).spriteAnimator.IsPlaying("Idle")) { ((BraveBehaviour)this).spriteAnimator.Play("Idle"); } } } public void PowTime(PlayerController user) { //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0127: 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_02cb: Unknown result type (might be due to invalid IL or missing references) //IL_02e3: Expected O, but got Unknown //IL_02fb: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Unknown result type (might be due to invalid IL or missing references) _ = user.CurrentRoom; AkSoundEngine.PostEvent("Play_EX_PowBlock_Trigger", ((Component)this).gameObject); GameManager.Instance.MainCameraController.DoScreenShake(PowScreenShake, (Vector2?)Vector2.op_Implicit(((BraveBehaviour)user).transform.position), false); if (user.CurrentRoom.HasActiveEnemies((ActiveEnemyType)1)) { List activeEnemies = user.CurrentRoom.GetActiveEnemies((ActiveEnemyType)1); for (int i = 0; i < activeEnemies.Count; i++) { if (!Object.op_Implicit((Object)(object)activeEnemies[i]) || ((GameActor)activeEnemies[i]).IsGone || !Object.op_Implicit((Object)(object)((BraveBehaviour)activeEnemies[i]).specRigidbody) || !Object.op_Implicit((Object)(object)((BraveBehaviour)activeEnemies[i]).sprite) || ((BraveBehaviour)activeEnemies[i]).healthHaver.IsDead || ((BraveBehaviour)activeEnemies[i]).healthHaver.IsBoss || Object.op_Implicit((Object)(object)((Component)activeEnemies[i]).gameObject.GetComponent())) { continue; } if (ExcludedEnemies.Contains(activeEnemies[i].EnemyGuid)) { ((BraveBehaviour)activeEnemies[i]).healthHaver.ApplyDamage(100000f, Vector2.zero, "Pow Block Death", (CoreDamageTypes)0, (DamageCategory)0, true, (PixelCollider)null, true); continue; } if (Object.op_Implicit((Object)(object)((Component)activeEnemies[i]).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)activeEnemies[i]).gameObject.GetComponent()); } if (Object.op_Implicit((Object)(object)((Component)activeEnemies[i]).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)activeEnemies[i]).gameObject.GetComponent()); } if (Object.op_Implicit((Object)(object)((Component)activeEnemies[i]).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)activeEnemies[i]).gameObject.GetComponent()); } if (Object.op_Implicit((Object)(object)((Component)activeEnemies[i]).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)activeEnemies[i]).gameObject.GetComponent()); } ((BraveBehaviour)activeEnemies[i]).healthHaver.minimumHealth = 0f; activeEnemies[i].DiesOnCollison = true; activeEnemies[i].CollisionDamage = 0f; activeEnemies[i].CorpseObject = null; activeEnemies[i].EnemySwitchState = string.Empty; ((BraveBehaviour)activeEnemies[i]).healthHaver.ForceSetCurrentHealth(1f); ((Component)activeEnemies[i]).gameObject.AddComponent(); ((GameActor)activeEnemies[i]).StealthDeath = true; if (Object.op_Implicit((Object)(object)((GameActor)activeEnemies[i]).ShadowObject)) { ((GameActor)activeEnemies[i]).HasShadow = false; Object.Destroy((Object)(object)((GameActor)activeEnemies[i]).ShadowObject); } GameObject val = new GameObject(((Object)activeEnemies[i]).name + " PowBlockRotationSource") { layer = ((Component)activeEnemies[i]).gameObject.layer }; val.transform.position = Vector2.op_Implicit(((BraveBehaviour)activeEnemies[i]).specRigidbody.GetPixelCollider((ColliderType)2).UnitCenter); ((Component)activeEnemies[i]).gameObject.transform.SetParent(val.transform); ((MonoBehaviour)this).StartCoroutine(FlipEnemy(activeEnemies[i], val.transform)); } } m_InUse = false; } private IEnumerator FlipEnemy(AIActor target, Transform rotationAnchor) { float elapsed = 0f; float duration = 0.25f; Quaternion startAngle = Quaternion.Euler(new Vector3(0f, 0f, 0f)); Quaternion endAngle = Quaternion.Euler(new Vector3(0f, 0f, 180f)); ((BraveBehaviour)target).behaviorSpeculator.Stun(999f, true); if (Object.op_Implicit((Object)(object)((BraveBehaviour)target).aiShooter)) { ((BraveBehaviour)target).aiShooter.ToggleGunAndHandRenderers(false, "Was Powed"); } if (!Object.op_Implicit((Object)(object)((BraveBehaviour)target).specRigidbody)) { yield break; } while (elapsed < duration && Object.op_Implicit((Object)(object)target)) { elapsed += BraveTime.DeltaTime; rotationAnchor.localRotation = Quaternion.Lerp(startAngle, endAngle, elapsed / duration); ((BraveBehaviour)target).specRigidbody.UpdateCollidersOnRotation = true; ((BraveBehaviour)target).specRigidbody.LastRotation = ((Component)target).gameObject.transform.eulerAngles.z; if ((Object)(object)((BraveBehaviour)target).specRigidbody.TK2DSprite != (Object)null) { ((BraveBehaviour)target).specRigidbody.TK2DSprite.UpdateZDepth(); } ((BraveBehaviour)target).specRigidbody.ForceRegenerate((bool?)true, (bool?)null); ((BraveBehaviour)target).specRigidbody.Reinitialize(); if (Object.op_Implicit((Object)(object)((BraveBehaviour)target).sprite)) { ((BraveBehaviour)target).sprite.UpdateZDepth(); } yield return null; } rotationAnchor.DetachChildren(); yield return null; Object.Destroy((Object)(object)((Component)rotationAnchor).gameObject); } protected override void OnDestroy() { ((PlayerItem)this).OnDestroy(); } } public class RockSlide : PlayerItem { public static int RockSlidePickupID; public static GameObject RockslideObject; private GameObject m_MinesCageInObject; private bool m_PickedUp; private bool m_Ready; public static void Init(AssetBundle expandSharedAssets1) { //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) RockslideObject = expandSharedAssets1.LoadAsset("Rock Slide"); SpriteSerializer.AddSpriteToObject(RockslideObject, ExpandPrefabs.EXItemCollection, "rockslide", (PerpendicularState)0); RockSlide rockSlide = RockslideObject.AddComponent(); string shortDesc = "Crushing Defeat"; string longDesc = "Falling rocks are a well known threat to everyone, especially within the Gungeon.\n\nIt does not help that a long gone Gungeoneer accidentally popularized the idea of using falling debris as a weapon among the Gundead.\n\nHowever, they quickly grew tired of it, seeming too easy or effortless to eliminate Gungeoneers compared to the exhilarating experience of the combat they were forged for."; ItemBuilder.SetupItem((PickupObject)(object)rockSlide, shortDesc, longDesc, "ex"); ItemBuilder.SetCooldownType((PlayerItem)(object)rockSlide, ItemBuilder.CooldownType.Damage, 275f); ((PickupObject)rockSlide).quality = (ItemQuality)3; if (!ExpandSettings.EnableEXItems) { ((PickupObject)rockSlide).quality = (ItemQuality)(-100); } List spriteNameList = new List { "plunger_fire_001", "plunger_fire_002", "plunger_fire_003", "plunger_fire_004", "plunger_fire_005", "plunger_fire_006" }; ExpandUtility.GenerateSpriteAnimator(RockslideObject); ExpandUtility.AddAnimation(RockslideObject.GetComponent(), ExpandPrefabs.EXItemCollection.GetComponent(), spriteNameList, "Activate", (WrapMode)2, 8); RockSlidePickupID = ((PickupObject)rockSlide).PickupObjectId; } public RockSlide() { m_PickedUp = false; m_Ready = true; m_MinesCageInObject = ExpandObjectDatabase.Mines_Cave_In; } public override bool CanBeUsed(PlayerController user) { if (user.IsInCombat) { return ((PlayerItem)this).CanBeUsed(user); } return false; } protected override void DoEffect(PlayerController user) { if (!m_PickedUp) { m_PickedUp = true; } AkSoundEngine.PostEvent("Play_OBJ_detonate_push_01", ((Component)user).gameObject); SpawnRockslides(user); } public void SpawnRockslides(PlayerController user) { //IL_00fd: 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_010d: Unknown result type (might be due to invalid IL or missing references) ((BraveBehaviour)this).spriteAnimator.Play("Activate"); if (!user.CurrentRoom.HasActiveEnemies((ActiveEnemyType)1)) { return; } int num = Random.Range(1, user.CurrentRoom.GetActiveEnemies((ActiveEnemyType)1).Count); if (Random.value <= 0.35f) { num = user.CurrentRoom.GetActiveEnemies((ActiveEnemyType)1).Count; } else if (num > 3 && Random.value <= 0.5f) { num = 3; } if (num > 10) { num = 10; } List list = new List(); foreach (AIActor activeEnemy in user.CurrentRoom.GetActiveEnemies((ActiveEnemyType)1)) { list.Add(activeEnemy); } for (int i = 0; i < num; i++) { if (list.Count <= 0) { break; } AIActor val = BraveUtility.RandomElement(list); if (Object.op_Implicit((Object)(object)val) && !((BraveBehaviour)val).healthHaver.IsDead && !Object.op_Implicit((Object)(object)((Component)val).gameObject.GetComponent())) { Vector2 unitCenter = ((BraveBehaviour)val).specRigidbody.GetUnitCenter((ColliderType)1); ((MonoBehaviour)this).StartCoroutine(HandleTriggerRockSlide(user, m_MinesCageInObject, unitCenter)); list.Remove(val); } } } private IEnumerator HandleTriggerRockSlide(PlayerController user, GameObject RockSlidePrefab, Vector2 targetPosition) { //IL_001c: 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) RoomHandler currentRoom = user.CurrentRoom; GameObject val = Object.Instantiate(RockSlidePrefab, Vector2.op_Implicit(targetPosition), Quaternion.identity); HangingObjectController RockSlideController = val.GetComponent(); RockSlideController.triggerObjectPrefab = null; GameObject[] additionalDestroyObjects = (GameObject[])(object)new GameObject[1] { RockSlideController.additionalDestroyObjects[1] }; RockSlideController.additionalDestroyObjects = additionalDestroyObjects; Object.Destroy((Object)(object)((Component)val.transform.Find("Sign")).gameObject); RockSlideController.ConfigureOnPlacement(currentRoom); yield return (object)new WaitForSeconds(0.01f); RockSlideController.Interact(user); m_Ready = false; } public override void Update() { ((PlayerItem)this).Update(); if (!Dungeon.IsGenerating && m_PickedUp && !m_Ready && !((PlayerItem)this).IsOnCooldown && (!Object.op_Implicit((Object)(object)((BraveBehaviour)this).spriteAnimator) || !((BraveBehaviour)this).spriteAnimator.IsPlaying("Activate"))) { ((BraveBehaviour)this).sprite.SetSprite("rockslide"); m_Ready = true; } } public override void Pickup(PlayerController player) { ((PlayerItem)this).Pickup(player); m_PickedUp = true; if (m_Ready && !((PlayerItem)this).IsOnCooldown && (!Object.op_Implicit((Object)(object)((BraveBehaviour)this).spriteAnimator) || !((BraveBehaviour)this).spriteAnimator.IsPlaying("Activate"))) { ((BraveBehaviour)this).sprite.SetSprite("rockslide"); } else if (m_Ready && ((PlayerItem)this).IsOnCooldown && (!Object.op_Implicit((Object)(object)((BraveBehaviour)this).spriteAnimator) || !((BraveBehaviour)this).spriteAnimator.IsPlaying("Activate"))) { ((BraveBehaviour)this).sprite.SetSprite("plunger_fire_006"); } } protected override void OnPreDrop(PlayerController player) { ((PlayerItem)this).OnPreDrop(player); m_PickedUp = false; } protected override void OnDestroy() { m_PickedUp = false; ((PlayerItem)this).OnDestroy(); } } public class TheLeadKey : PlayerItem { public static int TheLeadKeyPickupID; public static GameObject TheLeadKeyObject; private Texture2D m_CachedScreenCapture; private bool m_InUse; private bool m_IsTeleporting; private bool m_DebugMode; private bool m_Configured; private Vector3 m_cachedRoomPosition; private List MainRoomlist; private List RewardRoomList; private List NPCRoomList; private List SecretRoomList; private List ShrineRoomList; private List ExitElevatorRoomList; public static void Init(AssetBundle expandSharedAssets1) { //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0092: 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_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Expected O, but got Unknown //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00af: 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_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Expected O, but got Unknown //IL_006c: Unknown result type (might be due to invalid IL or missing references) TheLeadKeyObject = expandSharedAssets1.LoadAsset("The Lead Key"); SpriteSerializer.AddSpriteToObject(TheLeadKeyObject, ExpandPrefabs.EXItemCollection, "theleadkey", (PerpendicularState)0); TheLeadKey theLeadKey = TheLeadKeyObject.AddComponent(); string shortDesc = "Ancient Dungeons Beyond Space"; string longDesc = "Takes you to a space that only exists in dreams, spitting you back out into the real world somewhere... else."; ItemBuilder.SetupItem((PickupObject)(object)theLeadKey, shortDesc, longDesc, "ex"); ItemBuilder.SetCooldownType((PlayerItem)(object)theLeadKey, ItemBuilder.CooldownType.Damage, 450f); ((PickupObject)theLeadKey).quality = (ItemQuality)3; if (!ExpandSettings.EnableEXItems) { ((PickupObject)theLeadKey).quality = (ItemQuality)(-100); } ((PlayerItem)theLeadKey).passiveStatModifiers = (StatModifier[])(object)new StatModifier[2] { new StatModifier { statToBoost = (StatType)14, amount = 1f, modifyType = (ModifyMethod)0, isMeatBunBuff = false }, new StatModifier { statToBoost = (StatType)8, amount = 1f, modifyType = (ModifyMethod)0, isMeatBunBuff = false } }; TheLeadKeyPickupID = ((PickupObject)theLeadKey).PickupObjectId; } public TheLeadKey() { m_InUse = false; m_IsTeleporting = false; m_DebugMode = false; m_Configured = false; } private void SetupLists() { //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Invalid comparison between Unknown and I4 if ((MainRoomlist == null) | (RewardRoomList == null) | (NPCRoomList == null) | (SecretRoomList == null) | (ShrineRoomList == null)) { MainRoomlist = new List(); RewardRoomList = new List(); NPCRoomList = new List(); SecretRoomList = new List(); ShrineRoomList = new List(); ExitElevatorRoomList = new List(); foreach (WeightedRoom element in ExpandPrefabs.CustomRoomTable.includedRooms.elements) { if ((Object)(object)element.room != (Object)null && element.room.overrideRoomVisualType == -1) { MainRoomlist.Add(element.room); } } foreach (WeightedRoom element2 in ExpandPrefabs.MegaChallengeShrineTable.includedRooms.elements) { if ((Object)(object)element2.room != (Object)null) { MainRoomlist.Add(element2.room); } } foreach (PrototypeDungeonRoom item3 in MainRoomlist) { if ((int)item3.category == 4) { RewardRoomList.Add(item3); } } PrototypeDungeonRoom[] bonusChestRooms = ExpandPrefabs.BonusChestRooms; foreach (PrototypeDungeonRoom item in bonusChestRooms) { RewardRoomList.Add(item); } RewardRoomList.Add(ExpandPrefabs.reward_room); RewardRoomList.Add(ExpandRoomPrefabs.Expand_Apache_RickRollChest); bonusChestRooms = ExpandPrefabs.winchesterrooms; foreach (PrototypeDungeonRoom item2 in bonusChestRooms) { NPCRoomList.Add(item2); } foreach (WeightedRoom element3 in ExpandPrefabs.shop_room_table.includedRooms.elements) { if ((Object)(object)element3.room != (Object)null) { NPCRoomList.Add(element3.room); } } foreach (WeightedRoom element4 in ExpandPrefabs.SecretRoomTable.includedRooms.elements) { if ((Object)(object)element4.room != (Object)null) { SecretRoomList.Add(element4.room); } } SecretRoomList.Add(ExpandPrefabs.ResourcefulRat_SecondSecretRoom_01); foreach (WeightedRoom element5 in ExpandPrefabs.basic_special_rooms.includedRooms.elements) { if ((Object)(object)element5.room != (Object)null && !((Object)element5.room).name.ToLower().StartsWith("shrine_demonface_room")) { ShrineRoomList.Add(element5.room); } } ShrineRoomList.Add(ExpandPrefabs.black_market); ExitElevatorRoomList.Add(ExpandPrefabs.exit_room_basic); ExitElevatorRoomList.Add(ExpandPrefabs.tiny_exit); } m_Configured = true; } private bool IsUsableRightNow(PlayerController user) { //IL_0036: 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_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 if (!Object.op_Implicit((Object)(object)user)) { return false; } if (user != null && user.CurrentRoom?.area?.PrototypeRoomCategory == (RoomCategory?)3) { return false; } if (m_InUse | user.IsInCombat | user.IsInMinecart | user.InExitCell) { return false; } if (user.CurrentRoom != null && user.CurrentRoom.IsSealed) { return false; } GameManager instance = GameManager.Instance; if (instance != null && (int)instance.CurrentLevelOverrideState == 3) { return false; } if (ExpandTheGungeon.MrCapInUse) { return false; } return true; } public override bool CanBeUsed(PlayerController user) { if (IsUsableRightNow(user)) { return ((PlayerItem)this).CanBeUsed(user); } return false; } protected override void DoEffect(PlayerController user) { m_InUse = true; if (!m_Configured) { SetupLists(); } ((MonoBehaviour)GameManager.Instance).StartCoroutine(CorruptionRoomTime(user)); } private Texture2D PortalTextureRender(ValidTilesets currentTileset, string CurrentDungeonName) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Invalid comparison between Unknown and I4 //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Invalid comparison between Unknown and I4 //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Invalid comparison between Unknown and I4 //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Invalid comparison between Unknown and I4 //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Invalid comparison between Unknown and I4 //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Invalid comparison between Unknown and I4 //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Expected I4, but got Unknown //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Invalid comparison between Unknown and I4 //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Invalid comparison between Unknown and I4 //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Invalid comparison between Unknown and I4 //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Invalid comparison between Unknown and I4 //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Invalid comparison between Unknown and I4 //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Invalid comparison between Unknown and I4 //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Invalid comparison between Unknown and I4 //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Invalid comparison between Unknown and I4 //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Invalid comparison between Unknown and I4 Texture2D val = null; if ((int)currentTileset <= 128) { if ((int)currentTileset <= 16) { switch (currentTileset - 1) { case 1: goto IL_00be; case 3: goto IL_00ce; case 0: goto IL_00ee; case 2: goto IL_0205; } if ((int)currentTileset != 8) { if ((int)currentTileset != 16) { goto IL_0205; } val = ExpandAssets.LoadAsset("EXPortal_Mines"); } else { val = ExpandAssets.LoadAsset("EXPortal_Cathedral"); } } else if ((int)currentTileset != 32) { if ((int)currentTileset != 64) { if ((int)currentTileset != 128) { goto IL_0205; } val = ExpandAssets.LoadAsset("EXPortal_BulletHell"); } else { val = ExpandAssets.LoadAsset("EXPortal_Forge"); } } else { val = ExpandAssets.LoadAsset("EXPortal_Catacombs"); } } else if ((int)currentTileset <= 1024) { if ((int)currentTileset == 256) { val = (CurrentDungeonName.ToLower().Contains("future") ? ExpandAssets.LoadAsset("EXPortal_Future") : (CurrentDungeonName.ToLower().Contains("office") ? ExpandAssets.LoadAsset("EXPortal_Office") : ((!CurrentDungeonName.ToLower().Contains("backrooms")) ? ExpandAssets.LoadAsset("EXPortal_Space") : ExpandAssets.LoadAsset("EXPortal_Backrooms")))); } else if ((int)currentTileset != 512) { if ((int)currentTileset != 1024) { goto IL_0205; } val = ExpandAssets.LoadAsset("EXPortal_West"); } else { val = ExpandAssets.LoadAsset("EXPortal_Phobos"); } } else if ((int)currentTileset <= 4096) { if ((int)currentTileset != 2048) { if ((int)currentTileset != 4096) { goto IL_0205; } val = ExpandAssets.LoadAsset("EXPortal_Belly"); } else { val = ExpandAssets.LoadAsset("EXPortal_Nakatomi"); } } else if ((int)currentTileset != 8192) { if ((int)currentTileset != 32768) { goto IL_0205; } val = ExpandAssets.LoadAsset("EXPortal_ResourcefulRat"); } else { val = ExpandAssets.LoadAsset("EXPortal_Jungle"); } goto IL_0210; IL_00ce: val = ExpandAssets.LoadAsset("EXPortal_Sewer"); goto IL_0210; IL_00be: val = ExpandAssets.LoadAsset("EXPortal_Castle"); goto IL_0210; IL_00ee: val = ExpandAssets.LoadAsset("EXPortal_Gungeon"); goto IL_0210; IL_0210: if (!Object.op_Implicit((Object)(object)val)) { val = ExpandAssets.LoadAsset("EXPortal_Gungeon"); } return val; IL_0205: val = ExpandAssets.LoadAsset("EXPortal_Gungeon"); goto IL_0210; } public override void Pickup(PlayerController player) { ((PlayerItem)this).Pickup(player); SetupLists(); } protected override void OnPreDrop(PlayerController player) { ((PlayerItem)this).OnPreDrop(player); } public override void Update() { ((PlayerItem)this).Update(); } public void UnfreezeClearChallenge(PlayerController user) { user.ClearAllInputOverrides(); try { if (ChallengeManager.Instance.ActiveChallenges.Count > 0 && user.IsInCombat) { ChallengeManager.Instance.ForceStop(); } } catch (Exception) { } } private void StunEnemiesForTeleport(RoomHandler targetRoom, float StunDuration = 0.5f) { //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) if (!targetRoom.HasActiveEnemies((ActiveEnemyType)0)) { return; } List activeEnemies = targetRoom.GetActiveEnemies((ActiveEnemyType)0); if ((activeEnemies == null) | (activeEnemies.Count <= 0)) { return; } for (int i = 0; i < activeEnemies.Count; i++) { if (activeEnemies[i].IsNormalEnemy && Object.op_Implicit((Object)(object)((BraveBehaviour)activeEnemies[i]).healthHaver) && !((BraveBehaviour)activeEnemies[i]).healthHaver.IsBoss) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)activeEnemies[i]).specRigidbody)) { _ = ((BraveBehaviour)activeEnemies[i]).specRigidbody.UnitBottomLeft; } else { _ = ((BraveBehaviour)activeEnemies[i]).sprite.WorldBottomLeft; } if (Object.op_Implicit((Object)(object)((BraveBehaviour)activeEnemies[i]).specRigidbody)) { _ = ((BraveBehaviour)activeEnemies[i]).specRigidbody.UnitTopRight; } else { _ = ((BraveBehaviour)activeEnemies[i]).sprite.WorldTopRight; } if (Object.op_Implicit((Object)(object)activeEnemies[i]) && Object.op_Implicit((Object)(object)((BraveBehaviour)activeEnemies[i]).behaviorSpeculator)) { ((BraveBehaviour)activeEnemies[i]).behaviorSpeculator.Stun(StunDuration, false); } } } } private void TogglePlayerInput(PlayerController targetPlayer, bool lockState) { Minimap.Instance.ToggleMinimap(false, false); if (lockState) { targetPlayer.ForceStopDodgeRoll(); targetPlayer.CurrentInputState = (PlayerInputState)1; ((BraveBehaviour)targetPlayer).healthHaver.IsVulnerable = false; } else { targetPlayer.CurrentInputState = (PlayerInputState)0; ((BraveBehaviour)targetPlayer).healthHaver.IsVulnerable = true; } } public IEnumerator CorruptionRoomTime(PlayerController user) { RoomHandler currentRoom = user.CurrentRoom; Dungeon dungeon = GameManager.Instance.Dungeon; m_CachedScreenCapture = PortalTextureRender(dungeon.tileIndices.tilesetId, ((Object)dungeon).name); yield return null; if (currentRoom.HasActiveEnemies((ActiveEnemyType)1)) { StunEnemiesForTeleport(currentRoom, 1f); } TogglePlayerInput(user, lockState: true); m_cachedRoomPosition = ((BraveBehaviour)user).transform.position; AkSoundEngine.PostEvent("Play_EX_CorruptionRoomTransition_01", ((Component)this).gameObject); ExpandShaders.Instance.GlitchScreenForDuration(1f, 1.4f); GameObject TempFXObject = Object.Instantiate(ExpandAssets.LoadAsset("EXLeadKeyGlitchScreenFX"), ((BraveBehaviour)this).transform.position, Quaternion.identity); TempFXObject.transform.SetParent(((Component)dungeon).gameObject.transform); ExpandScreenFXController fxController = TempFXObject.GetComponent(); if (!ExpandLists.InvalidGraphicsModes.Contains(SystemInfo.graphicsDeviceType)) { while (fxController.GlitchAmount < 1f) { fxController.GlitchAmount += BraveTime.DeltaTime / 0.5f; yield return null; } } else { fxController.GlitchAmount = 0f; Object.Destroy((Object)(object)fxController); Object.Destroy((Object)(object)TempFXObject); } bool m_CopyCurrentRoom = false; if (!string.IsNullOrEmpty(currentRoom.GetRoomName())) { m_CopyCurrentRoom = Random.value < 0.05f; } PrototypeDungeonRoom SelectedPrototypeDungeonRoom; if (m_CopyCurrentRoom) { try { SelectedPrototypeDungeonRoom = RoomBuilder.GenerateRoomPrefabFromTexture2D(RoomDebug.DumpRoomAreaToTexture2D(currentRoom), (RoomCategory)2, (PitBorderType)0, (CoreDamageTypes)0); } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[ExpandTheGungeon.TheLeadKey] ERROR: Exception occured while building room!", true); Debug.LogException(ex); } AkSoundEngine.PostEvent("Play_OBJ_purchase_unable_01", ((Component)this).gameObject); if (Object.op_Implicit((Object)(object)fxController)) { fxController.GlitchAmount = 0f; Object.Destroy((Object)(object)fxController); } if (Object.op_Implicit((Object)(object)TempFXObject)) { Object.Destroy((Object)(object)TempFXObject); } m_InUse = false; TogglePlayerInput(user, lockState: false); ((PlayerItem)this).ClearCooldowns(); yield break; } } else { float value = Random.value; bool flag = false; if (value <= 0.01f) { flag = true; } if (!(!flag | ExpandSettings.HasSpawnedSecretBoss)) { ExpandSettings.HasSpawnedSecretBoss = true; RoomHandler[] SecretBossRoomCluster; try { SecretBossRoomCluster = GenerateCorruptedBossRoomCluster(null, (LightGenerationStyle)0); } catch (Exception ex2) { ETGModConsole.Log((object)"[ExpandTheGungeon.TheLeadKey] ERROR: Exception occured while building room!", true); if (ExpandSettings.debugMode) { Debug.LogException(ex2); } AkSoundEngine.PostEvent("Play_OBJ_purchase_unable_01", ((Component)this).gameObject); if (Object.op_Implicit((Object)(object)fxController)) { fxController.GlitchAmount = 0f; Object.Destroy((Object)(object)fxController); } if (Object.op_Implicit((Object)(object)TempFXObject)) { Object.Destroy((Object)(object)TempFXObject); } m_InUse = false; TogglePlayerInput(user, lockState: false); ((PlayerItem)this).ClearCooldowns(); yield break; } yield return null; if (SecretBossRoomCluster == null) { AkSoundEngine.PostEvent("Play_OBJ_purchase_unable_01", ((Component)this).gameObject); if (Object.op_Implicit((Object)(object)fxController)) { while (fxController.GlitchAmount > 0f) { fxController.GlitchAmount -= BraveTime.DeltaTime / 0.5f; yield return null; } } if (Object.op_Implicit((Object)(object)fxController)) { fxController.GlitchAmount = 0f; Object.Destroy((Object)(object)fxController); } if (Object.op_Implicit((Object)(object)TempFXObject)) { Object.Destroy((Object)(object)TempFXObject); } m_InUse = false; TogglePlayerInput(user, lockState: false); ((PlayerItem)this).ClearCooldowns(); yield break; } ExpandPlaceCorruptTiles.Instance.PlaceCorruptTiles(dungeon, SecretBossRoomCluster[0], null, corruptWallsOnly: true, isLeadKeyRoom: true); ExpandPlaceCorruptTiles.Instance.PlaceCorruptTiles(dungeon, SecretBossRoomCluster[1], null, corruptWallsOnly: true, isLeadKeyRoom: true); ExpandPlaceCorruptTiles.DestroyInstance(); TeleportToRoom(user, SecretBossRoomCluster[0]); while (m_IsTeleporting) { yield return null; } GameObject val = Object.Instantiate(ExpandPrefabs.EX_GlitchPortal, ((Component)user).gameObject.transform.position + new Vector3(0.75f, 0f), Quaternion.identity); ExpandGlitchPortalController m_PortalControllerBossCluster = val.GetComponent(); if (Object.op_Implicit((Object)(object)m_CachedScreenCapture)) { ((BraveBehaviour)m_PortalControllerBossCluster).renderer.material.SetTexture("_PortalTex", (Texture)(object)m_CachedScreenCapture); } m_PortalControllerBossCluster.CachedPosition = m_cachedRoomPosition; m_PortalControllerBossCluster.ParentRoom = SecretBossRoomCluster[0]; SecretBossRoomCluster[0].RegisterInteractable((IPlayerInteractable)(object)m_PortalControllerBossCluster); if (Object.op_Implicit((Object)(object)fxController)) { while (fxController.GlitchAmount > 0f) { fxController.GlitchAmount -= BraveTime.DeltaTime / 0.5f; yield return null; } } TogglePlayerInput(user, lockState: false); m_PortalControllerBossCluster.Configured = true; if (Object.op_Implicit((Object)(object)fxController)) { fxController.GlitchAmount = 0f; Object.Destroy((Object)(object)fxController); } Object.Destroy((Object)(object)TempFXObject); m_InUse = false; if (m_DebugMode) { ((PlayerItem)this).ClearCooldowns(); } yield break; } if (value <= 0.25f) { SelectedPrototypeDungeonRoom = BraveUtility.RandomElement(RewardRoomList); } else if (value <= 0.5f) { List list = new List(); list.Add(BraveUtility.RandomElement(NPCRoomList)); list.Add(BraveUtility.RandomElement(SecretRoomList)); list.Add(BraveUtility.RandomElement(ShrineRoomList)); SelectedPrototypeDungeonRoom = BraveUtility.RandomElement(list); } else { SelectedPrototypeDungeonRoom = BraveUtility.RandomElement(MainRoomlist); } } if ((Object)(object)SelectedPrototypeDungeonRoom == (Object)null) { AkSoundEngine.PostEvent("Play_OBJ_purchase_unable_01", ((Component)this).gameObject); if (Object.op_Implicit((Object)(object)fxController)) { while (fxController.GlitchAmount > 0f) { fxController.GlitchAmount -= BraveTime.DeltaTime / 0.5f; yield return null; } fxController.GlitchAmount = 0f; Object.Destroy((Object)(object)fxController); } if (Object.op_Implicit((Object)(object)TempFXObject)) { Object.Destroy((Object)(object)TempFXObject); } m_InUse = false; TogglePlayerInput(user, lockState: false); ((PlayerItem)this).ClearCooldowns(); yield break; } if (m_CopyCurrentRoom) { SelectedPrototypeDungeonRoom.overrideRoomVisualType = currentRoom.RoomVisualSubtype; } List list2 = new List { "castle", "sewer", "jungle", "phobos", "gungeon", "cathedral", "belly", "mines", "resourcefulrat", "catacombs", "west", "forge", "bullethell", "backrooms" }; for (int i = 0; i < list2.Count; i++) { if (((Object)((Component)dungeon).gameObject).name.ToLower().Contains(list2[i])) { list2.Remove(list2[i]); break; } } string text = BraveUtility.RandomElement(BraveUtility.Shuffle(list2)); foreach (string item in list2) { if (((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains(item)) { text = item; break; } } if (((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains("castle") && !((Object)((Component)dungeon).gameObject).name.ToLower().Contains("castle")) { text = "Castle"; } else if (((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains("sewer_") && !((Object)((Component)dungeon).gameObject).name.ToLower().Contains("sewer")) { text = "Sewer"; } else if (((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains("expand_jungle") && !((Object)((Component)dungeon).gameObject).name.ToLower().Contains("jungle")) { text = "Jungle"; } else if (!((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains("expand_forest") || ((Object)((Component)dungeon).gameObject).name.ToLower().Contains("jungle")) { if (((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains("phobos") && !((Object)((Component)dungeon).gameObject).name.ToLower().Contains("phobos")) { text = "Phobos"; } else if (((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains("gungeon_") && !((Object)((Component)dungeon).gameObject).name.ToLower().Contains("gungeon")) { text = "Gungeon"; } else if (((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains("cathedral_") && !((Object)((Component)dungeon).gameObject).name.ToLower().Contains("cathedral")) { text = "Cathedral"; } else if (((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains("expand_belly") && !((Object)((Component)dungeon).gameObject).name.ToLower().Contains("belly")) { text = "Belly"; } else if (((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains("mine_") && !((Object)((Component)dungeon).gameObject).name.ToLower().Contains("mines")) { text = "Mines"; } else if (((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains("mines_") && !((Object)((Component)dungeon).gameObject).name.ToLower().Contains("mines")) { text = "Mines"; } else if (((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains("hollow_") && !((Object)((Component)dungeon).gameObject).name.ToLower().Contains("catacombs")) { text = "Catacombs"; } else if (((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains("catacomb") && !((Object)((Component)dungeon).gameObject).name.ToLower().Contains("catacombs")) { text = "Catacombs"; } else if (((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains("connector_shortcatacave") && !((Object)((Component)dungeon).gameObject).name.ToLower().Contains("catacombs")) { text = "Catacombs"; } else if (((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains("normal_clobulonparadise") && !((Object)((Component)dungeon).gameObject).name.ToLower().Contains("catacombs")) { text = "Catacombs"; } else if (((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains("normal_cubeworld") && !((Object)((Component)dungeon).gameObject).name.ToLower().Contains("catacombs")) { text = "Catacombs"; } else if (((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains("normal_themummyreturns") && !((Object)((Component)dungeon).gameObject).name.ToLower().Contains("catacombs")) { text = "Catacombs"; } else if (((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains("normal_shelletons") && !((Object)((Component)dungeon).gameObject).name.ToLower().Contains("catacombs")) { text = "Catacombs"; } else if (((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains("normal_skeletonsandcubes") && !((Object)((Component)dungeon).gameObject).name.ToLower().Contains("catacombs")) { text = "Catacombs"; } else if (((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains("normal_blobsandcubeslivingtogether") && !((Object)((Component)dungeon).gameObject).name.ToLower().Contains("catacombs")) { text = "Catacombs"; } else if ((!((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains("office_") || ((Object)((Component)dungeon).gameObject).name.ToLower().Contains("nakatomi")) && (!((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains("expand_west") || ((Object)((Component)dungeon).gameObject).name.ToLower().Contains("west"))) { if (((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains("forge") && !((Object)((Component)dungeon).gameObject).name.ToLower().Contains("forge")) { text = "Forge"; } else if (((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains("bhell_") && !((Object)((Component)dungeon).gameObject).name.ToLower().Contains("bullethell")) { text = "BulletHell"; } else if (((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains("hell_") && !((Object)((Component)dungeon).gameObject).name.ToLower().Contains("bullethell")) { text = "BulletHell"; } else if (((Object)SelectedPrototypeDungeonRoom).name.ToLower().Contains("backrooms_") && !((Object)((Component)dungeon).gameObject).name.ToLower().Contains("backrooms")) { text = "Backrooms"; } } } Dungeon orLoadByName = DungeonDatabase.GetOrLoadByName("Base_" + text); RoomHandler GlitchRoom = ((text.ToLower().Contains(((Object)((Component)dungeon).gameObject).name) || m_CopyCurrentRoom) ? ExpandUtility.AddCustomRuntimeRoom(SelectedPrototypeDungeonRoom, addRoomToMinimap: false, addTeleporter: false, isSecretRatExitRoom: false, null, (LightGenerationStyle)0) : ExpandUtility.AddCustomRuntimeRoomWithTileSet(orLoadByName, SelectedPrototypeDungeonRoom, addRoomToMinimap: false, addTeleporter: false, isSecretRatExitRoom: false, null, (LightGenerationStyle)0)); if (GlitchRoom == null) { AkSoundEngine.PostEvent("Play_OBJ_purchase_unable_01", ((Component)this).gameObject); if (Object.op_Implicit((Object)(object)fxController)) { while (fxController.GlitchAmount > 0f) { fxController.GlitchAmount -= BraveTime.DeltaTime / 0.5f; yield return null; } fxController.GlitchAmount = 0f; Object.Destroy((Object)(object)fxController); } if (Object.op_Implicit((Object)(object)TempFXObject)) { Object.Destroy((Object)(object)TempFXObject); } m_InUse = false; TogglePlayerInput(user, lockState: false); ((PlayerItem)this).ClearCooldowns(); yield break; } if (!string.IsNullOrEmpty(GlitchRoom.GetRoomName())) { GlitchRoom.area.PrototypeRoomName = "Corrupted " + GlitchRoom.GetRoomName(); } else { GlitchRoom.area.PrototypeRoomName = "Corrupted Room"; } if (m_CopyCurrentRoom) { if (ExpandSettings.EnableGlitchFloorScreenShader && !ExpandLists.InvalidGraphicsModes.Contains(SystemInfo.graphicsDeviceType) && !dungeon.IsGlitchDungeon) { GameObject obj = Object.Instantiate(ExpandAssets.LoadAsset("EXRoomCorruptionFX"), Vector2.op_Implicit(GlitchRoom.area.UnitCenter), Quaternion.identity); ExpandScreenFXController component = obj.GetComponent(); component.ParentRoom = GlitchRoom; component.UseCorruptionAmbience = m_CopyCurrentRoom; obj.transform.SetParent(((Component)dungeon).gameObject.transform); } try { for (int j = 0; j < currentRoom.hierarchyParent.childCount; j++) { Transform child = currentRoom.hierarchyParent.GetChild(j); if (Object.op_Implicit((Object)(object)((child != null) ? ((Component)child).gameObject : null)) && IsValidObject(((Component)child).gameObject)) { Vector3 val2 = child.position - ((IntVector2)(ref currentRoom.area.basePosition)).ToVector3() + ((IntVector2)(ref GlitchRoom.area.basePosition)).ToVector3(); GameObject val3 = Object.Instantiate(((Component)child).gameObject, val2, Quaternion.identity); val3.transform.SetParent(GlitchRoom.hierarchyParent); if (Object.op_Implicit((Object)(object)val3.GetComponent())) { Object.Destroy((Object)(object)val3.GetComponent()); } if (Object.op_Implicit((Object)(object)val3.GetComponent())) { Object.Destroy((Object)(object)val3.GetComponent()); } if (val3.GetComponent() != null) { val3.GetComponent().ConfigureOnPlacement(GlitchRoom); } if (Object.op_Implicit((Object)(object)val3.GetComponent())) { val3.GetComponent().SpeaksGleepGlorpenese = true; } if (val3.GetComponent() != null) { GlitchRoom.RegisterInteractable(val3.GetComponent()); } if (Object.op_Implicit((Object)(object)val3.GetComponent())) { ExpandKickableObject expandKickableObject = val3.AddComponent(); val3.GetComponent().ConfigureOnPlacement(GlitchRoom); GlitchRoom.RegisterInteractable((IPlayerInteractable)(object)expandKickableObject); } if (Object.op_Implicit((Object)(object)val3) && Random.value <= 0.4f && !Object.op_Implicit((Object)(object)val3.GetComponent()) && !Object.op_Implicit((Object)(object)val3.GetComponent()) && !string.IsNullOrEmpty(((Object)val3).name) && !((Object)val3).name.ToLower().StartsWith("glitchtile") && !((Object)val3).name.ToLower().StartsWith("ex secret door") && !((Object)val3).name.ToLower().StartsWith("lock") && !((Object)val3).name.ToLower().StartsWith("chest")) { float glitchInterval = Random.Range(0.02f, 0.04f); float dispProbability = Random.Range(0.06f, 0.08f); float dispIntensity = Random.Range(0.07f, 0.1f); float colorProbability = Random.Range(0.035f, 0.1f); float colorIntensity = Random.Range(0.05f, 0.1f); ExpandShaders.Instance.BecomeGlitched(val3, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); } } } } catch (Exception ex3) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[ExpandTheGungeon.TheLeadKey] ERROR: Exception occured while duplicating objects for new room!", true); Debug.LogException(ex3); } } IntVector2 randomAvailableCellForChest = ExpandObjectDatabase.GetRandomAvailableCellForChest(dungeon, GlitchRoom, new List()); if (randomAvailableCellForChest != IntVector2.Zero) { ExpandFakeChest component2 = Object.Instantiate(ExpandPrefabs.SurpriseChestObject, ((IntVector2)(ref randomAvailableCellForChest)).ToVector3(), Quaternion.identity).GetComponent(); component2.ConfigureOnPlacement(GlitchRoom); GlitchRoom.RegisterInteractable((IPlayerInteractable)(object)component2); } } if ((int)GlitchRoom.area.PrototypeRoomCategory == 6 && GlitchRoom.IsSecretRoom) { GlitchRoom.secretRoomManager.OpenDoor(); } if (m_CopyCurrentRoom) { ExpandPlaceCorruptTiles.Instance.PlaceCorruptTiles(dungeon, GlitchRoom, null, corruptWallsOnly: false, isLeadKeyRoom: true, isCorruptedJunkRoom: true); } else { ExpandPlaceCorruptTiles.Instance.PlaceCorruptTiles(dungeon, GlitchRoom, null, corruptWallsOnly: true, isLeadKeyRoom: true, isCorruptedJunkRoom: true); } ExpandPlaceCorruptTiles.DestroyInstance(); bool isWinchesterRoom = false; if (!string.IsNullOrEmpty(GlitchRoom.GetRoomName()) && GlitchRoom.GetRoomName().ToLower().Contains("winchesterroom")) { isWinchesterRoom = true; } TeleportToRoom(user, GlitchRoom, isSecondaryPlayer: false, m_CopyCurrentRoom, null, isWinchesterRoom); yield return null; while (m_IsTeleporting) { yield return null; } if (Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)user).transform.position) != null && user.CurrentRoom.HasActiveEnemies((ActiveEnemyType)1)) { user.CurrentRoom.CompletelyPreventLeaving = true; } if (GameManager.Instance.CurrentFloor == 1 && dungeon.data.Entrance != null) { dungeon.data.Entrance.AddProceduralTeleporterToRoom(); } GameObject val4 = Object.Instantiate(ExpandPrefabs.EX_GlitchPortal, ((Component)user).gameObject.transform.position + new Vector3(0.75f, 0f), Quaternion.identity); ExpandGlitchPortalController m_PortalController = val4.GetComponent(); if (Object.op_Implicit((Object)(object)m_CachedScreenCapture)) { ((BraveBehaviour)m_PortalController).renderer.material.SetTexture("_PortalTex", (Texture)(object)m_CachedScreenCapture); } m_PortalController.CachedPosition = m_cachedRoomPosition; m_PortalController.ParentRoom = GlitchRoom; GlitchRoom.RegisterInteractable((IPlayerInteractable)(object)m_PortalController); if (Object.op_Implicit((Object)(object)fxController)) { while (fxController.GlitchAmount > 0f) { fxController.GlitchAmount -= BraveTime.DeltaTime / 0.5f; yield return null; } } TogglePlayerInput(user, lockState: false); m_PortalController.Configured = true; if (Object.op_Implicit((Object)(object)TempFXObject)) { Object.Destroy((Object)(object)TempFXObject); } m_InUse = false; if (m_DebugMode) { ((PlayerItem)this).ClearCooldowns(); } } private bool IsValidObject(GameObject sourceObject) { foreach (Type item in new List { typeof(PlayerController), typeof(AIActor), typeof(ElevatorDepartureController), typeof(TeleporterController), typeof(BaseShopController), typeof(ExpandKickableObject), typeof(MineCartController), typeof(ExpandSecretDoorPlacable), typeof(ExpandElevatorDepartureManager), typeof(TrapController) }) { if (Object.op_Implicit((Object)(object)sourceObject.GetComponent(item))) { return false; } } return true; } public void TeleportToRoom(PlayerController targetPlayer, RoomHandler targetRoom, bool isSecondaryPlayer = false, bool isCorruptedRoomCopy = false, Vector2? overridePosition = null, bool isWinchesterRoom = false) { //IL_000f: 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_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0034: 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_004a: 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_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: 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_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0166: 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_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_0136: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_0330: Unknown result type (might be due to invalid IL or missing references) //IL_0336: Invalid comparison between Unknown and I4 //IL_0379: Unknown result type (might be due to invalid IL or missing references) //IL_038b: Unknown result type (might be due to invalid IL or missing references) //IL_0390: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Unknown result type (might be due to invalid IL or missing references) //IL_0223: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_02a6: Unknown result type (might be due to invalid IL or missing references) //IL_02ba: Unknown result type (might be due to invalid IL or missing references) m_IsTeleporting = true; bool flag = false; Vector2 val = Vector2.op_Implicit(((BraveBehaviour)targetPlayer).transform.position - ((IntVector2)(ref targetPlayer.CurrentRoom.area.basePosition)).ToVector3()); IntVector2 val2 = Vector2Extensions.ToIntVector2(((GameActor)targetPlayer).CenterPosition, (VectorConversions)2) - targetPlayer.CurrentRoom.area.basePosition; Vector2 val3 = val + ((IntVector2)(ref targetRoom.area.basePosition)).ToVector2(); if (isWinchesterRoom && targetRoom != null && Object.op_Implicit((Object)(object)targetRoom.hierarchyParent)) { int childCount = targetRoom.hierarchyParent.childCount; for (int i = 0; i < childCount; i++) { Transform child = targetRoom.hierarchyParent.GetChild(i); if (Object.op_Implicit((Object)(object)child) && Object.op_Implicit((Object)(object)((Component)child).gameObject) && Object.op_Implicit((Object)(object)((Component)child).gameObject.GetComponent())) { overridePosition = TransformExtensions.PositionVector2(child) - new Vector2(1f, 0.5f); break; } } } if (overridePosition.HasValue) { val3 = ((!isWinchesterRoom) ? (overridePosition.Value + ((IntVector2)(ref targetRoom.area.basePosition)).ToVector2()) : overridePosition.Value); } else { if (isCorruptedRoomCopy && !GameManager.Instance.Dungeon.data.isPlainEmptyCell(val2.x + targetRoom.area.basePosition.x, val2.y + targetRoom.area.basePosition.y)) { flag = true; } else if (!isCorruptedRoomCopy) { flag = true; } if (flag) { IntVector2? val4 = ExpandUtility.GetRandomAvailableCellForPlayer(GameManager.Instance.Dungeon, targetRoom); if (val4.HasValue) { IntVector2 value = val4.Value; val3 = Vector2.op_Implicit(((IntVector2)(ref value)).ToVector3()); } else { val4 = GetRandomAvailableCell(targetRoom, new IntVector2(2, 2)); } if (!val4.HasValue) { m_IsTeleporting = false; return; } } } List enemiesFromNewRoom = GetEnemiesFromNewRoom(targetRoom, (ActiveEnemyType)0); List activeEnemies = targetRoom.GetActiveEnemies((ActiveEnemyType)0); if (enemiesFromNewRoom != null && enemiesFromNewRoom.Count > 0) { for (int j = 0; j < enemiesFromNewRoom.Count; j++) { if (Vector2.Distance(val3, TransformExtensions.PositionVector2(((Component)enemiesFromNewRoom[j]).gameObject.transform)) < 2.5f && Object.op_Implicit((Object)(object)((BraveBehaviour)enemiesFromNewRoom[j]).healthHaver) && !((BraveBehaviour)enemiesFromNewRoom[j]).healthHaver.IsBoss) { enemiesFromNewRoom[j].EraseFromExistenceWithRewards(false); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[ExpandTheGungeon] TheLeadKey: Enemy too close to spawn point. Enemy removed from room!", true); } } } } if (activeEnemies != null && activeEnemies.Count > 0) { for (int k = 0; k < activeEnemies.Count; k++) { if (Vector2.Distance(val3, TransformExtensions.PositionVector2(((Component)activeEnemies[k]).gameObject.transform)) < 2.5f && Object.op_Implicit((Object)(object)((BraveBehaviour)activeEnemies[k]).healthHaver) && !((BraveBehaviour)activeEnemies[k]).healthHaver.IsBoss) { activeEnemies[k].EraseFromExistenceWithRewards(false); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[ExpandTheGungeon] TheLeadKey: Enemy too close to spawn point. Enemy removed from room!", true); } } } } if ((int)GameManager.Instance.CurrentGameType == 1 && !isSecondaryPlayer) { PlayerController otherPlayer = GameManager.Instance.GetOtherPlayer(targetPlayer); if (Object.op_Implicit((Object)(object)otherPlayer)) { TeleportToRoom(otherPlayer, targetRoom, isSecondaryPlayer: true, isCorruptedRoomCopy: true); } } targetPlayer.DoVibration((Time)20, (Strength)20); ((MonoBehaviour)GameManager.Instance).StartCoroutine(HandleTeleportToRoom(targetPlayer, targetRoom, val3)); ((BraveBehaviour)targetPlayer).specRigidbody.Velocity = Vector2.zero; ((BraveBehaviour)targetPlayer).knockbackDoer.TriggerTemporaryKnockbackInvulnerability(1f); targetRoom.EnsureUpstreamLocksUnlocked(); } private IEnumerator HandleTeleportToRoom(PlayerController targetPlayer, RoomHandler targetRoom, Vector2 targetPoint) { //IL_001c: 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) CameraController cameraController = GameManager.Instance.MainCameraController; Vector2 offsetVector = Vector2.op_Implicit(((BraveBehaviour)cameraController).transform.position - ((BraveBehaviour)targetPlayer).transform.position); offsetVector -= cameraController.GetAimContribution(); cameraController.SetManualControl(true, false); cameraController.OverridePosition = ((BraveBehaviour)cameraController).transform.position; yield return (object)new WaitForSeconds(0.1f); ((BraveBehaviour)targetPlayer).transform.position = Vector2.op_Implicit(targetPoint); ((BraveBehaviour)targetPlayer).specRigidbody.Reinitialize(); ((BraveBehaviour)targetPlayer).specRigidbody.RecheckTriggers = true; if ((int)GameManager.Instance.CurrentGameType == 1) { cameraController.OverridePosition = Vector2.op_Implicit(cameraController.GetIdealCameraPosition()); } else { cameraController.OverridePosition = Vector2Extensions.ToVector3ZUp(targetPoint + offsetVector, 0f); } targetPlayer.WarpFollowersToPlayer(false); targetPlayer.WarpCompanionsToPlayer(false); ExpandCombatRoomManager CombatManager = null; if (targetRoom != null) { StunEnemiesForTeleport(targetRoom, 1.8f); GameObject val = new GameObject("Room Manager") { layer = 0 }; val.transform.position = ((BraveBehaviour)targetPlayer).transform.position; val.transform.parent = targetRoom.hierarchyParent; CombatManager = val.AddComponent(); CombatManager.ParentRoom = Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)targetPlayer).transform.position); } yield return null; if (Object.op_Implicit((Object)(object)CombatManager)) { CombatManager.Activated = true; } cameraController.SetManualControl(false, true); yield return (object)new WaitForSeconds(0.15f); targetPlayer.DoVibration((Time)20, (Strength)20); PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(((BraveBehaviour)targetPlayer).specRigidbody, (int?)null, false); m_IsTeleporting = false; } private RoomHandler[] GenerateCorruptedBossRoomCluster(Action postProcessCellData = null, LightGenerationStyle lightStyle = 0) { //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: 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_0079: Expected O, but got Unknown //IL_03c8: Unknown result type (might be due to invalid IL or missing references) //IL_040d: Unknown result type (might be due to invalid IL or missing references) //IL_0413: Invalid comparison between Unknown and I4 //IL_0591: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010d: 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_011e: Unknown result type (might be due to invalid IL or missing references) //IL_0120: 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_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_052a: Unknown result type (might be due to invalid IL or missing references) //IL_0534: Unknown result type (might be due to invalid IL or missing references) //IL_05a7: Unknown result type (might be due to invalid IL or missing references) //IL_01fd: Unknown result type (might be due to invalid IL or missing references) //IL_0202: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Unknown result type (might be due to invalid IL or missing references) //IL_0209: Unknown result type (might be due to invalid IL or missing references) //IL_020b: Unknown result type (might be due to invalid IL or missing references) //IL_020d: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_0214: Unknown result type (might be due to invalid IL or missing references) //IL_0216: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Unknown result type (might be due to invalid IL or missing references) //IL_021b: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Expected O, but got Unknown //IL_022f: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Expected O, but got Unknown //IL_0444: Unknown result type (might be due to invalid IL or missing references) //IL_0449: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04b9: Unknown result type (might be due to invalid IL or missing references) //IL_0317: Unknown result type (might be due to invalid IL or missing references) //IL_04fa: Unknown result type (might be due to invalid IL or missing references) //IL_04ff: Unknown result type (might be due to invalid IL or missing references) //IL_0501: Unknown result type (might be due to invalid IL or missing references) //IL_0506: Unknown result type (might be due to invalid IL or missing references) //IL_0508: Unknown result type (might be due to invalid IL or missing references) //IL_050a: Unknown result type (might be due to invalid IL or missing references) //IL_050c: Unknown result type (might be due to invalid IL or missing references) //IL_0511: Unknown result type (might be due to invalid IL or missing references) //IL_05c6: Unknown result type (might be due to invalid IL or missing references) //IL_05d5: Unknown result type (might be due to invalid IL or missing references) //IL_0603: Unknown result type (might be due to invalid IL or missing references) //IL_060e: Unknown result type (might be due to invalid IL or missing references) //IL_0619: Unknown result type (might be due to invalid IL or missing references) //IL_0624: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Unknown result type (might be due to invalid IL or missing references) //IL_024e: Unknown result type (might be due to invalid IL or missing references) //IL_0253: Unknown result type (might be due to invalid IL or missing references) //IL_0255: 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_027e: Unknown result type (might be due to invalid IL or missing references) //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_0290: Unknown result type (might be due to invalid IL or missing references) //IL_0293: Unknown result type (might be due to invalid IL or missing references) //IL_029a: Expected O, but got Unknown //IL_029e: Unknown result type (might be due to invalid IL or missing references) //IL_02a3: 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_02ae: Unknown result type (might be due to invalid IL or missing references) //IL_02b3: Unknown result type (might be due to invalid IL or missing references) //IL_02b8: Unknown result type (might be due to invalid IL or missing references) //IL_02e6: Unknown result type (might be due to invalid IL or missing references) //IL_02ee: Unknown result type (might be due to invalid IL or missing references) //IL_0268: Unknown result type (might be due to invalid IL or missing references) //IL_06eb: Unknown result type (might be due to invalid IL or missing references) //IL_06f4: Unknown result type (might be due to invalid IL or missing references) //IL_06f9: Unknown result type (might be due to invalid IL or missing references) //IL_0708: Unknown result type (might be due to invalid IL or missing references) //IL_070f: Unknown result type (might be due to invalid IL or missing references) //IL_0714: Unknown result type (might be due to invalid IL or missing references) //IL_0273: Unknown result type (might be due to invalid IL or missing references) //IL_0656: Unknown result type (might be due to invalid IL or missing references) //IL_065f: Unknown result type (might be due to invalid IL or missing references) //IL_0664: Unknown result type (might be due to invalid IL or missing references) //IL_0669: Unknown result type (might be due to invalid IL or missing references) //IL_0671: Unknown result type (might be due to invalid IL or missing references) //IL_0680: Unknown result type (might be due to invalid IL or missing references) //IL_068e: Unknown result type (might be due to invalid IL or missing references) //IL_079a: Unknown result type (might be due to invalid IL or missing references) Dungeon dungeon = GameManager.Instance.Dungeon; PrototypeDungeonRoom[] array = (PrototypeDungeonRoom[])(object)new PrototypeDungeonRoom[2] { ExpandRoomPrefabs.CreepyGlitchRoom_Entrance, ExpandRoomPrefabs.CreepyGlitchRoom }; IntVector2[] array2 = (IntVector2[])(object)new IntVector2[2] { IntVector2.Zero, new IntVector2(14, 0) }; tk2dTileMap component = GameObject.Find("TileMap").GetComponent(); if ((Object)(object)component == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"ERROR: TileMap object is null! Something seriously went wrong!", false); } return null; } TK2DDungeonAssembler val = new TK2DDungeonAssembler(); val.Initialize(dungeon.tileIndices); if (array.Length != array2.Length) { Debug.LogError((object)"Attempting to add a malformed room cluster at runtime!"); return null; } RoomHandler[] array3 = (RoomHandler[])(object)new RoomHandler[array.Length]; int num = 6; int num2 = 3; IntVector2 val2 = default(IntVector2); ((IntVector2)(ref val2))..ctor(int.MaxValue, int.MaxValue); IntVector2 val3 = default(IntVector2); ((IntVector2)(ref val3))..ctor(int.MinValue, int.MinValue); for (int i = 0; i < array.Length; i++) { val2 = IntVector2.Min(val2, array2[i]); val3 = IntVector2.Max(val3, array2[i] + new IntVector2(array[i].Width, array[i].Height)); } IntVector2 val4 = val3 - val2; IntVector2 val5 = IntVector2.Min(IntVector2.Zero, -1 * val2); val4 += val5; IntVector2 val6 = default(IntVector2); ((IntVector2)(ref val6))..ctor(dungeon.data.Width + num, num); int num3 = dungeon.data.Width + num * 2 + val4.x; int num4 = Mathf.Max(dungeon.data.Height, val4.y + num * 2); CellData[][] array4 = BraveUtility.MultidimensionalArrayResize(dungeon.data.cellData, dungeon.data.Width, dungeon.data.Height, num3, num4); dungeon.data.cellData = array4; dungeon.data.ClearCachedCellData(); IntVector2 val7 = default(IntVector2); for (int j = 0; j < array.Length; j++) { ((IntVector2)(ref val7))..ctor(array[j].Width, array[j].Height); IntVector2 val8 = array2[j] + val5; IntVector2 val9 = val6 + val8; CellArea val10 = new CellArea(val9, val7, 0); val10.prototypeRoom = array[j]; RoomHandler val11 = new RoomHandler(val10); for (int k = -num; k < val7.x + num; k++) { for (int l = -num; l < val7.y + num; l++) { IntVector2 val12 = new IntVector2(k, l) + val9; if ((k >= 0 && l >= 0 && k < val7.x && l < val7.y) || array4[val12.x][val12.y] == null) { CellData val13 = new CellData(val12, (CellType)1); val13.positionInTilemap = val13.positionInTilemap - val6 + new IntVector2(num2, num2); val13.parentArea = val10; val13.parentRoom = val11; val13.nearestRoom = val11; val13.distanceFromNearestRoom = 0f; array4[val12.x][val12.y] = val13; } } } dungeon.data.rooms.Add(val11); array3[j] = val11; } ConnectClusteredRooms(array3[1], array3[0], array[1], array[0], 0, 0); try { for (int m = 0; m < array3.Length; m++) { try { array3[m].WriteRoomData(dungeon.data); } catch (Exception) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("WARNING: Exception caused during WriteRoomData step on room: " + array3[m].GetRoomName()), false); } } try { dungeon.data.GenerateLightsForRoom(dungeon.decoSettings, array3[m], GameObject.Find("_Lights").transform, lightStyle); } catch (Exception) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("WARNING: Exception caused during GeernateLightsForRoom step on room: " + array3[m].GetRoomName()), false); } } postProcessCellData?.Invoke(array3[m]); if ((int)array3[m].area.PrototypeRoomCategory == 6) { array3[m].BuildSecretRoomCover(); } } GameObject val14 = (GameObject)Object.Instantiate(BraveResources.Load("RuntimeTileMap", ".prefab")); tk2dTileMap component2 = val14.GetComponent(); string text = Random.Range(10000, 99999).ToString(); ((Object)val14).name = "Corrupted_RuntimeTilemap_" + text; ((Object)component2.renderData).name = "Corrupted_RuntimeTilemap_" + text + " Render Data"; component2.Editor__SpriteCollection = dungeon.tileIndices.dungeonCollection; TK2DDungeonAssembler.RuntimeResizeTileMap(component2, val4.x + num2 * 2, val4.y + num2 * 2, component.partitionSizeX, component.partitionSizeY); IntVector2 val15 = default(IntVector2); for (int n = 0; n < array.Length; n++) { ((IntVector2)(ref val15))..ctor(array[n].Width, array[n].Height); IntVector2 val16 = array2[n] + val5; IntVector2 val17 = val6 + val16; for (int num5 = -num2; num5 < val15.x + num2; num5++) { for (int num6 = -num2; num6 < val15.y + num2 + 2; num6++) { try { val.BuildTileIndicesForCell(dungeon, component2, val17.x + num5, val17.y + num6); } catch (Exception ex3) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("WARNING: Exception caused during BuildTileIndicesForCell step on room: " + ((Object)array[n]).name), false); Debug.Log((object)("WARNING: Exception caused during BuildTileIndicesForCell step on room: " + ((Object)array[n]).name)); Debug.LogException(ex3); } } } } } RenderMeshBuilder.CurrentCellXOffset = val6.x - num2; RenderMeshBuilder.CurrentCellYOffset = val6.y - num2; component2.ForceBuild(); RenderMeshBuilder.CurrentCellXOffset = 0; RenderMeshBuilder.CurrentCellYOffset = 0; component2.renderData.transform.position = new Vector3((float)(val6.x - num2), (float)(val6.y - num2), (float)(val6.y - num2)); for (int num7 = 0; num7 < array3.Length; num7++) { array3[num7].OverrideTilemap = component2; for (int num8 = 0; num8 < array3[num7].area.dimensions.x; num8++) { for (int num9 = 0; num9 < array3[num7].area.dimensions.y + 2; num9++) { IntVector2 val18 = array3[num7].area.basePosition + new IntVector2(num8, num9); if (dungeon.data.CheckInBoundsAndValid(val18)) { CellData val19 = dungeon.data[val18]; TK2DInteriorDecorator.PlaceLightDecorationForCell(dungeon, component2, val19, val18); } } } Pathfinder.Instance.InitializeRegion(dungeon.data, array3[num7].area.basePosition + new IntVector2(-3, -3), array3[num7].area.dimensions + new IntVector2(3, 3)); if (!array3[num7].IsSecretRoom) { array3[num7].RevealedOnMap = true; array3[num7].visibility = (VisibilityStatus)1; ((MonoBehaviour)this).StartCoroutine(Minimap.Instance.RevealMinimapRoomInternal(array3[num7], true, true, false)); } array3[num7].PostGenerationCleanup(); } if (array.Length == array3.Length) { for (int num10 = 0; num10 < array.Length; num10++) { if (array[num10].usesProceduralDecoration && array[num10].allowFloorDecoration) { new TK2DInteriorDecorator(val).HandleRoomDecoration(array3[num10], dungeon, component); } } } } catch (Exception) { } DeadlyDeadlyGoopManager.ReinitializeData(); Minimap.Instance.InitializeMinimap(dungeon.data); return array3; } private void ConnectClusteredRooms(RoomHandler first, RoomHandler second, PrototypeDungeonRoom firstPrototype, PrototypeDungeonRoom secondPrototype, int firstRoomExitIndex, int secondRoomExitIndex, int room1ExitLengthPadding = 3, int room2ExitLengthPadding = 3) { //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Expected O, but got Unknown //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Expected O, but got Unknown if ((first.area.instanceUsedExits == null) | (second.area.exitToLocalDataMap == null) | (second.area.instanceUsedExits == null) | (first.area.exitToLocalDataMap == null)) { return; } try { first.area.instanceUsedExits.Add(firstPrototype.exitData.exits[firstRoomExitIndex]); RuntimeRoomExitData val = new RuntimeRoomExitData(firstPrototype.exitData.exits[firstRoomExitIndex]); first.area.exitToLocalDataMap.Add(firstPrototype.exitData.exits[firstRoomExitIndex], val); second.area.instanceUsedExits.Add(secondPrototype.exitData.exits[secondRoomExitIndex]); RuntimeRoomExitData val2 = new RuntimeRoomExitData(secondPrototype.exitData.exits[secondRoomExitIndex]); second.area.exitToLocalDataMap.Add(secondPrototype.exitData.exits[secondRoomExitIndex], val2); first.connectedRooms.Add(second); first.connectedRoomsByExit.Add(firstPrototype.exitData.exits[firstRoomExitIndex], second); first.childRooms.Add(second); second.connectedRooms.Add(first); second.connectedRoomsByExit.Add(secondPrototype.exitData.exits[secondRoomExitIndex], first); second.parentRoom = first; val.linkedExit = val2; val2.linkedExit = val; val.additionalExitLength = room1ExitLengthPadding; val2.additionalExitLength = room2ExitLengthPadding; } catch (Exception) { ETGModConsole.Log((object)"WARNING: Exception caused during CoonectClusteredRunTimeRooms method!", false); } } private IntVector2? GetRandomAvailableCell(RoomHandler CurrentRoom, IntVector2 Clearence, bool relativeToRoom = false) { //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_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Expected O, but got Unknown //IL_006c: 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_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_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_005f: Unknown result type (might be due to invalid IL or missing references) CellValidator val = (CellValidator)delegate(IntVector2 c) { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Invalid comparison between Unknown and I4 //IL_008b: 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_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Invalid comparison between Unknown and I4 //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < Clearence.x; i++) { for (int j = 0; j < Clearence.y; j++) { if (!GameManager.Instance.Dungeon.data.CheckInBoundsAndValid(c.x + i, c.y + j)) { return false; } if (GameManager.Instance.Dungeon.data.isTopWall(i, j)) { return false; } if (((int)GameManager.Instance.Dungeon.data[c.x + i, c.y + j].type == 4) | ((int)GameManager.Instance.Dungeon.data[c.x + i, c.y + j].type == 1) | GameManager.Instance.Dungeon.data[c.x + i, c.y + j].isOccupied) { return false; } } } return true; }; if (relativeToRoom) { IntVector2? randomAvailableCell = CurrentRoom.GetRandomAvailableCell((IntVector2?)Clearence, (CellTypes?)(CellTypes)2, false, val); IntVector2 basePosition = CurrentRoom.area.basePosition; if (!randomAvailableCell.HasValue) { return null; } return randomAvailableCell.GetValueOrDefault() - basePosition; } return CurrentRoom.GetRandomAvailableCell((IntVector2?)Clearence, (CellTypes?)(CellTypes)2, false, val); } private List GetEnemiesFromNewRoom(RoomHandler CurrentRoom, ActiveEnemyType enemyType = 0) { //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Invalid comparison between Unknown and I4 //IL_007d: Unknown result type (might be due to invalid IL or missing references) List list = new List(); if (Object.op_Implicit((Object)(object)CurrentRoom.hierarchyParent) && CurrentRoom.hierarchyParent.childCount > 0) { for (int i = 0; i < CurrentRoom.hierarchyParent.childCount; i++) { if (Object.op_Implicit((Object)(object)((Component)CurrentRoom.hierarchyParent.GetChild(i)).gameObject) && Object.op_Implicit((Object)(object)((Component)CurrentRoom.hierarchyParent).gameObject.GetComponent())) { AIActor component = ((Component)CurrentRoom.hierarchyParent).gameObject.GetComponent(); if ((int)enemyType == 1 && !component.IgnoreForRoomClear) { list.Add(component); } else if ((int)enemyType == 0) { list.Add(component); } } } } return list; } protected override void OnDestroy() { ((PlayerItem)this).OnDestroy(); } } public class ExpandCombatRoomManager : BraveBehaviour { public bool Activated; public RoomHandler ParentRoom; private float m_Timer; public ExpandCombatRoomManager() { Activated = false; } private void Start() { m_Timer = 5f; } private void Update() { //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) if (!Activated || ParentRoom == null) { return; } if (ParentRoom.HasActiveEnemies((ActiveEnemyType)1)) { m_Timer -= BraveTime.DeltaTime; if (m_Timer <= 0f) { m_Timer = 5f; List activeEnemies = ParentRoom.GetActiveEnemies((ActiveEnemyType)1); if (activeEnemies != null && activeEnemies.Count > 0) { for (int i = 0; i < activeEnemies.Count; i++) { if ((((DungeonPlaceableBehaviour)activeEnemies[i]).GetAbsoluteParentRoom() == null) | (((DungeonPlaceableBehaviour)activeEnemies[i]).GetAbsoluteParentRoom() != ParentRoom) | (Vector2.Distance(TransformExtensions.PositionVector2(((Component)activeEnemies[i]).gameObject.transform), ParentRoom.area.Center) > (float)(ParentRoom.area.dimensions.x + ParentRoom.area.dimensions.y))) { activeEnemies[i].EraseFromExistence(false); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[ExpandTheGungeon] TheLeadKey: Enemy outside of generated room detected! It has been removed to prevent softlocks!", true); } } } } } if (!ParentRoom.CompletelyPreventLeaving) { ParentRoom.CompletelyPreventLeaving = true; ParentRoom.SealRoom(); AkSoundEngine.PostEvent("Play_OBJ_gate_slam_01", ((Component)GameManager.Instance.PrimaryPlayer).gameObject); } } else if (ParentRoom.CompletelyPreventLeaving) { ParentRoom.CompletelyPreventLeaving = false; ParentRoom.UnsealRoom(); AkSoundEngine.PostEvent("Play_OBJ_gate_open_01", ((Component)GameManager.Instance.PrimaryPlayer).gameObject); } } protected override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); } } public class Mimiclay : PlayerItem { public static int MimiclayPickupID; public static GameObject MimiclayObject; public static void Init(AssetBundle expandSharedAssets1) { //IL_0064: Unknown result type (might be due to invalid IL or missing references) MimiclayObject = expandSharedAssets1.LoadAsset("Mimiclay"); SpriteSerializer.AddSpriteToObject(MimiclayObject, ExpandPrefabs.EXItemCollection, "ex_mimiclay", (PerpendicularState)0); Mimiclay mimiclay = MimiclayObject.AddComponent(); string shortDesc = "The Highest Form Of Flattery"; string longDesc = "Becomes a copy of any item that isn't a gun.\n\nMalleable material that formed the mysterious Doppelgunner. After its defeat, it seems oddly content with applying its ability in service of Gungeoneers."; ItemBuilder.SetupItem((PickupObject)(object)mimiclay, shortDesc, longDesc, "ex"); ItemBuilder.SetCooldownType((PlayerItem)(object)mimiclay, ItemBuilder.CooldownType.Timed, 1f); ((PlayerItem)mimiclay).consumable = true; ((PickupObject)mimiclay).quality = (ItemQuality)(-50); MimiclayPickupID = ((PickupObject)mimiclay).PickupObjectId; } public override void Pickup(PlayerController player) { ((PlayerItem)this).Pickup(player); } protected override void DoEffect(PlayerController user) { //IL_0007: 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_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) IPlayerInteractable nearestInteractable = user.CurrentRoom.GetNearestInteractable(((GameActor)user).CenterPosition, 1f, user); int num = -1; if (nearestInteractable is PassiveItem) { num = ((PickupObject)((nearestInteractable is PassiveItem) ? nearestInteractable : null)).PickupObjectId; } else if (nearestInteractable is PlayerItem) { num = ((PickupObject)((nearestInteractable is PlayerItem) ? nearestInteractable : null)).PickupObjectId; } if (num != -1) { LootEngine.SpawnItem(((Component)PickupObjectDatabase.GetById(num)).gameObject, Vector2.op_Implicit(((GameActor)user).CenterPosition), Vector2.up, 1f, true, true, false); } } public override bool CanBeUsed(PlayerController user) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) IPlayerInteractable nearestInteractable = user.CurrentRoom.GetNearestInteractable(((GameActor)user).CenterPosition, 1f, user); if (nearestInteractable is PassiveItem) { PassiveItem val = (PassiveItem)(object)((nearestInteractable is PassiveItem) ? nearestInteractable : null); if (Object.op_Implicit((Object)(object)val) && ((PickupObject)val).PickupObjectId == 531) { return false; } } return nearestInteractable is PassiveItem || nearestInteractable is PlayerItem; } } public class TableTechAssassin : PassiveItem { public static GameObject TableTechAssasinObject; public static int TableTechAssasinID; public static void Init(AssetBundle expandSharedAssets1) { //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) TableTechAssassinHook.TableExplosionData = ExpandUtility.GenerateExplosionData(null, null, null, null, useDefaultExplosion: false, doDamage: true, forceUseThisRadius: true, 3f, DamagesPlayer: true, 60f); TableTechAssasinObject = expandSharedAssets1.LoadAsset("Table Tech Assassin"); SpriteSerializer.AddSpriteToObject(TableTechAssasinObject, ExpandPrefabs.EXItemCollection, "tabletech_assassin", (PerpendicularState)0); TableTechAssassin tableTechAssassin = TableTechAssasinObject.AddComponent(); string shortDesc = "Betray the Flipper"; string longDesc = "A forbidden technique thought lost was recovered in the Gungeon.\n\nAll that was written was this: \n\n 'Do upon the flipper that which the flipper had done to you'"; ItemBuilder.SetupItem((PickupObject)(object)tableTechAssassin, shortDesc, longDesc, "ex"); ((PickupObject)tableTechAssassin).quality = (ItemQuality)1; if (!ExpandSettings.EnableEXItems) { ((PickupObject)tableTechAssassin).quality = (ItemQuality)(-100); } TableTechAssasinID = ((PickupObject)tableTechAssassin).PickupObjectId; } public override void Pickup(PlayerController player) { ((PassiveItem)this).Pickup(player); HandleFlipHook(); } public override DebrisObject Drop(PlayerController player) { DebrisObject result = ((PassiveItem)this).Drop(player); HandleFlipHook(isDropping: true); return result; } public void HandleFlipHook(bool isDropping = false) { //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Expected O, but got Unknown if (isDropping) { if (TableTechAssassinHook.m_flipHook != null) { TableTechAssassinHook.m_flipHook.Dispose(); TableTechAssassinHook.m_flipHook = null; } } else if (TableTechAssassinHook.m_flipHook == null) { TableTechAssassinHook.m_flipHook = new Hook((MethodBase)typeof(FlippableCover).GetMethod("Flip", new Type[1] { typeof(SpeculativeRigidbody) }), typeof(TableTechAssassinHook).GetMethod("FlipHook", BindingFlags.Instance | BindingFlags.Public), (object)typeof(TableTechAssassinHook)); } } protected override void OnDestroy() { HandleFlipHook(isDropping: true); ((PassiveItem)this).OnDestroy(); } } public class TableTechAssassinHook : MonoBehaviour { public static Hook m_flipHook; public static ExplosionData TableExplosionData; public void FlipHook(Action orig, FlippableCover self, SpeculativeRigidbody flipperRigidbody) { try { orig(self, flipperRigidbody); if (Object.op_Implicit((Object)(object)self) && Object.op_Implicit((Object)(object)flipperRigidbody) && Object.op_Implicit((Object)(object)((Component)flipperRigidbody).gameObject.GetComponent())) { AkSoundEngine.PostEvent("Play_EX_TableAssassin_01", ((Component)self).gameObject); ((MonoBehaviour)GameManager.Instance).StartCoroutine(HandleDelayedTableExplosion(self, flipperRigidbody, 1f)); } } catch (Exception ex) { ETGModConsole.Log((object)"[ExpandTheGungeon] WARNING: Excpetion caught in TableTechAssassinHook.FlipHook!", false); Debug.Log((object)"[ExpandTheGungeon] WARNING: Excpetion caught in TableTechAssassinHook.FlipHook!"); Debug.LogException(ex, (Object)(object)self); } } private IEnumerator HandleDelayedTableExplosion(FlippableCover sourceTable, SpeculativeRigidbody flipperSource, float delay) { yield return (object)new WaitForSeconds(delay); if (Object.op_Implicit((Object)(object)((BraveBehaviour)sourceTable).sprite)) { Vector2 worldCenter = ((BraveBehaviour)sourceTable).sprite.WorldCenter; if (Object.op_Implicit((Object)(object)((BraveBehaviour)sourceTable).specRigidbody)) { ((BraveBehaviour)sourceTable).specRigidbody.CollideWithOthers = false; } MajorBreakable componentInChildren = ((Component)sourceTable).GetComponentInChildren(); if (Object.op_Implicit((Object)(object)componentInChildren)) { componentInChildren.ApplyDamage(90f, Vector2.zero, false, true, false); } Exploder.Explode(Vector2.op_Implicit(worldCenter), TableExplosionData, Vector2.zero, (Action)null, false, (CoreDamageTypes)0, false); } else if (Object.op_Implicit((Object)(object)((BraveBehaviour)sourceTable).specRigidbody)) { Vector2 val = Vector2.op_Implicit(((BraveBehaviour)sourceTable).transform.position); if (Object.op_Implicit((Object)(object)((BraveBehaviour)sourceTable).specRigidbody)) { ((BraveBehaviour)sourceTable).specRigidbody.CollideWithOthers = false; } MajorBreakable componentInChildren2 = ((Component)sourceTable).GetComponentInChildren(); if (Object.op_Implicit((Object)(object)componentInChildren2)) { componentInChildren2.ApplyDamage(90f, Vector2.zero, false, true, false); } Exploder.Explode(Vector2.op_Implicit(val), TableExplosionData, Vector2.zero, (Action)null, false, (CoreDamageTypes)0, false); } } } public class SonicRing : CurrencyPickup { public static int RingID = -1; public static GameObject SonicRingObject; public static void Init(AssetBundle expandSharedAssets1) { //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_01a8: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: Unknown result type (might be due to invalid IL or missing references) SonicRingObject = expandSharedAssets1.LoadAsset("EXSonicRing"); SpriteSerializer.AddSpriteToObject(SonicRingObject, ExpandPrefabs.EXItemCollection, "SonicRing_Idle_05", (PerpendicularState)0); List list = new List(); for (int i = 1; i < 16; i++) { if (i < 10) { list.Add("SonicRing_Idle_0" + i); } else { list.Add("SonicRing_Idle_" + i); } } ExpandUtility.GenerateSpriteAnimator(SonicRingObject, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true); ExpandUtility.AddAnimation(SonicRingObject.GetComponent(), ExpandPrefabs.EXItemCollection.GetComponent(), list, "idle", (WrapMode)0); ExpandUtility.GenerateOrAddToRigidBody(SonicRingObject, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(0, 1), collisionLayer: (CollisionLayer)7, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(15, 14)); SonicRingObject.GetComponent().PixelColliders[0].IsTrigger = true; PickupMover obj = SonicRingObject.AddComponent(); obj.pathInterval = 0.25f; obj.acceleration = 7f; obj.maxSpeed = 15f; obj.minRadius = 0f; SonicRing sonicRing = SonicRingObject.AddComponent(); string name = "Sonic Ring"; string shortDesc = "A Ring"; string longDesc = "A Simple Ring. Equilivent to one casing."; ItemBuilder.SetupEXItem((PickupObject)(object)sonicRing, name, shortDesc, longDesc, "ex", createEncounterTrackable: false); ((PickupObject)sonicRing).quality = (ItemQuality)(-100); ((PickupObject)sonicRing).ItemSpansBaseQualityTiers = false; ((PickupObject)sonicRing).additionalMagnificenceModifier = 0f; ((PickupObject)sonicRing).ItemRespectsHeartMagnificence = false; ((PickupObject)sonicRing).associatedItemChanceMods = (LootModData[])(object)new LootModData[0]; ((PickupObject)sonicRing).contentSource = (ContentSource)0; ((PickupObject)sonicRing).ShouldBeExcludedFromShops = false; ((PickupObject)sonicRing).CanBeDropped = true; ((PickupObject)sonicRing).PreventStartingOwnerFromDropping = false; ((PickupObject)sonicRing).PersistsOnDeath = false; ((PickupObject)sonicRing).PersistsOnPurchase = false; ((PickupObject)sonicRing).RespawnsIfPitfall = true; ((PickupObject)sonicRing).PreventSaveSerialization = false; ((PickupObject)sonicRing).IgnoredByRat = false; ((PickupObject)sonicRing).SaveFlagToSetOnAcquisition = (GungeonFlags)0; ((PickupObject)sonicRing).UsesCustomCost = false; ((PickupObject)sonicRing).CustomCost = 0; ((PickupObject)sonicRing).CanBeSold = true; ((PickupObject)sonicRing).ForcedPositionInAmmonomicon = -1; ((CurrencyPickup)sonicRing).currencyValue = 1; ((CurrencyPickup)sonicRing).IsMetaCurrency = false; ((CurrencyPickup)sonicRing).overrideBloopSpriteName = "SonicRing_Idle_05"; RingID = ((PickupObject)sonicRing).PickupObjectId; } public override void Pickup(PlayerController player) { if (Object.op_Implicit((Object)(object)player)) { AkSoundEngine.PostEvent("Play_EX_SonicRingCollect_01", ((Component)player).gameObject); } ((CurrencyPickup)this).Pickup(player); } } public class ThirdEye : PassiveItem { public static GameObject ThirdEyeObject; public static int ThirdEyeID; public int MaxChestSpawnsPerFloor; public List BannedRooms; private RoomHandler m_CurrentRoom; private bool m_PickedUp; private bool m_DoRoomActivations; private int m_ChestsSpawnsThisFloor; public static void Init(AssetBundle expandSharedAssets1) { //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006c: 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_0074: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Expected O, but got Unknown //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) ThirdEyeObject = expandSharedAssets1.LoadAsset("EXThirdEye"); SpriteSerializer.AddSpriteToObject(ThirdEyeObject, ExpandPrefabs.EXItemCollection, "thethirdeye", (PerpendicularState)0); ThirdEye thirdEye = ThirdEyeObject.AddComponent(); ((Object)ThirdEyeObject).name = "The Third Eye"; string shortDesc = "Peering beyond the vail..."; string longDesc = "There was a once a man who tried to peer across the vail of the Gungeon to find new treasure but it drove him to madness. This item is said to be made from his third eye which is all that remains of him."; ItemBuilder.SetupItem((PickupObject)(object)thirdEye, shortDesc, longDesc, "ex"); ((PassiveItem)thirdEye).passiveStatModifiers = (StatModifier[])(object)new StatModifier[1] { new StatModifier { statToBoost = (StatType)14, amount = 1f, modifyType = (ModifyMethod)0, isMeatBunBuff = false } }; ((PickupObject)thirdEye).quality = (ItemQuality)1; if (!ExpandSettings.EnableEXItems) { ((PickupObject)thirdEye).quality = (ItemQuality)(-100); } ThirdEyeID = ((PickupObject)thirdEye).PickupObjectId; } public ThirdEye() { List obj = new List { "endtimes_chamber", "lichroom03" }; List bannedRooms = obj; BannedRooms = obj; BannedRooms = bannedRooms; MaxChestSpawnsPerFloor = 1; m_DoRoomActivations = false; base.m_pickedUp = false; } public override void Pickup(PlayerController player) { ((PassiveItem)this).Pickup(player); ExpandPlaceFloorObjects.PlayerHasThirdEye = true; Pixelator.Instance.DoOcclusionLayer = false; player.OnRoomClearEvent += OnRoomCleared; player.OnNewFloorLoaded = (Action)Delegate.Combine(player.OnNewFloorLoaded, new Action(OnFloorEntered)); ExpandDebugCamera.DebugCameraEnabled = true; if (GameManager.HasInstance && GameManager.Instance.Dungeon?.data?.rooms != null) { foreach (RoomHandler room in GameManager.Instance.Dungeon.data.rooms) { room.SetRoomActive(true); room.ForcedActiveState = true; } } m_PickedUp = true; } private void OnRoomCleared(PlayerController player) { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Invalid comparison between Unknown and I4 //IL_004d: 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_0059: 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) if (m_ChestsSpawnsThisFloor > MaxChestSpawnsPerFloor || (m_CurrentRoom != null && (int)m_CurrentRoom.area.PrototypeRoomCategory == 3)) { return; } if (m_CurrentRoom != player.CurrentRoom && Random.value <= 0.15f) { IntVector2 bestRewardLocation = player.CurrentRoom.GetBestRewardLocation(new IntVector2(2, 1), (RewardLocationStyle)0, true); GameObject val = Object.Instantiate(ExpandPrefabs.SurpriseChestObject, ((IntVector2)(ref bestRewardLocation)).ToVector3(), Quaternion.identity); if (Object.op_Implicit((Object)(object)val)) { ExpandFakeChest component = val.GetComponent(); m_ChestsSpawnsThisFloor++; if (Object.op_Implicit((Object)(object)component)) { component.surpriseChestDoesSpawnAnim = true; component.ConfigureOnPlacement(player.CurrentRoom); } } } m_CurrentRoom = player.CurrentRoom; } private void OnFloorEntered(PlayerController player) { m_ChestsSpawnsThisFloor = 0; m_DoRoomActivations = true; } protected override void Update() { if (Dungeon.IsGenerating | (Object.op_Implicit((Object)(object)GameManager.Instance) && GameManager.Instance.IsLoadingLevel)) { return; } if (m_PickedUp && m_DoRoomActivations && GameManager.HasInstance && GameManager.Instance.Dungeon?.data?.rooms != null) { m_DoRoomActivations = false; foreach (RoomHandler room in GameManager.Instance.Dungeon.data.rooms) { room.SetRoomActive(true); room.ForcedActiveState = true; } } if (Object.op_Implicit((Object)(object)Pixelator.Instance) && Pixelator.Instance.DoOcclusionLayer) { if (Object.op_Implicit((Object)(object)base.m_owner) && base.m_owner.CurrentRoom != null && !string.IsNullOrEmpty(base.m_owner.CurrentRoom.GetRoomName()) && !BannedRooms.Contains(base.m_owner.CurrentRoom.GetRoomName().ToLower())) { Pixelator.Instance.DoOcclusionLayer = false; } } else if (Object.op_Implicit((Object)(object)Pixelator.Instance) && !Pixelator.Instance.DoOcclusionLayer && Object.op_Implicit((Object)(object)base.m_owner) && base.m_owner.CurrentRoom != null && !string.IsNullOrEmpty(base.m_owner.CurrentRoom.GetRoomName()) && BannedRooms.Contains(base.m_owner.CurrentRoom.GetRoomName().ToLower())) { Pixelator.Instance.DoOcclusionLayer = true; } if (m_PickedUp && !ExpandDebugCamera.DebugCameraEnabled) { ExpandDebugCamera.DebugCameraEnabled = true; } ((PassiveItem)this).Update(); } public override DebrisObject Drop(PlayerController player) { DebrisObject result = ((PassiveItem)this).Drop(player); ExpandPlaceFloorObjects.PlayerHasThirdEye = false; Pixelator.Instance.DoOcclusionLayer = true; m_PickedUp = false; m_DoRoomActivations = false; if (GameManager.HasInstance && GameManager.Instance.Dungeon?.data?.rooms != null) { foreach (RoomHandler room in GameManager.Instance.Dungeon.data.rooms) { room.ForcedActiveState = null; } } ExpandDebugCamera.DebugCameraEnabled = false; player.OnRoomClearEvent -= OnRoomCleared; player.OnNewFloorLoaded = (Action)Delegate.Remove(player.OnNewFloorLoaded, new Action(OnFloorEntered)); return result; } protected override void OnDestroy() { if (Object.op_Implicit((Object)(object)Pixelator.Instance)) { Pixelator.Instance.DoOcclusionLayer = true; } ExpandPlaceFloorObjects.PlayerHasThirdEye = false; ExpandDebugCamera.DebugCameraEnabled = false; m_PickedUp = false; ((PassiveItem)this).OnDestroy(); } } public class WoodenCrest : PassiveItem { public static int WoodCrestID = -1; public static GameObject WoodCrestObject; public static void Init(AssetBundle expandSharedAssets1) { //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) WoodCrestObject = expandSharedAssets1.LoadAsset("Wooden Crest"); SpriteSerializer.AddSpriteToObject(WoodCrestObject, ExpandPrefabs.EXItemCollection, "junglecrest", (PerpendicularState)0); WoodenCrest woodenCrest = WoodCrestObject.AddComponent(); string shortDesc = "Protection of Wood"; string longDesc = "A shield made of wood. Provides fleeting protection."; ItemBuilder.SetupItem((PickupObject)(object)woodenCrest, shortDesc, longDesc, "ex"); ((PickupObject)woodenCrest).quality = (ItemQuality)(-100); ((PickupObject)woodenCrest).ItemSpansBaseQualityTiers = false; ((PickupObject)woodenCrest).additionalMagnificenceModifier = 0f; ((PickupObject)woodenCrest).ItemRespectsHeartMagnificence = true; ((PickupObject)woodenCrest).associatedItemChanceMods = (LootModData[])(object)new LootModData[0]; ((PickupObject)woodenCrest).contentSource = (ContentSource)0; ((PickupObject)woodenCrest).ShouldBeExcludedFromShops = false; ((PickupObject)woodenCrest).CanBeDropped = false; ((PickupObject)woodenCrest).PreventStartingOwnerFromDropping = false; ((PickupObject)woodenCrest).PersistsOnDeath = false; ((PickupObject)woodenCrest).PersistsOnPurchase = false; ((PickupObject)woodenCrest).RespawnsIfPitfall = false; ((PickupObject)woodenCrest).PreventSaveSerialization = false; ((PickupObject)woodenCrest).IgnoredByRat = false; ((PickupObject)woodenCrest).SaveFlagToSetOnAcquisition = (GungeonFlags)0; ((PickupObject)woodenCrest).UsesCustomCost = false; ((PickupObject)woodenCrest).CustomCost = 65; ((PickupObject)woodenCrest).CanBeSold = false; ((PassiveItem)woodenCrest).passiveStatModifiers = (StatModifier[])(object)new StatModifier[0]; ((PassiveItem)woodenCrest).ArmorToGainOnInitialPickup = 0; WoodCrestID = ((PickupObject)woodenCrest).PickupObjectId; } public void Break() { base.m_pickedUp = true; Object.Destroy((Object)(object)((Component)this).gameObject, 1f); } public override void Pickup(PlayerController player) { if (!base.m_pickedUp) { ((PassiveItem)this).Pickup(player); player.OnReceivedDamage += PlayerDamaged; HealthHaver healthHaver = ((BraveBehaviour)player).healthHaver; healthHaver.Armor += 1f; } } private void PlayerDamaged(PlayerController obj) { obj.DropPassiveItem((PassiveItem)(object)this); } public override DebrisObject Drop(PlayerController player) { DebrisObject val = ((PassiveItem)this).Drop(player); ((BraveBehaviour)player).healthHaver.HasCrest = false; player.OnReceivedDamage -= PlayerDamaged; if (Object.op_Implicit((Object)(object)val)) { WoodenCrest component = ((Component)val).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { ((PassiveItem)component).m_pickedUpThisRun = true; component.Break(); } } return val; } protected override void OnDestroy() { if (base.m_pickedUp && GameManager.HasInstance && Object.op_Implicit((Object)(object)((PassiveItem)this).Owner)) { ((PassiveItem)this).Owner.OnReceivedDamage -= PlayerDamaged; } ((PassiveItem)this).OnDestroy(); } } public static class SpriteBuilder { public static tk2dSpriteCollectionData ammonomiconCollection = AmmonomiconController.ForceInstance.EncounterIconCollection; public static int AddSpriteToCollection(Texture2D existingTexture, tk2dSpriteCollectionData collection) { tk2dSpriteDefinition obj = ConstructDefinition(existingTexture); obj.name = ((Object)existingTexture).name; return AddSpriteToCollection(obj, collection); } public static void AddSpritesToCollection(AssetBundle assetSource, List AssetNames, tk2dSpriteCollectionData collection) { //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Expected O, but got Unknown List list = new List(); foreach (string AssetName in AssetNames) { list.Add((Texture)(object)assetSource.LoadAsset(AssetName)); } if (list.Count <= 0) { return; } foreach (Texture2D item in list) { Texture2D val = item; tk2dSpriteDefinition obj = ConstructDefinition(val); obj.name = ((Object)val).name; AddSpriteToCollection(obj, collection); } } public static int AddSpriteToCollection(tk2dSpriteDefinition spriteDefinition, tk2dSpriteCollectionData collection) { tk2dSpriteDefinition[] array = (collection.spriteDefinitions = collection.spriteDefinitions.Concat((IEnumerable)(object)new tk2dSpriteDefinition[1] { spriteDefinition }).ToArray()); typeof(tk2dSpriteCollectionData).GetField("spriteNameLookupDict", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(collection, null); collection.InitDictionary(); return array.Length - 1; } public static int AddToAmmonomicon(tk2dSpriteDefinition spriteDefinition) { return AddSpriteToCollection(spriteDefinition, ammonomiconCollection); } public static int AddToAmmonomicon(Texture2D spriteTexture) { return AddSpriteToCollection(spriteTexture, ammonomiconCollection); } public static int AddToAmmonomicon(tk2dSpriteDefinition spriteDefinition, Material overrideMaterial) { AddSpriteToCollection(spriteDefinition, ammonomiconCollection); ammonomiconCollection.GetSpriteDefinition(spriteDefinition.name).material = overrideMaterial; return AddSpriteToCollection(spriteDefinition, ammonomiconCollection); } public static tk2dSpriteAnimationClip AddAnimation(tk2dSpriteAnimator animator, tk2dSpriteCollectionData collection, List spriteIDs, string clipName, WrapMode wrapMode = 0, int frameRate = 15, int loopStart = 0, float minFidgetDuration = 0.5f, float maxFidgetDuration = 1f) { //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: 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_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Expected O, but got Unknown //IL_0050: 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_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Expected O, but got Unknown if ((Object)(object)animator.Library == (Object)null) { animator.Library = ((Component)animator).gameObject.AddComponent(); animator.Library.clips = (tk2dSpriteAnimationClip[])(object)new tk2dSpriteAnimationClip[0]; } List list = new List(); for (int i = 0; i < spriteIDs.Count; i++) { if (collection.spriteDefinitions[spriteIDs[i]].Valid) { list.Add(new tk2dSpriteAnimationFrame { spriteCollection = collection, spriteId = spriteIDs[i], invulnerableFrame = false }); } } tk2dSpriteAnimationClip val = new tk2dSpriteAnimationClip { name = clipName, frames = list.ToArray(), fps = frameRate, wrapMode = wrapMode, loopStart = loopStart, minFidgetDuration = minFidgetDuration, maxFidgetDuration = maxFidgetDuration }; Array.Resize(ref animator.Library.clips, animator.Library.clips.Length + 1); animator.Library.clips[animator.Library.clips.Length - 1] = val; return val; } public static SpeculativeRigidbody SetUpSpeculativeRigidbody(this tk2dSprite sprite, IntVector2 offset, IntVector2 dimensions) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Expected O, but got Unknown //IL_0013: 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: 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_0038: 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) SpeculativeRigidbody orAddComponent = GameObjectExtensions.GetOrAddComponent(((Component)sprite).gameObject); PixelCollider val = new PixelCollider(); val.ColliderGenerationMode = (PixelColliderGeneration)0; val.CollisionLayer = (CollisionLayer)3; val.ManualWidth = dimensions.x; val.ManualHeight = dimensions.y; val.ManualOffsetX = offset.x; val.ManualOffsetY = offset.y; orAddComponent.PixelColliders = new List { val }; return orAddComponent; } public static tk2dSpriteDefinition ConstructDefinition(Texture2D texture) { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Expected O, but got Unknown //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Expected O, but got Unknown //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_0091: 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) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_0114: 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_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_0154: 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_016f: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01ea: 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_0201: Unknown result type (might be due to invalid IL or missing references) //IL_0206: Unknown result type (might be due to invalid IL or missing references) //IL_021b: Unknown result type (might be due to invalid IL or missing references) //IL_0220: Unknown result type (might be due to invalid IL or missing references) //IL_0261: Unknown result type (might be due to invalid IL or missing references) //IL_0266: Unknown result type (might be due to invalid IL or missing references) //IL_0276: Unknown result type (might be due to invalid IL or missing references) //IL_027b: Unknown result type (might be due to invalid IL or missing references) //IL_0297: Unknown result type (might be due to invalid IL or missing references) //IL_029c: Unknown result type (might be due to invalid IL or missing references) //IL_02ac: Unknown result type (might be due to invalid IL or missing references) //IL_02b1: Unknown result type (might be due to invalid IL or missing references) RuntimeAtlasSegment val = Assets.Packer.Pack(texture, false); Material val2 = new Material(ShaderCache.Acquire(PlayerController.DefaultShaderName)); val2.mainTexture = (Texture)(object)val.texture; int width = ((Texture)texture).width; int height = ((Texture)texture).height; float num = 0f; float num2 = 0f; float num3 = (float)width / 16f; float num4 = (float)height / 16f; tk2dSpriteDefinition val3 = new tk2dSpriteDefinition(); val3.normals = (Vector3[])(object)new Vector3[4] { new Vector3(0f, 0f, -1f), new Vector3(0f, 0f, -1f), new Vector3(0f, 0f, -1f), new Vector3(0f, 0f, -1f) }; val3.tangents = (Vector4[])(object)new Vector4[4] { new Vector4(1f, 0f, 0f, 1f), new Vector4(1f, 0f, 0f, 1f), new Vector4(1f, 0f, 0f, 1f), new Vector4(1f, 0f, 0f, 1f) }; val3.texelSize = new Vector2(0.0625f, 0.0625f); val3.extractRegion = false; val3.regionX = 0; val3.regionY = 0; val3.regionW = 0; val3.regionH = 0; val3.flipped = (FlipMode)0; val3.complexGeometry = false; val3.physicsEngine = (PhysicsEngine)0; val3.colliderType = (ColliderType)1; val3.collisionLayer = (CollisionLayer)6; val3.position0 = new Vector3(num, num2, 0f); val3.position1 = new Vector3(num + num3, num2, 0f); val3.position2 = new Vector3(num, num2 + num4, 0f); val3.position3 = new Vector3(num + num3, num2 + num4, 0f); val3.material = val2; val3.materialInst = val2; val3.materialId = 0; val3.uvs = val.uvs; val3.boundsDataCenter = new Vector3(num3 / 2f, num4 / 2f, 0f); val3.boundsDataExtents = new Vector3(num3, num4, 0f); val3.untrimmedBoundsDataCenter = new Vector3(num3 / 2f, num4 / 2f, 0f); val3.untrimmedBoundsDataExtents = new Vector3(num3, num4, 0f); val3.name = ((Object)texture).name; return val3; } public static tk2dSpriteCollectionData ConstructCollection(GameObject obj, string name, bool isFakePrefab = true) { tk2dSpriteCollectionData obj2 = obj.AddComponent(); if (isFakePrefab) { Object.DontDestroyOnLoad((Object)(object)obj); } obj2.assetName = name; obj2.spriteCollectionGUID = name; obj2.spriteCollectionName = name; obj2.spriteDefinitions = (tk2dSpriteDefinition[])(object)new tk2dSpriteDefinition[0]; return obj2; } } } namespace ExpandTheGungeon.ExpandUtilities { public class RoomFactory { public struct RoomData { public string category; public string normalSubCategory; public string specialSubCategory; public string bossSubCategory; public Vector2[] enemyPositions; public string[] enemyGUIDs; public Vector2[] placeablePositions; public string[] placeableGUIDs; public int[] enemyReinforcementLayers; public Vector2[] exitPositions; public string[] exitDirections; public string[] floors; public float weight; public bool isSpecialRoom; public bool randomizeEnemyPositions; public bool doFloorDecoration; public bool doWallDecoration; public bool doLighting; [NonSerialized] public PrototypeDungeonRoom room; } public static readonly string dataHeader = "***DATA***"; private static readonly RoomEventDefinition sealOnEnterWithEnemies = new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0); private static readonly RoomEventDefinition unsealOnRoomClear = new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1); public static PrototypeDungeonRoom BuildFromAssetBundle(AssetBundle[] Bundles, string assetPath, bool setRoomCategory = false, bool autoAssignToFloor = false, bool assignDecorationSettings = false) { TextAsset val = ExpandAssets.LoadAsset(assetPath); if (Object.op_Implicit((Object)(object)val)) { RoomData roomData = ExtractRoomDataFromTextAssetBytes(val); return Build(Bundles, ExpandUtility.BytesToTexture(val.bytes, ((Object)val).name), roomData, setRoomCategory, autoAssignToFloor, assignDecorationSettings, roomData.weight); } ETGModConsole.Log((object)("[ExpandTheGungeon] ERROR: RoomFactory asset: " + assetPath + " was not found!"), false); return null; } public static PrototypeDungeonRoom Build(AssetBundle[] Bundles, Texture2D texture, RoomData roomData, bool SetRoomCategory, bool AutoAssignToFloor, bool AssignDecorationProperties, float? Weight) { try { PrototypeDungeonRoom val = CreateRoomFromTexture(texture); ApplyRoomData(Bundles, val, roomData, SetRoomCategory, AutoAssignToFloor, AssignDecorationProperties, Weight); val.OnBeforeSerialize(); val.OnAfterDeserialize(); val.UpdatePrecalculatedData(); return val; } catch (Exception e) { Tools.PrintError("Failed to build room!"); Tools.PrintException(e); } return CreateEmptyRoom(); } public static void ApplyRoomData(AssetBundle[] Bundles, PrototypeDungeonRoom room, RoomData roomData, bool setRoomCategory, bool autoAssignToFloor, bool assignDecorationProperties, float? Weight, bool CellDataWasSerialized = false) { //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_0151: 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_0116: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_0174: 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_01f5: Invalid comparison between Unknown and I4 //IL_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_01d7: Invalid comparison between Unknown and I4 //IL_018d: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_01fa: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_023c: Unknown result type (might be due to invalid IL or missing references) if (roomData.exitPositions != null) { for (int i = 0; i < roomData.exitPositions.Length; i++) { Direction direction = (Direction)Enum.Parse(typeof(Direction), roomData.exitDirections[i].ToUpper()); AddExit(room, roomData.exitPositions[i], direction); } } else { AddExit(room, new Vector2((float)(room.Width / 2), (float)room.Height), (Direction)0); AddExit(room, new Vector2((float)(room.Width / 2), 0f), (Direction)4); AddExit(room, new Vector2((float)room.Width, (float)(room.Height / 2)), (Direction)2); AddExit(room, new Vector2(0f, (float)(room.Height / 2)), (Direction)6); } if (roomData.enemyPositions != null) { for (int j = 0; j < roomData.enemyPositions.Length; j++) { AddEnemyToRoom(room, roomData.enemyPositions[j], roomData.enemyGUIDs[j], roomData.enemyReinforcementLayers[j], roomData.randomizeEnemyPositions); } } if (roomData.placeablePositions != null) { for (int k = 0; k < roomData.placeablePositions.Length; k++) { AddPlaceableToRoom(Bundles, room, roomData.placeablePositions[k], roomData.placeableGUIDs[k]); } } if (setRoomCategory || autoAssignToFloor) { if (!string.IsNullOrEmpty(roomData.category)) { room.category = GetRoomCategory(roomData.category); } if (!string.IsNullOrEmpty(roomData.normalSubCategory)) { room.subCategoryNormal = GetRoomNormalSubCategory(roomData.normalSubCategory); } if (!string.IsNullOrEmpty(roomData.bossSubCategory)) { room.subCategoryBoss = GetRoomBossSubCategory(roomData.bossSubCategory); } if (!string.IsNullOrEmpty(roomData.specialSubCategory)) { room.subCategorySpecial = GetRoomSpecialSubCategory(roomData.specialSubCategory); } } if (autoAssignToFloor && roomData.floors != null) { if (!Weight.HasValue) { Weight = (((int)room.category != 6) ? new float?(1f) : new float?(15f)); } if ((int)room.category == 6) { room.OverrideMusicState = (DungeonMusicState)30; ExpandPrefabs.SecretRoomTable.includedRooms.elements.Add(ExpandRoomPrefabs.GenerateWeightedRoom(room, Weight.Value)); } else { string[] floors = roomData.floors; foreach (string val in floors) { AssignRoomToFloorRoomTable(room, GetTileSet(val), Weight); } } } if (assignDecorationProperties) { room.allowFloorDecoration = roomData.doFloorDecoration; room.allowWallDecoration = roomData.doWallDecoration; room.usesProceduralLighting = roomData.doLighting; } if (!CellDataWasSerialized) { Texture2D val2 = ExpandAssets.LoadAsset(((Object)room).name + "_FloorData"); if (Object.op_Implicit((Object)(object)val2)) { ApplyExtraFloorCellDataFromTexture2D(room, val2); } } } public static void AssignRoomToFloorRoomTable(PrototypeDungeonRoom Room, ValidTilesets targetTileSet, float? Weight) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Invalid comparison between Unknown and I4 //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Invalid comparison between Unknown and I4 //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Invalid comparison between Unknown and I4 //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Invalid comparison between Unknown and I4 //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Invalid comparison between Unknown and I4 //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Invalid comparison between Unknown and I4 //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Invalid comparison between Unknown and I4 //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Invalid comparison between Unknown and I4 //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Invalid comparison between Unknown and I4 if ((int)targetTileSet == 2) { ExpandPrefabs.CastleRoomTable.includedRooms.elements.Add(ExpandRoomPrefabs.GenerateWeightedRoom(Room, Weight.Value)); } else if ((int)targetTileSet == 4) { ExpandPrefabs.SewersRoomTable.includedRooms.elements.Add(ExpandRoomPrefabs.GenerateWeightedRoom(Room, Weight.Value)); } else if ((int)targetTileSet == 1) { ExpandPrefabs.Gungeon_RoomTable.includedRooms.elements.Add(ExpandRoomPrefabs.GenerateWeightedRoom(Room, Weight.Value)); } else if ((int)targetTileSet == 8) { ExpandPrefabs.AbbeyRoomTable.includedRooms.elements.Add(ExpandRoomPrefabs.GenerateWeightedRoom(Room, Weight.Value)); } else if ((int)targetTileSet == 16) { ExpandPrefabs.MinesRoomTable.includedRooms.elements.Add(ExpandRoomPrefabs.GenerateWeightedRoom(Room, Weight.Value)); } else if ((int)targetTileSet == 32) { ExpandPrefabs.CatacombsRoomTable.includedRooms.elements.Add(ExpandRoomPrefabs.GenerateWeightedRoom(Room, Weight.Value)); } else if ((int)targetTileSet != 2048) { if ((int)targetTileSet == 64) { ExpandPrefabs.ForgeRoomTable.includedRooms.elements.Add(ExpandRoomPrefabs.GenerateWeightedRoom(Room, Weight.Value)); } else if ((int)targetTileSet == 128) { ExpandPrefabs.BulletHellRoomTable.includedRooms.elements.Add(ExpandRoomPrefabs.GenerateWeightedRoom(Room, Weight.Value)); } } } public static ValidTilesets GetTileSet(string val) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) return (ValidTilesets)Enum.Parse(typeof(ValidTilesets), val.ToUpper()); } public static RoomCategory GetRoomCategory(string val) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) return (RoomCategory)Enum.Parse(typeof(RoomCategory), val.ToUpper()); } public static RoomNormalSubCategory GetRoomNormalSubCategory(string val) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) return (RoomNormalSubCategory)Enum.Parse(typeof(RoomNormalSubCategory), val.ToUpper()); } public static RoomBossSubCategory GetRoomBossSubCategory(string val) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) return (RoomBossSubCategory)Enum.Parse(typeof(RoomBossSubCategory), val.ToUpper()); } public static RoomSpecialSubCategory GetRoomSpecialSubCategory(string val) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) return (RoomSpecialSubCategory)Enum.Parse(typeof(RoomSpecialSubCategory), val.ToUpper()); } public static RoomData ExtractRoomDataFromFile(string path) { return ExtractRoomData(ExpandAssets.BytesToString(File.ReadAllBytes(path))); } public static RoomData ExtractRoomDataFromTextAssetBytes(TextAsset textAsset) { return ExtractRoomData(ExpandAssets.BytesToString(textAsset.bytes)); } public static RoomData ExtractRoomData(string data) { for (int num = data.Length - dataHeader.Length - 1; num > 0; num--) { if (data.Substring(num, dataHeader.Length).Equals(dataHeader)) { return JsonUtility.FromJson(data.Substring(num + dataHeader.Length)); } } ETGModConsole.Log((object)"No room data found!", true); return default(RoomData); } public static PrototypeDungeonRoom CreateRoomFromTexture(Texture2D texture) { //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) int width = ((Texture)texture).width; int height = ((Texture)texture).height; PrototypeDungeonRoom newPrototypeDungeonRoom = GetNewPrototypeDungeonRoom(width, height); newPrototypeDungeonRoom.FullCellData = (PrototypeDungeonRoomCellData[])(object)new PrototypeDungeonRoomCellData[width * height]; for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { newPrototypeDungeonRoom.FullCellData[i + j * width] = CellDataFromColor(Color32.op_Implicit(texture.GetPixel(i, j))); } } ((Object)newPrototypeDungeonRoom).name = ((Object)texture).name; return newPrototypeDungeonRoom; } public static PrototypeDungeonRoomCellData CellDataFromColor(Color32 color) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Expected O, but got Unknown //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_000d: 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_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Expected O, but got Unknown //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) PrototypeDungeonRoomCellData val = new PrototypeDungeonRoomCellData(); val.state = TypeFromColor(Color32.op_Implicit(color)); val.diagonalWallType = DiagonalWallTypeFromColor(Color32.op_Implicit(color)); val.appearance = new PrototypeDungeonRoomCellAppearance { OverrideFloorType = (CellFloorType)0 }; if (Color32.op_Implicit(color) == Color.red) { val.appearance.OverrideFloorType = (CellFloorType)2; val.appearance.IsPhantomCarpet = true; } return val; } public static CellType TypeFromColor(Color color) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0010: 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_001b: Unknown result type (might be due to invalid IL or missing references) if (!(color == Color.black)) { if (!((color == Color.white) | (color == Color.red))) { return (CellType)1; } return (CellType)2; } return (CellType)4; } public static DiagonalWallType DiagonalWallTypeFromColor(Color color) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0010: 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_001f: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) if (!(color == Color.red)) { if (!(color == Color.green)) { if (!(color == Color.blue)) { if (!(color == Color.yellow)) { return (DiagonalWallType)0; } return (DiagonalWallType)4; } return (DiagonalWallType)3; } return (DiagonalWallType)2; } return (DiagonalWallType)1; } public static PrototypeDungeonRoom CreateEmptyRoom(int width = 12, int height = 12) { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: 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_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008c: 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_0099: 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_00a5: Expected O, but got Unknown //IL_00a6: Expected O, but got Unknown try { Tools.Print(" Create Empty Room...", "5599FF"); PrototypeDungeonRoom newPrototypeDungeonRoom = GetNewPrototypeDungeonRoom(width, height); AddExit(newPrototypeDungeonRoom, new Vector2((float)(width / 2), (float)height), (Direction)0); AddExit(newPrototypeDungeonRoom, new Vector2((float)(width / 2), 0f), (Direction)4); AddExit(newPrototypeDungeonRoom, new Vector2((float)width, (float)(height / 2)), (Direction)2); AddExit(newPrototypeDungeonRoom, new Vector2(0f, (float)(height / 2)), (Direction)6); newPrototypeDungeonRoom.FullCellData = (PrototypeDungeonRoomCellData[])(object)new PrototypeDungeonRoomCellData[width * height]; for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { newPrototypeDungeonRoom.FullCellData[i + j * width] = new PrototypeDungeonRoomCellData { state = (CellType)2, appearance = new PrototypeDungeonRoomCellAppearance { OverrideFloorType = (CellFloorType)0 } }; } } newPrototypeDungeonRoom.OnBeforeSerialize(); newPrototypeDungeonRoom.OnAfterDeserialize(); newPrototypeDungeonRoom.UpdatePrecalculatedData(); return newPrototypeDungeonRoom; } catch (Exception e) { Tools.PrintException(e); return null; } } public static GameObject GetGameObjectFromBundles(AssetBundle[] bundles, string assetPath) { foreach (AssetBundle val in bundles) { if (Object.op_Implicit((Object)(object)val.LoadAsset(assetPath))) { return val.LoadAsset(assetPath); } } return null; } public static DungeonPlaceable GetPlaceableFromBundles(AssetBundle[] bundles, string assetPath) { foreach (AssetBundle val in bundles) { if (Object.op_Implicit((Object)(object)val.LoadAsset(assetPath))) { return val.LoadAsset(assetPath); } } return null; } public static void AddEnemyToRoom(PrototypeDungeonRoom room, Vector2 location, string guid, int layer, bool shuffle) { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Expected O, but got Unknown //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0060: 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_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0067: 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_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Expected O, but got Unknown //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) DungeonPlaceable val = ScriptableObject.CreateInstance(); val.width = 1; val.height = 1; val.respectsEncounterableDifferentiator = true; val.variantTiers = new List { new DungeonPlaceableVariant { percentChance = 1f, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], enemyPlaceableGuid = guid, materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] } }; PrototypePlacedObjectData val2 = new PrototypePlacedObjectData { contentsBasePosition = location, fieldData = new List(), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(), placeableContents = val }; if (layer > 0) { AddObjectDataToReinforcementLayer(room, val2, layer - 1, location, shuffle); } else { room.placedObjects.Add(val2); room.placedObjectPositions.Add(location); } if (!room.roomEvents.Contains(sealOnEnterWithEnemies)) { room.roomEvents.Add(sealOnEnterWithEnemies); } if (!room.roomEvents.Contains(unsealOnRoomClear)) { room.roomEvents.Add(unsealOnRoomClear); } } public static void AddObjectDataToReinforcementLayer(PrototypeDungeonRoom room, PrototypePlacedObjectData objectData, int layer, Vector2 location, bool shuffle) { //IL_0083: 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_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Expected O, but got Unknown if (room.additionalObjectLayers.Count <= layer) { for (int i = room.additionalObjectLayers.Count; i <= layer; i++) { PrototypeRoomObjectLayer item = new PrototypeRoomObjectLayer { layerIsReinforcementLayer = true, placedObjects = new List(), placedObjectBasePositions = new List(), shuffle = shuffle }; room.additionalObjectLayers.Add(item); } } room.additionalObjectLayers[layer].placedObjects.Add(objectData); room.additionalObjectLayers[layer].placedObjectBasePositions.Add(location); } public static void AddPlaceableToRoom(AssetBundle[] Bundles, PrototypeDungeonRoom room, Vector2 location, string assetPath) { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: 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_0064: 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_007c: Expected O, but got Unknown //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_008d: 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_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Expected O, but got Unknown //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Expected O, but got Unknown try { if ((Object)(object)GetGameObjectFromBundles(Bundles, assetPath) != (Object)null) { DungeonPrerequisite[] array = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; room.placedObjectPositions.Add(location); DungeonPlaceable val = ScriptableObject.CreateInstance(); val.width = 2; val.height = 2; val.respectsEncounterableDifferentiator = true; val.variantTiers = new List { new DungeonPlaceableVariant { percentChance = 1f, nonDatabasePlaceable = GetGameObjectFromBundles(Bundles, assetPath), prerequisites = array, materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] } }; room.placedObjects.Add(new PrototypePlacedObjectData { contentsBasePosition = location, fieldData = new List(), instancePrerequisites = array, linkedTriggerAreaIDs = new List(), placeableContents = val }); } else if ((Object)(object)GetPlaceableFromBundles(Bundles, assetPath) != (Object)null) { DungeonPrerequisite[] instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; room.placedObjectPositions.Add(location); room.placedObjects.Add(new PrototypePlacedObjectData { contentsBasePosition = location, fieldData = new List(), instancePrerequisites = instancePrerequisites, linkedTriggerAreaIDs = new List(), placeableContents = GetPlaceableFromBundles(Bundles, assetPath) }); } else { Tools.PrintError("Unable to find asset in asset bundles: " + assetPath); } } catch (Exception e) { Tools.PrintException(e); } } public static void AddExit(PrototypeDungeonRoom room, Vector2 location, Direction direction) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Expected O, but got Unknown //IL_0030: 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_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Expected O, but got Unknown //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Invalid comparison between Unknown and I4 //IL_0062: 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_0045: Invalid comparison between Unknown and I4 //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_006f: 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_0051: Unknown result type (might be due to invalid IL or missing references) if (room.exitData == null) { room.exitData = new PrototypeRoomExitData(); } if (room.exitData.exits == null) { room.exitData.exits = new List(); } PrototypeRoomExit val = new PrototypeRoomExit(direction, location); val.exitType = (ExitType)0; Vector2 val2 = (((int)direction == 2 || (int)direction == 6) ? new Vector2(0f, 1f) : new Vector2(1f, 0f)); val.containedCells.Add(location + val2); room.exitData.exits.Add(val); } public static PrototypeDungeonRoom GetNewPrototypeDungeonRoom(int width = 12, int height = 12) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Expected O, but got Unknown //IL_0069: 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_00a5: Expected O, but got Unknown //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0154: 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_0166: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Expected O, but got Unknown //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Unknown result type (might be due to invalid IL or missing references) PrototypeDungeonRoom obj = ScriptableObject.CreateInstance(); obj.injectionFlags = new RuntimeInjectionFlags(); obj.RoomId = Random.Range(10000, 1000000); obj.pits = new List(); obj.placedObjects = new List(); obj.placedObjectPositions = new List(); obj.additionalObjectLayers = new List(); obj.eventTriggerAreas = new List(); obj.roomEvents = new List(); obj.overriddenTilesets = (ValidTilesets)0; obj.paths = new List(); obj.prerequisites = new List(); obj.excludedOtherRooms = new List(); obj.rectangularFeatures = new List(); obj.exitData = new PrototypeRoomExitData(); obj.exitData.exits = new List(); obj.Width = width; obj.Height = height; obj.GUID = Guid.NewGuid().ToString(); obj.category = (RoomCategory)2; obj.subCategoryBoss = (RoomBossSubCategory)0; obj.subCategoryNormal = (RoomNormalSubCategory)0; obj.subCategorySpecial = (RoomSpecialSubCategory)1; obj.subCategorySecret = (RoomSecretSubCategory)0; obj.usesProceduralDecoration = true; obj.usesProceduralLighting = true; obj.allowWallDecoration = true; obj.allowFloorDecoration = true; obj.PreventMirroring = false; obj.InvalidInCoop = false; obj.preventAddedDecoLayering = false; obj.precludeAllTilemapDrawing = false; obj.drawPrecludedCeilingTiles = false; obj.preventBorders = false; obj.preventFacewallAO = false; obj.usesCustomAmbientLight = false; obj.customAmbientLight = Color.white; obj.ForceAllowDuplicates = false; obj.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; obj.IsLostWoodsRoom = false; obj.UseCustomMusic = false; obj.UseCustomMusicState = false; obj.CustomMusicEvent = string.Empty; obj.UseCustomMusicSwitch = false; obj.CustomMusicSwitch = string.Empty; obj.overrideRoomVisualTypeForSecretRooms = false; obj.rewardChestSpawnPosition = new IntVector2(-1, -1); obj.overrideRoomVisualType = -1; return obj; } public static void ApplyExtraFloorCellDataFromTexture2D(PrototypeDungeonRoom room, Texture2D sourceTexture) { //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_0126: 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_0130: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0147: 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_0160: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0175: 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_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01d0: 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_01ea: Unknown result type (might be due to invalid IL or missing references) //IL_01f0: Invalid comparison between Unknown and I4 //IL_01f7: Unknown result type (might be due to invalid IL or missing references) //IL_01fc: Unknown result type (might be due to invalid IL or missing references) //IL_0211: Unknown result type (might be due to invalid IL or missing references) //IL_0216: Unknown result type (might be due to invalid IL or missing references) //IL_0205: Unknown result type (might be due to invalid IL or missing references) //IL_0208: 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_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0220: 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_02a3: Invalid comparison between Unknown and I4 //IL_023b: Unknown result type (might be due to invalid IL or missing references) //IL_0240: Unknown result type (might be due to invalid IL or missing references) //IL_0235: Unknown result type (might be due to invalid IL or missing references) //IL_02b8: Unknown result type (might be due to invalid IL or missing references) //IL_02bc: Invalid comparison between Unknown and I4 //IL_0250: Unknown result type (might be due to invalid IL or missing references) //IL_0255: Unknown result type (might be due to invalid IL or missing references) //IL_024a: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02d6: Unknown result type (might be due to invalid IL or missing references) //IL_0265: Unknown result type (might be due to invalid IL or missing references) //IL_026a: Unknown result type (might be due to invalid IL or missing references) //IL_025f: Unknown result type (might be due to invalid IL or missing references) //IL_027a: Unknown result type (might be due to invalid IL or missing references) //IL_027f: Unknown result type (might be due to invalid IL or missing references) //IL_0274: Unknown result type (might be due to invalid IL or missing references) //IL_028f: Unknown result type (might be due to invalid IL or missing references) //IL_0294: Unknown result type (might be due to invalid IL or missing references) //IL_0289: Unknown result type (might be due to invalid IL or missing references) //IL_029e: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)sourceTexture == (Object)null) { ETGModConsole.Log((object)"[ExpandTheGungeon] ApplyExtraFloorCellDataFromTexture2D: WARNING! Requested Texture for extra floor data is null!", ExpandSettings.debugMode); ETGModConsole.Log((object)("[ExpandTheGungeon] Room: " + ((Object)room).name + " will not have any extra floor data!"), ExpandSettings.debugMode); return; } int width = room.Width; int height = room.Height; int num = width * height; if (sourceTexture.GetPixels32().Length != num) { ETGModConsole.Log((object)"[ExpandTheGungeon] ApplyExtraFloorCellDataFromTexture2D: WARNING! Image resolution doesn't match size of room!", ExpandSettings.debugMode); ETGModConsole.Log((object)("[ExpandTheGungeon] Room: " + ((Object)room).name + " will not have any extra floor data!"), ExpandSettings.debugMode); return; } Color32.op_Implicit(new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue)); Color val = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)0, (byte)0, byte.MaxValue)); Color32.op_Implicit(new Color32((byte)0, byte.MaxValue, (byte)0, byte.MaxValue)); Color val2 = Color32.op_Implicit(new Color32((byte)0, (byte)127, byte.MaxValue, byte.MaxValue)); Color val3 = Color32.op_Implicit(new Color32((byte)0, (byte)0, (byte)127, byte.MaxValue)); Color val4 = Color32.op_Implicit(new Color32((byte)0, (byte)0, (byte)127, byte.MaxValue)); Color val5 = Color32.op_Implicit(new Color32((byte)127, byte.MaxValue, (byte)127, byte.MaxValue)); Color val6 = Color32.op_Implicit(new Color32((byte)127, (byte)127, (byte)127, byte.MaxValue)); Color val7 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)127, (byte)0, byte.MaxValue)); Color val8 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)127, (byte)127, byte.MaxValue)); for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { int num2 = j * width + i; Color? val9 = sourceTexture.GetPixel(i, j); PrototypeDungeonRoomCellData val10 = room.FullCellData[num2]; float damageToPlayersPerTick = 0f; float damageToEnemiesPerTick = 0f; float tickFrequency = 0f; bool respectsFlying = true; bool isPoison = false; bool doesDamage = false; CoreDamageTypes val11 = (CoreDamageTypes)0; CellFloorType floorType = (CellFloorType)0; if (val10 != null && val9.HasValue && (int)val10.state == 2) { if (val9.Value == val) { floorType = (CellFloorType)0; val11 = (CoreDamageTypes)4; } else if (val9.Value == val2) { floorType = (CellFloorType)3; } else if (val9.Value == val3) { floorType = (CellFloorType)1; } else if (val9.Value == val4) { floorType = (CellFloorType)2; } else if (val9.Value == val5) { floorType = (CellFloorType)4; } else if (val9.Value == val6) { floorType = (CellFloorType)5; } else if (val9.Value == val7) { floorType = (CellFloorType)6; } else if (val9.Value == val8) { floorType = (CellFloorType)7; } if ((int)val11 == 4) { doesDamage = true; damageToPlayersPerTick = 0.5f; tickFrequency = 1f; } else if ((int)val11 == 16) { isPoison = true; doesDamage = true; damageToPlayersPerTick = 0.5f; tickFrequency = 1f; } ApplyExtraFloorCellData(val10, val11, floorType, damageToPlayersPerTick, damageToEnemiesPerTick, tickFrequency, respectsFlying, doesDamage, isPoison); } } } } public static void ApplyExtraFloorCellData(PrototypeDungeonRoomCellData cellData, CoreDamageTypes DamageType, CellFloorType FloorType, float DamageToPlayersPerTick = 0f, float DamageToEnemiesPerTick = 0f, float TickFrequency = 0f, bool RespectsFlying = true, bool DoesDamage = false, bool IsPoison = false) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0045: 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_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Invalid comparison between Unknown and I4 //IL_0054: 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_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Expected O, but got Unknown //IL_008a: Expected O, but got Unknown //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Invalid comparison between Unknown and I4 //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: 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) cellData.doesDamage = DoesDamage; cellData.damageDefinition = new CellDamageDefinition { damageTypes = DamageType, damageToPlayersPerTick = DamageToPlayersPerTick, damageToEnemiesPerTick = DamageToEnemiesPerTick, tickFrequency = TickFrequency, respectsFlying = RespectsFlying, isPoison = IsPoison }; if (cellData.appearance == null) { cellData.appearance = new PrototypeDungeonRoomCellAppearance { overrideDungeonMaterialIndex = -1, IsPhantomCarpet = false, ForceDisallowGoop = false, globalOverrideIndices = new PrototypeIndexOverrideData { indices = new List(0) } }; } if ((int)DamageType == 16) { cellData.ForceTileNonDecorated = true; cellData.damageDefinition.damageTypes = (CoreDamageTypes)16; } else if ((int)DamageType == 4) { cellData.ForceTileNonDecorated = true; cellData.damageDefinition.damageTypes = (CoreDamageTypes)4; } cellData.appearance.OverrideFloorType = FloorType; } } public class RoomDebug { public static void DumpCurrentRoomLayout(PrototypeDungeonRoom overrideRoom = null, RoomHandler generatedRoomHandler = null) { //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Invalid comparison between Unknown and I4 //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Invalid comparison between Unknown and I4 //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Invalid comparison between Unknown and I4 //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Invalid comparison between Unknown and I4 //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_0154: Invalid comparison between Unknown and I4 //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_017a: Invalid comparison between Unknown and I4 //IL_0196: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Invalid comparison between Unknown and I4 //IL_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_01c3: Invalid comparison between Unknown and I4 //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Invalid comparison between Unknown and I4 //IL_0202: Unknown result type (might be due to invalid IL or missing references) //IL_020c: Invalid comparison between Unknown and I4 try { if ((Object)(object)overrideRoom != (Object)null) { LogRoomToPNGFile(overrideRoom); ETGModConsole.Log((object)"Succesfully saved room layout to PNG.", false); return; } if (generatedRoomHandler != null) { LogRoomHandlerToPNGFile(generatedRoomHandler); ETGModConsole.Log((object)"Succesfully saved room layout to PNG.", false); return; } RoomHandler currentRoom = GameManager.Instance.PrimaryPlayer.CurrentRoom; int currentFloor = GameManager.Instance.CurrentFloor; Dungeon val = null; if (currentFloor == 1) { val = DungeonDatabase.GetOrLoadByName("Base_Castle"); } if (currentFloor == 2) { val = DungeonDatabase.GetOrLoadByName("Base_Gungeon"); } if (currentFloor == 3) { val = DungeonDatabase.GetOrLoadByName("Base_Mines"); } if (currentFloor == 4) { val = DungeonDatabase.GetOrLoadByName("Base_Catacombs"); } if (currentFloor == 5) { val = DungeonDatabase.GetOrLoadByName("Base_Forge"); } if (currentFloor == 6) { val = DungeonDatabase.GetOrLoadByName("Base_BulletHell"); } if (currentFloor == -1) { if ((int)GameManager.Instance.Dungeon.tileIndices.tilesetId == 2) { val = DungeonDatabase.GetOrLoadByName("Base_Castle"); } if ((int)GameManager.Instance.Dungeon.tileIndices.tilesetId == 4) { val = DungeonDatabase.GetOrLoadByName("Base_Sewer"); } if ((int)GameManager.Instance.Dungeon.tileIndices.tilesetId == 1) { val = DungeonDatabase.GetOrLoadByName("Base_Gungeon"); } if ((int)GameManager.Instance.Dungeon.tileIndices.tilesetId == 8) { val = DungeonDatabase.GetOrLoadByName("Base_Cathedral"); } if ((int)GameManager.Instance.Dungeon.tileIndices.tilesetId == 16) { val = DungeonDatabase.GetOrLoadByName("Base_Mines"); } if ((int)GameManager.Instance.Dungeon.tileIndices.tilesetId == 32768) { val = DungeonDatabase.GetOrLoadByName("Base_ResourcefulRat"); } if ((int)GameManager.Instance.Dungeon.tileIndices.tilesetId == 32) { val = DungeonDatabase.GetOrLoadByName("Base_Catacombs"); } if ((int)GameManager.Instance.Dungeon.tileIndices.tilesetId == 2048) { val = DungeonDatabase.GetOrLoadByName("Base_Nakatomi"); } if ((int)GameManager.Instance.Dungeon.tileIndices.tilesetId == 64) { val = DungeonDatabase.GetOrLoadByName("Base_Forge"); } if ((int)GameManager.Instance.Dungeon.tileIndices.tilesetId == 128) { val = DungeonDatabase.GetOrLoadByName("Base_BulletHell"); } } if ((Object)(object)val == (Object)null) { ETGModConsole.Log((object)"Could not find current Dungeon prefab for current floor!\n Attempting to use local dungeon data area of room instead.", false); LogRoomHandlerToPNGFile(currentRoom); val = null; return; } if (val.PatternSettings.flows != null && (Object)(object)val.PatternSettings.flows[0].fallbackRoomTable != (Object)null && val.PatternSettings.flows[0].fallbackRoomTable.includedRooms.elements != null && val.PatternSettings.flows[0].fallbackRoomTable.includedRooms.elements.Count > 0) { for (int i = 0; i < val.PatternSettings.flows[0].fallbackRoomTable.includedRooms.elements.Count; i++) { if ((Object)(object)val.PatternSettings.flows[0].fallbackRoomTable.includedRooms.elements[i].room != (Object)null && currentRoom.GetRoomName().ToLower().StartsWith(((Object)val.PatternSettings.flows[0].fallbackRoomTable.includedRooms.elements[i].room).name.ToLower())) { LogRoomToPNGFile(val.PatternSettings.flows[0].fallbackRoomTable.includedRooms.elements[i].room); ETGModConsole.Log((object)"Succesfully saved current room layout to PNG.", false); val = null; return; } } } if (val.PatternSettings.flows != null && (Object)(object)val.PatternSettings.flows[0].fallbackRoomTable == (Object)null) { for (int j = 0; j < val.PatternSettings.flows[0].AllNodes.Count; j++) { if ((Object)(object)val.PatternSettings.flows[0].AllNodes[j].overrideExactRoom != (Object)null && currentRoom.GetRoomName().ToLower().StartsWith(((Object)val.PatternSettings.flows[0].AllNodes[j].overrideExactRoom).name.ToLower())) { LogRoomToPNGFile(val.PatternSettings.flows[0].AllNodes[j].overrideExactRoom); ETGModConsole.Log((object)"Succesfully saved current room layout to PNG.", false); val = null; return; } } } ETGModConsole.Log((object)"Current Room's ProtoTypeDungeonRoom prefab not found!\nAttempting to use local DungeonData of RoomHandler object instead...", false); LogRoomHandlerToPNGFile(currentRoom); val = null; ETGModConsole.Log((object)"Succesfully saved current room layout to PNG.", false); } catch (Exception ex) { ETGModConsole.Log((object)"Failed to save room layout!", false); ETGModConsole.Log((object)(" " + ex.Message), false); Debug.LogException(ex); } } public static void LogRoomToPNGFile(PrototypeDungeonRoom room) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Expected O, but got Unknown //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_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: 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_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: 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_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_0167: 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_0171: 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_0184: Unknown result type (might be due to invalid IL or missing references) //IL_0189: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: 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_01e1: Unknown result type (might be due to invalid IL or missing references) //IL_0247: Unknown result type (might be due to invalid IL or missing references) //IL_024d: Invalid comparison between Unknown and I4 //IL_0239: Unknown result type (might be due to invalid IL or missing references) //IL_0213: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Unknown result type (might be due to invalid IL or missing references) //IL_0361: Unknown result type (might be due to invalid IL or missing references) //IL_0367: Invalid comparison between Unknown and I4 //IL_03c4: Unknown result type (might be due to invalid IL or missing references) //IL_03ca: Invalid comparison between Unknown and I4 //IL_0369: Unknown result type (might be due to invalid IL or missing references) //IL_036c: Invalid comparison between Unknown and I4 //IL_025b: Unknown result type (might be due to invalid IL or missing references) //IL_03d1: Unknown result type (might be due to invalid IL or missing references) //IL_037c: Unknown result type (might be due to invalid IL or missing references) //IL_037f: Invalid comparison between Unknown and I4 //IL_0373: Unknown result type (might be due to invalid IL or missing references) //IL_0356: Unknown result type (might be due to invalid IL or missing references) //IL_028a: Unknown result type (might be due to invalid IL or missing references) //IL_028f: Unknown result type (might be due to invalid IL or missing references) //IL_0291: Unknown result type (might be due to invalid IL or missing references) //IL_038f: Unknown result type (might be due to invalid IL or missing references) //IL_0392: Invalid comparison between Unknown and I4 //IL_0386: Unknown result type (might be due to invalid IL or missing references) //IL_02a6: Unknown result type (might be due to invalid IL or missing references) //IL_02a9: Invalid comparison between Unknown and I4 //IL_029a: Unknown result type (might be due to invalid IL or missing references) //IL_03a2: Unknown result type (might be due to invalid IL or missing references) //IL_03a5: Invalid comparison between Unknown and I4 //IL_0399: Unknown result type (might be due to invalid IL or missing references) //IL_02bc: Unknown result type (might be due to invalid IL or missing references) //IL_02bf: Invalid comparison between Unknown and I4 //IL_02b0: Unknown result type (might be due to invalid IL or missing references) //IL_03ba: Unknown result type (might be due to invalid IL or missing references) //IL_03ac: Unknown result type (might be due to invalid IL or missing references) //IL_02d2: Unknown result type (might be due to invalid IL or missing references) //IL_02d5: Invalid comparison between Unknown and I4 //IL_02c6: Unknown result type (might be due to invalid IL or missing references) //IL_02e8: Unknown result type (might be due to invalid IL or missing references) //IL_02eb: Invalid comparison between Unknown and I4 //IL_02dc: Unknown result type (might be due to invalid IL or missing references) //IL_02fe: Unknown result type (might be due to invalid IL or missing references) //IL_0301: Invalid comparison between Unknown and I4 //IL_02f2: Unknown result type (might be due to invalid IL or missing references) //IL_0314: Unknown result type (might be due to invalid IL or missing references) //IL_0317: Invalid comparison between Unknown and I4 //IL_0308: Unknown result type (might be due to invalid IL or missing references) //IL_032a: Unknown result type (might be due to invalid IL or missing references) //IL_032d: Invalid comparison between Unknown and I4 //IL_031e: Unknown result type (might be due to invalid IL or missing references) //IL_0345: Unknown result type (might be due to invalid IL or missing references) //IL_0334: Unknown result type (might be due to invalid IL or missing references) int width = room.Width; int height = room.Height; Texture2D val = new Texture2D(width, height, (TextureFormat)4, false); if (!string.IsNullOrEmpty(((Object)room).name)) { ((Object)val).name = ((Object)room).name; } Color val2 = Color32.op_Implicit(new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue)); Color val3 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)0, byte.MaxValue, byte.MaxValue)); Color val4 = Color32.op_Implicit(new Color32(byte.MaxValue, byte.MaxValue, (byte)0, byte.MaxValue)); Color val5 = Color32.op_Implicit(new Color32((byte)127, (byte)0, (byte)127, byte.MaxValue)); Color val6 = Color32.op_Implicit(new Color32((byte)127, (byte)127, (byte)0, byte.MaxValue)); Color val7 = Color32.op_Implicit(new Color32((byte)0, (byte)0, byte.MaxValue, byte.MaxValue)); Color val8 = Color32.op_Implicit(new Color32((byte)0, (byte)127, byte.MaxValue, byte.MaxValue)); Color val9 = Color32.op_Implicit(new Color32((byte)0, (byte)0, (byte)127, byte.MaxValue)); Color val10 = Color32.op_Implicit(new Color32((byte)0, (byte)0, (byte)127, byte.MaxValue)); Color val11 = Color32.op_Implicit(new Color32((byte)127, byte.MaxValue, (byte)127, byte.MaxValue)); Color val12 = Color32.op_Implicit(new Color32((byte)127, (byte)127, (byte)127, byte.MaxValue)); Color val13 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)127, (byte)0, byte.MaxValue)); Color val14 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)127, (byte)127, byte.MaxValue)); Color val15 = Color32.op_Implicit(new Color32((byte)0, byte.MaxValue, (byte)0, byte.MaxValue)); Color val16 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)0, (byte)0, byte.MaxValue)); Color val17 = Color32.op_Implicit(new Color32((byte)0, (byte)0, (byte)0, byte.MaxValue)); for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { CellType? val18 = room.GetCellDataAtPoint(i, j).state; bool flag = false; DiagonalWallType val19 = (DiagonalWallType)0; if (room.GetCellDataAtPoint(i, j) != null && val18.HasValue) { flag = room.GetCellDataAtPoint(i, j).doesDamage; val19 = room.GetCellDataAtPoint(i, j).diagonalWallType; } if ((room.GetCellDataAtPoint(i, j) == null) | !val18.HasValue) { val.SetPixel(i, j, val17); } else if ((int)val18.Value == 2) { if (flag) { val.SetPixel(i, j, val15); } else if (room.GetCellDataAtPoint(i, j).appearance != null) { CellFloorType overrideFloorType = room.GetCellDataAtPoint(i, j).appearance.OverrideFloorType; if ((int)overrideFloorType == 0) { val.SetPixel(i, j, val7); } else if ((int)overrideFloorType == 3) { val.SetPixel(i, j, val8); } else if ((int)overrideFloorType == 1) { val.SetPixel(i, j, val9); } else if ((int)overrideFloorType == 2) { val.SetPixel(i, j, val10); } else if ((int)overrideFloorType == 4) { val.SetPixel(i, j, val11); } else if ((int)overrideFloorType == 5) { val.SetPixel(i, j, val12); } else if ((int)overrideFloorType == 6) { val.SetPixel(i, j, val13); } else if ((int)overrideFloorType == 7) { val.SetPixel(i, j, val14); } else { val.SetPixel(i, j, val7); } } else { val.SetPixel(i, j, val7); } } else if ((int)val18.Value == 1) { if ((int)val19 == 1) { val.SetPixel(i, j, val3); } else if ((int)val19 == 4) { val.SetPixel(i, j, val4); } else if ((int)val19 == 2) { val.SetPixel(i, j, val5); } else if ((int)val19 == 3) { val.SetPixel(i, j, val6); } else { val.SetPixel(i, j, val2); } } else if ((int)val18.Value == 4) { val.SetPixel(i, j, val16); } } } val.Apply(); string text = "DumpedRoomLayouts/" + ((Object)val).name; if (string.IsNullOrEmpty(((Object)val).name)) { text = text + "RoomLayout_" + Guid.NewGuid(); } text += "_Layout"; string path = Path.Combine(ETGMod.ResourcesDirectory, text.Replace('/', Path.DirectorySeparatorChar).Replace('\\', Path.DirectorySeparatorChar) + ".png"); if (!File.Exists(path)) { Directory.GetParent(path).Create(); } File.WriteAllBytes(path, ImageConversion.EncodeToPNG(val)); } public static void LogRoomHandlerToPNGFile(RoomHandler room) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) //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) //IL_0038: Expected O, but got Unknown //IL_0065: 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_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //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) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0114: 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_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Unknown result type (might be due to invalid IL or missing references) //IL_0173: 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_0188: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_01d6: 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) //IL_01f1: 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_01f7: Unknown result type (might be due to invalid IL or missing references) //IL_0208: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_040a: Unknown result type (might be due to invalid IL or missing references) //IL_0231: Unknown result type (might be due to invalid IL or missing references) //IL_0238: Unknown result type (might be due to invalid IL or missing references) //IL_0251: Unknown result type (might be due to invalid IL or missing references) //IL_025e: Unknown result type (might be due to invalid IL or missing references) //IL_026f: Unknown result type (might be due to invalid IL or missing references) //IL_0274: Unknown result type (might be due to invalid IL or missing references) //IL_029b: Unknown result type (might be due to invalid IL or missing references) //IL_02a1: Invalid comparison between Unknown and I4 //IL_028d: Unknown result type (might be due to invalid IL or missing references) //IL_038b: Unknown result type (might be due to invalid IL or missing references) //IL_0391: Invalid comparison between Unknown and I4 //IL_03ef: Unknown result type (might be due to invalid IL or missing references) //IL_03f5: Invalid comparison between Unknown and I4 //IL_0393: Unknown result type (might be due to invalid IL or missing references) //IL_0396: Invalid comparison between Unknown and I4 //IL_02c2: Unknown result type (might be due to invalid IL or missing references) //IL_02c7: Unknown result type (might be due to invalid IL or missing references) //IL_02c9: Unknown result type (might be due to invalid IL or missing references) //IL_02af: Unknown result type (might be due to invalid IL or missing references) //IL_03fc: Unknown result type (might be due to invalid IL or missing references) //IL_03a6: Unknown result type (might be due to invalid IL or missing references) //IL_03a9: Invalid comparison between Unknown and I4 //IL_039d: Unknown result type (might be due to invalid IL or missing references) //IL_02de: Unknown result type (might be due to invalid IL or missing references) //IL_02e1: Invalid comparison between Unknown and I4 //IL_02d2: Unknown result type (might be due to invalid IL or missing references) //IL_03b9: Unknown result type (might be due to invalid IL or missing references) //IL_03bc: Invalid comparison between Unknown and I4 //IL_03b0: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Unknown result type (might be due to invalid IL or missing references) //IL_02f7: Invalid comparison between Unknown and I4 //IL_02e8: Unknown result type (might be due to invalid IL or missing references) //IL_03cc: Unknown result type (might be due to invalid IL or missing references) //IL_03cf: Invalid comparison between Unknown and I4 //IL_03c3: Unknown result type (might be due to invalid IL or missing references) //IL_030a: Unknown result type (might be due to invalid IL or missing references) //IL_030d: Invalid comparison between Unknown and I4 //IL_02fe: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_03d6: Unknown result type (might be due to invalid IL or missing references) //IL_0320: Unknown result type (might be due to invalid IL or missing references) //IL_0323: Invalid comparison between Unknown and I4 //IL_0314: Unknown result type (might be due to invalid IL or missing references) //IL_0336: Unknown result type (might be due to invalid IL or missing references) //IL_0339: Invalid comparison between Unknown and I4 //IL_032a: Unknown result type (might be due to invalid IL or missing references) //IL_034c: Unknown result type (might be due to invalid IL or missing references) //IL_034f: Invalid comparison between Unknown and I4 //IL_0340: Unknown result type (might be due to invalid IL or missing references) //IL_0362: Unknown result type (might be due to invalid IL or missing references) //IL_0365: Invalid comparison between Unknown and I4 //IL_0356: 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_036c: Unknown result type (might be due to invalid IL or missing references) int x = room.area.dimensions.x; int y = room.area.dimensions.y; IntVector2 basePosition = room.area.basePosition; Texture2D val = new Texture2D(x, y, (TextureFormat)4, false); if (!string.IsNullOrEmpty(room.GetRoomName())) { ((Object)val).name = room.GetRoomName(); } Color val2 = Color32.op_Implicit(new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue)); Color val3 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)0, byte.MaxValue, byte.MaxValue)); Color val4 = Color32.op_Implicit(new Color32(byte.MaxValue, byte.MaxValue, (byte)0, byte.MaxValue)); Color val5 = Color32.op_Implicit(new Color32((byte)127, (byte)0, (byte)127, byte.MaxValue)); Color val6 = Color32.op_Implicit(new Color32((byte)127, (byte)127, (byte)0, byte.MaxValue)); Color val7 = Color32.op_Implicit(new Color32((byte)0, (byte)0, byte.MaxValue, byte.MaxValue)); Color val8 = Color32.op_Implicit(new Color32((byte)0, (byte)127, byte.MaxValue, byte.MaxValue)); Color val9 = Color32.op_Implicit(new Color32((byte)0, (byte)0, (byte)127, byte.MaxValue)); Color val10 = Color32.op_Implicit(new Color32((byte)0, (byte)0, (byte)127, byte.MaxValue)); Color val11 = Color32.op_Implicit(new Color32((byte)127, byte.MaxValue, (byte)127, byte.MaxValue)); Color val12 = Color32.op_Implicit(new Color32((byte)127, (byte)127, (byte)127, byte.MaxValue)); Color val13 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)127, (byte)0, byte.MaxValue)); Color val14 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)127, (byte)127, byte.MaxValue)); Color val15 = Color32.op_Implicit(new Color32((byte)0, byte.MaxValue, (byte)0, byte.MaxValue)); Color val16 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)0, (byte)0, byte.MaxValue)); Color val17 = Color32.op_Implicit(new Color32((byte)0, (byte)0, (byte)0, byte.MaxValue)); for (int i = 0; i < x; i++) { for (int j = 0; j < y; j++) { IntVector2 val18 = new IntVector2(i, j) + basePosition; if (GameManager.Instance.Dungeon.data.CheckInBoundsAndValid(val18.x, val18.y)) { CellType? val19 = GameManager.Instance.Dungeon.data[val18].type; CellData val20 = GameManager.Instance.Dungeon.data[val18]; bool flag = false; DiagonalWallType val21 = (DiagonalWallType)0; if (val20 != null) { flag = val20.doesDamage; val21 = val20.diagonalWallType; } if ((val20 == null) | !val19.HasValue) { val.SetPixel(i, j, val17); } else if ((int)val19.Value == 2) { if (flag) { val.SetPixel(i, j, val15); continue; } CellFloorType floorType = val20.cellVisualData.floorType; if ((int)floorType == 0) { val.SetPixel(i, j, val7); } else if ((int)floorType == 3) { val.SetPixel(i, j, val8); } else if ((int)floorType == 1) { val.SetPixel(i, j, val9); } else if ((int)floorType == 2) { val.SetPixel(i, j, val10); } else if ((int)floorType == 4) { val.SetPixel(i, j, val11); } else if ((int)floorType == 5) { val.SetPixel(i, j, val12); } else if ((int)floorType == 6) { val.SetPixel(i, j, val13); } else if ((int)floorType == 7) { val.SetPixel(i, j, val14); } else { val.SetPixel(i, j, val7); } } else if ((int)val19.Value == 1) { if ((int)val21 == 1) { val.SetPixel(i, j, val3); } else if ((int)val21 == 4) { val.SetPixel(i, j, val4); } else if ((int)val21 == 2) { val.SetPixel(i, j, val5); } else if ((int)val21 == 3) { val.SetPixel(i, j, val6); } else { val.SetPixel(i, j, val2); } } else if ((int)val19.Value == 4) { val.SetPixel(i, j, val16); } } else { val.SetPixel(i, j, val17); } } } val.Apply(); string text = "DumpedRoomLayouts/" + ((Object)val).name; if (string.IsNullOrEmpty(((Object)val).name)) { text = text + "RoomLayout_" + Guid.NewGuid(); } text += "_Layout"; string path = Path.Combine(ETGMod.ResourcesDirectory, text.Replace('/', Path.DirectorySeparatorChar).Replace('\\', Path.DirectorySeparatorChar) + ".png"); if (!File.Exists(path)) { Directory.GetParent(path).Create(); } File.WriteAllBytes(path, ImageConversion.EncodeToPNG(val)); } public static void LogDungeonToPNGFile() { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Expected O, but got Unknown //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: 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_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_0091: 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) //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_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: 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_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: 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_0107: Unknown result type (might be due to invalid IL or missing references) //IL_010c: 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_0126: 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) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_0151: 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_0166: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_0196: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_03d7: Unknown result type (might be due to invalid IL or missing references) //IL_01ff: Unknown result type (might be due to invalid IL or missing references) //IL_0206: Unknown result type (might be due to invalid IL or missing references) //IL_021f: Unknown result type (might be due to invalid IL or missing references) //IL_022c: Unknown result type (might be due to invalid IL or missing references) //IL_023d: 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_0269: Unknown result type (might be due to invalid IL or missing references) //IL_026f: Invalid comparison between Unknown and I4 //IL_025b: Unknown result type (might be due to invalid IL or missing references) //IL_0359: Unknown result type (might be due to invalid IL or missing references) //IL_035f: Invalid comparison between Unknown and I4 //IL_03bc: Unknown result type (might be due to invalid IL or missing references) //IL_03c2: Invalid comparison between Unknown and I4 //IL_0361: Unknown result type (might be due to invalid IL or missing references) //IL_0364: Invalid comparison between Unknown and I4 //IL_0290: Unknown result type (might be due to invalid IL or missing references) //IL_0295: Unknown result type (might be due to invalid IL or missing references) //IL_0297: Unknown result type (might be due to invalid IL or missing references) //IL_027d: Unknown result type (might be due to invalid IL or missing references) //IL_03c9: Unknown result type (might be due to invalid IL or missing references) //IL_0374: Unknown result type (might be due to invalid IL or missing references) //IL_0377: Invalid comparison between Unknown and I4 //IL_036b: Unknown result type (might be due to invalid IL or missing references) //IL_02ac: Unknown result type (might be due to invalid IL or missing references) //IL_02af: Invalid comparison between Unknown and I4 //IL_02a0: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_038a: Invalid comparison between Unknown and I4 //IL_037e: Unknown result type (might be due to invalid IL or missing references) //IL_02c2: Unknown result type (might be due to invalid IL or missing references) //IL_02c5: Invalid comparison between Unknown and I4 //IL_02b6: Unknown result type (might be due to invalid IL or missing references) //IL_039a: Unknown result type (might be due to invalid IL or missing references) //IL_039d: Invalid comparison between Unknown and I4 //IL_0391: Unknown result type (might be due to invalid IL or missing references) //IL_02d8: Unknown result type (might be due to invalid IL or missing references) //IL_02db: Invalid comparison between Unknown and I4 //IL_02cc: Unknown result type (might be due to invalid IL or missing references) //IL_03b2: Unknown result type (might be due to invalid IL or missing references) //IL_03a4: Unknown result type (might be due to invalid IL or missing references) //IL_02ee: Unknown result type (might be due to invalid IL or missing references) //IL_02f1: Invalid comparison between Unknown and I4 //IL_02e2: Unknown result type (might be due to invalid IL or missing references) //IL_0304: Unknown result type (might be due to invalid IL or missing references) //IL_0307: Invalid comparison between Unknown and I4 //IL_02f8: Unknown result type (might be due to invalid IL or missing references) //IL_031a: Unknown result type (might be due to invalid IL or missing references) //IL_031d: Invalid comparison between Unknown and I4 //IL_030e: Unknown result type (might be due to invalid IL or missing references) //IL_0330: Unknown result type (might be due to invalid IL or missing references) //IL_0333: Invalid comparison between Unknown and I4 //IL_0324: Unknown result type (might be due to invalid IL or missing references) //IL_034b: Unknown result type (might be due to invalid IL or missing references) //IL_033a: Unknown result type (might be due to invalid IL or missing references) int num = 1000; int num2 = 1000; Texture2D val = new Texture2D(num, num2, (TextureFormat)4, false); ((Object)val).name = ((Object)((Component)GameManager.Instance.Dungeon).gameObject).name; Color val2 = Color32.op_Implicit(new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue)); Color val3 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)0, byte.MaxValue, byte.MaxValue)); Color val4 = Color32.op_Implicit(new Color32(byte.MaxValue, byte.MaxValue, (byte)0, byte.MaxValue)); Color val5 = Color32.op_Implicit(new Color32((byte)127, (byte)0, (byte)127, byte.MaxValue)); Color val6 = Color32.op_Implicit(new Color32((byte)127, (byte)127, (byte)0, byte.MaxValue)); Color val7 = Color32.op_Implicit(new Color32((byte)0, (byte)0, byte.MaxValue, byte.MaxValue)); Color val8 = Color32.op_Implicit(new Color32((byte)0, (byte)127, byte.MaxValue, byte.MaxValue)); Color val9 = Color32.op_Implicit(new Color32((byte)0, (byte)0, (byte)127, byte.MaxValue)); Color val10 = Color32.op_Implicit(new Color32((byte)0, (byte)0, (byte)127, byte.MaxValue)); Color val11 = Color32.op_Implicit(new Color32((byte)127, byte.MaxValue, (byte)127, byte.MaxValue)); Color val12 = Color32.op_Implicit(new Color32((byte)127, (byte)127, (byte)127, byte.MaxValue)); Color val13 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)127, (byte)0, byte.MaxValue)); Color val14 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)127, (byte)127, byte.MaxValue)); Color val15 = Color32.op_Implicit(new Color32((byte)0, byte.MaxValue, (byte)0, byte.MaxValue)); Color val16 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)0, (byte)0, byte.MaxValue)); Color val17 = Color32.op_Implicit(new Color32((byte)0, (byte)0, (byte)0, byte.MaxValue)); IntVector2 val18 = default(IntVector2); for (int i = 0; i < num; i++) { for (int j = 0; j < num2; j++) { if (GameManager.Instance.Dungeon.data.CheckInBoundsAndValid(i, j)) { ((IntVector2)(ref val18))..ctor(i, j); CellType? val19 = GameManager.Instance.Dungeon.data[val18].type; CellData val20 = GameManager.Instance.Dungeon.data[val18]; bool flag = false; DiagonalWallType val21 = (DiagonalWallType)0; if (val20 != null) { flag = val20.doesDamage; val21 = val20.diagonalWallType; } if ((val20 == null) | !val19.HasValue) { val.SetPixel(i, j, val17); } else if ((int)val19.Value == 2) { if (flag) { val.SetPixel(i, j, val15); continue; } CellFloorType floorType = val20.cellVisualData.floorType; if ((int)floorType == 0) { val.SetPixel(i, j, val7); } else if ((int)floorType == 3) { val.SetPixel(i, j, val8); } else if ((int)floorType == 1) { val.SetPixel(i, j, val9); } else if ((int)floorType == 2) { val.SetPixel(i, j, val10); } else if ((int)floorType == 4) { val.SetPixel(i, j, val11); } else if ((int)floorType == 5) { val.SetPixel(i, j, val12); } else if ((int)floorType == 6) { val.SetPixel(i, j, val13); } else if ((int)floorType == 7) { val.SetPixel(i, j, val14); } else { val.SetPixel(i, j, val7); } } else if ((int)val19.Value == 1) { if ((int)val21 == 1) { val.SetPixel(i, j, val3); } else if ((int)val21 == 4) { val.SetPixel(i, j, val4); } else if ((int)val21 == 2) { val.SetPixel(i, j, val5); } else if ((int)val21 == 3) { val.SetPixel(i, j, val6); } else { val.SetPixel(i, j, val2); } } else if ((int)val19.Value == 4) { val.SetPixel(i, j, val16); } } else { val.SetPixel(i, j, val17); } } } val.Apply(); string text = "DumpedDungeonLayouts/" + ((Object)val).name; if (string.IsNullOrEmpty(((Object)val).name)) { text = text + "DungeonLayout_" + Guid.NewGuid(); } text += "_Layout"; string path = Path.Combine(ETGMod.ResourcesDirectory, text.Replace('/', Path.DirectorySeparatorChar).Replace('\\', Path.DirectorySeparatorChar) + ".png"); if (!File.Exists(path)) { Directory.GetParent(path).Create(); } File.WriteAllBytes(path, ImageConversion.EncodeToPNG(val)); } public static Texture2D DumpRoomAreaToTexture2D(RoomHandler room) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) //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) //IL_0038: Expected O, but got Unknown //IL_0065: 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_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //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) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0114: 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_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Unknown result type (might be due to invalid IL or missing references) //IL_0173: 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_0188: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_01d6: 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) //IL_01f1: 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_01f7: Unknown result type (might be due to invalid IL or missing references) //IL_0208: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_040a: Unknown result type (might be due to invalid IL or missing references) //IL_0231: Unknown result type (might be due to invalid IL or missing references) //IL_0238: Unknown result type (might be due to invalid IL or missing references) //IL_0251: Unknown result type (might be due to invalid IL or missing references) //IL_025e: Unknown result type (might be due to invalid IL or missing references) //IL_026f: Unknown result type (might be due to invalid IL or missing references) //IL_0274: Unknown result type (might be due to invalid IL or missing references) //IL_029b: Unknown result type (might be due to invalid IL or missing references) //IL_02a1: Invalid comparison between Unknown and I4 //IL_028d: Unknown result type (might be due to invalid IL or missing references) //IL_038b: Unknown result type (might be due to invalid IL or missing references) //IL_0391: Invalid comparison between Unknown and I4 //IL_03ef: Unknown result type (might be due to invalid IL or missing references) //IL_03f5: Invalid comparison between Unknown and I4 //IL_0393: Unknown result type (might be due to invalid IL or missing references) //IL_0396: Invalid comparison between Unknown and I4 //IL_02c2: Unknown result type (might be due to invalid IL or missing references) //IL_02c7: Unknown result type (might be due to invalid IL or missing references) //IL_02c9: Unknown result type (might be due to invalid IL or missing references) //IL_02af: Unknown result type (might be due to invalid IL or missing references) //IL_03fc: Unknown result type (might be due to invalid IL or missing references) //IL_03a6: Unknown result type (might be due to invalid IL or missing references) //IL_03a9: Invalid comparison between Unknown and I4 //IL_039d: Unknown result type (might be due to invalid IL or missing references) //IL_02de: Unknown result type (might be due to invalid IL or missing references) //IL_02e1: Invalid comparison between Unknown and I4 //IL_02d2: Unknown result type (might be due to invalid IL or missing references) //IL_03b9: Unknown result type (might be due to invalid IL or missing references) //IL_03bc: Invalid comparison between Unknown and I4 //IL_03b0: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Unknown result type (might be due to invalid IL or missing references) //IL_02f7: Invalid comparison between Unknown and I4 //IL_02e8: Unknown result type (might be due to invalid IL or missing references) //IL_03cc: Unknown result type (might be due to invalid IL or missing references) //IL_03cf: Invalid comparison between Unknown and I4 //IL_03c3: Unknown result type (might be due to invalid IL or missing references) //IL_030a: Unknown result type (might be due to invalid IL or missing references) //IL_030d: Invalid comparison between Unknown and I4 //IL_02fe: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_03d6: Unknown result type (might be due to invalid IL or missing references) //IL_0320: Unknown result type (might be due to invalid IL or missing references) //IL_0323: Invalid comparison between Unknown and I4 //IL_0314: Unknown result type (might be due to invalid IL or missing references) //IL_0336: Unknown result type (might be due to invalid IL or missing references) //IL_0339: Invalid comparison between Unknown and I4 //IL_032a: Unknown result type (might be due to invalid IL or missing references) //IL_034c: Unknown result type (might be due to invalid IL or missing references) //IL_034f: Invalid comparison between Unknown and I4 //IL_0340: Unknown result type (might be due to invalid IL or missing references) //IL_0362: Unknown result type (might be due to invalid IL or missing references) //IL_0365: Invalid comparison between Unknown and I4 //IL_0356: 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_036c: Unknown result type (might be due to invalid IL or missing references) int x = room.area.dimensions.x; int y = room.area.dimensions.y; IntVector2 basePosition = room.area.basePosition; Texture2D val = new Texture2D(x, y, (TextureFormat)4, false); if (!string.IsNullOrEmpty(room.GetRoomName())) { ((Object)val).name = room.GetRoomName(); } Color val2 = Color32.op_Implicit(new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue)); Color val3 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)0, byte.MaxValue, byte.MaxValue)); Color val4 = Color32.op_Implicit(new Color32(byte.MaxValue, byte.MaxValue, (byte)0, byte.MaxValue)); Color val5 = Color32.op_Implicit(new Color32((byte)127, (byte)0, (byte)127, byte.MaxValue)); Color val6 = Color32.op_Implicit(new Color32((byte)127, (byte)127, (byte)0, byte.MaxValue)); Color val7 = Color32.op_Implicit(new Color32((byte)0, (byte)0, byte.MaxValue, byte.MaxValue)); Color val8 = Color32.op_Implicit(new Color32((byte)0, (byte)127, byte.MaxValue, byte.MaxValue)); Color val9 = Color32.op_Implicit(new Color32((byte)0, (byte)0, (byte)127, byte.MaxValue)); Color val10 = Color32.op_Implicit(new Color32((byte)0, (byte)0, (byte)127, byte.MaxValue)); Color val11 = Color32.op_Implicit(new Color32((byte)127, byte.MaxValue, (byte)127, byte.MaxValue)); Color val12 = Color32.op_Implicit(new Color32((byte)127, (byte)127, (byte)127, byte.MaxValue)); Color val13 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)127, (byte)0, byte.MaxValue)); Color val14 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)127, (byte)127, byte.MaxValue)); Color val15 = Color32.op_Implicit(new Color32((byte)0, byte.MaxValue, (byte)0, byte.MaxValue)); Color val16 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)0, (byte)0, byte.MaxValue)); Color val17 = Color32.op_Implicit(new Color32((byte)0, (byte)0, (byte)0, byte.MaxValue)); for (int i = 0; i < x; i++) { for (int j = 0; j < y; j++) { IntVector2 val18 = new IntVector2(i, j) + basePosition; if (GameManager.Instance.Dungeon.data.CheckInBoundsAndValid(val18.x, val18.y)) { CellType? val19 = GameManager.Instance.Dungeon.data[val18].type; CellData val20 = GameManager.Instance.Dungeon.data[val18]; bool flag = false; DiagonalWallType val21 = (DiagonalWallType)0; if (val20 != null) { flag = val20.doesDamage; val21 = val20.diagonalWallType; } if ((val20 == null) | !val19.HasValue) { val.SetPixel(i, j, val17); } else if ((int)val19.Value == 2) { if (flag) { val.SetPixel(i, j, val15); continue; } CellFloorType floorType = val20.cellVisualData.floorType; if ((int)floorType == 0) { val.SetPixel(i, j, val7); } else if ((int)floorType == 3) { val.SetPixel(i, j, val8); } else if ((int)floorType == 1) { val.SetPixel(i, j, val9); } else if ((int)floorType == 2) { val.SetPixel(i, j, val10); } else if ((int)floorType == 4) { val.SetPixel(i, j, val11); } else if ((int)floorType == 5) { val.SetPixel(i, j, val12); } else if ((int)floorType == 6) { val.SetPixel(i, j, val13); } else if ((int)floorType == 7) { val.SetPixel(i, j, val14); } else { val.SetPixel(i, j, val7); } } else if ((int)val19.Value == 1) { if ((int)val21 == 1) { val.SetPixel(i, j, val3); } else if ((int)val21 == 4) { val.SetPixel(i, j, val4); } else if ((int)val21 == 2) { val.SetPixel(i, j, val5); } else if ((int)val21 == 3) { val.SetPixel(i, j, val6); } else { val.SetPixel(i, j, val2); } } else if ((int)val19.Value == 4) { val.SetPixel(i, j, val16); } } else { val.SetPixel(i, j, val17); } } } val.Apply(); return val; } public static Texture2D LogDungeonToTexture2D() { //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Expected O, but got Unknown //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0099: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: 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_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: 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_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_0120: 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_013a: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0151: 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_016a: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_0184: Unknown result type (might be due to invalid IL or missing references) //IL_0189: 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_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: 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_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_01be: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Unknown result type (might be due to invalid IL or missing references) //IL_03f5: Unknown result type (might be due to invalid IL or missing references) //IL_021d: Unknown result type (might be due to invalid IL or missing references) //IL_0224: Unknown result type (might be due to invalid IL or missing references) //IL_023d: Unknown result type (might be due to invalid IL or missing references) //IL_024a: Unknown result type (might be due to invalid IL or missing references) //IL_025b: Unknown result type (might be due to invalid IL or missing references) //IL_0260: Unknown result type (might be due to invalid IL or missing references) //IL_0287: Unknown result type (might be due to invalid IL or missing references) //IL_028d: Invalid comparison between Unknown and I4 //IL_0279: Unknown result type (might be due to invalid IL or missing references) //IL_0377: Unknown result type (might be due to invalid IL or missing references) //IL_037d: Invalid comparison between Unknown and I4 //IL_03da: Unknown result type (might be due to invalid IL or missing references) //IL_03e0: Invalid comparison between Unknown and I4 //IL_037f: Unknown result type (might be due to invalid IL or missing references) //IL_0382: Invalid comparison between Unknown and I4 //IL_02ae: Unknown result type (might be due to invalid IL or missing references) //IL_02b3: 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) //IL_029b: 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_0392: Unknown result type (might be due to invalid IL or missing references) //IL_0395: Invalid comparison between Unknown and I4 //IL_0389: Unknown result type (might be due to invalid IL or missing references) //IL_02ca: Unknown result type (might be due to invalid IL or missing references) //IL_02cd: Invalid comparison between Unknown and I4 //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_03a5: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: Invalid comparison between Unknown and I4 //IL_039c: Unknown result type (might be due to invalid IL or missing references) //IL_02e0: Unknown result type (might be due to invalid IL or missing references) //IL_02e3: Invalid comparison between Unknown and I4 //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_03b8: Unknown result type (might be due to invalid IL or missing references) //IL_03bb: Invalid comparison between Unknown and I4 //IL_03af: Unknown result type (might be due to invalid IL or missing references) //IL_02f6: Unknown result type (might be due to invalid IL or missing references) //IL_02f9: Invalid comparison between Unknown and I4 //IL_02ea: Unknown result type (might be due to invalid IL or missing references) //IL_03d0: Unknown result type (might be due to invalid IL or missing references) //IL_03c2: Unknown result type (might be due to invalid IL or missing references) //IL_030c: Unknown result type (might be due to invalid IL or missing references) //IL_030f: Invalid comparison between Unknown and I4 //IL_0300: Unknown result type (might be due to invalid IL or missing references) //IL_0322: Unknown result type (might be due to invalid IL or missing references) //IL_0325: Invalid comparison between Unknown and I4 //IL_0316: Unknown result type (might be due to invalid IL or missing references) //IL_0338: Unknown result type (might be due to invalid IL or missing references) //IL_033b: Invalid comparison between Unknown and I4 //IL_032c: Unknown result type (might be due to invalid IL or missing references) //IL_034e: Unknown result type (might be due to invalid IL or missing references) //IL_0351: Invalid comparison between Unknown and I4 //IL_0342: Unknown result type (might be due to invalid IL or missing references) //IL_0369: Unknown result type (might be due to invalid IL or missing references) //IL_0358: Unknown result type (might be due to invalid IL or missing references) int height = GameManager.Instance.Dungeon.data.Height; int width = GameManager.Instance.Dungeon.data.Width; Texture2D val = new Texture2D(height, width, (TextureFormat)4, false); ((Object)val).name = ((Object)((Component)GameManager.Instance.Dungeon).gameObject).name; Color val2 = Color32.op_Implicit(new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue)); Color val3 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)0, byte.MaxValue, byte.MaxValue)); Color val4 = Color32.op_Implicit(new Color32(byte.MaxValue, byte.MaxValue, (byte)0, byte.MaxValue)); Color val5 = Color32.op_Implicit(new Color32((byte)127, (byte)0, (byte)127, byte.MaxValue)); Color val6 = Color32.op_Implicit(new Color32((byte)127, (byte)127, (byte)0, byte.MaxValue)); Color val7 = Color32.op_Implicit(new Color32((byte)0, (byte)0, byte.MaxValue, byte.MaxValue)); Color val8 = Color32.op_Implicit(new Color32((byte)0, (byte)127, byte.MaxValue, byte.MaxValue)); Color val9 = Color32.op_Implicit(new Color32((byte)0, (byte)0, (byte)127, byte.MaxValue)); Color val10 = Color32.op_Implicit(new Color32((byte)0, (byte)0, (byte)127, byte.MaxValue)); Color val11 = Color32.op_Implicit(new Color32((byte)127, byte.MaxValue, (byte)127, byte.MaxValue)); Color val12 = Color32.op_Implicit(new Color32((byte)127, (byte)127, (byte)127, byte.MaxValue)); Color val13 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)127, (byte)0, byte.MaxValue)); Color val14 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)127, (byte)127, byte.MaxValue)); Color val15 = Color32.op_Implicit(new Color32((byte)0, byte.MaxValue, (byte)0, byte.MaxValue)); Color val16 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)0, (byte)0, byte.MaxValue)); Color val17 = Color32.op_Implicit(new Color32((byte)0, (byte)0, (byte)0, byte.MaxValue)); IntVector2 val18 = default(IntVector2); for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { if (GameManager.Instance.Dungeon.data.CheckInBoundsAndValid(i, j)) { ((IntVector2)(ref val18))..ctor(i, j); CellType? val19 = GameManager.Instance.Dungeon.data[val18].type; CellData val20 = GameManager.Instance.Dungeon.data[val18]; bool flag = false; DiagonalWallType val21 = (DiagonalWallType)0; if (val20 != null) { flag = val20.doesDamage; val21 = val20.diagonalWallType; } if ((val20 == null) | !val19.HasValue) { val.SetPixel(i, j, val17); } else if ((int)val19.Value == 2) { if (flag) { val.SetPixel(i, j, val15); continue; } CellFloorType floorType = val20.cellVisualData.floorType; if ((int)floorType == 0) { val.SetPixel(i, j, val7); } else if ((int)floorType == 3) { val.SetPixel(i, j, val8); } else if ((int)floorType == 1) { val.SetPixel(i, j, val9); } else if ((int)floorType == 2) { val.SetPixel(i, j, val10); } else if ((int)floorType == 4) { val.SetPixel(i, j, val11); } else if ((int)floorType == 5) { val.SetPixel(i, j, val12); } else if ((int)floorType == 6) { val.SetPixel(i, j, val13); } else if ((int)floorType == 7) { val.SetPixel(i, j, val14); } else { val.SetPixel(i, j, val7); } } else if ((int)val19.Value == 1) { if ((int)val21 == 1) { val.SetPixel(i, j, val3); } else if ((int)val21 == 4) { val.SetPixel(i, j, val4); } else if ((int)val21 == 2) { val.SetPixel(i, j, val5); } else if ((int)val21 == 3) { val.SetPixel(i, j, val6); } else { val.SetPixel(i, j, val2); } } else if ((int)val19.Value == 4) { val.SetPixel(i, j, val16); } } else { val.SetPixel(i, j, val17); } } } val.Apply(); return val; } } public class ExpandShaders { private static ExpandShaders m_instance; public static Material GlitchScreenShader = new Material(Shader.Find("Brave/Internal/GlitchUnlit")); public static Shader EXGlitchShader; public static ExpandShaders Instance { get { if (m_instance == null) { m_instance = new ExpandShaders(); } return m_instance; } } public static void ApplyParadoxPlayerShader(tk2dBaseSprite targetSprite) { Texture2D val = ResourceManager.LoadAssetBundle("shared_auto_001").LoadAsset("nebula_reducednoise"); ((BraveBehaviour)targetSprite).renderer.material.shader = ShaderCache.Acquire("Brave/PlayerShaderEevee"); ((BraveBehaviour)targetSprite).renderer.material.SetTexture("_EeveeTex", (Texture)(object)val); } public void GlitchScreenForDuration(float ActivationOdds = 1f, float Duration = 1f, float DispIntensity = 0.1f, float ColorIntensity = 0.04f) { ((MonoBehaviour)GameManager.Instance).StartCoroutine(m_GlitchedScreen(ActivationOdds, Duration, DispIntensity, ColorIntensity)); } private IEnumerator m_GlitchedScreen(float ActivationOdds = 1f, float Duration = 1f, float DispIntensity = 0.1f, float ColorIntensity = 0.04f) { if (Random.value <= ActivationOdds) { Material m_glitchpass = new Material(Shader.Find("Brave/Internal/GlitchUnlit")); m_glitchpass.SetFloat("_GlitchInterval", 0.07f); m_glitchpass.SetFloat("_DispIntensity", DispIntensity); m_glitchpass.SetFloat("_ColorIntensity", ColorIntensity); Pixelator.Instance.RegisterAdditionalRenderPass(m_glitchpass); yield return (object)new WaitForSeconds(Duration); yield return null; Pixelator.Instance.DeregisterAdditionalRenderPass(m_glitchpass); } } public void BecomeHologram(BraveBehaviour braveObject, bool isGreen = false) { //IL_0402: Unknown result type (might be due to invalid IL or missing references) //IL_041c: Unknown result type (might be due to invalid IL or missing references) //IL_0447: Unknown result type (might be due to invalid IL or missing references) //IL_0472: Unknown result type (might be due to invalid IL or missing references) //IL_04b3: Unknown result type (might be due to invalid IL or missing references) //IL_06c1: Unknown result type (might be due to invalid IL or missing references) //IL_06c7: Invalid comparison between Unknown and I4 //IL_0714: Unknown result type (might be due to invalid IL or missing references) //IL_071a: Invalid comparison between Unknown and I4 try { if ((Object)(object)braveObject == (Object)null) { return; } tk2dBaseSprite val = null; try { if (braveObject.sprite == null) { return; } val = braveObject.sprite; } catch { } if ((Object)(object)val == (Object)null || (((Object)(object)braveObject == (Object)null) | ((Object)(object)((Component)braveObject).gameObject.GetComponent() != (Object)null) | ((Object)(object)((Component)braveObject).gameObject.GetComponent() != (Object)null)) || (Object)(object)((Component)braveObject).gameObject.GetComponent() != (Object)null || (Object)(object)((Component)braveObject).gameObject.GetComponentInChildren() != (Object)null || string.IsNullOrEmpty(((Object)((Component)braveObject).gameObject).name) || (((Object)((Component)braveObject).gameObject).name.ToLower().StartsWith("boss") | ((Object)((Component)braveObject).gameObject).name.ToLower().StartsWith("door") | ((Object)((Component)braveObject).gameObject).name.ToLower().StartsWith("shellcasing") | ((Object)((Component)braveObject).gameObject).name.ToLower().StartsWith("5") | ((Object)((Component)braveObject).gameObject).name.ToLower().StartsWith("50") | ((Object)((Component)braveObject).gameObject).name.ToLower().StartsWith("minimap") | ((Object)((Component)braveObject).gameObject).name.ToLower().StartsWith("outline") | ((Object)((Component)braveObject).gameObject).name.ToLower().StartsWith("braveoutline") | ((Object)((Component)braveObject).gameObject).name.ToLower().StartsWith("defaultshadow") | ((Object)((Component)braveObject).gameObject).name.ToLower().StartsWith("shadow") | ((Object)((Component)braveObject).gameObject).name.ToLower().StartsWith("elevator") | ((Object)((Component)braveObject).gameObject).name.ToLower().StartsWith("floor") | ((Object)((Component)braveObject).gameObject).name.ToLower().EndsWith("shadow") | ((Object)((Component)braveObject).gameObject).name.ToLower().EndsWith("shadow(clone)") | ((Object)((Component)braveObject).gameObject).name.ToLower().EndsWith("statues_collection") | ((Object)((Component)braveObject).gameObject).name.ToLower().StartsWith("bossstatues") | ((Object)((Component)braveObject).gameObject).name.ToLower().EndsWith("deserteagle") | ((Object)((Component)braveObject).gameObject).name.ToLower().EndsWith("ak47") | ((Object)((Component)braveObject).gameObject).name.ToLower().EndsWith("statues_animation") | ((Object)((Component)braveObject).gameObject).name.ToLower().EndsWith("explode") | ((Object)((Component)braveObject).gameObject).name.ToLower().EndsWith("uzi") | ((Object)((Component)braveObject).gameObject).name.ToLower().EndsWith("shotgun") | ((Object)((Component)braveObject).gameObject).name.ToLower().StartsWith("chunk_bossstatue") | ((Object)((Component)braveObject).gameObject).name.ToLower().StartsWith("dragunfloor") | ((Object)((Component)braveObject).gameObject).name.ToLower().StartsWith("dragunroom") | ((Object)((Component)braveObject).gameObject).name.StartsWith("SellPit") | ((Object)((Component)braveObject).gameObject).name.StartsWith("PitTop") | ((Object)((Component)braveObject).gameObject).name.StartsWith("PitBottom") | ((Object)((Component)braveObject).gameObject).name.StartsWith("NPC_PitDweller")) || (Object)(object)((Component)braveObject).gameObject.GetComponent() != (Object)null || (Object)(object)((Component)braveObject).gameObject.GetComponentInChildren() != (Object)null || ((Object)(object)((Component)braveObject).gameObject.transform != (Object)null && Vector3Extensions.GetAbsoluteRoom(((Component)braveObject).gameObject.transform.position) != null && (Vector3Extensions.GetAbsoluteRoom(((Component)braveObject).gameObject.transform.position).GetRoomName().StartsWith("doublebeholsterroom01") || Vector3Extensions.GetAbsoluteRoom(((Component)braveObject).gameObject.transform.position).GetRoomName().StartsWith("bossstatuesroom01") || Vector3Extensions.GetAbsoluteRoom(((Component)braveObject).gameObject.transform.position).GetRoomName().StartsWith("boss foyer") || (GameManager.Instance.Dungeon.data.Entrance != null && Vector3Extensions.GetAbsoluteRoom(((Component)braveObject).gameObject.transform.position).GetRoomName().StartsWith(GameManager.Instance.Dungeon.data.Entrance.GetRoomName())))) || ((Object)((Component)braveObject).gameObject).name.StartsWith("player") || ((Object)((Component)braveObject).gameObject).name.StartsWith("BossStatuesDummy") || (((Object)(object)((Component)braveObject).gameObject.GetComponentInChildren(true) != (Object)null) | ((Object)(object)((Component)braveObject).gameObject.GetComponent() != (Object)null)) || (((Object)(object)((Component)braveObject).gameObject.GetComponentInChildren(true) != (Object)null) | ((Object)(object)((Component)braveObject).gameObject.GetComponent() != (Object)null)) || ((Object)((BraveBehaviour)val).renderer.material).name.ToLower().StartsWith("glitchmaterial") || ((Object)((BraveBehaviour)val).renderer.material).name.ToLower().StartsWith("hologrammaterial") || ((Object)((BraveBehaviour)val).renderer.material).name.ToLower().StartsWith("galaxymaterial") || ((Object)((BraveBehaviour)val).renderer.material).name.ToLower().StartsWith("spacematerial") || ((Object)((BraveBehaviour)val).renderer.material).name.ToLower().StartsWith("paradoxmaterial") || ((Object)((BraveBehaviour)val).renderer.material).name.ToLower().StartsWith("cosmichorrormaterial") || ((Object)((BraveBehaviour)val).renderer.material).name.ToLower().StartsWith("rainbowmaterial")) { return; } ApplyHologramShader(val, isGreen); if ((Object)(object)((Component)braveObject).gameObject.GetComponent() != (Object)null) { SpeculativeRigidbody component = ((Component)braveObject).gameObject.GetComponent(); component.RegisterSpecificCollisionException(((BraveBehaviour)GameManager.Instance.PrimaryPlayer).specRigidbody); if ((int)GameManager.Instance.CurrentGameType == 1) { ((BraveBehaviour)component).specRigidbody.RegisterSpecificCollisionException(((BraveBehaviour)GameManager.Instance.SecondaryPlayer).specRigidbody); } } else if ((Object)(object)((Component)braveObject).GetComponentInChildren() != (Object)null) { SpeculativeRigidbody componentInChildren = ((Component)braveObject).GetComponentInChildren(); componentInChildren.RegisterSpecificCollisionException(((BraveBehaviour)GameManager.Instance.PrimaryPlayer).specRigidbody); if ((int)GameManager.Instance.CurrentGameType == 1) { ((BraveBehaviour)componentInChildren).specRigidbody.RegisterSpecificCollisionException(((BraveBehaviour)GameManager.Instance.SecondaryPlayer).specRigidbody); } } } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"Exception Caught at [BecomeHologram] in ChaosShaders class.", false); ETGModConsole.Log((object)(ex.Message + ex.Source), false); ETGModConsole.Log((object)ex.StackTrace, false); } } } public void BecomeHologram(AIActor aiActor, bool isGreen = false) { //IL_0055: 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_0090: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_0373: Unknown result type (might be due to invalid IL or missing references) //IL_0379: Invalid comparison between Unknown and I4 //IL_03d0: Unknown result type (might be due to invalid IL or missing references) //IL_03d6: Invalid comparison between Unknown and I4 try { if ((Object)(object)aiActor == (Object)null || (Object)(object)((Component)aiActor).gameObject == (Object)null || (Object)(object)((BraveBehaviour)aiActor).sprite == (Object)null || ((Object)(object)((Component)aiActor).gameObject.transform != (Object)null && Vector3Extensions.GetAbsoluteRoom(((Component)aiActor).gameObject.transform.position) != null && (Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)aiActor).transform.position).GetRoomName().StartsWith("doublebeholsterroom01") || Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)aiActor).transform.position).GetRoomName().StartsWith("bossstatuesroom01") || Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)aiActor).transform.position).GetRoomName().StartsWith("boss foyer") || (GameManager.Instance.Dungeon.data.Entrance != null && Vector3Extensions.GetAbsoluteRoom(((Component)aiActor).gameObject.transform.position).GetRoomName().StartsWith(GameManager.Instance.Dungeon.data.Entrance.GetRoomName())))) || aiActor.GetActorName().StartsWith("Glitched") || ((GameActor)aiActor).ActorName.StartsWith("Glitched") || ((Object)((Component)aiActor).gameObject).name.StartsWith("BossStatuesDummy") || (((Object)(object)((Component)aiActor).gameObject.GetComponentInChildren(true) != (Object)null) | ((Object)(object)((Component)aiActor).gameObject.GetComponent() != (Object)null)) || (((Object)(object)((Component)aiActor).gameObject.GetComponentInChildren(true) != (Object)null) | ((Object)(object)((Component)aiActor).gameObject.GetComponent() != (Object)null)) || ((Object)((BraveBehaviour)((BraveBehaviour)aiActor).sprite).renderer.material).name.ToLower().StartsWith("glitchmaterial") || ((Object)((BraveBehaviour)((BraveBehaviour)aiActor).sprite).renderer.material).name.ToLower().StartsWith("hologrammaterial") || ((Object)((BraveBehaviour)((BraveBehaviour)aiActor).sprite).renderer.material).name.ToLower().StartsWith("galaxymaterial") || ((Object)((BraveBehaviour)((BraveBehaviour)aiActor).sprite).renderer.material).name.ToLower().StartsWith("spacematerial") || ((Object)((BraveBehaviour)((BraveBehaviour)aiActor).sprite).renderer.material).name.ToLower().StartsWith("paradoxmaterial") || ((Object)((BraveBehaviour)((BraveBehaviour)aiActor).sprite).renderer.material).name.ToLower().StartsWith("cosmichorrormaterial") || ((Object)((BraveBehaviour)((BraveBehaviour)aiActor).sprite).renderer.material).name.ToLower().StartsWith("rainbowmaterial")) { return; } ApplyHologramShader(((BraveBehaviour)aiActor).sprite, isGreen); if ((Object)(object)((GameActor)aiActor).CurrentGun != (Object)null && (Object)(object)((BraveBehaviour)((GameActor)aiActor).CurrentGun).sprite != (Object)null) { ApplyHologramShader(((BraveBehaviour)((GameActor)aiActor).CurrentGun).sprite, isGreen); } if ((Object)(object)((Component)aiActor).gameObject.GetComponent() != (Object)null) { SpeculativeRigidbody component = ((Component)aiActor).gameObject.GetComponent(); component.RegisterSpecificCollisionException(((BraveBehaviour)GameManager.Instance.PrimaryPlayer).specRigidbody); if ((int)GameManager.Instance.CurrentGameType == 1) { ((BraveBehaviour)component).specRigidbody.RegisterSpecificCollisionException(((BraveBehaviour)GameManager.Instance.SecondaryPlayer).specRigidbody); } } else if ((Object)(object)((Component)aiActor).gameObject.GetComponentInChildren() != (Object)null) { SpeculativeRigidbody componentInChildren = ((Component)aiActor).gameObject.GetComponentInChildren(); componentInChildren.RegisterSpecificCollisionException(((BraveBehaviour)GameManager.Instance.PrimaryPlayer).specRigidbody); if ((int)GameManager.Instance.CurrentGameType == 1) { ((BraveBehaviour)componentInChildren).specRigidbody.RegisterSpecificCollisionException(((BraveBehaviour)GameManager.Instance.SecondaryPlayer).specRigidbody); } } } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"Exception Caught at [BecomeHologram] in ChaosShaders class.", false); ETGModConsole.Log((object)(ex.Message + ex.Source), false); ETGModConsole.Log((object)ex.StackTrace, false); } } } public void BecomeGlitchedTest(BraveBehaviour gameObject) { tk2dBaseSprite sprite = null; try { if (gameObject.sprite == null) { return; } sprite = gameObject.sprite; } catch { } ApplyGlitchShader(sprite, usesOverrideMaterial: true, 0.04f, 0.07f, 0.05f, 0.07f, 0.05f); } public void BecomeGlitched(BraveBehaviour braveObject, float GlitchInterval = 0.1f, float DispProbability = 0.4f, float DispIntensity = 0.01f, float ColorProbability = 0.4f, float ColorIntensity = 0.04f) { //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0128: 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) try { if ((Object)(object)braveObject == (Object)null) { return; } tk2dBaseSprite val = null; try { if (braveObject.sprite == null) { return; } val = braveObject.sprite; } catch { } if ((Object)(object)val == (Object)null || (Object)(object)((Component)braveObject).gameObject.GetComponent() != (Object)null || (Object)(object)((Component)braveObject).gameObject.GetComponentInChildren() != (Object)null || (Object)(object)((Component)braveObject).gameObject.GetComponent() != (Object)null || (Object)(object)((Component)braveObject).gameObject.GetComponentInChildren() != (Object)null || ((Object)(object)((Component)braveObject).gameObject.transform != (Object)null && Vector3Extensions.GetAbsoluteRoom(((Component)braveObject).gameObject.transform.position) != null && (Vector3Extensions.GetAbsoluteRoom(((Component)braveObject).gameObject.transform.position).GetRoomName().StartsWith("doublebeholsterroom01") || Vector3Extensions.GetAbsoluteRoom(((Component)braveObject).gameObject.transform.position).GetRoomName().StartsWith("bossstatuesroom01") || Vector3Extensions.GetAbsoluteRoom(((Component)braveObject).gameObject.transform.position).GetRoomName().StartsWith("boss foyer") || (GameManager.Instance.Dungeon.data.Entrance != null && Vector3Extensions.GetAbsoluteRoom(((Component)braveObject).gameObject.transform.position).GetRoomName().StartsWith(GameManager.Instance.Dungeon.data.Entrance.GetRoomName())))) || string.IsNullOrEmpty(((Object)((Component)braveObject).gameObject).name) || ((Object)((Component)braveObject).gameObject).name.StartsWith("SellPit") || ((Object)((Component)braveObject).gameObject).name.StartsWith("PitTop") || ((Object)((Component)braveObject).gameObject).name.StartsWith("PitBottom") || ((Object)((Component)braveObject).gameObject).name.StartsWith("NPC_PitDweller") || ((Object)((Component)braveObject).gameObject).name.StartsWith("player") || ((Object)((Component)braveObject).gameObject).name.StartsWith("BossStatuesDummy") || (((Object)(object)((Component)braveObject).gameObject.GetComponentInChildren(true) != (Object)null) | ((Object)(object)((Component)braveObject).gameObject.GetComponent() != (Object)null)) || (((Object)(object)((Component)braveObject).gameObject.GetComponentInChildren(true) != (Object)null) | ((Object)(object)((Component)braveObject).gameObject.GetComponent() != (Object)null)) || ((Object)((BraveBehaviour)val).renderer.material).name.ToLower().StartsWith("glitchmaterial") || ((Object)((BraveBehaviour)val).renderer.material).name.ToLower().StartsWith("hologrammaterial") || ((Object)((BraveBehaviour)val).renderer.material).name.ToLower().StartsWith("galaxymaterial") || ((Object)((BraveBehaviour)val).renderer.material).name.ToLower().StartsWith("spacematerial") || ((Object)((BraveBehaviour)val).renderer.material).name.ToLower().StartsWith("paradoxmaterial") || ((Object)((BraveBehaviour)val).renderer.material).name.ToLower().StartsWith("cosmichorrormaterial") || ((Object)((BraveBehaviour)val).renderer.material).name.ToLower().StartsWith("rainbowmaterial")) { return; } if ((Object)(object)((Component)braveObject).gameObject.GetComponent() != (Object)null) { AIActor component = ((Component)braveObject).gameObject.GetComponent(); if (component.GetActorName().StartsWith("Glitched") | ((GameActor)component).ActorName.ToLower().StartsWith("glitched") | ExpandLists.DontGlitchMeList.Contains(component.EnemyGuid) | component.IsBlackPhantom | ((GameActor)component).ActorName.StartsWith("Statue")) { return; } ((GameActor)component).ActorName = "Glitched " + ((GameActor)component).ActorName; } ApplyGlitchShader(val, usesOverrideMaterial: true, GlitchInterval, DispProbability, DispIntensity, ColorProbability, ColorIntensity); } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"Exception Caught at [BecomeGlitched] in ChaosShaders class.", false); Debug.Log((object)"Exception Caught at[BecomeGlitched] in ChaosShaders class"); Debug.LogException(ex); } } } public void BecomeGlitched(GameObject targetObject, float GlitchInterval = 0.1f, float DispProbability = 0.4f, float DispIntensity = 0.01f, float ColorProbability = 0.4f, float ColorIntensity = 0.04f) { //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) try { if ((Object)(object)targetObject == (Object)null) { return; } tk2dBaseSprite val = null; try { if (!Object.op_Implicit((Object)(object)targetObject.GetComponent())) { return; } val = targetObject.GetComponent(); } catch { } if ((Object)(object)val == (Object)null || ((Object)(object)targetObject.transform != (Object)null && Vector3Extensions.GetAbsoluteRoom(targetObject.transform.position) != null && GameManager.Instance.Dungeon.data.Entrance != null && Vector3Extensions.GetAbsoluteRoom(targetObject.transform.position).GetRoomName().StartsWith(GameManager.Instance.Dungeon.data.Entrance.GetRoomName())) || string.IsNullOrEmpty(((Object)targetObject).name) || ((Object)targetObject).name.StartsWith("SellPit") || ((Object)targetObject).name.StartsWith("PitTop") || ((Object)targetObject).name.StartsWith("PitBottom") || ((Object)targetObject).name.StartsWith("NPC_PitDweller") || ((Object)targetObject).name.StartsWith("player") || ((Object)targetObject).name.StartsWith("BossStatuesDummy") || (((Object)(object)targetObject.GetComponentInChildren(true) != (Object)null) | ((Object)(object)targetObject.GetComponent() != (Object)null)) || (((Object)(object)targetObject.GetComponentInChildren(true) != (Object)null) | ((Object)(object)targetObject.GetComponent() != (Object)null)) || ((Object)((BraveBehaviour)val).renderer.material).name.ToLower().StartsWith("glitchmaterial") || ((Object)((BraveBehaviour)val).renderer.material).name.ToLower().StartsWith("hologrammaterial") || ((Object)((BraveBehaviour)val).renderer.material).name.ToLower().StartsWith("galaxymaterial") || ((Object)((BraveBehaviour)val).renderer.material).name.ToLower().StartsWith("spacematerial") || ((Object)((BraveBehaviour)val).renderer.material).name.ToLower().StartsWith("paradoxmaterial") || ((Object)((BraveBehaviour)val).renderer.material).name.ToLower().StartsWith("cosmichorrormaterial") || ((Object)((BraveBehaviour)val).renderer.material).name.ToLower().StartsWith("rainbowmaterial")) { return; } if ((Object)(object)targetObject.GetComponent() != (Object)null) { AIActor component = targetObject.GetComponent(); if (component.GetActorName().StartsWith("Glitched") | ((GameActor)component).ActorName.ToLower().StartsWith("glitched") | ExpandLists.DontGlitchMeList.Contains(component.EnemyGuid) | component.IsBlackPhantom | ((GameActor)component).ActorName.StartsWith("Statue")) { return; } ((GameActor)component).ActorName = "Glitched " + ((GameActor)component).ActorName; } ApplyGlitchShader(val, usesOverrideMaterial: true, GlitchInterval, DispProbability, DispIntensity, ColorProbability, ColorIntensity); } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"Exception Caught at [BecomeGlitched] in ChaosShaders class.", false); Debug.Log((object)"Exception Caught at[BecomeGlitched] in ChaosShaders class"); Debug.LogException(ex); } } } public void BecomeGlitched(AIActor aiActor, float GlitchInterval = 0.1f, float DispProbability = 0.4f, float DispIntensity = 0.01f, float ColorProbability = 0.4f, float ColorIntensity = 0.04f) { //IL_0055: 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_009a: 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_0106: Unknown result type (might be due to invalid IL or missing references) try { if (!((Object)(object)aiActor == (Object)null) && !((Object)(object)((Component)aiActor).gameObject == (Object)null) && !((Object)(object)((BraveBehaviour)aiActor).sprite == (Object)null) && (!((Object)(object)((Component)aiActor).gameObject.transform != (Object)null) || Vector3Extensions.GetAbsoluteRoom(((Component)aiActor).gameObject.transform.position) == null || (!Vector3Extensions.GetAbsoluteRoom(((Component)aiActor).gameObject.transform.position).GetRoomName().StartsWith("doublebeholsterroom01") && !Vector3Extensions.GetAbsoluteRoom(((Component)aiActor).gameObject.transform.position).GetRoomName().StartsWith("bossstatuesroom01") && !Vector3Extensions.GetAbsoluteRoom(((Component)aiActor).gameObject.transform.position).GetRoomName().StartsWith("boss foyer") && (GameManager.Instance.Dungeon.data.Entrance == null || !Vector3Extensions.GetAbsoluteRoom(((Component)aiActor).gameObject.transform.position).GetRoomName().StartsWith(GameManager.Instance.Dungeon.data.Entrance.GetRoomName())))) && !((Object)(object)((Component)aiActor).gameObject.GetComponent() != (Object)null) && !((Object)(object)((Component)aiActor).gameObject.GetComponentInChildren() != (Object)null) && !((Object)((Component)aiActor).gameObject).name.StartsWith("player") && !((Object)((Component)aiActor).gameObject).name.StartsWith("BossStatuesDummy") && !(((Object)(object)((Component)aiActor).gameObject.GetComponentInChildren(true) != (Object)null) | ((Object)(object)((Component)aiActor).gameObject.GetComponent() != (Object)null)) && !(((Object)(object)((Component)aiActor).gameObject.GetComponentInChildren(true) != (Object)null) | ((Object)(object)((Component)aiActor).gameObject.GetComponent() != (Object)null)) && !((Object)((BraveBehaviour)((BraveBehaviour)aiActor).sprite).renderer.material).name.ToLower().StartsWith("glitchmaterial") && !((Object)((BraveBehaviour)((BraveBehaviour)aiActor).sprite).renderer.material).name.ToLower().StartsWith("hologrammaterial") && !((Object)((BraveBehaviour)((BraveBehaviour)aiActor).sprite).renderer.material).name.ToLower().StartsWith("galaxymaterial") && !((Object)((BraveBehaviour)((BraveBehaviour)aiActor).sprite).renderer.material).name.ToLower().StartsWith("spacematerial") && !((Object)((BraveBehaviour)((BraveBehaviour)aiActor).sprite).renderer.material).name.ToLower().StartsWith("paradoxmaterial") && !((Object)((BraveBehaviour)((BraveBehaviour)aiActor).sprite).renderer.material).name.ToLower().StartsWith("cosmichorrormaterial") && !((Object)((BraveBehaviour)((BraveBehaviour)aiActor).sprite).renderer.material).name.ToLower().StartsWith("rainbowmaterial") && !(aiActor.GetActorName().StartsWith("Glitched") | ((GameActor)aiActor).ActorName.ToLower().StartsWith("glitched"))) { ((GameActor)aiActor).ActorName = "Glitched " + ((GameActor)aiActor).ActorName; ApplyGlitchShader(((BraveBehaviour)aiActor).sprite, usesOverrideMaterial: true, GlitchInterval, DispProbability, DispIntensity, ColorProbability, ColorIntensity); } } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"Exception Caught at [BecomeGlitched] in ChaosShaders class.", false); Debug.Log((object)"Exception Caught at[BecomeGlitched] in ChaosShaders class"); Debug.LogException(ex); } } } public void BecomeParadoxGlitch(tk2dBaseSprite sprite, float GlitchInterval = 0.1f, float DispProbability = 0.4f, float DispIntensity = 0.01f, float ColorProbability = 0.4f, float ColorIntensity = 0.04f, float WaveIntensity = 1f, float AdditionalTime = 0f) { if (!((Object)((BraveBehaviour)sprite).renderer.material).name.ToLower().StartsWith("glitchmaterial") && !((Object)((BraveBehaviour)sprite).renderer.material).name.ToLower().StartsWith("hologrammaterial") && !((Object)((BraveBehaviour)sprite).renderer.material).name.ToLower().StartsWith("galaxymaterial") && !((Object)((BraveBehaviour)sprite).renderer.material).name.ToLower().StartsWith("spacematerial") && !((Object)((BraveBehaviour)sprite).renderer.material).name.ToLower().StartsWith("paradoxmaterial") && !((Object)((BraveBehaviour)sprite).renderer.material).name.ToLower().StartsWith("cosmichorrormaterial") && !((Object)((BraveBehaviour)sprite).renderer.material).name.ToLower().StartsWith("rainbowmaterial")) { ApplyParadoxGlitchShader(sprite, GlitchInterval, DispProbability, DispIntensity, ColorProbability, ColorIntensity, WaveIntensity, AdditionalTime); } } public void BecomeRainbow(AIActor aiActor) { //IL_002f: 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_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) try { if (!((Object)(object)aiActor == (Object)null) && (!((Object)(object)((Component)aiActor).gameObject.transform != (Object)null) || Vector3Extensions.GetAbsoluteRoom(((Component)aiActor).gameObject.transform.position) == null || (!Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)aiActor).transform.position).GetRoomName().StartsWith("doublebeholsterroom01") && !Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)aiActor).transform.position).GetRoomName().StartsWith("bossstatuesroom01") && !Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)aiActor).transform.position).GetRoomName().StartsWith("boss foyer") && (GameManager.Instance.Dungeon.data.Entrance == null || !Vector3Extensions.GetAbsoluteRoom(((Component)aiActor).gameObject.transform.position).GetRoomName().StartsWith(GameManager.Instance.Dungeon.data.Entrance.GetRoomName())))) && !aiActor.GetActorName().StartsWith("Glitched") && !((GameActor)aiActor).ActorName.StartsWith("Glitched") && !((Object)((Component)aiActor).gameObject).name.StartsWith("BossStatuesDummy") && !(((Object)(object)((Component)aiActor).gameObject.GetComponentInChildren(true) != (Object)null) | ((Object)(object)((Component)aiActor).gameObject.GetComponent() != (Object)null)) && !(((Object)(object)((Component)aiActor).gameObject.GetComponentInChildren(true) != (Object)null) | ((Object)(object)((Component)aiActor).gameObject.GetComponent() != (Object)null)) && !((Object)((BraveBehaviour)((BraveBehaviour)aiActor).sprite).renderer.material).name.ToLower().StartsWith("glitchmaterial") && !((Object)((BraveBehaviour)((BraveBehaviour)aiActor).sprite).renderer.material).name.ToLower().StartsWith("hologrammaterial") && !((Object)((BraveBehaviour)((BraveBehaviour)aiActor).sprite).renderer.material).name.ToLower().StartsWith("galaxymaterial") && !((Object)((BraveBehaviour)((BraveBehaviour)aiActor).sprite).renderer.material).name.ToLower().StartsWith("spacematerial") && !((Object)((BraveBehaviour)((BraveBehaviour)aiActor).sprite).renderer.material).name.ToLower().StartsWith("paradoxmaterial") && !((Object)((BraveBehaviour)((BraveBehaviour)aiActor).sprite).renderer.material).name.ToLower().StartsWith("cosmichorrormaterial") && !((Object)((BraveBehaviour)((BraveBehaviour)aiActor).sprite).renderer.material).name.ToLower().StartsWith("rainbowmaterial") && (Object)(object)aiActor != (Object)null) { ApplyRainbowShader(aiActor, ((BraveBehaviour)aiActor).sprite); } } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"Exception Caught at [BecomeRainbow] in ChaosShaders class.", false); ETGModConsole.Log((object)(ex.Message + ex.Source), false); ETGModConsole.Log((object)ex.StackTrace, false); } } } public void ApplyParadoxGlitchShader(tk2dBaseSprite sprite, float GlitchInterval = 0.1f, float DispProbability = 0.4f, float DispIntensity = 0.01f, float ColorProbability = 0.4f, float ColorIntensity = 0.04f, float WaveIntensity = 1f, float AdditionalTime = 0f) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Expected O, but got Unknown Material val = new Material(ShaderCache.Acquire("Brave/Internal/GlitchEevee")); ((Object)val).name = "ParadoxMaterial"; Texture2D val2 = ResourceManager.LoadAssetBundle("shared_auto_001").LoadAsset("nebula_reducednoise"); val.SetFloat("_GlitchInterval", GlitchInterval); val.SetFloat("_DispProbability", DispProbability); val.SetFloat("_DispIntensity", DispIntensity); val.SetFloat("_ColorProbability", ColorProbability); val.SetFloat("_ColorIntensity", ColorIntensity); val.SetFloat("_WaveIntensity", WaveIntensity); val.SetFloat("_AdditionalTime", AdditionalTime); MeshRenderer component = ((Component)sprite).GetComponent(); Material[] array = ((Renderer)component).sharedMaterials; Array.Resize(ref array, array.Length + 1); if (array != null && array.Length != 0) { Material[] array2 = array; foreach (Material val3 in array2) { if (((Object)val3).name.ToLower().StartsWith("glitchmaterial") || ((Object)val3).name.ToLower().StartsWith("hologrammaterial") || ((Object)val3).name.ToLower().StartsWith("galaxymaterial") || ((Object)val3).name.ToLower().StartsWith("spacematerial") || ((Object)val3).name.ToLower().StartsWith("paradoxmaterial") || ((Object)val3).name.ToLower().StartsWith("cosmichorrormaterial") || ((Object)val3).name.ToLower().StartsWith("rainbowmaterial")) { return; } } } val.SetTexture("_MainTex", array[0].GetTexture("_MainTex")); val.SetTexture("_EeveeTex", (Texture)(object)val2); array[^1] = val; ((Renderer)component).sharedMaterials = array; sprite.usesOverrideMaterial = Object.op_Implicit((Object)(object)val); } public void ApplyGlitchShader(tk2dBaseSprite sprite, bool usesOverrideMaterial = true, float GlitchInterval = 0.1f, float DispProbability = 0.4f, float DispIntensity = 0.01f, float ColorProbability = 0.4f, float ColorIntensity = 0.04f) { //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Expected O, but got Unknown try { if ((Object)(object)sprite == (Object)null) { return; } if (!Object.op_Implicit((Object)(object)EXGlitchShader)) { EXGlitchShader = ResourceManager.LoadAssetBundle(ExpandTheGungeon.ModShaderBundleName).LoadAsset("ExpandGlitchBasic"); } Material val = new Material(EXGlitchShader); ((Object)val).name = "GlitchMaterial"; val.SetFloat("_GlitchInterval", GlitchInterval); val.SetFloat("_DispProbability", DispProbability); val.SetFloat("_DispIntensity", DispIntensity); val.SetFloat("_ColorProbability", ColorProbability); val.SetFloat("_ColorIntensity", ColorIntensity); val.SetFloat("_WrapDispCoords", 0f); MeshRenderer component = ((Component)sprite).GetComponent(); if ((Object)(object)component == (Object)null) { return; } Material[] array = ((Renderer)component).sharedMaterials; if (array == null) { return; } if (array.Length != 0) { Material[] array2 = array; foreach (Material val2 in array2) { if (((Object)val2).name.ToLower().StartsWith("glitchmaterial") || ((Object)val2).name.ToLower().StartsWith("hologrammaterial") || ((Object)val2).name.ToLower().StartsWith("galaxymaterial") || ((Object)val2).name.ToLower().StartsWith("spacematerial") || ((Object)val2).name.ToLower().StartsWith("paradoxmaterial") || ((Object)val2).name.ToLower().StartsWith("cosmichorrormaterial") || ((Object)val2).name.ToLower().StartsWith("rainbowmaterial")) { return; } } } Array.Resize(ref array, array.Length + 1); if (!((Object)(object)array[0].GetTexture("_MainTex") == (Object)null)) { val.SetTexture("_MainTex", array[0].GetTexture("_MainTex")); array[^1] = val; ((Renderer)component).sharedMaterials = array; sprite.usesOverrideMaterial = usesOverrideMaterial; } } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[ExpandTheGungeon] Warning: Caught exception in ExpandShaders.ApplyGlitchShader!", false); Debug.Log((object)"[ExpandTheGungeon] Warning: Caught exception in ExpandShaders.ApplyGlitchShader!"); Debug.LogException(ex); } } } public void ApplyGlitchShader(tk2dSprite sprite, float GlitchInterval = 0.1f, float DispProbability = 0.4f, float DispIntensity = 0.01f, float ColorProbability = 0.4f, float ColorIntensity = 0.04f) { //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Expected O, but got Unknown try { if (!((Object)(object)sprite == (Object)null)) { if (!Object.op_Implicit((Object)(object)EXGlitchShader)) { EXGlitchShader = ResourceManager.LoadAssetBundle(ExpandTheGungeon.ModShaderBundleName).LoadAsset("ExpandGlitchBasic"); } Material val = new Material(EXGlitchShader); ((Object)val).name = "GlitchMaterial"; val.SetFloat("_GlitchInterval", GlitchInterval); val.SetFloat("_DispProbability", DispProbability); val.SetFloat("_DispIntensity", DispIntensity); val.SetFloat("_ColorProbability", ColorProbability); val.SetFloat("_ColorIntensity", ColorIntensity); val.SetFloat("_WrapDispCoords", 0f); MeshRenderer component = ((Component)sprite).GetComponent(); Material[] array = ((Renderer)component).sharedMaterials; Array.Resize(ref array, array.Length + 1); val.SetTexture("_MainTex", array[0].GetTexture("_MainTex")); array[^1] = val; ((Renderer)component).sharedMaterials = array; } } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[ExpandTheGungeon] Warning: Caught exception in ExpandShaders.ApplyGlitchShader!", false); Debug.Log((object)"[ExpandTheGungeon] Warning: Caught exception in ExpandShaders.ApplyGlitchShader!"); Debug.LogException(ex); } } } public void ApplyGlitchShader(tk2dSlicedSprite sprite, float GlitchInterval = 0.1f, float DispProbability = 0.4f, float DispIntensity = 0.01f, float ColorProbability = 0.4f, float ColorIntensity = 0.04f) { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Expected O, but got Unknown try { if (!((Object)(object)sprite == (Object)null)) { Material val = new Material(ShaderCache.Acquire("Brave/Internal/Glitch")); ((Object)val).name = "GlitchMaterial"; val.SetFloat("_GlitchInterval", GlitchInterval); val.SetFloat("_DispProbability", DispProbability); val.SetFloat("_DispIntensity", DispIntensity); val.SetFloat("_ColorProbability", ColorProbability); val.SetFloat("_ColorIntensity", ColorIntensity); MeshRenderer component = ((Component)sprite).GetComponent(); Material[] array = ((Renderer)component).sharedMaterials; Array.Resize(ref array, array.Length + 1); val.SetTexture("_MainTex", array[0].GetTexture("_MainTex")); array[^1] = val; ((Renderer)component).sharedMaterials = array; } } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[ExpandTheGungeon] Warning: Caught exception in ExpandShaders.ApplyGlitchShader!", false); Debug.Log((object)"[ExpandTheGungeon] Warning: Caught exception in ExpandShaders.ApplyGlitchShader!"); Debug.LogException(ex); } } } public void ApplySuperGlitchShader(tk2dBaseSprite sprite, AIActor glitchactor, float GlitchInterval = 0.1f, float DispProbability = 0.4f, float DispIntensity = 0.01f, float ColorProbability = 0.4f, float ColorIntensity = 0.04f) { //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Expected O, but got Unknown //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Expected O, but got Unknown //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Expected O, but got Unknown //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Expected O, but got Unknown //IL_031d: Unknown result type (might be due to invalid IL or missing references) //IL_0324: Expected O, but got Unknown if (!Object.op_Implicit((Object)(object)EXGlitchShader)) { EXGlitchShader = ResourceManager.LoadAssetBundle(ExpandTheGungeon.ModShaderBundleName).LoadAsset("ExpandGlitchBasic"); } MeshRenderer component = ((Component)sprite).GetComponent(); MeshRenderer component2 = ((Component)((BraveBehaviour)glitchactor).sprite).GetComponent(); Material val = new Material(EXGlitchShader); Material val2 = new Material(EXGlitchShader); Material val3 = new Material(EXGlitchShader); Material val4 = new Material(EXGlitchShader); val.SetFloat("_GlitchInterval", GlitchInterval); val.SetFloat("_DispProbability", DispProbability); val.SetFloat("_DispIntensity", DispIntensity); val.SetFloat("_ColorProbability", ColorProbability); val.SetFloat("_ColorIntensity", ColorIntensity); val.SetFloat("_WrapDispCoords", 0f); val2.SetFloat("_GlitchInterval", GlitchInterval); val2.SetFloat("_DispProbability", DispProbability); val2.SetFloat("_DispIntensity", DispIntensity); val2.SetFloat("_ColorProbability", ColorProbability); val2.SetFloat("_ColorIntensity", ColorIntensity); val2.SetFloat("_WrapDispCoords", 0f); val3.SetFloat("_GlitchInterval", GlitchInterval); val3.SetFloat("_DispProbability", DispProbability); val3.SetFloat("_DispIntensity", DispIntensity); val3.SetFloat("_ColorProbability", ColorProbability); val3.SetFloat("_ColorIntensity", ColorIntensity); val3.SetFloat("_WrapDispCoords", 0f); val4.SetFloat("_GlitchInterval", GlitchInterval); val4.SetFloat("_DispProbability", DispProbability); val4.SetFloat("_DispIntensity", DispIntensity); val4.SetFloat("_ColorProbability", ColorProbability); val4.SetFloat("_ColorIntensity", ColorIntensity); val4.SetFloat("_WrapDispCoords", 0f); Material[] array = ((Renderer)component2).materials; Material[] array2 = ((Renderer)component2).sharedMaterials; Array.Resize(ref array, array.Length + 1); Array.Resize(ref array2, array2.Length + 1); val.SetTexture("_MainTex", array[0].GetTexture("_MainTex")); val2.SetTexture("_MainTex", ((Renderer)component2).material.GetTexture("_MainTex")); val3.SetTexture("_MainTex", array2[0].GetTexture("_MainTex")); val4.SetTexture("_MainTex", ((Renderer)component2).sharedMaterial.GetTexture("_MainTex")); array[^1] = val; array2[^1] = val3; ((Renderer)component).material = val2; ((Renderer)component).materials = array; ((Renderer)component).sharedMaterials = array2; ((Renderer)component).sharedMaterial = val4; ((BraveBehaviour)sprite).renderer.material.shader = EXGlitchShader; ((BraveBehaviour)sprite).renderer.material = val; ((BraveBehaviour)sprite).renderer.materials = array; ((BraveBehaviour)sprite).renderer.sharedMaterial = val4; ((BraveBehaviour)sprite).renderer.sharedMaterials = array2; sprite.usesOverrideMaterial = Object.op_Implicit((Object)(object)val); float num = Random.Range(0.09f, 0.11f); float num2 = Random.Range(0.3f, 0.5f); float num3 = Random.Range(0.009f, 0.0115f); float num4 = Random.Range(0.3f, 0.5f); float num5 = Random.Range(0.03f, 0.05f); Material val5 = new Material(EXGlitchShader); val5.SetFloat("_GlitchInterval", num); val5.SetFloat("_DispProbability", num2); val5.SetFloat("_DispIntensity", num3); val5.SetFloat("_ColorProbability", num4); val5.SetFloat("_ColorIntensity", num5); val5.SetFloat("_WrapDispCoords", 0f); MeshRenderer component3 = ((Component)sprite).GetComponent(); Material[] array3 = ((Renderer)component3).sharedMaterials; Array.Resize(ref array3, array3.Length + 1); Material val6 = Object.Instantiate(val5); val6.SetTexture("_MainTex", array3[0].GetTexture("_MainTex")); array3[^1] = val6; ((Renderer)component3).sharedMaterials = array3; ((BraveBehaviour)sprite).renderer.sharedMaterials = array3; ((BraveBehaviour)sprite).renderer.material = val5; } public void ApplySuperGlitchShader(tk2dBaseSprite firstSprite, tk2dBaseSprite secondSprite, float GlitchInterval = 0.1f, float DispProbability = 0.4f, float DispIntensity = 0.01f, float ColorProbability = 0.4f, float ColorIntensity = 0.04f) { //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Expected O, but got Unknown //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Expected O, but got Unknown //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Expected O, but got Unknown //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown //IL_0318: Unknown result type (might be due to invalid IL or missing references) //IL_031f: Expected O, but got Unknown if (!Object.op_Implicit((Object)(object)EXGlitchShader)) { EXGlitchShader = ResourceManager.LoadAssetBundle(ExpandTheGungeon.ModShaderBundleName).LoadAsset("ExpandGlitchBasic"); } MeshRenderer component = ((Component)firstSprite).GetComponent(); MeshRenderer component2 = ((Component)secondSprite).GetComponent(); Material val = new Material(EXGlitchShader); Material val2 = new Material(EXGlitchShader); Material val3 = new Material(EXGlitchShader); Material val4 = new Material(EXGlitchShader); val.SetFloat("_GlitchInterval", GlitchInterval); val.SetFloat("_DispProbability", DispProbability); val.SetFloat("_DispIntensity", DispIntensity); val.SetFloat("_ColorProbability", ColorProbability); val.SetFloat("_ColorIntensity", ColorIntensity); val.SetFloat("_WrapDispCoords", 0f); val2.SetFloat("_GlitchInterval", GlitchInterval); val2.SetFloat("_DispProbability", DispProbability); val2.SetFloat("_DispIntensity", DispIntensity); val2.SetFloat("_ColorProbability", ColorProbability); val2.SetFloat("_ColorIntensity", ColorIntensity); val2.SetFloat("_WrapDispCoords", 0f); val3.SetFloat("_GlitchInterval", GlitchInterval); val3.SetFloat("_DispProbability", DispProbability); val3.SetFloat("_DispIntensity", DispIntensity); val3.SetFloat("_ColorProbability", ColorProbability); val3.SetFloat("_ColorIntensity", ColorIntensity); val3.SetFloat("_WrapDispCoords", 0f); val4.SetFloat("_GlitchInterval", GlitchInterval); val4.SetFloat("_DispProbability", DispProbability); val4.SetFloat("_DispIntensity", DispIntensity); val4.SetFloat("_ColorProbability", ColorProbability); val4.SetFloat("_ColorIntensity", ColorIntensity); val4.SetFloat("_WrapDispCoords", 0f); Material[] array = ((Renderer)component2).materials; Material[] array2 = ((Renderer)component2).sharedMaterials; Array.Resize(ref array, array.Length + 1); Array.Resize(ref array2, array2.Length + 1); val.SetTexture("_MainTex", array[0].GetTexture("_MainTex")); val2.SetTexture("_MainTex", ((Renderer)component2).material.GetTexture("_MainTex")); val3.SetTexture("_MainTex", array2[0].GetTexture("_MainTex")); val4.SetTexture("_MainTex", ((Renderer)component2).sharedMaterial.GetTexture("_MainTex")); array[^1] = val; array2[^1] = val3; ((Renderer)component).material = val2; ((Renderer)component).materials = array; ((Renderer)component).sharedMaterials = array2; ((Renderer)component).sharedMaterial = val4; ((BraveBehaviour)firstSprite).renderer.material.shader = EXGlitchShader; ((BraveBehaviour)firstSprite).renderer.material = val; ((BraveBehaviour)firstSprite).renderer.materials = array; ((BraveBehaviour)firstSprite).renderer.sharedMaterial = val4; ((BraveBehaviour)firstSprite).renderer.sharedMaterials = array2; firstSprite.usesOverrideMaterial = Object.op_Implicit((Object)(object)val); float num = Random.Range(0.09f, 0.11f); float num2 = Random.Range(0.3f, 0.5f); float num3 = Random.Range(0.009f, 0.0115f); float num4 = Random.Range(0.3f, 0.5f); float num5 = Random.Range(0.03f, 0.05f); Material val5 = new Material(EXGlitchShader); val5.SetFloat("_GlitchInterval", num); val5.SetFloat("_DispProbability", num2); val5.SetFloat("_DispIntensity", num3); val5.SetFloat("_ColorProbability", num4); val5.SetFloat("_ColorIntensity", num5); val5.SetFloat("_WrapDispCoords", 0f); MeshRenderer component3 = ((Component)firstSprite).GetComponent(); Material[] array3 = ((Renderer)component3).sharedMaterials; Array.Resize(ref array3, array3.Length + 1); Material val6 = Object.Instantiate(val5); val6.SetTexture("_MainTex", array3[0].GetTexture("_MainTex")); array3[^1] = val6; ((Renderer)component3).sharedMaterials = array3; ((BraveBehaviour)firstSprite).renderer.sharedMaterials = array3; ((BraveBehaviour)firstSprite).renderer.material = val5; } public void ApplyHologramShader(tk2dBaseSprite sprite, bool isGreen = false, bool usesOverrideMaterial = true) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown Shader shader = Shader.Find("Brave/Internal/HologramShader"); Material val = new Material(Shader.Find("Brave/Internal/HologramShader")); ((Object)val).name = "HologramMaterial"; Material val2 = val; val.SetTexture("_MainTex", ((BraveBehaviour)sprite).renderer.material.GetTexture("_MainTex")); val2.SetTexture("_MainTex", ((BraveBehaviour)sprite).renderer.sharedMaterial.GetTexture("_MainTex")); if (isGreen) { val.SetFloat("_IsGreen", 1f); val2.SetFloat("_IsGreen", 1f); } ((BraveBehaviour)sprite).renderer.material.shader = shader; ((BraveBehaviour)sprite).renderer.material = val; ((BraveBehaviour)sprite).renderer.sharedMaterial = val2; sprite.usesOverrideMaterial = usesOverrideMaterial; } public static void ApplyHologramShader(tk2dSprite sprite, bool isGreen = false) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown Shader shader = Shader.Find("Brave/Internal/HologramShader"); Material val = new Material(Shader.Find("Brave/Internal/HologramShader")); ((Object)val).name = "HologramMaterial"; Material val2 = val; val.SetTexture("_MainTex", ((BraveBehaviour)sprite).renderer.material.GetTexture("_MainTex")); val2.SetTexture("_MainTex", ((BraveBehaviour)sprite).renderer.sharedMaterial.GetTexture("_MainTex")); if (isGreen) { val.SetFloat("_IsGreen", 1f); val2.SetFloat("_IsGreen", 1f); } ((BraveBehaviour)sprite).renderer.material.shader = shader; ((BraveBehaviour)sprite).renderer.material = val; ((BraveBehaviour)sprite).renderer.sharedMaterial = val2; ((tk2dBaseSprite)sprite).usesOverrideMaterial = true; } public static Material ApplyGlitchMaterial(Material originalMaterial, float GlitchInterval = 0.1f, float DispProbability = 0.4f, float DispIntensity = 0.01f, float ColorProbability = 0.4f, float ColorIntensity = 0.04f) { //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002f: 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_0046: 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_005e: 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_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Expected O, but got Unknown if (!Object.op_Implicit((Object)(object)EXGlitchShader)) { EXGlitchShader = ResourceManager.LoadAssetBundle(ExpandTheGungeon.ModShaderBundleName).LoadAsset("ExpandGlitchBasic"); } Material val = new Material(EXGlitchShader) { name = "TileGlitchMaterial" }; val.SetFloat("_GlitchInterval", GlitchInterval); val.SetFloat("_DispProbability", DispProbability); val.SetFloat("_DispIntensity", DispIntensity); val.SetFloat("_ColorProbability", ColorProbability); val.SetFloat("_ColorIntensity", ColorIntensity); val.SetFloat("_WrapDispCoords", 0f); val.SetTexture("_MainTex", originalMaterial.GetTexture("_MainTex")); return val; } public static void ApplyGlitchShader(tk2dSpriteDefinition spriteDefinition, float GlitchInterval = 0.1f, float DispProbability = 0.4f, float DispIntensity = 0.01f, float ColorProbability = 0.4f, float ColorIntensity = 0.04f) { //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Expected O, but got Unknown if (!Object.op_Implicit((Object)(object)EXGlitchShader)) { EXGlitchShader = ResourceManager.LoadAssetBundle(ExpandTheGungeon.ModShaderBundleName).LoadAsset("ExpandGlitchBasic"); } Material val = new Material(EXGlitchShader); ((Object)val).name = "GlitchMaterial"; val.SetFloat("_GlitchInterval", GlitchInterval); val.SetFloat("_DispProbability", DispProbability); val.SetFloat("_DispIntensity", DispIntensity); val.SetFloat("_ColorProbability", ColorProbability); val.SetFloat("_ColorIntensity", ColorIntensity); val.SetFloat("_WrapDispCoords", 0f); val.SetTexture("_MainTex", spriteDefinition.material.GetTexture("_MainTex")); spriteDefinition.material = val; } public void ApplyRainbowShader(AIActor aiActor, tk2dBaseSprite sprite, bool allowSpeedChange = false) { //IL_0557: Unknown result type (might be due to invalid IL or missing references) //IL_055e: Expected O, but got Unknown //IL_055f: Unknown result type (might be due to invalid IL or missing references) //IL_0566: Expected O, but got Unknown //IL_0567: Unknown result type (might be due to invalid IL or missing references) //IL_056e: Expected O, but got Unknown //IL_056f: Unknown result type (might be due to invalid IL or missing references) //IL_0576: Expected O, but got Unknown //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Expected O, but got Unknown //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Expected O, but got Unknown //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Expected O, but got Unknown //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Expected O, but got Unknown //IL_0171: 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_01b1: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Unknown result type (might be due to invalid IL or missing references) Shader val = ShaderCache.Acquire("Brave/Internal/RainbowChestShader"); if ((Object)(object)val == (Object)null) { return; } if (allowSpeedChange) { if (!((BraveBehaviour)aiActor).healthHaver.IsBoss) { aiActor.BaseMovementSpeed *= 1.25f; aiActor.MovementSpeed *= 1.25f; if ((Object)(object)((BraveBehaviour)aiActor).healthHaver != (Object)null) { ((BraveBehaviour)aiActor).healthHaver.SetHealthMaximum(((BraveBehaviour)aiActor).healthHaver.GetMaxHealth() / 1.5f, (float?)null, false); } } else { aiActor.BaseMovementSpeed *= 1.1f; aiActor.MovementSpeed *= 1.1f; if ((Object)(object)((BraveBehaviour)aiActor).healthHaver != (Object)null) { ((BraveBehaviour)aiActor).healthHaver.SetHealthMaximum(((BraveBehaviour)aiActor).healthHaver.GetMaxHealth() / 1.25f, (float?)null, false); } } } try { MeshRenderer component = ((Component)sprite).GetComponent(); Material val2 = new Material(val); Material val3 = new Material(val); Material val4 = new Material(val); Material val5 = new Material(val); if (aiActor.EnemyGuid == "b54d89f9e802455cbb2b8a96a31e8259") { val2.SetFloat("_AllColorsToggle", 1f); val3.SetFloat("_AllColorsToggle", 1f); val4.SetFloat("_AllColorsToggle", 1f); val5.SetFloat("_AllColorsToggle", 1f); val2.SetColor("_OverrideColor", new Color(0.5f, 0.5f, 1f)); val3.SetColor("_OverrideColor", new Color(0.5f, 0.5f, 1f)); val4.SetColor("_OverrideColor", new Color(0.5f, 0.5f, 1f)); val5.SetColor("_OverrideColor", new Color(0.5f, 0.5f, 1f)); } Material[] array = ((Renderer)component).materials; Material[] array2 = ((Renderer)component).sharedMaterials; if (array != null && array.Length != 0) { Material[] array3 = array; foreach (Material val6 in array3) { if (((Object)val6).name.ToLower().StartsWith("glitchmaterial") || ((Object)val6).name.ToLower().StartsWith("hologrammaterial") || ((Object)val6).name.ToLower().StartsWith("galaxymaterial") || ((Object)val6).name.ToLower().StartsWith("spacematerial") || ((Object)val6).name.ToLower().StartsWith("paradoxmaterial") || ((Object)val6).name.ToLower().StartsWith("cosmichorrormaterial") || ((Object)val6).name.ToLower().StartsWith("rainbowmaterial")) { return; } } } if (array2 != null && array2.Length != 0) { Material[] array3 = array2; foreach (Material val7 in array3) { if (((Object)val7).name.ToLower().StartsWith("glitchmaterial") || ((Object)val7).name.ToLower().StartsWith("hologrammaterial") || ((Object)val7).name.ToLower().StartsWith("galaxymaterial") || ((Object)val7).name.ToLower().StartsWith("spacematerial") || ((Object)val7).name.ToLower().StartsWith("paradoxmaterial") || ((Object)val7).name.ToLower().StartsWith("cosmichorrormaterial") || ((Object)val7).name.ToLower().StartsWith("rainbowmaterial")) { return; } } } Array.Resize(ref array, array.Length + 1); Array.Resize(ref array2, array2.Length + 1); val2.SetTexture("_MainTex", array[0].GetTexture("_MainTex")); val3.SetTexture("_MainTex", ((Renderer)component).material.GetTexture("_MainTex")); val4.SetTexture("_MainTex", array2[0].GetTexture("_MainTex")); val5.SetTexture("_MainTex", ((Renderer)component).sharedMaterial.GetTexture("_MainTex")); array[^1] = val2; array2[^1] = val4; ((Renderer)component).material.shader = val; ((Renderer)component).material = val3; ((Renderer)component).materials = array; ((Renderer)component).sharedMaterials = array2; ((Renderer)component).sharedMaterial = val5; ((BraveBehaviour)sprite).renderer.material.shader = val; ((BraveBehaviour)sprite).renderer.material = val2; ((Object)((BraveBehaviour)sprite).renderer.material).name = "RainbowMaterial"; ((BraveBehaviour)sprite).renderer.materials = array; ((BraveBehaviour)sprite).renderer.sharedMaterial = val5; ((BraveBehaviour)sprite).renderer.sharedMaterials = array2; sprite.usesOverrideMaterial = Object.op_Implicit((Object)(object)val2); } catch (Exception) { } try { MeshRenderer component2 = ((Component)((BraveBehaviour)((GameActor)aiActor).CurrentGun).sprite).GetComponent(); Material[] array4 = ((Renderer)component2).sharedMaterials; Material[] array5 = ((Renderer)component2).materials; Array.Resize(ref array4, array4.Length + 1); Array.Resize(ref array5, array5.Length + 1); Material val8 = new Material(val); Material val9 = new Material(val); Material val10 = new Material(val); Material val11 = new Material(val); val10.SetTexture("_MainTex", array4[0].GetTexture("_MainTex")); val11.SetTexture("_MainTex", ((Renderer)component2).sharedMaterial.GetTexture("_MainTex")); val8.SetTexture("_MainTex", array5[0].GetTexture("_MainTex")); val9.SetTexture("_MainTex", ((Renderer)component2).material.GetTexture("_MainTex")); array5[^1] = val8; array4[^1] = val10; ((Renderer)component2).material.shader = val; ((Renderer)component2).sharedMaterial = val11; ((Renderer)component2).sharedMaterials = array4; ((Renderer)component2).material = val9; ((Renderer)component2).materials = array5; ((BraveBehaviour)((BraveBehaviour)((GameActor)aiActor).CurrentGun).sprite).renderer.sharedMaterial = val10; ((BraveBehaviour)((BraveBehaviour)((GameActor)aiActor).CurrentGun).sprite).renderer.sharedMaterials = array4; ((BraveBehaviour)((BraveBehaviour)((GameActor)aiActor).CurrentGun).sprite).renderer.material = val8; ((Object)((BraveBehaviour)((BraveBehaviour)((GameActor)aiActor).CurrentGun).sprite).renderer.material).name = "RainbowMaterial"; ((BraveBehaviour)((BraveBehaviour)((GameActor)aiActor).CurrentGun).sprite).renderer.materials = array5; ((BraveBehaviour)((GameActor)aiActor).CurrentGun).sprite.usesOverrideMaterial = Object.op_Implicit((Object)(object)val8); } catch (Exception) { } } public void ApplyRainbowShader(tk2dBaseSprite sprite, bool usesOverrideMaterial = true) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Expected O, but got Unknown Material val = new Material(ShaderCache.Acquire("Brave/Internal/RainbowChestShader")); ((Object)val).name = "RainbowMaterial"; MeshRenderer component = ((Component)sprite).GetComponent(); Material[] array = ((Renderer)component).sharedMaterials; if (array != null && array.Length != 0) { Material[] array2 = array; foreach (Material val2 in array2) { if (((Object)val2).name.ToLower().StartsWith("glitchmaterial") || ((Object)val2).name.ToLower().StartsWith("hologrammaterial") || ((Object)val2).name.ToLower().StartsWith("galaxymaterial") || ((Object)val2).name.ToLower().StartsWith("spacematerial") || ((Object)val2).name.ToLower().StartsWith("paradoxmaterial") || ((Object)val2).name.ToLower().StartsWith("cosmichorrormaterial") || ((Object)val2).name.ToLower().StartsWith("rainbowmaterial")) { return; } } } Array.Resize(ref array, array.Length + 1); val.SetTexture("_MainTex", array[0].GetTexture("_MainTex")); array[^1] = val; ((Renderer)component).sharedMaterials = array; sprite.usesOverrideMaterial = usesOverrideMaterial; } public static Material ApplyGlitchMaterialUnlit(Material originalMaterial, float GlitchInterval = 0.1f, float DispProbability = 0.4f, float DispIntensity = 0.01f, float ColorProbability = 0.4f, float ColorIntensity = 0.04f) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000f: 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_0026: 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) //IL_003e: 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_0058: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Expected O, but got Unknown Material val = new Material(ShaderCache.Acquire("Brave/Internal/GlitchUnlit")) { name = "TileGlitchMaterial" }; val.SetFloat("_GlitchInterval", GlitchInterval); val.SetFloat("_DispProbability", DispProbability); val.SetFloat("_DispIntensity", DispIntensity); val.SetFloat("_ColorProbability", ColorProbability); val.SetFloat("_ColorIntensity", ColorIntensity); val.SetTexture("_MainTex", originalMaterial.GetTexture("_MainTex")); return val; } public static void ApplyGlitchShaderUnlit(tk2dSpriteDefinition spriteDefinition, float GlitchInterval = 0.1f, float DispProbability = 0.4f, float DispIntensity = 0.01f, float ColorProbability = 0.4f, float ColorIntensity = 0.04f) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Expected O, but got Unknown Material val = new Material(ShaderCache.Acquire("Brave/Internal/GlitchUnlit")); ((Object)val).name = "GlitchMaterial"; val.SetFloat("_GlitchInterval", GlitchInterval); val.SetFloat("_DispProbability", DispProbability); val.SetFloat("_DispIntensity", DispIntensity); val.SetFloat("_ColorProbability", ColorProbability); val.SetFloat("_ColorIntensity", ColorIntensity); val.SetTexture("_MainTex", spriteDefinition.material.GetTexture("_MainTex")); spriteDefinition.material = val; } } public static class FlowHelpers { public static void RemoveNodeConnectParentToChildren(DungeonFlowNode node) { string parentNodeGuid = node.parentNodeGuid; List list = new List(node.childNodeGuids); DungeonFlow flow = node.flow; node.flow.DeleteNode(node, false); foreach (string item in list) { if (!string.IsNullOrEmpty(parentNodeGuid) && !string.IsNullOrEmpty(item)) { DungeonFlowNode nodeFromGuid = flow.GetNodeFromGuid(parentNodeGuid); DungeonFlowNode nodeFromGuid2 = flow.GetNodeFromGuid(item); if (nodeFromGuid != (DungeonFlowNode)null && nodeFromGuid2 != (DungeonFlowNode)null) { flow.ConnectNodes(nodeFromGuid, nodeFromGuid2); } } } } public static DungeonFlow DuplicateDungeonFlow(DungeonFlow flow) { DungeonFlow val = ScriptableObject.CreateInstance(); ((Object)val).name = ((Object)flow).name; val.fallbackRoomTable = flow.fallbackRoomTable; val.phantomRoomTable = flow.phantomRoomTable; val.subtypeRestrictions = flow.subtypeRestrictions; val.evolvedRoomTable = flow.evolvedRoomTable; ReflectionHelpers.ReflectSetField(typeof(DungeonFlow), "m_firstNodeGuid", ReflectionHelpers.ReflectGetField(typeof(DungeonFlow), "m_firstNodeGuid", flow), val); val.flowInjectionData = flow.flowInjectionData; val.sharedInjectionData = flow.sharedInjectionData; ReflectionHelpers.ReflectSetField(typeof(DungeonFlow), "m_nodeGuids", new List(ReflectionHelpers.ReflectGetField>(typeof(DungeonFlow), "m_nodeGuids", flow)), val); List list = new List(); ReflectionHelpers.ReflectSetField(typeof(DungeonFlow), "m_nodes", list, val); foreach (DungeonFlowNode allNode in flow.AllNodes) { DungeonFlowNode val2 = DuplicateDungeonFlowNode(allNode); val2.flow = val; list.Add(val2); } return val; } public static DungeonFlowNode DuplicateDungeonFlowNode(DungeonFlowNode node) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0026: 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_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_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: 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_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_0127: 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_0138: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Expected O, but got Unknown DungeonFlowNode val = new DungeonFlowNode(node.flow); val.isSubchainStandin = node.isSubchainStandin; val.nodeType = node.nodeType; val.roomCategory = node.roomCategory; val.percentChance = node.percentChance; val.priority = node.priority; val.overrideExactRoom = node.overrideExactRoom; val.overrideRoomTable = node.overrideRoomTable; val.capSubchain = node.capSubchain; val.subchainIdentifier = node.subchainIdentifier; val.limitedCopiesOfSubchain = node.limitedCopiesOfSubchain; val.maxCopiesOfSubchain = node.maxCopiesOfSubchain; val.subchainIdentifiers = new List(node.subchainIdentifiers); val.receivesCaps = node.receivesCaps; val.isWarpWingEntrance = node.isWarpWingEntrance; val.handlesOwnWarping = node.handlesOwnWarping; val.forcedDoorType = node.forcedDoorType; val.loopForcedDoorType = node.loopForcedDoorType; val.nodeExpands = node.nodeExpands; val.initialChainPrototype = node.initialChainPrototype; val.chainRules = new List(node.chainRules.Count); foreach (ChainRule chainRule in node.chainRules) { val.chainRules.Add(new ChainRule { form = chainRule.form, target = chainRule.target, weight = chainRule.weight, mandatory = chainRule.mandatory }); } val.minChainLength = node.minChainLength; val.maxChainLength = node.maxChainLength; val.minChildrenToBuild = node.minChildrenToBuild; val.maxChildrenToBuild = node.maxChildrenToBuild; val.canBuildDuplicateChildren = node.canBuildDuplicateChildren; val.parentNodeGuid = node.parentNodeGuid; val.childNodeGuids = new List(node.childNodeGuids); val.loopTargetNodeGuid = node.loopTargetNodeGuid; val.loopTargetIsOneWay = node.loopTargetIsOneWay; val.guidAsString = node.guidAsString; val.flow = node.flow; return val; } } public class ExpandUtility { public static void CheckAndFixNextLevelIndex(GameManager instance) { int num = ReflectionHelpers.ReflectGetField(typeof(GameManager), "nextLevelIndex", instance); if (num > 5 || num == 0) { num = ((!(num == 0 || num > 6)) ? 5 : 6); typeof(GameManager).GetField("nextLevelIndex", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(instance, num); } } public static void SetHealth(HealthHaver source, float health, float? maxHealth = null) { FieldInfo field = typeof(HealthHaver).GetField("currentHealth", BindingFlags.Instance | BindingFlags.NonPublic); FieldInfo? field2 = typeof(HealthHaver).GetField("maximumHealth", BindingFlags.Instance | BindingFlags.NonPublic); float num = health; if (maxHealth.HasValue) { num = maxHealth.Value; } field.SetValue(source, health); field2.SetValue(source, num); } public static int GetIDFromClip(string clipName, tk2dSpriteAnimator SpriteAnimator) { if (!string.IsNullOrEmpty(clipName) && Object.op_Implicit((Object)(object)SpriteAnimator)) { tk2dSpriteAnimation library = SpriteAnimator.Library; if (library != null && library.clips?.Length > 0) { for (int i = 0; i < SpriteAnimator.Library.clips.Length; i++) { if (SpriteAnimator.Library.clips[i].name == clipName) { return i; } } } } return 0; } public static int GetIDFromClip(string clipName, tk2dSpriteAnimation SpriteAnimation) { if (!string.IsNullOrEmpty(clipName) && Object.op_Implicit((Object)(object)SpriteAnimation)) { tk2dSpriteAnimationClip[] clips = SpriteAnimation.clips; if (clips != null && clips.Length != 0) { for (int i = 0; i < SpriteAnimation.clips.Length; i++) { if (SpriteAnimation.clips[i].name == clipName) { return i; } } } } return 0; } public static void DisableSuperTinting(tk2dBaseSprite sprite) { Material material = ((BraveBehaviour)sprite).renderer.material; material.mainTexture = ((BraveBehaviour)sprite).renderer.material.mainTexture; material.EnableKeyword("BRIGHTNESS_CLAMP_ON"); material.DisableKeyword("BRIGHTNESS_CLAMP_OFF"); } public static void CorrectForWalls(SpeculativeRigidbody rigidBody, SpeculativeRigidbody[] rigidBodiesToIgnore = null, bool checkForOtherRigidBodies = false) { //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0091: 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) if (!Object.op_Implicit((Object)(object)rigidBody)) { return; } SpeculativeRigidbody[] array = (SpeculativeRigidbody[])((rigidBodiesToIgnore == null) ? ((Array)new SpeculativeRigidbody[0]) : ((Array)rigidBodiesToIgnore)); if (!PhysicsEngine.Instance.OverlapCast(rigidBody, (List)null, true, checkForOtherRigidBodies, (int?)null, (int?)null, false, (Vector2?)null, (Func)null, array)) { return; } Vector2 val = Vector3Extensions.XY(((Component)rigidBody).gameObject.transform.position); IntVector2[] cardinalsAndOrdinals = IntVector2.CardinalsAndOrdinals; int num = 0; int num2 = 1; do { for (int i = 0; i < cardinalsAndOrdinals.Length; i++) { ((Component)rigidBody).gameObject.transform.position = Vector2.op_Implicit(val + PhysicsEngine.PixelToUnit(cardinalsAndOrdinals[i] * num2)); rigidBody.Reinitialize(); if (!PhysicsEngine.Instance.OverlapCast(rigidBody, (List)null, true, checkForOtherRigidBodies, (int?)null, (int?)null, false, (Vector2?)null, (Func)null, array)) { return; } } num2++; num++; } while (num <= 200); Debug.LogError((object)"EX: FREEZE AVERTED! TELL APACHE! (you're welcome) 147"); } public static void SetPlayerIsStealthed(PlayerController player, bool value, string reason, bool showStealthVFX = false) { ((GameActor)player).SetIsStealthed(value, reason); if (value && !showStealthVFX) { GameObject val = ReflectionHelpers.ReflectGetField(typeof(GameActor), "m_stealthVfx", player); if (Object.op_Implicit((Object)(object)val)) { Object.Destroy((Object)(object)val); } } } public static GameObject AttachSpriteBobber(GameObject parentObject, Vector3 offset, bool attached = true, bool alreadyMiddleCenter = false, bool useHitbox = false) { //IL_004d: 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_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007a: 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_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) GameObject val = SpawnManager.SpawnVFX(MrCap.MrCapVFX, false); tk2dBaseSprite component = val.GetComponent(); SpeculativeRigidbody component2 = parentObject.GetComponent(); tk2dBaseSprite component3 = parentObject.GetComponent(); Vector3 val2 = ((!useHitbox || !Object.op_Implicit((Object)(object)component2) || component2.HitboxPixelCollider == null) ? Vector2Extensions.ToVector3ZUp(component3.WorldCenter, 0f) : Vector2Extensions.ToVector3ZUp(component2.HitboxPixelCollider.UnitCenter, 0f)); if (!alreadyMiddleCenter) { component.PlaceAtPositionByAnchor(val2 + offset, (Anchor)4); } else { ((BraveBehaviour)component).transform.position = val2 + offset; } if (attached) { val.transform.parent = parentObject.transform; component.HeightOffGround = 0.2f; component3.AttachRenderer(component); if (Object.op_Implicit((Object)(object)parentObject.GetComponent())) { SmartOverheadVFXController component4 = val.GetComponent(); if (Object.op_Implicit((Object)(object)component4)) { component4.Initialize(parentObject.GetComponent(), offset); } } } if (!alreadyMiddleCenter) { val.transform.localPosition = dfVectorExtensions.QuantizeFloor(val.transform.localPosition, 0.0625f); } return val; } public static GameObject AttachEffect(GameObject sourceEffect, GameObject parentObject, Vector3 offset, bool attached = true, bool alreadyMiddleCenter = false, bool useHitbox = false, bool ignorePools = false, float heightOffGround = 0.2f) { //IL_004a: 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_0059: 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_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_0060: 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_0063: 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_0042: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) GameObject val = SpawnManager.SpawnVFX(sourceEffect, ignorePools); tk2dBaseSprite component = val.GetComponent(); SpeculativeRigidbody component2 = parentObject.GetComponent(); tk2dBaseSprite component3 = parentObject.GetComponent(); Vector3 val2 = ((!useHitbox || !Object.op_Implicit((Object)(object)component2) || component2.HitboxPixelCollider == null) ? Vector2Extensions.ToVector3ZUp(component3.WorldCenter, 0f) : Vector2Extensions.ToVector3ZUp(component2.HitboxPixelCollider.UnitCenter, 0f)); if (!alreadyMiddleCenter) { component.PlaceAtPositionByAnchor(val2 + offset, (Anchor)4); } else { ((BraveBehaviour)component).transform.position = val2 + offset; } if (attached) { val.transform.parent = parentObject.transform; component.HeightOffGround = heightOffGround; component3.AttachRenderer(component); if (Object.op_Implicit((Object)(object)parentObject.GetComponent())) { SmartOverheadVFXController component4 = val.GetComponent(); if (Object.op_Implicit((Object)(object)component4)) { component4.Initialize(parentObject.GetComponent(), offset); } } } if (!alreadyMiddleCenter) { val.transform.localPosition = dfVectorExtensions.QuantizeFloor(val.transform.localPosition, 0.0625f); } return val; } public static void TriggerInvulnerableFrames(PlayerController targetPlayer, bool PlayerIsActuallyInvulnerable = true, float incorporealityTime = 1f) { if (!((incorporealityTime <= 0f) | ReflectionHelpers.ReflectGetField(typeof(HealthHaver), "m_isIncorporeal", ((BraveBehaviour)targetPlayer).healthHaver))) { if (PlayerIsActuallyInvulnerable) { ((BraveBehaviour)targetPlayer).healthHaver.TriggerInvulnerabilityPeriod(incorporealityTime); } ((MonoBehaviour)targetPlayer).StartCoroutine(IncorporealityOnHit(((BraveBehaviour)targetPlayer).healthHaver, incorporealityTime)); } } public static IEnumerator IncorporealityOnHit(HealthHaver healthHaver, float InVulnTimeOverride = 0f) { typeof(HealthHaver).GetField("m_isIncorporeal", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(healthHaver, true); if (!ReflectionHelpers.ReflectGetField(typeof(HealthHaver), "isPlayerCharacter", healthHaver)) { Debug.LogError((object)"Incorporeality is currently only supported on the player.", (Object)(object)healthHaver); } PlayerController player = ((Component)healthHaver).gameObject.GetComponent(); if ((Object)(object)player == (Object)null) { Debug.LogError((object)"Failed to incorporeal something..."); yield break; } int num = CollisionMask.LayerToMask((CollisionLayer)3, (CollisionLayer)2, (CollisionLayer)4); ((BraveBehaviour)player).specRigidbody.AddCollisionLayerIgnoreOverride(num); yield return null; float timer = 0f; float subtimer = 0f; float inVulnTime = healthHaver.incorporealityTime; if (InVulnTimeOverride > 0f) { inVulnTime = InVulnTimeOverride; } while (timer < inVulnTime) { while (timer < inVulnTime) { timer += BraveTime.DeltaTime; subtimer += BraveTime.DeltaTime; if (subtimer > 0.12f) { player.IsVisible = false; subtimer -= 0.12f; break; } yield return null; } while (timer < inVulnTime) { timer += BraveTime.DeltaTime; subtimer += BraveTime.DeltaTime; if (subtimer > 0.12f) { player.IsVisible = true; subtimer -= 0.12f; break; } yield return null; } } ReflectionHelpers.InvokeMethod(typeof(HealthHaver), "EndIncorporealityOnHit", healthHaver); } public static List FindAllValidLocations(Dungeon dungeon, RoomHandler currentRoom, int Clearence = 1, int ExitClearence = 10, bool avoidExits = false, bool avoidPits = true, bool PositionRelativeToRoom = false) { //IL_001c: 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_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0274: Unknown result type (might be due to invalid IL or missing references) //IL_0279: Unknown result type (might be due to invalid IL or missing references) //IL_027d: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_009a: 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_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_028e: Unknown result type (might be due to invalid IL or missing references) //IL_0293: Unknown result type (might be due to invalid IL or missing references) //IL_0297: Unknown result type (might be due to invalid IL or missing references) //IL_029c: Unknown result type (might be due to invalid IL or missing references) //IL_029e: Unknown result type (might be due to invalid IL or missing references) //IL_029f: Unknown result type (might be due to invalid IL or missing references) //IL_02ae: 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) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Invalid comparison between Unknown and I4 //IL_0205: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Invalid comparison between Unknown and I4 //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) List list = new List(); if ((Object)(object)dungeon == (Object)null || currentRoom == null) { return list; } IntVector2 basePosition = currentRoom.area.basePosition; IntVector2 basePosition2 = currentRoom.area.basePosition; Vector2 val = ((IntVector2)(ref currentRoom.area.basePosition)).ToVector2(); Vector2 val2 = val; bool flag = false; int num = 0; int num2 = 0; int num3 = 0; int num4 = 0; for (num3 = 0; num3 < currentRoom.area.dimensions.x; num3++) { for (num4 = 0; num4 < currentRoom.area.dimensions.y; num4++) { try { basePosition2 = new IntVector2(currentRoom.area.basePosition.x + num3, currentRoom.area.basePosition.y + num4); if (list.Contains(basePosition2)) { continue; } basePosition = basePosition2; RoomHandler absoluteRoomFromPosition = dungeon.data.GetAbsoluteRoomFromPosition(basePosition2); for (num = 0; num < Clearence; num++) { for (num2 = 0; num2 < Clearence; num2++) { basePosition = basePosition2 + new IntVector2(num, num2); if (dungeon.data.CheckInBoundsAndValid(basePosition)) { CellData val3 = dungeon.data[basePosition]; if ((val3.parentRoom == null) | ((int)val3.type != 2) | val3.isOccupied | !val3.IsPassable) { flag = true; break; } if ((absoluteRoomFromPosition != currentRoom) | val3.HasPitNeighbor(dungeon.data)) { flag = true; break; } if ((int)val3.cellVisualData.floorType == 1) { flag = true; break; } if (val3.HasWallNeighbor(true, true)) { flag = true; break; } flag = false; continue; } flag = true; break; } if (flag) { break; } } if (!flag && avoidExits) { for (num = 0; num < ExitClearence; num++) { for (num2 = 0; num2 < ExitClearence; num2++) { basePosition = basePosition2 + new IntVector2(num, num2); if (dungeon.data.CheckInBoundsAndValid(basePosition) && dungeon.data[basePosition].isExitCell) { flag = true; break; } flag = false; } if (flag) { break; } } } if (!flag) { if (PositionRelativeToRoom) { list.Add(new IntVector2(num3, num4)); } else { list.Add(basePosition2); } } } catch (Exception ex) { if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandFloorDecorator.FindAllValidLocations] Exception while looking for valid cells in current room."); Debug.LogException(ex); } } } } if (list.Count > 1) { for (num3 = 0; num3 < list.Count; num3++) { IntVector2 val4 = list[num3]; val = ((IntVector2)(ref val4)).ToVector2(); for (num4 = num3 + 1; num4 < list.Count; num4++) { val4 = list[num4]; val2 = ((IntVector2)(ref val4)).ToVector2(); if (Vector2.Distance(val, val2) < (float)Clearence) { list.Remove(list[num4]); } } } } return list; } public static GoopDefinition DuplicateGoop(GoopDefinition sourceGoop, string NewGoopName) { //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0088: 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_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Expected O, but got Unknown //IL_0235: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01b3: Unknown result type (might be due to invalid IL or missing references) //IL_02f5: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: Unknown result type (might be due to invalid IL or missing references) //IL_0301: Unknown result type (might be due to invalid IL or missing references) //IL_0306: Unknown result type (might be due to invalid IL or missing references) //IL_036d: Unknown result type (might be due to invalid IL or missing references) //IL_0372: Unknown result type (might be due to invalid IL or missing references) //IL_0379: Unknown result type (might be due to invalid IL or missing references) //IL_037e: Unknown result type (might be due to invalid IL or missing references) //IL_03d8: Unknown result type (might be due to invalid IL or missing references) //IL_03e2: Expected O, but got Unknown //IL_064a: Unknown result type (might be due to invalid IL or missing references) //IL_0654: Expected O, but got Unknown //IL_043b: Unknown result type (might be due to invalid IL or missing references) //IL_0440: Unknown result type (might be due to invalid IL or missing references) //IL_0451: Unknown result type (might be due to invalid IL or missing references) //IL_0456: Unknown result type (might be due to invalid IL or missing references) //IL_04a9: Unknown result type (might be due to invalid IL or missing references) //IL_04ae: Unknown result type (might be due to invalid IL or missing references) //IL_04d5: Unknown result type (might be due to invalid IL or missing references) //IL_04da: Unknown result type (might be due to invalid IL or missing references) //IL_0501: Unknown result type (might be due to invalid IL or missing references) //IL_0506: Unknown result type (might be due to invalid IL or missing references) //IL_0794: Unknown result type (might be due to invalid IL or missing references) //IL_079e: Expected O, but got Unknown //IL_06ad: Unknown result type (might be due to invalid IL or missing references) //IL_06b2: Unknown result type (might be due to invalid IL or missing references) //IL_06c3: Unknown result type (might be due to invalid IL or missing references) //IL_06c8: Unknown result type (might be due to invalid IL or missing references) //IL_06ef: Unknown result type (might be due to invalid IL or missing references) //IL_06f4: Unknown result type (might be due to invalid IL or missing references) //IL_05fd: Unknown result type (might be due to invalid IL or missing references) //IL_0602: 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_0126: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_012d: 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_013e: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Expected O, but got Unknown //IL_0920: Unknown result type (might be due to invalid IL or missing references) //IL_092a: Expected O, but got Unknown //IL_07f7: Unknown result type (might be due to invalid IL or missing references) //IL_07fc: Unknown result type (might be due to invalid IL or missing references) //IL_080d: Unknown result type (might be due to invalid IL or missing references) //IL_0812: Unknown result type (might be due to invalid IL or missing references) //IL_0865: Unknown result type (might be due to invalid IL or missing references) //IL_086a: Unknown result type (might be due to invalid IL or missing references) //IL_0891: Unknown result type (might be due to invalid IL or missing references) //IL_0896: Unknown result type (might be due to invalid IL or missing references) //IL_08bd: Unknown result type (might be due to invalid IL or missing references) //IL_08c2: Unknown result type (might be due to invalid IL or missing references) //IL_0a80: Unknown result type (might be due to invalid IL or missing references) //IL_0a8a: Expected O, but got Unknown //IL_0983: Unknown result type (might be due to invalid IL or missing references) //IL_0988: Unknown result type (might be due to invalid IL or missing references) //IL_0999: Unknown result type (might be due to invalid IL or missing references) //IL_099e: Unknown result type (might be due to invalid IL or missing references) //IL_09f1: Unknown result type (might be due to invalid IL or missing references) //IL_09f6: Unknown result type (might be due to invalid IL or missing references) //IL_0a1d: Unknown result type (might be due to invalid IL or missing references) //IL_0a22: Unknown result type (might be due to invalid IL or missing references) //IL_0a49: Unknown result type (might be due to invalid IL or missing references) //IL_0a4e: Unknown result type (might be due to invalid IL or missing references) //IL_0ae3: Unknown result type (might be due to invalid IL or missing references) //IL_0ae8: Unknown result type (might be due to invalid IL or missing references) //IL_0af9: Unknown result type (might be due to invalid IL or missing references) //IL_0afe: Unknown result type (might be due to invalid IL or missing references) //IL_0b51: Unknown result type (might be due to invalid IL or missing references) //IL_0b56: Unknown result type (might be due to invalid IL or missing references) //IL_0b7d: Unknown result type (might be due to invalid IL or missing references) //IL_0b82: Unknown result type (might be due to invalid IL or missing references) //IL_0ba9: Unknown result type (might be due to invalid IL or missing references) //IL_0bae: Unknown result type (might be due to invalid IL or missing references) //IL_0cbb: Unknown result type (might be due to invalid IL or missing references) //IL_0cc0: Unknown result type (might be due to invalid IL or missing references) GoopDefinition val = ScriptableObject.CreateInstance(); if (!Object.op_Implicit((Object)(object)sourceGoop) | string.IsNullOrEmpty(NewGoopName)) { ETGModConsole.Log((object)"[ExpandTheGungeon] ERROR: Source Goop null or no name provided!", false); return val; } ((Object)val).name = NewGoopName; val.goopTexture = sourceGoop.goopTexture; val.worldTexture = sourceGoop.worldTexture; val.usesWorldTextureByDefault = sourceGoop.usesWorldTextureByDefault; val.baseColor32 = sourceGoop.baseColor32; val.usesLifespan = sourceGoop.usesLifespan; val.lifespan = sourceGoop.lifespan; val.fadePeriod = sourceGoop.fadePeriod; val.fadeColor32 = sourceGoop.fadeColor32; val.lifespanRadialReduction = sourceGoop.lifespanRadialReduction; val.damagesPlayers = sourceGoop.damagesPlayers; val.damageToPlayers = sourceGoop.damageToPlayers; val.delayBeforeDamageToPlayers = sourceGoop.delayBeforeDamageToPlayers; val.damageTypes = sourceGoop.damageTypes; val.damagesEnemies = sourceGoop.damagesEnemies; val.damagePerSecondtoEnemies = sourceGoop.damagePerSecondtoEnemies; if (sourceGoop.goopDamageTypeInteractions != null) { val.goopDamageTypeInteractions = new List(); if (sourceGoop.goopDamageTypeInteractions.Count > 0) { foreach (GoopDamageTypeInteraction goopDamageTypeInteraction in sourceGoop.goopDamageTypeInteractions) { val.goopDamageTypeInteractions.Add(new GoopDamageTypeInteraction { damageType = goopDamageTypeInteraction.damageType, electrifiesGoop = goopDamageTypeInteraction.electrifiesGoop, freezesGoop = goopDamageTypeInteraction.freezesGoop, ignitionMode = goopDamageTypeInteraction.ignitionMode }); } } } val.usesAmbientGoopFX = sourceGoop.usesAmbientGoopFX; val.ambientGoopFXChance = sourceGoop.ambientGoopFXChance; val.ambientGoopFX = new VFXPool(); if (sourceGoop.ambientGoopFX != null) { val.ambientGoopFX.type = sourceGoop.ambientGoopFX.type; if (sourceGoop.ambientGoopFX.effects != null && sourceGoop.ambientGoopFX.effects.Length != 0) { List list = new List(); VFXComplex[] effects = sourceGoop.ambientGoopFX.effects; foreach (VFXComplex item in effects) { list.Add(item); } val.ambientGoopFX.effects = list.ToArray(); } else { val.ambientGoopFX.effects = (VFXComplex[])(object)new VFXComplex[0]; } } else { val.ambientGoopFX.type = (VFXPoolType)0; val.ambientGoopFX.effects = (VFXComplex[])(object)new VFXComplex[0]; } val.usesAcidAudio = sourceGoop.usesAcidAudio; val.isOily = sourceGoop.isOily; val.usesWaterVfx = sourceGoop.usesWaterVfx; val.eternal = sourceGoop.eternal; val.usesOverrideOpaqueness = sourceGoop.usesOverrideOpaqueness; val.CanBeIgnited = sourceGoop.CanBeIgnited; val.igniteSpreadTime = sourceGoop.igniteSpreadTime; val.SelfIgnites = sourceGoop.SelfIgnites; val.selfIgniteDelay = sourceGoop.selfIgniteDelay; val.playerStepsChangeLifetime = sourceGoop.playerStepsChangeLifetime; val.playerStepsLifetime = sourceGoop.playerStepsLifetime; val.fireDamageToPlayer = sourceGoop.fireDamageToPlayer; val.fireDamagePerSecondToEnemies = sourceGoop.fireDamagePerSecondToEnemies; val.fireBurnsEnemies = sourceGoop.fireBurnsEnemies; val.igniteColor32 = sourceGoop.igniteColor32; val.fireColor32 = sourceGoop.fireColor32; val.UsesGreenFire = sourceGoop.UsesGreenFire; val.CanBeElectrified = sourceGoop.CanBeElectrified; val.electrifiedDamageToPlayer = sourceGoop.electrifiedDamageToPlayer; val.electrifiedDamagePerSecondToEnemies = sourceGoop.electrifiedDamagePerSecondToEnemies; val.electrifiedTime = sourceGoop.electrifiedTime; val.CanBeFrozen = sourceGoop.CanBeFrozen; val.freezeLifespan = sourceGoop.freezeLifespan; val.freezeSpreadTime = sourceGoop.freezeSpreadTime; val.prefreezeColor32 = sourceGoop.prefreezeColor32; val.frozenColor32 = sourceGoop.frozenColor32; val.AppliesSpeedModifier = sourceGoop.AppliesSpeedModifier; val.AppliesSpeedModifierContinuously = sourceGoop.AppliesSpeedModifierContinuously; val.AppliesDamageOverTime = sourceGoop.AppliesDamageOverTime; val.DrainsAmmo = sourceGoop.DrainsAmmo; val.PercentAmmoDrainPerSecond = sourceGoop.PercentAmmoDrainPerSecond; val.AppliesCharm = sourceGoop.AppliesCharm; val.AppliesCheese = sourceGoop.AppliesCheese; val.fireEffect = new GameActorFireEffect(); if (sourceGoop.fireEffect != null) { ((GameActorEffect)val.fireEffect).AffectsPlayers = ((GameActorEffect)sourceGoop.fireEffect).AffectsPlayers; ((GameActorEffect)val.fireEffect).AffectsEnemies = ((GameActorEffect)sourceGoop.fireEffect).AffectsEnemies; ((GameActorEffect)val.fireEffect).effectIdentifier = ((GameActorEffect)sourceGoop.fireEffect).effectIdentifier; ((GameActorEffect)val.fireEffect).resistanceType = ((GameActorEffect)sourceGoop.fireEffect).resistanceType; ((GameActorEffect)val.fireEffect).stackMode = ((GameActorEffect)sourceGoop.fireEffect).stackMode; ((GameActorEffect)val.fireEffect).duration = ((GameActorEffect)sourceGoop.fireEffect).duration; ((GameActorEffect)val.fireEffect).maxStackedDuration = ((GameActorEffect)sourceGoop.fireEffect).maxStackedDuration; ((GameActorEffect)val.fireEffect).AppliesTint = ((GameActorEffect)sourceGoop.fireEffect).AppliesTint; ((GameActorEffect)val.fireEffect).TintColor = ((GameActorEffect)sourceGoop.fireEffect).TintColor; ((GameActorEffect)val.fireEffect).AppliesDeathTint = ((GameActorEffect)sourceGoop.fireEffect).AppliesDeathTint; ((GameActorEffect)val.fireEffect).DeathTintColor = ((GameActorEffect)sourceGoop.fireEffect).DeathTintColor; ((GameActorEffect)val.fireEffect).AppliesOutlineTint = ((GameActorEffect)sourceGoop.fireEffect).AppliesOutlineTint; ((GameActorEffect)val.fireEffect).OutlineTintColor = ((GameActorEffect)sourceGoop.fireEffect).OutlineTintColor; ((GameActorEffect)val.fireEffect).OverheadVFX = ((GameActorEffect)sourceGoop.fireEffect).OverheadVFX; ((GameActorEffect)val.fireEffect).PlaysVFXOnActor = ((GameActorEffect)sourceGoop.fireEffect).PlaysVFXOnActor; ((GameActorHealthEffect)val.fireEffect).DamagePerSecondToEnemies = ((GameActorHealthEffect)sourceGoop.fireEffect).DamagePerSecondToEnemies; ((GameActorHealthEffect)val.fireEffect).ignitesGoops = ((GameActorHealthEffect)sourceGoop.fireEffect).ignitesGoops; val.fireEffect.FlameVfx = new List(); if (sourceGoop.fireEffect.FlameVfx != null && sourceGoop.fireEffect.FlameVfx.Count > 0) { foreach (GameObject item2 in sourceGoop.fireEffect.FlameVfx) { val.fireEffect.FlameVfx.Add(item2); } } val.fireEffect.flameNumPerSquareUnit = sourceGoop.fireEffect.flameNumPerSquareUnit; val.fireEffect.flameBuffer = sourceGoop.fireEffect.flameBuffer; val.fireEffect.flameFpsVariation = sourceGoop.fireEffect.flameFpsVariation; val.fireEffect.flameMoveChance = sourceGoop.fireEffect.flameMoveChance; val.fireEffect.IsGreenFire = sourceGoop.fireEffect.IsGreenFire; } val.SpeedModifierEffect = new GameActorSpeedEffect(); if (sourceGoop.SpeedModifierEffect != null) { ((GameActorEffect)val.SpeedModifierEffect).AffectsPlayers = ((GameActorEffect)sourceGoop.SpeedModifierEffect).AffectsPlayers; ((GameActorEffect)val.SpeedModifierEffect).AffectsEnemies = ((GameActorEffect)sourceGoop.SpeedModifierEffect).AffectsEnemies; ((GameActorEffect)val.SpeedModifierEffect).effectIdentifier = ((GameActorEffect)sourceGoop.SpeedModifierEffect).effectIdentifier; ((GameActorEffect)val.SpeedModifierEffect).resistanceType = ((GameActorEffect)sourceGoop.SpeedModifierEffect).resistanceType; ((GameActorEffect)val.SpeedModifierEffect).stackMode = ((GameActorEffect)sourceGoop.SpeedModifierEffect).stackMode; ((GameActorEffect)val.SpeedModifierEffect).AppliesTint = ((GameActorEffect)sourceGoop.SpeedModifierEffect).AppliesTint; ((GameActorEffect)val.SpeedModifierEffect).TintColor = ((GameActorEffect)sourceGoop.SpeedModifierEffect).TintColor; ((GameActorEffect)val.SpeedModifierEffect).AppliesDeathTint = ((GameActorEffect)sourceGoop.SpeedModifierEffect).AppliesDeathTint; ((GameActorEffect)val.SpeedModifierEffect).AppliesOutlineTint = ((GameActorEffect)sourceGoop.SpeedModifierEffect).AppliesOutlineTint; ((GameActorEffect)val.SpeedModifierEffect).OverheadVFX = ((GameActorEffect)sourceGoop.SpeedModifierEffect).OverheadVFX; ((GameActorEffect)val.SpeedModifierEffect).PlaysVFXOnActor = ((GameActorEffect)sourceGoop.SpeedModifierEffect).PlaysVFXOnActor; val.SpeedModifierEffect.SpeedMultiplier = sourceGoop.SpeedModifierEffect.SpeedMultiplier; val.SpeedModifierEffect.CooldownMultiplier = sourceGoop.SpeedModifierEffect.CooldownMultiplier; val.SpeedModifierEffect.OnlyAffectPlayerWhenGrounded = sourceGoop.SpeedModifierEffect.OnlyAffectPlayerWhenGrounded; } val.HealthModifierEffect = new GameActorHealthEffect(); if (sourceGoop.HealthModifierEffect != null) { ((GameActorEffect)val.HealthModifierEffect).AffectsPlayers = ((GameActorEffect)sourceGoop.HealthModifierEffect).AffectsPlayers; ((GameActorEffect)val.HealthModifierEffect).AffectsEnemies = ((GameActorEffect)sourceGoop.HealthModifierEffect).AffectsEnemies; ((GameActorEffect)val.HealthModifierEffect).effectIdentifier = ((GameActorEffect)sourceGoop.HealthModifierEffect).effectIdentifier; ((GameActorEffect)val.HealthModifierEffect).resistanceType = ((GameActorEffect)sourceGoop.HealthModifierEffect).resistanceType; ((GameActorEffect)val.HealthModifierEffect).stackMode = ((GameActorEffect)sourceGoop.HealthModifierEffect).stackMode; ((GameActorEffect)val.HealthModifierEffect).duration = ((GameActorEffect)sourceGoop.HealthModifierEffect).duration; ((GameActorEffect)val.HealthModifierEffect).maxStackedDuration = ((GameActorEffect)sourceGoop.HealthModifierEffect).maxStackedDuration; ((GameActorEffect)val.HealthModifierEffect).AppliesTint = ((GameActorEffect)sourceGoop.HealthModifierEffect).AppliesTint; ((GameActorEffect)val.HealthModifierEffect).TintColor = ((GameActorEffect)sourceGoop.HealthModifierEffect).TintColor; ((GameActorEffect)val.HealthModifierEffect).AppliesDeathTint = ((GameActorEffect)sourceGoop.HealthModifierEffect).AppliesDeathTint; ((GameActorEffect)val.HealthModifierEffect).DeathTintColor = ((GameActorEffect)sourceGoop.HealthModifierEffect).DeathTintColor; ((GameActorEffect)val.HealthModifierEffect).AppliesOutlineTint = ((GameActorEffect)sourceGoop.HealthModifierEffect).AppliesOutlineTint; ((GameActorEffect)val.HealthModifierEffect).OutlineTintColor = ((GameActorEffect)sourceGoop.HealthModifierEffect).OutlineTintColor; ((GameActorEffect)val.HealthModifierEffect).OverheadVFX = ((GameActorEffect)sourceGoop.HealthModifierEffect).OverheadVFX; ((GameActorEffect)val.HealthModifierEffect).PlaysVFXOnActor = ((GameActorEffect)sourceGoop.HealthModifierEffect).PlaysVFXOnActor; val.HealthModifierEffect.DamagePerSecondToEnemies = sourceGoop.HealthModifierEffect.DamagePerSecondToEnemies; val.HealthModifierEffect.ignitesGoops = sourceGoop.HealthModifierEffect.ignitesGoops; } val.CharmModifierEffect = new GameActorCharmEffect(); if (sourceGoop.CharmModifierEffect != null) { ((GameActorEffect)val.CharmModifierEffect).AffectsPlayers = ((GameActorEffect)sourceGoop.CharmModifierEffect).AffectsPlayers; ((GameActorEffect)val.CharmModifierEffect).AffectsEnemies = ((GameActorEffect)sourceGoop.CharmModifierEffect).AffectsEnemies; ((GameActorEffect)val.CharmModifierEffect).effectIdentifier = ((GameActorEffect)sourceGoop.CharmModifierEffect).effectIdentifier; ((GameActorEffect)val.CharmModifierEffect).resistanceType = ((GameActorEffect)sourceGoop.CharmModifierEffect).resistanceType; ((GameActorEffect)val.CharmModifierEffect).stackMode = ((GameActorEffect)sourceGoop.CharmModifierEffect).stackMode; ((GameActorEffect)val.CharmModifierEffect).duration = ((GameActorEffect)sourceGoop.CharmModifierEffect).duration; ((GameActorEffect)val.CharmModifierEffect).maxStackedDuration = ((GameActorEffect)sourceGoop.CharmModifierEffect).maxStackedDuration; ((GameActorEffect)val.CharmModifierEffect).AppliesTint = ((GameActorEffect)sourceGoop.CharmModifierEffect).AppliesTint; ((GameActorEffect)val.CharmModifierEffect).TintColor = ((GameActorEffect)sourceGoop.CharmModifierEffect).TintColor; ((GameActorEffect)val.CharmModifierEffect).AppliesDeathTint = ((GameActorEffect)sourceGoop.CharmModifierEffect).AppliesDeathTint; ((GameActorEffect)val.CharmModifierEffect).DeathTintColor = ((GameActorEffect)sourceGoop.CharmModifierEffect).DeathTintColor; ((GameActorEffect)val.CharmModifierEffect).AppliesOutlineTint = ((GameActorEffect)sourceGoop.CharmModifierEffect).AppliesOutlineTint; ((GameActorEffect)val.CharmModifierEffect).OutlineTintColor = ((GameActorEffect)sourceGoop.CharmModifierEffect).OutlineTintColor; ((GameActorEffect)val.CharmModifierEffect).OverheadVFX = ((GameActorEffect)sourceGoop.CharmModifierEffect).OverheadVFX; ((GameActorEffect)val.CharmModifierEffect).PlaysVFXOnActor = ((GameActorEffect)sourceGoop.CharmModifierEffect).PlaysVFXOnActor; } val.CheeseModifierEffect = new GameActorCheeseEffect(); if (sourceGoop.CheeseModifierEffect != null) { ((GameActorEffect)val.CheeseModifierEffect).AffectsPlayers = ((GameActorEffect)sourceGoop.CheeseModifierEffect).AffectsPlayers; ((GameActorEffect)val.CheeseModifierEffect).AffectsEnemies = ((GameActorEffect)sourceGoop.CheeseModifierEffect).AffectsEnemies; ((GameActorEffect)val.CheeseModifierEffect).effectIdentifier = ((GameActorEffect)sourceGoop.CheeseModifierEffect).effectIdentifier; ((GameActorEffect)val.CheeseModifierEffect).resistanceType = ((GameActorEffect)sourceGoop.CheeseModifierEffect).resistanceType; ((GameActorEffect)val.CheeseModifierEffect).stackMode = ((GameActorEffect)sourceGoop.CheeseModifierEffect).stackMode; ((GameActorEffect)val.CheeseModifierEffect).duration = ((GameActorEffect)sourceGoop.CheeseModifierEffect).duration; ((GameActorEffect)val.CheeseModifierEffect).maxStackedDuration = ((GameActorEffect)sourceGoop.CheeseModifierEffect).maxStackedDuration; ((GameActorEffect)val.CheeseModifierEffect).AppliesTint = ((GameActorEffect)sourceGoop.CheeseModifierEffect).AppliesTint; ((GameActorEffect)val.CheeseModifierEffect).TintColor = ((GameActorEffect)sourceGoop.CheeseModifierEffect).TintColor; ((GameActorEffect)val.CheeseModifierEffect).AppliesDeathTint = ((GameActorEffect)sourceGoop.CheeseModifierEffect).AppliesDeathTint; ((GameActorEffect)val.CheeseModifierEffect).DeathTintColor = ((GameActorEffect)sourceGoop.CheeseModifierEffect).DeathTintColor; ((GameActorEffect)val.CheeseModifierEffect).AppliesOutlineTint = ((GameActorEffect)sourceGoop.CheeseModifierEffect).AppliesOutlineTint; ((GameActorEffect)val.CheeseModifierEffect).OutlineTintColor = ((GameActorEffect)sourceGoop.CheeseModifierEffect).OutlineTintColor; ((GameActorEffect)val.CheeseModifierEffect).OverheadVFX = ((GameActorEffect)sourceGoop.CheeseModifierEffect).OverheadVFX; ((GameActorEffect)val.CheeseModifierEffect).PlaysVFXOnActor = ((GameActorEffect)sourceGoop.CheeseModifierEffect).PlaysVFXOnActor; val.CheeseModifierEffect.CheeseAmount = sourceGoop.CheeseModifierEffect.CheeseAmount; val.CheeseModifierEffect.CheeseGoop = sourceGoop.CheeseModifierEffect.CheeseGoop; val.CheeseModifierEffect.CheeseGoopRadius = sourceGoop.CheeseModifierEffect.CheeseGoopRadius; val.CheeseModifierEffect.CheeseCrystals = new List(); if (sourceGoop.CheeseModifierEffect.CheeseCrystals != null && sourceGoop.CheeseModifierEffect.CheeseCrystals.Count > 0) { foreach (GameObject cheeseCrystal in sourceGoop.CheeseModifierEffect.CheeseCrystals) { val.CheeseModifierEffect.CheeseCrystals.Add(cheeseCrystal); } } val.CheeseModifierEffect.crystalRot = sourceGoop.CheeseModifierEffect.crystalRot; val.CheeseModifierEffect.crystalVariation = sourceGoop.CheeseModifierEffect.crystalVariation; val.CheeseModifierEffect.debrisMinForce = sourceGoop.CheeseModifierEffect.debrisMinForce; val.CheeseModifierEffect.debrisMaxForce = sourceGoop.CheeseModifierEffect.debrisMaxForce; val.CheeseModifierEffect.debrisAngleVariance = sourceGoop.CheeseModifierEffect.debrisAngleVariance; val.CheeseModifierEffect.vfxExplosion = sourceGoop.CheeseModifierEffect.vfxExplosion; } return val; } public static DungeonPlaceable DuplicateDungoenPlaceable(DungeonPlaceable sourcePlaceable) { //IL_00c0: 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_00d1: 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_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Expected O, but got Unknown //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0154: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_01af: 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_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01d6: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: Unknown result type (might be due to invalid IL or missing references) //IL_01f0: Unknown result type (might be due to invalid IL or missing references) //IL_01fd: Unknown result type (might be due to invalid IL or missing references) //IL_0200: Unknown result type (might be due to invalid IL or missing references) //IL_0205: Unknown result type (might be due to invalid IL or missing references) //IL_020a: Unknown result type (might be due to invalid IL or missing references) //IL_020d: 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_0229: Expected O, but got Unknown //IL_0261: Unknown result type (might be due to invalid IL or missing references) //IL_0266: Unknown result type (might be due to invalid IL or missing references) //IL_0273: Unknown result type (might be due to invalid IL or missing references) //IL_0280: Unknown result type (might be due to invalid IL or missing references) //IL_0283: Unknown result type (might be due to invalid IL or missing references) //IL_0288: Unknown result type (might be due to invalid IL or missing references) //IL_0292: Expected O, but got Unknown DungeonPlaceable val = ScriptableObject.CreateInstance(); val.width = sourcePlaceable.width; val.height = sourcePlaceable.height; val.isPassable = sourcePlaceable.isPassable; val.roomSequential = sourcePlaceable.roomSequential; val.respectsEncounterableDifferentiator = sourcePlaceable.respectsEncounterableDifferentiator; val.UsePrefabTransformOffset = sourcePlaceable.UsePrefabTransformOffset; val.MarkSpawnedItemsAsRatIgnored = sourcePlaceable.MarkSpawnedItemsAsRatIgnored; val.DebugThisPlaceable = sourcePlaceable.DebugThisPlaceable; val.IsAnnexTable = sourcePlaceable.IsAnnexTable; val.variantTiers = new List(); if (sourcePlaceable.variantTiers != null && sourcePlaceable.variantTiers.Count > 0) { for (int i = 0; i < sourcePlaceable.variantTiers.Count; i++) { DungeonPlaceableVariant val2 = sourcePlaceable.variantTiers[i]; List list = new List(); List list2 = new List(); val.variantTiers.Add(new DungeonPlaceableVariant { percentChance = val2.percentChance, unitOffset = val2.unitOffset, nonDatabasePlaceable = val2.nonDatabasePlaceable, enemyPlaceableGuid = val2.enemyPlaceableGuid, forceBlackPhantom = val2.forceBlackPhantom, addDebrisObject = val2.addDebrisObject }); DungeonPlaceableVariant val3 = val.variantTiers[i]; if (val2.prerequisites != null && val2.prerequisites.Length != 0) { DungeonPrerequisite[] prerequisites = val2.prerequisites; foreach (DungeonPrerequisite val4 in prerequisites) { list.Add(new DungeonPrerequisite { comparisonValue = val4.comparisonValue, encounteredObjectGuid = val4.encounteredObjectGuid, encounteredRoom = val4.encounteredRoom, maxToCheck = val4.maxToCheck, prerequisiteOperation = val4.prerequisiteOperation, prerequisiteType = val4.prerequisiteType, requireCharacter = val4.requireCharacter, requiredCharacter = val4.requiredCharacter, requireDemoMode = val4.requireDemoMode, requiredNumberOfEncounters = val4.requiredNumberOfEncounters, requiredTileset = val4.requiredTileset, requireFlag = val4.requireFlag, requireTileset = val4.requireTileset, saveFlagToCheck = val4.saveFlagToCheck, statToCheck = val4.statToCheck, useSessionStatValue = val4.useSessionStatValue }); } } if (val2.materialRequirements != null && val2.materialRequirements.Length != 0) { DungeonPlaceableRoomMaterialRequirement[] materialRequirements = val2.materialRequirements; foreach (DungeonPlaceableRoomMaterialRequirement val5 in materialRequirements) { list2.Add(new DungeonPlaceableRoomMaterialRequirement { RequireMaterial = val5.RequireMaterial, RoomMaterial = val5.RoomMaterial, TargetTileset = val5.TargetTileset }); } } val3.prerequisites = list.ToArray(); val3.materialRequirements = list2.ToArray(); } } return val; } public static void SpawnCustomCurrency(Vector2 centerPoint, int amountToDrop, int currencyItemID) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_003f: 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_0046: 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_0052: 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_005d: 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_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) List customCurrencyToDrop = GetCustomCurrencyToDrop(currencyItemID, amountToDrop); float num = 360f / (float)customCurrencyToDrop.Count; Vector3 up = Vector3.up; List list = new List(); for (int i = 0; i < customCurrencyToDrop.Count; i++) { Vector3 val = Quaternion.Euler(0f, 0f, num * (float)i) * up; val *= 2f; GameObject obj = SpawnManager.SpawnDebris(customCurrencyToDrop[i], Vector2Extensions.ToVector3ZUp(centerPoint, centerPoint.y), Quaternion.identity); CurrencyPickup component = obj.GetComponent(); component.PreventPickup = true; list.Add(component); DebrisObject orAddComponent = GameObjectExtensions.GetOrAddComponent(obj); orAddComponent.OnGrounded = (Action)Delegate.Combine(orAddComponent.OnGrounded, (Action)delegate(DebrisObject sourceDebris) { ((Component)sourceDebris).GetComponent().PreventPickup = false; sourceDebris.OnGrounded = null; }); orAddComponent.shouldUseSRBMotion = true; orAddComponent.angularVelocity = 0f; ((EphemeralObject)orAddComponent).Priority = (EphemeralPriority)0; orAddComponent.Trigger(Vector3Extensions.WithZ(val, 2f) * Random.Range(1.5f, 2.125f), 0.05f, 1f); orAddComponent.canRotate = false; } } public static List GetCustomCurrencyToDrop(int itemID, int amountToDrop) { List list = new List(); PickupObject byId = PickupObjectDatabase.GetById(itemID); if (!Object.op_Implicit((Object)(object)byId)) { return list; } int currencyValue = ((Component)PickupObjectDatabase.GetById(itemID)).GetComponent().currencyValue; while (amountToDrop > 0) { GameObject val = null; if (amountToDrop >= currencyValue) { amountToDrop -= currencyValue; val = ((Component)byId).gameObject; } if (Object.op_Implicit((Object)(object)val)) { list.Add(val); } } return list; } public static SerializedPathNode GeneratePathNode(IntVector2 position, SerializedNodePlacement placement, bool usesAlternateTarget = false, float delayTime = 0f, int alternateTargetPathIndex = -1, int alternateTargetNodeIndex = -1) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_000a: 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_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) SerializedPathNode result = default(SerializedPathNode); result.position = position; result.delayTime = delayTime; result.placement = placement; result.UsesAlternateTarget = usesAlternateTarget; result.AlternateTargetPathIndex = alternateTargetPathIndex; result.AlternateTargetNodeIndex = alternateTargetNodeIndex; return result; } public static void DuplicateComponent(object target, object source, bool SaveOutputToFile = false, string OutputFilepath = null) { if (string.IsNullOrEmpty(JsonUtility.ToJson(source))) { ETGModConsole.Log((object)("[ExpandTheGungeon] ERROR: ExpandUtility.DuplicateComponent returned null due to null source on target: " + target.ToString()), true); return; } if (SaveOutputToFile && !string.IsNullOrEmpty(OutputFilepath)) { Tools.LogStringToFile(JsonUtility.ToJson(source), OutputFilepath); } JsonUtility.FromJsonOverwrite(JsonUtility.ToJson(source), target); } public static void ReflectionShallowCopyFields(T target, T source, BindingFlags flags) { FieldInfo[] fields = typeof(T).GetFields(flags); foreach (FieldInfo fieldInfo in fields) { fieldInfo.SetValue(target, fieldInfo.GetValue(source)); } } public static AIActor BuildNewAIActor(GameObject targetObject, string EnemyName, string EnemyGUID, float EnemyHealth = 15f, tk2dSprite spriteSource = null, Transform gunAttachObjectOverride = null, Vector3? GunAttachOffset = null, int StartingGunID = 38, List customColliders = null, bool RigidBodyCollidesWithTileMap = true, bool RigidBodyCollidesWithOthers = true, bool RigidBodyCanBeCarried = true, bool RigidBodyCanBePushed = false, bool isFakePrefab = false, GameObject ExternalCorpseObject = null, bool EnemyHasNoShooter = false, bool EnemyHasNoCorpse = false) { //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: 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_024d: 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_0278: Unknown result type (might be due to invalid IL or missing references) //IL_0284: Unknown result type (might be due to invalid IL or missing references) //IL_0154: 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_0329: Unknown result type (might be due to invalid IL or missing references) //IL_032e: Unknown result type (might be due to invalid IL or missing references) //IL_033f: Expected O, but got Unknown //IL_0340: Unknown result type (might be due to invalid IL or missing references) //IL_0345: Unknown result type (might be due to invalid IL or missing references) //IL_0356: Expected O, but got Unknown //IL_01e6: Unknown result type (might be due to invalid IL or missing references) //IL_01ed: Unknown result type (might be due to invalid IL or missing references) //IL_0208: Unknown result type (might be due to invalid IL or missing references) //IL_0216: Unknown result type (might be due to invalid IL or missing references) //IL_0495: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)targetObject) | Object.op_Implicit((Object)(object)targetObject.GetComponent())) { return null; } Transform val = gunAttachObjectOverride; if (!Object.op_Implicit((Object)(object)val) && !EnemyHasNoShooter && Object.op_Implicit((Object)(object)targetObject.transform.Find("GunAttachPoint"))) { val = targetObject.transform.Find("GunAttachPoint"); if (GunAttachOffset.HasValue) { ((Component)val).transform.localPosition = GunAttachOffset.Value; } } else if (Object.op_Implicit((Object)(object)val) && !EnemyHasNoShooter && !Object.op_Implicit((Object)(object)targetObject.transform.Find("GunAttachPoint"))) { if (GunAttachOffset.HasValue) { ((Component)val).transform.position = GunAttachOffset.Value; } else { ((Component)val).transform.position = new Vector3(0.3125f, 0.25f, 0f); } ((Component)val).transform.parent = targetObject.transform; } else if (!Object.op_Implicit((Object)(object)val) && !EnemyHasNoShooter && !Object.op_Implicit((Object)(object)targetObject.transform.Find("GunAttachPoint"))) { val = new GameObject("GunAttachPoint") { layer = 0 }.transform; if (GunAttachOffset.HasValue) { ((Component)val).transform.position = GunAttachOffset.Value; } else { ((Component)val).transform.position = new Vector3(0.3125f, 0.25f, 0f); } ((Component)val).transform.parent = targetObject.transform; } if (!Object.op_Implicit((Object)(object)targetObject.GetComponent()) && Object.op_Implicit((Object)(object)spriteSource)) { DuplicateComponent(targetObject.AddComponent(), spriteSource); } if (!Object.op_Implicit((Object)(object)targetObject.GetComponent())) { if (customColliders != null) { foreach (PixelCollider customCollider in customColliders) { int manualWidth = customCollider.ManualWidth; int manualHeight = customCollider.ManualHeight; int manualOffsetX = customCollider.ManualOffsetX; int manualOffsetY = customCollider.ManualOffsetY; GenerateOrAddToRigidBody(targetObject, customCollider.CollisionLayer, customCollider.ColliderGenerationMode, RigidBodyCollidesWithTileMap, RigidBodyCollidesWithOthers, RigidBodyCanBeCarried, RigidBodyCanBePushed, RecheckTriggers: false, customCollider.IsTrigger, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(manualWidth, manualHeight), (IntVector2?)new IntVector2(manualOffsetX, manualOffsetY)); } } else { GenerateOrAddToRigidBody(targetObject, (CollisionLayer)3, (PixelColliderGeneration)0, collideWithTileMap: true, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(12, 4), (IntVector2?)new IntVector2(5, 0)); GenerateOrAddToRigidBody(targetObject, (CollisionLayer)2, (PixelColliderGeneration)0, collideWithTileMap: true, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(12, 23), (IntVector2?)new IntVector2(5, 0)); } SpeculativeRigidbody component = targetObject.GetComponent(); tk2dSprite component2 = targetObject.GetComponent(); if (customColliders == null && Object.op_Implicit((Object)(object)component2)) { component.PixelColliders[1].Sprite = (tk2dBaseSprite)(object)component2; } } if (!Object.op_Implicit((Object)(object)targetObject.GetComponent())) { GenerateSpriteAnimator(targetObject, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true, IsFrameBlendedAnimation: false, 0f, 0f); } if (!Object.op_Implicit((Object)(object)targetObject.GetComponent())) { GenerateHealthHaver(targetObject, EnemyHealth, disableAnimator: false, explodesOnDeath: false, (DeathType)1, flashesOnDamage: true, exploderSpawnsItem: false, isCorruptedObject: false, isRatNPC: false, skipAnimatorCheck: true, buildLists: true); } if (!Object.op_Implicit((Object)(object)targetObject.GetComponent())) { targetObject.AddComponent(); } HitEffectHandler component3 = targetObject.GetComponent(); component3.overrideHitEffect = new VFXComplex { effects = (VFXObject[])(object)new VFXObject[0] }; component3.overrideHitEffectPool = new VFXPool { effects = (VFXComplex[])(object)new VFXComplex[0] }; component3.additionalHitEffects = (AdditionalHitEffect[])(object)new AdditionalHitEffect[0]; component3.SuppressAllHitEffects = false; if (!Object.op_Implicit((Object)(object)targetObject.GetComponent())) { targetObject.AddComponent(); } KnockbackDoer component4 = targetObject.GetComponent(); component4.weight = 35f; component4.deathMultiplier = 2.5f; component4.knockbackWhileReflecting = false; component4.shouldBounce = true; component4.collisionDecay = 0.5f; if (!Object.op_Implicit((Object)(object)targetObject.GetComponent())) { GenerateBlankAIAnimator(targetObject); } if (!Object.op_Implicit((Object)(object)targetObject.GetComponent())) { targetObject.AddComponent(); } targetObject.GetComponent().SuppressPlayerEnteredRoom = false; AIActor orLoadByGuid = EnemyDatabase.GetOrLoadByGuid("01972dee89fc4404a5c408d50007dad5"); if ((!Object.op_Implicit((Object)(object)targetObject.GetComponent()) | !Object.op_Implicit((Object)(object)targetObject.GetComponent())) && !EnemyHasNoShooter) { DuplicateAIShooterAndAIBulletBank(targetObject, ((Component)orLoadByGuid).gameObject.GetComponent(), ((Component)orLoadByGuid).gameObject.GetComponent(), StartingGunID, ((Component)val).transform); } AIActor val2 = targetObject.AddComponent(); DuplicateComponent(val2, orLoadByGuid); ((GameActor)val2).ActorName = EnemyName; ((GameActor)val2).OverrideDisplayName = EnemyName; val2.EnemyId = Random.Range(10000, 99999); val2.EnemyGuid = EnemyGUID; val2.ForcedPositionInAmmonomicon = -1; if (EnemyHasNoCorpse) { val2.CorpseObject = null; val2.CorpseShadow = false; val2.TransferShadowToCorpse = false; val2.shadowDeathType = (ShadowDeathType)10; } else if (Object.op_Implicit((Object)(object)ExternalCorpseObject)) { val2.CorpseObject = ExternalCorpseObject; } orLoadByGuid = null; return val2; } public static tk2dSpriteAnimator DuplicateSpriteAnimator(GameObject targetObject, tk2dSpriteAnimator sourceAnimator, bool duplicateAnimationData = false, tk2dSpriteCollectionData overrideSpriteCollection = null) { tk2dSpriteAnimator val = ((!Object.op_Implicit((Object)(object)targetObject.GetComponent())) ? targetObject.AddComponent() : targetObject.GetComponent()); if (!string.IsNullOrEmpty(((Object)sourceAnimator).name)) { ((Object)val).name = ((Object)sourceAnimator).name; } val.DefaultClipId = sourceAnimator.DefaultClipId; val.AdditionalCameraVisibilityRadius = sourceAnimator.AdditionalCameraVisibilityRadius; val.AnimateDuringBossIntros = sourceAnimator.AnimateDuringBossIntros; val.AlwaysIgnoreTimeScale = sourceAnimator.AlwaysIgnoreTimeScale; val.ForceSetEveryFrame = sourceAnimator.ForceSetEveryFrame; val.playAutomatically = sourceAnimator.playAutomatically; val.IsFrameBlendedAnimation = sourceAnimator.IsFrameBlendedAnimation; val.clipTime = sourceAnimator.clipTime; val.deferNextStartClip = sourceAnimator.deferNextStartClip; if (!duplicateAnimationData) { val.Library = sourceAnimator.Library; } else if ((Object)(object)sourceAnimator.Library != (Object)null && sourceAnimator.Library.clips != null) { tk2dSpriteAnimation val2 = ((!Object.op_Implicit((Object)(object)targetObject.GetComponent())) ? targetObject.AddComponent() : targetObject.GetComponent()); List list = new List(); tk2dSpriteAnimationClip[] clips = sourceAnimator.Library.clips; foreach (tk2dSpriteAnimationClip sourceClip in clips) { list.Add(DuplicateAnimationClip(sourceClip, overrideSpriteCollection)); } val2.clips = list.ToArray(); } return val; } public static void DuplicateSpriteAnimator(tk2dSpriteAnimator targetAnimator, tk2dSpriteAnimator sourceAnimator, bool duplicateAnimationData = false) { if (!string.IsNullOrEmpty(((Object)sourceAnimator).name)) { ((Object)targetAnimator).name = ((Object)sourceAnimator).name; } targetAnimator.DefaultClipId = sourceAnimator.DefaultClipId; targetAnimator.AdditionalCameraVisibilityRadius = sourceAnimator.AdditionalCameraVisibilityRadius; targetAnimator.AnimateDuringBossIntros = sourceAnimator.AnimateDuringBossIntros; targetAnimator.AlwaysIgnoreTimeScale = sourceAnimator.AlwaysIgnoreTimeScale; targetAnimator.ForceSetEveryFrame = sourceAnimator.ForceSetEveryFrame; targetAnimator.playAutomatically = sourceAnimator.playAutomatically; targetAnimator.IsFrameBlendedAnimation = sourceAnimator.IsFrameBlendedAnimation; targetAnimator.clipTime = sourceAnimator.clipTime; targetAnimator.deferNextStartClip = sourceAnimator.deferNextStartClip; if (!duplicateAnimationData) { targetAnimator.Library = sourceAnimator.Library; } else if ((Object)(object)sourceAnimator.Library != (Object)null && sourceAnimator.Library.clips != null) { tk2dSpriteAnimation val = ((!Object.op_Implicit((Object)(object)((Component)targetAnimator).gameObject.GetComponent())) ? ((Component)targetAnimator).gameObject.AddComponent() : ((Component)targetAnimator).gameObject.GetComponent()); List list = new List(); tk2dSpriteAnimationClip[] clips = sourceAnimator.Library.clips; foreach (tk2dSpriteAnimationClip sourceClip in clips) { list.Add(DuplicateAnimationClip(sourceClip)); } val.clips = list.ToArray(); } } public static ExpandNoteDoer BuildNewCustomSign(GameObject TargetPrefab, GameObject PrefabToClone, string SignName, string SignText) { if (!Object.op_Implicit((Object)(object)TargetPrefab) | !Object.op_Implicit((Object)(object)TargetPrefab.transform.Find("nooto pointo"))) { return null; } Transform textboxSpawnPoint = TargetPrefab.transform.Find("nooto pointo"); Transform val = TargetPrefab.transform.Find("Sign_Shadow"); Transform val2 = PrefabToClone.transform.Find("Sign_Shadow"); if (Object.op_Implicit((Object)(object)val) && Object.op_Implicit((Object)(object)val2)) { DuplicateSprite(((Component)val).gameObject.AddComponent(), ((Component)val2).GetComponent()); } DuplicateSprite(TargetPrefab.AddComponent(), PrefabToClone.GetComponent()); DuplicateRigidBody(TargetPrefab.AddComponent(), PrefabToClone.GetComponent()); tk2dSpriteAnimator component = PrefabToClone.GetComponent(); tk2dSpriteAnimator obj = TargetPrefab.AddComponent(); obj.Library = component.Library; obj.DefaultClipId = component.DefaultClipId; obj.AdditionalCameraVisibilityRadius = component.AdditionalCameraVisibilityRadius; obj.AnimateDuringBossIntros = component.AnimateDuringBossIntros; obj.AlwaysIgnoreTimeScale = component.AlwaysIgnoreTimeScale; obj.ForceSetEveryFrame = component.ForceSetEveryFrame; obj.playAutomatically = component.playAutomatically; obj.IsFrameBlendedAnimation = component.IsFrameBlendedAnimation; obj.clipTime = component.clipTime; obj.deferNextStartClip = component.deferNextStartClip; DuplicateMajorBreakable(TargetPrefab, PrefabToClone.GetComponent(), new List { ((Component)val).gameObject }); ExpandNoteDoer expandNoteDoer = TargetPrefab.AddComponent(); expandNoteDoer.textboxSpawnPoint = textboxSpawnPoint; ((Object)expandNoteDoer).name = SignName; expandNoteDoer.stringKey = SignText; return expandNoteDoer; } public static MajorBreakable DuplicateMajorBreakable(GameObject TargetObject, MajorBreakable sourceBreakable, List childrenToDestroy = null, int ItemIDToSpawnOnBreak = -1) { //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)TargetObject.GetComponent())) { return null; } MajorBreakable val = TargetObject.AddComponent(); val.HitPoints = sourceBreakable.HitPoints; val.DamageReduction = sourceBreakable.DamageReduction; val.MinHits = sourceBreakable.MinHits; val.EnemyDamageOverride = sourceBreakable.EnemyDamageOverride; val.ImmuneToBeastMode = sourceBreakable.ImmuneToBeastMode; val.ScaleWithEnemyHealth = sourceBreakable.ScaleWithEnemyHealth; val.OnlyExplosions = sourceBreakable.OnlyExplosions; val.IgnoreExplosions = sourceBreakable.IgnoreExplosions; val.GameActorMotionBreaks = sourceBreakable.GameActorMotionBreaks; val.PlayerRollingBreaks = sourceBreakable.PlayerRollingBreaks; val.spawnShards = sourceBreakable.spawnShards; val.distributeShards = sourceBreakable.distributeShards; val.shardClusters = sourceBreakable.shardClusters; val.minShardPercentSpeed = sourceBreakable.minShardPercentSpeed; val.maxShardPercentSpeed = sourceBreakable.maxShardPercentSpeed; val.shardBreakStyle = sourceBreakable.shardBreakStyle; val.usesTemporaryZeroHitPointsState = sourceBreakable.usesTemporaryZeroHitPointsState; val.spriteNameToUseAtZeroHP = sourceBreakable.spriteNameToUseAtZeroHP; val.destroyedOnBreak = sourceBreakable.destroyedOnBreak; if (childrenToDestroy != null) { val.childrenToDestroy = childrenToDestroy; } else { val.childrenToDestroy = new List(0); } val.playsAnimationOnNotBroken = sourceBreakable.playsAnimationOnNotBroken; val.notBreakAnimation = sourceBreakable.notBreakAnimation; val.handlesOwnBreakAnimation = sourceBreakable.handlesOwnBreakAnimation; val.breakAnimation = sourceBreakable.breakAnimation; val.handlesOwnPrebreakFrames = sourceBreakable.handlesOwnPrebreakFrames; val.prebreakFrames = sourceBreakable.prebreakFrames; val.damageVfx = sourceBreakable.damageVfx; val.damageVfxMinTimeBetween = sourceBreakable.damageVfxMinTimeBetween; val.breakVfxParent = sourceBreakable.breakVfxParent; val.delayDamageVfx = sourceBreakable.delayDamageVfx; if (ItemIDToSpawnOnBreak != -1) { val.SpawnItemOnBreak = true; val.ItemIdToSpawnOnBreak = ItemIDToSpawnOnBreak; } else { val.SpawnItemOnBreak = sourceBreakable.SpawnItemOnBreak; val.ItemIdToSpawnOnBreak = sourceBreakable.ItemIdToSpawnOnBreak; } val.HandlePathBlocking = sourceBreakable.HandlePathBlocking; return val; } public static tk2dSpriteCollectionData DuplicateDungeonCollection(GameObject TargetObject, tk2dSpriteCollectionData sourceCollection, string Name) { //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) tk2dSpriteCollectionData val = TargetObject.AddComponent(); val.version = 3; ((Object)val).name = string.Empty; val.materialIdsValid = Object.op_Implicit((Object)(object)sourceCollection); val.needMaterialInstance = Object.op_Implicit((Object)(object)sourceCollection); val.SpriteIDsWithBagelColliders = sourceCollection.SpriteIDsWithBagelColliders; val.SpriteDefinedBagelColliders = sourceCollection.SpriteDefinedBagelColliders; val.SpriteIDsWithAttachPoints = sourceCollection.SpriteIDsWithAttachPoints; val.SpriteDefinedAttachPoints = sourceCollection.SpriteDefinedAttachPoints; val.SpriteIDsWithNeighborDependencies = sourceCollection.SpriteIDsWithNeighborDependencies; val.SpriteDefinedIndexNeighborDependencies = sourceCollection.SpriteDefinedIndexNeighborDependencies; val.SpriteIDsWithAnimationSequences = sourceCollection.SpriteIDsWithAnimationSequences; val.SpriteDefinedAnimationSequences = sourceCollection.SpriteDefinedAnimationSequences; val.premultipliedAlpha = sourceCollection.premultipliedAlpha; val.shouldGenerateTilemapReflectionData = sourceCollection.shouldGenerateTilemapReflectionData; val.materials = sourceCollection.materials; val.textures = sourceCollection.textures; val.pngTextures = sourceCollection.pngTextures; val.materialPngTextureId = sourceCollection.materialPngTextureId; val.textureFilterMode = sourceCollection.textureFilterMode; val.textureMipMaps = sourceCollection.textureMipMaps; val.allowMultipleAtlases = sourceCollection.allowMultipleAtlases; val.spriteCollectionGUID = Guid.NewGuid().ToString(); val.spriteCollectionName = Name; val.assetName = string.Empty; val.loadable = sourceCollection.loadable; val.invOrthoSize = sourceCollection.invOrthoSize; val.halfTargetHeight = sourceCollection.halfTargetHeight; val.buildKey = sourceCollection.buildKey; val.dataGuid = Guid.NewGuid().ToString(); val.managedSpriteCollection = sourceCollection.managedSpriteCollection; val.hasPlatformData = sourceCollection.hasPlatformData; val.spriteCollectionPlatforms = sourceCollection.spriteCollectionPlatforms; val.spriteCollectionPlatformGUIDs = sourceCollection.spriteCollectionPlatformGUIDs; if (sourceCollection.spriteDefinitions != null && sourceCollection.spriteDefinitions.Length < 0) { List list = new List(); tk2dSpriteDefinition[] spriteDefinitions = sourceCollection.spriteDefinitions; foreach (tk2dSpriteDefinition sourceSpriteDefinition in spriteDefinitions) { list.Add(DuplicateSpriteDefinition(sourceSpriteDefinition)); } val.InitDictionary(); } else { val.spriteDefinitions = (tk2dSpriteDefinition[])(object)new tk2dSpriteDefinition[0]; } return val; } public static tk2dSpriteDefinition DuplicateSpriteDefinition(tk2dSpriteDefinition sourceSpriteDefinition) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: 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) //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_0029: 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_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: 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_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_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_0059: 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_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: 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_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0114: 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_0125: 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_013e: Expected O, but got Unknown //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_014f: 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_0160: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: 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_01e8: 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_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_020a: Unknown result type (might be due to invalid IL or missing references) //IL_021b: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Unknown result type (might be due to invalid IL or missing references) //IL_0227: Unknown result type (might be due to invalid IL or missing references) //IL_022c: Unknown result type (might be due to invalid IL or missing references) //IL_023d: Unknown result type (might be due to invalid IL or missing references) //IL_024e: Unknown result type (might be due to invalid IL or missing references) //IL_0264: Expected O, but got Unknown tk2dSpriteDefinition val = new tk2dSpriteDefinition { name = sourceSpriteDefinition.name, boundsDataCenter = sourceSpriteDefinition.boundsDataCenter, boundsDataExtents = sourceSpriteDefinition.boundsDataExtents, untrimmedBoundsDataCenter = sourceSpriteDefinition.untrimmedBoundsDataCenter, untrimmedBoundsDataExtents = sourceSpriteDefinition.untrimmedBoundsDataExtents, texelSize = sourceSpriteDefinition.texelSize, position0 = sourceSpriteDefinition.position0, position1 = sourceSpriteDefinition.position1, position2 = sourceSpriteDefinition.position2, position3 = sourceSpriteDefinition.position3, uvs = sourceSpriteDefinition.uvs, material = sourceSpriteDefinition.material, materialId = sourceSpriteDefinition.materialId, extractRegion = sourceSpriteDefinition.extractRegion, regionX = sourceSpriteDefinition.regionX, regionY = sourceSpriteDefinition.regionY, regionW = sourceSpriteDefinition.regionW, regionH = sourceSpriteDefinition.regionH, flipped = sourceSpriteDefinition.flipped, complexGeometry = sourceSpriteDefinition.complexGeometry, physicsEngine = sourceSpriteDefinition.physicsEngine, colliderType = sourceSpriteDefinition.colliderType, collisionLayer = sourceSpriteDefinition.collisionLayer, colliderVertices = sourceSpriteDefinition.colliderVertices, colliderConvex = sourceSpriteDefinition.colliderConvex, colliderSmoothSphereCollisions = sourceSpriteDefinition.colliderSmoothSphereCollisions }; if (sourceSpriteDefinition.metadata != null) { val.metadata = new TilesetIndexMetadata { type = sourceSpriteDefinition.metadata.type, weight = sourceSpriteDefinition.metadata.weight, dungeonRoomSubType = sourceSpriteDefinition.metadata.dungeonRoomSubType, secondRoomSubType = sourceSpriteDefinition.metadata.secondRoomSubType, thirdRoomSubType = sourceSpriteDefinition.metadata.thirdRoomSubType, preventWallStamping = sourceSpriteDefinition.metadata.preventWallStamping, usesAnimSequence = sourceSpriteDefinition.metadata.usesAnimSequence, usesNeighborDependencies = sourceSpriteDefinition.metadata.usesNeighborDependencies, usesPerTileVFX = sourceSpriteDefinition.metadata.usesPerTileVFX, tileVFXPlaystyle = sourceSpriteDefinition.metadata.tileVFXPlaystyle, tileVFXChance = sourceSpriteDefinition.metadata.tileVFXChance, tileVFXPrefab = sourceSpriteDefinition.metadata.tileVFXPrefab, tileVFXOffset = sourceSpriteDefinition.metadata.tileVFXOffset, tileVFXDelayTime = sourceSpriteDefinition.metadata.tileVFXDelayTime, tileVFXDelayVariance = sourceSpriteDefinition.metadata.tileVFXDelayVariance, tileVFXAnimFrame = sourceSpriteDefinition.metadata.tileVFXAnimFrame }; } return val; } public static TileIndexGrid BuildNewTileIndexGrid(string name) { //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_004d: 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_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Expected O, but got Unknown //IL_00b5: 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_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Expected O, but got Unknown TileIndexGrid val = ScriptableObject.CreateInstance(); ((Object)val).name = name; val.roomTypeRestriction = -1; val.extendedSet = false; val.CenterCheckerboard = false; val.CheckerboardDimension = 1; val.CenterIndicesAreStrata = false; val.PitInternalSquareGrids = new List(0); val.PitInternalSquareOptions = new PitSquarePlacementOptions { PitSquareChance = 0.1f, CanBeFlushLeft = false, CanBeFlushRight = false, CanBeFlushBottom = false }; val.PitBorderIsInternal = false; val.PitBorderOverridesFloorTile = false; val.CeilingBorderUsesDistancedCenters = false; val.PathFacewallStamp = null; val.PathSidewallStamp = null; val.PathStubNorth = null; val.PathStubEast = null; val.PathStubSouth = null; val.PathStubWest = null; FieldInfo[] fields = typeof(TileIndexGrid).GetFields(); TileIndexList value = new TileIndexList { indices = new List { -1 }, indexWeights = new List { 1f } }; FieldInfo[] array = fields; foreach (FieldInfo fieldInfo in array) { if ((object)fieldInfo.FieldType == typeof(TileIndexList)) { fieldInfo.SetValue(val, value); } } return val; } public static GameObject SpawnCustomBowlerNote(GameObject note, Vector2 position, RoomHandler parentRoom, string customText, bool doPoof = false) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: 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_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008c: 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) GameObject val = Object.Instantiate(note, Vector2Extensions.ToVector3ZisY(position, 0f), Quaternion.identity); if (Object.op_Implicit((Object)(object)val)) { NoteDoer componentInChildren = val.GetComponentInChildren(); if (Object.op_Implicit((Object)(object)componentInChildren) && Object.op_Implicit((Object)(object)componentInChildren)) { componentInChildren.alreadyLocalized = true; componentInChildren.stringKey = customText; ((BraveBehaviour)componentInChildren).RegenerateCache(); } IPlayerInteractable[] interfacesInChildren = GameObjectExtensions.GetInterfacesInChildren(val); for (int i = 0; i < interfacesInChildren.Length; i++) { parentRoom.RegisterInteractable(interfacesInChildren[i]); } } if (doPoof) { tk2dBaseSprite component = ((GameObject)Object.Instantiate(ResourceCache.Acquire("Global VFX/VFX_Item_Spawn_Poof"))).GetComponent(); component.PlaceAtPositionByAnchor(Vector2Extensions.ToVector3ZUp(position, 0f) + new Vector3(0.5f, 0.75f, 0f), (Anchor)4); component.HeightOffGround = 5f; component.UpdateZDepth(); } return val; } public static GameObject SpawnAirDrop(RoomHandler currentRoom, Vector3 landingPosition, GenericLootTable LootTable = null, DungeonPlaceable EnemyPlacable = null, float chanceToExplode = 0f, float chanceToSpawnEnemy = 1f) { //IL_00bf: 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_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)LootTable) && !Object.op_Implicit((Object)(object)EnemyPlacable)) { return null; } GameObject val = BraveResources.Load("EmergencyCrate", ".prefab"); if (!Object.op_Implicit((Object)(object)val)) { return null; } GameObject val2 = Object.Instantiate(val); EmergencyCrateController component = val2.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { return null; } if (Object.op_Implicit((Object)(object)LootTable) && Object.op_Implicit((Object)(object)EnemyPlacable)) { component.EnemyPlaceable = EnemyPlacable; component.gunTable = LootTable; component.ChanceToExplode = chanceToExplode; component.ChanceToSpawnEnemy = chanceToSpawnEnemy; } else if (Object.op_Implicit((Object)(object)LootTable)) { component.gunTable = LootTable; component.ChanceToSpawnEnemy = 0f; } else if (Object.op_Implicit((Object)(object)EnemyPlacable)) { component.ChanceToSpawnEnemy = chanceToSpawnEnemy; component.EnemyPlaceable = EnemyPlacable; } component.ChanceToExplode = chanceToExplode; component.Trigger(new Vector3(-5f, -5f, -5f), landingPosition + new Vector3(15f, 15f, 15f), currentRoom, true); currentRoom.ExtantEmergencyCrate = val2; return val2; } public static GameObject SpawnParaDrop(RoomHandler currentRoom, Vector3 landingPosition, GameObject ObjectDrop = null, string EnemyDrop = "NULL", Vector2? CustomObjectSize = null, float LandingPositionOffset = 0f, float DropSpeed = 2.5f, float DropHeight = 10f, float DropHorizontalOffset = 5f, bool useLandingVFX = true, bool DeferParaDropStart = false, bool DoScaleChange = true) { //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_002d: 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_0064: 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_0098: Unknown result type (might be due to invalid IL or missing references) GameObject val = null; bool flag = false; if (!string.IsNullOrEmpty(EnemyDrop) && EnemyDrop != "NULL" && Object.op_Implicit((Object)(object)EnemyDatabase.GetOrLoadByGuid(EnemyDrop))) { val = ((Component)AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(EnemyDrop), Vector2.op_Implicit(landingPosition), currentRoom, false, (AwakenAnimationType)2, true)).gameObject; if (!Object.op_Implicit((Object)(object)val)) { flag = true; } } else if (Object.op_Implicit((Object)(object)ObjectDrop)) { val = ObjectDrop; } else { flag = true; } if (flag) { val = Object.Instantiate(ExpandPrefabs.EX_ExplodyBarrelDummy, landingPosition, Quaternion.identity); } ExpandParadropController expandParadropController = val.AddComponent(); if (flag) { expandParadropController.ChangeScaleOnPopup = true; } if (CustomObjectSize.HasValue) { expandParadropController.UseObjectSizeOverride = true; expandParadropController.OverrideObjectSize = CustomObjectSize.Value; } expandParadropController.ParentObjectExplodyBarrel = flag; expandParadropController.UseLandingVFX = useLandingVFX; expandParadropController.LandingPositionOffset = LandingPositionOffset; expandParadropController.DropSpeed = DropSpeed; expandParadropController.DropHeightHorizontalOffset = DropHorizontalOffset; expandParadropController.StartHeight = DropHeight; expandParadropController.StartsIntheAir = true; expandParadropController.ChangeScaleOnPopup = DoScaleChange; if (!DeferParaDropStart) { expandParadropController.Configured = true; } return val; } public static AIActor SpawnEnemyParaDrop(RoomHandler currentRoom, Vector3 landingPosition, string EnemyDrop, bool AutoEngage = true, bool IsToadie = false, AwakenAnimationType awakenType = 0, Vector2? CustomObjectSize = null, float LandingPositionOffset = 0f, float DropSpeed = 2.5f, float DropHeight = 10f, float DropHorizontalOffset = 5f, bool useLandingVFX = true, bool DeferParaDropStart = false, bool DoScaleChange = false) { //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0025: 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_002d: Unknown result type (might be due to invalid IL or missing references) AIActor val = null; if (!string.IsNullOrEmpty(EnemyDrop) && !string.IsNullOrEmpty(EnemyDrop) && Object.op_Implicit((Object)(object)EnemyDatabase.GetOrLoadByGuid(EnemyDrop))) { val = AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(EnemyDrop), Vector2.op_Implicit(landingPosition), currentRoom, false, awakenType, AutoEngage); } if (!Object.op_Implicit((Object)(object)val)) { return null; } ExpandParadropController expandParadropController = ((Component)val).gameObject.AddComponent(); if (CustomObjectSize.HasValue) { expandParadropController.UseObjectSizeOverride = true; expandParadropController.OverrideObjectSize = CustomObjectSize.Value; } expandParadropController.ParentObjectExplodyBarrel = false; expandParadropController.UseLandingVFX = useLandingVFX; expandParadropController.LandingPositionOffset = LandingPositionOffset; expandParadropController.DropSpeed = DropSpeed; expandParadropController.DropHeightHorizontalOffset = DropHorizontalOffset; expandParadropController.StartHeight = DropHeight; expandParadropController.StartsIntheAir = true; expandParadropController.IsToadie = IsToadie; expandParadropController.ChangeScaleOnPopup = DoScaleChange; if (!DeferParaDropStart) { expandParadropController.Configured = true; } return val; } public static void GenerateAIActorTemplate(GameObject targetObject, out GameObject corpseObject, string EnemyName, string EnemyGUID, tk2dSprite spriteSource = null, GameObject gunAttachObjectOverride = null, Vector3? GunAttachOffset = null, int StartingGunID = 38, List customColliders = null, bool RigidBodyCollidesWithTileMap = true, bool RigidBodyCollidesWithOthers = true, bool RigidBodyCanBeCarried = true, bool RigidBodyCanBePushed = false, bool isFakePrefab = false, bool instantiateCorpseObject = true, GameObject ExternalCorpseObject = null, bool EnemyHasNoShooter = false, bool EnemyHasNoCorpse = false, PlayerHandController overrideHandObject = null, bool BuildRigidBody = true) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Expected O, but got Unknown //IL_015f: 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_016c: Expected O, but got Unknown //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Expected O, but got Unknown //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_02ac: Unknown result type (might be due to invalid IL or missing references) //IL_02b8: Unknown result type (might be due to invalid IL or missing references) //IL_02d7: Unknown result type (might be due to invalid IL or missing references) //IL_02e3: Unknown result type (might be due to invalid IL or missing references) //IL_037c: Unknown result type (might be due to invalid IL or missing references) //IL_0381: Unknown result type (might be due to invalid IL or missing references) //IL_0392: Expected O, but got Unknown //IL_0393: Unknown result type (might be due to invalid IL or missing references) //IL_0398: Unknown result type (might be due to invalid IL or missing references) //IL_03a9: Expected O, but got Unknown //IL_0245: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Unknown result type (might be due to invalid IL or missing references) //IL_0267: Unknown result type (might be due to invalid IL or missing references) //IL_0275: Unknown result type (might be due to invalid IL or missing references) //IL_04b7: Unknown result type (might be due to invalid IL or missing references) //IL_0525: Unknown result type (might be due to invalid IL or missing references) //IL_053d: Unknown result type (might be due to invalid IL or missing references) //IL_0542: Unknown result type (might be due to invalid IL or missing references) //IL_05aa: Unknown result type (might be due to invalid IL or missing references) //IL_05b8: Unknown result type (might be due to invalid IL or missing references) //IL_05c6: Unknown result type (might be due to invalid IL or missing references) //IL_05e3: Unknown result type (might be due to invalid IL or missing references) //IL_05f1: Unknown result type (might be due to invalid IL or missing references) //IL_05f3: Unknown result type (might be due to invalid IL or missing references) //IL_0605: Unknown result type (might be due to invalid IL or missing references) //IL_0629: Unknown result type (might be due to invalid IL or missing references) //IL_063a: Unknown result type (might be due to invalid IL or missing references) //IL_063f: Unknown result type (might be due to invalid IL or missing references) //IL_0650: Expected O, but got Unknown //IL_0651: Unknown result type (might be due to invalid IL or missing references) //IL_0656: Unknown result type (might be due to invalid IL or missing references) //IL_0667: Expected O, but got Unknown //IL_0736: Unknown result type (might be due to invalid IL or missing references) //IL_0743: Unknown result type (might be due to invalid IL or missing references) //IL_0748: Unknown result type (might be due to invalid IL or missing references) //IL_0759: Expected O, but got Unknown //IL_075b: Unknown result type (might be due to invalid IL or missing references) //IL_0782: Unknown result type (might be due to invalid IL or missing references) //IL_07d3: Unknown result type (might be due to invalid IL or missing references) //IL_07d8: Unknown result type (might be due to invalid IL or missing references) //IL_07e3: Unknown result type (might be due to invalid IL or missing references) //IL_07f3: Expected O, but got Unknown //IL_0806: Unknown result type (might be due to invalid IL or missing references) //IL_0813: Unknown result type (might be due to invalid IL or missing references) //IL_0818: Unknown result type (might be due to invalid IL or missing references) //IL_0825: Unknown result type (might be due to invalid IL or missing references) //IL_082a: Unknown result type (might be due to invalid IL or missing references) //IL_0835: Unknown result type (might be due to invalid IL or missing references) //IL_0840: Unknown result type (might be due to invalid IL or missing references) //IL_084b: Unknown result type (might be due to invalid IL or missing references) //IL_0856: Unknown result type (might be due to invalid IL or missing references) //IL_0861: Unknown result type (might be due to invalid IL or missing references) //IL_086c: Unknown result type (might be due to invalid IL or missing references) //IL_0877: Unknown result type (might be due to invalid IL or missing references) //IL_0882: Unknown result type (might be due to invalid IL or missing references) //IL_0892: Expected O, but got Unknown if (!Object.op_Implicit((Object)(object)targetObject)) { targetObject = new GameObject(EnemyName) { layer = 28 }; } GameObject val = null; corpseObject = null; if (instantiateCorpseObject && !EnemyHasNoCorpse) { corpseObject = Object.Instantiate(EnemyDatabase.GetOrLoadByGuid("01972dee89fc4404a5c408d50007dad5").CorpseObject); corpseObject.SetActive(false); FakePrefab.MarkAsFakePrefab(corpseObject); } else if (Object.op_Implicit((Object)(object)ExternalCorpseObject) && !EnemyHasNoCorpse) { corpseObject = ExternalCorpseObject; } if (!Object.op_Implicit((Object)(object)targetObject.GetComponent()) && !Object.op_Implicit((Object)(object)gunAttachObjectOverride) && !EnemyHasNoShooter) { if (!Object.op_Implicit((Object)(object)targetObject.transform.Find("GunAttachPoint"))) { val = new GameObject("GunAttachPoint") { layer = 0 }; val.transform.position = targetObject.transform.position; if (GunAttachOffset.HasValue) { val.transform.position = GunAttachOffset.Value; } else { val.transform.position = new Vector3(0.3125f, 0.25f, 0f); } val.transform.parent = targetObject.transform; } else if (GunAttachOffset.HasValue) { ((Component)targetObject.transform.Find("GunAttachPoint")).transform.localPosition = GunAttachOffset.Value; } } else if (!Object.op_Implicit((Object)(object)targetObject.GetComponent()) && Object.op_Implicit((Object)(object)gunAttachObjectOverride) && !EnemyHasNoShooter) { val = new GameObject("GunAttachPoint") { layer = 0 }; if (GunAttachOffset.HasValue) { val.transform.position = GunAttachOffset.Value; } else { val.transform.position = new Vector3(0.3125f, 0.25f, 0f); } val.transform.parent = targetObject.transform; } if (!Object.op_Implicit((Object)(object)targetObject.GetComponent()) && Object.op_Implicit((Object)(object)spriteSource)) { DuplicateSprite(targetObject.AddComponent(), spriteSource); } tk2dSprite component = targetObject.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { return; } if (BuildRigidBody && !Object.op_Implicit((Object)(object)targetObject.GetComponent())) { if (customColliders != null) { foreach (PixelCollider customCollider in customColliders) { int manualWidth = customCollider.ManualWidth; int manualHeight = customCollider.ManualHeight; int manualOffsetX = customCollider.ManualOffsetX; int manualOffsetY = customCollider.ManualOffsetY; GenerateOrAddToRigidBody(targetObject, customCollider.CollisionLayer, customCollider.ColliderGenerationMode, RigidBodyCollidesWithTileMap, RigidBodyCollidesWithOthers, RigidBodyCanBeCarried, RigidBodyCanBePushed, RecheckTriggers: false, customCollider.IsTrigger, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(manualWidth, manualHeight), (IntVector2?)new IntVector2(manualOffsetX, manualOffsetY)); } } else { GenerateOrAddToRigidBody(targetObject, (CollisionLayer)3, (PixelColliderGeneration)0, collideWithTileMap: true, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(12, 4), (IntVector2?)new IntVector2(5, 0)); GenerateOrAddToRigidBody(targetObject, (CollisionLayer)2, (PixelColliderGeneration)0, collideWithTileMap: true, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(12, 23), (IntVector2?)new IntVector2(5, 0)); } SpeculativeRigidbody component2 = targetObject.GetComponent(); if (customColliders == null) { component2.PixelColliders[1].Sprite = (tk2dBaseSprite)(object)component; } } if (!Object.op_Implicit((Object)(object)targetObject.GetComponent())) { GenerateSpriteAnimator(targetObject, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true, IsFrameBlendedAnimation: false, 0f, 0f); } if (!Object.op_Implicit((Object)(object)targetObject.GetComponent())) { GenerateHealthHaver(targetObject, 15f, disableAnimator: false, explodesOnDeath: false, (DeathType)1, flashesOnDamage: true, exploderSpawnsItem: false, isCorruptedObject: false, isRatNPC: false, skipAnimatorCheck: true, buildLists: true); } if (!Object.op_Implicit((Object)(object)targetObject.GetComponent())) { targetObject.AddComponent(); } HitEffectHandler component3 = targetObject.GetComponent(); component3.overrideHitEffect = new VFXComplex { effects = (VFXObject[])(object)new VFXObject[0] }; component3.overrideHitEffectPool = new VFXPool { effects = (VFXComplex[])(object)new VFXComplex[0] }; component3.additionalHitEffects = (AdditionalHitEffect[])(object)new AdditionalHitEffect[0]; component3.SuppressAllHitEffects = false; if (!Object.op_Implicit((Object)(object)targetObject.GetComponent())) { targetObject.AddComponent(); } KnockbackDoer component4 = targetObject.GetComponent(); component4.weight = 35f; component4.deathMultiplier = 2.5f; component4.knockbackWhileReflecting = false; component4.shouldBounce = true; component4.collisionDecay = 0.5f; if (!Object.op_Implicit((Object)(object)targetObject.GetComponent())) { GenerateBlankAIAnimator(targetObject); } if (!Object.op_Implicit((Object)(object)targetObject.GetComponent())) { targetObject.AddComponent(); } targetObject.GetComponent().SuppressPlayerEnteredRoom = false; AIActor orLoadByGuid = EnemyDatabase.GetOrLoadByGuid("01972dee89fc4404a5c408d50007dad5"); if ((!Object.op_Implicit((Object)(object)targetObject.GetComponent()) | !Object.op_Implicit((Object)(object)targetObject.GetComponent())) && !EnemyHasNoShooter) { DuplicateAIShooterAndAIBulletBank(targetObject, ((Component)orLoadByGuid).gameObject.GetComponent(), ((Component)orLoadByGuid).gameObject.GetComponent(), StartingGunID, val.transform, null, overrideHandObject); } if (!Object.op_Implicit((Object)(object)targetObject.GetComponent())) { targetObject.AddComponent(); } AIActor component5 = targetObject.GetComponent(); ((DungeonPlaceableBehaviour)component5).placeableWidth = 1; ((DungeonPlaceableBehaviour)component5).placeableHeight = 1; ((DungeonPlaceableBehaviour)component5).difficulty = (PlaceableDifficulty)0; ((DungeonPlaceableBehaviour)component5).isPassable = true; ((GameActor)component5).ActorName = EnemyName; ((GameActor)component5).OverrideDisplayName = "EXEnemyString_" + EnemyName.Replace(" ", "_").Replace("(", "_").Replace(")", string.Empty) .ToLower(); ExpandTheGungeon.Strings.Enemies.Set(((GameActor)component5).OverrideDisplayName, EnemyName); ((GameActor)component5).actorTypes = (CoreActorTypes)0; ((GameActor)component5).HasShadow = true; ((GameActor)component5).ShadowHeightOffGround = 0f; ((GameActor)component5).ActorShadowOffset = Vector3.zero; ((GameActor)component5).DoDustUps = false; ((GameActor)component5).DustUpInterval = 0f; ((GameActor)component5).FreezeDispelFactor = 20f; ((GameActor)component5).ImmuneToAllEffects = false; ((GameActor)component5).EffectResistances = (ActorEffectResistance[])(object)new ActorEffectResistance[0]; ((GameActor)component5).OverrideColorOverridden = false; component5.EnemyId = Random.Range(10000, 99999); component5.EnemyGuid = EnemyGUID; component5.ForcedPositionInAmmonomicon = -1; component5.SetsFlagOnDeath = false; component5.FlagToSetOnDeath = (GungeonFlags)0; component5.SetsFlagOnActivation = false; component5.FlagToSetOnActivation = (GungeonFlags)0; component5.SetsCharacterSpecificFlagOnDeath = false; component5.CharacterSpecificFlagToSetOnDeath = (CharacterSpecificGungeonFlags)0; component5.IsNormalEnemy = true; component5.IsSignatureEnemy = false; component5.IsHarmlessEnemy = false; component5.CompanionSettings = new ActorCompanionSettings { WarpsToRandomPoint = false }; component5.MovementSpeed = 8f; component5.PathableTiles = (CellTypes)2; component5.DiesOnCollison = false; component5.CollisionDamage = 0.5f; component5.CollisionKnockbackStrength = 5f; component5.CollisionDamageTypes = (CoreDamageTypes)0; component5.EnemyCollisionKnockbackStrengthOverride = -1f; component5.CollisionVFX = new VFXPool { effects = (VFXComplex[])(object)new VFXComplex[0] }; component5.NonActorCollisionVFX = new VFXPool { effects = (VFXComplex[])(object)new VFXComplex[0] }; component5.CollisionSetsPlayerOnFire = false; component5.TryDodgeBullets = false; component5.AvoidRadius = 4f; component5.ReflectsProjectilesWhileInvulnerable = false; component5.HitByEnemyBullets = false; component5.HasOverrideDodgeRollDeath = false; component5.OverrideDodgeRollDeath = string.Empty; component5.CanDropCurrency = true; component5.AdditionalSingleCoinDropChance = 0f; component5.CanDropItems = true; component5.CanDropDuplicateItems = false; component5.CustomLootTableMinDrops = 1; component5.CustomLootTableMaxDrops = 1; component5.ChanceToDropCustomChest = 0f; component5.IgnoreForRoomClear = false; component5.SpawnLootAtRewardChestPos = false; if (!EnemyHasNoCorpse && Object.op_Implicit((Object)(object)corpseObject) && !Object.op_Implicit((Object)(object)ExternalCorpseObject)) { component5.CorpseObject = corpseObject; } else if (!EnemyHasNoCorpse && Object.op_Implicit((Object)(object)ExternalCorpseObject)) { component5.CorpseObject = ExternalCorpseObject; } else { component5.CorpseObject = null; } component5.CorpseShadow = true; component5.TransferShadowToCorpse = false; component5.shadowDeathType = (ShadowDeathType)10; component5.PreventDeathKnockback = false; component5.OnCorpseVFX = new VFXPool { effects = (VFXComplex[])(object)new VFXComplex[0] }; component5.OnEngagedVFXAnchor = (Anchor)0; component5.shadowHeightOffset = 0f; component5.invisibleUntilAwaken = false; component5.procedurallyOutlined = true; component5.forceUsesTrimmedBounds = true; component5.reinforceType = (ReinforceType)0; component5.UsesVaryingEmissiveShaderPropertyBlock = false; component5.EnemySwitchState = "Metal_Bullet_Man"; component5.OverrideSpawnReticleAudio = string.Empty; component5.OverrideSpawnAppearAudio = string.Empty; component5.UseMovementAudio = false; component5.StartMovingEvent = string.Empty; component5.StopMovingEvent = string.Empty; component5.animationAudioEvents = new List { new ActorAudioEvent { eventTag = "footstep", eventName = "Play_CHR_metalBullet_step_01" } }; component5.HealthOverrides = new List(0); component5.IdentifierForEffects = (EnemyTypeIdentifier)0; component5.BehaviorOverridesVelocity = false; component5.BehaviorVelocity = Vector2.zero; component5.AlwaysShowOffscreenArrow = false; component5.BlackPhantomProperties = new BlackPhantomProperties { BonusHealthPercentIncrease = 2.2f, BonusHealthFlatIncrease = 0f, MaxTotalHealth = 175f, CooldownMultiplier = 0.66f, MovementSpeedMultiplier = 1.5f, LocalTimeScaleMultiplier = 1f, BulletSpeedMultiplier = 1f, GradientScale = 0.75f, ContrastPower = 1.3f }; component5.ForceBlackPhantomParticles = false; component5.OverrideBlackPhantomParticlesCollider = false; component5.BlackPhantomParticlesCollider = 0; component5.PreventFallingInPitsEver = false; if (isFakePrefab) { ((BraveBehaviour)component5).RegenerateCache(); } orLoadByGuid = null; } public static void DuplicateAIShooterAndAIBulletBank(GameObject targetObject, AIShooter sourceShooter, AIBulletBank sourceBulletBank, int startingGunOverrideID = 0, Transform gunAttachPointOverride = null, Transform bulletScriptAttachPointOverride = null, PlayerHandController overrideHandObject = null) { //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009d: 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_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0114: 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_0136: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Expected O, but got Unknown //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_0158: 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_0170: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_0189: 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_019f: 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_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Expected O, but got Unknown //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01e5: Unknown result type (might be due to invalid IL or missing references) //IL_01f1: Unknown result type (might be due to invalid IL or missing references) //IL_01fd: Unknown result type (might be due to invalid IL or missing references) //IL_0209: Unknown result type (might be due to invalid IL or missing references) //IL_0215: 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_022d: 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_0245: Unknown result type (might be due to invalid IL or missing references) //IL_0251: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Expected O, but got Unknown //IL_0404: Unknown result type (might be due to invalid IL or missing references) //IL_0409: Unknown result type (might be due to invalid IL or missing references) //IL_0411: Unknown result type (might be due to invalid IL or missing references) //IL_0416: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)targetObject.GetComponent()) && Object.op_Implicit((Object)(object)targetObject.GetComponent())) { return; } if (!Object.op_Implicit((Object)(object)targetObject.GetComponent())) { AIBulletBank val = targetObject.AddComponent(); val.Bullets = new List(0); if (sourceBulletBank.Bullets.Count > 0) { foreach (Entry bullet in sourceBulletBank.Bullets) { val.Bullets.Add(new Entry { Name = bullet.Name, BulletObject = bullet.BulletObject, OverrideProjectile = bullet.OverrideProjectile, ProjectileData = new ProjectileData { damage = bullet.ProjectileData.damage, speed = bullet.ProjectileData.speed, range = bullet.ProjectileData.range, force = bullet.ProjectileData.force, damping = bullet.ProjectileData.damping, UsesCustomAccelerationCurve = bullet.ProjectileData.UsesCustomAccelerationCurve, AccelerationCurve = bullet.ProjectileData.AccelerationCurve, CustomAccelerationCurveDuration = bullet.ProjectileData.CustomAccelerationCurveDuration, onDestroyBulletScript = bullet.ProjectileData.onDestroyBulletScript, IgnoreAccelCurveTime = bullet.ProjectileData.IgnoreAccelCurveTime }, PlayAudio = bullet.PlayAudio, AudioSwitch = bullet.AudioSwitch, AudioEvent = bullet.AudioEvent, AudioLimitOncePerFrame = bullet.AudioLimitOncePerFrame, AudioLimitOncePerAttack = bullet.AudioLimitOncePerAttack, MuzzleFlashEffects = new VFXPool { effects = bullet.MuzzleFlashEffects.effects, type = bullet.MuzzleFlashEffects.type }, MuzzleLimitOncePerFrame = bullet.MuzzleLimitOncePerFrame, MuzzleInheritsTransformDirection = bullet.MuzzleInheritsTransformDirection, ShellTransform = bullet.ShellTransform, ShellPrefab = bullet.ShellPrefab, ShellForce = bullet.ShellForce, ShellForceVariance = bullet.ShellForceVariance, DontRotateShell = bullet.DontRotateShell, ShellGroundOffset = bullet.ShellGroundOffset, ShellsLimitOncePerFrame = bullet.ShellsLimitOncePerFrame, rampBullets = bullet.rampBullets, conditionalMinDegFromNorth = bullet.conditionalMinDegFromNorth, forceCanHitEnemies = bullet.forceCanHitEnemies, suppressHitEffectsIfOffscreen = bullet.suppressHitEffectsIfOffscreen, preloadCount = bullet.preloadCount }); } } val.useDefaultBulletIfMissing = true; val.transforms = new List(); if (sourceBulletBank.transforms != null && sourceBulletBank.transforms.Count > 0) { foreach (Transform transform in sourceBulletBank.transforms) { val.transforms.Add(transform); } } ((BraveBehaviour)val).RegenerateCache(); } if (!Object.op_Implicit((Object)(object)targetObject.GetComponent())) { AIShooter val2 = targetObject.AddComponent(); val2.volley = sourceShooter.volley; if (startingGunOverrideID != 0) { val2.equippedGunId = startingGunOverrideID; } else { val2.equippedGunId = sourceShooter.equippedGunId; } val2.shouldUseGunReload = true; val2.volleyShootPosition = sourceShooter.volleyShootPosition; val2.volleyShellCasing = sourceShooter.volleyShellCasing; val2.volleyShellTransform = sourceShooter.volleyShellTransform; val2.volleyShootVfx = sourceShooter.volleyShootVfx; val2.usesOctantShootVFX = sourceShooter.usesOctantShootVFX; val2.bulletName = sourceShooter.bulletName; val2.customShootCooldownPeriod = sourceShooter.customShootCooldownPeriod; val2.doesScreenShake = sourceShooter.doesScreenShake; val2.rampBullets = sourceShooter.rampBullets; val2.rampStartHeight = sourceShooter.rampStartHeight; val2.rampTime = sourceShooter.rampTime; if (Object.op_Implicit((Object)(object)gunAttachPointOverride)) { val2.gunAttachPoint = gunAttachPointOverride; } else { val2.gunAttachPoint = sourceShooter.gunAttachPoint; } if (Object.op_Implicit((Object)(object)bulletScriptAttachPointOverride)) { val2.bulletScriptAttachPoint = bulletScriptAttachPointOverride; } else { val2.bulletScriptAttachPoint = sourceShooter.bulletScriptAttachPoint; } val2.overallGunAttachOffset = sourceShooter.overallGunAttachOffset; val2.flippedGunAttachOffset = sourceShooter.flippedGunAttachOffset; if (Object.op_Implicit((Object)(object)overrideHandObject)) { val2.handObject = overrideHandObject; } else { val2.handObject = sourceShooter.handObject; } val2.AllowTwoHands = sourceShooter.AllowTwoHands; val2.ForceGunOnTop = sourceShooter.ForceGunOnTop; val2.IsReallyBigBoy = sourceShooter.IsReallyBigBoy; val2.BackupAimInMoveDirection = sourceShooter.BackupAimInMoveDirection; ((BraveBehaviour)val2).RegenerateCache(); } } public static AIAnimator GenerateBlankAIAnimator(GameObject targetObject) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0029: 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_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_0071: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Expected O, but got Unknown //IL_008f: 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_0096: 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_00a6: 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_00c3: Expected O, but got Unknown //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Expected O, but got Unknown //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_0110: 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_012d: Expected O, but got Unknown //IL_012e: 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_0135: Unknown result type (might be due to invalid IL or missing references) //IL_013a: 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) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Expected O, but got Unknown //IL_019f: Unknown result type (might be due to invalid IL or missing references) AIAnimator obj = targetObject.AddComponent(); obj.facingType = (FacingType)0; obj.faceSouthWhenStopped = false; obj.faceTargetWhenStopped = false; obj.AnimatedFacingDirection = -90f; obj.directionalType = (DirectionalType)10; obj.RotationQuantizeTo = 0f; obj.RotationOffset = 0f; obj.ForceKillVfxOnPreDeath = false; obj.SuppressAnimatorFallback = false; obj.IsBodySprite = true; obj.IdleAnimation = new DirectionalAnimation { Type = (DirectionType)0, Prefix = string.Empty, AnimNames = new string[0], Flipped = (FlipType[])(object)new FlipType[0] }; obj.MoveAnimation = new DirectionalAnimation { Type = (DirectionType)0, Prefix = string.Empty, AnimNames = new string[0], Flipped = (FlipType[])(object)new FlipType[0] }; obj.FlightAnimation = new DirectionalAnimation { Type = (DirectionType)0, Prefix = string.Empty, AnimNames = new string[0], Flipped = (FlipType[])(object)new FlipType[0] }; obj.HitAnimation = new DirectionalAnimation { Type = (DirectionType)0, Prefix = string.Empty, AnimNames = new string[0], Flipped = (FlipType[])(object)new FlipType[0] }; obj.TalkAnimation = new DirectionalAnimation { Type = (DirectionType)0, Prefix = string.Empty, AnimNames = new string[0], Flipped = (FlipType[])(object)new FlipType[0] }; obj.OtherAnimations = new List(0); obj.OtherVFX = new List(0); obj.OtherScreenShake = new List(0); obj.IdleFidgetAnimations = new List(0); obj.HitReactChance = 1f; obj.HitType = (HitStateType)0; return obj; } public static tk2dSpriteAnimator GenerateSpriteAnimator(GameObject targetObject, tk2dSpriteAnimation library = null, int DefaultClipId = 0, float AdditionalCameraVisibilityRadius = 0f, bool AnimateDuringBossIntros = false, bool AlwaysIgnoreTimeScale = false, bool ignoreTimeScale = false, bool ForceSetEveryFrame = false, bool playAutomatically = false, bool IsFrameBlendedAnimation = false, float clipTime = 0f, float ClipFps = 15f, bool deferNextStartClip = false, bool alwaysUpdateOffscreen = false, bool maximumDeltaOneFrame = false) { if (Object.op_Implicit((Object)(object)targetObject.GetComponent())) { Object.Destroy((Object)(object)targetObject.GetComponent()); } tk2dSpriteAnimator obj = targetObject.AddComponent(); obj.Library = library; obj.DefaultClipId = DefaultClipId; obj.AdditionalCameraVisibilityRadius = AdditionalCameraVisibilityRadius; obj.AnimateDuringBossIntros = AnimateDuringBossIntros; obj.AlwaysIgnoreTimeScale = AlwaysIgnoreTimeScale; obj.ignoreTimeScale = ignoreTimeScale; obj.ForceSetEveryFrame = ForceSetEveryFrame; obj.playAutomatically = playAutomatically; obj.IsFrameBlendedAnimation = IsFrameBlendedAnimation; obj.clipTime = clipTime; obj.ClipFps = ClipFps; obj.deferNextStartClip = deferNextStartClip; obj.alwaysUpdateOffscreen = alwaysUpdateOffscreen; obj.maximumDeltaOneFrame = maximumDeltaOneFrame; return obj; } public static tk2dSpriteAnimator GenerateSpriteAnimator(tk2dSpriteAnimation library = null, int DefaultClipId = 0, float AdditionalCameraVisibilityRadius = 0f, bool AnimateDuringBossIntros = false, bool AlwaysIgnoreTimeScale = false, bool ignoreTimeScale = false, bool ForceSetEveryFrame = false, bool playAutomatically = false, bool IsFrameBlendedAnimation = false, float clipTime = 0f, float ClipFps = 15f, bool deferNextStartClip = false, bool alwaysUpdateOffscreen = false, bool maximumDeltaOneFrame = false) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: 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_0013: 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_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0029: 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_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0049: 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_0059: 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_0069: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Expected O, but got Unknown return new tk2dSpriteAnimator { Library = library, DefaultClipId = DefaultClipId, AdditionalCameraVisibilityRadius = AdditionalCameraVisibilityRadius, AnimateDuringBossIntros = AnimateDuringBossIntros, AlwaysIgnoreTimeScale = AlwaysIgnoreTimeScale, ignoreTimeScale = ignoreTimeScale, ForceSetEveryFrame = ForceSetEveryFrame, playAutomatically = playAutomatically, IsFrameBlendedAnimation = IsFrameBlendedAnimation, clipTime = clipTime, ClipFps = ClipFps, deferNextStartClip = deferNextStartClip, alwaysUpdateOffscreen = alwaysUpdateOffscreen, maximumDeltaOneFrame = maximumDeltaOneFrame }; } public static tk2dSpriteAnimation DuplicateSpriteAnimation(GameObject targetObject, tk2dSpriteAnimation targetAnimation, tk2dSpriteAnimation sourceAnimation, tk2dSpriteCollectionData overrideCollection = null) { tk2dSpriteAnimation val = null; if (!Object.op_Implicit((Object)(object)targetObject.GetComponent())) { val = targetObject.AddComponent(); val.clips = (tk2dSpriteAnimationClip[])(object)new tk2dSpriteAnimationClip[0]; } else { val = targetObject.GetComponent(); val.clips = (tk2dSpriteAnimationClip[])(object)new tk2dSpriteAnimationClip[0]; } List list = new List(); tk2dSpriteAnimationClip[] clips = sourceAnimation.clips; foreach (tk2dSpriteAnimationClip sourceClip in clips) { list.Add(DuplicateAnimationClip(sourceClip, overrideCollection)); } if (list.Count <= 0) { ETGModConsole.Log((object)"[ExpandTheGungeon] AddAnimation: ERROR! Animation Clip list is empty! No valid clips found in specified source!", false); return null; } val.clips = list.ToArray(); return val; } public static void AddAnimation(tk2dSpriteAnimator targetAnimator, GameObject collection, List spriteIDList, string clipName, WrapMode wrapMode = 2, int frameRate = 15, int loopStart = 0, float minFidgetDuration = 0.5f, float maxFidgetDuration = 1f) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) AddAnimation(targetAnimator, collection.GetComponent(), spriteIDList, clipName, wrapMode, frameRate, loopStart, minFidgetDuration, maxFidgetDuration); } public static void AddAnimation(tk2dSpriteAnimation targetAnimation, GameObject collection, List spriteNameList, string clipName, WrapMode wrapMode = 2, int frameRate = 15, int loopStart = 0, float minFidgetDuration = 0.5f, float maxFidgetDuration = 1f) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) AddAnimation(targetAnimation, collection.GetComponent(), spriteNameList, clipName, wrapMode, frameRate, loopStart, minFidgetDuration, maxFidgetDuration); } public static tk2dSpriteAnimationClip AddAnimation(tk2dSpriteAnimator targetAnimator, GameObject collection, List spriteNameList, string clipName, WrapMode wrapMode = 2, int frameRate = 15, int loopStart = 0, float minFidgetDuration = 0.5f, float maxFidgetDuration = 1f) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) return AddAnimation(targetAnimator, collection.GetComponent(), spriteNameList, clipName, wrapMode, frameRate, loopStart, minFidgetDuration, maxFidgetDuration); } public static void AddAnimation(tk2dSpriteAnimator targetAnimator, tk2dSpriteCollectionData collection, List spriteIDList, string clipName, WrapMode wrapMode = 2, int frameRate = 15, int loopStart = 0, float minFidgetDuration = 0.5f, float maxFidgetDuration = 1f) { //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0115: 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_0128: 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_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Expected O, but got Unknown //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_0062: 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_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: 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_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: 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_0100: Expected O, but got Unknown if ((Object)(object)targetAnimator.Library == (Object)null) { targetAnimator.Library = ((Component)targetAnimator).gameObject.AddComponent(); targetAnimator.Library.clips = (tk2dSpriteAnimationClip[])(object)new tk2dSpriteAnimationClip[0]; } List list = new List(); for (int i = 0; i < spriteIDList.Count; i++) { if (collection.spriteDefinitions[spriteIDList[i]].Valid) { list.Add(new tk2dSpriteAnimationFrame { spriteCollection = collection, spriteId = spriteIDList[i], invulnerableFrame = false, groundedFrame = true, requiresOffscreenUpdate = false, eventAudio = string.Empty, eventVfx = string.Empty, eventStopVfx = string.Empty, eventLerpEmissive = false, eventLerpEmissiveTime = 0.5f, eventLerpEmissivePower = 30f, forceMaterialUpdate = false, finishedSpawning = false, triggerEvent = false, eventInfo = string.Empty, eventInt = 0, eventFloat = 0f, eventOutline = (OutlineModifier)0 }); } } tk2dSpriteAnimationClip val = new tk2dSpriteAnimationClip { name = clipName, frames = list.ToArray(), fps = frameRate, wrapMode = wrapMode, loopStart = loopStart, minFidgetDuration = minFidgetDuration, maxFidgetDuration = maxFidgetDuration }; Array.Resize(ref targetAnimator.Library.clips, targetAnimator.Library.clips.Length + 1); targetAnimator.Library.clips[targetAnimator.Library.clips.Length - 1] = val; } public static void AddAnimation(tk2dSpriteAnimation targetAnimation, tk2dSpriteCollectionData collection, List spriteNameList, string clipName, WrapMode wrapMode = 2, int frameRate = 15, int loopStart = 0, float minFidgetDuration = 0.5f, float maxFidgetDuration = 1f) { //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_010d: 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_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0123: 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_013a: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Expected O, but got Unknown //IL_0041: 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_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_008b: 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) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: 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_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: 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_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Expected O, but got Unknown if (targetAnimation.clips == null) { targetAnimation.clips = (tk2dSpriteAnimationClip[])(object)new tk2dSpriteAnimationClip[0]; } List list = new List(); for (int i = 0; i < spriteNameList.Count; i++) { tk2dSpriteDefinition spriteDefinition = collection.GetSpriteDefinition(spriteNameList[i]); if (spriteDefinition != null && spriteDefinition.Valid) { list.Add(new tk2dSpriteAnimationFrame { spriteCollection = collection, spriteId = collection.GetSpriteIdByName(spriteNameList[i]), invulnerableFrame = false, groundedFrame = true, requiresOffscreenUpdate = false, eventAudio = string.Empty, eventVfx = string.Empty, eventStopVfx = string.Empty, eventLerpEmissive = false, eventLerpEmissiveTime = 0.5f, eventLerpEmissivePower = 30f, forceMaterialUpdate = false, finishedSpawning = false, triggerEvent = false, eventInfo = string.Empty, eventInt = 0, eventFloat = 0f, eventOutline = (OutlineModifier)0 }); } } tk2dSpriteAnimationClip val = new tk2dSpriteAnimationClip { name = clipName, frames = list.ToArray(), fps = frameRate, wrapMode = wrapMode, loopStart = loopStart, minFidgetDuration = minFidgetDuration, maxFidgetDuration = maxFidgetDuration }; Array.Resize(ref targetAnimation.clips, targetAnimation.clips.Length + 1); targetAnimation.clips[targetAnimation.clips.Length - 1] = val; } public static tk2dSpriteAnimationClip AddAnimation(tk2dSpriteAnimator targetAnimator, tk2dSpriteCollectionData collection, List spriteNameList, string clipName, WrapMode wrapMode = 2, int frameRate = 15, int loopStart = 0, float minFidgetDuration = 0.5f, float maxFidgetDuration = 1f) { //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) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0154: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_015c: 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_016c: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Expected O, but got Unknown //IL_005c: 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_0068: 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_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0090: 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_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_0100: 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_010c: Expected O, but got Unknown if (!Object.op_Implicit((Object)(object)targetAnimator.Library)) { targetAnimator.Library = ((Component)targetAnimator).gameObject.AddComponent(); targetAnimator.Library.clips = (tk2dSpriteAnimationClip[])(object)new tk2dSpriteAnimationClip[0]; } List list = new List(); for (int i = 0; i < spriteNameList.Count; i++) { tk2dSpriteDefinition spriteDefinition = collection.GetSpriteDefinition(spriteNameList[i]); if (spriteDefinition != null && spriteDefinition.Valid) { list.Add(new tk2dSpriteAnimationFrame { spriteCollection = collection, spriteId = collection.GetSpriteIdByName(spriteNameList[i]), invulnerableFrame = false, groundedFrame = true, requiresOffscreenUpdate = false, eventAudio = string.Empty, eventVfx = string.Empty, eventStopVfx = string.Empty, eventLerpEmissive = false, eventLerpEmissiveTime = 0.5f, eventLerpEmissivePower = 30f, forceMaterialUpdate = false, finishedSpawning = false, triggerEvent = false, eventInfo = string.Empty, eventInt = 0, eventFloat = 0f, eventOutline = (OutlineModifier)0 }); } } if (list.Count <= 0) { ETGModConsole.Log((object)"[ExpandTheGungeon] AddAnimation: ERROR! Animation list is empty! No valid sprites found in specified list!", false); return null; } tk2dSpriteAnimationClip val = new tk2dSpriteAnimationClip { name = clipName, frames = list.ToArray(), fps = frameRate, wrapMode = wrapMode, loopStart = loopStart, minFidgetDuration = minFidgetDuration, maxFidgetDuration = maxFidgetDuration }; Array.Resize(ref targetAnimator.Library.clips, targetAnimator.Library.clips.Length + 1); targetAnimator.Library.clips[targetAnimator.Library.clips.Length - 1] = val; return val; } public static void GenerateCorruptedTilesAtPosition(Dungeon dungeon, RoomHandler parentRoom, IntVector2 targetPosition, IntVector2 areaSize, GameObject parentObject = null, float CorruptionIntensity = 0.5f, bool AllowGlitchShader = true, bool emitsCorruptionNoise = true, bool corruptionNoiseFillsRoom = false, bool isSecretRoomWallMarkerCorruption = true) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0035: 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_01fc: Unknown result type (might be due to invalid IL or missing references) //IL_0202: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0049: 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_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_0222: Unknown result type (might be due to invalid IL or missing references) //IL_0228: Invalid comparison between Unknown and I4 //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_024f: Invalid comparison between Unknown and I4 //IL_014e: Unknown result type (might be due to invalid IL or missing references) //IL_0153: 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_0163: Unknown result type (might be due to invalid IL or missing references) //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0183: 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_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_026f: Unknown result type (might be due to invalid IL or missing references) //IL_0276: Invalid comparison between Unknown and I4 //IL_0850: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_0296: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Invalid comparison between Unknown and I4 //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_02bd: Unknown result type (might be due to invalid IL or missing references) //IL_02c7: Invalid comparison between Unknown and I4 //IL_083d: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: 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_02ed: Invalid comparison between Unknown and I4 //IL_030d: Unknown result type (might be due to invalid IL or missing references) //IL_0313: Invalid comparison between Unknown and I4 //IL_0532: Unknown result type (might be due to invalid IL or missing references) //IL_053b: Unknown result type (might be due to invalid IL or missing references) //IL_054f: Unknown result type (might be due to invalid IL or missing references) //IL_0558: Unknown result type (might be due to invalid IL or missing references) //IL_056d: Unknown result type (might be due to invalid IL or missing references) //IL_0576: Unknown result type (might be due to invalid IL or missing references) //IL_0333: Unknown result type (might be due to invalid IL or missing references) //IL_033d: Invalid comparison between Unknown and I4 //IL_0345: Unknown result type (might be due to invalid IL or missing references) //IL_034f: Invalid comparison between Unknown and I4 //IL_05aa: Unknown result type (might be due to invalid IL or missing references) //IL_05af: Unknown result type (might be due to invalid IL or missing references) //IL_05b9: Expected O, but got Unknown //IL_05c2: Unknown result type (might be due to invalid IL or missing references) //IL_05cd: Unknown result type (might be due to invalid IL or missing references) //IL_05d2: Unknown result type (might be due to invalid IL or missing references) //IL_05d7: Unknown result type (might be due to invalid IL or missing references) //IL_0372: Unknown result type (might be due to invalid IL or missing references) //IL_037c: Invalid comparison between Unknown and I4 //IL_06cd: Unknown result type (might be due to invalid IL or missing references) //IL_06f3: Unknown result type (might be due to invalid IL or missing references) //IL_06e9: Unknown result type (might be due to invalid IL or missing references) //IL_073a: Unknown result type (might be due to invalid IL or missing references) //IL_0743: Unknown result type (might be due to invalid IL or missing references) //IL_0759: Unknown result type (might be due to invalid IL or missing references) //IL_0762: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)dungeon == (Object)null || parentRoom == null) { return; } IntVector2 val = targetPosition; if (areaSize != IntVector2.One) { IntVector2 val2 = default(IntVector2); ((IntVector2)(ref val2))..ctor(areaSize.x / 2, areaSize.y / 2); if (val2 != IntVector2.Zero) { val = new IntVector2(targetPosition.x, targetPosition.y) - val2; } } if (emitsCorruptionNoise) { if (isSecretRoomWallMarkerCorruption && Object.op_Implicit((Object)(object)parentObject)) { GameObject val3 = new GameObject("SecretRoomWall_CorruptionAmbience_SFX") { layer = 20 }; val3.transform.position = ((IntVector2)(ref val)).ToVector3(); val3.transform.parent = parentObject.transform; val3.AddComponent(); ExpandCorruptedObjectAmbienceComponent component = val3.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { if (areaSize != IntVector2.One) { IntVector2 val4 = default(IntVector2); ((IntVector2)(ref val4))..ctor(areaSize.x / 2, areaSize.y / 2); if (val4 != IntVector2.Zero) { component.UnitOffset = ((IntVector2)(ref val4)).ToVector3(); } } component.Init(parentRoom); } } else if (Object.op_Implicit((Object)(object)parentObject)) { if (corruptionNoiseFillsRoom) { AkSoundEngine.PostEvent("Play_EX_CorruptionAmbience_01", parentObject); } else { AkSoundEngine.PostEvent("Play_EX_CorruptionAmbience_02", parentObject); } } else { GameObject val5 = new GameObject("CorruptionAmbience_SFX") { layer = 20 }; val5.transform.position = Vector2.op_Implicit(((IntVector2)(ref val)).ToVector2()); val5.transform.parent = parentRoom.hierarchyParent; val5.AddComponent(); ExpandCorruptedRoomAmbiencePlacable component2 = val5.GetComponent(); component2.CameFromCorruptionBomb = true; if (corruptionNoiseFillsRoom) { component2.CorruptionFXPlayEvent = "Play_EX_CorruptionAmbience_01"; component2.CorruptionFXStopEvent = "Stop_EX_CorruptionAmbience_01"; } else { component2.CorruptionFXPlayEvent = "Play_EX_CorruptionAmbience_02"; component2.CorruptionFXStopEvent = "Stop_EX_CorruptionAmbience_02"; } component2.ConfigureOnPlacement(parentRoom); } } tk2dSpriteCollectionData dungeonCollection = dungeon.tileIndices.dungeonCollection; List list = new List(); List list2 = new List(); List list3 = new List(); if ((int)dungeon.tileIndices.tilesetId == 2) { list = ExpandLists.CastleWallIDs; list2 = ExpandLists.CastleFloorIDs; list3 = ExpandLists.CastleMiscIDs; } else if ((int)dungeon.tileIndices.tilesetId == 1) { list = ExpandLists.GungeonWallIDs; list2 = ExpandLists.GungeonFloorIDs; list3 = ExpandLists.GungeonMiscIDs; } else if ((int)dungeon.tileIndices.tilesetId == 16) { list = ExpandLists.MinesWallIDs; list2 = ExpandLists.MinesFloorIDs; list3 = ExpandLists.MinesMiscIDs; } else if ((int)dungeon.tileIndices.tilesetId == 32) { list = ExpandLists.HollowsWallIDs; list2 = ExpandLists.HollowsFloorIDs; list3 = ExpandLists.HollowsMiscIDs; } else if ((int)dungeon.tileIndices.tilesetId == 64) { list = ExpandLists.ForgeWallIDs; list2 = ExpandLists.ForgeFloorIDs; list3 = ExpandLists.ForgeMiscIDs; } else if ((int)dungeon.tileIndices.tilesetId == 128) { list = ExpandLists.BulletHell_WallIDs; list2 = ExpandLists.BulletHell_FloorIDs; list3 = ExpandLists.BulletHell_MiscIDs; } else if ((int)dungeon.tileIndices.tilesetId == 4) { list = ExpandLists.SewerWallIDs; list2 = ExpandLists.SewerFloorIDs; list3 = ExpandLists.SewerMiscIDs; } else if ((int)dungeon.tileIndices.tilesetId == 8) { list = ExpandLists.AbbeyWallIDs; list2 = ExpandLists.AbbeyFloorIDs; list3 = ExpandLists.AbbeyMiscIDs; } else if (((int)dungeon.tileIndices.tilesetId == 32768) | ((int)dungeon.tileIndices.tilesetId == 8192)) { list = ExpandLists.RatDenWallIDs; list2 = ExpandLists.RatDenFloorIDs; list3 = ExpandLists.RatDenMiscIDs; } else if ((int)dungeon.tileIndices.tilesetId == 2048) { foreach (int nakatomi_OfficeWallID in ExpandLists.Nakatomi_OfficeWallIDs) { list.Add(nakatomi_OfficeWallID); } foreach (int nakatomi_OfficeFloorID in ExpandLists.Nakatomi_OfficeFloorIDs) { list2.Add(nakatomi_OfficeFloorID); } foreach (int nakatomi_OfficeMiscID in ExpandLists.Nakatomi_OfficeMiscIDs) { list3.Add(nakatomi_OfficeMiscID); } foreach (int nakatomi_FutureWallID in ExpandLists.Nakatomi_FutureWallIDs) { list.Add(nakatomi_FutureWallID + 704); } foreach (int nakatomi_FutureFloorID in ExpandLists.Nakatomi_FutureFloorIDs) { list2.Add(nakatomi_FutureFloorID + 704); } foreach (int nakatomi_FutureMiscID in ExpandLists.Nakatomi_FutureMiscIDs) { list3.Add(nakatomi_FutureMiscID + 704); } } else { dungeonCollection = DungeonDatabase.GetOrLoadByName("Base_Gungeon").tileIndices.dungeonCollection; list = ExpandLists.GungeonWallIDs; list2 = ExpandLists.GungeonFloorIDs; list3 = ExpandLists.GungeonMiscIDs; } for (int i = 0; i < areaSize.x; i++) { for (int j = 0; j < areaSize.y; j++) { if (!(Random.value <= CorruptionIntensity)) { continue; } bool flag = false; if (dungeon.data.isWall(val.x + i, val.y + j) | dungeon.data.isAnyFaceWall(val.x + i, val.y + j) | dungeon.data.isWall(val.x + i, val.y - 1 + j)) { flag = true; } GameObject val6 = new GameObject("GlitchTile_" + Random.Range(1000000, 9999999)) { layer = 20 }; val6.transform.position = Vector2.op_Implicit(((IntVector2)(ref val)).ToVector2() + new Vector2((float)i, (float)j)); if (isSecretRoomWallMarkerCorruption) { val6.transform.parent = parentRoom.hierarchyParent; } else if ((Object)(object)parentObject != (Object)null) { val6.transform.parent = parentObject.transform; } else { val6.transform.parent = parentRoom.hierarchyParent; } if (flag) { val6.layer = LayerMask.NameToLayer("FG_Critical"); } else { val6.layer = LayerMask.NameToLayer("BG_Critical"); } List list4 = new List(); int num = Random.Range(1, 3); if (num == 1) { list4 = BraveUtility.Shuffle(list); } if (num == 2) { list4 = BraveUtility.Shuffle(list2); } if (num == 3) { list4 = BraveUtility.Shuffle(list3); } val6.AddComponent(); tk2dSprite component3 = val6.GetComponent(); ((tk2dBaseSprite)component3).Collection = dungeonCollection; ((tk2dBaseSprite)component3).SetSprite(((tk2dBaseSprite)component3).Collection, BraveUtility.RandomElement(list4)); ((tk2dBaseSprite)component3).ignoresTiltworldDepth = false; ((tk2dBaseSprite)component3).depthUsesTrimmedBounds = false; ((tk2dBaseSprite)component3).allowDefaultLayer = false; ((tk2dBaseSprite)component3).OverrideMaterialMode = (SpriteMaterialOverrideMode)0; ((tk2dBaseSprite)component3).independentOrientation = false; ((tk2dBaseSprite)component3).hasOffScreenCachedUpdate = false; if (flag) { ((tk2dBaseSprite)component3).CachedPerpState = (PerpendicularState)1; } else { ((tk2dBaseSprite)component3).CachedPerpState = (PerpendicularState)2; } ((tk2dBaseSprite)component3).SortingOrder = 2; ((tk2dBaseSprite)component3).IsBraveOutlineSprite = false; ((tk2dBaseSprite)component3).IsZDepthDirty = false; component3.ApplyEmissivePropertyBlock = false; component3.GenerateUV2 = false; component3.LockUV2OnFrameOne = false; component3.StaticPositions = false; if (flag) { if (dungeon.data.isFaceWallLower(val.x + i, val.y + j) && !dungeon.data.isWall(val.x + i, val.y - 1 + j)) { ((tk2dBaseSprite)component3).HeightOffGround = -1.4f; ((tk2dBaseSprite)component3).UpdateZDepth(); } else { ((tk2dBaseSprite)component3).HeightOffGround = 3.5f; ((tk2dBaseSprite)component3).UpdateZDepth(); } } else { ((tk2dBaseSprite)component3).HeightOffGround = -1.7f; ((tk2dBaseSprite)component3).SortingOrder = 2; ((tk2dBaseSprite)component3).UpdateZDepth(); } if (AllowGlitchShader && Random.value <= 0.4f) { float glitchInterval = Random.Range(0.02f, 0.06f); float dispProbability = Random.Range(0.07f, 0.09f); float dispIntensity = Random.Range(0.085f, 0.2f); float colorProbability = Random.Range(0.04f, 0.15f); float colorIntensity = Random.Range(0.08f, 0.14f); ExpandShaders.Instance.ApplyGlitchShader((tk2dBaseSprite)(object)component3, usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); } } } } public static tk2dSpriteAnimationClip DuplicateAnimationClip(tk2dSpriteAnimationClip sourceClip, tk2dSpriteCollectionData overrideCollection = null) { //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_0060: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //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) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Expected O, but got Unknown //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) //IL_0013: 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_002a: 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_0033: 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_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Expected O, but got Unknown //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_011d: 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_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0151: 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_016b: 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_0185: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01be: Expected O, but got Unknown if (sourceClip == null) { return new tk2dSpriteAnimationClip { name = string.Empty, frames = (tk2dSpriteAnimationFrame[])(object)new tk2dSpriteAnimationFrame[0], fps = 30f, loopStart = 0, wrapMode = (WrapMode)0, minFidgetDuration = 1f, maxFidgetDuration = 2f }; } tk2dSpriteAnimationClip val = new tk2dSpriteAnimationClip { name = sourceClip.name, fps = sourceClip.fps, loopStart = sourceClip.loopStart, wrapMode = sourceClip.wrapMode, minFidgetDuration = sourceClip.minFidgetDuration, maxFidgetDuration = sourceClip.maxFidgetDuration }; List list = new List(); tk2dSpriteAnimationFrame[] frames = sourceClip.frames; foreach (tk2dSpriteAnimationFrame val2 in frames) { if (val2 != null) { list.Add(new tk2dSpriteAnimationFrame { spriteCollection = (((Object)(object)overrideCollection != (Object)null) ? overrideCollection : val2.spriteCollection), spriteId = val2.spriteId, invulnerableFrame = val2.invulnerableFrame, groundedFrame = val2.groundedFrame, requiresOffscreenUpdate = val2.requiresOffscreenUpdate, eventAudio = val2.eventAudio, eventVfx = val2.eventVfx, eventStopVfx = val2.eventStopVfx, eventLerpEmissive = val2.eventLerpEmissive, eventLerpEmissiveTime = val2.eventLerpEmissiveTime, eventLerpEmissivePower = val2.eventLerpEmissivePower, forceMaterialUpdate = val2.forceMaterialUpdate, finishedSpawning = val2.finishedSpawning, triggerEvent = val2.triggerEvent, eventInfo = val2.eventInfo, eventInt = val2.eventInt, eventFloat = val2.eventFloat, eventOutline = val2.eventOutline }); } } val.frames = list.ToArray(); return val; } public static IntVector2? GetRandomAvailableCellSmart(RoomHandler CurrentRoom, IntVector2 Clearence, bool relativeToRoom = false) { //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_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Expected O, but got Unknown //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_0034: 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_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) CellValidator val = (CellValidator)delegate(IntVector2 c) { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0045: 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_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Invalid comparison between Unknown and I4 //IL_0073: 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_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Invalid comparison between Unknown and I4 //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < Clearence.x; i++) { for (int j = 0; j < Clearence.y; j++) { if (!GameManager.Instance.Dungeon.data.CheckInBoundsAndValid(c.x + i, c.y + j)) { return false; } if ((int)GameManager.Instance.Dungeon.data[c.x + i, c.y + j].type == 4) { return false; } if (GameManager.Instance.Dungeon.data[c.x + i, c.y + j].isOccupied) { return false; } if ((int)GameManager.Instance.Dungeon.data[c.x + i, c.y + j].type == 1) { return false; } if (GameManager.Instance.Dungeon.data[c.x + i, c.y + j].IsLowerFaceWall()) { return false; } if (GameManager.Instance.Dungeon.data[c.x + i, c.y + j].IsTopWall()) { return false; } } } return true; }; if (relativeToRoom) { IntVector2? randomAvailableCell = CurrentRoom.GetRandomAvailableCell((IntVector2?)new IntVector2(Clearence.x, Clearence.y), (CellTypes?)(CellTypes)2, false, val); IntVector2 basePosition = CurrentRoom.area.basePosition; if (!randomAvailableCell.HasValue) { return null; } return randomAvailableCell.GetValueOrDefault() - basePosition; } return CurrentRoom.GetRandomAvailableCell((IntVector2?)new IntVector2(Clearence.x, Clearence.y), (CellTypes?)(CellTypes)2, false, val); } public static IntVector2 GetRandomAvailableCellSmart(RoomHandler CurrentRoom, PlayerController PrimaryPlayer, int MinClearence = 2, bool usePlayerVectorAsFallback = false) { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Expected O, but got Unknown //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002d: 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_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) _ = Vector2.zero; IntVector2 result = IntVector2.Zero; if (Object.op_Implicit((Object)(object)PrimaryPlayer)) { result = Vector2Extensions.ToIntVector2(((GameActor)PrimaryPlayer).CenterPosition, (VectorConversions)0); } CellValidator val = (CellValidator)delegate(IntVector2 c) { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0045: 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_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Invalid comparison between Unknown and I4 //IL_0073: 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_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Invalid comparison between Unknown and I4 //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < MinClearence; i++) { for (int j = 0; j < MinClearence; j++) { if (!GameManager.Instance.Dungeon.data.CheckInBoundsAndValid(c.x + i, c.y + j)) { return false; } if ((int)GameManager.Instance.Dungeon.data[c.x + i, c.y + j].type == 4) { return false; } if (GameManager.Instance.Dungeon.data[c.x + i, c.y + j].isOccupied) { return false; } if ((int)GameManager.Instance.Dungeon.data[c.x + i, c.y + j].type == 1) { return false; } if (GameManager.Instance.Dungeon.data[c.x + i, c.y + j].IsLowerFaceWall()) { return false; } if (GameManager.Instance.Dungeon.data[c.x + i, c.y + j].IsTopWall()) { return false; } } } return true; }; IntVector2? randomAvailableCell = CurrentRoom.GetRandomAvailableCell((IntVector2?)new IntVector2(MinClearence, MinClearence), (CellTypes?)(CellTypes)2, false, val); if (randomAvailableCell.HasValue) { return randomAvailableCell.Value; } if (usePlayerVectorAsFallback) { return result; } return IntVector2.Zero; } public static IntVector2? GetRandomAvailableCellForPlayer(Dungeon dungeon, RoomHandler currentRoom, bool relativeToRoom = false) { //IL_0773: Unknown result type (might be due to invalid IL or missing references) //IL_0778: Unknown result type (might be due to invalid IL or missing references) //IL_077b: Unknown result type (might be due to invalid IL or missing references) //IL_079e: Unknown result type (might be due to invalid IL or missing references) //IL_0786: Unknown result type (might be due to invalid IL or missing references) //IL_078e: Unknown result type (might be due to invalid IL or missing references) //IL_0793: Unknown result type (might be due to invalid IL or missing references) //IL_072b: Unknown result type (might be due to invalid IL or missing references) List list = new List(); for (int i = -1; i <= currentRoom.area.dimensions.x; i++) { for (int j = -1; j <= currentRoom.area.dimensions.y; j++) { int num = currentRoom.area.basePosition.x + i; int num2 = currentRoom.area.basePosition.y + j; if (!dungeon.data.isWall(num - 2, num2 + 2) && !dungeon.data.isWall(num - 1, num2 + 2) && !dungeon.data.isWall(num, num2 + 2) && !dungeon.data.isWall(num + 1, num2 + 2) && !dungeon.data.isWall(num + 2, num2 + 2) && !dungeon.data.isWall(num - 2, num2 + 1) && !dungeon.data.isWall(num - 1, num2 + 1) && !dungeon.data.isWall(num, num2 + 1) && !dungeon.data.isWall(num + 1, num2 + 1) && !dungeon.data.isWall(num + 2, num2 + 1) && !dungeon.data.isWall(num - 2, num2) && !dungeon.data.isWall(num - 1, num2) && !dungeon.data.isWall(num, num2) && !dungeon.data.isWall(num + 1, num2) && !dungeon.data.isWall(num + 2, num2) && !dungeon.data.isWall(num - 2, num2 - 1) && !dungeon.data.isWall(num - 1, num2 - 1) && !dungeon.data.isWall(num, num2 - 1) && !dungeon.data.isWall(num + 1, num2 - 1) && !dungeon.data.isWall(num + 2, num2 - 1) && !dungeon.data.isWall(num - 2, num2 - 2) && !dungeon.data.isWall(num - 1, num2 - 2) && !dungeon.data.isWall(num, num2 - 2) && !dungeon.data.isWall(num + 1, num2 - 2) && !dungeon.data.isWall(num + 2, num2 - 2) && !dungeon.data[num - 2, num2 + 2].isOccupied && !dungeon.data[num - 1, num2 + 2].isOccupied && !dungeon.data[num, num2 + 2].isOccupied && !dungeon.data[num + 1, num2 + 2].isOccupied && !dungeon.data[num + 2, num2 + 2].isOccupied && !dungeon.data[num - 2, num2 + 1].isOccupied && !dungeon.data[num - 1, num2 + 1].isOccupied && !dungeon.data[num, num2 + 1].isOccupied && !dungeon.data[num + 1, num2 + 1].isOccupied && !dungeon.data[num + 2, num2 + 1].isOccupied && !dungeon.data[num - 2, num2].isOccupied && !dungeon.data[num - 1, num2].isOccupied && !dungeon.data[num, num2].isOccupied && !dungeon.data[num + 1, num2].isOccupied && !dungeon.data[num + 2, num2].isOccupied && !dungeon.data[num - 2, num2 - 1].isOccupied && !dungeon.data[num - 1, num2 - 1].isOccupied && !dungeon.data[num, num2 - 1].isOccupied && !dungeon.data[num + 1, num2 - 1].isOccupied && !dungeon.data[num + 2, num2 - 1].isOccupied && !dungeon.data[num - 2, num2 - 2].isOccupied && !dungeon.data[num - 1, num2 - 2].isOccupied && !dungeon.data[num, num2 - 2].isOccupied && !dungeon.data[num + 1, num2 - 2].isOccupied && !dungeon.data[num + 2, num2 - 2].isOccupied && !dungeon.data.isPit(num - 2, num2 + 2) && !dungeon.data.isPit(num - 1, num2 + 2) && !dungeon.data.isPit(num, num2 + 2) && !dungeon.data.isPit(num + 1, num2 + 2) && !dungeon.data.isPit(num + 2, num2 + 2) && !dungeon.data.isPit(num - 2, num2 + 1) && !dungeon.data.isPit(num - 1, num2 + 1) && !dungeon.data.isPit(num, num2 + 1) && !dungeon.data.isPit(num + 1, num2 + 1) && !dungeon.data.isPit(num + 2, num2 + 1) && !dungeon.data.isPit(num - 2, num2) && !dungeon.data.isPit(num - 1, num2) && !dungeon.data.isPit(num, num2) && !dungeon.data.isPit(num + 1, num2) && !dungeon.data.isPit(num + 2, num2) && !dungeon.data.isPit(num - 2, num2 - 1) && !dungeon.data.isPit(num - 1, num2 - 1) && !dungeon.data.isPit(num, num2 - 1) && !dungeon.data.isPit(num + 1, num2 - 1) && !dungeon.data.isPit(num + 2, num2 - 1) && !dungeon.data.isPit(num - 2, num2 - 2) && !dungeon.data.isPit(num - 1, num2 - 2) && !dungeon.data.isPit(num, num2 - 2) && !dungeon.data.isPit(num + 1, num2 - 2) && !dungeon.data.isPit(num + 2, num2 - 2)) { list.Add(new IntVector2(num, num2)); } } } if (list.Count > 0) { IntVector2 val = BraveUtility.RandomElement(list); list.Remove(val); if (relativeToRoom) { return val - currentRoom.area.basePosition; } return val; } return null; } public static void CorrectForWalls(AIActor targetActor) { //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_0050: 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) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) if (!PhysicsEngine.Instance.OverlapCast(((BraveBehaviour)targetActor).specRigidbody, (List)null, true, false, (int?)null, (int?)null, false, (Vector2?)null, (Func)null, (SpeculativeRigidbody[])(object)new SpeculativeRigidbody[0])) { return; } Vector2 val = Vector3Extensions.XY(((Component)targetActor).gameObject.transform.position); IntVector2[] cardinalsAndOrdinals = IntVector2.CardinalsAndOrdinals; int num = 0; int num2 = 1; do { for (int i = 0; i < cardinalsAndOrdinals.Length; i++) { ((Component)targetActor).gameObject.transform.position = Vector2.op_Implicit(val + PhysicsEngine.PixelToUnit(cardinalsAndOrdinals[i] * num2)); ((BraveBehaviour)targetActor).specRigidbody.Reinitialize(); if (!PhysicsEngine.Instance.OverlapCast(((BraveBehaviour)targetActor).specRigidbody, (List)null, true, false, (int?)null, (int?)null, false, (Vector2?)null, (Func)null, (SpeculativeRigidbody[])(object)new SpeculativeRigidbody[0])) { return; } } num2++; num++; } while (num <= 200); Debug.LogError((object)"EX: FREEZE AVERTED! TELL APACHE! (you're welcome) 147"); } public static RoomHandler AddCustomRuntimeRoom(Dungeon dungeon, IntVector2 dimensions, GameObject roomPrefab, IntVector2? roomWorldPositionOverride = null, Vector3? roomPrefabPositionOverride = null, string RoomName = null) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0046: 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_0060: 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_009d: 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_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Expected O, but got Unknown //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Expected O, but got Unknown //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: 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_01f7: Unknown result type (might be due to invalid IL or missing references) //IL_0198: 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_01b3: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Expected O, but got Unknown //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) IntVector2 value = default(IntVector2); ((IntVector2)(ref value))..ctor(10, 10); if (roomWorldPositionOverride.HasValue) { value = roomWorldPositionOverride.Value; } IntVector2 val = default(IntVector2); ((IntVector2)(ref val))..ctor(dungeon.data.Width + value.x, value.y); int num = dungeon.data.Width + value.x + dimensions.x; int num2 = Mathf.Max(dungeon.data.Height, dimensions.y + value.y); CellData[][] array = BraveUtility.MultidimensionalArrayResize(dungeon.data.cellData, dungeon.data.Width, dungeon.data.Height, num, num2); CellArea val2 = new CellArea(val, dimensions, 0); val2.IsProceduralRoom = true; dungeon.data.cellData = array; dungeon.data.ClearCachedCellData(); RoomHandler val3 = new RoomHandler(val2); for (int i = 0; i < dimensions.x; i++) { for (int j = 0; j < dimensions.y; j++) { IntVector2 val4 = new IntVector2(i, j) + val; CellData val5 = new CellData(val4, (CellType)2); val5.parentArea = val2; val5.parentRoom = val3; val5.nearestRoom = val3; array[val4.x][val4.y] = val5; if (!string.IsNullOrEmpty(RoomName)) { val3.area.PrototypeRoomName = RoomName; } val3.RuntimeStampCellComplex(val4.x, val4.y, (CellType)2, (DiagonalWallType)0); } } dungeon.data.rooms.Add(val3); if (roomPrefabPositionOverride.HasValue) { float x = roomPrefabPositionOverride.Value.x; float x2 = roomPrefabPositionOverride.Value.x; Object.Instantiate(roomPrefab, new Vector3((float)val.x + x, (float)val.y + x2, 0f), Quaternion.identity); } else { Object.Instantiate(roomPrefab, new Vector3((float)val.x, (float)val.y, 0f), Quaternion.identity); } DeadlyDeadlyGoopManager.ReinitializeData(); return val3; } public static RoomHandler AddCustomRuntimeRoom(PrototypeDungeonRoom prototype, bool addRoomToMinimap = true, bool addTeleporter = true, bool isSecretRatExitRoom = false, Action postProcessCellData = null, LightGenerationStyle lightStyle = 0, bool allowProceduralDecoration = true, bool allowProceduralLightFixtures = true, bool suppressExceptionMessages = false) { //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0091: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: 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_00cc: Unknown result type (might be due to invalid IL or missing references) //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) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) //IL_0189: 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_0190: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Expected O, but got Unknown //IL_01a6: Unknown result type (might be due to invalid IL or missing references) //IL_01ad: Expected O, but got Unknown //IL_028e: Unknown result type (might be due to invalid IL or missing references) //IL_0319: Unknown result type (might be due to invalid IL or missing references) //IL_0355: Unknown result type (might be due to invalid IL or missing references) //IL_035b: Invalid comparison between Unknown and I4 //IL_05c3: Unknown result type (might be due to invalid IL or missing references) //IL_05cc: Unknown result type (might be due to invalid IL or missing references) //IL_05d1: Unknown result type (might be due to invalid IL or missing references) //IL_05dd: Unknown result type (might be due to invalid IL or missing references) //IL_05e4: Unknown result type (might be due to invalid IL or missing references) //IL_05e9: Unknown result type (might be due to invalid IL or missing references) //IL_0277: Unknown result type (might be due to invalid IL or missing references) //IL_0378: 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_01c5: Unknown result type (might be due to invalid IL or missing references) //IL_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_03e1: Unknown result type (might be due to invalid IL or missing references) //IL_03ed: Unknown result type (might be due to invalid IL or missing references) //IL_041d: Unknown result type (might be due to invalid IL or missing references) //IL_041e: Unknown result type (might be due to invalid IL or missing references) //IL_0420: Unknown result type (might be due to invalid IL or missing references) //IL_0425: Unknown result type (might be due to invalid IL or missing references) //IL_0427: Unknown result type (might be due to invalid IL or missing references) //IL_0429: Unknown result type (might be due to invalid IL or missing references) //IL_042b: Unknown result type (might be due to invalid IL or missing references) //IL_0430: Unknown result type (might be due to invalid IL or missing references) //IL_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_01fd: Unknown result type (might be due to invalid IL or missing references) //IL_047b: Unknown result type (might be due to invalid IL or missing references) //IL_060a: Unknown result type (might be due to invalid IL or missing references) //IL_0611: Expected O, but got Unknown //IL_0207: Unknown result type (might be due to invalid IL or missing references) //IL_020a: Unknown result type (might be due to invalid IL or missing references) //IL_0211: Expected O, but got Unknown //IL_0215: Unknown result type (might be due to invalid IL or missing references) //IL_021a: Unknown result type (might be due to invalid IL or missing references) //IL_021c: Unknown result type (might be due to invalid IL or missing references) //IL_0225: Unknown result type (might be due to invalid IL or missing references) //IL_022a: Unknown result type (might be due to invalid IL or missing references) //IL_022f: Unknown result type (might be due to invalid IL or missing references) //IL_025d: Unknown result type (might be due to invalid IL or missing references) //IL_0265: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_0487: Unknown result type (might be due to invalid IL or missing references) //IL_0496: Unknown result type (might be due to invalid IL or missing references) //IL_04c4: Unknown result type (might be due to invalid IL or missing references) //IL_04cf: Unknown result type (might be due to invalid IL or missing references) //IL_04da: Unknown result type (might be due to invalid IL or missing references) //IL_04e5: Unknown result type (might be due to invalid IL or missing references) //IL_0537: Unknown result type (might be due to invalid IL or missing references) //IL_0540: Unknown result type (might be due to invalid IL or missing references) //IL_0545: Unknown result type (might be due to invalid IL or missing references) //IL_054a: Unknown result type (might be due to invalid IL or missing references) //IL_0552: Unknown result type (might be due to invalid IL or missing references) //IL_01ea: Unknown result type (might be due to invalid IL or missing references) //IL_0465: Unknown result type (might be due to invalid IL or missing references) //IL_0561: Unknown result type (might be due to invalid IL or missing references) //IL_056f: Unknown result type (might be due to invalid IL or missing references) //IL_0444: Unknown result type (might be due to invalid IL or missing references) //IL_044e: Unknown result type (might be due to invalid IL or missing references) Dungeon dungeon = GameManager.Instance.Dungeon; tk2dTileMap mainTilemap = dungeon.MainTilemap; if ((Object)(object)mainTilemap == (Object)null) { ETGModConsole.Log((object)"ERROR: TileMap object is null! Something seriously went wrong!", false); Debug.Log((object)"ERROR: TileMap object is null! Something seriously went wrong!"); return null; } TK2DDungeonAssembler val = ReflectionHelpers.ReflectGetField(typeof(Dungeon), "assembler", dungeon); IntVector2 zero = IntVector2.Zero; IntVector2 val2 = new IntVector2(50, 50); int x = val2.x; int y = val2.y; IntVector2 val3 = default(IntVector2); ((IntVector2)(ref val3))..ctor(int.MaxValue, int.MaxValue); IntVector2 val4 = new IntVector2(int.MinValue, int.MinValue); val3 = IntVector2.Min(val3, zero); IntVector2 val5 = IntVector2.Max(val4, zero + new IntVector2(prototype.Width, prototype.Height)) - val3; IntVector2 val6 = IntVector2.Min(IntVector2.Zero, -1 * val3); val5 += val6; IntVector2 val7 = default(IntVector2); ((IntVector2)(ref val7))..ctor(dungeon.data.Width + x, x); int num = dungeon.data.Width + x * 2 + val5.x; int num2 = Mathf.Max(dungeon.data.Height, val5.y + x * 2); CellData[][] array = BraveUtility.MultidimensionalArrayResize(dungeon.data.cellData, dungeon.data.Width, dungeon.data.Height, num, num2); dungeon.data.cellData = array; dungeon.data.ClearCachedCellData(); IntVector2 val8 = default(IntVector2); ((IntVector2)(ref val8))..ctor(prototype.Width, prototype.Height); IntVector2 val9 = zero + val6; IntVector2 val10 = val7 + val9; CellArea val11 = new CellArea(val10, val8, 0); val11.prototypeRoom = prototype; RoomHandler val12 = new RoomHandler(val11); for (int i = -x; i < val8.x + x; i++) { for (int j = -x; j < val8.y + x; j++) { IntVector2 val13 = new IntVector2(i, j) + val10; if ((i >= 0 && j >= 0 && i < val8.x && j < val8.y) || array[val13.x][val13.y] == null) { CellData val14 = new CellData(val13, (CellType)1); val14.positionInTilemap = val14.positionInTilemap - val7 + new IntVector2(y, y); val14.parentArea = val11; val14.parentRoom = val12; val14.nearestRoom = val12; val14.distanceFromNearestRoom = 0f; array[val13.x][val13.y] = val14; } } } dungeon.data.rooms.Add(val12); try { GenerateOutOfBoundsWalls(val12); val12.WriteRoomData(dungeon.data); } catch (Exception) { if (!suppressExceptionMessages) { ETGModConsole.Log((object)("WARNING: Exception caused during WriteRoomData step on room: " + val12.GetRoomName()), false); } } try { dungeon.data.GenerateLightsForRoom(dungeon.decoSettings, val12, GameObject.Find("_Lights").transform, lightStyle); } catch (Exception) { if (!suppressExceptionMessages) { ETGModConsole.Log((object)("WARNING: Exception caused during GeernateLightsForRoom step on room: " + val12.GetRoomName()), false); } } postProcessCellData?.Invoke(val12); if ((int)val12.area.PrototypeRoomCategory == 6) { val12.BuildSecretRoomCover(); } GameObject val15 = (GameObject)Object.Instantiate(BraveResources.Load("RuntimeTileMap", ".prefab")); tk2dTileMap component = val15.GetComponent(); string text = Random.Range(10000, 99999).ToString(); ((Object)val15).name = "Glitch_RuntimeTilemap_" + text; ((Object)component.renderData).name = "Glitch_RuntimeTilemap_" + text + " Render Data"; component.Editor__SpriteCollection = dungeon.tileIndices.dungeonCollection; try { TK2DDungeonAssembler.RuntimeResizeTileMap(component, val5.x + y * 2, val5.y + y * 2, mainTilemap.partitionSizeX, mainTilemap.partitionSizeY); IntVector2 val16 = default(IntVector2); ((IntVector2)(ref val16))..ctor(prototype.Width, prototype.Height); IntVector2 val17 = zero + val6; IntVector2 val18 = val7 + val17; for (int k = -y; k < val16.x + y; k++) { for (int l = -y; l < val16.y + y + 2; l++) { val.BuildTileIndicesForCell(dungeon, component, val18.x + k, val18.y + l); } } RenderMeshBuilder.CurrentCellXOffset = val7.x - y; RenderMeshBuilder.CurrentCellYOffset = val7.y - y; component.ForceBuild(); RenderMeshBuilder.CurrentCellXOffset = 0; RenderMeshBuilder.CurrentCellYOffset = 0; component.renderData.transform.position = new Vector3((float)(val7.x - y), (float)(val7.y - y), (float)(val7.y - y)); } catch (Exception ex3) { if (!suppressExceptionMessages) { ETGModConsole.Log((object)"WARNING: Exception occured during RuntimeResizeTileMap / RenderMeshBuilder steps!", false); Debug.Log((object)"WARNING: Exception occured during RuntimeResizeTileMap/RenderMeshBuilder steps!"); Debug.LogException(ex3); } } val12.OverrideTilemap = component; if (allowProceduralLightFixtures) { for (int m = 0; m < val12.area.dimensions.x; m++) { for (int n = 0; n < val12.area.dimensions.y + 2; n++) { IntVector2 val19 = val12.area.basePosition + new IntVector2(m, n); if (dungeon.data.CheckInBoundsAndValid(val19)) { CellData val20 = dungeon.data[val19]; TK2DInteriorDecorator.PlaceLightDecorationForCell(dungeon, component, val20, val19); } } } } Pathfinder.Instance.InitializeRegion(dungeon.data, val12.area.basePosition + new IntVector2(-3, -3), val12.area.dimensions + new IntVector2(3, 3)); if (prototype.usesProceduralDecoration && prototype.allowFloorDecoration && allowProceduralDecoration) { TK2DInteriorDecorator val21 = new TK2DInteriorDecorator(val); try { val21.HandleRoomDecoration(val12, dungeon, mainTilemap); } catch (Exception ex4) { if (ExpandSettings.debugMode && !suppressExceptionMessages) { ETGModConsole.Log((object)"WARNING: Exception occured during HandleRoomDecoration steps!", false); Debug.Log((object)"WARNING: Exception occured during RuntimeResizeTileMap/RenderMeshBuilder steps!"); Debug.LogException(ex4); } } } val12.PostGenerationCleanup(); if (addRoomToMinimap) { val12.visibility = (VisibilityStatus)1; ((MonoBehaviour)GameManager.Instance).StartCoroutine(Minimap.Instance.RevealMinimapRoomInternal(val12, true, true, false)); if (isSecretRatExitRoom) { val12.visibility = (VisibilityStatus)0; } } if (addTeleporter) { val12.AddProceduralTeleporterToRoom(); } if (addRoomToMinimap) { Minimap.Instance.InitializeMinimap(dungeon.data); } DeadlyDeadlyGoopManager.ReinitializeData(); return val12; } public static RoomHandler AddCustomRuntimeRoomWithTileSet(Dungeon dungeon2, PrototypeDungeonRoom prototype, bool addRoomToMinimap = true, bool addTeleporter = true, bool isSecretRatExitRoom = false, Action postProcessCellData = null, LightGenerationStyle lightStyle = 0, bool allowProceduralDecoration = true, bool allowProceduralLightFixtures = true, bool RoomExploredOnMinimap = true, string RunTimeTileMapName = "Glitch", bool SpawnWallMimic = false, bool suppressExceptionWarnings = true) { //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_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_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: 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_00b8: 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) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: 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_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0177: 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_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_0181: Unknown result type (might be due to invalid IL or missing references) //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_0185: 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_018c: 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_0191: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Expected O, but got Unknown //IL_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Expected O, but got Unknown //IL_028a: Unknown result type (might be due to invalid IL or missing references) //IL_038a: Unknown result type (might be due to invalid IL or missing references) //IL_070d: Unknown result type (might be due to invalid IL or missing references) //IL_0714: Expected O, but got Unknown //IL_071b: Unknown result type (might be due to invalid IL or missing references) //IL_0720: Unknown result type (might be due to invalid IL or missing references) //IL_073c: Unknown result type (might be due to invalid IL or missing references) //IL_0741: Unknown result type (might be due to invalid IL or missing references) //IL_074c: Unknown result type (might be due to invalid IL or missing references) //IL_031a: Unknown result type (might be due to invalid IL or missing references) //IL_0813: Unknown result type (might be due to invalid IL or missing references) //IL_0273: Unknown result type (might be due to invalid IL or missing references) //IL_03d9: Unknown result type (might be due to invalid IL or missing references) //IL_03df: Invalid comparison between Unknown and I4 //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_0409: Unknown result type (might be due to invalid IL or missing references) //IL_040e: Unknown result type (might be due to invalid IL or missing references) //IL_07fd: Unknown result type (might be due to invalid IL or missing references) //IL_085d: Unknown result type (might be due to invalid IL or missing references) //IL_01f1: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_0474: Unknown result type (might be due to invalid IL or missing references) //IL_0480: Unknown result type (might be due to invalid IL or missing references) //IL_04b0: Unknown result type (might be due to invalid IL or missing references) //IL_04b1: Unknown result type (might be due to invalid IL or missing references) //IL_04b3: Unknown result type (might be due to invalid IL or missing references) //IL_04b8: Unknown result type (might be due to invalid IL or missing references) //IL_04ba: Unknown result type (might be due to invalid IL or missing references) //IL_04bc: Unknown result type (might be due to invalid IL or missing references) //IL_04be: Unknown result type (might be due to invalid IL or missing references) //IL_04c3: Unknown result type (might be due to invalid IL or missing references) //IL_0768: Unknown result type (might be due to invalid IL or missing references) //IL_0774: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing references) //IL_0206: Unknown result type (might be due to invalid IL or missing references) //IL_020d: Expected O, but got Unknown //IL_0211: Unknown result type (might be due to invalid IL or missing references) //IL_0216: Unknown result type (might be due to invalid IL or missing references) //IL_0218: 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_022b: 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_0261: Unknown result type (might be due to invalid IL or missing references) //IL_01db: Unknown result type (might be due to invalid IL or missing references) //IL_050f: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Unknown result type (might be due to invalid IL or missing references) //IL_051b: Unknown result type (might be due to invalid IL or missing references) //IL_052a: Unknown result type (might be due to invalid IL or missing references) //IL_0558: Unknown result type (might be due to invalid IL or missing references) //IL_0563: Unknown result type (might be due to invalid IL or missing references) //IL_056e: Unknown result type (might be due to invalid IL or missing references) //IL_0579: Unknown result type (might be due to invalid IL or missing references) //IL_07de: Unknown result type (might be due to invalid IL or missing references) //IL_07e8: Unknown result type (might be due to invalid IL or missing references) //IL_07b9: Unknown result type (might be due to invalid IL or missing references) //IL_07c3: Unknown result type (might be due to invalid IL or missing references) //IL_04f9: Unknown result type (might be due to invalid IL or missing references) //IL_04d8: Unknown result type (might be due to invalid IL or missing references) //IL_04e2: Unknown result type (might be due to invalid IL or missing references) //IL_0666: Unknown result type (might be due to invalid IL or missing references) //IL_066f: Unknown result type (might be due to invalid IL or missing references) //IL_0674: Unknown result type (might be due to invalid IL or missing references) //IL_0680: Unknown result type (might be due to invalid IL or missing references) //IL_0687: Unknown result type (might be due to invalid IL or missing references) //IL_068c: Unknown result type (might be due to invalid IL or missing references) //IL_05da: Unknown result type (might be due to invalid IL or missing references) //IL_05e3: Unknown result type (might be due to invalid IL or missing references) //IL_05e8: Unknown result type (might be due to invalid IL or missing references) //IL_05ed: Unknown result type (might be due to invalid IL or missing references) //IL_05f5: Unknown result type (might be due to invalid IL or missing references) //IL_0604: Unknown result type (might be due to invalid IL or missing references) //IL_0612: Unknown result type (might be due to invalid IL or missing references) Dungeon dungeon3 = GameManager.Instance.Dungeon; tk2dTileMap mainTilemap = dungeon3.MainTilemap; if ((Object)(object)mainTilemap == (Object)null) { ETGModConsole.Log((object)"ERROR: TileMap object is null! Something seriously went wrong!", false); Debug.Log((object)"ERROR: TileMap object is null! Something seriously went wrong!"); return null; } ExpandTK2DDungeonAssembler expandTK2DDungeonAssembler = new ExpandTK2DDungeonAssembler(); expandTK2DDungeonAssembler.Initialize(dungeon2.tileIndices); IntVector2 zero = IntVector2.Zero; IntVector2 val = new IntVector2(50, 50); int x = val.x; int y = val.y; IntVector2 val2 = default(IntVector2); ((IntVector2)(ref val2))..ctor(int.MaxValue, int.MaxValue); IntVector2 val3 = new IntVector2(int.MinValue, int.MinValue); val2 = IntVector2.Min(val2, zero); IntVector2 val4 = IntVector2.Max(val3, zero + new IntVector2(prototype.Width, prototype.Height)) - val2; IntVector2 val5 = IntVector2.Min(IntVector2.Zero, -1 * val2); val4 += val5; IntVector2 val6 = default(IntVector2); ((IntVector2)(ref val6))..ctor(dungeon3.data.Width + x, x); int num = dungeon3.data.Width + x * 2 + val4.x; int num2 = Mathf.Max(dungeon3.data.Height, val4.y + x * 2); CellData[][] array = BraveUtility.MultidimensionalArrayResize(dungeon3.data.cellData, dungeon3.data.Width, dungeon3.data.Height, num, num2); dungeon3.data.cellData = array; dungeon3.data.ClearCachedCellData(); IntVector2 val7 = default(IntVector2); ((IntVector2)(ref val7))..ctor(prototype.Width, prototype.Height); IntVector2 val8 = zero + val5; IntVector2 val9 = val6 + val8; CellArea val10 = new CellArea(val9, val7, 0); val10.prototypeRoom = prototype; RoomHandler val11 = new RoomHandler(val10); for (int i = -x; i < val7.x + x; i++) { for (int j = -x; j < val7.y + x; j++) { IntVector2 val12 = new IntVector2(i, j) + val9; if ((i >= 0 && j >= 0 && i < val7.x && j < val7.y) || array[val12.x][val12.y] == null) { CellData val13 = new CellData(val12, (CellType)1); val13.positionInTilemap = val13.positionInTilemap - val6 + new IntVector2(y, y); val13.parentArea = val10; val13.parentRoom = val11; val13.nearestRoom = val11; val13.distanceFromNearestRoom = 0f; array[val12.x][val12.y] = val13; } } } dungeon3.data.rooms.Add(val11); try { GenerateOutOfBoundsWalls(val11); val11.WriteRoomData(dungeon3.data); } catch (Exception) { if (ExpandSettings.debugMode || !suppressExceptionWarnings) { ETGModConsole.Log((object)("WARNING: Exception caused during WriteRoomData step on room: " + val11.GetRoomName()), false); } } try { GenerateLightsForRoomFromOtherTileset(dungeon2.decoSettings, val11, GameObject.Find("_Lights").transform, dungeon3, dungeon2, lightStyle); } catch (Exception ex2) { if (ExpandSettings.debugMode || !suppressExceptionWarnings) { ETGModConsole.Log((object)("WARNING: Exception caused during GenerateLightsForRoom step on room: " + val11.GetRoomName()), false); ETGModConsole.Log((object)("WARNING: Trying fall back code..." + val11.GetRoomName()), false); Debug.LogException(ex2); } try { dungeon3.data.GenerateLightsForRoom(dungeon3.decoSettings, val11, GameObject.Find("_Lights").transform, lightStyle); } catch (Exception ex3) { if (ExpandSettings.debugMode || !suppressExceptionWarnings) { ETGModConsole.Log((object)("WARNING: Exception caused during GenerateLightsForRoom step on room while attempting fall back code: " + val11.GetRoomName()), false); Debug.LogException(ex3); } } } postProcessCellData?.Invoke(val11); if ((int)val11.area.PrototypeRoomCategory == 6) { val11.BuildSecretRoomCover(); } MaybeSpawnWallMimics(dungeon3, val11, (ValidTilesets)2, SpawnWallMimic); GameObject val14 = (GameObject)Object.Instantiate(BraveResources.Load("RuntimeTileMap", ".prefab")); tk2dTileMap component = val14.GetComponent(); string text = Random.Range(10000, 99999).ToString(); ((Object)val14).name = RunTimeTileMapName + "_RuntimeTilemap_" + text; ((Object)component.renderData).name = "Glitch_RuntimeTilemap_" + text + " Render Data"; component.Editor__SpriteCollection = dungeon2.tileIndices.dungeonCollection; try { ExpandTK2DDungeonAssembler.RuntimeResizeTileMap(component, val4.x + y * 2, val4.y + y * 2, mainTilemap.partitionSizeX, mainTilemap.partitionSizeY); IntVector2 val15 = default(IntVector2); ((IntVector2)(ref val15))..ctor(prototype.Width, prototype.Height); IntVector2 val16 = zero + val5; IntVector2 val17 = val6 + val16; for (int k = -y; k < val15.x + y; k++) { for (int l = -y; l < val15.y + y + 2; l++) { expandTK2DDungeonAssembler.BuildTileIndicesForCell(dungeon3, dungeon2, component, val17.x + k, val17.y + l); } } RenderMeshBuilder.CurrentCellXOffset = val6.x - y; RenderMeshBuilder.CurrentCellYOffset = val6.y - y; component.ForceBuild(); RenderMeshBuilder.CurrentCellXOffset = 0; RenderMeshBuilder.CurrentCellYOffset = 0; component.renderData.transform.position = new Vector3((float)(val6.x - y), (float)(val6.y - y), (float)(val6.y - y)); } catch (Exception ex4) { if (ExpandSettings.debugMode || !suppressExceptionWarnings) { ETGModConsole.Log((object)"WARNING: Exception occured during RuntimeResizeTileMap / RenderMeshBuilder steps!", false); Debug.Log((object)"WARNING: Exception occured during RuntimeResizeTileMap/RenderMeshBuilder steps!"); Debug.LogException(ex4); } return null; } val11.OverrideTilemap = component; if (allowProceduralLightFixtures) { for (int m = 0; m < val11.area.dimensions.x; m++) { for (int n = 0; n < val11.area.dimensions.y + 2; n++) { IntVector2 val18 = val11.area.basePosition + new IntVector2(m, n); if (dungeon3.data.CheckInBoundsAndValid(val18)) { CellData currentCell = dungeon3.data[val18]; ExpandTK2DInteriorDecorator.PlaceLightDecorationForCell(dungeon3, component, currentCell, val18); } } } } Pathfinder.Instance.InitializeRegion(dungeon3.data, val11.area.basePosition + new IntVector2(-3, -3), val11.area.dimensions + new IntVector2(3, 3)); if (prototype.usesProceduralDecoration && prototype.allowFloorDecoration && allowProceduralDecoration) { ExpandTK2DInteriorDecorator expandTK2DInteriorDecorator = new ExpandTK2DInteriorDecorator(expandTK2DDungeonAssembler); try { expandTK2DInteriorDecorator.HandleRoomDecoration(val11, dungeon3, dungeon2, mainTilemap); } catch (Exception ex5) { if (ExpandSettings.debugMode || !suppressExceptionWarnings) { ETGModConsole.Log((object)"WARNING: Exception occured during HandleRoomDecoration steps!", false); Debug.Log((object)"WARNING: Exception occured during RuntimeResizeTileMap/RenderMeshBuilder steps!"); Debug.LogException(ex5); } } } val11.PostGenerationCleanup(); GameObject val19 = new GameObject(((Object)component.renderData).name + "_CollisionObject"); IntVector2 basePosition = val11.area.basePosition; val19.transform.parent = val11.hierarchyParent; IntVector2 dimensions = val11.area.dimensions; val19.transform.position = ((IntVector2)(ref basePosition)).ToVector3(); IntVector2 value = default(IntVector2); for (int num3 = -2; num3 < dimensions.x + 2; num3++) { for (int num4 = -2; num4 < dimensions.y + 2; num4++) { int num5 = basePosition.x + num3; int num6 = basePosition.y + num4; if (dungeon3.data.isWall(num5, num6)) { ((IntVector2)(ref value))..ctor(num3, num4); if (dungeon3.data.isFaceWallLower(num5, num6)) { GenerateOrAddToRigidBody(val19, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: false, IntVector2.One, value); } else { GenerateOrAddToRigidBody(val19, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: false, IntVector2.One, value); } } } } if (!Object.op_Implicit((Object)(object)val19.GetComponent())) { Object.Destroy((Object)(object)val19); } ExpandFloorDecorator.Instance.PlaceFloorDecoration(dungeon3, new List { val11 }); ExpandFloorDecorator.DestroyInstance(); HandleSpecificRoomAGDInjection(val11, dungeon3, dungeon2.tileIndices.tilesetId); if (addTeleporter) { val11.AddProceduralTeleporterToRoom(); } if (addRoomToMinimap) { if (RoomExploredOnMinimap) { val11.visibility = (VisibilityStatus)1; } else { val11.visibility = (VisibilityStatus)0; } if (isSecretRatExitRoom && RoomExploredOnMinimap) { val11.visibility = (VisibilityStatus)0; } Minimap.Instance.InitializeMinimap(dungeon3.data); ((MonoBehaviour)Minimap.Instance).StartCoroutine(DoMinimapRebuildOnRoom(val11)); } DeadlyDeadlyGoopManager.ReinitializeData(); return val11; } public static IEnumerator DoMinimapRebuildOnRoom(RoomHandler room) { yield return (object)new WaitForEndOfFrame(); yield return ((MonoBehaviour)Minimap.Instance).StartCoroutine(Minimap.Instance.RevealMinimapRoomInternal(room, true, true, false)); } public static GameObject GenerateOutOfBoundsWalls(RoomHandler targetRoom = null, IntVector2? position = null, IntVector2? size = null, bool reletiveToRoom = true, bool allowBackRoomsWarp = true) { //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Expected O, but got Unknown //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_009b: 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_00a7: 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_00b5: 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) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //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_0125: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_0148: 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_0164: Unknown result type (might be due to invalid IL or missing references) //IL_016e: 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_0183: 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_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: Unknown result type (might be due to invalid IL or missing references) //IL_01dd: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: 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_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0213: Unknown result type (might be due to invalid IL or missing references) //IL_021d: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_0250: 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_0265: Unknown result type (might be due to invalid IL or missing references) //IL_0281: Unknown result type (might be due to invalid IL or missing references) //IL_028a: Unknown result type (might be due to invalid IL or missing references) //IL_0298: Unknown result type (might be due to invalid IL or missing references) //IL_02b4: Unknown result type (might be due to invalid IL or missing references) //IL_02bd: Unknown result type (might be due to invalid IL or missing references) //IL_02c7: Unknown result type (might be due to invalid IL or missing references) //IL_02d2: Unknown result type (might be due to invalid IL or missing references) if (((!reletiveToRoom && !position.HasValue) || (targetRoom == null && reletiveToRoom)) | (!size.HasValue && targetRoom == null)) { return null; } string text = string.Empty; bool flag = true; if (!allowBackRoomsWarp | ExpandSettings.HasVisitedBackrooms) { flag = false; } if (targetRoom == null) { text = "ModifiedRoom_" + Random.Range(0, 9999); } GameObject val = new GameObject(text + "_OutOfBoundsCollision" + Random.Range(0, 9999)); IntVector2 val2 = IntVector2.Zero; if (position.HasValue) { val2 = position.Value; } if (reletiveToRoom && targetRoom != null) { val2 += targetRoom.area.basePosition - new IntVector2(2, 2); } if (targetRoom != null) { val.transform.parent = targetRoom.hierarchyParent; } IntVector2 val3 = default(IntVector2); ((IntVector2)(ref val3))..ctor(10, 10); if (size.HasValue) { val3 = size.Value; } else if (targetRoom != null) { val3 = targetRoom.area.dimensions; } val.transform.position = ((IntVector2)(ref val2)).ToVector3(); CollisionLayer collisionLayer = (CollisionLayer)5; if (flag) { collisionLayer = (CollisionLayer)16; } GenerateOrAddToRigidBody(val, collisionLayer, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, flag, replaceExistingColliders: false, UsesPixelsAsUnitSize: false, (IntVector2?)new IntVector2(val3.x + 6, 1), (IntVector2?)new IntVector2(-2, -2)); GenerateOrAddToRigidBody(val, collisionLayer, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, flag, replaceExistingColliders: false, UsesPixelsAsUnitSize: false, (IntVector2?)new IntVector2(val3.x + 6, 1), (IntVector2?)new IntVector2(-2, val3.y + 4)); GenerateOrAddToRigidBody(val, collisionLayer, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, flag, replaceExistingColliders: false, UsesPixelsAsUnitSize: false, (IntVector2?)new IntVector2(1, val3.y + 6), (IntVector2?)new IntVector2(-2, -2)); GenerateOrAddToRigidBody(val, collisionLayer, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, flag, replaceExistingColliders: false, UsesPixelsAsUnitSize: false, (IntVector2?)new IntVector2(1, val3.y + 6), (IntVector2?)new IntVector2(val3.x + 4, -2)); if (!flag) { GenerateOrAddToRigidBody(val, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, flag, replaceExistingColliders: false, UsesPixelsAsUnitSize: false, (IntVector2?)new IntVector2(val3.x + 6, 1), (IntVector2?)new IntVector2(-2, -2)); GenerateOrAddToRigidBody(val, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, flag, replaceExistingColliders: false, UsesPixelsAsUnitSize: false, (IntVector2?)new IntVector2(val3.x + 6, 1), (IntVector2?)new IntVector2(-2, val3.y + 4)); GenerateOrAddToRigidBody(val, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, flag, replaceExistingColliders: false, UsesPixelsAsUnitSize: false, (IntVector2?)new IntVector2(1, val3.y + 6), (IntVector2?)new IntVector2(-2, -2)); GenerateOrAddToRigidBody(val, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, flag, replaceExistingColliders: false, UsesPixelsAsUnitSize: false, (IntVector2?)new IntVector2(1, val3.y + 6), (IntVector2?)new IntVector2(val3.x + 4, -2)); } if (flag) { ExpandWarpManager expandWarpManager = val.AddComponent(); expandWarpManager.OverrideTargetFloor = "tt_backrooms"; expandWarpManager.warpType = ExpandWarpManager.WarpType.FloorWarp; expandWarpManager.ConfigureOnPlacement(targetRoom); } if (!Object.op_Implicit((Object)(object)val.GetComponent())) { Object.Destroy((Object)(object)val); return null; } return val; } public static void MaybeSpawnWallMimics(Dungeon dungeon, RoomHandler currentRoom, ValidTilesets TilesetOverride = 2, bool GuranteedWallMimic = false, int OverrideWallMimicCount = -1, tk2dSpriteCollectionData FakeWallDungeonCollectionOverride = null) { //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Invalid comparison between Unknown and I4 //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Invalid comparison between Unknown and I4 //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Invalid comparison between Unknown and I4 //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Invalid comparison between Unknown and I4 //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Invalid comparison between Unknown and I4 //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Invalid comparison between Unknown and I4 //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Invalid comparison between Unknown and I4 //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Invalid comparison between Unknown and I4 //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Invalid comparison between Unknown and I4 //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Invalid comparison between Unknown and I4 //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Invalid comparison between Unknown and I4 //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Invalid comparison between Unknown and I4 //IL_08ac: Unknown result type (might be due to invalid IL or missing references) //IL_08b1: Unknown result type (might be due to invalid IL or missing references) //IL_08b5: Unknown result type (might be due to invalid IL or missing references) //IL_08ba: Unknown result type (might be due to invalid IL or missing references) //IL_08bc: Invalid comparison between Unknown and I4 //IL_0196: Unknown result type (might be due to invalid IL or missing references) //IL_08d5: Invalid comparison between Unknown and I4 //IL_08bf: Unknown result type (might be due to invalid IL or missing references) //IL_08c6: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_0908: Unknown result type (might be due to invalid IL or missing references) //IL_08d8: Unknown result type (might be due to invalid IL or missing references) //IL_08e1: Unknown result type (might be due to invalid IL or missing references) //IL_07c8: Unknown result type (might be due to invalid IL or missing references) //IL_07ce: Invalid comparison between Unknown and I4 //IL_07d2: Unknown result type (might be due to invalid IL or missing references) //IL_07d8: Invalid comparison between Unknown and I4 //IL_0635: Unknown result type (might be due to invalid IL or missing references) //IL_075f: Unknown result type (might be due to invalid IL or missing references) //IL_050d: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) if (!GuranteedWallMimic && !ExpandPlaceFloorObjects.PlayerHasWallMimicItem && Random.value < 0.85f) { return; } string text = "NULL"; if (!string.IsNullOrEmpty(currentRoom.GetRoomName())) { text = currentRoom.GetRoomName(); } if ((currentRoom.PrecludeTilemapDrawing | ((int)currentRoom.area.PrototypeRoomCategory == 6) | currentRoom.IsMaintenanceRoom()) || (!GuranteedWallMimic && ((currentRoom.IsShop | currentRoom.GetRoomName().StartsWith("DraGunRoom") | ExpandPlaceFloorObjects.BannedWallMimicRoomList.Contains(text.ToLower())) || ((int)currentRoom.area.PrototypeRoomCategory == 3 && BraveUtility.RandomBool())))) { return; } int num = 1; if ((int)TilesetOverride != 2) { TilesetOverride = dungeon.tileIndices.tilesetId; } if (ExpandPlaceFloorObjects.PlayerHasWallMimicItem) { if ((int)TilesetOverride <= 64) { if ((int)TilesetOverride != 8) { if ((int)TilesetOverride != 32) { if ((int)TilesetOverride != 64) { goto IL_010b; } num = 2; } else { num = 2; } } else { num = 2; } } else if ((int)TilesetOverride <= 1024) { if ((int)TilesetOverride != 128) { if ((int)TilesetOverride != 1024) { goto IL_010b; } num = 2; } else { num = 3; } } else if ((int)TilesetOverride != 2048) { if ((int)TilesetOverride != 4096) { goto IL_010b; } num = 2; } else { num = 2; } } goto IL_010d; IL_010b: num = 1; goto IL_010d; IL_010d: if (OverrideWallMimicCount != -1) { num = OverrideWallMimicCount; } int num2 = 0; int num3 = 0; int num4 = 0; int num5 = 0; int i = 0; int num6 = 0; List> list = new List>(); try { for (int j = -1; j <= currentRoom.area.dimensions.x; j++) { for (int k = -1; k <= currentRoom.area.dimensions.y; k++) { int num7 = currentRoom.area.basePosition.x + j; int num8 = currentRoom.area.basePosition.y + k; if (!dungeon.data.isWall(num7, num8) || num7 % 4 != 0 || num8 % 4 != 0 || dungeon.data.GetAbsoluteRoomFromPosition(new IntVector2(num7, num8)) == null || dungeon.data.GetAbsoluteRoomFromPosition(new IntVector2(num7, num8)) != currentRoom) { continue; } int num9 = 0; if (!dungeon.data.isWall(num7 - 1, num8 + 2) && !dungeon.data.isWall(num7, num8 + 2) && !dungeon.data.isWall(num7 + 1, num8 + 2) && !dungeon.data.isWall(num7 + 2, num8 + 2) && !dungeon.data.isWall(num7 - 1, num8 + 1) && !dungeon.data.isWall(num7, num8 + 1) && !dungeon.data.isWall(num7 + 1, num8 + 1) && !dungeon.data.isWall(num7 + 2, num8 + 1) && dungeon.data.isWall(num7 - 1, num8) && dungeon.data.isWall(num7, num8) && dungeon.data.isWall(num7 + 1, num8) && dungeon.data.isWall(num7 + 2, num8) && dungeon.data.isWall(num7 - 1, num8 - 1) && dungeon.data.isWall(num7, num8 - 1) && dungeon.data.isWall(num7 + 1, num8 - 1) && dungeon.data.isWall(num7 + 2, num8 - 1) && !dungeon.data.isPlainEmptyCell(num7 - 1, num8 - 3) && !dungeon.data.isPlainEmptyCell(num7, num8 - 3) && !dungeon.data.isPlainEmptyCell(num7 + 1, num8 - 3) && !dungeon.data.isPlainEmptyCell(num7 + 2, num8 - 3)) { list.Add(Tuple.Create(new IntVector2(num7, num8), (Direction)0)); num9++; num6++; } else if (dungeon.data.isWall(num7 - 1, num8 + 2) && dungeon.data.isWall(num7, num8 + 2) && dungeon.data.isWall(num7 + 1, num8 + 2) && dungeon.data.isWall(num7 + 2, num8 + 2) && dungeon.data.isWall(num7 - 1, num8 + 1) && dungeon.data.isWall(num7, num8 + 1) && dungeon.data.isWall(num7 + 1, num8 + 1) && dungeon.data.isWall(num7 + 2, num8 + 1) && dungeon.data.isWall(num7 - 1, num8) && dungeon.data.isWall(num7, num8) && dungeon.data.isWall(num7 + 1, num8) && dungeon.data.isWall(num7 + 2, num8) && dungeon.data.isPlainEmptyCell(num7, num8 - 1) && dungeon.data.isPlainEmptyCell(num7 + 1, num8 - 1) && !dungeon.data.isPlainEmptyCell(num7, num8 + 4) && !dungeon.data.isPlainEmptyCell(num7 + 1, num8 + 4)) { list.Add(Tuple.Create(new IntVector2(num7, num8), (Direction)4)); num9++; num2++; } else if (dungeon.data.isWall(num7, num8 + 2) && dungeon.data.isWall(num7, num8 + 1) && dungeon.data.isWall(num7 - 1, num8) && dungeon.data.isWall(num7, num8 - 1) && dungeon.data.isWall(num7, num8 - 2) && !dungeon.data.isPlainEmptyCell(num7 - 2, num8 + 2) && !dungeon.data.isPlainEmptyCell(num7 - 2, num8 + 1) && !dungeon.data.isPlainEmptyCell(num7 - 2, num8) && dungeon.data.isPlainEmptyCell(num7 + 1, num8) && dungeon.data.isPlainEmptyCell(num7 + 1, num8 - 1) && !dungeon.data.isPlainEmptyCell(num7 - 2, num8 - 1) && !dungeon.data.isPlainEmptyCell(num7 - 2, num8 - 2)) { list.Add(Tuple.Create(new IntVector2(num7, num8), (Direction)2)); num9++; num3++; } else if (dungeon.data.isWall(num7, num8 + 2) && dungeon.data.isWall(num7, num8 + 1) && dungeon.data.isWall(num7 + 1, num8) && dungeon.data.isWall(num7, num8 - 1) && dungeon.data.isWall(num7, num8 - 2) && !dungeon.data.isPlainEmptyCell(num7 + 2, num8 + 2) && !dungeon.data.isPlainEmptyCell(num7 + 2, num8 + 1) && !dungeon.data.isPlainEmptyCell(num7 + 2, num8) && dungeon.data.isPlainEmptyCell(num7 - 1, num8) && dungeon.data.isPlainEmptyCell(num7 - 1, num8 - 1) && !dungeon.data.isPlainEmptyCell(num7 + 2, num8 - 1) && !dungeon.data.isPlainEmptyCell(num7 + 2, num8 - 2)) { list.Add(Tuple.Create(new IntVector2(num7 - 1, num8), (Direction)6)); num9++; num4++; } if (num9 <= 0) { continue; } bool flag = true; for (int l = -5; l <= 5 && flag; l++) { for (int m = -5; m <= 5 && flag; m++) { int num10 = num7 + l; int num11 = num8 + m; if (dungeon.data.CheckInBoundsAndValid(num10, num11)) { CellData val = dungeon.data[num10, num11]; if (val != null && (((int)val.type == 4) | ((int)val.diagonalWallType > 0))) { flag = false; } } } } if (!flag) { while (num9 > 0) { list.RemoveAt(list.Count - 1); num9--; } } } } if (list.Count <= 0 && ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] No valid locations found for room: " + text + " while attempting Wall Mimic placement!"), false); } for (; i < num; i++) { if (list.Count <= 0) { break; } if (list.Count <= 0) { continue; } Tuple val2 = BraveUtility.RandomElement>(list); IntVector2 first = val2.First; Direction second = val2.Second; if ((int)second != 6) { currentRoom.RuntimeStampCellComplex(first.x, first.y, (CellType)2, (DiagonalWallType)0); } if ((int)second != 2) { currentRoom.RuntimeStampCellComplex(first.x + 1, first.y, (CellType)2, (DiagonalWallType)0); } ExpandWallMimicManager component = ((Component)AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(GameManager.Instance.RewardManager.WallMimicChances.EnemyGuid), first, currentRoom, true, (AwakenAnimationType)0, true)).gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { if (ExpandPlaceFloorObjects.PlayerHasWallMimicItem) { component.CursedBrickMode = true; } component.DungeonCollectionOverride = FakeWallDungeonCollectionOverride; component.SkipPlayerCheck = true; } list.Remove(val2); num5++; } } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] Exception while trying to place WallMimic(s) in room: " + currentRoom.GetRoomName()), false); Debug.LogException(ex); } return; } if (num5 > 0) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] Wall Mimic(s) succesfully placed in room: " + currentRoom.GetRoomName()), false); ETGModConsole.Log((object)("[DEBUG] Number of Valid North Wall Mimics locations: " + num2), false); ETGModConsole.Log((object)("[DEBUG] Number of Valid South Wall Mimics locations: " + num6), false); ETGModConsole.Log((object)("[DEBUG] Number of Valid East Wall Mimics locations: " + num4), false); ETGModConsole.Log((object)("[DEBUG] Number of Valid West Wall Mimics locations: " + num3), false); ETGModConsole.Log((object)("[DEBUG] Number of Wall Mimics succesfully placed in room: " + num5), false); } } else if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] No valid location found for room: " + currentRoom.GetRoomName() + " while attempting Wall Mimic placement!"), false); } } public static void GenerateLightsForRoomFromOtherTileset(TilemapDecoSettings decoSettings, RoomHandler rh, Transform lightParent, Dungeon dungeon, Dungeon dungeon2, LightGenerationStyle style = 0) { //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_0219: Unknown result type (might be due to invalid IL or missing references) //IL_0220: Unknown result type (might be due to invalid IL or missing references) //IL_0224: Invalid comparison between Unknown and I4 //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_0229: Invalid comparison between Unknown and I4 //IL_0273: Unknown result type (might be due to invalid IL or missing references) //IL_0278: Unknown result type (might be due to invalid IL or missing references) //IL_023a: Unknown result type (might be due to invalid IL or missing references) //IL_0240: Invalid comparison between Unknown and I4 //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_022f: Invalid comparison between Unknown and I4 //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_024e: Invalid comparison between Unknown and I4 //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_02ca: Unknown result type (might be due to invalid IL or missing references) //IL_02de: Unknown result type (might be due to invalid IL or missing references) //IL_02e3: Unknown result type (might be due to invalid IL or missing references) //IL_02e8: Unknown result type (might be due to invalid IL or missing references) //IL_02ae: Unknown result type (might be due to invalid IL or missing references) //IL_02b6: Unknown result type (might be due to invalid IL or missing references) //IL_02bb: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Unknown result type (might be due to invalid IL or missing references) //IL_0256: 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_0121: Unknown result type (might be due to invalid IL or missing references) //IL_031a: Unknown result type (might be due to invalid IL or missing references) //IL_031c: Unknown result type (might be due to invalid IL or missing references) //IL_0321: Unknown result type (might be due to invalid IL or missing references) //IL_0326: Unknown result type (might be due to invalid IL or missing references) //IL_0336: Unknown result type (might be due to invalid IL or missing references) //IL_033b: Unknown result type (might be due to invalid IL or missing references) //IL_0343: Unknown result type (might be due to invalid IL or missing references) //IL_0345: Unknown result type (might be due to invalid IL or missing references) //IL_034a: Unknown result type (might be due to invalid IL or missing references) //IL_0354: Unknown result type (might be due to invalid IL or missing references) //IL_035a: Invalid comparison between Unknown and I4 //IL_0308: Unknown result type (might be due to invalid IL or missing references) //IL_030b: Unknown result type (might be due to invalid IL or missing references) //IL_0386: Unknown result type (might be due to invalid IL or missing references) //IL_0388: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Unknown result type (might be due to invalid IL or missing references) //IL_0397: Unknown result type (might be due to invalid IL or missing references) //IL_039d: Invalid comparison between Unknown and I4 //IL_0362: Unknown result type (might be due to invalid IL or missing references) //IL_036f: Unknown result type (might be due to invalid IL or missing references) //IL_0374: Unknown result type (might be due to invalid IL or missing references) //IL_0379: Unknown result type (might be due to invalid IL or missing references) //IL_03c2: Unknown result type (might be due to invalid IL or missing references) //IL_03c4: Unknown result type (might be due to invalid IL or missing references) //IL_03c9: Unknown result type (might be due to invalid IL or missing references) //IL_03d3: Unknown result type (might be due to invalid IL or missing references) //IL_03d9: Invalid comparison between Unknown and I4 //IL_03a5: Unknown result type (might be due to invalid IL or missing references) //IL_03b2: Unknown result type (might be due to invalid IL or missing references) //IL_03fb: Unknown result type (might be due to invalid IL or missing references) //IL_03fd: Unknown result type (might be due to invalid IL or missing references) //IL_0402: Unknown result type (might be due to invalid IL or missing references) //IL_040c: Unknown result type (might be due to invalid IL or missing references) //IL_0412: Invalid comparison between Unknown and I4 //IL_03e1: Unknown result type (might be due to invalid IL or missing references) //IL_03ee: Unknown result type (might be due to invalid IL or missing references) //IL_0437: Unknown result type (might be due to invalid IL or missing references) //IL_0444: Unknown result type (might be due to invalid IL or missing references) //IL_041d: Unknown result type (might be due to invalid IL or missing references) //IL_042a: Unknown result type (might be due to invalid IL or missing references) //IL_0486: Unknown result type (might be due to invalid IL or missing references) //IL_0493: Unknown result type (might be due to invalid IL or missing references) //IL_0532: Unknown result type (might be due to invalid IL or missing references) //IL_0535: Invalid comparison between Unknown and I4 //IL_0537: Unknown result type (might be due to invalid IL or missing references) //IL_053a: Invalid comparison between Unknown and I4 //IL_05ec: Unknown result type (might be due to invalid IL or missing references) //IL_05f1: Unknown result type (might be due to invalid IL or missing references) //IL_0613: Unknown result type (might be due to invalid IL or missing references) //IL_0622: Unknown result type (might be due to invalid IL or missing references) //IL_0633: Unknown result type (might be due to invalid IL or missing references) //IL_0638: Unknown result type (might be due to invalid IL or missing references) //IL_063d: Unknown result type (might be due to invalid IL or missing references) //IL_063f: Unknown result type (might be due to invalid IL or missing references) //IL_0675: Unknown result type (might be due to invalid IL or missing references) //IL_0678: Invalid comparison between Unknown and I4 //IL_067a: Unknown result type (might be due to invalid IL or missing references) //IL_067d: Invalid comparison between Unknown and I4 //IL_06a1: Unknown result type (might be due to invalid IL or missing references) //IL_06a6: Unknown result type (might be due to invalid IL or missing references) //IL_0744: Unknown result type (might be due to invalid IL or missing references) //IL_0750: Unknown result type (might be due to invalid IL or missing references) //IL_07f8: Unknown result type (might be due to invalid IL or missing references) //IL_0802: Unknown result type (might be due to invalid IL or missing references) //IL_0807: Unknown result type (might be due to invalid IL or missing references) //IL_081a: Unknown result type (might be due to invalid IL or missing references) //IL_0821: Invalid comparison between Unknown and I4 //IL_06dc: Unknown result type (might be due to invalid IL or missing references) //IL_06e3: Invalid comparison between Unknown and I4 //IL_0851: Unknown result type (might be due to invalid IL or missing references) //IL_0856: Unknown result type (might be due to invalid IL or missing references) //IL_082b: Unknown result type (might be due to invalid IL or missing references) //IL_0830: Unknown result type (might be due to invalid IL or missing references) //IL_0835: Unknown result type (might be due to invalid IL or missing references) //IL_0769: Unknown result type (might be due to invalid IL or missing references) //IL_076b: Unknown result type (might be due to invalid IL or missing references) //IL_0772: Unknown result type (might be due to invalid IL or missing references) //IL_0777: Unknown result type (might be due to invalid IL or missing references) //IL_0781: Unknown result type (might be due to invalid IL or missing references) //IL_0787: Invalid comparison between Unknown and I4 //IL_07b5: Unknown result type (might be due to invalid IL or missing references) //IL_07bf: Expected O, but got Unknown //IL_07d5: Unknown result type (might be due to invalid IL or missing references) if (!dungeon2.roomMaterialDefinitions[rh.RoomVisualSubtype].useLighting) { return; } bool flag = decoSettings.lightCookies.Length != 0; List> list = new List>(); bool flag2 = false; List list2; int count; if (rh.area != null && !rh.area.IsProceduralRoom && !rh.area.prototypeRoom.usesProceduralLighting) { list2 = rh.GatherManualLightPositions(); count = list2.Count; } else { flag2 = true; list2 = rh.GatherOptimalLightPositions(decoSettings); count = list2.Count; if (rh.area != null && (Object)(object)rh.area.prototypeRoom != (Object)null) { PostprocessLightPositions(dungeon, list2, rh); } } if ((Object)(object)rh.area.prototypeRoom != (Object)null) { for (int i = 0; i < rh.area.instanceUsedExits.Count; i++) { RuntimeRoomExitData val = rh.area.exitToLocalDataMap[rh.area.instanceUsedExits[i]]; RuntimeExitDefinition val2 = rh.exitDefinitionsByExit[val]; if (val.TotalExitLength > 4 && !val2.containsLight) { IntVector2 val3 = ((!val.jointedExit) ? val2.GetLinearMidpoint(rh) : (val.ExitOrigin - IntVector2.One)); list.Add(new Tuple(val3, 0.5f)); val2.containsLight = true; } } } ValidTilesets tilesetId = dungeon2.tileIndices.tilesetId; float lightCullingPercentage = decoSettings.lightCullingPercentage; if (flag2 && lightCullingPercentage > 0f) { int num = Mathf.FloorToInt((float)list2.Count * lightCullingPercentage); int num2 = Mathf.FloorToInt((float)list.Count * lightCullingPercentage); if (num == 0 && num2 == 0 && list2.Count + list.Count > 4) { num = 1; } while (num > 0 && list2.Count > 0) { list2.RemoveAt(Random.Range(0, list2.Count)); num--; } while (num2 > 0 && list.Count > 0) { list.RemoveAt(Random.Range(0, list.Count)); num2--; } } int count2 = list2.Count; if ((int)GameManager.Instance.CurrentLevelOverrideState == 0 && ((int)tilesetId == 16 || (int)tilesetId == 1 || (int)tilesetId == 32) && (flag2 || (int)rh.area.PrototypeRoomCategory == 2 || (int)rh.area.PrototypeRoomCategory == 1 || (int)rh.area.PrototypeRoomCategory == 0)) { list2.AddRange(rh.GatherPitLighting(decoSettings, list2)); } for (int j = 0; j < list2.Count + list.Count; j++) { IntVector2 negOne = IntVector2.NegOne; float num3 = 1f; bool flag3 = false; if (j < list2.Count && j >= count2) { flag3 = true; num3 = 0.6f; } if (j < list2.Count) { negOne = rh.area.basePosition + list2[j]; } else { negOne = rh.area.basePosition + list[j - list2.Count].First; num3 = list[j - list2.Count].Second; } bool flag4 = false; if (flag && flag2 && negOne == rh.GetCenterCell()) { flag4 = true; } IntVector2 val4 = negOne + IntVector2.Up; bool flag5 = j >= count; bool flag6 = false; Vector3 val5 = Vector3.zero; if ((int)dungeon.data[negOne + IntVector2.Up].type == 1) { dungeon.data[val4].cellVisualData.lightDirection = (Direction)0; val5 = Vector3.down; } else if ((int)dungeon.data[negOne + IntVector2.Right].type == 1) { dungeon.data[val4].cellVisualData.lightDirection = (Direction)2; } else if ((int)dungeon.data[negOne + IntVector2.Left].type == 1) { dungeon.data[val4].cellVisualData.lightDirection = (Direction)6; } else if ((int)dungeon.data[negOne + IntVector2.Down].type == 1) { flag6 = true; dungeon.data[val4].cellVisualData.lightDirection = (Direction)4; } else { dungeon.data[val4].cellVisualData.lightDirection = (Direction)(-1); } int num4 = rh.RoomVisualSubtype; float num5 = 0f; if ((Object)(object)rh.area.prototypeRoom != (Object)null) { PrototypeDungeonRoomCellData val6 = ((j >= list2.Count) ? rh.area.prototypeRoom.ForceGetCellDataAtPoint(list[j - list2.Count].First.x, list[j - list2.Count].First.y) : rh.area.prototypeRoom.ForceGetCellDataAtPoint(list2[j].x, list2[j].y)); if (val6 != null && val6.containsManuallyPlacedLight) { num4 = val6.lightStampIndex; num5 = (float)val6.lightPixelsOffsetY / 16f; } } if (num4 < 0 || num4 >= dungeon2.roomMaterialDefinitions.Length) { num4 = 0; } DungeonMaterial val7 = dungeon2.roomMaterialDefinitions[num4]; int num6 = -1; GameObject val8; if ((int)style == 1 || (int)style == 2) { num6 = 0; val8 = val7.lightPrefabs.elements[0].gameObject; } else { val8 = val7.lightPrefabs.SelectByWeight(ref num6, false); } if ((!val7.facewallLightStamps[num6].CanBeTopWallLight && flag6) || (!val7.facewallLightStamps[num6].CanBeCenterLight && flag5)) { if (num6 >= val7.facewallLightStamps.Count) { num6 = 0; } num6 = val7.facewallLightStamps[num6].FallbackIndex; val8 = val7.lightPrefabs.elements[num6].gameObject; } GameObject val9 = Object.Instantiate(val8, ((IntVector2)(ref val4)).ToVector3(0f), Quaternion.identity); val9.transform.parent = lightParent; val9.transform.position = ((IntVector2)(ref val4)).ToCenterVector3((float)val4.y + decoSettings.lightHeight) + new Vector3(0f, num5, 0f) + val5; ShadowSystem componentInChildren = val9.GetComponentInChildren(); Light componentInChildren2 = val9.GetComponentInChildren(); if ((Object)(object)componentInChildren2 != (Object)null) { componentInChildren2.intensity *= num3; } if ((int)style == 1 || (int)style == 2) { SceneLightManager component = val9.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { Color[] validColors = (Color[])(object)new Color[1] { component.validColors[0] }; component.validColors = validColors; } } if (flag3 && (Object)(object)componentInChildren != (Object)null) { if (Object.op_Implicit((Object)(object)componentInChildren2)) { componentInChildren2.range += (float)(((int)dungeon2.tileIndices.tilesetId != 32) ? 3 : 5); } componentInChildren.ignoreCustomFloorLight = true; } if (flag4 && flag && (Object)(object)componentInChildren != (Object)null) { componentInChildren.uLightCookie = decoSettings.GetRandomLightCookie(); componentInChildren.uLightCookieAngle = Random.Range(0f, 6.28f); componentInChildren2.intensity *= 1.5f; } if ((int)dungeon.data[val4].cellVisualData.lightDirection == 0) { bool flag7 = true; for (int k = -2; k < 3; k++) { if ((int)dungeon.data[val4 + IntVector2.Right * k].type == 2) { flag7 = false; break; } } if (flag7 && Object.op_Implicit((Object)(object)componentInChildren)) { GameObject val10 = Object.Instantiate((GameObject)BraveResources.Load("Global VFX/Wall_Light_Cookie", ".prefab")); Transform transform = val10.transform; transform.parent = val9.transform; transform.localPosition = Vector3.zero; componentInChildren.PersonalCookies.Add(val10.GetComponent()); } } CellData val11 = dungeon.data[val4 + new IntVector2(0, Mathf.RoundToInt(num5))]; if ((int)dungeon2.tileIndices.tilesetId == 64) { dungeon.data[val11.position + IntVector2.Down].cellVisualData.containsObjectSpaceStamp = true; } BraveUtility.DrawDebugSquare(((IntVector2)(ref val11.position)).ToVector2(), Color.magenta, 1000f); val11.cellVisualData.containsLight = true; val11.cellVisualData.lightObject = val9; LightStampData facewallLightStampData = val7.facewallLightStamps[num6]; LightStampData sidewallLightStampData = val7.sidewallLightStamps[num6]; val11.cellVisualData.facewallLightStampData = facewallLightStampData; val11.cellVisualData.sidewallLightStampData = sidewallLightStampData; } } public static void PostprocessLightPositions(Dungeon dungeon, List positions, RoomHandler room) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) CheckCellNeedsAdditionalLight(positions, room, dungeon.data[room.GetCenterCell()]); for (int i = 0; i < room.Cells.Count; i++) { CellData currentCell = dungeon.data[room.Cells[i]]; CheckCellNeedsAdditionalLight(positions, room, currentCell); } } public static bool CheckCellNeedsAdditionalLight(List positions, RoomHandler room, CellData currentCell) { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Invalid comparison between Unknown and I4 //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_006a: 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_007a: Unknown result type (might be due to invalid IL or missing references) int num = ((!room.area.IsProceduralRoom) ? 10 : 20); if (currentCell.isExitCell) { return false; } if ((int)currentCell.type == 1) { return false; } bool flag = true; for (int i = 0; i < positions.Count; i++) { if (IntVector2.ManhattanDistance(positions[i] + room.area.basePosition, currentCell.position) <= num) { flag = false; break; } } if (flag) { positions.Add(currentCell.position - room.area.basePosition); } return flag; } private static void HandleSpecificRoomAGDInjection(RoomHandler TargetRoom, Dungeon dungeon, ValidTilesets tilesetID, RunData runData = null, List TierList = null) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Expected O, but got Unknown //IL_0071: 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_0379: Unknown result type (might be due to invalid IL or missing references) //IL_037f: Invalid comparison between Unknown and I4 //IL_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_0227: Unknown result type (might be due to invalid IL or missing references) List list = new List(); if (runData == null) { runData = new RunData(); } if (TierList == null) { TierList = GameManager.Instance.EnemyReplacementTiers; } if (runData.AgdInjectionRunCounts == null || runData.AgdInjectionRunCounts.Length != TierList.Count) { runData.AgdInjectionRunCounts = new int[TierList.Count]; } int[] agdInjectionRunCounts = runData.AgdInjectionRunCounts; for (int i = 0; i < TierList.Count; i++) { AGDEnemyReplacementTier val = TierList[i]; int num = 0; if (val == null || val.TargetTileset != tilesetID || val.ExcludeForPrereqs() || (val.MaxPerRun > 0 && agdInjectionRunCounts[i] >= val.MaxPerRun) || !TargetRoom.EverHadEnemies || !TargetRoom.IsStandardRoom || val.ExcludeRoomForColumns(dungeon.data, TargetRoom) || val.ExcludeRoom(TargetRoom)) { continue; } TargetRoom.GetActiveEnemies((ActiveEnemyType)0, ref list); if (val.ExcludeRoomForEnemies(TargetRoom, list)) { continue; } for (int j = 0; j < list.Count; j++) { AIActor val2 = list[j]; if (!Object.op_Implicit((Object)(object)val2) || (val2.AdditionalSimpleItemDrops != null && val2.AdditionalSimpleItemDrops.Count > 0) || (Object.op_Implicit((Object)(object)((BraveBehaviour)val2).healthHaver) && ((BraveBehaviour)val2).healthHaver.IsBoss) || ((!val.TargetAllSignatureEnemies || !val2.IsSignatureEnemy) && (!val.TargetAllNonSignatureEnemies || val2.IsSignatureEnemy) && (val.TargetGuids == null || !val.TargetGuids.Contains(val2.EnemyGuid))) || !(Random.value < val.ChanceToReplace)) { continue; } Vector2? val3 = null; if (val.RemoveAllOtherEnemies) { val3 = TargetRoom.area.Center; for (int num2 = list.Count - 1; num2 >= 0; num2--) { AIActor val4 = list[j]; if (Object.op_Implicit((Object)(object)val4)) { TargetRoom.DeregisterEnemy(val4, true); Object.Destroy((Object)(object)((Component)val4).gameObject); } } } else { if (Object.op_Implicit((Object)(object)((BraveBehaviour)val2).specRigidbody)) { ((BraveBehaviour)val2).specRigidbody.Initialize(); val3 = ((BraveBehaviour)val2).specRigidbody.UnitBottomLeft; } TargetRoom.DeregisterEnemy(val2, true); Object.Destroy((Object)(object)((Component)val2).gameObject); } string text = BraveUtility.RandomElement(val.ReplacementGuids); Vector2? val5 = val3; TargetRoom.AddSpecificEnemyToRoomProcedurally(text, false, val5); num++; agdInjectionRunCounts[i]++; if ((val.MaxPerFloor > 0 && num >= val.MaxPerFloor) || (val.MaxPerRun > 0 && agdInjectionRunCounts[i] >= val.MaxPerRun) || val.RemoveAllOtherEnemies) { break; } } if ((val.MaxPerFloor > 0 && num >= val.MaxPerFloor) || (val.MaxPerRun > 0 && agdInjectionRunCounts[i] >= val.MaxPerRun)) { break; } } List list2 = new List(); float newPlayerEnemyCullFactor = GameStatsManager.Instance.NewPlayerEnemyCullFactor; if (!(newPlayerEnemyCullFactor > 0f) || !TargetRoom.EverHadEnemies || !TargetRoom.IsStandardRoom || TargetRoom.IsGunslingKingChallengeRoom) { return; } if (TargetRoom.area.runtimePrototypeData != null && TargetRoom.area.runtimePrototypeData.roomEvents != null) { bool flag = false; for (int k = 0; k < TargetRoom.area.runtimePrototypeData.roomEvents.Count; k++) { if ((int)TargetRoom.area.runtimePrototypeData.roomEvents[k].action == 2) { flag = true; } } if (flag) { return; } } TargetRoom.GetActiveEnemies((ActiveEnemyType)0, ref list2); for (int l = 0; l < list2.Count; l++) { AIActor val6 = list2[l]; if (Object.op_Implicit((Object)(object)val6) && (val6.AdditionalSimpleItemDrops == null || val6.AdditionalSimpleItemDrops.Count <= 0) && val6.IsNormalEnemy && !val6.IsHarmlessEnemy && val6.IsWorthShootingAt && (!Object.op_Implicit((Object)(object)((BraveBehaviour)val6).healthHaver) || !((BraveBehaviour)val6).healthHaver.IsBoss) && Random.value < newPlayerEnemyCullFactor) { Object.Destroy((Object)(object)((Component)val6).gameObject); } } } public static void ApplyCustomTexture(AIActor targetActor, Texture2D newTexture = null, List spriteList = null, tk2dSpriteCollectionData prebuiltCollection = null, Shader overrideShader = null, bool disablePalette = false, bool makeStatic = false) { //IL_028a: Unknown result type (might be due to invalid IL or missing references) //IL_0291: Expected O, but got Unknown //IL_02de: Unknown result type (might be due to invalid IL or missing references) //IL_02e3: Unknown result type (might be due to invalid IL or missing references) //IL_0338: Unknown result type (might be due to invalid IL or missing references) //IL_033d: Unknown result type (might be due to invalid IL or missing references) //IL_0350: Unknown result type (might be due to invalid IL or missing references) //IL_0355: Unknown result type (might be due to invalid IL or missing references) //IL_0368: Unknown result type (might be due to invalid IL or missing references) //IL_036d: 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_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0399: Unknown result type (might be due to invalid IL or missing references) //IL_039e: Unknown result type (might be due to invalid IL or missing references) //IL_03a3: Unknown result type (might be due to invalid IL or missing references) //IL_03ac: 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_03bc: Unknown result type (might be due to invalid IL or missing references) //IL_03c1: Unknown result type (might be due to invalid IL or missing references) //IL_03c6: Unknown result type (might be due to invalid IL or missing references) //IL_03cf: Unknown result type (might be due to invalid IL or missing references) //IL_03d4: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Expected O, but got Unknown tk2dSpriteAnimationClip[] clips; if ((Object)(object)prebuiltCollection != (Object)null) { tk2dSpriteAnimation val = Object.Instantiate(((BraveBehaviour)targetActor).spriteAnimator.Library); if (makeStatic) { Object.DontDestroyOnLoad((Object)(object)((BraveBehaviour)targetActor).spriteAnimator.Library); } clips = val.clips; for (int i = 0; i < clips.Length; i++) { tk2dSpriteAnimationFrame[] frames = clips[i].frames; for (int j = 0; j < frames.Length; j++) { frames[j].spriteCollection = prebuiltCollection; } } ((Object)prebuiltCollection).name = ((GameActor)targetActor).OverrideDisplayName; ((BraveBehaviour)targetActor).sprite.Collection = prebuiltCollection; ((BraveBehaviour)targetActor).spriteAnimator.Library = val; ((BraveBehaviour)targetActor).sprite.SetSprite(prebuiltCollection, ((BraveBehaviour)targetActor).sprite.spriteId); return; } tk2dSpriteCollectionData val2 = Object.Instantiate(((BraveBehaviour)targetActor).sprite.Collection); if (makeStatic) { Object.DontDestroyOnLoad((Object)(object)val2); } tk2dSpriteDefinition[] array = (tk2dSpriteDefinition[])(object)new tk2dSpriteDefinition[val2.spriteDefinitions.Length]; for (int k = 0; k < val2.spriteDefinitions.Length; k++) { array[k] = val2.spriteDefinitions[k].Copy(); } val2.spriteDefinitions = array; if ((Object)(object)newTexture != (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Using sprite sheet replacement on " + targetActor.GetActorName()), false); } Material[] materials = ((BraveBehaviour)targetActor).sprite.Collection.materials; Material[] array2 = (Material[])(object)new Material[materials.Length]; if (materials != null) { for (int l = 0; l < materials.Length; l++) { array2[l] = materials[l].Copy(newTexture); if (Object.op_Implicit((Object)(object)overrideShader)) { array2[l].shader = overrideShader; } } val2.materials = array2; Material[] materials2 = val2.materials; foreach (Material val3 in materials2) { tk2dSpriteDefinition[] spriteDefinitions = val2.spriteDefinitions; foreach (tk2dSpriteDefinition val4 in spriteDefinitions) { if ((Object)(object)val3 != (Object)null && ((Object)val4.material).name.Equals(((Object)val3).name)) { val4.material = val3; val4.materialInst = new Material(val3); if (Object.op_Implicit((Object)(object)overrideShader)) { val4.material.shader = overrideShader; val4.materialInst.shader = overrideShader; } } } } } if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"Step 3", false); } } else if (spriteList != null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Using individual sprite replacement on " + targetActor.GetActorName()), false); } RuntimeAtlasPage val5 = new RuntimeAtlasPage(0, 0, (TextureFormat)4, 2); for (int m = 0; m < spriteList.Count; m++) { Texture2D val6 = spriteList[m]; float num = (float)((Texture)val6).width / 16f; float num2 = (float)((Texture)val6).height / 16f; tk2dSpriteDefinition spriteDefinition = val2.GetSpriteDefinition(((Object)val6).name); if (spriteDefinition != null) { if (spriteDefinition.boundsDataCenter != Vector3.zero) { RuntimeAtlasSegment val7 = val5.Pack(val6, false); spriteDefinition.materialInst.mainTexture = (Texture)(object)val7.texture; spriteDefinition.uvs = val7.uvs; spriteDefinition.extractRegion = true; spriteDefinition.position0 = new Vector3(0f, 0f, 0f); spriteDefinition.position1 = new Vector3(num, 0f, 0f); spriteDefinition.position2 = new Vector3(0f, num2, 0f); spriteDefinition.position3 = new Vector3(num, num2, 0f); spriteDefinition.boundsDataCenter = Vector2.op_Implicit(new Vector2(num / 2f, num2 / 2f)); spriteDefinition.untrimmedBoundsDataCenter = spriteDefinition.boundsDataCenter; spriteDefinition.boundsDataExtents = Vector2.op_Implicit(new Vector2(num, num2)); spriteDefinition.untrimmedBoundsDataExtents = spriteDefinition.boundsDataExtents; } else { ETGMod.ReplaceTexture(spriteDefinition, val6, true); } } } val5.Apply(); } else { ETGModConsole.Log((object)("Not replacing sprites on " + targetActor.GetActorName()), false); } tk2dSpriteAnimation val8 = Object.Instantiate(((BraveBehaviour)targetActor).spriteAnimator.Library); if (makeStatic) { Object.DontDestroyOnLoad((Object)(object)((BraveBehaviour)targetActor).spriteAnimator.Library); } clips = val8.clips; for (int i = 0; i < clips.Length; i++) { tk2dSpriteAnimationFrame[] frames = clips[i].frames; for (int j = 0; j < frames.Length; j++) { frames[j].spriteCollection = val2; } } ((Object)val2).name = ((GameActor)targetActor).OverrideDisplayName; ((BraveBehaviour)targetActor).sprite.Collection = val2; ((BraveBehaviour)targetActor).spriteAnimator.Library = val8; } public static void ApplyCustomTexture(GameObject targetObject, Texture2D newTexture = null, List spriteList = null, tk2dSpriteCollectionData prebuiltCollection = null, Shader overrideShader = null, bool disablePalette = false) { //IL_0315: Unknown result type (might be due to invalid IL or missing references) //IL_031c: Expected O, but got Unknown //IL_036b: Unknown result type (might be due to invalid IL or missing references) //IL_0370: Unknown result type (might be due to invalid IL or missing references) //IL_03b6: Unknown result type (might be due to invalid IL or missing references) //IL_03bb: Unknown result type (might be due to invalid IL or missing references) //IL_03ce: Unknown result type (might be due to invalid IL or missing references) //IL_03d3: Unknown result type (might be due to invalid IL or missing references) //IL_03e6: Unknown result type (might be due to invalid IL or missing references) //IL_03eb: Unknown result type (might be due to invalid IL or missing references) //IL_03fb: Unknown result type (might be due to invalid IL or missing references) //IL_0400: Unknown result type (might be due to invalid IL or missing references) //IL_0417: Unknown result type (might be due to invalid IL or missing references) //IL_041c: Unknown result type (might be due to invalid IL or missing references) //IL_0421: Unknown result type (might be due to invalid IL or missing references) //IL_042a: Unknown result type (might be due to invalid IL or missing references) //IL_042f: Unknown result type (might be due to invalid IL or missing references) //IL_043a: Unknown result type (might be due to invalid IL or missing references) //IL_043f: Unknown result type (might be due to invalid IL or missing references) //IL_0444: Unknown result type (might be due to invalid IL or missing references) //IL_044d: Unknown result type (might be due to invalid IL or missing references) //IL_0452: Unknown result type (might be due to invalid IL or missing references) //IL_0225: Unknown result type (might be due to invalid IL or missing references) //IL_022f: Expected O, but got Unknown tk2dSprite component = targetObject.GetComponent(); tk2dSpriteAnimator component2 = targetObject.GetComponent(); if (!Object.op_Implicit((Object)(object)component) | !Object.op_Implicit((Object)(object)component2)) { ETGModConsole.Log((object)("[ExpandTheGungeon] ERROR: Target sprite component or sprite animator component is null on target object: '" + ((Object)targetObject).name + "'!"), false); return; } if (Object.op_Implicit((Object)(object)targetObject.GetComponent())) { Object.Destroy((Object)(object)targetObject.GetComponent()); } tk2dSpriteAnimation val = targetObject.AddComponent(); List list = new List(); tk2dSpriteAnimationClip[] clips = component2.Library.clips; foreach (tk2dSpriteAnimationClip sourceClip in clips) { list.Add(DuplicateAnimationClip(sourceClip)); } if (list.Count <= 0) { ETGModConsole.Log((object)("[ExpandTheGungeon] ERROR: Target object: '" + ((Object)targetObject).name + "' has no sprite animations!"), false); return; } val.clips = list.ToArray(); if ((Object)(object)prebuiltCollection != (Object)null) { clips = val.clips; for (int i = 0; i < clips.Length; i++) { tk2dSpriteAnimationFrame[] frames = clips[i].frames; for (int j = 0; j < frames.Length; j++) { frames[j].spriteCollection = prebuiltCollection; } } ((BraveBehaviour)component).sprite.Collection = prebuiltCollection; component2.Library = val; return; } tk2dSpriteCollectionData val2 = DuplicateSpriteCollection(targetObject, ((tk2dBaseSprite)component).Collection); if ((Object)(object)newTexture != (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Using sprite sheet replacement on " + ((Object)targetObject).name), false); } Material[] materials = val2.materials; Material[] array = (Material[])(object)new Material[materials.Length]; if (materials != null) { for (int k = 0; k < materials.Length; k++) { array[k] = materials[k].Copy(newTexture); if (Object.op_Implicit((Object)(object)overrideShader)) { array[k].shader = overrideShader; } } val2.materials = array; Material[] materials2 = val2.materials; foreach (Material val3 in materials2) { tk2dSpriteDefinition[] spriteDefinitions = val2.spriteDefinitions; foreach (tk2dSpriteDefinition val4 in spriteDefinitions) { if ((Object)(object)val3 != (Object)null && ((Object)val4.material).name.Equals(((Object)val3).name)) { val4.material = val3; val4.materialInst = new Material(val3); if (Object.op_Implicit((Object)(object)overrideShader)) { val4.material.shader = overrideShader; val4.materialInst.shader = overrideShader; } } } } } if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"Step 3", false); } ((tk2dBaseSprite)component).Collection = val2; ((tk2dBaseSprite)component).SetSprite(component2.DefaultClip.frames[0].spriteId); clips = val.clips; for (int i = 0; i < clips.Length; i++) { tk2dSpriteAnimationFrame[] frames = clips[i].frames; for (int j = 0; j < frames.Length; j++) { frames[j].spriteCollection = val2; } } } else if (spriteList != null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Using individual sprite replacement on " + ((Object)targetObject).name), false); } RuntimeAtlasPage val5 = new RuntimeAtlasPage(0, 0, (TextureFormat)4, 2); foreach (Texture2D sprite in spriteList) { float num = (float)((Texture)sprite).width / 16f; float num2 = (float)((Texture)sprite).height / 16f; tk2dSpriteDefinition spriteDefinition = val2.GetSpriteDefinition(((Object)sprite).name); if (spriteDefinition != null) { if (spriteDefinition.boundsDataCenter != Vector3.zero) { RuntimeAtlasSegment val6 = val5.Pack(sprite, false); spriteDefinition.materialInst.mainTexture = (Texture)(object)val6.texture; spriteDefinition.uvs = val6.uvs; spriteDefinition.extractRegion = true; spriteDefinition.position0 = Vector3.zero; spriteDefinition.position1 = new Vector3(num, 0f, 0f); spriteDefinition.position2 = new Vector3(0f, num2, 0f); spriteDefinition.position3 = new Vector3(num, num2, 0f); spriteDefinition.boundsDataCenter = Vector2.op_Implicit(new Vector2(num / 2f, num2 / 2f)); spriteDefinition.untrimmedBoundsDataCenter = spriteDefinition.boundsDataCenter; spriteDefinition.boundsDataExtents = Vector2.op_Implicit(new Vector2(num, num2)); spriteDefinition.untrimmedBoundsDataExtents = spriteDefinition.boundsDataExtents; } else { ETGMod.ReplaceTexture(spriteDefinition, sprite, true); } } } val5.Apply(); ((tk2dBaseSprite)component).Collection = val2; ((tk2dBaseSprite)component).SetSprite(component2.DefaultClip.frames[0].spriteId); clips = val.clips; for (int i = 0; i < clips.Length; i++) { tk2dSpriteAnimationFrame[] frames = clips[i].frames; for (int j = 0; j < frames.Length; j++) { frames[j].spriteCollection = val2; } } } else { ETGModConsole.Log((object)("Not replacing sprites on " + ((Object)targetObject).name), false); } } public static tk2dSpriteCollectionData BuildSpriteCollection(tk2dSpriteCollectionData sourceCollection, Texture2D spriteSheet = null, List spriteList = null, Shader overrideShader = null, bool IsStatic = false) { //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Expected O, but got Unknown //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_0231: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Unknown result type (might be due to invalid IL or missing references) //IL_0249: Unknown result type (might be due to invalid IL or missing references) //IL_024e: Unknown result type (might be due to invalid IL or missing references) //IL_0261: Unknown result type (might be due to invalid IL or missing references) //IL_0266: Unknown result type (might be due to invalid IL or missing references) //IL_0276: Unknown result type (might be due to invalid IL or missing references) //IL_027b: Unknown result type (might be due to invalid IL or missing references) //IL_0292: Unknown result type (might be due to invalid IL or missing references) //IL_0297: Unknown result type (might be due to invalid IL or missing references) //IL_029c: 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_02aa: 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) //IL_02ba: Unknown result type (might be due to invalid IL or missing references) //IL_02bf: Unknown result type (might be due to invalid IL or missing references) //IL_02c8: Unknown result type (might be due to invalid IL or missing references) //IL_02cd: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Expected O, but got Unknown if ((Object)(object)sourceCollection == (Object)null) { return null; } tk2dSpriteCollectionData val = Object.Instantiate(sourceCollection); if (IsStatic) { Object.DontDestroyOnLoad((Object)(object)val); } tk2dSpriteDefinition[] array = (tk2dSpriteDefinition[])(object)new tk2dSpriteDefinition[val.spriteDefinitions.Length]; for (int i = 0; i < val.spriteDefinitions.Length; i++) { array[i] = val.spriteDefinitions[i].Copy(); } val.spriteDefinitions = array; if ((Object)(object)spriteSheet != (Object)null) { Material[] materials = sourceCollection.materials; Material[] array2 = (Material[])(object)new Material[materials.Length]; if (materials != null) { for (int j = 0; j < materials.Length; j++) { array2[j] = materials[j].Copy(spriteSheet); if (Object.op_Implicit((Object)(object)overrideShader)) { array2[j].shader = overrideShader; } } val.materials = array2; Material[] materials2 = val.materials; foreach (Material val2 in materials2) { tk2dSpriteDefinition[] spriteDefinitions = val.spriteDefinitions; foreach (tk2dSpriteDefinition val3 in spriteDefinitions) { if ((Object)(object)val2 != (Object)null && ((Object)val3.material).name.Equals(((Object)val2).name)) { val3.material = val2; val3.materialInst = new Material(val2); if (Object.op_Implicit((Object)(object)overrideShader)) { val3.material.shader = overrideShader; val3.materialInst.shader = overrideShader; } } } } } } else if (spriteList != null) { RuntimeAtlasPage val4 = new RuntimeAtlasPage(0, 0, (TextureFormat)4, 2); for (int m = 0; m < spriteList.Count; m++) { Texture2D val5 = spriteList[m]; float num = (float)((Texture)val5).width / 16f; float num2 = (float)((Texture)val5).height / 16f; tk2dSpriteDefinition spriteDefinition = val.GetSpriteDefinition(((Object)val5).name); if (spriteDefinition == null) { continue; } if (spriteDefinition.boundsDataCenter != Vector3.zero) { RuntimeAtlasSegment val6 = val4.Pack(val5, false); spriteDefinition.materialInst.mainTexture = (Texture)(object)val6.texture; if ((Object)(object)overrideShader != (Object)null) { spriteDefinition.materialInst.shader = overrideShader; } spriteDefinition.uvs = val6.uvs; spriteDefinition.extractRegion = true; spriteDefinition.position0 = new Vector3(0f, 0f, 0f); spriteDefinition.position1 = new Vector3(num, 0f, 0f); spriteDefinition.position2 = new Vector3(0f, num2, 0f); spriteDefinition.position3 = new Vector3(num, num2, 0f); spriteDefinition.boundsDataCenter = Vector2.op_Implicit(new Vector2(num / 2f, num2 / 2f)); spriteDefinition.untrimmedBoundsDataCenter = spriteDefinition.boundsDataCenter; spriteDefinition.boundsDataExtents = Vector2.op_Implicit(new Vector2(num, num2)); spriteDefinition.untrimmedBoundsDataExtents = spriteDefinition.boundsDataExtents; } else { ETGMod.ReplaceTexture(spriteDefinition, val5, true); } } val4.Apply(); } return val; } public static tk2dSpriteCollectionData DuplicateSpriteCollection(GameObject targetObject, tk2dSpriteCollectionData sourceCollection, bool attachCollectionToObject = true, Texture2D spriteSheet = null, List spriteList = null, Shader overrideShader = null) { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0273: Unknown result type (might be due to invalid IL or missing references) //IL_0278: Unknown result type (might be due to invalid IL or missing references) //IL_028a: Expected O, but got Unknown //IL_0322: Unknown result type (might be due to invalid IL or missing references) //IL_0327: Unknown result type (might be due to invalid IL or missing references) //IL_0339: Expected O, but got Unknown //IL_03d1: Unknown result type (might be due to invalid IL or missing references) //IL_03d6: Unknown result type (might be due to invalid IL or missing references) //IL_03e8: Expected O, but got Unknown //IL_047f: Unknown result type (might be due to invalid IL or missing references) //IL_0484: Unknown result type (might be due to invalid IL or missing references) //IL_0491: Unknown result type (might be due to invalid IL or missing references) //IL_049e: Unknown result type (might be due to invalid IL or missing references) //IL_04ab: Unknown result type (might be due to invalid IL or missing references) //IL_04b8: Unknown result type (might be due to invalid IL or missing references) //IL_04c5: Unknown result type (might be due to invalid IL or missing references) //IL_04d2: Unknown result type (might be due to invalid IL or missing references) //IL_04df: Unknown result type (might be due to invalid IL or missing references) //IL_04ec: Unknown result type (might be due to invalid IL or missing references) //IL_04ef: Unknown result type (might be due to invalid IL or missing references) //IL_04f4: Unknown result type (might be due to invalid IL or missing references) //IL_04f9: Unknown result type (might be due to invalid IL or missing references) //IL_050b: Expected O, but got Unknown //IL_0678: Unknown result type (might be due to invalid IL or missing references) //IL_0682: Expected O, but got Unknown //IL_07fb: Unknown result type (might be due to invalid IL or missing references) //IL_0802: Expected O, but got Unknown //IL_084b: Unknown result type (might be due to invalid IL or missing references) //IL_0850: Unknown result type (might be due to invalid IL or missing references) //IL_0741: Unknown result type (might be due to invalid IL or missing references) //IL_074b: Expected O, but got Unknown //IL_08bd: Unknown result type (might be due to invalid IL or missing references) //IL_08c2: Unknown result type (might be due to invalid IL or missing references) //IL_08d5: Unknown result type (might be due to invalid IL or missing references) //IL_08da: Unknown result type (might be due to invalid IL or missing references) //IL_08ed: Unknown result type (might be due to invalid IL or missing references) //IL_08f2: Unknown result type (might be due to invalid IL or missing references) //IL_0902: Unknown result type (might be due to invalid IL or missing references) //IL_0907: Unknown result type (might be due to invalid IL or missing references) //IL_091e: Unknown result type (might be due to invalid IL or missing references) //IL_0923: Unknown result type (might be due to invalid IL or missing references) //IL_0928: Unknown result type (might be due to invalid IL or missing references) //IL_0931: Unknown result type (might be due to invalid IL or missing references) //IL_0936: Unknown result type (might be due to invalid IL or missing references) //IL_0941: Unknown result type (might be due to invalid IL or missing references) //IL_0946: Unknown result type (might be due to invalid IL or missing references) //IL_094b: Unknown result type (might be due to invalid IL or missing references) //IL_0954: Unknown result type (might be due to invalid IL or missing references) //IL_0959: Unknown result type (might be due to invalid IL or missing references) //IL_07a4: Unknown result type (might be due to invalid IL or missing references) //IL_07ae: Expected O, but got Unknown if ((Object)(object)sourceCollection == (Object)null) { return null; } tk2dSpriteCollectionData val = null; if (attachCollectionToObject) { if (!Object.op_Implicit((Object)(object)targetObject.GetComponent())) { targetObject.AddComponent(); } val = targetObject.GetComponent(); } else { val = new tk2dSpriteCollectionData(); } if (!Object.op_Implicit((Object)(object)val)) { return null; } val.version = sourceCollection.version; val.materialIdsValid = sourceCollection.materialIdsValid; val.premultipliedAlpha = sourceCollection.premultipliedAlpha; val.shouldGenerateTilemapReflectionData = sourceCollection.shouldGenerateTilemapReflectionData; val.textureFilterMode = sourceCollection.textureFilterMode; val.textureMipMaps = sourceCollection.textureMipMaps; val.allowMultipleAtlases = sourceCollection.allowMultipleAtlases; val.spriteCollectionGUID = Guid.NewGuid().ToString(); val.spriteCollectionName = sourceCollection.spriteCollectionName + "(Modified)"; val.assetName = sourceCollection.assetName; val.loadable = sourceCollection.loadable; val.invOrthoSize = sourceCollection.invOrthoSize; val.halfTargetHeight = sourceCollection.halfTargetHeight; val.buildKey = sourceCollection.buildKey; val.dataGuid = Guid.NewGuid().ToString(); val.managedSpriteCollection = sourceCollection.managedSpriteCollection; val.hasPlatformData = sourceCollection.hasPlatformData; val.spriteCollectionPlatforms = sourceCollection.spriteCollectionPlatforms; val.SpriteDefinedBagelColliders = new List(); val.SpriteIDsWithAttachPoints = new List(); val.SpriteDefinedAttachPoints = new List(); val.SpriteIDsWithNeighborDependencies = new List(); val.SpriteDefinedIndexNeighborDependencies = new List(); val.SpriteIDsWithAnimationSequences = new List(); val.SpriteDefinedAnimationSequences = new List(); if (sourceCollection.spriteCollectionPlatformGUIDs != null && sourceCollection.spriteCollectionPlatformGUIDs.Length != 0) { List list = new List(); string[] spriteCollectionPlatformGUIDs = sourceCollection.spriteCollectionPlatformGUIDs; for (int i = 0; i < spriteCollectionPlatformGUIDs.Length; i++) { _ = spriteCollectionPlatformGUIDs[i]; list.Add(Guid.NewGuid().ToString()); } if (list.Count > 0) { val.spriteCollectionPlatformGUIDs = list.ToArray(); } } val.SpriteIDsWithBagelColliders = new List(); if (sourceCollection.SpriteIDsWithBagelColliders.Count > 0) { foreach (int spriteIDsWithBagelCollider in sourceCollection.SpriteIDsWithBagelColliders) { val.SpriteIDsWithBagelColliders.Add(spriteIDsWithBagelCollider); } } if (sourceCollection.SpriteDefinedBagelColliders.Count > 0) { foreach (BagelColliderData spriteDefinedBagelCollider in sourceCollection.SpriteDefinedBagelColliders) { val.SpriteDefinedBagelColliders.Add(new BagelColliderData(spriteDefinedBagelCollider.bagelColliders) { bagelColliders = spriteDefinedBagelCollider.bagelColliders }); } } if (sourceCollection.SpriteIDsWithAttachPoints.Count > 0) { foreach (int spriteIDsWithAttachPoint in sourceCollection.SpriteIDsWithAttachPoints) { val.SpriteIDsWithAttachPoints.Add(spriteIDsWithAttachPoint); } } if (sourceCollection.SpriteDefinedAttachPoints.Count > 0) { foreach (AttachPointData spriteDefinedAttachPoint in sourceCollection.SpriteDefinedAttachPoints) { val.SpriteDefinedAttachPoints.Add(new AttachPointData(spriteDefinedAttachPoint.attachPoints) { attachPoints = spriteDefinedAttachPoint.attachPoints }); } } if (sourceCollection.SpriteIDsWithNeighborDependencies.Count > 0) { foreach (int spriteIDsWithNeighborDependency in sourceCollection.SpriteIDsWithNeighborDependencies) { val.SpriteIDsWithNeighborDependencies.Add(spriteIDsWithNeighborDependency); } } if (sourceCollection.SpriteDefinedIndexNeighborDependencies.Count > 0) { foreach (NeighborDependencyData spriteDefinedIndexNeighborDependency in sourceCollection.SpriteDefinedIndexNeighborDependencies) { val.SpriteDefinedIndexNeighborDependencies.Add(new NeighborDependencyData(spriteDefinedIndexNeighborDependency.neighborDependencies) { neighborDependencies = spriteDefinedIndexNeighborDependency.neighborDependencies }); } } if (sourceCollection.SpriteIDsWithAnimationSequences.Count > 0) { foreach (int spriteIDsWithAnimationSequence in sourceCollection.SpriteIDsWithAnimationSequences) { val.SpriteIDsWithAnimationSequences.Add(spriteIDsWithAnimationSequence); } } if (sourceCollection.SpriteDefinedAnimationSequences.Count > 0) { foreach (SimpleTilesetAnimationSequence spriteDefinedAnimationSequence in sourceCollection.SpriteDefinedAnimationSequences) { val.SpriteDefinedAnimationSequences.Add(new SimpleTilesetAnimationSequence { coreceptionMax = spriteDefinedAnimationSequence.coreceptionMax, coreceptionMin = spriteDefinedAnimationSequence.coreceptionMin, entries = spriteDefinedAnimationSequence.entries, loopceptionMax = spriteDefinedAnimationSequence.loopceptionMax, loopceptionMin = spriteDefinedAnimationSequence.loopceptionMin, loopceptionTarget = spriteDefinedAnimationSequence.loopceptionTarget, loopDelayMax = spriteDefinedAnimationSequence.loopDelayMax, loopDelayMin = spriteDefinedAnimationSequence.loopDelayMin, playstyle = spriteDefinedAnimationSequence.playstyle, randomStartFrame = spriteDefinedAnimationSequence.randomStartFrame }); } } if (sourceCollection.materialPngTextureId.Length != 0) { List list2 = new List(); int[] materialPngTextureId = sourceCollection.materialPngTextureId; foreach (int item in materialPngTextureId) { list2.Add(item); } if (list2.Count > 0) { val.materialPngTextureId = list2.ToArray(); } else { val.materialPngTextureId = new int[0]; } } else { val.materialPngTextureId = new int[0]; } if (sourceCollection.textures.Length != 0 && (Object)(object)spriteSheet != (Object)null) { val.textures = (Texture[])(object)new Texture[1] { (Texture)spriteSheet }; } else if (sourceCollection.textures.Length != 0) { List list3 = new List(); Texture[] textures = sourceCollection.textures; foreach (Texture item2 in textures) { list3.Add(item2); } if (list3.Count > 0) { val.textures = list3.ToArray(); } else { val.textures = (Texture[])(object)new Texture[0]; } } else { val.textures = (Texture[])(object)new Texture[0]; } if (Object.op_Implicit((Object)(object)sourceCollection.material)) { val.material = sourceCollection.material.Copy(spriteSheet, overrideShader); } if (sourceCollection.materials != null && sourceCollection.materials.Length != 0) { List list4 = new List(); Material[] materials = sourceCollection.materials; foreach (Material val2 in materials) { list4.Add(new Material(val2)); } if (list4.Count > 0) { val.materials = list4.ToArray(); } else { val.materials = (Material[])(object)new Material[0]; } } else { sourceCollection.materials = (Material[])(object)new Material[0]; } if (sourceCollection.spriteDefinitions.Length != 0) { List list5 = new List(); tk2dSpriteDefinition[] spriteDefinitions = sourceCollection.spriteDefinitions; foreach (tk2dSpriteDefinition sourceSpriteDefinition in spriteDefinitions) { list5.Add(DuplicateSpriteDefinition(sourceSpriteDefinition)); } if (list5.Count > 0) { if (Object.op_Implicit((Object)(object)overrideShader)) { foreach (tk2dSpriteDefinition item3 in list5) { item3.material.shader = overrideShader; item3.materialInst = new Material(item3.material); } } if (Object.op_Implicit((Object)(object)spriteSheet)) { foreach (tk2dSpriteDefinition item4 in list5) { item4.material.mainTexture = (Texture)(object)spriteSheet; if (Object.op_Implicit((Object)(object)item4.materialInst)) { item4.materialInst = new Material(item4.material); } } } val.spriteDefinitions = list5.ToArray(); } else { val.spriteDefinitions = (tk2dSpriteDefinition[])(object)new tk2dSpriteDefinition[0]; } } else { val.spriteDefinitions = (tk2dSpriteDefinition[])(object)new tk2dSpriteDefinition[0]; } if (spriteList != null) { RuntimeAtlasPage val3 = new RuntimeAtlasPage(0, 0, (TextureFormat)4, 2); foreach (Texture2D sprite in spriteList) { float num = ((Texture)sprite).width / 16; float num2 = ((Texture)sprite).height / 16; tk2dSpriteDefinition spriteDefinition = val.GetSpriteDefinition(((Object)sprite).name); if (spriteDefinition == null) { continue; } if (spriteDefinition.boundsDataCenter != Vector3.zero) { RuntimeAtlasSegment val4 = val3.Pack(sprite, false); spriteDefinition.materialInst.mainTexture = (Texture)(object)val4.texture; if ((Object)(object)overrideShader != (Object)null) { spriteDefinition.materialInst.shader = overrideShader; } spriteDefinition.uvs = val4.uvs; spriteDefinition.extractRegion = true; spriteDefinition.position0 = new Vector3(0f, 0f, 0f); spriteDefinition.position1 = new Vector3(num, 0f, 0f); spriteDefinition.position2 = new Vector3(0f, num2, 0f); spriteDefinition.position3 = new Vector3(num, num2, 0f); spriteDefinition.boundsDataCenter = Vector2.op_Implicit(new Vector2(num / 2f, num / 2f)); spriteDefinition.untrimmedBoundsDataCenter = spriteDefinition.boundsDataCenter; spriteDefinition.boundsDataExtents = Vector2.op_Implicit(new Vector2(num, num2)); spriteDefinition.untrimmedBoundsDataExtents = spriteDefinition.boundsDataExtents; } else { ETGMod.ReplaceTexture(spriteDefinition, sprite, true); } } val3.Apply(); } val.InitDictionary(); return val; } public static void MakeCompanion(AIActor targetActor, AIActor sourceCompanion = null, PlayerController Owner = null, bool targetIsNewAIActor = false, bool ApplyCharmedColorOverride = true, bool blocksEnemyBullets = true, bool ImmuneToAllDamage = false) { //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0115: 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_011e: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Expected O, but got Unknown //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Expected O, but got Unknown //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_0223: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)sourceCompanion == (Object)null) { sourceCompanion = EnemyDatabase.GetOrLoadByGuid("3a077fa5872d462196bb9a3cb1af02a3"); } if (targetActor.EnemyGuid == "479556d05c7c44f3b6abb3b2067fc778") { targetActor.CanTargetPlayers = false; targetActor.CanTargetEnemies = true; targetActor.IgnoreForRoomClear = true; targetActor.HitByEnemyBullets = blocksEnemyBullets; if (ApplyCharmedColorOverride) { ((GameActor)targetActor).RegisterOverrideColor(new Color(0.5f, 0f, 0.5f), "Chaos Charm Effect"); } return; } if (!targetIsNewAIActor) { ((BraveBehaviour)targetActor).behaviorSpeculator.MovementBehaviors.Add(((BraveBehaviour)sourceCompanion).behaviorSpeculator.MovementBehaviors[0]); } targetActor.CanTargetPlayers = false; targetActor.CanTargetEnemies = true; targetActor.IgnoreForRoomClear = true; targetActor.CanDropCurrency = false; targetActor.HitByEnemyBullets = blocksEnemyBullets; if (!targetIsNewAIActor) { ((Object)targetActor).name = "CompanionPet"; } if (ApplyCharmedColorOverride) { ((GameActor)targetActor).RegisterOverrideColor(new Color(0.5f, 0f, 0.5f), "Chaos Charm Effect"); } ((Component)targetActor).gameObject.AddComponent(); CompanionController component = ((Component)targetActor).gameObject.GetComponent(); component.CanInterceptBullets = blocksEnemyBullets; component.IsCop = false; component.IsCopDead = false; component.CopDeathStatModifier = new StatModifier { statToBoost = (StatType)0, modifyType = (ModifyMethod)0, amount = 0f }; component.CurseOnCopDeath = 2; if (((GameActor)targetActor).IsFlying) { component.CanCrossPits = true; } else { component.CanCrossPits = false; } component.BlanksOnActiveItemUsed = false; component.InternalBlankCooldown = 10f; component.HasStealthMode = false; component.PredictsChests = false; component.PredictsChestSynergy = (CustomSynergyType)0; component.CanBePet = false; component.companionID = (CompanionIdentifier)0; component.TeaSynergyHeatRing = new HeatRingModule(); component.m_petOffset = new Vector2(0f, 0f); if (Object.op_Implicit((Object)(object)Owner)) { component.Initialize(Owner); } if (((targetActor.EnemyGuid == "d4dd2b2bbda64cc9bcec534b4e920518") | (targetActor.EnemyGuid == "98fdf153a4dd4d51bf0bafe43f3c77ff") | (targetActor.EnemyGuid == "be0683affb0e41bbb699cb7125fdded6") | (targetActor.EnemyGuid == "c2f902b7cbe745efb3db4399927eab34") | (targetActor.EnemyGuid == "249db525a9464e5282d02162c88e0357")) || targetIsNewAIActor) { targetActor.OverrideHitEnemies = true; targetActor.CollisionDamage = 1f; targetActor.CollisionDamageTypes = (CoreDamageTypes)64; } if (ImmuneToAllDamage) { ((BraveBehaviour)targetActor).healthHaver.SetHealthMaximum(15000f, (float?)null, false); ((BraveBehaviour)targetActor).healthHaver.ForceSetCurrentHealth(15f); ((BraveBehaviour)targetActor).healthHaver.PreventAllDamage = true; } } public static DungeonPlaceable GenerateDungeonPlacable(GameObject ObjectPrefab = null, bool spawnsEnemy = false, bool useExternalPrefab = false, bool spawnsItem = false, string EnemyGUID = "479556d05c7c44f3b6abb3b2067fc778", int itemID = 307, Vector2? CustomOffset = null, bool itemHasDebrisObject = true, float spawnChance = 1f) { //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Expected O, but got Unknown //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Expected O, but got Unknown //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Expected O, but got Unknown //IL_015f: 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_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Expected O, but got Unknown //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_020a: Unknown result type (might be due to invalid IL or missing references) //IL_0211: Expected O, but got Unknown //IL_0229: Unknown result type (might be due to invalid IL or missing references) //IL_022e: Unknown result type (might be due to invalid IL or missing references) //IL_0270: Unknown result type (might be due to invalid IL or missing references) //IL_0277: Expected O, but got Unknown //IL_028f: Unknown result type (might be due to invalid IL or missing references) //IL_0294: Unknown result type (might be due to invalid IL or missing references) //IL_02d6: Unknown result type (might be due to invalid IL or missing references) //IL_02dd: Expected O, but got Unknown //IL_02f5: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: Unknown result type (might be due to invalid IL or missing references) //IL_033c: Unknown result type (might be due to invalid IL or missing references) //IL_0343: Expected O, but got Unknown //IL_0367: Unknown result type (might be due to invalid IL or missing references) //IL_036c: Unknown result type (might be due to invalid IL or missing references) //IL_0359: Unknown result type (might be due to invalid IL or missing references) //IL_035e: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_0401: Expected O, but got Unknown //IL_040c: Unknown result type (might be due to invalid IL or missing references) //IL_0411: Unknown result type (might be due to invalid IL or missing references) //IL_0502: Unknown result type (might be due to invalid IL or missing references) //IL_0509: Expected O, but got Unknown //IL_052d: Unknown result type (might be due to invalid IL or missing references) //IL_0532: Unknown result type (might be due to invalid IL or missing references) //IL_051f: Unknown result type (might be due to invalid IL or missing references) //IL_0524: Unknown result type (might be due to invalid IL or missing references) AssetBundle obj = ResourceManager.LoadAssetBundle("shared_auto_001"); ResourceManager.LoadAssetBundle("shared_auto_002"); ResourceManager.LoadAssetBundle("brave_resources_001"); GameObject nonDatabasePlaceable = obj.LoadAsset("Chest_Wood_Two_Items"); GameObject nonDatabasePlaceable2 = obj.LoadAsset("chest_silver"); GameObject nonDatabasePlaceable3 = obj.LoadAsset("chest_green"); GameObject nonDatabasePlaceable4 = obj.LoadAsset("chest_synergy"); GameObject nonDatabasePlaceable5 = obj.LoadAsset("chest_red"); GameObject nonDatabasePlaceable6 = obj.LoadAsset("Chest_Black"); GameObject nonDatabasePlaceable7 = obj.LoadAsset("Chest_Rainbow"); DungeonPlaceableVariant val = new DungeonPlaceableVariant(); val.percentChance = 0.35f; val.unitOffset = new Vector2(1f, 0.8f); val.enemyPlaceableGuid = string.Empty; val.pickupObjectPlaceableId = -1; val.forceBlackPhantom = false; val.addDebrisObject = false; val.prerequisites = null; val.materialRequirements = null; val.nonDatabasePlaceable = nonDatabasePlaceable2; DungeonPlaceableVariant val2 = new DungeonPlaceableVariant(); val2.percentChance = 0.28f; val2.unitOffset = new Vector2(1f, 0.8f); val2.enemyPlaceableGuid = string.Empty; val2.pickupObjectPlaceableId = -1; val2.forceBlackPhantom = false; val2.addDebrisObject = false; val2.prerequisites = null; val2.materialRequirements = null; val2.nonDatabasePlaceable = nonDatabasePlaceable; DungeonPlaceableVariant val3 = new DungeonPlaceableVariant(); val3.percentChance = 0.25f; val3.unitOffset = new Vector2(1f, 0.8f); val3.enemyPlaceableGuid = string.Empty; val3.pickupObjectPlaceableId = -1; val3.forceBlackPhantom = false; val3.addDebrisObject = false; val3.prerequisites = null; val3.materialRequirements = null; val3.nonDatabasePlaceable = nonDatabasePlaceable3; DungeonPlaceableVariant val4 = new DungeonPlaceableVariant(); val4.percentChance = 0.2f; val4.unitOffset = new Vector2(1f, 0.8f); val4.enemyPlaceableGuid = string.Empty; val4.pickupObjectPlaceableId = -1; val4.forceBlackPhantom = false; val4.addDebrisObject = false; val4.prerequisites = null; val4.materialRequirements = null; val4.nonDatabasePlaceable = nonDatabasePlaceable4; DungeonPlaceableVariant val5 = new DungeonPlaceableVariant(); val5.percentChance = 0.15f; val5.unitOffset = new Vector2(0.5f, 0.5f); val5.enemyPlaceableGuid = string.Empty; val5.pickupObjectPlaceableId = -1; val5.forceBlackPhantom = false; val5.addDebrisObject = false; val5.prerequisites = null; val5.materialRequirements = null; val5.nonDatabasePlaceable = nonDatabasePlaceable5; DungeonPlaceableVariant val6 = new DungeonPlaceableVariant(); val6.percentChance = 0.1f; val6.unitOffset = new Vector2(0.5f, 0.5f); val6.enemyPlaceableGuid = string.Empty; val6.pickupObjectPlaceableId = -1; val6.forceBlackPhantom = false; val6.addDebrisObject = false; val6.prerequisites = null; val6.materialRequirements = null; val6.nonDatabasePlaceable = nonDatabasePlaceable6; DungeonPlaceableVariant val7 = new DungeonPlaceableVariant(); val7.percentChance = 0.005f; val7.unitOffset = new Vector2(0.5f, 0.5f); val7.enemyPlaceableGuid = string.Empty; val7.pickupObjectPlaceableId = -1; val7.forceBlackPhantom = false; val7.addDebrisObject = false; val7.prerequisites = null; val7.materialRequirements = null; val7.nonDatabasePlaceable = nonDatabasePlaceable7; DungeonPlaceableVariant val8 = new DungeonPlaceableVariant(); val8.percentChance = spawnChance; if (CustomOffset.HasValue) { val8.unitOffset = CustomOffset.Value; } else { val8.unitOffset = Vector2.zero; } val8.enemyPlaceableGuid = string.Empty; val8.pickupObjectPlaceableId = itemID; val8.forceBlackPhantom = false; if (itemHasDebrisObject) { val8.addDebrisObject = true; } else { val8.addDebrisObject = false; } val7.prerequisites = null; val7.materialRequirements = null; List list = new List(); list.Add(val2); list.Add(val); list.Add(val3); list.Add(val4); list.Add(val5); list.Add(val6); list.Add(val7); DungeonPlaceableVariant val9 = new DungeonPlaceableVariant(); val9.percentChance = spawnChance; val9.unitOffset = Vector2.zero; val9.enemyPlaceableGuid = EnemyGUID; val9.pickupObjectPlaceableId = -1; val9.forceBlackPhantom = false; val9.addDebrisObject = false; val9.prerequisites = null; val9.materialRequirements = null; List list2 = new List(); list2.Add(val9); List list3 = new List(); list3.Add(val8); DungeonPlaceable val10 = ScriptableObject.CreateInstance(); ((Object)val10).name = "CustomChestPlacable"; if (spawnsEnemy || useExternalPrefab) { val10.width = 2; val10.height = 2; } else if (spawnsItem) { val10.width = 1; val10.height = 1; } else { val10.width = 4; val10.height = 1; } val10.roomSequential = false; val10.respectsEncounterableDifferentiator = true; val10.UsePrefabTransformOffset = false; val10.isPassable = true; if (spawnsItem) { val10.MarkSpawnedItemsAsRatIgnored = true; } else { val10.MarkSpawnedItemsAsRatIgnored = false; } val10.DebugThisPlaceable = false; if (useExternalPrefab && (Object)(object)ObjectPrefab != (Object)null) { DungeonPlaceableVariant val11 = new DungeonPlaceableVariant(); val11.percentChance = spawnChance; if (CustomOffset.HasValue) { val11.unitOffset = CustomOffset.Value; } else { val11.unitOffset = Vector2.zero; } val11.enemyPlaceableGuid = string.Empty; val11.pickupObjectPlaceableId = -1; val11.forceBlackPhantom = false; val11.addDebrisObject = false; val11.nonDatabasePlaceable = ObjectPrefab; List list4 = new List(); list4.Add(val11); val10.variantTiers = list4; } else if (spawnsEnemy) { val10.variantTiers = list2; } else if (spawnsItem) { val10.variantTiers = list3; } else { val10.variantTiers = list; } return val10; } public static Chest GenerateChest(IntVector2 positionInRoom, RoomHandler targetRoom, ItemQuality? targetQuality = null, float overrideMimicChance = -1f, bool allowSynergyChest = true, bool deferConfiguration = true) { //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Invalid comparison between Unknown and I4 //IL_003f: 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_00bc: 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_00c5: Invalid comparison between Unknown and I4 //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Invalid comparison between Unknown and I4 //IL_0100: 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_00ad: Invalid comparison between Unknown and I4 //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Invalid comparison between Unknown and I4 //IL_0194: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Invalid comparison between Unknown and I4 //IL_01a6: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: 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_0204: Unknown result type (might be due to invalid IL or missing references) //IL_0209: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_0214: Unknown result type (might be due to invalid IL or missing references) //IL_0277: Unknown result type (might be due to invalid IL or missing references) //IL_027d: Invalid comparison between Unknown and I4 //IL_02ba: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Invalid comparison between Unknown and I4 //IL_0315: Unknown result type (might be due to invalid IL or missing references) //IL_0370: Unknown result type (might be due to invalid IL or missing references) //IL_0376: Invalid comparison between Unknown and I4 //IL_03f0: Unknown result type (might be due to invalid IL or missing references) //IL_041c: Unknown result type (might be due to invalid IL or missing references) Random random = ((!GameManager.Instance.IsSeeded) ? null : BraveRandom.GeneratorRandom); FloorRewardData currentRewardData = GameManager.Instance.RewardManager.CurrentRewardData; bool flag = StaticReferenceManager.DChestsSpawnedInTotal >= 2; if (!targetQuality.HasValue) { targetQuality = currentRewardData.GetRandomTargetQuality(true, flag); if (PassiveItem.IsFlagSetAtAll(typeof(SevenLeafCloverItem))) { targetQuality = (ItemQuality)((((random == null) ? Random.value : ((float)random.NextDouble())) >= 0.5f) ? 5 : 4); } } if ((int)targetQuality.GetValueOrDefault() == 1 && targetQuality.HasValue && StaticReferenceManager.DChestsSpawnedOnFloor >= 1 && (int)GameManager.Instance.Dungeon.tileIndices.tilesetId != 2) { targetQuality = (ItemQuality)2; } Vector2 zero = Vector2.zero; if ((int?)targetQuality == 4 || (int?)targetQuality == 5) { ((Vector2)(ref zero))..ctor(-0.5f, 0f); } Chest val = GetTargetChestPrefab(GameManager.Instance.RewardManager, targetQuality.Value); if (GameStatsManager.Instance.GetFlag((GungeonFlags)58001) && (int)GameManager.Instance.BestGenerationDungeonPrefab.tileIndices.tilesetId != 2 && allowSynergyChest && ((random == null) ? Random.value : ((float)random.NextDouble())) < GameManager.Instance.RewardManager.GlobalSynerchestChance) { val = GameManager.Instance.RewardManager.Synergy_Chest; ((Vector2)(ref zero))..ctor(-0.1875f, 0f); } GeneralChestType val2 = (GeneralChestType)((!(BraveRandom.GenerationRandomValue() >= currentRewardData.GunVersusItemPercentChance)) ? 1 : 2); if (StaticReferenceManager.ItemChestsSpawnedOnFloor > 0 && StaticReferenceManager.WeaponChestsSpawnedOnFloor == 0) { val2 = (GeneralChestType)1; } else if (StaticReferenceManager.WeaponChestsSpawnedOnFloor > 0 && StaticReferenceManager.ItemChestsSpawnedOnFloor == 0) { val2 = (GeneralChestType)2; } GenericLootTable val3 = (((int)val2 != 1) ? GameManager.Instance.RewardManager.ItemsLootTable : GameManager.Instance.RewardManager.GunsLootTable); GameObject val4 = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)val).gameObject, targetRoom, positionInRoom, true, (AwakenAnimationType)0, false); val4.transform.position = val4.transform.position + Vector2Extensions.ToVector3ZUp(zero, 0f); Chest component = val4.GetComponent(); Component[] componentsInChildren = val4.GetComponentsInChildren(typeof(IPlaceConfigurable)); foreach (Component obj in componentsInChildren) { IPlaceConfigurable val5 = (IPlaceConfigurable)(object)((obj is IPlaceConfigurable) ? obj : null); if (val5 != null) { val5.ConfigureOnPlacement(targetRoom); } } if (overrideMimicChance >= 0f) { component.overrideMimicChance = overrideMimicChance; } if ((int?)targetQuality == 4) { Dungeon dungeon = GameManager.Instance.Dungeon; dungeon.GeneratedMagnificence += 1f; component.GeneratedMagnificence += 1f; } else if ((int?)targetQuality == 5) { Dungeon dungeon2 = GameManager.Instance.Dungeon; dungeon2.GeneratedMagnificence += 1f; component.GeneratedMagnificence += 1f; } if (Object.op_Implicit((Object)(object)((BraveBehaviour)component).specRigidbody)) { ((BraveBehaviour)component).specRigidbody.Reinitialize(); } component.ChestType = val2; component.lootTable.lootTable = val3; if (component.lootTable.canDropMultipleItems && component.lootTable.overrideItemLootTables != null && component.lootTable.overrideItemLootTables.Count > 0) { component.lootTable.overrideItemLootTables[0] = val3; } if ((int)targetQuality.GetValueOrDefault() == 1 && targetQuality.HasValue && !component.IsMimic) { StaticReferenceManager.DChestsSpawnedOnFloor++; StaticReferenceManager.DChestsSpawnedInTotal++; component.IsLocked = true; if (Object.op_Implicit((Object)(object)component.LockAnimator)) { ((BraveBehaviour)component.LockAnimator).renderer.enabled = true; } } targetRoom.RegisterInteractable((IPlayerInteractable)(object)component); if (GameManager.Instance.RewardManager.SeededRunManifests.ContainsKey(GameManager.Instance.BestGenerationDungeonPrefab.tileIndices.tilesetId)) { component.GenerationDetermineContents(GameManager.Instance.RewardManager.SeededRunManifests[GameManager.Instance.BestGenerationDungeonPrefab.tileIndices.tilesetId], random); } return component; } private static Chest GetTargetChestPrefab(RewardManager rewardManager, ItemQuality targetQuality) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Expected I4, but got Unknown Chest result = null; switch (targetQuality - 1) { case 0: result = rewardManager.D_Chest; break; case 1: result = rewardManager.C_Chest; break; case 2: result = rewardManager.B_Chest; break; case 3: result = rewardManager.A_Chest; break; case 4: result = rewardManager.S_Chest; break; } return result; } public static void WallStamper(Dungeon dungeon, RoomHandler target, IntVector2 targetPosition, int length = 2, int height = 2, bool isVerticalWall = false, bool useBlockFillMethod = false, bool deferRebuild = true) { int num = ((IntVector2)(ref targetPosition)).X + target.area.basePosition.x; int num2 = ((IntVector2)(ref targetPosition)).Y + target.area.basePosition.y; try { if (useBlockFillMethod) { for (int i = 0; i < length; i++) { for (int j = 0; j < height; j++) { dungeon.ConstructWallAtPosition(num + i, num2 + j, deferRebuild); } } return; } for (int k = 0; k < length; k++) { if (isVerticalWall) { dungeon.ConstructWallAtPosition(num, num2 + k, deferRebuild); continue; } dungeon.ConstructWallAtPosition(num + k, num2, deferRebuild); dungeon.ConstructWallAtPosition(num + k, num2 + 1, deferRebuild); } } catch (Exception ex) { ETGModConsole.Log((object)"WARNING: Exception occured while generating wall cells!\nException details will be in log file.", false); Debug.Log((object)"WARNING: Exception occured while generating wall cells!"); Debug.LogException(ex); } } public static void FloorStamper(RoomHandler target, IntVector2 targetPosition, int sizeX = 2, int sizeY = 2, CellType floorType = 4) { //IL_0041: Unknown result type (might be due to invalid IL or missing references) int num = ((IntVector2)(ref targetPosition)).X + target.area.basePosition.x; int num2 = ((IntVector2)(ref targetPosition)).Y + target.area.basePosition.y; for (int i = 0; i < sizeX; i++) { for (int j = 0; j < sizeY; j++) { target.RuntimeStampCellComplex(num + i, num2 + j, floorType, (DiagonalWallType)0); } } } public static void GenerateFakeWall(Direction m_facingDirection, IntVector2 targetPosition, RoomHandler targetRoom, string wallName = "Fake Wall", bool markAsSecret = false, bool hasCollision = false, bool updateMinimapOnly = false, bool isGlitched = false) { //IL_0004: 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_0010: 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) //IL_0016: 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_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Invalid comparison between Unknown and I4 //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Invalid comparison between Unknown and I4 //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: 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_01af: Unknown result type (might be due to invalid IL or missing references) //IL_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_032f: Unknown result type (might be due to invalid IL or missing references) //IL_0346: 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_0393: Invalid comparison between Unknown and I4 //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Invalid comparison between Unknown and I4 //IL_01c4: 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_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: Unknown result type (might be due to invalid IL or missing references) //IL_03a9: Unknown result type (might be due to invalid IL or missing references) //IL_03ae: Unknown result type (might be due to invalid IL or missing references) //IL_0395: Unknown result type (might be due to invalid IL or missing references) //IL_0397: Invalid comparison between Unknown and I4 //IL_0037: 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_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006d: 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_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Invalid comparison between Unknown and I4 //IL_0210: Unknown result type (might be due to invalid IL or missing references) //IL_0212: Invalid comparison between Unknown and I4 //IL_01f0: Unknown result type (might be due to invalid IL or missing references) //IL_01ff: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Unknown result type (might be due to invalid IL or missing references) //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_0254: Unknown result type (might be due to invalid IL or missing references) //IL_0264: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Invalid comparison between Unknown and I4 //IL_021c: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0230: 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_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) if (targetRoom == null) { return; } IntVector2 val = targetPosition + targetRoom.area.basePosition; IntVector2 val2 = val + IntVector2.Right; if ((int)m_facingDirection == 6) { val = val2; } else if ((int)m_facingDirection == 2) { val2 = val; } if (!updateMinimapOnly) { try { GameObject val3 = GenerateWallMesh(m_facingDirection, val, wallName, null, abridged: true, isGlitched); val3.transform.parent = targetRoom.hierarchyParent; val3.transform.position = Vector3Extensions.WithZ(((IntVector2)(ref val)).ToVector3(), (float)(val.y - 2)) + Vector3.down; if ((int)m_facingDirection == 4) { StaticReferenceManager.AllShadowSystemDepthHavers.Add(val3.transform); } else if ((int)m_facingDirection == 6) { val3.transform.position = val3.transform.position + new Vector3(-0.1875f, 0f); } if (isGlitched && (Object)(object)val3.GetComponent() != (Object)null) { Material[] materials = ((Renderer)val3.GetComponent()).materials; foreach (Material originalMaterial in materials) { float glitchInterval = Random.Range(0.038f, 0.042f); float dispProbability = Random.Range(0.066f, 0.074f); float dispIntensity = Random.Range(0.048f, 0.052f); float colorProbability = Random.Range(0.069f, 0.071f); Random.Range(0.0495f, 0.0605f); ExpandShaders.ApplyGlitchMaterial(originalMaterial, glitchInterval, dispProbability, dispIntensity, colorProbability, 0.05f); } } } catch (Exception) { } try { GameObject val4 = GenerateRoomCeilingMesh(GetCeilingTileSet(val, val2, m_facingDirection), "Fake Ceiling", null, mimicCheck: true, isGlitched); val4.transform.parent = targetRoom.hierarchyParent; val4.transform.position = Vector3Extensions.WithZ(((IntVector2)(ref val)).ToVector3(), (float)(val.y - 4)); if ((int)m_facingDirection == 0) { Transform transform = val4.transform; transform.position += new Vector3(-1f, 0f); } else if ((int)m_facingDirection == 4) { Transform transform2 = val4.transform; transform2.position += new Vector3(-1f, 2f); } else if ((int)m_facingDirection == 2) { Transform transform3 = val4.transform; transform3.position += new Vector3(-1f, 0f); } val4.transform.position = Vector3Extensions.WithZ(val4.transform.position, val4.transform.position.y - 5f); if (isGlitched && (Object)(object)val4.GetComponent() != (Object)null) { Material[] materials = ((Renderer)val4.GetComponent()).materials; foreach (Material originalMaterial2 in materials) { float glitchInterval2 = Random.Range(0.038f, 0.042f); float dispProbability2 = Random.Range(0.066f, 0.074f); float dispIntensity2 = Random.Range(0.048f, 0.052f); float colorProbability2 = Random.Range(0.069f, 0.071f); Random.Range(0.0495f, 0.0605f); ExpandShaders.ApplyGlitchMaterial(originalMaterial2, glitchInterval2, dispProbability2, dispIntensity2, colorProbability2, 0.05f); } } } catch (Exception) { } } if (markAsSecret || updateMinimapOnly) { CellData val5 = GameManager.Instance.Dungeon.data[val]; CellData obj = GameManager.Instance.Dungeon.data[val2]; val5.isSecretRoomCell = true; obj.isSecretRoomCell = true; val5.forceDisallowGoop = true; obj.forceDisallowGoop = true; val5.cellVisualData.preventFloorStamping = true; obj.cellVisualData.preventFloorStamping = true; val5.isWallMimicHideout = true; obj.isWallMimicHideout = true; if ((int)m_facingDirection == 6 || (int)m_facingDirection == 2) { GameManager.Instance.Dungeon.data[val + IntVector2.Up].isSecretRoomCell = true; } } } public static void DestroyWallAtPosition(Dungeon dungeon, RoomHandler targetRoom, IntVector2 position, bool physicsOnly = false, bool deferRebuild = true) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Invalid comparison between Unknown and I4 //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) int num = position.x + targetRoom.area.basePosition.x; int num2 = position.y + targetRoom.area.basePosition.y; TK2DDungeonAssembler val = new TK2DDungeonAssembler(); val.Initialize(dungeon.tileIndices); tk2dTileMap mainTilemap = dungeon.MainTilemap; if (dungeon.data.cellData[num][num2] == null || (int)dungeon.data.cellData[num][num2].type != 1) { return; } dungeon.data.cellData[num][num2].type = (CellType)2; if (dungeon.data.isSingleCellWall(num, num2 + 1)) { dungeon.data[num, num2 + 1].type = (CellType)2; } if (dungeon.data.isSingleCellWall(num, num2 - 1)) { dungeon.data[num, num2 - 1].type = (CellType)2; } RoomHandler parentRoom = dungeon.data.cellData[num][num2].parentRoom; tk2dTileMap val2 = ((parentRoom == null || !((Object)(object)parentRoom.OverrideTilemap != (Object)null)) ? mainTilemap : parentRoom.OverrideTilemap); for (int i = -1; i < 2; i++) { for (int j = -2; j < 4; j++) { CellData val3 = dungeon.data.cellData[num + i][num2 + j]; if (val3 == null) { continue; } val3.hasBeenGenerated = false; if (!physicsOnly && val3.parentRoom != null) { List list = new List(); for (int k = 0; k < val3.parentRoom.hierarchyParent.childCount; k++) { Transform child = val3.parentRoom.hierarchyParent.GetChild(k); if (((Object)child).name.StartsWith("Chunk_")) { list.Add(((Component)child).gameObject); } } for (int num3 = list.Count - 1; num3 >= 0; num3--) { Object.Destroy((Object)(object)list[num3]); } } try { val.ClearTileIndicesForCell(dungeon, val2, val3.position.x, val3.position.y); val.BuildTileIndicesForCell(dungeon, val2, val3.position.x, val3.position.y); } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] Warning: Exception caught in TK2DDungeonAssembler.ClearTileIndicesForCell and/or TK2DDungeonAssembler.BuildTileIndicesForCell!", false); Debug.Log((object)"Warning: Exception caught in TK2DDungeonAssembler.ClearTileIndicesForCell and/or TK2DDungeonAssembler.BuildTileIndicesForCell!"); Debug.LogException(ex); } } val3.HasCachedPhysicsTile = false; val3.CachedPhysicsTile = null; } } if (!deferRebuild) { dungeon.RebuildTilemap(val2); } } public static void AddHealthHaver(GameObject target, float maxHealth = 25f, bool explodesOnDeath = true, DeathType explosionDeathType = 1, bool flashesOnDamage = false, bool exploderSpawnsItem = false) { //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0154: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Expected O, but got Unknown //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Expected O, but got Unknown //IL_01be: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Unknown result type (might be due to invalid IL or missing references) if (((Object)(object)target.GetComponent() != (Object)null) | ((Object)(object)target.GetComponentInChildren(true) != (Object)null) | ((Object)(object)target.GetComponent() != (Object)null) | ((Object)(object)target.GetComponentInChildren(true) != (Object)null) | ((Object)(object)target.GetComponentInChildren() == (Object)null)) { return; } target.AddComponent(); HealthHaver component = target.GetComponent(); typeof(HealthHaver).GetField("isPlayerCharacter", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(component, false); component.quantizeHealth = false; component.quantizedIncrement = 0.5f; component.flashesOnDamage = flashesOnDamage; component.incorporealityOnDamage = false; component.incorporealityTime = 0f; component.PreventAllDamage = false; component.persistsOnDeath = false; component.SetHealthMaximum(maxHealth, (float?)null, false); component.Armor = 0f; component.CursedMaximum = maxHealth * 3f; component.useFortunesFavorInvulnerability = false; component.damagedAudioEvent = string.Empty; component.overrideDeathAudioEvent = string.Empty; component.overrideDeathAnimation = string.Empty; component.shakesCameraOnDamage = false; component.cameraShakeOnDamage = new ScreenShakeSettings { magnitude = 0.35f, speed = 6f, time = 0.06f, falloff = 0f, direction = Vector2.zero, vibrationType = (VibrationType)10, simpleVibrationTime = (Time)20, simpleVibrationStrength = (Strength)20 }; component.damageTypeModifiers = new List(0); component.healthIsNumberOfHits = false; component.OnlyAllowSpecialBossDamage = false; component.overrideDeathAnimBulletScript = string.Empty; component.noCorpseWhenBulletScriptDeath = false; component.spawnBulletScript = false; component.chanceToSpawnBulletScript = 0f; component.bulletScriptType = (BulletScriptType)0; component.bulletScript = new BulletScriptSelector { scriptTypeName = string.Empty }; component.bossHealthBar = (BossBarType)0; component.overrideBossName = string.Empty; component.forcePreventVictoryMusic = false; component.GlobalPixelColliderDamageMultiplier = 1f; component.IsVulnerable = true; if (explodesOnDeath) { ((Component)component).gameObject.AddComponent(); ExpandExplodeOnDeath component2 = ((Component)component).gameObject.GetComponent(); ((OnDeathBehavior)component2).deathType = explosionDeathType; if (exploderSpawnsItem) { component2.spawnItemsOnExplosion = true; } } } public static void GenerateHealthHaver(GameObject target, float maxHealth = 25f, bool disableAnimator = true, bool explodesOnDeath = true, DeathType explosionDeathType = 1, bool flashesOnDamage = true, bool exploderSpawnsItem = false, bool isCorruptedObject = true, bool isRatNPC = false, bool skipAnimatorCheck = false, bool buildLists = false) { //IL_0346: Unknown result type (might be due to invalid IL or missing references) //IL_034b: Unknown result type (might be due to invalid IL or missing references) //IL_0356: Unknown result type (might be due to invalid IL or missing references) //IL_0361: Unknown result type (might be due to invalid IL or missing references) //IL_036c: Unknown result type (might be due to invalid IL or missing references) //IL_0377: Unknown result type (might be due to invalid IL or missing references) //IL_0378: 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_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0385: Unknown result type (might be due to invalid IL or missing references) //IL_038a: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Unknown result type (might be due to invalid IL or missing references) //IL_0392: Unknown result type (might be due to invalid IL or missing references) //IL_0395: Unknown result type (might be due to invalid IL or missing references) //IL_039f: Expected O, but got Unknown //IL_03df: Unknown result type (might be due to invalid IL or missing references) //IL_03e5: Unknown result type (might be due to invalid IL or missing references) //IL_03ea: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Expected O, but got Unknown //IL_03fc: Unknown result type (might be due to invalid IL or missing references) //IL_0439: Unknown result type (might be due to invalid IL or missing references) //IL_043b: Unknown result type (might be due to invalid IL or missing references) if (((Object)(object)target.GetComponent() != (Object)null) | ((Object)(object)target.GetComponentInChildren(true) != (Object)null) | ((Object)(object)target.GetComponent() == (Object)null) | ((Object)(object)target.GetComponentInChildren() == (Object)null)) { return; } if (!isRatNPC && !skipAnimatorCheck) { tk2dBaseSprite component = target.GetComponent(); if (disableAnimator) { if (Object.op_Implicit((Object)(object)target.GetComponent())) { Object.Destroy((Object)(object)target.GetComponent()); } if (Object.op_Implicit((Object)(object)target.GetComponent())) { Object.Destroy((Object)(object)target.GetComponent()); } target.AddComponent(); tk2dSpriteAnimator component2 = target.GetComponent(); component2.Library = null; component2.DefaultClipId = 0; component2.AdditionalCameraVisibilityRadius = 0f; component2.AnimateDuringBossIntros = false; component2.AlwaysIgnoreTimeScale = true; component2.ForceSetEveryFrame = false; component2.playAutomatically = false; component2.IsFrameBlendedAnimation = false; component2.clipTime = 0f; component2.deferNextStartClip = false; SpriteBuilder.AddAnimation(component2, component.Collection, new List { component.spriteId }, "DummyFrame", (WrapMode)2); } else if (!Object.op_Implicit((Object)(object)target.GetComponent()) && (Object)(object)component.Collection != (Object)null) { target.AddComponent(); tk2dSpriteAnimator component3 = target.GetComponent(); component3.Library = null; component3.DefaultClipId = 0; component3.AdditionalCameraVisibilityRadius = 0f; component3.AnimateDuringBossIntros = false; component3.AlwaysIgnoreTimeScale = true; component3.ForceSetEveryFrame = false; component3.playAutomatically = false; component3.IsFrameBlendedAnimation = false; component3.clipTime = 0f; component3.deferNextStartClip = false; SpriteBuilder.AddAnimation(component3, component.Collection, new List { component.spriteId }, "DummyFrame", (WrapMode)2); } else if (Object.op_Implicit((Object)(object)target.GetComponent()) && !disableAnimator) { tk2dSpriteAnimator component4 = target.GetComponent(); if (!((Object)(object)component4.Library != (Object)null) || component4.Library.clips == null || component4.Library.clips.Length == 0) { return; } tk2dSpriteAnimationClip[] clips = component4.Library.clips; foreach (tk2dSpriteAnimationClip val in clips) { if (val.frames != null && val.frames.Length != 0) { tk2dSpriteAnimationFrame[] frames = val.frames; for (int j = 0; j < frames.Length; j++) { frames[j].invulnerableFrame = false; } } } } else if (!Object.op_Implicit((Object)(object)target.GetComponent()) && !disableAnimator) { return; } } target.AddComponent(); HealthHaver component5 = target.GetComponent(); typeof(HealthHaver).GetField("isPlayerCharacter", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(component5, false); component5.IsVulnerable = true; component5.quantizeHealth = false; component5.quantizedIncrement = 0.5f; component5.flashesOnDamage = flashesOnDamage; component5.incorporealityOnDamage = false; component5.incorporealityTime = 0f; component5.PreventAllDamage = false; component5.persistsOnDeath = false; component5.SetHealthMaximum(maxHealth, (float?)null, false); component5.Armor = 0f; component5.CursedMaximum = maxHealth * 3f; component5.useFortunesFavorInvulnerability = false; component5.damagedAudioEvent = string.Empty; component5.overrideDeathAudioEvent = string.Empty; component5.overrideDeathAnimation = string.Empty; component5.shakesCameraOnDamage = false; component5.cameraShakeOnDamage = new ScreenShakeSettings { magnitude = 0.35f, speed = 6f, time = 0.06f, falloff = 0f, direction = Vector2.zero, vibrationType = (VibrationType)10, simpleVibrationTime = (Time)20, simpleVibrationStrength = (Strength)20 }; component5.damageTypeModifiers = new List(0); component5.healthIsNumberOfHits = false; component5.OnlyAllowSpecialBossDamage = false; component5.overrideDeathAnimBulletScript = string.Empty; component5.noCorpseWhenBulletScriptDeath = false; component5.spawnBulletScript = false; component5.chanceToSpawnBulletScript = 0f; component5.bulletScriptType = (BulletScriptType)0; component5.bulletScript = new BulletScriptSelector { scriptTypeName = string.Empty }; component5.bossHealthBar = (BossBarType)0; component5.overrideBossName = string.Empty; component5.forcePreventVictoryMusic = false; component5.GlobalPixelColliderDamageMultiplier = 1f; if (explodesOnDeath) { ((Component)component5).gameObject.AddComponent(); ExpandExplodeOnDeath component6 = ((Component)component5).gameObject.GetComponent(); ((OnDeathBehavior)component6).deathType = explosionDeathType; component6.spawnItemsOnExplosion = exploderSpawnsItem; component6.isCorruptedObject = isCorruptedObject; } if (buildLists) { component5.DamageableColliders = new List(); if (target.GetComponentsInChildren(true) != null && target.GetComponentsInChildren(true).Length != 0) { component5.bodyRigidbodies = new List(); SpeculativeRigidbody[] componentsInChildren = target.GetComponentsInChildren(true); foreach (SpeculativeRigidbody val2 in componentsInChildren) { component5.bodyRigidbodies.Add(val2); if (val2.PixelColliders == null || val2.PixelColliders.Count <= 0) { continue; } foreach (PixelCollider pixelCollider in val2.PixelColliders) { component5.DamageableColliders.Add(pixelCollider); } } } else { component5.bodyRigidbodies = new List { target.GetComponent() }; if (target.GetComponent().PixelColliders != null && target.GetComponent().PixelColliders.Count > 0) { foreach (PixelCollider pixelCollider2 in target.GetComponent().PixelColliders) { component5.DamageableColliders.Add(pixelCollider2); } } } if (target.GetComponentsInChildren(true) != null) { component5.bodySprites = new List(); tk2dBaseSprite[] componentsInChildren2 = target.GetComponentsInChildren(true); foreach (tk2dBaseSprite item in componentsInChildren2) { component5.bodySprites.Add(item); } } } if (isCorruptedObject) { if (string.IsNullOrEmpty(((Object)target).name)) { ((Object)target).name = "Corrupted Object"; } else if (!((Object)target).name.StartsWith("Corrupted")) { ((Object)target).name = "Corrupted " + ((Object)target).name; } } try { ((BraveBehaviour)component5).RegenerateCache(); } catch (Exception) { } } public static ExplosionData GenerateExplosionData(GameObject DefaultVFX = null, GameObject overrideRangeIndicatorEffect = null, List ignoreList = null, GameActorFreezeEffect freezeEffect = null, bool useDefaultExplosion = false, bool doDamage = true, bool forceUseThisRadius = true, float damageRadius = 3f, bool DamagesPlayer = true, float damage = 40f, bool breakSecretWalls = false, float secretWallsRadius = 4.5f, bool forcePreventSecretWallDamage = false, bool doDestroyProjectiles = true, bool doForce = true, float pushRadius = 5f, float force = 100f, float debrisForce = 50f, bool preventPlayerForce = false, float explosionDelay = 0.1f, bool usesComprehensiveDelay = false, float comprehensiveDelay = 0f, bool doScreenShake = true, bool doStickyFriction = true, bool doExplosionRing = true, bool isFreezeExplosion = false, float freezeRadius = 5f, bool playDefaultSFX = true, bool IsChandelierExplosion = false, bool rotateEffectToNormal = false) { //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: 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_0059: 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_0069: 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_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_0090: 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_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_0103: 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_011a: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0127: 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_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Expected O, but got Unknown //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_0151: 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_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_0170: 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_0180: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) //IL_018f: Expected O, but got Unknown if (!Object.op_Implicit((Object)(object)DefaultVFX)) { DefaultVFX = ExpandAssets.LoadOfficialAsset("VFX_Ring_Explosion_001", ExpandAssets.AssetSource.SharedAuto1); } if (!Object.op_Implicit((Object)(object)DefaultVFX)) { return null; } if (isFreezeExplosion && freezeEffect == null) { isFreezeExplosion = false; } if (ignoreList == null) { ignoreList = new List(0); } float damageToPlayer = 0.5f; if (!DamagesPlayer) { damageToPlayer = 0f; } ExplosionData val = new ExplosionData { useDefaultExplosion = useDefaultExplosion, doDamage = doDamage, forceUseThisRadius = forceUseThisRadius, damageRadius = damageRadius, damageToPlayer = damageToPlayer, damage = damage, breakSecretWalls = breakSecretWalls, secretWallsRadius = secretWallsRadius, forcePreventSecretWallDamage = forcePreventSecretWallDamage, doDestroyProjectiles = doDestroyProjectiles, doForce = doForce, pushRadius = pushRadius, force = force, debrisForce = debrisForce, preventPlayerForce = preventPlayerForce, explosionDelay = explosionDelay, usesComprehensiveDelay = usesComprehensiveDelay, comprehensiveDelay = comprehensiveDelay, effect = DefaultVFX, doScreenShake = doScreenShake, ss = new ScreenShakeSettings { magnitude = 2f, speed = 7f, time = 0.1f, falloff = 0.3f, direction = Vector2.zero, vibrationType = (VibrationType)10, simpleVibrationTime = (Time)20, simpleVibrationStrength = (Strength)20 }, doStickyFriction = doStickyFriction, doExplosionRing = doExplosionRing, isFreezeExplosion = isFreezeExplosion, freezeRadius = freezeRadius, freezeEffect = freezeEffect, playDefaultSFX = playDefaultSFX, IsChandelierExplosion = IsChandelierExplosion, rotateEffectToNormal = rotateEffectToNormal, ignoreList = ignoreList, overrideRangeIndicatorEffect = overrideRangeIndicatorEffect }; if (val == null) { return null; } return val; } public static IEnumerator DelayedGlitchLevelLoad(float delay, string flowPath, bool useSpaceTileset = false) { if (!string.IsNullOrEmpty(flowPath)) { string flow = flowPath; ExpandDungeonFlow.isGlitchFlow = true; if (BraveUtility.RandomBool()) { flow = "custom_glitch_flow"; } yield return (object)new WaitForSeconds(delay); if (useSpaceTileset) { GameManager.Instance.LoadCustomFlowForDebug(flow, "Base_Space", "tt_space"); } else { GameManager.Instance.LoadCustomFlowForDebug(flow, "Base_Phobos", "tt_phobos"); } } } public static GameObject GenerateRoomCeilingMesh(HashSet cells, string objectName = "secret room ceiling object", DungeonData dungeonData = null, bool mimicCheck = false, bool isGlitched = false, tk2dSpriteCollectionData overrideDungeonCollection = null, Dungeon dungeonOverride = null) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Expected O, but got Unknown //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_011a: 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_0164: 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_0171: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Unknown result type (might be due to invalid IL or missing references) //IL_0659: Unknown result type (might be due to invalid IL or missing references) //IL_065e: Unknown result type (might be due to invalid IL or missing references) //IL_0663: Unknown result type (might be due to invalid IL or missing references) //IL_0668: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing references) //IL_020c: Unknown result type (might be due to invalid IL or missing references) //IL_068e: Unknown result type (might be due to invalid IL or missing references) //IL_0693: Unknown result type (might be due to invalid IL or missing references) //IL_0695: Unknown result type (might be due to invalid IL or missing references) //IL_06f6: Unknown result type (might be due to invalid IL or missing references) //IL_06fd: Expected O, but got Unknown //IL_0716: Unknown result type (might be due to invalid IL or missing references) //IL_0583: Unknown result type (might be due to invalid IL or missing references) //IL_058b: Unknown result type (might be due to invalid IL or missing references) //IL_0590: Unknown result type (might be due to invalid IL or missing references) //IL_0532: Unknown result type (might be due to invalid IL or missing references) //IL_05a4: Unknown result type (might be due to invalid IL or missing references) //IL_05b7: Unknown result type (might be due to invalid IL or missing references) //IL_05bc: Unknown result type (might be due to invalid IL or missing references) //IL_05bf: Unknown result type (might be due to invalid IL or missing references) //IL_05c1: Unknown result type (might be due to invalid IL or missing references) //IL_05c3: Unknown result type (might be due to invalid IL or missing references) //IL_05c8: Unknown result type (might be due to invalid IL or missing references) //IL_05ca: Unknown result type (might be due to invalid IL or missing references) //IL_05df: Unknown result type (might be due to invalid IL or missing references) if (dungeonData == null) { dungeonData = GameManager.Instance.Dungeon.data; } Mesh val = new Mesh(); List list = new List(); List list2 = new List(); List list3 = new List(); List list4 = new List(); Material val2 = null; Material val3 = null; tk2dSpriteCollectionData val4 = overrideDungeonCollection; if (!Object.op_Implicit((Object)(object)val4)) { val4 = GameManager.Instance.Dungeon.tileIndices.dungeonCollection; } if (isGlitched) { val4 = Object.Instantiate(val4); tk2dSpriteDefinition[] spriteDefinitions = val4.spriteDefinitions; for (int i = 0; i < spriteDefinitions.Length; i++) { ExpandShaders.ApplyGlitchShaderUnlit(spriteDefinitions[i], Random.Range(0.038f, 0.042f), Random.Range(0.073f, 0.067f), Random.Range(0.052f, 0.048f), Random.Range(0.073f, 0.67f), Random.Range(0.052f, 0.048f)); } } Vector3 val5 = default(Vector3); ((Vector3)(ref val5))..ctor(0f, 0f, -3.01f); Vector3 val6 = default(Vector3); ((Vector3)(ref val6))..ctor(0f, 0f, -3.02f); foreach (IntVector2 cell in cells) { IntVector2 current = cell; TileIndexGrid borderGridForCellPosition = GetBorderGridForCellPosition(current, dungeonData, dungeonOverride); int tileFromRawTile = BuilderUtil.GetTileFromRawTile(borderGridForCellPosition.centerIndices.GetIndexByWeight()); tk2dSpriteDefinition val7 = val4.spriteDefinitions[tileFromRawTile]; if ((Object)(object)val2 == (Object)null) { val2 = val7.material; } int count = list.Count; Vector3 val8 = ((IntVector2)(ref current)).ToVector3((float)current.y); Vector3[] array = val7.ConstructExpensivePositions(); for (int j = 0; j < array.Length; j++) { Vector3 val9 = Vector3Extensions.WithZ(array[j], array[j].y); list.Add(val8 + val9 + val5); list4.Add(val7.uvs[j]); } for (int k = 0; k < val7.indices.Length; k++) { list2.Add(count + val7.indices[k]); } int x = current.x; int y = current.y; bool flag = IsTopWall(x, y, dungeonData, cells); bool flag2 = IsTopWall(x + 1, y, dungeonData, cells) && !IsTopWall(x, y, dungeonData, cells) && (IsWall(x, y + 1, dungeonData, cells) || IsTopWall(x, y + 1, dungeonData, cells)); bool flag3 = (!IsWall(x + 1, y, dungeonData, cells) && !IsTopWall(x + 1, y, dungeonData, cells)) || IsFaceWallHigher(x + 1, y, dungeonData, cells); bool flag4 = y > 3 && IsFaceWallHigher(x + 1, y - 1, dungeonData, cells) && !IsFaceWallHigher(x, y - 1, dungeonData, cells); bool flag5 = y > 3 && IsFaceWallHigher(x, y - 1, dungeonData, cells); bool flag6 = y > 3 && IsFaceWallHigher(x - 1, y - 1, dungeonData, cells) && !IsFaceWallHigher(x, y - 1, dungeonData, cells); bool flag7 = (!IsWall(x - 1, y, dungeonData, cells) && !IsTopWall(x - 1, y, dungeonData, cells)) || IsFaceWallHigher(x - 1, y, dungeonData, cells); bool flag8 = IsTopWall(x - 1, y, dungeonData, cells) && !IsTopWall(x, y, dungeonData, cells) && (IsWall(x, y + 1, dungeonData, cells) || IsTopWall(x, y + 1, dungeonData, cells)); if (mimicCheck) { flag = IsTopWallOrSecret(x, y, dungeonData, cells); flag2 = IsTopWallOrSecret(x + 1, y, dungeonData, cells) && !IsTopWallOrSecret(x, y, dungeonData, cells) && (IsWallOrSecret(x, y + 1, dungeonData, cells) || IsTopWallOrSecret(x, y + 1, dungeonData, cells)); flag3 = (!IsWallOrSecret(x + 1, y, dungeonData, cells) && !IsTopWallOrSecret(x + 1, y, dungeonData, cells)) || IsFaceWallHigherOrSecret(x + 1, y, dungeonData, cells); flag4 = y > 3 && IsFaceWallHigherOrSecret(x + 1, y - 1, dungeonData, cells) && !IsFaceWallHigherOrSecret(x, y - 1, dungeonData, cells); flag5 = y > 3 && IsFaceWallHigherOrSecret(x, y - 1, dungeonData, cells); flag6 = y > 3 && IsFaceWallHigherOrSecret(x - 1, y - 1, dungeonData, cells) && !IsFaceWallHigherOrSecret(x, y - 1, dungeonData, cells); flag7 = (!IsWallOrSecret(x - 1, y, dungeonData, cells) && !IsTopWallOrSecret(x - 1, y, dungeonData, cells)) || IsFaceWallHigherOrSecret(x - 1, y, dungeonData, cells); flag8 = IsTopWallOrSecret(x - 1, y, dungeonData, cells) && !IsTopWallOrSecret(x, y, dungeonData, cells) && (IsWallOrSecret(x, y + 1, dungeonData, cells) || IsTopWallOrSecret(x, y + 1, dungeonData, cells)); } if (!(flag || flag2 || flag3 || flag4 || flag5 || flag6 || flag7 || flag8)) { continue; } int num = borderGridForCellPosition.GetIndexGivenSides(flag, flag2, flag3, flag4, flag5, flag6, flag7, flag8); if (borderGridForCellPosition.UsesRatChunkBorders) { bool flag9 = y > 3; if (flag9) { flag9 = !dungeonData[x, y - 1].HasFloorNeighbor(dungeonData, false, true); } RatChunkResult val10 = (RatChunkResult)0; num = borderGridForCellPosition.GetRatChunkIndexGivenSides(flag, flag2, flag3, flag4, flag5, flag6, flag7, flag8, flag9, ref val10); } int tileFromRawTile2 = BuilderUtil.GetTileFromRawTile(num); tk2dSpriteDefinition val11 = val4.spriteDefinitions[tileFromRawTile2]; if ((Object)(object)val3 == (Object)null) { val3 = val11.material; } int count2 = list.Count; Vector3 val12 = ((IntVector2)(ref current)).ToVector3((float)current.y); Vector3[] array2 = val11.ConstructExpensivePositions(); for (int l = 0; l < array2.Length; l++) { Vector3 val13 = Vector3Extensions.WithZ(array2[l], array2[l].y); list.Add(val12 + val13 + val6); list4.Add(val11.uvs[l]); } for (int m = 0; m < val11.indices.Length; m++) { list3.Add(count2 + val11.indices[m]); } } Vector3 val14 = default(Vector3); ((Vector3)(ref val14))..ctor(float.MaxValue, float.MaxValue, float.MaxValue); for (int n = 0; n < list.Count; n++) { val14 = Vector3.Min(val14, list[n]); } for (int num2 = 0; num2 < list.Count; num2++) { List list5 = list; int i = num2; list5[i] -= val14; } val.vertices = list.ToArray(); val.uv = list4.ToArray(); val.subMeshCount = 2; val.SetTriangles(list2.ToArray(), 0); val.SetTriangles(list3.ToArray(), 1); val.RecalculateBounds(); val.RecalculateNormals(); GameObject val15 = new GameObject(objectName); MeshFilter val16 = val15.AddComponent(); MeshRenderer val17 = val15.AddComponent(); val15.transform.position = val14; val16.mesh = val; ((Renderer)val17).materials = (Material[])(object)new Material[2] { val2, val3 }; return val15; } public static GameObject GenerateWallMesh(Direction exitDirection, IntVector2 exitBasePosition, string objectName = "secret room door object", DungeonData dungeonData = null, bool abridged = false, bool isGlitched = false, tk2dSpriteCollectionData DungeonCollectionOverride = null, Dungeon secondaryDungeon = null) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Expected O, but got Unknown //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_012b: Expected I4, but got Unknown //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0148: 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_0180: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_020d: Unknown result type (might be due to invalid IL or missing references) //IL_0237: Unknown result type (might be due to invalid IL or missing references) //IL_0238: Unknown result type (might be due to invalid IL or missing references) //IL_023d: 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_0247: Unknown result type (might be due to invalid IL or missing references) //IL_026e: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_02ac: 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_02b3: Unknown result type (might be due to invalid IL or missing references) //IL_02b8: Unknown result type (might be due to invalid IL or missing references) //IL_02df: Unknown result type (might be due to invalid IL or missing references) //IL_02f3: Unknown result type (might be due to invalid IL or missing references) //IL_031d: Unknown result type (might be due to invalid IL or missing references) //IL_031e: Unknown result type (might be due to invalid IL or missing references) //IL_0324: 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_032e: Unknown result type (might be due to invalid IL or missing references) //IL_0333: Unknown result type (might be due to invalid IL or missing references) //IL_035a: Unknown result type (might be due to invalid IL or missing references) //IL_036e: Unknown result type (might be due to invalid IL or missing references) //IL_05aa: Unknown result type (might be due to invalid IL or missing references) //IL_05ab: Unknown result type (might be due to invalid IL or missing references) //IL_05b1: Unknown result type (might be due to invalid IL or missing references) //IL_05b6: Unknown result type (might be due to invalid IL or missing references) //IL_05cc: Unknown result type (might be due to invalid IL or missing references) //IL_05cd: Unknown result type (might be due to invalid IL or missing references) //IL_05d3: Unknown result type (might be due to invalid IL or missing references) //IL_05d8: Unknown result type (might be due to invalid IL or missing references) //IL_05dd: Unknown result type (might be due to invalid IL or missing references) //IL_05e2: Unknown result type (might be due to invalid IL or missing references) //IL_05f8: Unknown result type (might be due to invalid IL or missing references) //IL_05f9: Unknown result type (might be due to invalid IL or missing references) //IL_05ff: Unknown result type (might be due to invalid IL or missing references) //IL_0604: Unknown result type (might be due to invalid IL or missing references) //IL_062a: Unknown result type (might be due to invalid IL or missing references) //IL_062b: Unknown result type (might be due to invalid IL or missing references) //IL_0631: Unknown result type (might be due to invalid IL or missing references) //IL_0636: Unknown result type (might be due to invalid IL or missing references) //IL_063b: Unknown result type (might be due to invalid IL or missing references) //IL_0640: Unknown result type (might be due to invalid IL or missing references) //IL_0686: Unknown result type (might be due to invalid IL or missing references) //IL_0687: Unknown result type (might be due to invalid IL or missing references) //IL_068c: Unknown result type (might be due to invalid IL or missing references) //IL_06b3: Unknown result type (might be due to invalid IL or missing references) //IL_06c7: Unknown result type (might be due to invalid IL or missing references) //IL_06f1: Unknown result type (might be due to invalid IL or missing references) //IL_06f2: Unknown result type (might be due to invalid IL or missing references) //IL_06f7: Unknown result type (might be due to invalid IL or missing references) //IL_06fc: Unknown result type (might be due to invalid IL or missing references) //IL_0701: Unknown result type (might be due to invalid IL or missing references) //IL_0728: Unknown result type (might be due to invalid IL or missing references) //IL_073c: Unknown result type (might be due to invalid IL or missing references) //IL_0766: Unknown result type (might be due to invalid IL or missing references) //IL_0789: Unknown result type (might be due to invalid IL or missing references) //IL_079d: Unknown result type (might be due to invalid IL or missing references) //IL_07c7: Unknown result type (might be due to invalid IL or missing references) //IL_07c8: Unknown result type (might be due to invalid IL or missing references) //IL_07cd: Unknown result type (might be due to invalid IL or missing references) //IL_07f4: Unknown result type (might be due to invalid IL or missing references) //IL_0808: Unknown result type (might be due to invalid IL or missing references) //IL_082d: Unknown result type (might be due to invalid IL or missing references) //IL_0858: Unknown result type (might be due to invalid IL or missing references) //IL_085a: Unknown result type (might be due to invalid IL or missing references) //IL_0861: Unknown result type (might be due to invalid IL or missing references) //IL_0862: Unknown result type (might be due to invalid IL or missing references) //IL_0867: Unknown result type (might be due to invalid IL or missing references) //IL_0896: Unknown result type (might be due to invalid IL or missing references) //IL_0898: Unknown result type (might be due to invalid IL or missing references) //IL_089f: Unknown result type (might be due to invalid IL or missing references) //IL_08a0: Unknown result type (might be due to invalid IL or missing references) //IL_08a5: Unknown result type (might be due to invalid IL or missing references) //IL_08d4: Unknown result type (might be due to invalid IL or missing references) //IL_08d6: Unknown result type (might be due to invalid IL or missing references) //IL_08dd: Unknown result type (might be due to invalid IL or missing references) //IL_08de: Unknown result type (might be due to invalid IL or missing references) //IL_08e3: Unknown result type (might be due to invalid IL or missing references) //IL_08e8: Unknown result type (might be due to invalid IL or missing references) //IL_08ed: Unknown result type (might be due to invalid IL or missing references) //IL_091c: Unknown result type (might be due to invalid IL or missing references) //IL_091e: Unknown result type (might be due to invalid IL or missing references) //IL_0381: Unknown result type (might be due to invalid IL or missing references) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_092e: Unknown result type (might be due to invalid IL or missing references) //IL_092f: Unknown result type (might be due to invalid IL or missing references) //IL_0934: Unknown result type (might be due to invalid IL or missing references) //IL_0b6a: Unknown result type (might be due to invalid IL or missing references) //IL_0b6f: Unknown result type (might be due to invalid IL or missing references) //IL_0b74: Unknown result type (might be due to invalid IL or missing references) //IL_0b79: Unknown result type (might be due to invalid IL or missing references) //IL_0b8d: Unknown result type (might be due to invalid IL or missing references) //IL_0ba1: Unknown result type (might be due to invalid IL or missing references) //IL_0bb5: Unknown result type (might be due to invalid IL or missing references) //IL_03bd: Unknown result type (might be due to invalid IL or missing references) //IL_03be: Unknown result type (might be due to invalid IL or missing references) //IL_03c3: Unknown result type (might be due to invalid IL or missing references) //IL_03d9: Unknown result type (might be due to invalid IL or missing references) //IL_03da: Unknown result type (might be due to invalid IL or missing references) //IL_03e0: Unknown result type (might be due to invalid IL or missing references) //IL_03e5: Unknown result type (might be due to invalid IL or missing references) //IL_03a1: Unknown result type (might be due to invalid IL or missing references) //IL_03a2: Unknown result type (might be due to invalid IL or missing references) //IL_03a7: Unknown result type (might be due to invalid IL or missing references) //IL_096a: Unknown result type (might be due to invalid IL or missing references) //IL_096b: Unknown result type (might be due to invalid IL or missing references) //IL_0970: Unknown result type (might be due to invalid IL or missing references) //IL_0986: Unknown result type (might be due to invalid IL or missing references) //IL_0987: Unknown result type (might be due to invalid IL or missing references) //IL_098d: Unknown result type (might be due to invalid IL or missing references) //IL_0992: Unknown result type (might be due to invalid IL or missing references) //IL_094e: Unknown result type (might be due to invalid IL or missing references) //IL_094f: Unknown result type (might be due to invalid IL or missing references) //IL_0954: Unknown result type (might be due to invalid IL or missing references) //IL_0421: Unknown result type (might be due to invalid IL or missing references) //IL_0422: Unknown result type (might be due to invalid IL or missing references) //IL_0427: Unknown result type (might be due to invalid IL or missing references) //IL_044d: Unknown result type (might be due to invalid IL or missing references) //IL_044e: Unknown result type (might be due to invalid IL or missing references) //IL_0454: Unknown result type (might be due to invalid IL or missing references) //IL_0459: Unknown result type (might be due to invalid IL or missing references) //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_0400: Unknown result type (might be due to invalid IL or missing references) //IL_0406: Unknown result type (might be due to invalid IL or missing references) //IL_040b: Unknown result type (might be due to invalid IL or missing references) //IL_09ce: Unknown result type (might be due to invalid IL or missing references) //IL_09cf: Unknown result type (might be due to invalid IL or missing references) //IL_09d4: Unknown result type (might be due to invalid IL or missing references) //IL_09fa: Unknown result type (might be due to invalid IL or missing references) //IL_09fb: Unknown result type (might be due to invalid IL or missing references) //IL_0a01: Unknown result type (might be due to invalid IL or missing references) //IL_0a06: Unknown result type (might be due to invalid IL or missing references) //IL_09ac: Unknown result type (might be due to invalid IL or missing references) //IL_09ad: Unknown result type (might be due to invalid IL or missing references) //IL_09b3: Unknown result type (might be due to invalid IL or missing references) //IL_09b8: Unknown result type (might be due to invalid IL or missing references) //IL_0bdb: Unknown result type (might be due to invalid IL or missing references) //IL_0be0: Unknown result type (might be due to invalid IL or missing references) //IL_0be2: Unknown result type (might be due to invalid IL or missing references) //IL_0c6c: Unknown result type (might be due to invalid IL or missing references) //IL_0c73: Expected O, but got Unknown //IL_0c9d: Unknown result type (might be due to invalid IL or missing references) //IL_04d0: Unknown result type (might be due to invalid IL or missing references) //IL_04d1: Unknown result type (might be due to invalid IL or missing references) //IL_04d6: Unknown result type (might be due to invalid IL or missing references) //IL_04db: Unknown result type (might be due to invalid IL or missing references) //IL_04e0: Unknown result type (might be due to invalid IL or missing references) //IL_050f: Unknown result type (might be due to invalid IL or missing references) //IL_0511: Unknown result type (might be due to invalid IL or missing references) //IL_0518: Unknown result type (might be due to invalid IL or missing references) //IL_0519: Unknown result type (might be due to invalid IL or missing references) //IL_051e: Unknown result type (might be due to invalid IL or missing references) //IL_054d: Unknown result type (might be due to invalid IL or missing references) //IL_054f: Unknown result type (might be due to invalid IL or missing references) //IL_0483: Unknown result type (might be due to invalid IL or missing references) //IL_0484: Unknown result type (might be due to invalid IL or missing references) //IL_048a: Unknown result type (might be due to invalid IL or missing references) //IL_048f: Unknown result type (might be due to invalid IL or missing references) //IL_0a7d: Unknown result type (might be due to invalid IL or missing references) //IL_0a7e: Unknown result type (might be due to invalid IL or missing references) //IL_0a83: Unknown result type (might be due to invalid IL or missing references) //IL_0a88: Unknown result type (might be due to invalid IL or missing references) //IL_0a8d: Unknown result type (might be due to invalid IL or missing references) //IL_0abc: Unknown result type (might be due to invalid IL or missing references) //IL_0abe: Unknown result type (might be due to invalid IL or missing references) //IL_0ac5: Unknown result type (might be due to invalid IL or missing references) //IL_0ac6: Unknown result type (might be due to invalid IL or missing references) //IL_0acb: Unknown result type (might be due to invalid IL or missing references) //IL_0afa: Unknown result type (might be due to invalid IL or missing references) //IL_0afc: Unknown result type (might be due to invalid IL or missing references) //IL_0a30: Unknown result type (might be due to invalid IL or missing references) //IL_0a31: Unknown result type (might be due to invalid IL or missing references) //IL_0a37: Unknown result type (might be due to invalid IL or missing references) //IL_0a3c: Unknown result type (might be due to invalid IL or missing references) //IL_055d: Unknown result type (might be due to invalid IL or missing references) //IL_055e: Unknown result type (might be due to invalid IL or missing references) //IL_0563: Unknown result type (might be due to invalid IL or missing references) //IL_0568: Unknown result type (might be due to invalid IL or missing references) //IL_056d: Unknown result type (might be due to invalid IL or missing references) //IL_059c: Unknown result type (might be due to invalid IL or missing references) //IL_059e: Unknown result type (might be due to invalid IL or missing references) //IL_0b07: Unknown result type (might be due to invalid IL or missing references) //IL_0b08: Unknown result type (might be due to invalid IL or missing references) //IL_0b0d: Unknown result type (might be due to invalid IL or missing references) //IL_0b12: Unknown result type (might be due to invalid IL or missing references) //IL_0b17: Unknown result type (might be due to invalid IL or missing references) //IL_0b46: Unknown result type (might be due to invalid IL or missing references) //IL_0b48: Unknown result type (might be due to invalid IL or missing references) if (dungeonData == null) { dungeonData = GameManager.Instance.Dungeon.data; } Mesh val = new Mesh(); List list = new List(); List list2 = new List(); List list3 = new List(); List list4 = new List(); List list5 = new List(); List list6 = new List(); List list7 = new List(); Material ceilingMaterial = null; Material targetMaterial = null; Material targetMaterial2 = null; Material targetMaterial3 = null; tk2dSpriteCollectionData val2 = DungeonCollectionOverride; if (!Object.op_Implicit((Object)(object)DungeonCollectionOverride)) { val2 = GameManager.Instance.Dungeon.tileIndices.dungeonCollection; } if (isGlitched) { val2 = Object.Instantiate(val2); tk2dSpriteDefinition[] spriteDefinitions = val2.spriteDefinitions; for (int i = 0; i < spriteDefinitions.Length; i++) { ExpandShaders.ApplyGlitchShader(spriteDefinitions[i], Random.Range(0.038f, 0.042f), Random.Range(0.073f, 0.067f), Random.Range(0.052f, 0.048f), Random.Range(0.073f, 0.67f), Random.Range(0.052f, 0.048f)); } } TileIndexGrid borderGridForCellPosition = GetBorderGridForCellPosition(exitBasePosition, dungeonData, secondaryDungeon); CellData val3 = dungeonData[exitBasePosition]; switch ((int)exitDirection) { case 0: { AddCeilingTileAtPosition(exitBasePosition, borderGridForCellPosition, list, list2, list6, list7, out ceilingMaterial, val2); AddCeilingTileAtPosition(exitBasePosition + IntVector2.Right, borderGridForCellPosition, list, list2, list6, list7, out ceilingMaterial, val2); AddTileAtPosition(exitBasePosition, borderGridForCellPosition.leftCapIndices.GetIndexByWeight(), list, list3, list6, list7, ref targetMaterial, val2, -2.45f); AddTileAtPosition(exitBasePosition + IntVector2.Right, borderGridForCellPosition.rightCapIndices.GetIndexByWeight(), list, list3, list6, list7, ref targetMaterial, val2, -2.45f); int indexFromTupleArray = SecretRoomBuilder.GetIndexFromTupleArray(val3, SecretRoomUtility.metadataLookupTableRef[(TilesetFlagType)1], val3.cellVisualData.roomVisualTypeIndex); AddTileAtPosition(exitBasePosition + IntVector2.Down, indexFromTupleArray, list, list4, list6, list7, out targetMaterial2, val2, -0.4f, tilted: true, new Color(0f, 1f, 1f), new Color(0f, 0.5f, 1f)); indexFromTupleArray = SecretRoomBuilder.GetIndexFromTupleArray(val3, SecretRoomUtility.metadataLookupTableRef[(TilesetFlagType)1], val3.cellVisualData.roomVisualTypeIndex); AddTileAtPosition(exitBasePosition + IntVector2.Down + IntVector2.Right, indexFromTupleArray, list, list4, list6, list7, out targetMaterial2, val2, -0.4f, tilted: true, new Color(0f, 1f, 1f), new Color(0f, 0.5f, 1f)); indexFromTupleArray = SecretRoomBuilder.GetIndexFromTupleArray(val3, SecretRoomUtility.metadataLookupTableRef[(TilesetFlagType)2], val3.cellVisualData.roomVisualTypeIndex); AddTileAtPosition(exitBasePosition + IntVector2.Down * 2, indexFromTupleArray, list, list4, list6, list7, out targetMaterial2, val2, 1.6f, tilted: true, new Color(0f, 0.5f, 1f), new Color(0f, 0f, 1f)); indexFromTupleArray = SecretRoomBuilder.GetIndexFromTupleArray(val3, SecretRoomUtility.metadataLookupTableRef[(TilesetFlagType)2], val3.cellVisualData.roomVisualTypeIndex); AddTileAtPosition(exitBasePosition + IntVector2.Down * 2 + IntVector2.Right, indexFromTupleArray, list, list4, list6, list7, out targetMaterial2, val2, 1.6f, tilted: true, new Color(0f, 0.5f, 1f), new Color(0f, 0f, 1f)); break; } case 2: { if (!abridged) { AddCeilingTileAtPosition(exitBasePosition + IntVector2.Down, borderGridForCellPosition, list, list2, list6, list7, out ceilingMaterial, val2); } if (!abridged) { AddCeilingTileAtPosition(exitBasePosition + IntVector2.Zero, borderGridForCellPosition, list, list2, list6, list7, out ceilingMaterial, val2); } AddCeilingTileAtPosition(exitBasePosition + IntVector2.Up, borderGridForCellPosition, list, list2, list6, list7, out ceilingMaterial, val2); AddCeilingTileAtPosition(exitBasePosition + IntVector2.Up * 2, borderGridForCellPosition, list, list2, list6, list7, out ceilingMaterial, val2); if (!abridged) { AddCeilingTileAtPosition(exitBasePosition + IntVector2.Up * 3, borderGridForCellPosition, list, list2, list6, list7, out ceilingMaterial, val2); } AddTileAtPosition(exitBasePosition + IntVector2.Up, borderGridForCellPosition.bottomCapIndices.GetIndexByWeight(), list, list3, list6, list7, ref targetMaterial, val2, -2.45f); AddTileAtPosition(exitBasePosition + IntVector2.Up * 2, borderGridForCellPosition.verticalIndices.GetIndexByWeight(), list, list3, list6, list7, ref targetMaterial, val2, -2.45f); if (!abridged) { AddTileAtPosition(exitBasePosition + IntVector2.Up * 3, borderGridForCellPosition.topCapIndices.GetIndexByWeight(), list, list3, list6, list7, ref targetMaterial, val2, -2.45f); } Color val6 = default(Color); ((Color)(ref val6))..ctor(0f, 0f, 1f, 0f); AddTileAtPosition(exitBasePosition + IntVector2.Down + IntVector2.Right, GameManager.Instance.Dungeon.tileIndices.aoTileIndices.AOFloorWallLeft, list, list5, list6, list7, out targetMaterial3, val2, 1.55f, tilted: true, val6, val6); AddTileAtPosition(exitBasePosition + IntVector2.Right, GameManager.Instance.Dungeon.tileIndices.aoTileIndices.AOFloorWallLeft, list, list5, list6, list7, out targetMaterial3, val2, 1.55f, tilted: true, val6, val6); if (!abridged) { AddTileAtPosition(exitBasePosition + IntVector2.Up + IntVector2.Right, GameManager.Instance.Dungeon.tileIndices.aoTileIndices.AOFloorWallLeft, list, list5, list6, list7, out targetMaterial3, val2, 1.55f, tilted: true, val6, val6); } break; } case 4: { AddCeilingTileAtPosition(exitBasePosition + IntVector2.Up * 2, borderGridForCellPosition, list, list2, list6, list7, out ceilingMaterial, val2); AddCeilingTileAtPosition(exitBasePosition + IntVector2.Up * 2 + IntVector2.Right, borderGridForCellPosition, list, list2, list6, list7, out ceilingMaterial, val2); AddTileAtPosition(exitBasePosition + IntVector2.Up * 2, borderGridForCellPosition.leftCapIndices.GetIndexByWeight(), list, list3, list6, list7, ref targetMaterial, val2, -2.45f); AddTileAtPosition(exitBasePosition + IntVector2.Up * 2 + IntVector2.Right, borderGridForCellPosition.rightCapIndices.GetIndexByWeight(), list, list3, list6, list7, ref targetMaterial, val2, -2.45f); int indexFromTupleArray2 = SecretRoomBuilder.GetIndexFromTupleArray(val3, SecretRoomUtility.metadataLookupTableRef[(TilesetFlagType)1], val3.cellVisualData.roomVisualTypeIndex); AddTileAtPosition(exitBasePosition + IntVector2.Up, indexFromTupleArray2, list, list4, list6, list7, out targetMaterial2, val2, -0.4f, tilted: true, new Color(0f, 1f, 1f), new Color(0f, 0.5f, 1f)); indexFromTupleArray2 = SecretRoomBuilder.GetIndexFromTupleArray(val3, SecretRoomUtility.metadataLookupTableRef[(TilesetFlagType)1], val3.cellVisualData.roomVisualTypeIndex); AddTileAtPosition(exitBasePosition + IntVector2.Up + IntVector2.Right, indexFromTupleArray2, list, list4, list6, list7, out targetMaterial2, val2, -0.4f, tilted: true, new Color(0f, 1f, 1f), new Color(0f, 0.5f, 1f)); indexFromTupleArray2 = SecretRoomBuilder.GetIndexFromTupleArray(val3, SecretRoomUtility.metadataLookupTableRef[(TilesetFlagType)2], val3.cellVisualData.roomVisualTypeIndex); AddTileAtPosition(exitBasePosition, indexFromTupleArray2, list, list4, list6, list7, out targetMaterial2, val2, 1.6f, tilted: true, new Color(0f, 0.5f, 1f), new Color(0f, 0f, 1f)); indexFromTupleArray2 = SecretRoomBuilder.GetIndexFromTupleArray(val3, SecretRoomUtility.metadataLookupTableRef[(TilesetFlagType)2], val3.cellVisualData.roomVisualTypeIndex); AddTileAtPosition(exitBasePosition + IntVector2.Right, indexFromTupleArray2, list, list4, list6, list7, out targetMaterial2, val2, 1.6f, tilted: true, new Color(0f, 0.5f, 1f), new Color(0f, 0f, 1f)); Color val5 = default(Color); ((Color)(ref val5))..ctor(0f, 0f, 1f, 0f); AddTileAtPosition(exitBasePosition, GameManager.Instance.Dungeon.tileIndices.aoTileIndices.AOBottomWallBaseTileIndex, list, list5, list6, list7, out targetMaterial3, val2, 1.55f, tilted: true, val5, val5); AddTileAtPosition(exitBasePosition + IntVector2.Right, GameManager.Instance.Dungeon.tileIndices.aoTileIndices.AOBottomWallBaseTileIndex, list, list5, list6, list7, out targetMaterial3, val2, 1.55f, tilted: true, val5, val5); AddTileAtPosition(exitBasePosition + IntVector2.Down, GameManager.Instance.Dungeon.tileIndices.aoTileIndices.AOFloorTileIndex, list, list5, list6, list7, out targetMaterial3, val2, 1.55f, tilted: false, val5, val5); AddTileAtPosition(exitBasePosition + IntVector2.Down + IntVector2.Right, GameManager.Instance.Dungeon.tileIndices.aoTileIndices.AOFloorTileIndex, list, list5, list6, list7, out targetMaterial3, val2, 1.55f, tilted: false, val5, val5); break; } case 6: { if (!abridged) { AddCeilingTileAtPosition(exitBasePosition + IntVector2.Down, borderGridForCellPosition, list, list2, list6, list7, out ceilingMaterial, val2); } if (!abridged) { AddCeilingTileAtPosition(exitBasePosition + IntVector2.Zero, borderGridForCellPosition, list, list2, list6, list7, out ceilingMaterial, val2); } AddCeilingTileAtPosition(exitBasePosition + IntVector2.Up, borderGridForCellPosition, list, list2, list6, list7, out ceilingMaterial, val2); AddCeilingTileAtPosition(exitBasePosition + IntVector2.Up * 2, borderGridForCellPosition, list, list2, list6, list7, out ceilingMaterial, val2); if (!abridged) { AddCeilingTileAtPosition(exitBasePosition + IntVector2.Up * 3, borderGridForCellPosition, list, list2, list6, list7, out ceilingMaterial, val2); } AddTileAtPosition(exitBasePosition + IntVector2.Up, borderGridForCellPosition.bottomCapIndices.GetIndexByWeight(), list, list3, list6, list7, ref targetMaterial, val2, -2.45f); AddTileAtPosition(exitBasePosition + IntVector2.Up * 2, borderGridForCellPosition.verticalIndices.GetIndexByWeight(), list, list3, list6, list7, ref targetMaterial, val2, -2.45f); if (!abridged) { AddTileAtPosition(exitBasePosition + IntVector2.Up * 3, borderGridForCellPosition.topCapIndices.GetIndexByWeight(), list, list3, list6, list7, ref targetMaterial, val2, -2.45f); } Color val4 = default(Color); ((Color)(ref val4))..ctor(0f, 0f, 1f, 0f); AddTileAtPosition(exitBasePosition + IntVector2.Down + IntVector2.Left, GameManager.Instance.Dungeon.tileIndices.aoTileIndices.AOFloorWallRight, list, list5, list6, list7, out targetMaterial3, val2, 1.55f, tilted: true, val4, val4); AddTileAtPosition(exitBasePosition + IntVector2.Left, GameManager.Instance.Dungeon.tileIndices.aoTileIndices.AOFloorWallRight, list, list5, list6, list7, out targetMaterial3, val2, 1.55f, tilted: true, val4, val4); if (!abridged) { AddTileAtPosition(exitBasePosition + IntVector2.Up + IntVector2.Left, GameManager.Instance.Dungeon.tileIndices.aoTileIndices.AOFloorWallRight, list, list5, list6, list7, out targetMaterial3, val2, 1.55f, tilted: true, val4, val4); } break; } } Vector3 val7 = default(Vector3); ((Vector3)(ref val7))..ctor(float.MaxValue, float.MaxValue, float.MaxValue); for (int j = 0; j < list.Count; j++) { val7 = Vector3.Min(val7, list[j]); } val7.x = Mathf.FloorToInt(val7.x); val7.y = Mathf.FloorToInt(val7.y); val7.z = Mathf.FloorToInt(val7.z); for (int k = 0; k < list.Count; k++) { List list8 = list; int i = k; list8[i] -= val7; } val.vertices = list.ToArray(); val.uv = list6.ToArray(); val.colors = list7.ToArray(); val.subMeshCount = 4; val.SetTriangles(list2.ToArray(), 0); val.SetTriangles(list3.ToArray(), 1); val.SetTriangles(list4.ToArray(), 2); val.SetTriangles(list5.ToArray(), 3); val.RecalculateBounds(); val.RecalculateNormals(); GameObject val8 = new GameObject(objectName); GameObjectExtensions.SetLayerRecursively(val8, LayerMask.NameToLayer("FG_Critical")); MeshFilter val9 = val8.AddComponent(); MeshRenderer val10 = val8.AddComponent(); val8.transform.position = val7; val9.mesh = val; ((Renderer)val10).materials = (Material[])(object)new Material[4] { ceilingMaterial, targetMaterial, targetMaterial2, targetMaterial3 }; if (!isGlitched) { GameObjectExtensions.SetLayerRecursively(val8, LayerMask.NameToLayer("ShadowCaster")); } return val8; } public static tk2dSprite DuplicateSprite(tk2dSprite sourceSprite) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_004d: 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_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //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) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0114: 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_0125: 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_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_017a: Expected O, but got Unknown return new tk2dSprite { automaticallyManagesDepth = ((tk2dBaseSprite)sourceSprite).automaticallyManagesDepth, ignoresTiltworldDepth = ((tk2dBaseSprite)sourceSprite).ignoresTiltworldDepth, depthUsesTrimmedBounds = ((tk2dBaseSprite)sourceSprite).depthUsesTrimmedBounds, allowDefaultLayer = ((tk2dBaseSprite)sourceSprite).allowDefaultLayer, attachParent = ((tk2dBaseSprite)sourceSprite).attachParent, OverrideMaterialMode = ((tk2dBaseSprite)sourceSprite).OverrideMaterialMode, independentOrientation = ((tk2dBaseSprite)sourceSprite).independentOrientation, autodetectFootprint = ((tk2dBaseSprite)sourceSprite).autodetectFootprint, customFootprintOrigin = ((tk2dBaseSprite)sourceSprite).customFootprintOrigin, customFootprint = ((tk2dBaseSprite)sourceSprite).customFootprint, hasOffScreenCachedUpdate = ((tk2dBaseSprite)sourceSprite).hasOffScreenCachedUpdate, offScreenCachedCollection = ((tk2dBaseSprite)sourceSprite).offScreenCachedCollection, offScreenCachedID = ((tk2dBaseSprite)sourceSprite).offScreenCachedID, Collection = ((tk2dBaseSprite)sourceSprite).Collection, color = ((tk2dBaseSprite)sourceSprite).color, scale = ((tk2dBaseSprite)sourceSprite).scale, spriteId = ((tk2dBaseSprite)sourceSprite).spriteId, boxCollider2D = ((tk2dBaseSprite)sourceSprite).boxCollider2D, boxCollider = ((tk2dBaseSprite)sourceSprite).boxCollider, meshCollider = ((tk2dBaseSprite)sourceSprite).meshCollider, meshColliderPositions = ((tk2dBaseSprite)sourceSprite).meshColliderPositions, meshColliderMesh = ((tk2dBaseSprite)sourceSprite).meshColliderMesh, CachedPerpState = ((tk2dBaseSprite)sourceSprite).CachedPerpState, HeightOffGround = ((tk2dBaseSprite)sourceSprite).HeightOffGround, SortingOrder = ((tk2dBaseSprite)sourceSprite).SortingOrder, IsBraveOutlineSprite = ((tk2dBaseSprite)sourceSprite).IsBraveOutlineSprite, IsZDepthDirty = ((tk2dBaseSprite)sourceSprite).IsZDepthDirty, ApplyEmissivePropertyBlock = sourceSprite.ApplyEmissivePropertyBlock, GenerateUV2 = sourceSprite.GenerateUV2, LockUV2OnFrameOne = sourceSprite.LockUV2OnFrameOne, StaticPositions = sourceSprite.StaticPositions }; } public static void DuplicateSprite(tk2dSprite targetSprite, tk2dSprite sourceSprite) { //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_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) ((tk2dBaseSprite)targetSprite).automaticallyManagesDepth = ((tk2dBaseSprite)sourceSprite).automaticallyManagesDepth; ((tk2dBaseSprite)targetSprite).ignoresTiltworldDepth = ((tk2dBaseSprite)sourceSprite).ignoresTiltworldDepth; ((tk2dBaseSprite)targetSprite).depthUsesTrimmedBounds = ((tk2dBaseSprite)sourceSprite).depthUsesTrimmedBounds; ((tk2dBaseSprite)targetSprite).allowDefaultLayer = ((tk2dBaseSprite)sourceSprite).allowDefaultLayer; ((tk2dBaseSprite)targetSprite).attachParent = ((tk2dBaseSprite)sourceSprite).attachParent; ((tk2dBaseSprite)targetSprite).OverrideMaterialMode = ((tk2dBaseSprite)sourceSprite).OverrideMaterialMode; ((tk2dBaseSprite)targetSprite).independentOrientation = ((tk2dBaseSprite)sourceSprite).independentOrientation; ((tk2dBaseSprite)targetSprite).autodetectFootprint = ((tk2dBaseSprite)sourceSprite).autodetectFootprint; ((tk2dBaseSprite)targetSprite).customFootprintOrigin = ((tk2dBaseSprite)sourceSprite).customFootprintOrigin; ((tk2dBaseSprite)targetSprite).customFootprint = ((tk2dBaseSprite)sourceSprite).customFootprint; ((tk2dBaseSprite)targetSprite).hasOffScreenCachedUpdate = ((tk2dBaseSprite)sourceSprite).hasOffScreenCachedUpdate; ((tk2dBaseSprite)targetSprite).offScreenCachedCollection = ((tk2dBaseSprite)sourceSprite).offScreenCachedCollection; ((tk2dBaseSprite)targetSprite).offScreenCachedID = ((tk2dBaseSprite)sourceSprite).offScreenCachedID; ((tk2dBaseSprite)targetSprite).Collection = ((tk2dBaseSprite)sourceSprite).Collection; ((tk2dBaseSprite)targetSprite).color = ((tk2dBaseSprite)sourceSprite).color; ((tk2dBaseSprite)targetSprite).scale = ((tk2dBaseSprite)sourceSprite).scale; ((tk2dBaseSprite)targetSprite).spriteId = ((tk2dBaseSprite)sourceSprite).spriteId; ((tk2dBaseSprite)targetSprite).boxCollider2D = ((tk2dBaseSprite)sourceSprite).boxCollider2D; ((tk2dBaseSprite)targetSprite).boxCollider = ((tk2dBaseSprite)sourceSprite).boxCollider; ((tk2dBaseSprite)targetSprite).meshCollider = ((tk2dBaseSprite)sourceSprite).meshCollider; ((tk2dBaseSprite)targetSprite).meshColliderPositions = ((tk2dBaseSprite)sourceSprite).meshColliderPositions; ((tk2dBaseSprite)targetSprite).meshColliderMesh = ((tk2dBaseSprite)sourceSprite).meshColliderMesh; ((tk2dBaseSprite)targetSprite).CachedPerpState = ((tk2dBaseSprite)sourceSprite).CachedPerpState; ((tk2dBaseSprite)targetSprite).HeightOffGround = ((tk2dBaseSprite)sourceSprite).HeightOffGround; ((tk2dBaseSprite)targetSprite).SortingOrder = ((tk2dBaseSprite)sourceSprite).SortingOrder; ((tk2dBaseSprite)targetSprite).IsBraveOutlineSprite = ((tk2dBaseSprite)sourceSprite).IsBraveOutlineSprite; ((tk2dBaseSprite)targetSprite).IsZDepthDirty = ((tk2dBaseSprite)sourceSprite).IsZDepthDirty; targetSprite.ApplyEmissivePropertyBlock = sourceSprite.ApplyEmissivePropertyBlock; targetSprite.GenerateUV2 = sourceSprite.GenerateUV2; targetSprite.LockUV2OnFrameOne = sourceSprite.LockUV2OnFrameOne; targetSprite.StaticPositions = sourceSprite.StaticPositions; } public static void DuplicateSlicedSprite(tk2dSlicedSprite targetSprite, tk2dSlicedSprite sourceSprite) { //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_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) ((tk2dBaseSprite)targetSprite).automaticallyManagesDepth = ((tk2dBaseSprite)sourceSprite).automaticallyManagesDepth; ((tk2dBaseSprite)targetSprite).ignoresTiltworldDepth = ((tk2dBaseSprite)sourceSprite).ignoresTiltworldDepth; ((tk2dBaseSprite)targetSprite).depthUsesTrimmedBounds = ((tk2dBaseSprite)sourceSprite).depthUsesTrimmedBounds; ((tk2dBaseSprite)targetSprite).allowDefaultLayer = ((tk2dBaseSprite)sourceSprite).allowDefaultLayer; ((tk2dBaseSprite)targetSprite).attachParent = ((tk2dBaseSprite)sourceSprite).attachParent; ((tk2dBaseSprite)targetSprite).OverrideMaterialMode = ((tk2dBaseSprite)sourceSprite).OverrideMaterialMode; ((tk2dBaseSprite)targetSprite).independentOrientation = ((tk2dBaseSprite)sourceSprite).independentOrientation; ((tk2dBaseSprite)targetSprite).autodetectFootprint = ((tk2dBaseSprite)sourceSprite).autodetectFootprint; ((tk2dBaseSprite)targetSprite).customFootprintOrigin = ((tk2dBaseSprite)sourceSprite).customFootprintOrigin; ((tk2dBaseSprite)targetSprite).customFootprint = ((tk2dBaseSprite)sourceSprite).customFootprint; ((tk2dBaseSprite)targetSprite).hasOffScreenCachedUpdate = ((tk2dBaseSprite)sourceSprite).hasOffScreenCachedUpdate; ((tk2dBaseSprite)targetSprite).offScreenCachedCollection = ((tk2dBaseSprite)sourceSprite).offScreenCachedCollection; ((tk2dBaseSprite)targetSprite).offScreenCachedID = ((tk2dBaseSprite)sourceSprite).offScreenCachedID; ((tk2dBaseSprite)targetSprite).Collection = ((tk2dBaseSprite)sourceSprite).Collection; ((tk2dBaseSprite)targetSprite).color = ((tk2dBaseSprite)sourceSprite).color; ((tk2dBaseSprite)targetSprite).scale = ((tk2dBaseSprite)sourceSprite).scale; ((tk2dBaseSprite)targetSprite).spriteId = ((tk2dBaseSprite)sourceSprite).spriteId; ((tk2dBaseSprite)targetSprite).boxCollider2D = ((tk2dBaseSprite)sourceSprite).boxCollider2D; ((tk2dBaseSprite)targetSprite).boxCollider = ((tk2dBaseSprite)sourceSprite).boxCollider; ((tk2dBaseSprite)targetSprite).meshCollider = ((tk2dBaseSprite)sourceSprite).meshCollider; ((tk2dBaseSprite)targetSprite).meshColliderPositions = ((tk2dBaseSprite)sourceSprite).meshColliderPositions; ((tk2dBaseSprite)targetSprite).meshColliderMesh = ((tk2dBaseSprite)sourceSprite).meshColliderMesh; ((tk2dBaseSprite)targetSprite).CachedPerpState = ((tk2dBaseSprite)sourceSprite).CachedPerpState; ((tk2dBaseSprite)targetSprite).HeightOffGround = ((tk2dBaseSprite)sourceSprite).HeightOffGround; ((tk2dBaseSprite)targetSprite).SortingOrder = ((tk2dBaseSprite)sourceSprite).SortingOrder; ((tk2dBaseSprite)targetSprite).IsBraveOutlineSprite = ((tk2dBaseSprite)sourceSprite).IsBraveOutlineSprite; ((tk2dBaseSprite)targetSprite).IsZDepthDirty = ((tk2dBaseSprite)sourceSprite).IsZDepthDirty; targetSprite.dimensions = sourceSprite.dimensions; targetSprite.anchor = sourceSprite.anchor; targetSprite.TileStretchedSprites = sourceSprite.TileStretchedSprites; targetSprite.borderTop = sourceSprite.borderTop; targetSprite.borderBottom = sourceSprite.borderBottom; targetSprite.borderLeft = sourceSprite.borderLeft; targetSprite.borderRight = sourceSprite.borderRight; targetSprite.borderCornerBottom = sourceSprite.borderCornerBottom; sourceSprite.CreateBoxCollider = sourceSprite.CreateBoxCollider; } public static void DuplicateRigidBody(SpeculativeRigidbody targetRigidBody, SpeculativeRigidbody sourceRigidBody) { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_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_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) //IL_00fd: 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) targetRigidBody.CollideWithTileMap = sourceRigidBody.CollideWithTileMap; targetRigidBody.CollideWithOthers = sourceRigidBody.CollideWithOthers; targetRigidBody.Velocity = sourceRigidBody.Velocity; targetRigidBody.CapVelocity = sourceRigidBody.CapVelocity; targetRigidBody.MaxVelocity = sourceRigidBody.MaxVelocity; targetRigidBody.ForceAlwaysUpdate = sourceRigidBody.ForceAlwaysUpdate; targetRigidBody.CanPush = sourceRigidBody.CanPush; targetRigidBody.CanBePushed = sourceRigidBody.CanBePushed; targetRigidBody.PushSpeedModifier = sourceRigidBody.PushSpeedModifier; targetRigidBody.CanCarry = sourceRigidBody.CanCarry; targetRigidBody.CanBeCarried = sourceRigidBody.CanBeCarried; targetRigidBody.PreventPiercing = sourceRigidBody.PreventPiercing; targetRigidBody.SkipEmptyColliders = sourceRigidBody.SkipEmptyColliders; targetRigidBody.TK2DSprite = sourceRigidBody.TK2DSprite; targetRigidBody.RecheckTriggers = sourceRigidBody.RecheckTriggers; targetRigidBody.UpdateCollidersOnRotation = sourceRigidBody.UpdateCollidersOnRotation; targetRigidBody.UpdateCollidersOnScale = sourceRigidBody.UpdateCollidersOnScale; targetRigidBody.AxialScale = sourceRigidBody.AxialScale; targetRigidBody.DebugParams = sourceRigidBody.DebugParams; targetRigidBody.IgnorePixelGrid = sourceRigidBody.IgnorePixelGrid; targetRigidBody.PixelColliders = new List(); targetRigidBody.m_position = sourceRigidBody.m_position; if (sourceRigidBody.PixelColliders == null || sourceRigidBody.PixelColliders.Count <= 0) { return; } foreach (PixelCollider pixelCollider in sourceRigidBody.PixelColliders) { targetRigidBody.PixelColliders.Add(DuplicatePixelCollider(pixelCollider)); } } public static PixelCollider DuplicatePixelCollider(PixelCollider source) { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000a: 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_0018: 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) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_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_0046: 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_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_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0082: 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_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Expected O, but got Unknown if (source == null) { return null; } return new PixelCollider { Enabled = source.Enabled, CollisionLayer = source.CollisionLayer, IsTrigger = source.IsTrigger, ColliderGenerationMode = source.ColliderGenerationMode, BagleUseFirstFrameOnly = source.BagleUseFirstFrameOnly, SpecifyBagelFrame = source.SpecifyBagelFrame, BagelColliderNumber = source.BagelColliderNumber, ManualOffsetX = source.ManualOffsetX, ManualOffsetY = source.ManualOffsetY, ManualWidth = source.ManualWidth, ManualHeight = source.ManualHeight, ManualDiameter = source.ManualDiameter, ManualLeftX = source.ManualLeftX, ManualLeftY = source.ManualLeftY, ManualRightX = source.ManualRightX, ManualRightY = source.ManualRightY }; } public static SpeculativeRigidbody GenerateNewEnemyRigidBody(AIActor targetEnemy, IntVector2 offset, IntVector2 dimensions) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: 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_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_003d: 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_0049: 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_0055: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0075: 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_0084: Expected O, but got Unknown //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Expected O, but got Unknown SpeculativeRigidbody orAddComponent = GameObjectExtensions.GetOrAddComponent(((Component)targetEnemy).gameObject); PixelCollider item = new PixelCollider { CollisionLayer = (CollisionLayer)3, ColliderGenerationMode = (PixelColliderGeneration)0, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = offset.x, ManualOffsetY = offset.y, ManualWidth = dimensions.x, ManualHeight = dimensions.y, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }; PixelCollider item2 = new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)2, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = offset.x, ManualOffsetY = offset.y, ManualWidth = dimensions.x, ManualHeight = dimensions.y, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }; orAddComponent.PixelColliders = new List { item, item2 }; return orAddComponent; } public static SpeculativeRigidbody GenerateNewEnemyRigidBody(GameObject targetObject, IntVector2 dimensions, IntVector2? offset = null) { //IL_0006: 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_000e: 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_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_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_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: 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_005b: 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_0067: 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_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0099: 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_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Expected O, but got Unknown //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0112: 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_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Expected O, but got Unknown //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) SpeculativeRigidbody orAddComponent = GameObjectExtensions.GetOrAddComponent(targetObject); IntVector2 val = IntVector2.Zero; IntVector2 val2 = default(IntVector2); ((IntVector2)(ref val2))..ctor(dimensions.x * 16, dimensions.y * 16); if (offset.HasValue) { val = offset.Value; } PixelCollider item = new PixelCollider { CollisionLayer = (CollisionLayer)3, ColliderGenerationMode = (PixelColliderGeneration)0, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = val.x, ManualOffsetY = val.y, ManualWidth = val2.x, ManualHeight = val2.y, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }; PixelCollider item2 = new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)2, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = val.x, ManualOffsetY = val.y, ManualWidth = val2.x, ManualHeight = val2.y, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }; orAddComponent.PixelColliders = new List { item, item2 }; return orAddComponent; } public static SpeculativeRigidbody GenerateOrAddToRigidBody(GameObject targetObject, CollisionLayer collisionLayer, PixelColliderGeneration colliderGenerationMode = 1, bool collideWithTileMap = false, bool CollideWithOthers = true, bool CanBeCarried = true, bool CanBePushed = false, bool RecheckTriggers = false, bool IsTrigger = false, bool replaceExistingColliders = false, bool UsesPixelsAsUnitSize = false, IntVector2? dimensions = null, IntVector2? offset = null) { //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_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Invalid comparison between Unknown and I4 //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Invalid comparison between Unknown and I4 //IL_0111: 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_0123: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Expected O, but got Unknown //IL_009b: 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_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: 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_00b0: 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_01b4: Invalid comparison between Unknown and I4 //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: Unknown result type (might be due to invalid IL or missing references) //IL_01e9: 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_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_01fe: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing references) SpeculativeRigidbody orAddComponent = GameObjectExtensions.GetOrAddComponent(targetObject); orAddComponent.CollideWithOthers = CollideWithOthers; orAddComponent.CollideWithTileMap = collideWithTileMap; orAddComponent.Velocity = Vector2.zero; orAddComponent.MaxVelocity = Vector2.zero; orAddComponent.ForceAlwaysUpdate = false; orAddComponent.CanPush = false; orAddComponent.CanBePushed = CanBePushed; orAddComponent.PushSpeedModifier = 1f; orAddComponent.CanCarry = false; orAddComponent.CanBeCarried = CanBeCarried; orAddComponent.PreventPiercing = false; orAddComponent.SkipEmptyColliders = false; orAddComponent.RecheckTriggers = RecheckTriggers; orAddComponent.UpdateCollidersOnRotation = false; orAddComponent.UpdateCollidersOnScale = false; IntVector2 val = IntVector2.Zero; IntVector2 val2 = IntVector2.Zero; if ((int)colliderGenerationMode != 1) { if (dimensions.HasValue) { val2 = dimensions.Value; if (!UsesPixelsAsUnitSize) { ((IntVector2)(ref val2))..ctor(val2.x * 16, val2.y * 16); } } if (offset.HasValue) { val = offset.Value; if (!UsesPixelsAsUnitSize) { ((IntVector2)(ref val))..ctor(val.x * 16, val.y * 16); } } } PixelCollider item = new PixelCollider { ColliderGenerationMode = colliderGenerationMode, CollisionLayer = collisionLayer, IsTrigger = IsTrigger, BagleUseFirstFrameOnly = ((int)colliderGenerationMode == 1), SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = val.x, ManualOffsetY = val.y, ManualWidth = val2.x, ManualHeight = val2.y, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }; if (replaceExistingColliders | (orAddComponent.PixelColliders == null)) { orAddComponent.PixelColliders = new List { item }; } else { orAddComponent.PixelColliders.Add(item); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)orAddComponent).sprite) && (int)colliderGenerationMode == 1) { Bounds bounds = ((BraveBehaviour)orAddComponent).sprite.GetBounds(); ((BraveBehaviour)orAddComponent).sprite.GetTrueCurrentSpriteDef().colliderVertices = (Vector3[])(object)new Vector3[2] { ((Bounds)(ref bounds)).center - ((Bounds)(ref bounds)).extents, ((Bounds)(ref bounds)).center + ((Bounds)(ref bounds)).extents }; } return orAddComponent; } private static HashSet GetCeilingTileSet(IntVector2 pos1, IntVector2 pos2, Direction facingDirection) { //IL_0000: 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_0023: Invalid comparison between Unknown and I4 //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0006: 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_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Invalid comparison between Unknown and I4 //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //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) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Invalid comparison between Unknown and I4 //IL_0047: 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_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_0055: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: 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_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0079: 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_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) IntVector2 val; IntVector2 val2; if ((int)facingDirection == 0) { val = pos1 + new IntVector2(-1, 0); val2 = pos2 + new IntVector2(1, 1); } else if ((int)facingDirection == 4) { val = pos1 + new IntVector2(-1, 2); val2 = pos2 + new IntVector2(1, 3); } else if ((int)facingDirection == 2) { val = pos1 + new IntVector2(-1, 0); val2 = pos2 + new IntVector2(0, 3); } else { if ((int)facingDirection != 6) { return null; } val = pos1 + new IntVector2(0, 0); val2 = pos2 + new IntVector2(1, 3); } HashSet hashSet = new HashSet(); IntVector2 item = default(IntVector2); for (int i = val.x; i <= val2.x; i++) { for (int j = val.y; j <= val2.y; j++) { ((IntVector2)(ref item))..ctor(i, j); hashSet.Add(item); } } return hashSet; } private static bool IsTopWall(int x, int y, DungeonData data, HashSet cells) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Invalid comparison between Unknown and I4 //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Invalid comparison between Unknown and I4 //IL_003c: 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) if ((int)data.cellData[x][y].type != 1 && ((int)data.cellData[x][y - 1].type == 1 || cells.Contains(new IntVector2(x, y - 1)))) { return !cells.Contains(new IntVector2(x, y + 1)); } return false; } private static bool IsWall(int x, int y, DungeonData data, HashSet cells) { //IL_0003: 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_001d: Invalid comparison between Unknown and I4 if (!cells.Contains(new IntVector2(x, y))) { return (int)data[x, y].type == 1; } return true; } private static bool IsTopWallOrSecret(int x, int y, DungeonData data, HashSet cells) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Invalid comparison between Unknown and I4 if ((int)data[x, y].type != 1 && !data[x, y].isSecretRoomCell) { return IsWallOrSecret(x, y - 1, data, cells); } return false; } private static bool IsWallOrSecret(int x, int y, DungeonData data, HashSet cells) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Invalid comparison between Unknown and I4 //IL_0022: Unknown result type (might be due to invalid IL or missing references) if ((int)data[x, y].type != 1 && !data[x, y].isSecretRoomCell) { return cells.Contains(new IntVector2(x, y)); } return true; } private static bool IsFaceWallHigherOrSecret(int x, int y, DungeonData data, HashSet cells) { return IsFaceWallHigher(x, y, data, cells); } private static bool IsFaceWallHigher(int x, int y, DungeonData data, HashSet cells) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Invalid comparison between Unknown and I4 //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Invalid comparison between Unknown and I4 if (!cells.Contains(new IntVector2(x, y))) { if (((int)data.cellData[x][y].type == 1 || data.cellData[x][y].isSecretRoomCell) && (int)data.cellData[x][y - 2].type != 1) { return !data.cellData[x][y - 2].isSecretRoomCell; } return false; } return false; } private static TileIndexGrid GetBorderGridForCellPosition(IntVector2 position, DungeonData data, Dungeon dungeonOverride = null) { //IL_004a: 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_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) TileIndexGrid val = ((!Object.op_Implicit((Object)(object)dungeonOverride)) ? GameManager.Instance.Dungeon.roomMaterialDefinitions[data.cellData[position.x][position.y].cellVisualData.roomVisualTypeIndex].roomCeilingBorderGrid : dungeonOverride.roomMaterialDefinitions[data.cellData[position.x][position.y].cellVisualData.roomVisualTypeIndex].roomCeilingBorderGrid); if (!Object.op_Implicit((Object)(object)val)) { val = GameManager.Instance.Dungeon.roomMaterialDefinitions[0].roomCeilingBorderGrid; } return val; } private static void AddCeilingTileAtPosition(IntVector2 position, TileIndexGrid indexGrid, List verts, List tris, List uvs, List colors, out Material ceilingMaterial, tk2dSpriteCollectionData spriteData) { //IL_002d: 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_003f: 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_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006c: 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) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) int tileFromRawTile = BuilderUtil.GetTileFromRawTile(indexGrid.centerIndices.GetIndexByWeight()); tk2dSpriteDefinition val = spriteData.spriteDefinitions[tileFromRawTile]; ceilingMaterial = val.material; int count = verts.Count; Vector3 val2 = ((IntVector2)(ref position)).ToVector3((float)position.y - 2.4f); Vector3[] array = val.ConstructExpensivePositions(); for (int i = 0; i < array.Length; i++) { Vector3 val3 = Vector3Extensions.WithZ(array[i], array[i].y); verts.Add(val2 + val3); uvs.Add(val.uvs[i]); colors.Add(Color.black); } for (int j = 0; j < val.indices.Length; j++) { tris.Add(count + val.indices[j]); } } private static void AddTileAtPosition(IntVector2 position, int index, List verts, List tris, List uvs, List colors, out Material targetMaterial, tk2dSpriteCollectionData spriteData, float zOffset, bool tilted, Color topColor, Color bottomColor) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //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) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: 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_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_007a: 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_005c: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) int tileFromRawTile = BuilderUtil.GetTileFromRawTile(index); tk2dSpriteDefinition val = spriteData.spriteDefinitions[tileFromRawTile]; targetMaterial = val.material; int count = verts.Count; Vector3 val2 = ((IntVector2)(ref position)).ToVector3((float)position.y + zOffset); Vector3[] array = val.ConstructExpensivePositions(); for (int i = 0; i < array.Length; i++) { Vector3 val3 = ((!tilted) ? Vector3Extensions.WithZ(array[i], array[i].y) : Vector3Extensions.WithZ(array[i], 0f - array[i].y)); verts.Add(val2 + val3); uvs.Add(val.uvs[i]); } colors.Add(bottomColor); colors.Add(bottomColor); colors.Add(topColor); colors.Add(topColor); for (int j = 0; j < val.indices.Length; j++) { tris.Add(count + val.indices[j]); } } private static void AddTileAtPosition(IntVector2 position, int index, List verts, List tris, List uvs, List colors, ref Material targetMaterial, tk2dSpriteCollectionData spriteData, float zOffset, bool tilted = false) { //IL_005c: 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_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) int tileFromRawTile = BuilderUtil.GetTileFromRawTile(index); if (tileFromRawTile < 0 || tileFromRawTile >= spriteData.spriteDefinitions.Length) { Debug.Log((object)(tileFromRawTile + " index is out of bounds in SecretRoomBuilder, of indices: " + spriteData.spriteDefinitions.Length)); return; } tk2dSpriteDefinition val = spriteData.spriteDefinitions[tileFromRawTile]; targetMaterial = val.material; int count = verts.Count; Vector3 val2 = ((IntVector2)(ref position)).ToVector3((float)position.y + zOffset); Vector3[] array = val.ConstructExpensivePositions(); for (int i = 0; i < array.Length; i++) { Vector3 val3 = ((!tilted) ? Vector3Extensions.WithZ(array[i], array[i].y) : Vector3Extensions.WithZ(array[i], 0f - array[i].y)); verts.Add(val2 + val3); uvs.Add(val.uvs[i]); colors.Add(Color.black); } for (int j = 0; j < val.indices.Length; j++) { tris.Add(count + val.indices[j]); } } public static Texture2D FlipTexture(Texture2D original) { //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Expected O, but got Unknown //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Expected O, but got Unknown //IL_00b6: 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) if (!Object.op_Implicit((Object)(object)original)) { return null; } if (!ETGMod.IsReadable(original)) { Texture2D rW = ETGMod.GetRW(original); Texture2D val = new Texture2D(((Texture)rW).width, ((Texture)rW).height); int width = ((Texture)rW).width; int height = ((Texture)rW).height; for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { val.SetPixel(width - i - 1, j, rW.GetPixel(i, j)); } } val.Apply(); return val; } Texture2D val2 = new Texture2D(((Texture)original).width, ((Texture)original).height); int width2 = ((Texture)original).width; int height2 = ((Texture)original).height; for (int k = 0; k < width2; k++) { for (int l = 0; l < height2; l++) { val2.SetPixel(width2 - k - 1, l, original.GetPixel(k, l)); } } val2.Apply(); return val2; } public static Texture2D CombineTextures(Texture2D aBottom, Texture2D aTop) { //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_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0067: 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_0083: 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_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_0099: 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_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Expected O, but got Unknown if (!Object.op_Implicit((Object)(object)aBottom)) { return null; } if (!Object.op_Implicit((Object)(object)aTop)) { return aBottom; } if (((Texture)aBottom).width != ((Texture)aTop).width || ((Texture)aBottom).height != ((Texture)aTop).height) { return null; } Color[] pixels = aBottom.GetPixels(); Color[] pixels2 = aTop.GetPixels(); int num = pixels.Length; Color[] array = (Color[])(object)new Color[num]; for (int i = 0; i < num; i++) { Color val = pixels[i]; Color val2 = pixels2[i]; float a = val2.a; float num2 = 1f - val2.a; float num3 = a + num2 * val.a; Color val3 = (val2 * a + val * val.a * num2) / num3; val3.a = num3; array[i] = val3; } Texture2D val4 = new Texture2D(((Texture)aTop).width, ((Texture)aTop).height); val4.SetPixels(array); val4.Apply(); return val4; } public static int LanguageToInt(GungeonSupportedLanguages language) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected I4, but got Unknown return (int)language switch { 0 => 0, 1 => 0, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10, 11 => 11, _ => 0, }; } public static GungeonSupportedLanguages IntToLanguage(int input) { return (GungeonSupportedLanguages)(input switch { 0 => 0, 1 => 0, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10, 11 => 11, _ => 0, }); } public static void TryDestroyWallTileAtPosition(Dungeon dungeon, RoomHandler room, IntVector2 position, bool UseFX = false) { //IL_0047: 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_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Invalid comparison between Unknown and I4 //IL_01a8: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) if (UseFX) { AkSoundEngine.PostEvent("Play_OBJ_stone_crumble_01", ((Component)GameManager.Instance).gameObject); } if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] Attempting to destroy wall tile at position: " + ((object)(IntVector2)(ref position)).ToString()), false); } tk2dTileMap val = null; bool flag = false; CellData val2 = ((!dungeon.data.CheckInBoundsAndValid(position)) ? null : dungeon.data[position]); if (val2 != null && (int)val2.type == 1 && val2.HasTypeNeighbor(dungeon.data, (CellType)2)) { flag = true; val2.breakable = true; val2.occlusionData.overrideOcclusion = true; val2.occlusionData.cellOcclusionDirty = true; val = dungeon.DestroyWallAtPosition(val2.position.x, val2.position.y, true); if (UseFX) { PickupObject byId = PickupObjectDatabase.GetById(625); object obj; if (byId == null) { obj = null; } else { GameObject gameObject = ((Component)byId).gameObject; obj = ((gameObject != null) ? gameObject.GetComponent() : null); } PaydayDrillItem val3 = (PaydayDrillItem)obj; if (Object.op_Implicit((Object)(object)val3)) { val3.VFXDustPoof.SpawnAtPosition(((IntVector2)(ref position)).ToCenterVector3((float)position.y), 0f, (Transform)null, (Vector2?)null, (Vector2?)null, (float?)null, false, (SpawnMethod)null, (tk2dBaseSprite)null, false); } } room.Cells.Add(val2.position); room.CellsWithoutExits.Add(val2.position); room.RawCells.Add(val2.position); dungeon.data.ClearCachedCellData(); } if (flag) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] Succesfully destroyed wall tile at position: " + ((object)(IntVector2)(ref position)).ToString()), false); } Pixelator.Instance.MarkOcclusionDirty(); Pixelator.Instance.ProcessOcclusionChange(room.Epicenter, 1f, room, false); if (Object.op_Implicit((Object)(object)val)) { dungeon.RebuildTilemap(val); } } } public static void RegenerateMapTilemap(Minimap self, BuildFlags buildFlags = 0) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) ((MonoBehaviour)GameManager.Instance).StartCoroutine(DoLateRegeneration(self, buildFlags)); } private static IEnumerator DoLateRegeneration(Minimap instance, BuildFlags buildFlags) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) yield return (object)new WaitForEndOfFrame(); instance.tilemap.Build(buildFlags); } public static void ConvertTeleportBehaviors(BehaviorSpeculator sourceSpeculator, bool refreshBehaviors) { if ((Object)(object)sourceSpeculator == (Object)null) { return; } bool flag = false; for (int i = 0; i < sourceSpeculator.AttackBehaviors.Count; i++) { AttackBehaviorBase val = sourceSpeculator.AttackBehaviors[i]; if (val is TeleportBehavior) { sourceSpeculator.AttackBehaviors[i] = (AttackBehaviorBase)(object)ConvertTeleportBehavior((TeleportBehavior)(object)((val is TeleportBehavior) ? val : null)); flag = true; } else if (val is AttackBehaviorGroup) { flag = ConvertTeleportBehaviorsInGroup((AttackBehaviorGroup)(object)((val is AttackBehaviorGroup) ? val : null)); } } if (refreshBehaviors && flag) { sourceSpeculator.RefreshBehaviors(); } } public static bool ConvertTeleportBehaviorsInGroup(AttackBehaviorGroup attackBehaviorGroup) { //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_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Expected O, but got Unknown if (attackBehaviorGroup.Count <= 0) { return false; } bool result = false; for (int i = 0; i < attackBehaviorGroup.AttackBehaviors.Count; i++) { if (attackBehaviorGroup.AttackBehaviors[i].Behavior is TeleportBehavior) { AttackGroupItem value = new AttackGroupItem { NickName = attackBehaviorGroup.AttackBehaviors[i].NickName, Behavior = (AttackBehaviorBase)(object)ConvertTeleportBehavior((TeleportBehavior)/*isinst with value type is only supported in some contexts*/), Probability = attackBehaviorGroup.AttackBehaviors[i].Probability }; attackBehaviorGroup.AttackBehaviors[i] = value; result = true; } } return result; } public static ExpandTeleportBehavior ConvertTeleportBehavior(TeleportBehavior sourceBehavior) { //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_01fa: Unknown result type (might be due to invalid IL or missing references) if (sourceBehavior == null) { return null; } return new ExpandTeleportBehavior { AttackableDuringAnimation = sourceBehavior.AttackableDuringAnimation, AvoidWalls = sourceBehavior.AvoidWalls, StayOnScreen = sourceBehavior.StayOnScreen, MinDistanceFromPlayer = sourceBehavior.MinDistanceFromPlayer, MaxDistanceFromPlayer = sourceBehavior.MaxDistanceFromPlayer, GoneTime = sourceBehavior.GoneTime, OnlyTeleportIfPlayerUnreachable = sourceBehavior.OnlyTeleportIfPlayerUnreachable, teleportOutBulletScript = sourceBehavior.teleportOutBulletScript, teleportInBulletScript = sourceBehavior.teleportInBulletScript, goneAttackBehavior = sourceBehavior.goneAttackBehavior, AllowCrossRoomTeleportation = sourceBehavior.AllowCrossRoomTeleportation, teleportOutAnim = sourceBehavior.teleportOutAnim, teleportInAnim = sourceBehavior.teleportInAnim, teleportRequiresTransparency = sourceBehavior.teleportRequiresTransparency, hasOutlinesDuringAnim = sourceBehavior.hasOutlinesDuringAnim, shadowOutAnim = sourceBehavior.shadowOutAnim, shadowInAnim = sourceBehavior.shadowInAnim, ManuallyDefineRoom = sourceBehavior.ManuallyDefineRoom, roomMin = sourceBehavior.roomMin, roomMax = sourceBehavior.roomMax, Cooldown = ((BasicAttackBehavior)sourceBehavior).Cooldown, CooldownVariance = ((BasicAttackBehavior)sourceBehavior).CooldownVariance, AttackCooldown = ((BasicAttackBehavior)sourceBehavior).AttackCooldown, GlobalCooldown = ((BasicAttackBehavior)sourceBehavior).GlobalCooldown, InitialCooldown = ((BasicAttackBehavior)sourceBehavior).InitialCooldown, InitialCooldownVariance = ((BasicAttackBehavior)sourceBehavior).InitialCooldownVariance, GroupName = ((BasicAttackBehavior)sourceBehavior).GroupName, GroupCooldown = ((BasicAttackBehavior)sourceBehavior).GroupCooldown, MinRange = ((BasicAttackBehavior)sourceBehavior).MinRange, Range = ((BasicAttackBehavior)sourceBehavior).Range, MinWallDistance = ((BasicAttackBehavior)sourceBehavior).MinWallDistance, MaxEnemiesInRoom = ((BasicAttackBehavior)sourceBehavior).MaxEnemiesInRoom, MinHealthThreshold = ((BasicAttackBehavior)sourceBehavior).MinHealthThreshold, MaxHealthThreshold = ((BasicAttackBehavior)sourceBehavior).MaxHealthThreshold, HealthThresholds = ((BasicAttackBehavior)sourceBehavior).HealthThresholds, AccumulateHealthThresholds = ((BasicAttackBehavior)sourceBehavior).AccumulateHealthThresholds, targetAreaStyle = ((BasicAttackBehavior)sourceBehavior).targetAreaStyle, IsBlackPhantom = ((BasicAttackBehavior)sourceBehavior).IsBlackPhantom, resetCooldownOnDamage = ((BasicAttackBehavior)sourceBehavior).resetCooldownOnDamage, RequiresLineOfSight = ((BasicAttackBehavior)sourceBehavior).RequiresLineOfSight, MaxUsages = ((BasicAttackBehavior)sourceBehavior).MaxUsages, shadowSupport = ExpandTeleportBehavior.ConvertTeleportTypeEnum(sourceBehavior.shadowSupport) }; } public static Texture2D GenerateTexture2DFromRenderTexture(RenderTexture rTex) { //IL_000e: 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_0038: 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_0051: Expected O, but got Unknown Texture2D val = new Texture2D(((Texture)rTex).width, ((Texture)rTex).height, (TextureFormat)3, false); RenderTexture active = RenderTexture.active; RenderTexture.active = rTex; val.ReadPixels(new Rect(0f, 0f, (float)((Texture)rTex).width, (float)((Texture)rTex).height), 0, 0); val.Apply(); RenderTexture.active = active; return val; } public static Texture2D BytesToTexture(byte[] bytes, string resourceName) { //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Expected O, but got Unknown //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0018: 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_0026: Expected O, but got Unknown Texture2D val = new Texture2D(1, 1, (TextureFormat)4, false); ImageConversion.LoadImage(val, bytes); ((Texture)val).filterMode = (FilterMode)0; ((Object)val).name = resourceName; val.Apply(); return val; } public static Texture2D GetTextureFromResource(string texturePath, IntVector2 textureResolution) { //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_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_0072: Expected O, but got Unknown //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Expected O, but got Unknown string text = texturePath; text = text.Replace("/", "."); text = text.Replace("\\", "."); int x = textureResolution.x; int y = textureResolution.y; byte[] array = ExtractEmbeddedResource(string.Format("{0}.", "ExpandTheGungeon") + text); if (array == null) { Debug.Log((object)("[ExpandTheGungeon] No bytes found in " + text)); return null; } Texture2D val = new Texture2D(x, y, (TextureFormat)4, false); ImageConversion.LoadImage(val, array); ((Texture)val).filterMode = (FilterMode)0; string text2 = text.Substring(0, text.LastIndexOf('.')); if (text2.LastIndexOf('.') >= 0) { text2 = text2.Substring(text2.LastIndexOf('.') + 1); } ((Object)val).name = text2; return val; } public static byte[] ExtractEmbeddedResource(string filename) { using Stream stream = Assembly.GetCallingAssembly().GetManifestResourceStream(filename); if (stream == null) { return null; } byte[] array = new byte[stream.Length]; stream.Read(array, 0, array.Length); return array; } public static void DumpTexture2DToFile(Texture2D target, string fileNameOverride = null, bool useRandomFilenames = false) { if (!((Object)(object)target == (Object)null)) { string text = ((Object)target).name; if (!string.IsNullOrEmpty(fileNameOverride)) { text = fileNameOverride; } string text2 = "EXDumpedTextures/" + text; if (useRandomFilenames) { text2 = text2 + "_" + Guid.NewGuid(); } string path = Path.Combine(ETGMod.ResourcesDirectory, text2.Replace('/', Path.DirectorySeparatorChar).Replace('\\', Path.DirectorySeparatorChar) + ".png"); if (!File.Exists(path) && !File.Exists(path)) { Directory.GetParent(path).Create(); File.WriteAllBytes(path, ImageConversion.EncodeToPNG(target)); } } } } public static class ExpandExtensions { public static IntVector2 ToIntVector2(this Vector3 vector, VectorConversions convertMethod = 2) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Invalid comparison between Unknown and I4 //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_000f: 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_003f: 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_0055: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_002e: 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) if ((int)convertMethod == 1) { return new IntVector2(Mathf.CeilToInt(vector.x), Mathf.CeilToInt(vector.y)); } if ((int)convertMethod == 0) { return new IntVector2(Mathf.FloorToInt(vector.x), Mathf.FloorToInt(vector.y)); } return new IntVector2(Mathf.RoundToInt(vector.x), Mathf.RoundToInt(vector.y)); } public static bool IsActuallyWildWestEntrance(this RoomHandler room) { if (room != null && room.GetRoomName() != null) { PrototypeDungeonRoom expand_West_Entrance = ExpandRoomPrefabs.Expand_West_Entrance; if (((expand_West_Entrance != null) ? ((Object)expand_West_Entrance).name : null) != null) { return room.GetRoomName().ToLower().StartsWith(((Object)ExpandRoomPrefabs.Expand_West_Entrance).name.ToLower()); } } return false; } public static void DefineProjectileCollision(this tk2dSpriteCollectionData spriteCollection, string name, int pixelWidth, int pixelHeight, int? overrideColliderPixelWidth = null, int? overrideColliderPixelHeight = null, int? overrideColliderOffsetX = null, int? overrideColliderOffsetY = null) { //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: 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_0106: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: 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_013c: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_015d: 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_017b: 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_0196: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) if (!overrideColliderPixelWidth.HasValue) { overrideColliderPixelWidth = pixelWidth; } if (!overrideColliderPixelHeight.HasValue) { overrideColliderPixelHeight = pixelHeight; } if (!overrideColliderOffsetX.HasValue) { overrideColliderOffsetX = 0; } if (!overrideColliderOffsetY.HasValue) { overrideColliderOffsetY = 0; } float num = (float)pixelWidth / 16f; float num2 = (float)pixelHeight / 16f; float num3 = (float)overrideColliderPixelWidth.Value / 16f; float num4 = (float)overrideColliderPixelHeight.Value / 16f; float num5 = (float)overrideColliderOffsetX.Value / 16f; float num6 = (float)overrideColliderOffsetY.Value / 16f; tk2dSpriteDefinition spriteDefinition = spriteCollection.GetSpriteDefinition(name); spriteDefinition.boundsDataCenter = new Vector3(num / 2f, num2 / 2f, 0f); spriteDefinition.boundsDataExtents = new Vector3(num, num2, 0f); spriteDefinition.untrimmedBoundsDataCenter = new Vector3(num / 2f, num2 / 2f, 0f); spriteDefinition.untrimmedBoundsDataExtents = new Vector3(num, num2, 0f); spriteDefinition.texelSize = new Vector2(0.0625f, 0.0625f); spriteDefinition.position0 = new Vector3(0f, 0f, 0f); spriteDefinition.position1 = new Vector3(0f + num, 0f, 0f); spriteDefinition.position2 = new Vector3(0f, 0f + num2, 0f); spriteDefinition.position3 = new Vector3(0f + num, 0f + num2, 0f); spriteDefinition.colliderVertices = (Vector3[])(object)new Vector3[2] { new Vector3(num5, num6, 0f), new Vector3(num3 / 2f, num4 / 2f) }; } public static Material Copy(this Material orig, Texture2D textureOverride = null, Shader shaderOverride = null) { //IL_0006: 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_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0053: 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_005f: 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_006d: 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_0079: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Expected O, but got Unknown Material val = new Material(orig.shader) { name = ((Object)orig).name, shaderKeywords = orig.shaderKeywords, globalIlluminationFlags = orig.globalIlluminationFlags, enableInstancing = orig.enableInstancing, doubleSidedGI = orig.doubleSidedGI, mainTextureOffset = orig.mainTextureOffset, mainTextureScale = orig.mainTextureScale, renderQueue = orig.renderQueue, color = orig.color, hideFlags = ((Object)orig).hideFlags }; if ((Object)(object)textureOverride != (Object)null) { val.mainTexture = (Texture)(object)textureOverride; } else { val.mainTexture = orig.mainTexture; } if ((Object)(object)shaderOverride != (Object)null) { val.shader = shaderOverride; } else { val.shader = orig.shader; } return val; } public static tk2dSpriteDefinition Copy(this tk2dSpriteDefinition orig) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Expected O, but got Unknown //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_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: 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_0050: 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_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Expected O, but got Unknown //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: 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_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0112: 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_011e: Unknown result type (might be due to invalid IL or missing references) //IL_0123: 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_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0183: 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_018f: 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_00d4: Expected O, but got Unknown tk2dSpriteDefinition val = new tk2dSpriteDefinition(); val.boundsDataCenter = orig.boundsDataCenter; val.boundsDataExtents = orig.boundsDataExtents; val.colliderConvex = orig.colliderConvex; val.colliderSmoothSphereCollisions = orig.colliderSmoothSphereCollisions; val.colliderType = orig.colliderType; val.colliderVertices = orig.colliderVertices; val.collisionLayer = orig.collisionLayer; val.complexGeometry = orig.complexGeometry; val.extractRegion = orig.extractRegion; val.flipped = orig.flipped; val.indices = orig.indices; if ((Object)(object)orig.material != (Object)null) { val.material = new Material(orig.material); } val.materialId = orig.materialId; if ((Object)(object)orig.materialInst != (Object)null) { val.materialInst = new Material(orig.materialInst); } val.metadata = orig.metadata; val.name = orig.name; val.normals = orig.normals; val.physicsEngine = orig.physicsEngine; val.position0 = orig.position0; val.position1 = orig.position1; val.position2 = orig.position2; val.position3 = orig.position3; val.regionH = orig.regionH; val.regionW = orig.regionW; val.regionX = orig.regionX; val.regionY = orig.regionY; val.tangents = orig.tangents; val.texelSize = orig.texelSize; val.untrimmedBoundsDataCenter = orig.untrimmedBoundsDataCenter; val.untrimmedBoundsDataExtents = orig.untrimmedBoundsDataExtents; val.uvs = orig.uvs; return val; } } public static class ReflectionHelpers { public delegate void ActionEX(T1 arg1, T2 arg2, T3 arg3, T4 arg4); public delegate void ActionEX(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5); public delegate void ActionEX(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6); public delegate void ActionEX(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7); public delegate void ActionEX(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8); public delegate void ActionEX(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9); public delegate void ActionEX(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10); public delegate void ActionEX(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11); public delegate TResult FuncEX(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5); public delegate TResult FuncEX(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6); public delegate TResult FuncEX(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7); public delegate TResult FuncEX(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8); public static IList CreateDynamicList(Type type) { if ((object)type == null) { throw new ArgumentNullException("type", "Argument cannot be null."); } ConstructorInfo[] constructors = typeof(List<>).MakeGenericType(type).GetConstructors(); foreach (ConstructorInfo constructorInfo in constructors) { if (constructorInfo.GetParameters().Length == 0) { return (IList)constructorInfo.Invoke(null, null); } } throw new ApplicationException("Could not create a new list with type <" + type.ToString() + ">."); } public static IDictionary CreateDynamicDictionary(Type typeKey, Type typeValue) { if ((object)typeKey == null) { throw new ArgumentNullException("type_key", "Argument cannot be null."); } if ((object)typeValue == null) { throw new ArgumentNullException("type_value", "Argument cannot be null."); } ConstructorInfo[] constructors = typeof(Dictionary<, >).MakeGenericType(typeKey, typeValue).GetConstructors(); foreach (ConstructorInfo constructorInfo in constructors) { if (constructorInfo.GetParameters().Length == 0) { return (IDictionary)constructorInfo.Invoke(null, null); } } throw new ApplicationException("Could not create a new dictionary with types <" + typeKey.ToString() + "," + typeValue.ToString() + ">."); } public static T ReflectGetField(Type classType, string fieldName, object o = null) { return (T)classType.GetField(fieldName, BindingFlags.Public | BindingFlags.NonPublic | ((o != null) ? BindingFlags.Instance : BindingFlags.Static)).GetValue(o); } public static void ReflectSetField(Type classType, string fieldName, T value, object o = null) { classType.GetField(fieldName, BindingFlags.Public | BindingFlags.NonPublic | ((o != null) ? BindingFlags.Instance : BindingFlags.Static)).SetValue(o, value); } public static T ReflectGetProperty(Type classType, string propName, object o = null, object[] indexes = null) { return (T)classType.GetProperty(propName, BindingFlags.Public | BindingFlags.NonPublic | ((o != null) ? BindingFlags.Instance : BindingFlags.Static)).GetValue(o, indexes); } public static void ReflectSetProperty(Type classType, string propName, T value, object o = null, object[] indexes = null) { classType.GetProperty(propName, BindingFlags.Public | BindingFlags.NonPublic | ((o != null) ? BindingFlags.Instance : BindingFlags.Static)).SetValue(o, value, indexes); } public static MethodInfo ReflectGetMethod(Type classType, string methodName, Type[] methodArgumentTypes = null, Type[] genericMethodTypes = null, bool? isStatic = null) { MethodInfo[] array = ReflectTryGetMethods(classType, methodName, methodArgumentTypes, genericMethodTypes, isStatic); if (array.Count() == 0) { throw new MissingMethodException("Cannot reflect method, not found based on input parameters."); } if (array.Count() > 1) { throw new InvalidOperationException("Cannot reflect method, more than one method matched based on input parameters."); } return array[0]; } public static MethodInfo ReflectTryGetMethod(Type classType, string methodName, Type[] methodArgumentTypes = null, Type[] genericMethodTypes = null, bool? isStatic = null) { MethodInfo[] array = ReflectTryGetMethods(classType, methodName, methodArgumentTypes, genericMethodTypes, isStatic); if (array.Count() == 0) { return null; } if (array.Count() > 1) { return null; } return array[0]; } public static MethodInfo[] ReflectTryGetMethods(Type classType, string methodName, Type[] methodArgumentTypes = null, Type[] genericMethodTypes = null, bool? isStatic = null) { BindingFlags bindingFlags = BindingFlags.Public | BindingFlags.NonPublic; if (!isStatic.HasValue || isStatic.Value) { bindingFlags |= BindingFlags.Static; } if (!isStatic.HasValue || !isStatic.Value) { bindingFlags |= BindingFlags.Instance; } MethodInfo[] methods = classType.GetMethods(bindingFlags); List list = new List(); for (int i = 0; i < methods.Length; i++) { if (methods[i].Name != methodName) { continue; } if (methods[i].IsGenericMethodDefinition) { if (genericMethodTypes == null || genericMethodTypes.Length == 0 || methods[i].GetGenericArguments().Length != genericMethodTypes.Length) { continue; } methods[i] = methods[i].MakeGenericMethod(genericMethodTypes); } else if (genericMethodTypes != null && genericMethodTypes.Length != 0) { continue; } ParameterInfo[] parameters = methods[i].GetParameters(); if (methodArgumentTypes != null) { if (parameters.Length != methodArgumentTypes.Length) { continue; } int num = 0; while (num < parameters.Length) { if ((object)parameters[num].ParameterType == methodArgumentTypes[num]) { num++; continue; } goto IL_00f5; } } list.Add(methods[i]); IL_00f5:; } return list.ToArray(); } public static T InvokeMethod(Type type, string methodName, object typeInstance = null, object[] methodParams = null) { BindingFlags bindingAttr = BindingFlags.Public | BindingFlags.NonPublic | ((typeInstance == null) ? BindingFlags.Static : BindingFlags.Instance); return (T)type.GetMethod(methodName, bindingAttr).Invoke(typeInstance, methodParams); } public static void InvokeMethod(Type type, string methodName, object typeInstance = null, object[] methodParams = null) { BindingFlags bindingAttr = BindingFlags.Public | BindingFlags.NonPublic | ((typeInstance == null) ? BindingFlags.Static : BindingFlags.Instance); type.GetMethod(methodName, bindingAttr).Invoke(typeInstance, methodParams); } public static object InvokeRefs(MethodInfo methodInfo, object o, T0 p0) { object[] parameters = new object[1] { p0 }; return methodInfo.Invoke(o, parameters); } public static object InvokeRefs(MethodInfo methodInfo, object o, ref T0 p0) { object[] array = new object[1] { p0 }; object? result = methodInfo.Invoke(o, array); p0 = (T0)array[0]; return result; } public static object InvokeRefs(MethodInfo methodInfo, object o, T0 p0, T1 p1) { object[] parameters = new object[2] { p0, p1 }; return methodInfo.Invoke(o, parameters); } public static object InvokeRefs(MethodInfo methodInfo, object o, ref T0 p0, T1 p1) { object[] array = new object[2] { p0, p1 }; object? result = methodInfo.Invoke(o, array); p0 = (T0)array[0]; return result; } public static object InvokeRefs(MethodInfo methodInfo, object o, T0 p0, ref T1 p1) { object[] array = new object[2] { p0, p1 }; object? result = methodInfo.Invoke(o, array); p1 = (T1)array[1]; return result; } public static object InvokeRefs(MethodInfo methodInfo, object o, ref T0 p0, ref T1 p1) { object[] array = new object[2] { p0, p1 }; object? result = methodInfo.Invoke(o, array); p0 = (T0)array[0]; p1 = (T1)array[1]; return result; } public static object InvokeRefs(MethodInfo methodInfo, object o, T0 p0, T1 p1, T2 p2) { object[] parameters = new object[3] { p0, p1, p2 }; return methodInfo.Invoke(o, parameters); } public static object InvokeRefs(MethodInfo methodInfo, object o, ref T0 p0, T1 p1, T2 p2) { object[] array = new object[3] { p0, p1, p2 }; object? result = methodInfo.Invoke(o, array); p0 = (T0)array[0]; return result; } public static object InvokeRefs(MethodInfo methodInfo, object o, T0 p0, ref T1 p1, T2 p2) { object[] array = new object[3] { p0, p1, p2 }; object? result = methodInfo.Invoke(o, array); p1 = (T1)array[1]; return result; } public static object InvokeRefs(MethodInfo methodInfo, object o, T0 p0, T1 p1, ref T2 p2) { object[] array = new object[3] { p0, p1, p2 }; object? result = methodInfo.Invoke(o, array); p2 = (T2)array[2]; return result; } public static object InvokeRefs(MethodInfo methodInfo, object o, ref T0 p0, ref T1 p1, T2 p2) { object[] array = new object[3] { p0, p1, p2 }; object? result = methodInfo.Invoke(o, array); p0 = (T0)array[0]; p1 = (T1)array[1]; return result; } public static object InvokeRefs(MethodInfo methodInfo, object o, ref T0 p0, T1 p1, ref T2 p2) { object[] array = new object[3] { p0, p1, p2 }; object? result = methodInfo.Invoke(o, array); p0 = (T0)array[0]; p2 = (T2)array[2]; return result; } public static object InvokeRefs(MethodInfo methodInfo, object o, T0 p0, ref T1 p1, ref T2 p2) { object[] array = new object[3] { p0, p1, p2 }; object? result = methodInfo.Invoke(o, array); p1 = (T1)array[1]; p2 = (T2)array[2]; return result; } public static object InvokeRefs(MethodInfo methodInfo, object o, ref T0 p0, ref T1 p1, ref T2 p2) { object[] array = new object[3] { p0, p1, p2 }; object? result = methodInfo.Invoke(o, array); p0 = (T0)array[0]; p1 = (T1)array[1]; p2 = (T2)array[2]; return result; } } public class RoomBuilder { public static void GenerateRoomLayout(PrototypeDungeonRoom room, string AssetPath, PitBorderType PitBorderType = 0, CoreDamageTypes DamageCellsType = 0) { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) Texture2D val = ExpandAssets.LoadAsset(AssetPath); if ((Object)(object)val == (Object)null) { ETGModConsole.Log((object)"[ExpandTheGungeon] GenerateRoomLayout: Error! Requested Texture Resource is Null or Room Asset Bundle missing!", false); } else { GenerateRoomLayoutFromTexture(room, val, PitBorderType, DamageCellsType); } } public static void GenerateRoomLayoutFromTexture(PrototypeDungeonRoom room, Texture2D sourceTexture, PitBorderType PitBorderType = 0, CoreDamageTypes DamageCellsType = 0) { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Invalid comparison between Unknown and I4 //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Invalid comparison between Unknown and I4 //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008d: 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_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: 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) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //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_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0126: 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_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0140: 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) //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0175: 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_018a: Unknown result type (might be due to invalid IL or missing references) //IL_018f: 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_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_04fe: Unknown result type (might be due to invalid IL or missing references) //IL_0503: Unknown result type (might be due to invalid IL or missing references) //IL_050b: Unknown result type (might be due to invalid IL or missing references) //IL_050c: Unknown result type (might be due to invalid IL or missing references) //IL_050d: Unknown result type (might be due to invalid IL or missing references) //IL_0517: Expected O, but got Unknown //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0236: 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_023c: Unknown result type (might be due to invalid IL or missing references) //IL_047d: Unknown result type (might be due to invalid IL or missing references) //IL_0252: Unknown result type (might be due to invalid IL or missing references) //IL_0257: Unknown result type (might be due to invalid IL or missing references) //IL_0260: Unknown result type (might be due to invalid IL or missing references) //IL_0265: Unknown result type (might be due to invalid IL or missing references) //IL_026f: Unknown result type (might be due to invalid IL or missing references) //IL_0274: Unknown result type (might be due to invalid IL or missing references) //IL_027e: Unknown result type (might be due to invalid IL or missing references) //IL_0283: Unknown result type (might be due to invalid IL or missing references) //IL_028d: Unknown result type (might be due to invalid IL or missing references) //IL_0292: Unknown result type (might be due to invalid IL or missing references) //IL_047f: Unknown result type (might be due to invalid IL or missing references) //IL_0481: Invalid comparison between Unknown and I4 //IL_0304: Unknown result type (might be due to invalid IL or missing references) //IL_0309: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Unknown result type (might be due to invalid IL or missing references) //IL_02a1: Unknown result type (might be due to invalid IL or missing references) //IL_02a6: Unknown result type (might be due to invalid IL or missing references) //IL_04ae: Unknown result type (might be due to invalid IL or missing references) //IL_04b0: Unknown result type (might be due to invalid IL or missing references) //IL_04c5: Unknown result type (might be due to invalid IL or missing references) //IL_0490: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_0498: Unknown result type (might be due to invalid IL or missing references) //IL_032e: Unknown result type (might be due to invalid IL or missing references) //IL_0333: Unknown result type (might be due to invalid IL or missing references) //IL_033c: Unknown result type (might be due to invalid IL or missing references) //IL_0341: Unknown result type (might be due to invalid IL or missing references) //IL_034b: Unknown result type (might be due to invalid IL or missing references) //IL_0350: Unknown result type (might be due to invalid IL or missing references) //IL_035a: Unknown result type (might be due to invalid IL or missing references) //IL_035f: Unknown result type (might be due to invalid IL or missing references) //IL_0369: Unknown result type (might be due to invalid IL or missing references) //IL_036e: Unknown result type (might be due to invalid IL or missing references) //IL_0378: 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_0387: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_0396: Unknown result type (might be due to invalid IL or missing references) //IL_039b: Unknown result type (might be due to invalid IL or missing references) //IL_03a5: Unknown result type (might be due to invalid IL or missing references) //IL_03aa: Unknown result type (might be due to invalid IL or missing references) //IL_0313: Unknown result type (might be due to invalid IL or missing references) //IL_031d: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02b0: Unknown result type (might be due to invalid IL or missing references) //IL_0478: Unknown result type (might be due to invalid IL or missing references) //IL_03b8: Unknown result type (might be due to invalid IL or missing references) //IL_03bc: Unknown result type (might be due to invalid IL or missing references) //IL_03c1: Unknown result type (might be due to invalid IL or missing references) //IL_02d1: Unknown result type (might be due to invalid IL or missing references) //IL_02d6: Unknown result type (might be due to invalid IL or missing references) //IL_02c8: Unknown result type (might be due to invalid IL or missing references) //IL_03e3: Unknown result type (might be due to invalid IL or missing references) //IL_03e8: Unknown result type (might be due to invalid IL or missing references) //IL_03cd: Unknown result type (might be due to invalid IL or missing references) //IL_03cf: Invalid comparison between Unknown and I4 //IL_02e9: Unknown result type (might be due to invalid IL or missing references) //IL_02ee: Unknown result type (might be due to invalid IL or missing references) //IL_02e0: Unknown result type (might be due to invalid IL or missing references) //IL_03fb: Unknown result type (might be due to invalid IL or missing references) //IL_0400: Unknown result type (might be due to invalid IL or missing references) //IL_03f2: Unknown result type (might be due to invalid IL or missing references) //IL_02fb: Unknown result type (might be due to invalid IL or missing references) //IL_0410: Unknown result type (might be due to invalid IL or missing references) //IL_0415: Unknown result type (might be due to invalid IL or missing references) //IL_040a: Unknown result type (might be due to invalid IL or missing references) //IL_0425: Unknown result type (might be due to invalid IL or missing references) //IL_042a: Unknown result type (might be due to invalid IL or missing references) //IL_041f: Unknown result type (might be due to invalid IL or missing references) //IL_043a: Unknown result type (might be due to invalid IL or missing references) //IL_043f: Unknown result type (might be due to invalid IL or missing references) //IL_0434: Unknown result type (might be due to invalid IL or missing references) //IL_044f: Unknown result type (might be due to invalid IL or missing references) //IL_0454: Unknown result type (might be due to invalid IL or missing references) //IL_0449: Unknown result type (might be due to invalid IL or missing references) //IL_0464: Unknown result type (might be due to invalid IL or missing references) //IL_0469: Unknown result type (might be due to invalid IL or missing references) //IL_045e: Unknown result type (might be due to invalid IL or missing references) //IL_0473: Unknown result type (might be due to invalid IL or missing references) float damageToPlayersPerTick = 0f; float damageToEnemiesPerTick = 0f; float tickFrequency = 0f; bool respectsFlying = true; bool isPoison = false; if ((int)DamageCellsType == 4) { damageToPlayersPerTick = 0.5f; tickFrequency = 1f; } else if ((int)DamageCellsType == 16) { isPoison = true; damageToPlayersPerTick = 0.5f; tickFrequency = 1f; } if ((Object)(object)sourceTexture == (Object)null) { ETGModConsole.Log((object)"[ExpandTheGungeon] GenerateRoomFromImage: Error! Requested Texture Resource is Null!", false); return; } Color val = Color32.op_Implicit(new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue)); Color val2 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)0, byte.MaxValue, byte.MaxValue)); Color val3 = Color32.op_Implicit(new Color32(byte.MaxValue, byte.MaxValue, (byte)0, byte.MaxValue)); Color val4 = Color32.op_Implicit(new Color32((byte)127, (byte)0, (byte)127, byte.MaxValue)); Color val5 = Color32.op_Implicit(new Color32((byte)127, (byte)127, (byte)0, byte.MaxValue)); Color val6 = Color32.op_Implicit(new Color32((byte)0, (byte)0, byte.MaxValue, byte.MaxValue)); Color val7 = Color32.op_Implicit(new Color32((byte)0, (byte)127, byte.MaxValue, byte.MaxValue)); Color val8 = Color32.op_Implicit(new Color32((byte)0, (byte)0, (byte)127, byte.MaxValue)); Color val9 = Color32.op_Implicit(new Color32((byte)0, (byte)0, (byte)127, byte.MaxValue)); Color val10 = Color32.op_Implicit(new Color32((byte)127, byte.MaxValue, (byte)127, byte.MaxValue)); Color val11 = Color32.op_Implicit(new Color32((byte)127, (byte)127, (byte)127, byte.MaxValue)); Color val12 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)127, (byte)0, byte.MaxValue)); Color val13 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)127, (byte)127, byte.MaxValue)); Color val14 = Color32.op_Implicit(new Color32((byte)0, byte.MaxValue, (byte)0, byte.MaxValue)); Color val15 = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)0, (byte)0, byte.MaxValue)); int width = room.Width; int height = room.Height; int num = width * height; if (sourceTexture.GetPixels32().Length != num) { ETGModConsole.Log((object)"[ExpandTheGungeon] GenerateRoomFromImage: Error! Image resolution doesn't match size of room!", false); return; } room.FullCellData = (PrototypeDungeonRoomCellData[])(object)new PrototypeDungeonRoomCellData[num]; List list = new List(); for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { int num2 = j * width + i; Color? val16 = sourceTexture.GetPixel(i, j); CellType val17 = (CellType)2; DiagonalWallType diagnalWallType = (DiagonalWallType)0; CellFloorType overrideFloorType = (CellFloorType)0; bool flag = false; bool doesDamage = false; if (val16.HasValue) { if ((val16.Value == val) | (val16.Value == val2) | (val16.Value == val3) | (val16.Value == val4) | (val16.Value == val5)) { val17 = (CellType)1; if (val16.Value == val2) { diagnalWallType = (DiagonalWallType)1; } else if (val16.Value == val3) { diagnalWallType = (DiagonalWallType)4; } else if (val16.Value == val4) { diagnalWallType = (DiagonalWallType)2; } else if (val16.Value == val5) { diagnalWallType = (DiagonalWallType)3; } } else if (val16.Value == val15) { val17 = (CellType)4; list.Add(new Vector2((float)i, (float)j)); } else if ((val16.Value == val6) | (val16.Value == val14) | (val16.Value == val7) | (val16.Value == val8) | (val16.Value == val9) | (val16.Value == val10) | (val16.Value == val11) | (val16.Value == val12) | (val16.Value == val13)) { val17 = (CellType)2; if (val16.Value == val14) { flag = true; doesDamage = (int)DamageCellsType != 8; } else if (val16.Value == val7) { overrideFloorType = (CellFloorType)3; } else if (val16.Value == val8) { overrideFloorType = (CellFloorType)1; } else if (val16.Value == val9) { overrideFloorType = (CellFloorType)2; } else if (val16.Value == val10) { overrideFloorType = (CellFloorType)4; } else if (val16.Value == val11) { overrideFloorType = (CellFloorType)5; } else if (val16.Value == val12) { overrideFloorType = (CellFloorType)6; } else if (val16.Value == val13) { overrideFloorType = (CellFloorType)7; } } else { val17 = (CellType)2; } } else { val17 = (CellType)2; } if ((int)DamageCellsType > 0 && flag) { room.FullCellData[num2] = GenerateCellData(val17, diagnalWallType, doesDamage, isPoison, DamageCellsType, damageToPlayersPerTick, damageToEnemiesPerTick, tickFrequency, respectsFlying, (CellFloorType)0); } else { room.FullCellData[num2] = GenerateCellData(val17, diagnalWallType, DoesDamage: false, IsPoison: false, (CoreDamageTypes)0, 0f, 0f, 0f, RespectsFlying: true, overrideFloorType); } } } if (list.Count > 0) { room.pits = new List { new PrototypeRoomPitEntry((IEnumerable)list) { containedCells = list, borderType = PitBorderType } }; } room.OnBeforeSerialize(); room.OnAfterDeserialize(); room.UpdatePrecalculatedData(); } public static PrototypeDungeonRoom GenerateRoomPrefabFromTexture2D(Texture2D sourceTexture, RoomCategory roomCategory = 2, PitBorderType PitBorderType = 0, CoreDamageTypes DamageCellsType = 0) { //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006b: 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_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Expected O, but got Unknown //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Expected O, but got Unknown //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Expected O, but got Unknown //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Expected O, but got Unknown //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Unknown result type (might be due to invalid IL or missing references) PrototypeDungeonRoom obj = ScriptableObject.CreateInstance(); ((Object)obj).name = "Expand Corrupted Room"; obj.QAID = "FF" + Random.Range(1000, 9999); obj.GUID = Guid.NewGuid().ToString(); obj.PreventMirroring = false; obj.category = roomCategory; obj.subCategoryBoss = (RoomBossSubCategory)0; obj.subCategoryNormal = (RoomNormalSubCategory)0; obj.subCategorySpecial = (RoomSpecialSubCategory)1; obj.subCategorySecret = (RoomSecretSubCategory)0; obj.exitData = new PrototypeRoomExitData { exits = new List() }; obj.pits = new List(); obj.placedObjects = new List(); obj.placedObjectPositions = new List(); obj.eventTriggerAreas = new List(); obj.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; obj.overriddenTilesets = (ValidTilesets)0; obj.prerequisites = new List(); obj.InvalidInCoop = false; obj.cullProceduralDecorationOnWeakPlatforms = false; obj.preventAddedDecoLayering = false; obj.precludeAllTilemapDrawing = false; obj.drawPrecludedCeilingTiles = false; obj.preventBorders = false; obj.preventFacewallAO = false; obj.usesCustomAmbientLight = false; obj.customAmbientLight = Color.white; obj.ForceAllowDuplicates = false; obj.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; obj.IsLostWoodsRoom = false; obj.UseCustomMusic = false; obj.UseCustomMusicState = false; obj.CustomMusicEvent = string.Empty; obj.UseCustomMusicSwitch = false; obj.CustomMusicSwitch = string.Empty; obj.overrideRoomVisualTypeForSecretRooms = false; obj.rewardChestSpawnPosition = new IntVector2(6, 14); obj.Width = ((Texture)sourceTexture).width; obj.Height = ((Texture)sourceTexture).height; obj.additionalObjectLayers = new List(0); GenerateRoomLayoutFromTexture(obj, sourceTexture, PitBorderType, DamageCellsType); return obj; } public static void GenerateBasicRoomLayout(PrototypeDungeonRoom room, CellType DefaultCellType = 2, PitBorderType pitBorderType = 0) { //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Expected O, but got Unknown //IL_003f: 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_005d: Invalid comparison between Unknown and I4 //IL_0066: Unknown result type (might be due to invalid IL or missing references) int width = room.Width; int height = room.Height; int num = width * height; room.FullCellData = (PrototypeDungeonRoomCellData[])(object)new PrototypeDungeonRoomCellData[num]; List list = new List(); for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { int num2 = j * width + i; room.FullCellData[num2] = GenerateCellData(DefaultCellType, (DiagonalWallType)0, DoesDamage: false, IsPoison: false, (CoreDamageTypes)0, 0f, 0f, 0f, RespectsFlying: true, (CellFloorType)0); if ((int)DefaultCellType == 4) { list.Add(new Vector2((float)i, (float)j)); } } } if (list.Count > 0) { room.pits = new List { new PrototypeRoomPitEntry((IEnumerable)list) { containedCells = list, borderType = pitBorderType } }; } room.OnBeforeSerialize(); room.UpdatePrecalculatedData(); } public static PrototypeDungeonRoomCellData GenerateCellData(CellType cellType, DiagonalWallType diagnalWallType = 0, bool DoesDamage = false, bool IsPoison = false, CoreDamageTypes DamageType = 0, float DamageToPlayersPerTick = 0f, float DamageToEnemiesPerTick = 0f, float TickFrequency = 0f, bool RespectsFlying = true, CellFloorType OverrideFloorType = 0) { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0006: 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_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_0020: 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_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004e: 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_005c: 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_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_009a: 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_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: 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_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Expected O, but got Unknown //IL_00df: Expected O, but got Unknown //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Expected O, but got Unknown //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Invalid comparison between Unknown and I4 //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_012b: Invalid comparison between Unknown and I4 //IL_0114: 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_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) PrototypeDungeonRoomCellData val = new PrototypeDungeonRoomCellData(string.Empty, cellType) { state = cellType, diagonalWallType = diagnalWallType, breakable = false, str = string.Empty, conditionalOnParentExit = false, conditionalCellIsPit = false, parentExitIndex = -1, containsManuallyPlacedLight = false, lightPixelsOffsetY = 0, lightStampIndex = 0, doesDamage = DoesDamage, damageDefinition = new CellDamageDefinition { damageTypes = DamageType, damageToPlayersPerTick = DamageToPlayersPerTick, damageToEnemiesPerTick = DamageToEnemiesPerTick, tickFrequency = TickFrequency, respectsFlying = RespectsFlying, isPoison = IsPoison }, appearance = new PrototypeDungeonRoomCellAppearance { overrideDungeonMaterialIndex = -1, IsPhantomCarpet = false, ForceDisallowGoop = false, OverrideFloorType = OverrideFloorType, globalOverrideIndices = new PrototypeIndexOverrideData { indices = new List(0) } }, ForceTileNonDecorated = false, additionalPlacedObjectIndices = new List { -1 }, placedObjectRUBELIndex = -1 }; if ((int)DamageType == 16) { val.ForceTileNonDecorated = true; val.appearance.OverrideFloorType = (CellFloorType)0; val.damageDefinition.damageTypes = (CoreDamageTypes)16; } else if ((int)DamageType == 4) { val.ForceTileNonDecorated = true; val.appearance.OverrideFloorType = (CellFloorType)0; val.damageDefinition.damageTypes = (CoreDamageTypes)4; } return val; } public static void AddExitToRoom(PrototypeDungeonRoom room, Vector2 ExitLocation, Direction ExitDirection, ExitType ExitType = 0, ExitGroup ExitGroup = 0, bool ContainsDoor = true, int ExitLength = 3, int exitSize = 2, DungeonPlaceable overrideDoorObject = null) { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Expected O, but got Unknown //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_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0058: 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_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_0060: 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_0067: 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_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Expected O, but got Unknown //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Invalid comparison between Unknown and I4 //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Invalid comparison between Unknown and I4 //IL_0185: 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_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_0103: 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_0113: 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_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)room == (Object)null) { return; } if (room.exitData == null) { room.exitData = new PrototypeRoomExitData(); room.exitData.exits = new List(); } if (room.exitData.exits == null) { room.exitData.exits = new List(); } PrototypeRoomExit val = new PrototypeRoomExit(ExitDirection, ExitLocation) { exitDirection = ExitDirection, exitType = ExitType, exitGroup = ExitGroup, containsDoor = ContainsDoor, exitLength = ExitLength, containedCells = new List() }; if ((int)ExitDirection == 6 || (int)ExitDirection == 2) { if (exitSize > 2) { val.containedCells.Add(ExitLocation); val.containedCells.Add(ExitLocation + new Vector2(0f, 1f)); for (int i = 2; i < exitSize; i++) { val.containedCells.Add(ExitLocation + new Vector2(0f, (float)i)); } } else { val.containedCells.Add(ExitLocation); val.containedCells.Add(ExitLocation + new Vector2(0f, 1f)); } } else if (exitSize > 2) { val.containedCells.Add(ExitLocation); val.containedCells.Add(ExitLocation + new Vector2(1f, 0f)); for (int j = 2; j < exitSize; j++) { val.containedCells.Add(ExitLocation + new Vector2((float)j, 0f)); } } else { val.containedCells.Add(ExitLocation); val.containedCells.Add(ExitLocation + new Vector2(1f, 0f)); } if (Object.op_Implicit((Object)(object)overrideDoorObject)) { val.specifiedDoor = overrideDoorObject; } room.exitData.exits.Add(val); } public static void AddObjectToRoom(PrototypeDungeonRoom room, Vector2 position, DungeonPlaceable PlacableContents = null, DungeonPlaceableBehaviour NonEnemyBehaviour = null, string EnemyBehaviourGuid = null, float SpawnChance = 1f, int xOffset = 0, int yOffset = 0, int layer = 0, int PathID = -1, int PathStartNode = 0) { //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0043: 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_0052: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_005e: 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_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0088: 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_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Expected O, but got Unknown //IL_00f6: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)room == (Object)null) { return; } if (room.placedObjects == null) { room.placedObjects = new List(); } if (room.placedObjectPositions == null) { room.placedObjectPositions = new List(); } PrototypePlacedObjectData val = new PrototypePlacedObjectData { placeableContents = null, nonenemyBehaviour = null, spawnChance = SpawnChance, unspecifiedContents = null, enemyBehaviourGuid = string.Empty, contentsBasePosition = position, layer = layer, xMPxOffset = xOffset, yMPxOffset = yOffset, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathIDx = PathID, assignedPathStartNode = PathStartNode }; if ((Object)(object)PlacableContents != (Object)null) { val.placeableContents = PlacableContents; } else if ((Object)(object)NonEnemyBehaviour != (Object)null) { val.nonenemyBehaviour = NonEnemyBehaviour; } else { if (EnemyBehaviourGuid == null) { return; } val.enemyBehaviourGuid = EnemyBehaviourGuid; } room.placedObjects.Add(val); room.placedObjectPositions.Add(position); } public static void AddObjectToRoom(PrototypeDungeonRoom room, Vector2 position, GameObject PlacableObject, int xOffset = 0, int yOffset = 0, int layer = 0, float SpawnChance = 1f, int PathID = -1, int PathStartNode = 0) { //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008d: 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_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Expected O, but got Unknown //IL_00e3: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)room == (Object)null)) { if (room.placedObjects == null) { room.placedObjects = new List(); } if (room.placedObjectPositions == null) { room.placedObjectPositions = new List(); } PrototypePlacedObjectData item = new PrototypePlacedObjectData { placeableContents = ExpandUtility.GenerateDungeonPlacable(PlacableObject, spawnsEnemy: false, useExternalPrefab: true), nonenemyBehaviour = null, spawnChance = SpawnChance, unspecifiedContents = null, enemyBehaviourGuid = string.Empty, contentsBasePosition = position, layer = layer, xMPxOffset = xOffset, yMPxOffset = yOffset, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathIDx = PathID, assignedPathStartNode = PathStartNode }; room.placedObjects.Add(item); room.placedObjectPositions.Add(position); } } } } namespace ExpandTheGungeon.ExpandPrefab { public class ExpandAlarmMushroomPlacable : DungeonPlaceableBehaviour, IPlaceConfigurable { [SerializeField] public GameObject TriggerVFX; [SerializeField] public GameObject DestroyVFX; [SerializeField] public string TriggerSFX; [SerializeField] public string TriggerAnimation; [SerializeField] public string BreakAnimation; [SerializeField] public string DeadSpriteName; [SerializeField] public bool useAirDropSpawn; [SerializeField] public Vector2? EnemySpawnOffset; [SerializeField] public DungeonPlaceable EnemySpawnPlacableOverride; [NonSerialized] public RoomHandler ParentRoom; [NonSerialized] public bool IsDead; [NonSerialized] private bool m_triggered; [NonSerialized] private GameObject m_TriggerVFX; [NonSerialized] private tk2dSprite m_ShadowSprite; public ExpandAlarmMushroomPlacable() { TriggerSFX = "Play_EXAlarmMushroom_01"; TriggerAnimation = "alarm_mushroom_alarm"; BreakAnimation = "alarm_mushroom_break"; DeadSpriteName = "alarm_mushroom2_dead_001"; useAirDropSpawn = true; IsDead = false; m_triggered = false; } private void Start() { //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0043: 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 if (ParentRoom == null) { ParentRoom = ((DungeonPlaceableBehaviour)this).GetAbsoluteParentRoom(); } if (ParentRoom != null) { SpeculativeRigidbody specRigidbody = ((BraveBehaviour)this).specRigidbody; if (Object.op_Implicit((Object)(object)specRigidbody)) { specRigidbody.OnTriggerCollision = (OnTriggerDelegate)Delegate.Combine((Delegate?)(object)specRigidbody.OnTriggerCollision, (Delegate?)new OnTriggerDelegate(HandleTriggerCollision)); } } if (Object.op_Implicit((Object)(object)((Component)this).gameObject.transform.Find("Shadow"))) { m_ShadowSprite = ((Component)((Component)this).gameObject.transform.Find("Shadow")).GetComponent(); } } private void Update() { if ((IsDead | GameManager.Instance.IsLoadingLevel | m_triggered | (ParentRoom == null)) || ParentRoom.HasActiveEnemies((ActiveEnemyType)1) || ParentRoom.IsSealed) { return; } IsDead = true; ((BraveBehaviour)this).spriteAnimator.Stop(); ((BraveBehaviour)this).sprite.SetSprite(DeadSpriteName); if (BraveUtility.RandomBool()) { ((BraveBehaviour)this).sprite.FlipX = true; if (Object.op_Implicit((Object)(object)m_ShadowSprite)) { ((tk2dBaseSprite)m_ShadowSprite).FlipX = true; } } Object.Destroy((Object)(object)((BraveBehaviour)this).specRigidbody); Object.Destroy((Object)(object)this); } public void ConfigureOnPlacement(RoomHandler room) { ParentRoom = room; if (ExpandStaticReferenceManager.AllAlarmMushrooms != null) { ExpandStaticReferenceManager.AllAlarmMushrooms.Add(this); return; } ExpandStaticReferenceManager.AllAlarmMushrooms = new List { this }; } public void TriggerNow(bool DoSoundFX) { if (!m_triggered) { ((MonoBehaviour)this).StartCoroutine(Trigger(DoSoundFX)); } } private void HandleTriggerCollision(SpeculativeRigidbody specRigidbody, SpeculativeRigidbody sourceSpecRigidbody, CollisionData collisionData) { if (m_triggered || !Object.op_Implicit((Object)(object)((Component)specRigidbody).GetComponent())) { return; } ExpandAlarmMushroomPlacable[] array = Object.FindObjectsOfType(); if (array != null && array.Length != 0) { ExpandAlarmMushroomPlacable[] array2 = array; foreach (ExpandAlarmMushroomPlacable expandAlarmMushroomPlacable in array2) { if (Object.op_Implicit((Object)(object)expandAlarmMushroomPlacable) && (Object)(object)expandAlarmMushroomPlacable != (Object)(object)this && !expandAlarmMushroomPlacable.IsDead && expandAlarmMushroomPlacable.ParentRoom == ParentRoom) { expandAlarmMushroomPlacable.TriggerNow(DoSoundFX: false); } } } ((MonoBehaviour)this).StartCoroutine(Trigger(DoSoundFX: true)); } private IEnumerator Trigger(bool DoSoundFX) { if (m_triggered) { yield break; } m_triggered = true; if (!string.IsNullOrEmpty(TriggerAnimation)) { ((BraveBehaviour)this).spriteAnimator.Play(TriggerAnimation); } if (DoSoundFX && !string.IsNullOrEmpty(TriggerSFX)) { AkSoundEngine.PostEvent(TriggerSFX, ((Component)this).gameObject); } Vector2 SpawnOffset = Vector2.zero; if (EnemySpawnOffset.HasValue) { SpawnOffset = EnemySpawnOffset.Value; } if (Object.op_Implicit((Object)(object)TriggerVFX)) { if (useAirDropSpawn) { m_TriggerVFX = SpawnManager.SpawnVFX(TriggerVFX, Vector2.op_Implicit(((BraveBehaviour)this).specRigidbody.UnitBottomCenter - new Vector2(0f, 0.25f)), Quaternion.identity); } else { m_TriggerVFX = SpawnManager.SpawnVFX(TriggerVFX, Vector2.op_Implicit(((BraveBehaviour)this).specRigidbody.UnitBottomCenter + SpawnOffset), Quaternion.identity); } } if (useAirDropSpawn) { Vector2 val = Vector2.op_Implicit(((BraveBehaviour)this).transform.position); bool flag = false; DungeonPlaceable val2 = ((!Object.op_Implicit((Object)(object)EnemySpawnPlacableOverride)) ? BraveUtility.RandomElement(((!GameManager.Instance.Dungeon.UsesCustomFloorIdea) ? GameManager.Instance.Dungeon.sharedSettingsPrefab.DefaultProceduralIdea : GameManager.Instance.Dungeon.FloorIdea).ValidEasyEnemyPlaceables) : EnemySpawnPlacableOverride); DungeonPlaceableVariant val3 = BraveUtility.RandomElement(val2.variantTiers); if (val3 != null && Random.value > 0.2f) { if (!string.IsNullOrEmpty(val3.enemyPlaceableGuid)) { GameObject val4 = Object.Instantiate(((Component)EnemyDatabase.GetOrLoadByGuid(val3.enemyPlaceableGuid)).gameObject, Vector2.op_Implicit(val), Quaternion.identity); val4.GetComponent().ConfigureOnPlacement(ParentRoom); ExpandUtility.SpawnParaDrop(ParentRoom, Vector2.op_Implicit(val), val4, "NULL", null, 0f, 2.5f, 10f, 10f, useLandingVFX: false); } else if (Object.op_Implicit((Object)(object)val3.nonDatabasePlaceable)) { GameObject objectDrop = Object.Instantiate(val3.nonDatabasePlaceable, Vector2.op_Implicit(val), Quaternion.identity); ExpandUtility.SpawnParaDrop(ParentRoom, Vector2.op_Implicit(val), objectDrop, "NULL", null, 0f, 2.5f, 10f, 10f, useLandingVFX: false); } else { ExpandUtility.SpawnParaDrop(ParentRoom, Vector2.op_Implicit(val), null, "NULL", null, 0f, 2.5f, 10f, 10f, useLandingVFX: false); flag = true; } } else { ExpandUtility.SpawnParaDrop(ParentRoom, Vector2.op_Implicit(val), null, "NULL", null, 0f, 2.5f, 10f, 10f, useLandingVFX: false); flag = true; } if (!ParentRoom.IsSealed && !flag) { ParentRoom.SealRoom(); } yield return null; DestroyMushroom(DoSoundFX); yield break; } AIActor val5 = null; if (Object.op_Implicit((Object)(object)EnemySpawnPlacableOverride)) { val5 = EnemySpawnPlacableOverride.SelectFromTiersFull().GetOrLoadPlaceableObject.GetComponent(); } else { RobotDaveIdea val6 = ((!GameManager.Instance.Dungeon.UsesCustomFloorIdea) ? GameManager.Instance.Dungeon.sharedSettingsPrefab.DefaultProceduralIdea : GameManager.Instance.Dungeon.FloorIdea); val6.ValidEasyEnemyPlaceables[Random.Range(0, val6.ValidEasyEnemyPlaceables.Length)].SelectFromTiersFull(); } if (Object.op_Implicit((Object)(object)val5)) { AIActor targetAIActor = AIActor.Spawn(val5, Vector2Extensions.ToIntVector2(((BraveBehaviour)this).specRigidbody.UnitCenter, (VectorConversions)0) + Vector2Extensions.ToIntVector2(SpawnOffset, (VectorConversions)2), ParentRoom, true, (AwakenAnimationType)2, true); targetAIActor.reinforceType = (ReinforceType)1; targetAIActor.HandleReinforcementFallIntoRoom(0.8f); if (!ParentRoom.IsSealed) { ParentRoom.SealRoom(); } while (((GameActor)targetAIActor).IsGone) { yield return null; } DestroyMushroom(DoSoundFX); } } private void DestroyMushroom(bool DoSoundFX, float additionalDelay = 0f) { if (ExpandStaticReferenceManager.AllAlarmMushrooms != null && ExpandStaticReferenceManager.AllAlarmMushrooms.Count > 0) { ExpandStaticReferenceManager.AllAlarmMushrooms.Remove(this); } bool muteAudio = false; if (!DoSoundFX) { muteAudio = true; } ((MonoBehaviour)this).StartCoroutine(DelayedDestroy(additionalDelay, muteAudio)); } private IEnumerator DelayedDestroy(float additionalDelay, bool MuteAudio) { ((BraveBehaviour)this).spriteAnimator.Play(TriggerAnimation); float elapsed = 0f; float delay = 2.5f + additionalDelay; while (elapsed < delay) { elapsed += BraveTime.DeltaTime; yield return null; } ((BraveBehaviour)this).spriteAnimator.Play(BreakAnimation); if (Object.op_Implicit((Object)(object)DestroyVFX)) { SpawnManager.SpawnVFX(DestroyVFX, Vector2.op_Implicit(((BraveBehaviour)this).specRigidbody.UnitCenter), Quaternion.identity); } else { LootEngine.DoDefaultItemPoof(((BraveBehaviour)this).specRigidbody.UnitCenter, false, MuteAudio); } yield return null; if (Object.op_Implicit((Object)(object)m_TriggerVFX)) { Object.Destroy((Object)(object)m_TriggerVFX); } ((BraveBehaviour)this).spriteAnimator.PlayAndDestroyObject(BreakAnimation, (Action)null); } protected override void OnDestroy() { if (ExpandStaticReferenceManager.AllAlarmMushrooms != null && ExpandStaticReferenceManager.AllAlarmMushrooms.Count > 0 && ExpandStaticReferenceManager.AllAlarmMushrooms.Contains(this)) { ExpandStaticReferenceManager.AllAlarmMushrooms.Remove(this); } ((DungeonPlaceableBehaviour)this).OnDestroy(); } } public class ExpandAmmonomiconDatabase { public struct EnemyEntryData { public int ForcedPositionInAmmonomicon; public bool IsNormalEnemy; public bool IsInBossTab; public bool TabSpriteIsTexture; public PlaceableDifficulty EnemyDifficulty; public int placeableWidth; public int placeableHeight; public string TabSprite; public string FullArtSprite; public string EnemyName; public string smallDescription; public string bigDescription; public string encounterGUID; public string encounterPath; } public static EnemyEntryData BulletManBoss; public static EnemyEntryData BootlegBullat; public static EnemyEntryData BootlegBulletKin; public static EnemyEntryData BootlegBandanaBulletKin; public static EnemyEntryData BootlegShotgunKinRed; public static EnemyEntryData BootlegShotgunKinBlue; public static EnemyEntryData HotShotBulletKin; public static EnemyEntryData HotShotShotgunKin; public static EnemyEntryData HotShotCultist; public static EnemyEntryData Cronenberg; public static EnemyEntryData CronenbergAngry; public static EnemyEntryData ClownKin; public static EnemyEntryData Chameleon; public static EnemyEntryData Entity; public static EnemyEntryData Skusketling; public static EnemyEntryData WestBrosAngel; public static EnemyEntryData WestBrosNome; public static EnemyEntryData WestBrosTuc; public static EnemyEntryData Doppelgunner; public static EnemyEntryData Poisbulord; public static void Init(AssetBundle expandSharedAssets1) { BulletManBoss = JsonUtility.FromJson(expandSharedAssets1.LoadAsset("BulletManBoss_AmmonomiconData").text); BootlegBullat = JsonUtility.FromJson(expandSharedAssets1.LoadAsset("BootlegBullat_AmmonomiconData").text); BootlegBulletKin = JsonUtility.FromJson(expandSharedAssets1.LoadAsset("BootlegBulletKin_AmmonomiconData").text); BootlegBandanaBulletKin = JsonUtility.FromJson(expandSharedAssets1.LoadAsset("BootlegBandanaBulletKin_AmmonomiconData").text); BootlegShotgunKinRed = JsonUtility.FromJson(expandSharedAssets1.LoadAsset("BootlegShotgunManRed_AmmonomiconData").text); BootlegShotgunKinBlue = JsonUtility.FromJson(expandSharedAssets1.LoadAsset("BootlegShotgunManBlue_AmmonomiconData").text); HotShotBulletKin = JsonUtility.FromJson(expandSharedAssets1.LoadAsset("HotShotBulletKin_AmmonomiconData").text); HotShotShotgunKin = JsonUtility.FromJson(expandSharedAssets1.LoadAsset("HotShotShotgunKin_AmmonomiconData").text); HotShotCultist = JsonUtility.FromJson(expandSharedAssets1.LoadAsset("HotShotCultist_AmmonomiconData").text); Cronenberg = JsonUtility.FromJson(expandSharedAssets1.LoadAsset("Cronenberg_AmmonomiconData").text); CronenbergAngry = JsonUtility.FromJson(expandSharedAssets1.LoadAsset("CronenbergAngry_AmmonomiconData").text); ClownKin = JsonUtility.FromJson(expandSharedAssets1.LoadAsset("ClownKin_AmmonomiconData").text); Chameleon = JsonUtility.FromJson(expandSharedAssets1.LoadAsset("Chameleon_AmmonomiconData").text); Entity = JsonUtility.FromJson(expandSharedAssets1.LoadAsset("Entity_AmmonomiconData").text); Skusketling = JsonUtility.FromJson(expandSharedAssets1.LoadAsset("Skusketling_AmmonomiconData").text); WestBrosAngel = JsonUtility.FromJson(expandSharedAssets1.LoadAsset("WestBrosAngel_AmmonomiconData").text); WestBrosNome = JsonUtility.FromJson(expandSharedAssets1.LoadAsset("WestBrosNome_AmmonomiconData").text); WestBrosTuc = JsonUtility.FromJson(expandSharedAssets1.LoadAsset("WestBrosTuc_AmmonomiconData").text); Doppelgunner = JsonUtility.FromJson(expandSharedAssets1.LoadAsset("Doppelgunner_AmmonomiconData").text); Poisbulord = JsonUtility.FromJson(expandSharedAssets1.LoadAsset("Poisbulord_AmmonomiconData").text); } public static void AddExistingEnemyToAmmonomicon(AIActor targetEnemy, EnemyEntryData enemyEntryData, bool AddToEncounterDatabase = true, Texture2D FullArtSpriteOverride = null) { //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0139: 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) //IL_0156: 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_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0184: Unknown result type (might be due to invalid IL or missing references) //IL_0189: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01b1: Expected O, but got Unknown //IL_02b5: Unknown result type (might be due to invalid IL or missing references) //IL_02ba: Unknown result type (might be due to invalid IL or missing references) //IL_02c2: Unknown result type (might be due to invalid IL or missing references) //IL_02ce: Unknown result type (might be due to invalid IL or missing references) //IL_02df: Unknown result type (might be due to invalid IL or missing references) //IL_02e8: Expected O, but got Unknown if (!Object.op_Implicit((Object)(object)targetEnemy)) { return; } string enemyGuid = targetEnemy.EnemyGuid; string empty = string.Empty; if (string.IsNullOrEmpty(((GameActor)targetEnemy).ActorName)) { return; } empty = ((GameActor)targetEnemy).ActorName.Replace(" ", "_").Replace("(", "_").Replace(")", string.Empty) .ToLower(); if (enemyEntryData.TabSpriteIsTexture) { if (!Object.op_Implicit((Object)(object)ExpandAssets.LoadAsset(enemyEntryData.TabSprite))) { return; } SpriteBuilder.AddToAmmonomicon(ExpandAssets.LoadAsset(enemyEntryData.TabSprite)); } else if (((BraveBehaviour)targetEnemy).sprite.Collection.GetSpriteDefinition(enemyEntryData.TabSprite) != null) { if (((BraveBehaviour)targetEnemy).sprite.Collection.GetSpriteDefinition(enemyEntryData.TabSprite) == null) { return; } SpriteBuilder.AddToAmmonomicon(((BraveBehaviour)targetEnemy).sprite.Collection.GetSpriteDefinition(enemyEntryData.TabSprite)); } bool flag = Object.op_Implicit((Object)(object)((Component)targetEnemy).gameObject.GetComponent()); EncounterTrackable orAddComponent = GameObjectExtensions.GetOrAddComponent(((Component)targetEnemy).gameObject); if (!string.IsNullOrEmpty(enemyEntryData.encounterGUID)) { orAddComponent.EncounterGuid = enemyEntryData.encounterGUID; } else if (flag) { orAddComponent.EncounterGuid = enemyGuid; } orAddComponent.prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; orAddComponent.ProxyEncounterGuid = string.Empty; orAddComponent.journalData = new JournalEntry { AmmonomiconSprite = enemyEntryData.TabSprite, PrimaryDisplayName = "#THE_" + empty, NotificationPanelDescription = "#THE_" + empty + "_SHORTDESC", AmmonomiconFullEntry = "#THE_" + empty + "_LONGDESC", SpecialIdentifier = (CustomJournalEntryType)0, SuppressKnownState = false, SuppressInAmmonomicon = false, IsEnemy = true, DisplayOnLoadingScreen = false, RequiresLightBackgroundInLoadingScreen = false }; if (Object.op_Implicit((Object)(object)FullArtSpriteOverride)) { orAddComponent.journalData.enemyPortraitSprite = FullArtSpriteOverride; } else { orAddComponent.journalData.enemyPortraitSprite = ExpandAssets.LoadAsset(enemyEntryData.FullArtSprite); } ExpandTheGungeon.Strings.Enemies.Set("#THE_" + empty, enemyEntryData.EnemyName); ExpandTheGungeon.Strings.Enemies.Set("#THE_" + empty + "_SHORTDESC", enemyEntryData.smallDescription); ExpandTheGungeon.Strings.Enemies.Set("#THE_" + empty + "_LONGDESC", enemyEntryData.bigDescription); EnemyDatabaseEntry entry = EnemyDatabase.GetEntry(enemyGuid); if (entry != null) { if (!string.IsNullOrEmpty(enemyEntryData.encounterGUID)) { entry.encounterGuid = enemyEntryData.encounterGUID; } entry.isNormalEnemy = enemyEntryData.IsNormalEnemy; entry.ForcedPositionInAmmonomicon = enemyEntryData.ForcedPositionInAmmonomicon; entry.isInBossTab = enemyEntryData.IsInBossTab; } string path = enemyGuid; if (!string.IsNullOrEmpty(enemyEntryData.encounterPath)) { path = enemyEntryData.encounterPath; } if (AddToEncounterDatabase) { EncounterDatabaseEntry val = new EncounterDatabaseEntry(((BraveBehaviour)targetEnemy).encounterTrackable) { path = path, myGuid = enemyEntryData.encounterGUID, journalData = ((BraveBehaviour)targetEnemy).encounterTrackable.journalData, doNotificationOnEncounter = false }; if (string.IsNullOrEmpty(enemyEntryData.encounterGUID)) { ((AssetBundleDatabaseEntry)val).myGuid = enemyGuid; } ((AssetBundleDatabase)(object)EncounterDatabase.Instance).Entries.Add(val); return; } string text = enemyGuid; if ((Object)(object)orAddComponent != (Object)null && !string.IsNullOrEmpty(orAddComponent.EncounterGuid) && orAddComponent.EncounterGuid != targetEnemy.EnemyGuid) { text = orAddComponent.EncounterGuid; } if (!string.IsNullOrEmpty(enemyEntryData.encounterGUID)) { text = enemyEntryData.encounterGUID; } EncounterDatabaseEntry entry2 = EncounterDatabase.GetEntry(text); if (entry2 != null) { entry2.journalData = orAddComponent.journalData; } } } public class ExpandBootlegRoomPlaceable : DungeonPlaceableBehaviour, IPlaceConfigurable { public GameObject ExitTiles_West; public GameObject ExitTiles_East; public GameObject ExitTiles_North; public GameObject ExitTiles_South; public GameObject DoorFrames; public static void BuildPrefab(AssetBundle expandSharedAssets1) { //IL_010f: 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_0123: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0148: 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_0168: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_03ad: Unknown result type (might be due to invalid IL or missing references) //IL_03d8: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_0405: Unknown result type (might be due to invalid IL or missing references) //IL_0412: Unknown result type (might be due to invalid IL or missing references) //IL_0433: Unknown result type (might be due to invalid IL or missing references) //IL_0440: Unknown result type (might be due to invalid IL or missing references) //IL_0461: Unknown result type (might be due to invalid IL or missing references) //IL_046d: Unknown result type (might be due to invalid IL or missing references) //IL_048e: Unknown result type (might be due to invalid IL or missing references) //IL_049b: Unknown result type (might be due to invalid IL or missing references) //IL_04bc: Unknown result type (might be due to invalid IL or missing references) //IL_04c9: Unknown result type (might be due to invalid IL or missing references) //IL_04ea: Unknown result type (might be due to invalid IL or missing references) //IL_04f8: Unknown result type (might be due to invalid IL or missing references) //IL_051a: Unknown result type (might be due to invalid IL or missing references) //IL_0528: Unknown result type (might be due to invalid IL or missing references) //IL_054a: Unknown result type (might be due to invalid IL or missing references) //IL_055b: Unknown result type (might be due to invalid IL or missing references) //IL_057d: Unknown result type (might be due to invalid IL or missing references) //IL_058e: Unknown result type (might be due to invalid IL or missing references) //IL_05b0: Unknown result type (might be due to invalid IL or missing references) //IL_05c4: Unknown result type (might be due to invalid IL or missing references) //IL_05e6: Unknown result type (might be due to invalid IL or missing references) //IL_05f4: Unknown result type (might be due to invalid IL or missing references) //IL_0616: Unknown result type (might be due to invalid IL or missing references) //IL_0627: Unknown result type (might be due to invalid IL or missing references) //IL_0649: Unknown result type (might be due to invalid IL or missing references) //IL_065a: Unknown result type (might be due to invalid IL or missing references) //IL_067c: Unknown result type (might be due to invalid IL or missing references) //IL_0690: Unknown result type (might be due to invalid IL or missing references) //IL_06b4: Unknown result type (might be due to invalid IL or missing references) //IL_06c0: Unknown result type (might be due to invalid IL or missing references) ExpandPrefabs.EXBootlegRoomObject = expandSharedAssets1.LoadAsset("BootlegRoomPrefab"); ExpandPrefabs.EXBootlegRoomDoorTriggers = expandSharedAssets1.LoadAsset("BootlegRoomDoorTriggers"); GameObject val = expandSharedAssets1.LoadAsset("BootlegRoomBorder_West"); GameObject val2 = expandSharedAssets1.LoadAsset("BootlegRoomBorder_East"); GameObject val3 = expandSharedAssets1.LoadAsset("BootlegRoomBorder_North"); GameObject val4 = expandSharedAssets1.LoadAsset("BootlegRoomBorder_South"); GameObject val5 = expandSharedAssets1.LoadAsset("BootlegRoomDoorFramesTop"); GameObject val6 = expandSharedAssets1.LoadAsset("BootlegRoomDoorFrames"); GameObject val7 = expandSharedAssets1.LoadAsset("BootlegRoomDoorBlocker_West"); GameObject val8 = expandSharedAssets1.LoadAsset("BootlegRoomDoorBlocker_East"); GameObject val9 = expandSharedAssets1.LoadAsset("BootlegRoomDoorBlocker_South"); GameObject val10 = expandSharedAssets1.LoadAsset("BootlegRoomDoorBlocker_North"); val.transform.SetParent(ExpandPrefabs.EXBootlegRoomObject.transform); val2.transform.SetParent(ExpandPrefabs.EXBootlegRoomObject.transform); val3.transform.SetParent(ExpandPrefabs.EXBootlegRoomObject.transform); val4.transform.SetParent(ExpandPrefabs.EXBootlegRoomObject.transform); val5.transform.SetParent(ExpandPrefabs.EXBootlegRoomObject.transform); Transform transform = val.transform; transform.localPosition -= new Vector3(3f, 3f); Transform transform2 = val2.transform; transform2.localPosition -= new Vector3(3f, 3f); Transform transform3 = val3.transform; transform3.localPosition -= new Vector3(3f, 3f); Transform transform4 = val4.transform; transform4.localPosition -= new Vector3(3f, 3f); val6.transform.SetParent(ExpandPrefabs.EXBootlegRoomDoorTriggers.transform); val7.transform.SetParent(ExpandPrefabs.EXBootlegRoomDoorTriggers.transform); val8.transform.SetParent(ExpandPrefabs.EXBootlegRoomDoorTriggers.transform); val9.transform.SetParent(ExpandPrefabs.EXBootlegRoomDoorTriggers.transform); val10.transform.SetParent(ExpandPrefabs.EXBootlegRoomDoorTriggers.transform); tk2dSprite val11 = SpriteSerializer.AddSpriteToObject(val5, ExpandPrefabs.EXBootlegRoomCollection, "BootlegRoom_TopLayer", (PerpendicularState)2); tk2dSprite val12 = SpriteSerializer.AddSpriteToObject(val7, ExpandPrefabs.EXBootlegRoomCollection, "BootlegRoom_DoorBlock_West", (PerpendicularState)2); tk2dSprite val13 = SpriteSerializer.AddSpriteToObject(val8, ExpandPrefabs.EXBootlegRoomCollection, "BootlegRoom_DoorBlock_East", (PerpendicularState)2); tk2dSprite val14 = SpriteSerializer.AddSpriteToObject(val9, ExpandPrefabs.EXBootlegRoomCollection, "BootlegRoom_DoorBlock_South", (PerpendicularState)2); tk2dSprite val15 = SpriteSerializer.AddSpriteToObject(val10, ExpandPrefabs.EXBootlegRoomCollection, "BootlegRoom_DoorBlock_North", (PerpendicularState)2); tk2dSprite val16 = SpriteSerializer.AddSpriteToObject(ExpandPrefabs.EXBootlegRoomObject, ExpandPrefabs.EXBootlegRoomCollection, "BootlegRoom_BottomLayer", (PerpendicularState)2); tk2dSprite val17 = SpriteSerializer.AddSpriteToObject(val, ExpandPrefabs.EXBootlegRoomCollection, "BootlegRoom_ExitTiles_West", (PerpendicularState)2); tk2dSprite val18 = SpriteSerializer.AddSpriteToObject(val2, ExpandPrefabs.EXBootlegRoomCollection, "BootlegRoom_ExitTiles_East", (PerpendicularState)2); tk2dSprite val19 = SpriteSerializer.AddSpriteToObject(val3, ExpandPrefabs.EXBootlegRoomCollection, "BootlegRoom_ExitTiles_North", (PerpendicularState)2); tk2dSprite val20 = SpriteSerializer.AddSpriteToObject(val4, ExpandPrefabs.EXBootlegRoomCollection, "BootlegRoom_ExitTiles_South", (PerpendicularState)2); tk2dSprite obj = SpriteSerializer.AddSpriteToObject(val6, ExpandPrefabs.EXBootlegRoomCollection, "BootlegRoom_Doors", (PerpendicularState)2); ((tk2dBaseSprite)val11).HeightOffGround = 2f; ((tk2dBaseSprite)val12).HeightOffGround = -0.7f; ((tk2dBaseSprite)val13).HeightOffGround = -0.7f; ((tk2dBaseSprite)val14).HeightOffGround = -0.7f; ((tk2dBaseSprite)val15).HeightOffGround = -0.7f; ((tk2dBaseSprite)val16).HeightOffGround = -1.7f; ((tk2dBaseSprite)val17).HeightOffGround = -1.7f; ((tk2dBaseSprite)val18).HeightOffGround = -1.7f; ((tk2dBaseSprite)val19).HeightOffGround = -1.7f; ((tk2dBaseSprite)val20).HeightOffGround = -1.7f; ((tk2dBaseSprite)obj).HeightOffGround = -1f; ExpandUtility.GenerateOrAddToRigidBody(ExpandPrefabs.EXBootlegRoomObject, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: false, (IntVector2?)new IntVector2(1, 6), (IntVector2?)null); ExpandUtility.GenerateOrAddToRigidBody(ExpandPrefabs.EXBootlegRoomObject, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: false, (IntVector2?)new IntVector2(1, 6), (IntVector2?)new IntVector2(0, 8)); ExpandUtility.GenerateOrAddToRigidBody(ExpandPrefabs.EXBootlegRoomObject, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: false, (IntVector2?)new IntVector2(1, 6), (IntVector2?)new IntVector2(19, 0)); ExpandUtility.GenerateOrAddToRigidBody(ExpandPrefabs.EXBootlegRoomObject, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: false, (IntVector2?)new IntVector2(1, 6), (IntVector2?)new IntVector2(19, 8)); ExpandUtility.GenerateOrAddToRigidBody(ExpandPrefabs.EXBootlegRoomObject, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: false, (IntVector2?)new IntVector2(8, 1), (IntVector2?)new IntVector2(1, 0)); ExpandUtility.GenerateOrAddToRigidBody(ExpandPrefabs.EXBootlegRoomObject, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: false, (IntVector2?)new IntVector2(8, 1), (IntVector2?)new IntVector2(11, 0)); ExpandUtility.GenerateOrAddToRigidBody(ExpandPrefabs.EXBootlegRoomObject, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: false, (IntVector2?)new IntVector2(8, 1), (IntVector2?)new IntVector2(1, 13)); ExpandUtility.GenerateOrAddToRigidBody(ExpandPrefabs.EXBootlegRoomObject, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: false, (IntVector2?)new IntVector2(8, 1), (IntVector2?)new IntVector2(11, 13)); ExpandUtility.GenerateOrAddToRigidBody(ExpandPrefabs.EXBootlegRoomObject, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(8, 80), (IntVector2?)new IntVector2(16, 16)); ExpandUtility.GenerateOrAddToRigidBody(ExpandPrefabs.EXBootlegRoomObject, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(8, 80), (IntVector2?)new IntVector2(16, 128)); ExpandUtility.GenerateOrAddToRigidBody(ExpandPrefabs.EXBootlegRoomObject, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(8, 80), (IntVector2?)new IntVector2(296, 16)); ExpandUtility.GenerateOrAddToRigidBody(ExpandPrefabs.EXBootlegRoomObject, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(8, 80), (IntVector2?)new IntVector2(296, 128)); ExpandUtility.GenerateOrAddToRigidBody(ExpandPrefabs.EXBootlegRoomObject, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(120, 8), (IntVector2?)new IntVector2(24, 16)); ExpandUtility.GenerateOrAddToRigidBody(ExpandPrefabs.EXBootlegRoomObject, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(120, 8), (IntVector2?)new IntVector2(176, 16)); ExpandUtility.GenerateOrAddToRigidBody(ExpandPrefabs.EXBootlegRoomObject, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(120, 8), (IntVector2?)new IntVector2(24, 200)); ExpandUtility.GenerateOrAddToRigidBody(ExpandPrefabs.EXBootlegRoomObject, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(120, 8), (IntVector2?)new IntVector2(176, 200)); ExpandUtility.GenerateOrAddToRigidBody(ExpandPrefabs.EXBootlegRoomDoorTriggers, (CollisionLayer)16, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: true, replaceExistingColliders: false, UsesPixelsAsUnitSize: false, (IntVector2?)new IntVector2(16, 10), (IntVector2?)new IntVector2(2, 2)); ExpandBootlegRoomPlaceable expandBootlegRoomPlaceable = ExpandPrefabs.EXBootlegRoomObject.AddComponent(); expandBootlegRoomPlaceable.ExitTiles_West = val; expandBootlegRoomPlaceable.ExitTiles_East = val2; expandBootlegRoomPlaceable.ExitTiles_North = val3; expandBootlegRoomPlaceable.ExitTiles_South = val4; expandBootlegRoomPlaceable.DoorFrames = val5; ExpandBootlegRoomDoorsPlacables expandBootlegRoomDoorsPlacables = ExpandPrefabs.EXBootlegRoomDoorTriggers.AddComponent(); expandBootlegRoomDoorsPlacables.Doors = val6; expandBootlegRoomDoorsPlacables.DoorBlocker_West = val7; expandBootlegRoomDoorsPlacables.DoorBlocker_East = val8; expandBootlegRoomDoorsPlacables.DoorBlocker_South = val9; expandBootlegRoomDoorsPlacables.DoorBlocker_North = val10; } private void Start() { } private void LateUpdate() { } public void ConfigureOnPlacement(RoomHandler room) { //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Expected I4, but got Unknown ((BraveBehaviour)this).specRigidbody.CollideWithOthers = true; ((BraveBehaviour)this).specRigidbody.Reinitialize(); ExitTiles_West.SetActive(false); ExitTiles_East.SetActive(false); ExitTiles_North.SetActive(false); ExitTiles_South.SetActive(false); DoorFrames.transform.SetParent(room.hierarchyParent); GameObjectExtensions.SetLayerRecursively(DoorFrames, LayerMask.NameToLayer("FG_Critical")); ((tk2dBaseSprite)DoorFrames.GetComponent()).HeightOffGround = 4f; ((tk2dBaseSprite)DoorFrames.GetComponent()).UpdateZDepth(); if (room.area.instanceUsedExits != null && room.area.instanceUsedExits.Count > 0) { foreach (PrototypeRoomExit instanceUsedExit in room.area.instanceUsedExits) { Direction exitDirection = instanceUsedExit.exitDirection; switch ((int)exitDirection) { case 6: ExitTiles_West.SetActive(true); break; case 2: ExitTiles_East.SetActive(true); break; case 0: ExitTiles_North.SetActive(true); break; case 4: ExitTiles_South.SetActive(true); break; } } } ((BraveBehaviour)this).specRigidbody.AddCollisionLayerIgnoreOverride(CollisionMask.LayerToMask((CollisionLayer)3)); } protected override void OnDestroy() { ((DungeonPlaceableBehaviour)this).OnDestroy(); } } public class ExpandBootlegRoomDoorsPlacables : DungeonPlaceableBehaviour, IPlaceConfigurable { public GameObject Doors; public GameObject DoorBlocker_West; public GameObject DoorBlocker_East; public GameObject DoorBlocker_South; public GameObject DoorBlocker_North; private RoomHandler m_ParentRoom; private SpeculativeRigidbody m_DoorBlockersRigidBody; private bool m_DoorsClosed; private bool m_triggered; public ExpandBootlegRoomDoorsPlacables() { m_DoorsClosed = false; m_triggered = false; } private void Start() { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Expected O, but got Unknown //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Expected O, but got Unknown if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).specRigidbody)) { ((BraveBehaviour)this).specRigidbody.OnTriggerCollision = (OnTriggerDelegate)Delegate.Combine((Delegate?)(object)((BraveBehaviour)this).specRigidbody.OnTriggerCollision, (Delegate?)new OnTriggerDelegate(HandleTriggerCollision)); m_DoorBlockersRigidBody.AddCollisionLayerIgnoreOverride(CollisionMask.LayerToMask((CollisionLayer)3)); } } private void HandleTriggerCollision(SpeculativeRigidbody specRigidbody, SpeculativeRigidbody sourceSpecRigidbody, CollisionData collisionData) { if (!(m_triggered | m_DoorsClosed | (m_ParentRoom == null)) && m_ParentRoom.IsSealed && Object.op_Implicit((Object)(object)((Component)specRigidbody).GetComponent())) { m_triggered = true; } } private void Update() { if (!(Dungeon.IsGenerating | (m_ParentRoom == null) | (((DungeonPlaceableBehaviour)GameManager.Instance.PrimaryPlayer).GetAbsoluteParentRoom() == null) | (((DungeonPlaceableBehaviour)GameManager.Instance.PrimaryPlayer).GetAbsoluteParentRoom() != m_ParentRoom)) && m_ParentRoom != null) { if (m_ParentRoom.IsSealed && !m_DoorsClosed && m_triggered) { EnableDoorBlockers(); m_DoorsClosed = true; } else if (!m_ParentRoom.IsSealed && m_DoorsClosed) { m_DoorsClosed = false; m_triggered = false; DisableDoorBlockers(); } } } private void EnableDoorBlockers() { Doors.SetActive(true); ((BraveBehaviour)Doors.GetComponent()).renderer.enabled = true; } private void DisableDoorBlockers() { ((BraveBehaviour)Doors.GetComponent()).renderer.enabled = false; Doors.SetActive(false); } public void ConfigureOnPlacement(RoomHandler room) { //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Expected O, but got Unknown //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_0179: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01b6: Unknown result type (might be due to invalid IL or missing references) //IL_01d5: Unknown result type (might be due to invalid IL or missing references) //IL_01e5: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Unknown result type (might be due to invalid IL or missing references) //IL_0279: Unknown result type (might be due to invalid IL or missing references) //IL_027f: Invalid comparison between Unknown and I4 //IL_02aa: Unknown result type (might be due to invalid IL or missing references) //IL_02b0: Invalid comparison between Unknown and I4 //IL_02d8: Unknown result type (might be due to invalid IL or missing references) //IL_02de: Invalid comparison between Unknown and I4 //IL_0306: Unknown result type (might be due to invalid IL or missing references) m_ParentRoom = room; Doors.transform.parent = room.hierarchyParent; ((tk2dBaseSprite)Doors.GetComponent()).HeightOffGround = -1f; ((tk2dBaseSprite)Doors.GetComponent()).UpdateZDepth(); DoorBlocker_West.transform.parent = room.hierarchyParent; DoorBlocker_East.transform.parent = room.hierarchyParent; DoorBlocker_South.transform.parent = room.hierarchyParent; DoorBlocker_North.transform.parent = room.hierarchyParent; ((tk2dBaseSprite)DoorBlocker_West.GetComponent()).HeightOffGround = -0.7f; ((tk2dBaseSprite)DoorBlocker_West.GetComponent()).UpdateZDepth(); ((tk2dBaseSprite)DoorBlocker_East.GetComponent()).HeightOffGround = -0.7f; ((tk2dBaseSprite)DoorBlocker_East.GetComponent()).UpdateZDepth(); ((tk2dBaseSprite)DoorBlocker_South.GetComponent()).HeightOffGround = -0.7f; ((tk2dBaseSprite)DoorBlocker_South.GetComponent()).UpdateZDepth(); ((tk2dBaseSprite)DoorBlocker_North.GetComponent()).HeightOffGround = -0.7f; ((tk2dBaseSprite)DoorBlocker_North.GetComponent()).UpdateZDepth(); GameObject val = new GameObject("BootlegRoomPhantomDoorBlockerCollision"); val.transform.position = ((Component)this).gameObject.transform.position; val.transform.parent = m_ParentRoom.hierarchyParent; ExpandUtility.GenerateOrAddToRigidBody(val, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(24, 32), (IntVector2?)new IntVector2(0, 96)); ExpandUtility.GenerateOrAddToRigidBody(val, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(24, 32), (IntVector2?)new IntVector2(296, 96)); ExpandUtility.GenerateOrAddToRigidBody(val, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 24), (IntVector2?)new IntVector2(144, 0)); ExpandUtility.GenerateOrAddToRigidBody(val, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 24), (IntVector2?)new IntVector2(144, 200)); m_DoorBlockersRigidBody = val.GetComponent(); if (room.area.instanceUsedExits == null || room.area.instanceUsedExits.Count <= 0) { return; } foreach (PrototypeRoomExit instanceUsedExit in room.area.instanceUsedExits) { if ((int)instanceUsedExit.exitDirection == 6) { m_DoorBlockersRigidBody.PixelColliders[0].Enabled = false; DoorBlocker_West.SetActive(false); } else if ((int)instanceUsedExit.exitDirection == 2) { m_DoorBlockersRigidBody.PixelColliders[1].Enabled = false; DoorBlocker_East.SetActive(false); } else if ((int)instanceUsedExit.exitDirection == 4) { m_DoorBlockersRigidBody.PixelColliders[2].Enabled = false; DoorBlocker_South.SetActive(false); } else if ((int)instanceUsedExit.exitDirection == 0) { m_DoorBlockersRigidBody.PixelColliders[3].Enabled = false; DoorBlocker_North.SetActive(false); } } m_DoorBlockersRigidBody.Reinitialize(); } protected override void OnDestroy() { ((DungeonPlaceableBehaviour)this).OnDestroy(); } } [HarmonyPatch] public static class ExpandEnemyDatabase { public static readonly string BulletManBossGUID; public static readonly string HotShotCultistGUID; public static readonly string HotShotShotgunKinGUID; public static readonly string HotShotBulletKinGUID; public static readonly string ExplodyBoyGUID; public static readonly string RatGrenadeGUID; public static readonly string HammerCompanionGUID; public static readonly string BootlegBullatGUID; public static readonly string BootlegBulletManGUID; public static readonly string BootlegBulletManBandanaGUID; public static readonly string BootlegShotgunManRedGUID; public static readonly string BootlegShotgunManBlueGUID; public static readonly string CronenbergGUID; public static readonly string AggressiveCronenbergGUID; public static readonly string MetalCubeGuyWestGUID; public static readonly string FriendlyCultistGUID; public static readonly string SonicCompanionGUID; public static readonly string corruptedEnemyGUID; public static readonly string doppelgunnerbossEnemyGUID; public static readonly string ParasiteBossGUID; public static readonly string com4nd0GUID; public static readonly string ClownkinGUID; public static readonly string ClownkinAltGUID; public static readonly string ClownkinNoFXGUID; public static readonly string ClownkinAngryGUID; public static readonly string EntityGUID; public static readonly string PoisbulordGUID; public static readonly string PoisbulordCrawlerGUID; public static Dictionary enemyPrefabDictionary; public static GameObject BabyGoodHammerCollection; public static GameObject BootlegBullatCollection; public static GameObject BootlegBulletManCollection; public static GameObject BootlegBulletManBandanaCollection; public static GameObject BootlegShotgunManBlueCollection; public static GameObject BootlegShotgunManRedCollection; public static GameObject ClownkinCollection; public static GameObject CronenbergCollection; public static GameObject CronenbergTallCollection; public static GameObject EntityCollection; public static GameObject CultistCompanionCollection; public static GameObject SonicCompanionCollection; public static GameObject GungeoneerMimicCollection; public static GameObject WestBrosCollection; public static GameObject HammerCompanionPrefab; public static GameObject FriendlyCultistPrefab; public static GameObject SonicCompanionPrefab; public static GameObject BuildHotShotGunCultistPrefab; public static GameObject HotShotShotgunKinPrefab; public static GameObject HotShotBulletKinPrefab; public static GameObject RatGrenadePrefab; public static GameObject BootlegBullatPrefab; public static GameObject BootlegBulletManPrefab; public static GameObject BootlegBulletManBandanaPrefab; public static GameObject BootlegShotgunManRedPrefab; public static GameObject BootlegShotgunManBluePrefab; public static GameObject ClownkinPrefab; public static GameObject ClownkinAltPrefab; public static GameObject ClownkinNoFXPrefab; public static GameObject ClownkinAngryPrefab; public static GameObject CronenbergPrefab; public static GameObject EntityPrefab; public static GameObject MetalCubeGuyWestPrefab; public static GameObject AggressiveCronenbergPrefab; public static GameObject CorruptedEnemyPrefab; public static GameObject ExplodyBoyPrefab; public static GameObject MonsterParasitePrefab; public static GameObject com4nd0BossPrefab; public static GameObject DoppelGunnerPrefab; public static GameObject BulletManBossPrefab; public static GameObject PoisbulordPrefab; public static GameObject PoisbulordCrawlerPrefab; public static GameObject RedShotGunMan; public static GameObject BlueShotGunMan; public static GameObject RedShotgunManCollection; public static GameObject BlueShotgunManCollection; public static GameObject BulletManEyepatch; public static GameObject BulletManEyepatchCollection; public static GameObject OldKingBossAnimationLibrary; public static GameObject CronenbergCorpseDebrisObject1; public static GameObject CronenbergCorpseDebrisObject2; public static GameObject CronenbergCorpseDebrisObject3; public static GameObject CronenbergCorpseDebrisObject4; public static GameObject AggressiveCronenbergCorpseDebrisObject; public static GameObject StoneCubeCollection_West; public static GameObject DopplegunnerHand; public static GameObject ClownkinWig; public static GameObject VFX_Poisbulord_Splash; public static GameObject VFX_Poisbulord_Die_Big; public static GameObject VFX_Poisbulord_Die_Small; public static GameObject Poisbulord_Poisbulon_Projectile; public static GameObject Poisbulord_Poisbuloid_Projectile; public static Texture2D[] RatGrenadeTextures; private static AIActor Chameleon; private static AIActor Skusketling; public static Texture2D ModifiedCompanionsAtlas; public static Texture2D PoisbulordAtlas; static ExpandEnemyDatabase() { enemyPrefabDictionary = new Dictionary(); BulletManBossGUID = "170bad1ea59344278c996c4ccc3bee51"; HotShotCultistGUID = "61a8112544ce4389ab14f2287616a71b"; HotShotShotgunKinGUID = "758a0a0215e6448ab52adf73bc44ae5e"; HotShotBulletKinGUID = "8a0b7a287410464bb17b9e656958bd19"; ExplodyBoyGUID = "27638478e52e4785925b578b52bf79d3"; RatGrenadeGUID = "1a1dc5ed-92a6-4bd1-bbee-098991e7d2d4"; HammerCompanionGUID = "05145e1a-1a10-4797-b37e-a15bb26d7641"; BootlegBullatGUID = "7ef020b9-11fb-4a24-a818-60581e6d3105"; BootlegBulletManGUID = "a52cfba8-f141-4a98-9022-48816201f834"; BootlegBulletManBandanaGUID = "7093253e-a118-4813-8feb-703a1ad31665"; BootlegShotgunManRedGUID = "01e4e238-89bb-4b30-b93a-ae17dc19e748"; BootlegShotgunManBlueGUID = "f7c0b0ab-3d80-4855-9fd6-38861af1147a"; CronenbergGUID = "0a2433d6e0784eefb28762c5c127d0b3"; AggressiveCronenbergGUID = "6d2d7a845e464d3ca453fe1fff5fed84"; MetalCubeGuyWestGUID = "c1e60b8c0691499183c69393e02c9de9"; FriendlyCultistGUID = "1d1e1070617842f09e6f45df3cb223f6"; SonicCompanionGUID = "38e61aef773a481697c4956d85279087"; corruptedEnemyGUID = "182c39c4d904493283f75ab29775d9c6"; doppelgunnerbossEnemyGUID = "5f0fa34b5a2e44cdab4a06f89bb5c442"; ParasiteBossGUID = "acd8d483f24e4c43b964fa4e54068cf1"; com4nd0GUID = "0a406e36-80eb-43b8-8ad0-c56232f9496e"; ClownkinGUID = "5736cc6185294b839666c65ac8e082c1"; ClownkinAltGUID = "dd1505fb84744002ad42ee8316b86ea0"; ClownkinNoFXGUID = "ccd416569b6d4ca0bb057a837a517d73"; ClownkinAngryGUID = "3eee833068614536a5f56cbe7dc6cfe9"; EntityGUID = "0108a031c74940739c56a22068c915b6"; PoisbulordGUID = "b19ec5d13d754e5f8293910e10bf7ff1"; PoisbulordCrawlerGUID = "aa060bcd358048b8ac99127571e500ae"; } public static void InitSpriteCollections(AssetBundle expandSharedAssets1) { BabyGoodHammerCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "BabyGoodHammerCollection", "BabyGoodHammer_Collection", "BabyGoodHammerCollection"); BootlegBullatCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "BootlegBullatCollection", "BootlegBullat_Collection", "BootlegBullatCollection"); BootlegBulletManCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "BootlegBulletManCollection", "BootlegBulletMan_Collection", "BootlegBulletManCollection"); BootlegBulletManBandanaCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "BootlegBulletManBandanaCollection", "BootlegBulletManBandana_Collection", "BootlegBulletManBandanaCollection"); BootlegShotgunManBlueCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "BootlegShotgunManBlueCollection", "BootlegShotgunManBlue_Collection", "BootlegShotgunManBlueCollection"); BootlegShotgunManRedCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "BootlegShotgunManRedCollection", "BootlegShotgunManRed_Collection", "BootlegShotgunManRedCollection"); ClownkinCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "ClownKinCollection", "Clownkin_Collection", "ClownKinCollection"); CronenbergCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "CronenbergCollection", "Cronenberg_Collection", "CronenbergCollection"); CronenbergTallCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "CronenbergTallCollection", "Cronenberg_Tall_Collection", "CronenbergTallCollection"); EntityCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "EntityCollection", "Entity_Collection", "EntityCollection"); CultistCompanionCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "CultistCompanionCollection", "CultistCompanion_Collection", "CultistCompanionCollection"); SonicCompanionCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "SonicCompanionCollection", "SonicCompanion_Collection", "SonicCompanionCollection"); GungeoneerMimicCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "GungeoneerMimicCollection", "GungeoneerMimic_Collection", "GungeoneerMimicCollection"); WestBrosCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "WestBrosCollection", "WestBros_Collection", "WestBrosCollection"); tk2dSpriteCollectionData component = WestBrosCollection.GetComponent(); for (int i = 1; i < 7; i++) { component.DefineProjectileCollision("gr_black_revolver_projectile_00" + i, 12, 6, null, null, null, 1); } ModifiedCompanionsAtlas = expandSharedAssets1.LoadAsset("ModifiedCompanions_Collection"); PoisbulordAtlas = expandSharedAssets1.LoadAsset("Poisbulord_Collection"); } public static void InitPrefabs(AssetBundle expandSharedAssets1) { PaletteFixEnemies(expandSharedAssets1); OldKingThroneSFXFix(); BuildHotShotCultistPrefab(expandSharedAssets1, out BuildHotShotGunCultistPrefab); BuildHotShotShotgunManPrefab(expandSharedAssets1, out HotShotShotgunKinPrefab); BuildHotShotBulletManPrefab(expandSharedAssets1, out HotShotBulletKinPrefab); BuildBabyGoodHammerPrefab(expandSharedAssets1, out HammerCompanionPrefab); BuildBootlegBullatPrefab(expandSharedAssets1, out BootlegBullatPrefab); BuildBootlegBulletManPrefab(expandSharedAssets1, out BootlegBulletManPrefab); BuildBootlegBulletManBandanaPrefab(expandSharedAssets1, out BootlegBulletManBandanaPrefab); BuildBootlegShotgunManRedPrefab(expandSharedAssets1, out BootlegShotgunManRedPrefab); BuildBootlegShotgunManBluePrefab(expandSharedAssets1, out BootlegShotgunManBluePrefab); BuildClownkinPrefab(expandSharedAssets1, out ClownkinPrefab, out ClownkinWig); BuildClownkinAltPrefab(expandSharedAssets1, out ClownkinAltPrefab); BuildClownkinNoFXPrefab(expandSharedAssets1, out ClownkinNoFXPrefab); BuildClownkinAngryPrefab(expandSharedAssets1, out ClownkinAngryPrefab); BuildDummyExplodyBarrelGuyPrefab(expandSharedAssets1, out ExplodyBoyPrefab); BuildCronenbergPrefab(expandSharedAssets1, out CronenbergPrefab); BuildAggressiveCronenbergPrefab(expandSharedAssets1, out AggressiveCronenbergPrefab); BuildCultistCompanionPrefab(expandSharedAssets1, out FriendlyCultistPrefab); BuildSonicCompanionPrefab(expandSharedAssets1, out SonicCompanionPrefab); BuildCorruptedEnemyPrefab(expandSharedAssets1, out CorruptedEnemyPrefab); BuildEntityPrefab(expandSharedAssets1, out EntityPrefab); BuildDoppelGunnerBossPrefab(expandSharedAssets1, out DoppelGunnerPrefab); BuildBulletManBossPrefab(expandSharedAssets1, out BulletManBossPrefab); BuildPoisbulordBossPrefab(expandSharedAssets1, out PoisbulordPrefab); BuildPoisbulordCrawlerPrefab(expandSharedAssets1, out PoisbulordCrawlerPrefab); ExpandWesternBrosPrefabBuilder.BuildWestBrosBossPrefabs(expandSharedAssets1); BuildRatGrenadePrefab(out RatGrenadePrefab); BuildMetalCubeGuyWestPrefab(expandSharedAssets1, out MetalCubeGuyWestPrefab); BuildParasiteBossPrefab(out MonsterParasitePrefab); BuildJungleBossPrefab(out com4nd0BossPrefab); UpdateAmmonoiconDatabase(expandSharedAssets1); } public static void UpdateAmmonoiconDatabase(AssetBundle expandSharedAssets1) { Chameleon = GetOfficialEnemyByGuid("80ab6cd15bfc46668a8844b2975c6c26"); Skusketling = GetOfficialEnemyByGuid("c2f902b7cbe745efb3db4399927eab34"); ExpandAmmonomiconDatabase.AddExistingEnemyToAmmonomicon(Chameleon, ExpandAmmonomiconDatabase.Chameleon, AddToEncounterDatabase: false); ExpandAmmonomiconDatabase.AddExistingEnemyToAmmonomicon(Skusketling, ExpandAmmonomiconDatabase.Skusketling); } public static AIActor GetOrLoadByGuidHook(Func orig, string guid) { if (enemyPrefabDictionary != null && enemyPrefabDictionary.TryGetValue(guid, out var value)) { return value; } return orig(guid); } [HarmonyPatch(typeof(EnemyDatabase), "GetOrLoadByGuid", new Type[] { typeof(string) })] [HarmonyPrefix] private static bool GetOrLoadByGuidPatch(EnemyDatabase __instance, string guid, ref AIActor __result) { if (enemyPrefabDictionary == null) { return false; } if (!enemyPrefabDictionary.TryGetValue(guid, out var value)) { return true; } __result = value; return false; } public static AIActor GetOfficialEnemyByGuid(string guid) { return EnemyDatabase.Instance.InternalGetByGuid(guid); } public static void PaletteFixEnemies(AssetBundle expandSharedAssets1) { //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Expected O, but got Unknown //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Expected O, but got Unknown //IL_026d: Unknown result type (might be due to invalid IL or missing references) //IL_0274: Expected O, but got Unknown RedShotGunMan = ((Component)EnemyDatabase.GetOrLoadByGuid("128db2f0781141bcb505d8f00f9e4d47")).gameObject; BlueShotGunMan = ((Component)EnemyDatabase.GetOrLoadByGuid("b54d89f9e802455cbb2b8a96a31e8259")).gameObject; BulletManEyepatch = ((Component)EnemyDatabase.GetOrLoadByGuid("70216cae6c1346309d86d4a0b4603045")).gameObject; RedShotgunManCollection = expandSharedAssets1.LoadAsset("RedShotgunManCollection"); BlueShotgunManCollection = expandSharedAssets1.LoadAsset("BlueShotgunManCollection"); BulletManEyepatchCollection = expandSharedAssets1.LoadAsset("BulletManEyepatchCollection"); AIActor component = RedShotGunMan.GetComponent(); tk2dSpriteCollectionData val = RedShotgunManCollection.AddComponent(); JsonUtility.FromJsonOverwrite(JsonUtility.ToJson((object)((BraveBehaviour)component).sprite.Collection), (object)val); Material val2 = new Material(((BraveBehaviour)EnemyDatabase.GetOrLoadByGuid("01972dee89fc4404a5c408d50007dad5")).sprite.Collection.materials[0]); val2.mainTexture = (Texture)(object)expandSharedAssets1.LoadAsset("RedBulletShotgunMan"); val.materials[0] = val2; tk2dSpriteDefinition[] spriteDefinitions = val.spriteDefinitions; for (int i = 0; i < spriteDefinitions.Length; i++) { spriteDefinitions[i].material = val2; } ((BraveBehaviour)component).sprite.Collection = val; ExpandUtility.DuplicateSpriteAnimation(RedShotgunManCollection, RedShotgunManCollection.AddComponent(), ((BraveBehaviour)component).spriteAnimator.Library, val); ((BraveBehaviour)component).spriteAnimator.Library = RedShotgunManCollection.GetComponent(); component.optionalPalette = null; AIActor component2 = BlueShotGunMan.GetComponent(); tk2dSpriteCollectionData val3 = BlueShotgunManCollection.AddComponent(); JsonUtility.FromJsonOverwrite(JsonUtility.ToJson((object)((BraveBehaviour)component2).sprite.Collection), (object)val3); Material val4 = new Material(((BraveBehaviour)EnemyDatabase.GetOrLoadByGuid("01972dee89fc4404a5c408d50007dad5")).sprite.Collection.materials[0]); val4.mainTexture = (Texture)(object)expandSharedAssets1.LoadAsset("BlueBulletShotgunMan"); val3.materials[0] = val4; spriteDefinitions = val3.spriteDefinitions; for (int i = 0; i < spriteDefinitions.Length; i++) { spriteDefinitions[i].material = val4; } ((BraveBehaviour)component2).sprite.Collection = val3; ExpandUtility.DuplicateSpriteAnimation(BlueShotgunManCollection, BlueShotgunManCollection.AddComponent(), ((BraveBehaviour)component2).spriteAnimator.Library, val3); ((BraveBehaviour)component2).spriteAnimator.Library = BlueShotgunManCollection.GetComponent(); component2.optionalPalette = null; AIActor component3 = BulletManEyepatch.GetComponent(); tk2dSpriteCollectionData val5 = BulletManEyepatchCollection.AddComponent(); JsonUtility.FromJsonOverwrite(JsonUtility.ToJson((object)((BraveBehaviour)component3).sprite.Collection), (object)val5); Material val6 = new Material(((BraveBehaviour)EnemyDatabase.GetOrLoadByGuid("01972dee89fc4404a5c408d50007dad5")).sprite.Collection.materials[0]); val6.mainTexture = (Texture)(object)expandSharedAssets1.LoadAsset("BulletManEyepatch"); val5.materials[0] = val6; spriteDefinitions = val5.spriteDefinitions; for (int i = 0; i < spriteDefinitions.Length; i++) { spriteDefinitions[i].material = val6; } ((BraveBehaviour)component3).sprite.Collection = val5; ExpandUtility.DuplicateSpriteAnimation(BulletManEyepatchCollection, BulletManEyepatchCollection.AddComponent(), ((BraveBehaviour)component3).spriteAnimator.Library, val5); ((BraveBehaviour)component3).spriteAnimator.Library = BulletManEyepatchCollection.GetComponent(); component3.optionalPalette = null; } public static void OldKingThroneSFXFix() { tk2dSpriteAnimation library = ((BraveBehaviour)GetOfficialEnemyByGuid("5729c8b5ffa7415bb3d01205663a33ef")).spriteAnimator.Library; tk2dSpriteAnimationClip clipByName = library.GetClipByName("throne_burst"); clipByName.frames[0].eventAudio = "PLay_ENM_kali_explode_01"; clipByName.frames[0].triggerEvent = true; OldKingBossAnimationLibrary = ((Component)library).gameObject; } public static void AddEnemyToDatabase(GameObject EnemyPrefab, string EnemyGUID, bool IsNormalEnemy = false, bool AddToMTGSpawnPool = true) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: 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_0013: 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_0022: Expected O, but got Unknown EnemyDatabaseEntry item = new EnemyDatabaseEntry { myGuid = EnemyGUID, placeableWidth = 1, placeableHeight = 1, isNormalEnemy = IsNormalEnemy }; ((AssetBundleDatabase)(object)EnemyDatabase.Instance).Entries.Add(item); enemyPrefabDictionary.Add(EnemyGUID, EnemyPrefab.GetComponent()); if (AddToMTGSpawnPool && !string.IsNullOrEmpty(((GameActor)EnemyPrefab.GetComponent()).ActorName)) { string text = ((GameActor)EnemyPrefab.GetComponent()).ActorName.Replace(" ", "_").Replace("(", "_").Replace(")", string.Empty) .ToLower(); if (!Game.Enemies.ContainsID(text)) { Game.Enemies.Add(text, EnemyPrefab.GetComponent()); } } } public static void AddEnemyToDatabaseAndAmmonomicon(AIActor targetEnemy, string EnemyGUID, ExpandAmmonomiconDatabase.EnemyEntryData enemyEntryData, bool AddToMTGSpawnPool = true) { //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_014d: 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_016f: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01be: Unknown result type (might be due to invalid IL or missing references) //IL_01ca: Expected O, but got Unknown //IL_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_01cf: Unknown result type (might be due to invalid IL or missing references) //IL_01d6: Unknown result type (might be due to invalid IL or missing references) //IL_01dd: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: Unknown result type (might be due to invalid IL or missing references) //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_01f0: Unknown result type (might be due to invalid IL or missing references) //IL_01fc: Unknown result type (might be due to invalid IL or missing references) //IL_0208: Unknown result type (might be due to invalid IL or missing references) //IL_0214: Unknown result type (might be due to invalid IL or missing references) //IL_0220: Unknown result type (might be due to invalid IL or missing references) //IL_022d: Expected O, but got Unknown //IL_022e: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Unknown result type (might be due to invalid IL or missing references) //IL_023a: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_024d: Unknown result type (might be due to invalid IL or missing references) //IL_0255: Expected O, but got Unknown if (!Object.op_Implicit((Object)(object)targetEnemy)) { return; } string empty = string.Empty; if (!string.IsNullOrEmpty(((GameActor)targetEnemy).ActorName)) { empty = ((GameActor)targetEnemy).ActorName.Replace(" ", "_").Replace("(", "_").Replace(")", string.Empty) .ToLower(); ExpandTheGungeon.Strings.Enemies.Set("#THE_" + empty, enemyEntryData.EnemyName); ExpandTheGungeon.Strings.Enemies.Set("#THE_" + empty + "_SHORTDESC", enemyEntryData.smallDescription); ExpandTheGungeon.Strings.Enemies.Set("#THE_" + empty + "_LONGDESC", enemyEntryData.bigDescription); if (enemyEntryData.TabSpriteIsTexture) { SpriteBuilder.AddToAmmonomicon(ExpandAssets.LoadAsset(enemyEntryData.TabSprite)); } else if (((BraveBehaviour)targetEnemy).sprite.Collection.GetSpriteDefinition(enemyEntryData.TabSprite) != null) { SpriteBuilder.AddToAmmonomicon(((BraveBehaviour)targetEnemy).sprite.Collection.GetSpriteDefinition(enemyEntryData.TabSprite)); } EncounterTrackable orAddComponent = GameObjectExtensions.GetOrAddComponent(((Component)targetEnemy).gameObject); orAddComponent.EncounterGuid = EnemyGUID; orAddComponent.prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; orAddComponent.ProxyEncounterGuid = string.Empty; orAddComponent.journalData = new JournalEntry { AmmonomiconSprite = enemyEntryData.TabSprite, enemyPortraitSprite = ExpandAssets.LoadAsset(enemyEntryData.FullArtSprite), PrimaryDisplayName = "#THE_" + empty, NotificationPanelDescription = "#THE_" + empty + "_SHORTDESC", AmmonomiconFullEntry = "#THE_" + empty + "_LONGDESC", SpecialIdentifier = (CustomJournalEntryType)0, SuppressKnownState = false, SuppressInAmmonomicon = false, IsEnemy = true, DisplayOnLoadingScreen = false, RequiresLightBackgroundInLoadingScreen = false }; EnemyDatabaseEntry val = new EnemyDatabaseEntry { myGuid = EnemyGUID, path = EnemyGUID, encounterGuid = EnemyGUID, difficulty = enemyEntryData.EnemyDifficulty, placeableWidth = enemyEntryData.placeableWidth, placeableHeight = enemyEntryData.placeableHeight, isNormalEnemy = enemyEntryData.IsNormalEnemy, ForcedPositionInAmmonomicon = enemyEntryData.ForcedPositionInAmmonomicon, isInBossTab = enemyEntryData.IsInBossTab }; EncounterDatabaseEntry val2 = new EncounterDatabaseEntry(orAddComponent) { path = EnemyGUID, myGuid = EnemyGUID, journalData = orAddComponent.journalData, doNotificationOnEncounter = false }; if (!string.IsNullOrEmpty(enemyEntryData.encounterPath)) { ((AssetBundleDatabaseEntry)val2).path = enemyEntryData.encounterPath; ((AssetBundleDatabaseEntry)val).path = enemyEntryData.encounterPath; } if (!string.IsNullOrEmpty(enemyEntryData.encounterGUID)) { ((AssetBundleDatabaseEntry)val2).myGuid = enemyEntryData.encounterGUID; orAddComponent.EncounterGuid = enemyEntryData.encounterGUID; val.encounterGuid = enemyEntryData.encounterGUID; } ((AssetBundleDatabase)(object)EnemyDatabase.Instance).Entries.Add(val); ((AssetBundleDatabase)(object)EncounterDatabase.Instance).Entries.Add(val2); enemyPrefabDictionary.Add(EnemyGUID, targetEnemy); if (AddToMTGSpawnPool && !string.IsNullOrEmpty(empty) && !Game.Enemies.ContainsID(empty)) { Game.Enemies.Add(empty, targetEnemy); } } } public static void BuildHotShotCultistPrefab(AssetBundle expandSharedAssets1, out GameObject m_CachedTargetObject) { //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_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Expected O, but got Unknown //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Expected O, but got Unknown //IL_018f: 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_019b: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01c3: Expected O, but got Unknown //IL_01c5: Unknown result type (might be due to invalid IL or missing references) //IL_01cf: Expected O, but got Unknown //IL_0249: Unknown result type (might be due to invalid IL or missing references) //IL_0271: Expected O, but got Unknown //IL_030c: Unknown result type (might be due to invalid IL or missing references) //IL_0313: Expected O, but got Unknown //IL_03ac: 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_03e9: Unknown result type (might be due to invalid IL or missing references) //IL_03f9: Unknown result type (might be due to invalid IL or missing references) //IL_0464: Unknown result type (might be due to invalid IL or missing references) //IL_0469: Unknown result type (might be due to invalid IL or missing references) //IL_0470: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_0483: Expected O, but got Unknown //IL_048f: Unknown result type (might be due to invalid IL or missing references) //IL_0494: Unknown result type (might be due to invalid IL or missing references) //IL_049f: Unknown result type (might be due to invalid IL or missing references) //IL_04a6: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04b8: Unknown result type (might be due to invalid IL or missing references) //IL_04bf: Unknown result type (might be due to invalid IL or missing references) //IL_04cf: Expected O, but got Unknown //IL_04db: Unknown result type (might be due to invalid IL or missing references) //IL_04e0: Unknown result type (might be due to invalid IL or missing references) //IL_04e7: Unknown result type (might be due to invalid IL or missing references) //IL_04f2: Unknown result type (might be due to invalid IL or missing references) //IL_04f9: Unknown result type (might be due to invalid IL or missing references) //IL_0500: Unknown result type (might be due to invalid IL or missing references) //IL_050b: Unknown result type (might be due to invalid IL or missing references) //IL_0516: Unknown result type (might be due to invalid IL or missing references) //IL_051d: Unknown result type (might be due to invalid IL or missing references) //IL_0528: Unknown result type (might be due to invalid IL or missing references) //IL_0538: Expected O, but got Unknown //IL_0544: Unknown result type (might be due to invalid IL or missing references) //IL_0549: Unknown result type (might be due to invalid IL or missing references) //IL_0550: Unknown result type (might be due to invalid IL or missing references) //IL_0557: Unknown result type (might be due to invalid IL or missing references) //IL_0862: Unknown result type (might be due to invalid IL or missing references) //IL_0867: Unknown result type (might be due to invalid IL or missing references) //IL_086e: Unknown result type (might be due to invalid IL or missing references) //IL_0875: Unknown result type (might be due to invalid IL or missing references) //IL_087c: Unknown result type (might be due to invalid IL or missing references) //IL_0883: Unknown result type (might be due to invalid IL or missing references) //IL_0893: Expected O, but got Unknown //IL_08b0: Expected O, but got Unknown //IL_08b1: Unknown result type (might be due to invalid IL or missing references) //IL_08b6: Unknown result type (might be due to invalid IL or missing references) //IL_08bd: Unknown result type (might be due to invalid IL or missing references) //IL_08c4: Unknown result type (might be due to invalid IL or missing references) //IL_08c9: Unknown result type (might be due to invalid IL or missing references) //IL_08d4: Unknown result type (might be due to invalid IL or missing references) //IL_08df: Unknown result type (might be due to invalid IL or missing references) //IL_08e0: Unknown result type (might be due to invalid IL or missing references) //IL_08e5: Unknown result type (might be due to invalid IL or missing references) //IL_08ec: Unknown result type (might be due to invalid IL or missing references) //IL_08f3: Unknown result type (might be due to invalid IL or missing references) //IL_08fa: Unknown result type (might be due to invalid IL or missing references) //IL_0901: Unknown result type (might be due to invalid IL or missing references) //IL_0908: Unknown result type (might be due to invalid IL or missing references) //IL_090f: Unknown result type (might be due to invalid IL or missing references) //IL_091b: Unknown result type (might be due to invalid IL or missing references) //IL_0926: Unknown result type (might be due to invalid IL or missing references) //IL_0931: Unknown result type (might be due to invalid IL or missing references) //IL_093c: Unknown result type (might be due to invalid IL or missing references) //IL_0947: Unknown result type (might be due to invalid IL or missing references) //IL_0952: Unknown result type (might be due to invalid IL or missing references) //IL_095d: Unknown result type (might be due to invalid IL or missing references) //IL_0968: Unknown result type (might be due to invalid IL or missing references) //IL_096f: Unknown result type (might be due to invalid IL or missing references) //IL_097a: Unknown result type (might be due to invalid IL or missing references) //IL_0985: Unknown result type (might be due to invalid IL or missing references) //IL_0990: Unknown result type (might be due to invalid IL or missing references) //IL_099b: Unknown result type (might be due to invalid IL or missing references) //IL_09a6: Unknown result type (might be due to invalid IL or missing references) //IL_09b1: Unknown result type (might be due to invalid IL or missing references) //IL_09cb: Unknown result type (might be due to invalid IL or missing references) //IL_09d2: Unknown result type (might be due to invalid IL or missing references) //IL_09de: Expected O, but got Unknown //IL_09e3: Expected O, but got Unknown //IL_09ed: Expected O, but got Unknown AIActor officialEnemyByGuid = GetOfficialEnemyByGuid("57255ed50ee24794b7aac1ac3cfb8a95"); GameObject corpseObject = null; m_CachedTargetObject = expandSharedAssets1.LoadAsset("HotShotCultist"); GameObject gameObject = ((Component)m_CachedTargetObject.transform.Find("left hand")).gameObject; GameObject gameObject2 = ((Component)m_CachedTargetObject.transform.Find("right hand")).gameObject; GunHandController val = gameObject.AddComponent(); GunHandController val2 = gameObject2.AddComponent(); val.GunId = 38; val.UsesOverrideProjectileData = true; val.OverrideProjectile = ((Component)officialEnemyByGuid).gameObject.GetComponent().Bullets[0].BulletObject.GetComponent(); val.OverrideProjectileData = ((Component)officialEnemyByGuid).gameObject.GetComponent().Bullets[0].ProjectileData; val.GunFlipMaster = val2; val.handObject = ((BraveBehaviour)officialEnemyByGuid).aiShooter.handObject; val.gunBehindBody = new DirectionalAnimationBoolSixWay { Back = true, BackRight = false, ForwardRight = false, Forward = false, ForwardLeft = true, BackLeft = true }; val.gunBehindBodyEight = new DirectionalAnimationBoolEightWay(); val.isEightWay = false; val.PreFireDelay = 0f; val.NumShots = 3; val.ShotCooldown = 0.18f; val.Cooldown = 1f; val.RampBullets = false; val.RampStartHeight = 2f; val.RampTime = 1f; val2.GunId = 38; val2.UsesOverrideProjectileData = true; val2.OverrideProjectile = val.OverrideProjectile; val2.OverrideProjectileData = val.OverrideProjectileData; val2.handObject = ((BraveBehaviour)officialEnemyByGuid).aiShooter.handObject; val2.gunBehindBody = new DirectionalAnimationBoolSixWay { Back = true, BackRight = true, ForwardRight = true, Forward = false, ForwardLeft = false, BackLeft = false }; val2.gunBehindBodyEight = new DirectionalAnimationBoolEightWay(); val2.isEightWay = false; val2.PreFireDelay = 0f; val2.NumShots = 2; val2.ShotCooldown = 0.25f; val2.Cooldown = 1.28f; val2.RampBullets = false; val2.RampStartHeight = 2f; val2.RampTime = 1f; ExpandUtility.DuplicateRigidBody(m_CachedTargetObject.AddComponent(), ((BraveBehaviour)officialEnemyByGuid).specRigidbody); ExpandUtility.GenerateAIActorTemplate(m_CachedTargetObject, out corpseObject, "HotShot Gun Cultist", HotShotCultistGUID, (tk2dSprite)((BraveBehaviour)officialEnemyByGuid).sprite, null, null, 38, null, RigidBodyCollidesWithTileMap: true, RigidBodyCollidesWithOthers: true, RigidBodyCanBeCarried: true, RigidBodyCanBePushed: false, isFakePrefab: false, instantiateCorpseObject: false, officialEnemyByGuid.CorpseObject, EnemyHasNoShooter: true); AIActor component = m_CachedTargetObject.GetComponent(); if (!Object.op_Implicit((Object)(object)officialEnemyByGuid)) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for donor enemy is null!", false); } return; } if (Object.op_Implicit((Object)(object)((BraveBehaviour)component).aiAnimator)) { ExpandUtility.DuplicateComponent(((BraveBehaviour)component).aiAnimator, ((BraveBehaviour)officialEnemyByGuid).aiAnimator); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)component).spriteAnimator)) { ExpandUtility.DuplicateComponent(((BraveBehaviour)component).spriteAnimator, ((BraveBehaviour)officialEnemyByGuid).spriteAnimator); } tk2dSpriteCollectionData val3 = m_CachedTargetObject.AddComponent(); JsonUtility.FromJsonOverwrite(JsonUtility.ToJson((object)((BraveBehaviour)officialEnemyByGuid).sprite.Collection), (object)val3); Material val4 = new Material(((BraveBehaviour)officialEnemyByGuid).sprite.Collection.materials[0]); val4.mainTexture = (Texture)(object)expandSharedAssets1.LoadAsset("HotShotCultist_Collection"); val3.materials[0] = val4; tk2dSpriteDefinition[] spriteDefinitions = val3.spriteDefinitions; for (int i = 0; i < spriteDefinitions.Length; i++) { spriteDefinitions[i].material = val4; } ((BraveBehaviour)component).sprite.Collection = val3; ExpandUtility.DuplicateSpriteAnimation(m_CachedTargetObject, m_CachedTargetObject.AddComponent(), ((BraveBehaviour)officialEnemyByGuid).spriteAnimator.Library, val3); ((BraveBehaviour)component).spriteAnimator.Library = m_CachedTargetObject.GetComponent(); component.MovementSpeed = 3.75f; ((GameActor)component).HasShadow = true; ((GameActor)component).ActorShadowOffset = ((GameActor)officialEnemyByGuid).ActorShadowOffset; component.EnemySwitchState = officialEnemyByGuid.EnemySwitchState; ((GameActor)component).ShadowHeightOffGround = ((GameActor)officialEnemyByGuid).ShadowHeightOffGround; component.shadowHeightOffset = officialEnemyByGuid.shadowHeightOffset; component.TransferShadowToCorpse = false; component.shadowDeathType = (ShadowDeathType)10; ((GameActor)component).ShadowObject = null; component.PathableTiles = (CellTypes)2; ((BraveBehaviour)component).healthHaver.SetHealthMaximum(23f, (float?)null, false); ((BraveBehaviour)component).healthHaver.CursedMaximum = 69f; ExpandHideGunHandsOnDeath expandHideGunHandsOnDeath = m_CachedTargetObject.AddComponent(); expandHideGunHandsOnDeath.gunHands.Add(val); expandHideGunHandsOnDeath.gunHands.Add(val2); BehaviorSpeculator obj = m_CachedTargetObject.AddComponent(); obj.OtherBehaviors = new List(0); obj.OverrideBehaviors = new List { (OverrideBehaviorBase)new RedBarrelAwareness { AvoidRedBarrels = true, ShootRedBarrels = true, PushRedBarrels = true } }; obj.TargetBehaviors = new List { (TargetBehaviorBase)new TargetPlayerBehavior { Radius = 35f, LineOfSight = true, ObjectPermanence = true, SearchInterval = 0.25f, PauseOnTargetSwitch = false, PauseTime = 0.25f } }; obj.MovementBehaviors = new List { (MovementBehaviorBase)new SeekTargetBehavior { StopWhenInRange = true, CustomRange = 7f, LineOfSight = true, ReturnToSpawn = true, SpawnTetherDistance = 0f, PathInterval = 0.25f, SpecifyRange = false, MinActiveRange = 0f, MaxActiveRange = 0f } }; obj.AttackBehaviors = new List { (AttackBehaviorBase)new SequentialAttackBehaviorGroup { OverrideCooldowns = null, RunInClass = false, AttackBehaviors = new List { (AttackBehaviorBase)(object)new ExpandDashBehavior { gunHands = new List { val, val2 }, dashDirection = ExpandDashBehavior.DashDirection.Random, quantizeDirection = 45f, dashDistance = 5f, dashTime = 0.65f, postDashSpeed = 0f, doubleDashChance = 0f, avoidTarget = false, ShootPoint = null, bulletScript = null, fireAtDashStart = false, stopOnCollision = false, chargeAnim = null, dashAnim = "dodgeroll", doDodgeDustUp = true, warpDashAnimLength = true, hideShadow = false, hideGun = true, toggleTrailRenderer = false, enableShadowTrail = false, Cooldown = 0.25f, CooldownVariance = 0f, AttackCooldown = 0f, GlobalCooldown = 0f, InitialCooldown = 0f, InitialCooldownVariance = 0f, GroupName = null, GroupCooldown = 0f, MinRange = 0f, Range = 0f, MinWallDistance = 0f, MaxEnemiesInRoom = 0f, MinHealthThreshold = 0f, MaxHealthThreshold = 1f, HealthThresholds = new float[0], AccumulateHealthThresholds = true, targetAreaStyle = null, IsBlackPhantom = false, resetCooldownOnDamage = null, RequiresLineOfSight = false, MaxUsages = 0 }, (AttackBehaviorBase)(object)new ExpandDashBehavior { gunHands = new List { val, val2 }, dashDirection = ExpandDashBehavior.DashDirection.Random, quantizeDirection = 45f, dashDistance = 5f, dashTime = 0.65f, postDashSpeed = 0f, doubleDashChance = 0f, avoidTarget = false, ShootPoint = null, bulletScript = null, fireAtDashStart = false, stopOnCollision = false, chargeAnim = null, dashAnim = "dodgeroll", doDodgeDustUp = true, warpDashAnimLength = true, hideShadow = false, hideGun = true, toggleTrailRenderer = false, enableShadowTrail = false, Cooldown = 6f, CooldownVariance = 2f, AttackCooldown = 0f, GlobalCooldown = 0f, InitialCooldown = 6f, InitialCooldownVariance = 2f, GroupName = null, GroupCooldown = 0f, MinRange = 0f, Range = 0f, MinWallDistance = 0f, MaxEnemiesInRoom = 0f, MinHealthThreshold = 0f, MaxHealthThreshold = 1f, HealthThresholds = new float[0], AccumulateHealthThresholds = true, targetAreaStyle = null, IsBlackPhantom = false, resetCooldownOnDamage = new ResetCooldownOnDamage { Cooldown = true, AttackCooldown = false, GlobalCooldown = false, GroupCooldown = false, ResetCooldown = 4f }, RequiresLineOfSight = false, MaxUsages = 0 } } }, (AttackBehaviorBase)new AttackBehaviorGroup { ShareCooldowns = false, AttackBehaviors = new List { new AttackGroupItem { NickName = "Dual Wield Shoot", Probability = 1f, Behavior = (AttackBehaviorBase)new GunHandBasicShootBehavior { MaxUsages = 0, RequiresLineOfSight = false, resetCooldownOnDamage = null, IsBlackPhantom = false, targetAreaStyle = null, AccumulateHealthThresholds = true, HealthThresholds = new float[0], MaxHealthThreshold = 1f, MinHealthThreshold = 0f, MaxEnemiesInRoom = 0f, MinWallDistance = 0f, Range = 12f, MinRange = 0f, GroupCooldown = 0f, GroupName = null, InitialCooldownVariance = 0f, InitialCooldown = 0f, GlobalCooldown = 0f, AttackCooldown = 0.25f, CooldownVariance = 0f, Cooldown = 0.25f, GunHands = new List { val, val2 }, FireAllGuns = false, LineOfSight = true } } } } }; obj.InstantFirstTick = false; obj.TickInterval = 0.1f; obj.PostAwakenDelay = 0.5f; obj.RemoveDelayOnReinforce = false; obj.OverrideStartingFacingDirection = false; obj.StartingFacingDirection = -90f; obj.SkipTimingDifferentiator = false; ((ISerializedObject)obj).SerializedObjectReferences = new List { (Object)(object)val, (Object)(object)val2 }; ((ISerializedObject)obj).SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; ((ISerializedObject)obj).SerializedStateValues = new List(0); AddEnemyToDatabaseAndAmmonomicon(component, HotShotCultistGUID, ExpandAmmonomiconDatabase.HotShotCultist); officialEnemyByGuid = null; } public static void BuildHotShotShotgunManPrefab(AssetBundle expandSharedAssets1, out GameObject m_CachedTargetObject) { //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: 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_00d6: Expected O, but got Unknown //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Expected O, but got Unknown //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_0183: 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_0196: Expected O, but got Unknown //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Expected O, but got Unknown //IL_021c: Unknown result type (might be due to invalid IL or missing references) //IL_0244: Expected O, but got Unknown //IL_02e8: Unknown result type (might be due to invalid IL or missing references) //IL_02ef: Expected O, but got Unknown //IL_0390: Unknown result type (might be due to invalid IL or missing references) //IL_0395: Unknown result type (might be due to invalid IL or missing references) //IL_03cd: Unknown result type (might be due to invalid IL or missing references) //IL_03dd: Unknown result type (might be due to invalid IL or missing references) //IL_0453: Unknown result type (might be due to invalid IL or missing references) //IL_045f: Unknown result type (might be due to invalid IL or missing references) //IL_0464: Unknown result type (might be due to invalid IL or missing references) //IL_0474: Expected O, but got Unknown //IL_04d7: Unknown result type (might be due to invalid IL or missing references) //IL_04dc: Unknown result type (might be due to invalid IL or missing references) //IL_04e7: Unknown result type (might be due to invalid IL or missing references) //IL_04ee: Unknown result type (might be due to invalid IL or missing references) //IL_04f5: Unknown result type (might be due to invalid IL or missing references) //IL_0500: Unknown result type (might be due to invalid IL or missing references) //IL_0507: Unknown result type (might be due to invalid IL or missing references) //IL_0517: Expected O, but got Unknown //IL_0523: Unknown result type (might be due to invalid IL or missing references) //IL_052d: Expected O, but got Unknown //IL_052e: Unknown result type (might be due to invalid IL or missing references) //IL_0533: Unknown result type (might be due to invalid IL or missing references) //IL_053a: Unknown result type (might be due to invalid IL or missing references) //IL_0545: Unknown result type (might be due to invalid IL or missing references) //IL_054c: Unknown result type (might be due to invalid IL or missing references) //IL_0553: Unknown result type (might be due to invalid IL or missing references) //IL_055e: Unknown result type (might be due to invalid IL or missing references) //IL_0569: Unknown result type (might be due to invalid IL or missing references) //IL_0570: Unknown result type (might be due to invalid IL or missing references) //IL_057b: Unknown result type (might be due to invalid IL or missing references) //IL_058b: Expected O, but got Unknown //IL_0597: Unknown result type (might be due to invalid IL or missing references) //IL_059c: Unknown result type (might be due to invalid IL or missing references) //IL_05a3: Unknown result type (might be due to invalid IL or missing references) //IL_05aa: Unknown result type (might be due to invalid IL or missing references) //IL_05b1: Unknown result type (might be due to invalid IL or missing references) //IL_05b8: Unknown result type (might be due to invalid IL or missing references) //IL_05bf: Unknown result type (might be due to invalid IL or missing references) //IL_05c6: Unknown result type (might be due to invalid IL or missing references) //IL_05d2: Unknown result type (might be due to invalid IL or missing references) //IL_05dd: Unknown result type (might be due to invalid IL or missing references) //IL_05e8: Unknown result type (might be due to invalid IL or missing references) //IL_05f3: Unknown result type (might be due to invalid IL or missing references) //IL_05fe: Unknown result type (might be due to invalid IL or missing references) //IL_0609: Unknown result type (might be due to invalid IL or missing references) //IL_0614: Unknown result type (might be due to invalid IL or missing references) //IL_061f: Unknown result type (might be due to invalid IL or missing references) //IL_0626: Unknown result type (might be due to invalid IL or missing references) //IL_0631: Unknown result type (might be due to invalid IL or missing references) //IL_063c: Unknown result type (might be due to invalid IL or missing references) //IL_0647: Unknown result type (might be due to invalid IL or missing references) //IL_0652: Unknown result type (might be due to invalid IL or missing references) //IL_065d: Unknown result type (might be due to invalid IL or missing references) //IL_0668: Unknown result type (might be due to invalid IL or missing references) //IL_0682: Unknown result type (might be due to invalid IL or missing references) //IL_0689: Unknown result type (might be due to invalid IL or missing references) //IL_0695: Expected O, but got Unknown AIActor component = RedShotGunMan.GetComponent(); GameObject corpseObject = null; m_CachedTargetObject = expandSharedAssets1.LoadAsset("HotShotShotgunKin"); GameObject gameObject = ((Component)m_CachedTargetObject.transform.Find("left hand")).gameObject; GameObject gameObject2 = ((Component)m_CachedTargetObject.transform.Find("right hand")).gameObject; GunHandController val = gameObject.AddComponent(); GunHandController val2 = gameObject2.AddComponent(); val.GunId = HotShotShotGun.HotShotShotGunID; val.UsesOverrideProjectileData = true; val.OverrideProjectileData = ((Component)component).gameObject.GetComponent().Bullets[0].ProjectileData; val.GunFlipMaster = val2; val.handObject = ((BraveBehaviour)component).aiShooter.handObject; val.gunBehindBody = new DirectionalAnimationBoolSixWay { Back = true, BackRight = false, ForwardRight = false, Forward = false, ForwardLeft = true, BackLeft = true }; val.gunBehindBodyEight = new DirectionalAnimationBoolEightWay(); val.isEightWay = false; val.PreFireDelay = 0.1f; val.NumShots = 1; val.ShotCooldown = 1f; val.Cooldown = 2.5f; val.RampBullets = false; val.RampStartHeight = 2f; val.RampTime = 1f; val2.GunId = HotShotShotGun.HotShotShotGunID; val2.UsesOverrideProjectileData = true; val2.OverrideProjectileData = val.OverrideProjectileData; val2.handObject = ((BraveBehaviour)component).aiShooter.handObject; val2.gunBehindBody = new DirectionalAnimationBoolSixWay { Back = true, BackRight = true, ForwardRight = true, Forward = false, ForwardLeft = false, BackLeft = false }; val2.gunBehindBodyEight = new DirectionalAnimationBoolEightWay(); val2.isEightWay = false; val2.PreFireDelay = 0.2f; val2.NumShots = 1; val2.ShotCooldown = 0.8f; val2.Cooldown = 3f; val2.RampBullets = false; val2.RampStartHeight = 2f; val2.RampTime = 1f; ExpandUtility.DuplicateRigidBody(m_CachedTargetObject.AddComponent(), ((BraveBehaviour)component).specRigidbody); ExpandUtility.GenerateAIActorTemplate(m_CachedTargetObject, out corpseObject, "HotShot Shotgun Kin", HotShotShotgunKinGUID, (tk2dSprite)((BraveBehaviour)component).sprite, null, null, 38, null, RigidBodyCollidesWithTileMap: true, RigidBodyCollidesWithOthers: true, RigidBodyCanBeCarried: true, RigidBodyCanBePushed: false, isFakePrefab: false, instantiateCorpseObject: false, component.CorpseObject, EnemyHasNoShooter: true); AIActor component2 = m_CachedTargetObject.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for donor enemy is null!", false); } return; } if (Object.op_Implicit((Object)(object)((BraveBehaviour)component2).aiAnimator)) { ExpandUtility.DuplicateComponent(((BraveBehaviour)component2).aiAnimator, ((BraveBehaviour)component).aiAnimator); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)component2).spriteAnimator)) { ExpandUtility.DuplicateComponent(((BraveBehaviour)component2).spriteAnimator, ((BraveBehaviour)component).spriteAnimator); } tk2dSpriteCollectionData val3 = m_CachedTargetObject.AddComponent(); JsonUtility.FromJsonOverwrite(JsonUtility.ToJson((object)((BraveBehaviour)component).sprite.Collection), (object)val3); Material val4 = new Material(((BraveBehaviour)EnemyDatabase.GetOrLoadByGuid("01972dee89fc4404a5c408d50007dad5")).sprite.Collection.materials[0]); val4.mainTexture = (Texture)(object)expandSharedAssets1.LoadAsset("HotShotShotgunMan"); val3.materials[0] = val4; tk2dSpriteDefinition[] spriteDefinitions = val3.spriteDefinitions; for (int i = 0; i < spriteDefinitions.Length; i++) { spriteDefinitions[i].material = val4; } ((BraveBehaviour)component2).sprite.Collection = val3; ExpandUtility.DuplicateSpriteAnimation(m_CachedTargetObject, m_CachedTargetObject.AddComponent(), ((BraveBehaviour)component).spriteAnimator.Library, val3); ((BraveBehaviour)component2).spriteAnimator.Library = m_CachedTargetObject.GetComponent(); component2.optionalPalette = null; component2.MovementSpeed = 2f; ((GameActor)component2).HasShadow = true; ((GameActor)component2).ActorShadowOffset = ((GameActor)component).ActorShadowOffset; component2.EnemySwitchState = component.EnemySwitchState; ((GameActor)component2).ShadowHeightOffGround = ((GameActor)component).ShadowHeightOffGround; component2.shadowHeightOffset = component.shadowHeightOffset; component2.TransferShadowToCorpse = false; component2.shadowDeathType = (ShadowDeathType)10; ((GameActor)component2).ShadowObject = null; component2.PathableTiles = (CellTypes)2; ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(30f, (float?)null, false); ((BraveBehaviour)component2).healthHaver.CursedMaximum = 90f; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = true; ((BraveBehaviour)component2).healthHaver.chanceToSpawnBulletScript = 0.3f; ((BraveBehaviour)component2).healthHaver.overrideDeathAnimBulletScript = "burst"; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = true; ((BraveBehaviour)component2).healthHaver.bulletScriptType = (BulletScriptType)2; ((BraveBehaviour)component2).healthHaver.bulletScript = new BulletScriptSelector { scriptTypeName = "BulletShotgunManDeathBurst1" }; ExpandUtility.DuplicateComponent(((Component)component2).gameObject.AddComponent(), ((Component)component).gameObject.GetComponent()); ExpandHideGunHandsOnDeath expandHideGunHandsOnDeath = m_CachedTargetObject.AddComponent(); expandHideGunHandsOnDeath.gunHands.Add(val); expandHideGunHandsOnDeath.gunHands.Add(val2); BehaviorSpeculator obj = m_CachedTargetObject.AddComponent(); obj.OtherBehaviors = new List(0); obj.OverrideBehaviors = new List(0); obj.TargetBehaviors = new List { (TargetBehaviorBase)new TargetPlayerBehavior { Radius = 35f, LineOfSight = true, ObjectPermanence = true, SearchInterval = 0.25f, PauseOnTargetSwitch = false, PauseTime = 0.25f } }; obj.MovementBehaviors = new List { (MovementBehaviorBase)new RideInCartsBehavior(), (MovementBehaviorBase)new SeekTargetBehavior { StopWhenInRange = true, CustomRange = 7f, LineOfSight = true, ReturnToSpawn = true, SpawnTetherDistance = 0f, PathInterval = 0.25f, SpecifyRange = false, MinActiveRange = 0f, MaxActiveRange = 0f } }; obj.AttackBehaviors = new List { (AttackBehaviorBase)new GunHandBasicShootBehavior { MaxUsages = 0, RequiresLineOfSight = false, resetCooldownOnDamage = null, IsBlackPhantom = false, targetAreaStyle = null, AccumulateHealthThresholds = true, HealthThresholds = new float[0], MaxHealthThreshold = 1f, MinHealthThreshold = 0f, MaxEnemiesInRoom = 0f, MinWallDistance = 0f, Range = 0f, MinRange = 0f, GroupCooldown = 0f, GroupName = null, InitialCooldownVariance = 0f, InitialCooldown = 0f, GlobalCooldown = 0f, AttackCooldown = 0f, CooldownVariance = 0f, Cooldown = 0f, GunHands = new List { val, val2 }, FireAllGuns = false, LineOfSight = true } }; obj.InstantFirstTick = false; obj.TickInterval = 0.1f; obj.PostAwakenDelay = 0.5f; obj.RemoveDelayOnReinforce = false; obj.OverrideStartingFacingDirection = false; obj.StartingFacingDirection = -90f; obj.SkipTimingDifferentiator = false; ((ISerializedObject)obj).SerializedObjectReferences = new List { (Object)(object)val, (Object)(object)val2 }; ((ISerializedObject)obj).SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; ((ISerializedObject)obj).SerializedStateValues = new List(0); AddEnemyToDatabaseAndAmmonomicon(component2, HotShotShotgunKinGUID, ExpandAmmonomiconDatabase.HotShotShotgunKin); component = null; } public static void BuildHotShotBulletManPrefab(AssetBundle expandSharedAssets1, out GameObject m_CachedTargetObject) { //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0107: 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_0115: Unknown result type (might be due to invalid IL or missing references) //IL_0121: Expected O, but got Unknown //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Expected O, but got Unknown //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: 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_01d5: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: Unknown result type (might be due to invalid IL or missing references) //IL_01ea: Unknown result type (might be due to invalid IL or missing references) //IL_01f6: Expected O, but got Unknown //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0202: Expected O, but got Unknown //IL_026a: Unknown result type (might be due to invalid IL or missing references) //IL_029b: Expected O, but got Unknown //IL_02cf: Unknown result type (might be due to invalid IL or missing references) //IL_034a: Unknown result type (might be due to invalid IL or missing references) //IL_0351: Expected O, but got Unknown //IL_040d: Unknown result type (might be due to invalid IL or missing references) //IL_0412: Unknown result type (might be due to invalid IL or missing references) //IL_0419: Unknown result type (might be due to invalid IL or missing references) //IL_0420: Unknown result type (might be due to invalid IL or missing references) //IL_042c: Expected O, but got Unknown //IL_0438: Unknown result type (might be due to invalid IL or missing references) //IL_043d: Unknown result type (might be due to invalid IL or missing references) //IL_0448: Unknown result type (might be due to invalid IL or missing references) //IL_044f: Unknown result type (might be due to invalid IL or missing references) //IL_0456: Unknown result type (might be due to invalid IL or missing references) //IL_0461: Unknown result type (might be due to invalid IL or missing references) //IL_0468: Unknown result type (might be due to invalid IL or missing references) //IL_0478: Expected O, but got Unknown //IL_0484: Unknown result type (might be due to invalid IL or missing references) //IL_048e: Expected O, but got Unknown //IL_048f: Unknown result type (might be due to invalid IL or missing references) //IL_0494: Unknown result type (might be due to invalid IL or missing references) //IL_049b: Unknown result type (might be due to invalid IL or missing references) //IL_04a6: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04b4: Unknown result type (might be due to invalid IL or missing references) //IL_04bf: Unknown result type (might be due to invalid IL or missing references) //IL_04ca: Unknown result type (might be due to invalid IL or missing references) //IL_04d1: Unknown result type (might be due to invalid IL or missing references) //IL_04dc: Unknown result type (might be due to invalid IL or missing references) //IL_04ec: Expected O, but got Unknown //IL_04f8: Unknown result type (might be due to invalid IL or missing references) //IL_04fd: Unknown result type (might be due to invalid IL or missing references) //IL_0504: Unknown result type (might be due to invalid IL or missing references) //IL_050b: Unknown result type (might be due to invalid IL or missing references) //IL_0512: Unknown result type (might be due to invalid IL or missing references) //IL_0519: Unknown result type (might be due to invalid IL or missing references) //IL_0520: Unknown result type (might be due to invalid IL or missing references) //IL_0527: Unknown result type (might be due to invalid IL or missing references) //IL_0533: Unknown result type (might be due to invalid IL or missing references) //IL_053e: Unknown result type (might be due to invalid IL or missing references) //IL_0549: Unknown result type (might be due to invalid IL or missing references) //IL_0554: Unknown result type (might be due to invalid IL or missing references) //IL_055f: Unknown result type (might be due to invalid IL or missing references) //IL_056a: Unknown result type (might be due to invalid IL or missing references) //IL_0575: Unknown result type (might be due to invalid IL or missing references) //IL_0580: Unknown result type (might be due to invalid IL or missing references) //IL_0587: Unknown result type (might be due to invalid IL or missing references) //IL_0592: Unknown result type (might be due to invalid IL or missing references) //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_05a8: Unknown result type (might be due to invalid IL or missing references) //IL_05b3: Unknown result type (might be due to invalid IL or missing references) //IL_05be: Unknown result type (might be due to invalid IL or missing references) //IL_05c9: Unknown result type (might be due to invalid IL or missing references) //IL_05e4: Unknown result type (might be due to invalid IL or missing references) //IL_05eb: Unknown result type (might be due to invalid IL or missing references) //IL_05f7: Expected O, but got Unknown AIActor officialEnemyByGuid = GetOfficialEnemyByGuid("88b6b6a93d4b4234a67844ef4728382c"); AIActor officialEnemyByGuid2 = GetOfficialEnemyByGuid("2ebf8ef6728648089babb507dec4edb7"); GameObject corpseObject = null; m_CachedTargetObject = expandSharedAssets1.LoadAsset("HotShotBulletKin"); GameObject gameObject = ((Component)m_CachedTargetObject.transform.Find("left hand")).gameObject; GameObject gameObject2 = ((Component)m_CachedTargetObject.transform.Find("right hand")).gameObject; GunHandController val = gameObject.AddComponent(); GunHandController val2 = gameObject2.AddComponent(); ExpandUtility.DuplicateRigidBody(m_CachedTargetObject.AddComponent(), ((BraveBehaviour)officialEnemyByGuid).specRigidbody); val.GunId = 38; val.UsesOverrideProjectileData = true; val.OverrideProjectile = ((Component)((Component)officialEnemyByGuid2).gameObject.transform.Find("left hand")).GetComponent().OverrideProjectile; val.OverrideProjectileData = ((Component)((Component)officialEnemyByGuid2).gameObject.transform.Find("left hand")).GetComponent().OverrideProjectileData; val.GunFlipMaster = val2; val.handObject = ((BraveBehaviour)officialEnemyByGuid).aiShooter.handObject; val.gunBehindBody = new DirectionalAnimationBoolSixWay { Back = true, BackRight = false, ForwardRight = false, Forward = false, ForwardLeft = true, BackLeft = true }; val.gunBehindBodyEight = new DirectionalAnimationBoolEightWay(); val.isEightWay = false; val.PreFireDelay = 0f; val.NumShots = 1; val.ShotCooldown = 0.4f; val.Cooldown = 2f; val.RampBullets = false; val.RampStartHeight = 2f; val.RampTime = 1f; val2.GunId = 38; val2.UsesOverrideProjectileData = true; val2.OverrideProjectile = val.OverrideProjectile; val2.OverrideProjectileData = val.OverrideProjectileData; val2.handObject = ((BraveBehaviour)officialEnemyByGuid).aiShooter.handObject; val2.gunBehindBody = new DirectionalAnimationBoolSixWay { Back = true, BackRight = true, ForwardRight = true, Forward = false, ForwardLeft = false, BackLeft = false }; val2.gunBehindBodyEight = new DirectionalAnimationBoolEightWay(); val2.isEightWay = false; val2.PreFireDelay = 0f; val2.NumShots = 1; val2.ShotCooldown = 0.4f; val2.Cooldown = 2f; val2.RampBullets = false; val2.RampStartHeight = 2f; val2.RampTime = 1f; ExpandUtility.GenerateAIActorTemplate(m_CachedTargetObject, out corpseObject, "HotShot Bullet Kin", HotShotBulletKinGUID, (tk2dSprite)((BraveBehaviour)officialEnemyByGuid).sprite, null, null, 38, null, RigidBodyCollidesWithTileMap: true, RigidBodyCollidesWithOthers: true, RigidBodyCanBeCarried: true, RigidBodyCanBePushed: false, isFakePrefab: false, instantiateCorpseObject: false, GetOfficialEnemyByGuid("88b6b6a93d4b4234a67844ef4728382c").CorpseObject, EnemyHasNoShooter: true); AIActor component = m_CachedTargetObject.GetComponent(); if (!Object.op_Implicit((Object)(object)officialEnemyByGuid)) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for donor enemy is null!", false); } return; } component.MovementSpeed = 2f; component.PathableTiles = (CellTypes)2; if (Object.op_Implicit((Object)(object)((BraveBehaviour)component).aiAnimator)) { ExpandUtility.DuplicateComponent(((BraveBehaviour)component).aiAnimator, ((BraveBehaviour)officialEnemyByGuid).aiAnimator); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)component).spriteAnimator)) { ExpandUtility.DuplicateComponent(((BraveBehaviour)component).spriteAnimator, ((BraveBehaviour)officialEnemyByGuid).spriteAnimator); } tk2dSpriteCollectionData val3 = m_CachedTargetObject.AddComponent(); JsonUtility.FromJsonOverwrite(JsonUtility.ToJson((object)((BraveBehaviour)officialEnemyByGuid).sprite.Collection), (object)val3); Material val4 = new Material(((BraveBehaviour)officialEnemyByGuid).sprite.Collection.materials[0]); val4.mainTexture = (Texture)(object)expandSharedAssets1.LoadAsset("HotShotBulletMan_Collection"); val3.materials[0] = val4; tk2dSpriteDefinition[] spriteDefinitions = val3.spriteDefinitions; for (int i = 0; i < spriteDefinitions.Length; i++) { spriteDefinitions[i].material = val4; } ((BraveBehaviour)component).sprite.Collection = val3; ExpandUtility.DuplicateSpriteAnimation(m_CachedTargetObject, m_CachedTargetObject.AddComponent(), ((BraveBehaviour)officialEnemyByGuid).spriteAnimator.Library, val3); ((BraveBehaviour)component).spriteAnimator.Library = m_CachedTargetObject.GetComponent(); ExpandHideGunHandsOnDeath expandHideGunHandsOnDeath = m_CachedTargetObject.AddComponent(); expandHideGunHandsOnDeath.gunHands.Add(val); expandHideGunHandsOnDeath.gunHands.Add(val2); BehaviorSpeculator obj = m_CachedTargetObject.AddComponent(); obj.OtherBehaviors = new List(0); obj.OverrideBehaviors = new List { (OverrideBehaviorBase)new RedBarrelAwareness { AvoidRedBarrels = true, ShootRedBarrels = true, PushRedBarrels = true } }; obj.TargetBehaviors = new List { (TargetBehaviorBase)new TargetPlayerBehavior { Radius = 35f, LineOfSight = true, ObjectPermanence = true, SearchInterval = 0.25f, PauseOnTargetSwitch = false, PauseTime = 0.25f } }; obj.MovementBehaviors = new List { (MovementBehaviorBase)new RideInCartsBehavior(), (MovementBehaviorBase)new SeekTargetBehavior { StopWhenInRange = true, CustomRange = 7f, LineOfSight = true, ReturnToSpawn = true, SpawnTetherDistance = 0f, PathInterval = 0.25f, SpecifyRange = false, MinActiveRange = 0f, MaxActiveRange = 0f } }; obj.AttackBehaviors = new List { (AttackBehaviorBase)new GunHandBasicShootBehavior { MaxUsages = 0, RequiresLineOfSight = false, resetCooldownOnDamage = null, IsBlackPhantom = false, targetAreaStyle = null, AccumulateHealthThresholds = true, HealthThresholds = new float[0], MaxHealthThreshold = 1f, MinHealthThreshold = 0f, MaxEnemiesInRoom = 0f, MinWallDistance = 0f, Range = 0f, MinRange = 0f, GroupCooldown = 0f, GroupName = null, InitialCooldownVariance = 0f, InitialCooldown = 0f, GlobalCooldown = 0f, AttackCooldown = 0f, CooldownVariance = 0f, Cooldown = 0f, GunHands = new List { val, val2 }, FireAllGuns = false, LineOfSight = true } }; obj.InstantFirstTick = false; obj.TickInterval = 0.1f; obj.PostAwakenDelay = 0.5f; obj.RemoveDelayOnReinforce = false; obj.OverrideStartingFacingDirection = false; obj.StartingFacingDirection = -90f; obj.SkipTimingDifferentiator = false; ((ISerializedObject)obj).SerializedObjectReferences = new List { (Object)(object)val, (Object)(object)val2 }; ((ISerializedObject)obj).SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; ((ISerializedObject)obj).SerializedStateValues = new List(0); AddEnemyToDatabaseAndAmmonomicon(component, HotShotBulletKinGUID, ExpandAmmonomiconDatabase.HotShotBulletKin); officialEnemyByGuid = null; } public static void BuildRatGrenadePrefab(out GameObject m_CachedTargetObject, bool isFakePrefab = true) { //IL_008e: Unknown result type (might be due to invalid IL or missing references) m_CachedTargetObject = Object.Instantiate(((Component)GetOfficialEnemyByGuid("14ea47ff46b54bb4a98f91ffcffb656d")).gameObject); m_CachedTargetObject.SetActive(false); ((Object)m_CachedTargetObject).name = "Grenade Rat"; ExplodeOnDeath obj = m_CachedTargetObject.AddComponent(); obj.explosionData = ExpandUtility.GenerateExplosionData(); obj.immuneToIBombApp = false; obj.LinearChainExplosion = false; ((OnDeathBehavior)obj).deathType = (DeathType)1; ((OnDeathBehavior)obj).preDeathDelay = 0.1f; AIActor component = RatGrenadePrefab.GetComponent(); ((GameActor)component).ActorName = "Grenade Rat"; ((GameActor)component).OverrideDisplayName = "Grenade Rat"; component.EnemyGuid = RatGrenadeGUID; component.EnemyId = Random.Range(10000, 100000); component.CorpseObject = null; Object.Destroy((Object)(object)((Component)component).gameObject.GetComponent()); tk2dSprite component2 = m_CachedTargetObject.GetComponent(); tk2dSpriteAnimator component3 = m_CachedTargetObject.GetComponent(); ((tk2dBaseSprite)component2).Collection = ((tk2dBaseSprite)ExpandPrefabs.MouseTrap1.GetComponent()).Collection; component3.Library = ExpandPrefabs.MouseTrap1.GetComponent().Library; component3.DefaultClipId = 19; ((tk2dBaseSprite)component2).SetSprite("rat_grenade_move_right_001"); AIAnimator component4 = m_CachedTargetObject.GetComponent(); component4.IdleAnimation.Prefix = "rat_grenade_idle"; component4.MoveAnimation.Prefix = "rat_grenade_move"; component4.OtherAnimations = new List(0); ISerializedObject component5 = (ISerializedObject)(object)m_CachedTargetObject.GetComponent(); if (component5 != null) { component5.SerializedObjectReferences = new List(0); component5.SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; component5.SerializedStateValues = new List(0); } AddEnemyToDatabase(m_CachedTargetObject, RatGrenadeGUID, IsNormalEnemy: true); if (isFakePrefab) { FakePrefab.MarkAsFakePrefab(m_CachedTargetObject); } Object.DontDestroyOnLoad((Object)(object)m_CachedTargetObject); } public static void BuildBabyGoodHammerPrefab(AssetBundle expandSharedAssets1, out GameObject m_CachedTargetObject) { //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: Unknown result type (might be due to invalid IL or missing references) //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_01ed: 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_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_0200: Unknown result type (might be due to invalid IL or missing references) //IL_020b: 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_0219: Unknown result type (might be due to invalid IL or missing references) //IL_0220: Unknown result type (might be due to invalid IL or missing references) //IL_0228: Unknown result type (might be due to invalid IL or missing references) //IL_0230: Unknown result type (might be due to invalid IL or missing references) //IL_0237: Unknown result type (might be due to invalid IL or missing references) //IL_023e: Unknown result type (might be due to invalid IL or missing references) //IL_0245: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Unknown result type (might be due to invalid IL or missing references) //IL_0258: Expected O, but got Unknown //IL_0264: Unknown result type (might be due to invalid IL or missing references) //IL_0269: Unknown result type (might be due to invalid IL or missing references) //IL_026b: Unknown result type (might be due to invalid IL or missing references) //IL_0270: Unknown result type (might be due to invalid IL or missing references) //IL_0272: Unknown result type (might be due to invalid IL or missing references) //IL_0277: Unknown result type (might be due to invalid IL or missing references) //IL_027e: Unknown result type (might be due to invalid IL or missing references) //IL_0285: Unknown result type (might be due to invalid IL or missing references) //IL_0290: Unknown result type (might be due to invalid IL or missing references) //IL_0297: Unknown result type (might be due to invalid IL or missing references) //IL_029e: 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_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) //IL_02bc: Unknown result type (might be due to invalid IL or missing references) //IL_02c3: Unknown result type (might be due to invalid IL or missing references) //IL_02ca: Unknown result type (might be due to invalid IL or missing references) //IL_02d1: Unknown result type (might be due to invalid IL or missing references) //IL_02dd: Expected O, but got Unknown //IL_041a: Unknown result type (might be due to invalid IL or missing references) //IL_041f: Unknown result type (might be due to invalid IL or missing references) //IL_042a: Unknown result type (might be due to invalid IL or missing references) //IL_0431: Unknown result type (might be due to invalid IL or missing references) //IL_0438: Unknown result type (might be due to invalid IL or missing references) //IL_0443: Unknown result type (might be due to invalid IL or missing references) //IL_044a: Unknown result type (might be due to invalid IL or missing references) //IL_045a: Expected O, but got Unknown //IL_0466: Unknown result type (might be due to invalid IL or missing references) //IL_046b: Unknown result type (might be due to invalid IL or missing references) //IL_0476: Unknown result type (might be due to invalid IL or missing references) //IL_047d: Unknown result type (might be due to invalid IL or missing references) //IL_0488: Unknown result type (might be due to invalid IL or missing references) //IL_0493: Unknown result type (might be due to invalid IL or missing references) //IL_049e: Unknown result type (might be due to invalid IL or missing references) //IL_04a9: Unknown result type (might be due to invalid IL or missing references) //IL_04b4: Unknown result type (might be due to invalid IL or missing references) //IL_04bf: Unknown result type (might be due to invalid IL or missing references) //IL_04ca: Unknown result type (might be due to invalid IL or missing references) //IL_04d6: Unknown result type (might be due to invalid IL or missing references) //IL_04dd: Unknown result type (might be due to invalid IL or missing references) //IL_04ed: Expected O, but got Unknown //IL_02f6: Unknown result type (might be due to invalid IL or missing references) //IL_031d: 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_0330: Expected O, but got Unknown //IL_0333: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_0393: Expected O, but got Unknown //IL_0396: Unknown result type (might be due to invalid IL or missing references) AIActor officialEnemyByGuid = GetOfficialEnemyByGuid("01972dee89fc4404a5c408d50007dad5"); GameObject corpseObject = null; m_CachedTargetObject = expandSharedAssets1.LoadAsset("EXBabyGoodHammer"); List spriteNameList = new List { "babygoodhammer_idle_down_01", "babygoodhammer_idle_down_02", "babygoodhammer_idle_down_03", "babygoodhammer_idle_down_04", "babygoodhammer_idle_down_05", "babygoodhammer_idle_down_06" }; List spriteNameList2 = new List { "babygoodhammer_move_left_02", "babygoodhammer_move_left_02" }; List spriteNameList3 = new List { "babygoodhammer_move_right_02", "babygoodhammer_move_right_02" }; SpriteSerializer.AddSpriteToObject(m_CachedTargetObject, BabyGoodHammerCollection, "babygoodhammer_idle_down_01", (PerpendicularState)0); ExpandUtility.GenerateSpriteAnimator(m_CachedTargetObject, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: true, playAutomatically: false, IsFrameBlendedAnimation: false, 0f, 6f); tk2dSpriteAnimator component = m_CachedTargetObject.GetComponent(); ExpandUtility.AddAnimation(component, BabyGoodHammerCollection.GetComponent(), spriteNameList, "Hammer_Idle_Down", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BabyGoodHammerCollection.GetComponent(), spriteNameList2, "Hammer_Move_Left", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BabyGoodHammerCollection.GetComponent(), spriteNameList3, "Hammer_Move_Right", (WrapMode)0, 6); ExpandUtility.GenerateAIActorTemplate(m_CachedTargetObject, out corpseObject, "Baby Good Hammer", HammerCompanionGUID, null, null, null, 38, null, RigidBodyCollidesWithTileMap: true, RigidBodyCollidesWithOthers: true, RigidBodyCanBeCarried: true, RigidBodyCanBePushed: false, isFakePrefab: false, instantiateCorpseObject: false, officialEnemyByGuid.CorpseObject, EnemyHasNoShooter: true); AIActor component2 = m_CachedTargetObject.GetComponent(); if (!Object.op_Implicit((Object)(object)officialEnemyByGuid)) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for donor enemy is null!", false); } return; } component2.MovementSpeed = 5f; ((GameActor)component2).SetIsFlying(true, "Flying Enemy", true, true); component2.IgnoreForRoomClear = true; ((BraveBehaviour)component2).specRigidbody.PixelColliders.Clear(); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)3, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 1, ManualOffsetY = 2, ManualWidth = 19, ManualHeight = 11, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)2, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 8, ManualOffsetY = 1, ManualWidth = 12, ManualHeight = 16, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); if (Object.op_Implicit((Object)(object)((BraveBehaviour)component2).aiAnimator)) { ((BraveBehaviour)component2).aiAnimator.facingType = (FacingType)2; ((BraveBehaviour)component2).aiAnimator.faceSouthWhenStopped = false; ((BraveBehaviour)component2).aiAnimator.faceTargetWhenStopped = false; ((BraveBehaviour)component2).aiAnimator.HitType = (HitStateType)0; AIAnimator aiAnimator = ((BraveBehaviour)component2).aiAnimator; DirectionalAnimation val = new DirectionalAnimation(); val.Type = (DirectionType)4; val.Prefix = "idle"; val.AnimNames = new string[4] { "Hammer_Idle_Down", "Hammer_Idle_Down", "Hammer_Idle_Down", "Hammer_Idle_Down" }; val.Flipped = (FlipType[])(object)new FlipType[4]; aiAnimator.IdleAnimation = val; AIAnimator aiAnimator2 = ((BraveBehaviour)component2).aiAnimator; val = new DirectionalAnimation(); val.Type = (DirectionType)4; val.Prefix = "run"; val.AnimNames = new string[4] { "Hammer_Idle_Down", "Hammer_Move_Right", "Hammer_Move_Left", "Hammer_Idle_Down" }; val.Flipped = (FlipType[])(object)new FlipType[4]; aiAnimator2.MoveAnimation = val; } BehaviorSpeculator obj = m_CachedTargetObject.AddComponent(); obj.OverrideBehaviors = new List(0); obj.AttackBehaviors = new List(0); obj.OtherBehaviors = new List(0); obj.TargetBehaviors = new List { (TargetBehaviorBase)new TargetPlayerBehavior { Radius = 35f, LineOfSight = true, ObjectPermanence = true, SearchInterval = 0.25f, PauseOnTargetSwitch = false, PauseTime = 0.25f } }; obj.MovementBehaviors = new List { (MovementBehaviorBase)new CompanionFollowPlayerBehavior { PathInterval = 0.25f, DisableInCombat = false, IdealRadius = 5f, CatchUpRadius = 9.5f, CatchUpAccelTime = 3f, CatchUpSpeed = 6f, CatchUpMaxSpeed = 10f, CatchUpAnimation = string.Empty, CatchUpOutAnimation = string.Empty, IdleAnimations = new string[0], CanRollOverPits = false, RollAnimation = string.Empty } }; obj.InstantFirstTick = false; obj.TickInterval = 0.1f; obj.PostAwakenDelay = 0f; obj.RemoveDelayOnReinforce = false; obj.OverrideStartingFacingDirection = false; obj.StartingFacingDirection = -90f; obj.SkipTimingDifferentiator = false; ((ISerializedObject)obj).SerializedObjectReferences = new List(0); ((ISerializedObject)obj).SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; ((ISerializedObject)obj).SerializedStateValues = new List(0); ExpandUtility.MakeCompanion(component2, null, null, targetIsNewAIActor: true, ApplyCharmedColorOverride: false, blocksEnemyBullets: true, ImmuneToAllDamage: true); AddEnemyToDatabase(m_CachedTargetObject, HammerCompanionGUID); BabyGoodHammer.CompanionGuid = HammerCompanionGUID; officialEnemyByGuid = null; } public static void BuildBootlegBullatPrefab(AssetBundle expandSharedAssets1, out GameObject m_CachedTargetObject) { //IL_0236: Unknown result type (might be due to invalid IL or missing references) //IL_023b: Unknown result type (might be due to invalid IL or missing references) //IL_023d: 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_0244: Unknown result type (might be due to invalid IL or missing references) //IL_0249: Unknown result type (might be due to invalid IL or missing references) //IL_0250: Unknown result type (might be due to invalid IL or missing references) //IL_0257: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Unknown result type (might be due to invalid IL or missing references) //IL_0269: Unknown result type (might be due to invalid IL or missing references) //IL_0270: Unknown result type (might be due to invalid IL or missing references) //IL_0277: Unknown result type (might be due to invalid IL or missing references) //IL_027f: Unknown result type (might be due to invalid IL or missing references) //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_028d: Unknown result type (might be due to invalid IL or missing references) //IL_0294: Unknown result type (might be due to invalid IL or missing references) //IL_029b: Unknown result type (might be due to invalid IL or missing references) //IL_02a2: Unknown result type (might be due to invalid IL or missing references) //IL_02ae: Expected O, but got Unknown //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Unknown result type (might be due to invalid IL or missing references) //IL_02c5: Unknown result type (might be due to invalid IL or missing references) //IL_02c7: Unknown result type (might be due to invalid IL or missing references) //IL_02cc: Unknown result type (might be due to invalid IL or missing references) //IL_02d3: Unknown result type (might be due to invalid IL or missing references) //IL_02da: Unknown result type (might be due to invalid IL or missing references) //IL_02e5: Unknown result type (might be due to invalid IL or missing references) //IL_02ec: Unknown result type (might be due to invalid IL or missing references) //IL_02f3: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: Unknown result type (might be due to invalid IL or missing references) //IL_0302: Unknown result type (might be due to invalid IL or missing references) //IL_030a: Unknown result type (might be due to invalid IL or missing references) //IL_0311: Unknown result type (might be due to invalid IL or missing references) //IL_0318: Unknown result type (might be due to invalid IL or missing references) //IL_031f: Unknown result type (might be due to invalid IL or missing references) //IL_0326: Unknown result type (might be due to invalid IL or missing references) //IL_0332: Expected O, but got Unknown //IL_04d8: Unknown result type (might be due to invalid IL or missing references) //IL_04dd: Unknown result type (might be due to invalid IL or missing references) //IL_04e8: Unknown result type (might be due to invalid IL or missing references) //IL_04ef: Unknown result type (might be due to invalid IL or missing references) //IL_04f6: Unknown result type (might be due to invalid IL or missing references) //IL_0501: Unknown result type (might be due to invalid IL or missing references) //IL_0508: Unknown result type (might be due to invalid IL or missing references) //IL_0518: Expected O, but got Unknown //IL_0524: Unknown result type (might be due to invalid IL or missing references) //IL_0529: Unknown result type (might be due to invalid IL or missing references) //IL_0530: Unknown result type (might be due to invalid IL or missing references) //IL_053b: Unknown result type (might be due to invalid IL or missing references) //IL_0542: Unknown result type (might be due to invalid IL or missing references) //IL_0549: Unknown result type (might be due to invalid IL or missing references) //IL_0554: Unknown result type (might be due to invalid IL or missing references) //IL_055f: Unknown result type (might be due to invalid IL or missing references) //IL_0566: Unknown result type (might be due to invalid IL or missing references) //IL_0571: Unknown result type (might be due to invalid IL or missing references) //IL_0581: Expected O, but got Unknown //IL_0349: Unknown result type (might be due to invalid IL or missing references) //IL_036d: Unknown result type (might be due to invalid IL or missing references) //IL_0378: Unknown result type (might be due to invalid IL or missing references) //IL_037f: Expected O, but got Unknown //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_03c2: Unknown result type (might be due to invalid IL or missing references) //IL_03c7: Unknown result type (might be due to invalid IL or missing references) //IL_03c9: Unknown result type (might be due to invalid IL or missing references) //IL_03ce: Unknown result type (might be due to invalid IL or missing references) //IL_03d9: Unknown result type (might be due to invalid IL or missing references) //IL_03e5: Unknown result type (might be due to invalid IL or missing references) //IL_03f6: Expected O, but got Unknown //IL_03fc: Unknown result type (might be due to invalid IL or missing references) //IL_0401: Unknown result type (might be due to invalid IL or missing references) //IL_0403: Unknown result type (might be due to invalid IL or missing references) //IL_0408: Unknown result type (might be due to invalid IL or missing references) //IL_0413: Unknown result type (might be due to invalid IL or missing references) //IL_041f: Unknown result type (might be due to invalid IL or missing references) //IL_0430: Expected O, but got Unknown //IL_043f: Unknown result type (might be due to invalid IL or missing references) //IL_0446: Expected O, but got Unknown //IL_0454: Unknown result type (might be due to invalid IL or missing references) //IL_045b: Expected O, but got Unknown //IL_045e: Unknown result type (might be due to invalid IL or missing references) GameObject corpseObject = null; m_CachedTargetObject = expandSharedAssets1.LoadAsset("Bootleg Bullat"); new List { "bullat_idle_001", "bullat_idle_002", "bullat_idle_003", "bullat_idle_004", "bullat_idle_005", "bullat_idle_006", "bullat_die_001", "bullat_die_002", "bullat_die_003", "bullat_die_004" }; List spriteNameList = new List { "bullat_idle_001", "bullat_idle_002", "bullat_idle_003", "bullat_idle_004", "bullat_idle_005", "bullat_idle_006" }; List spriteNameList2 = new List { "bullat_die_001", "bullat_die_002", "bullat_die_003", "bullat_die_004" }; SpriteSerializer.AddSpriteToObject(m_CachedTargetObject, BootlegBullatCollection, "bullat_idle_001", (PerpendicularState)0); ExpandUtility.GenerateSpriteAnimator(m_CachedTargetObject, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: false, IsFrameBlendedAnimation: false, 0f, 0f); tk2dSpriteAnimator component = m_CachedTargetObject.GetComponent(); ExpandUtility.AddAnimation(component, BootlegBullatCollection.GetComponent(), spriteNameList, "idle", (WrapMode)0, 10); ExpandUtility.AddAnimation(component, BootlegBullatCollection.GetComponent(), spriteNameList2, "die", (WrapMode)2, 10); ExpandUtility.GenerateAIActorTemplate(m_CachedTargetObject, out corpseObject, ((Object)m_CachedTargetObject).name, BootlegBullatGUID, null, null, null, 38, null, RigidBodyCollidesWithTileMap: true, RigidBodyCollidesWithOthers: true, RigidBodyCanBeCarried: true, RigidBodyCanBePushed: false, isFakePrefab: false, instantiateCorpseObject: false, null, EnemyHasNoShooter: true, EnemyHasNoCorpse: true); AIActor component2 = m_CachedTargetObject.GetComponent(); component2.MovementSpeed = 4f; ((GameActor)component2).SetIsFlying(true, "Flying Enemy", true, true); component2.procedurallyOutlined = false; component2.EnemySwitchState = "Bullet_Bat"; ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(1f, (float?)null, false); ((BraveBehaviour)component2).healthHaver.ForceSetCurrentHealth(1f); component2.DiesOnCollison = true; ((BraveBehaviour)component2).specRigidbody.PixelColliders.Clear(); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)3, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 8, ManualOffsetY = 3, ManualWidth = 13, ManualHeight = 8, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)2, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 5, ManualOffsetY = 2, ManualWidth = 19, ManualHeight = 10, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); if (Object.op_Implicit((Object)(object)((BraveBehaviour)component2).aiAnimator)) { ((BraveBehaviour)component2).aiAnimator.facingType = (FacingType)0; ((BraveBehaviour)component2).aiAnimator.faceSouthWhenStopped = false; ((BraveBehaviour)component2).aiAnimator.faceTargetWhenStopped = false; ((BraveBehaviour)component2).aiAnimator.HitType = (HitStateType)0; AIAnimator aiAnimator = ((BraveBehaviour)component2).aiAnimator; DirectionalAnimation val = new DirectionalAnimation(); val.Type = (DirectionType)1; val.Prefix = "idle"; val.AnimNames = new string[1] { string.Empty }; val.Flipped = (FlipType[])(object)new FlipType[1]; aiAnimator.IdleAnimation = val; ((BraveBehaviour)component2).aiAnimator.MoveAnimation = new DirectionalAnimation { Type = (DirectionType)0, Prefix = string.Empty, AnimNames = new string[0], Flipped = (FlipType[])(object)new FlipType[0] }; ((BraveBehaviour)component2).aiAnimator.HitAnimation = new DirectionalAnimation { Type = (DirectionType)0, Prefix = string.Empty, AnimNames = new string[0], Flipped = (FlipType[])(object)new FlipType[0] }; AIAnimator aiAnimator2 = ((BraveBehaviour)component2).aiAnimator; List list = new List(); NamedDirectionalAnimation val2 = new NamedDirectionalAnimation(); val2.name = "die"; val = new DirectionalAnimation(); val.Type = (DirectionType)1; val.Prefix = "die"; val.AnimNames = new string[1] { string.Empty }; val.Flipped = (FlipType[])(object)new FlipType[1]; val2.anim = val; list.Add(val2); aiAnimator2.OtherAnimations = list; } BehaviorSpeculator obj = m_CachedTargetObject.AddComponent(); obj.OverrideBehaviors = new List(0); obj.OtherBehaviors = new List(0); obj.AttackBehaviors = new List(0); obj.TargetBehaviors = new List { (TargetBehaviorBase)new TargetPlayerBehavior { Radius = 35f, LineOfSight = false, ObjectPermanence = true, SearchInterval = 0.25f, PauseOnTargetSwitch = false, PauseTime = 0.25f } }; obj.MovementBehaviors = new List { (MovementBehaviorBase)new SeekTargetBehavior { StopWhenInRange = false, CustomRange = 6f, LineOfSight = true, ReturnToSpawn = true, SpawnTetherDistance = 0f, PathInterval = 0.5f, SpecifyRange = false, MinActiveRange = 0f, MaxActiveRange = 0f } }; obj.InstantFirstTick = false; obj.TickInterval = 0.1f; obj.PostAwakenDelay = 0f; obj.RemoveDelayOnReinforce = false; obj.OverrideStartingFacingDirection = false; obj.StartingFacingDirection = -90f; obj.SkipTimingDifferentiator = false; ((ISerializedObject)obj).SerializedObjectReferences = new List(0); ((ISerializedObject)obj).SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; ((ISerializedObject)obj).SerializedStateValues = new List(0); AddEnemyToDatabaseAndAmmonomicon(component2, BootlegBullatGUID, ExpandAmmonomiconDatabase.BootlegBullat); } public static void BuildBootlegBulletManPrefab(AssetBundle expandSharedAssets1, out GameObject m_CachedTargetObject) { //IL_098e: Unknown result type (might be due to invalid IL or missing references) //IL_09c5: Unknown result type (might be due to invalid IL or missing references) //IL_09ca: Unknown result type (might be due to invalid IL or missing references) //IL_09cc: Unknown result type (might be due to invalid IL or missing references) //IL_09d1: Unknown result type (might be due to invalid IL or missing references) //IL_09d3: Unknown result type (might be due to invalid IL or missing references) //IL_09d8: Unknown result type (might be due to invalid IL or missing references) //IL_09df: Unknown result type (might be due to invalid IL or missing references) //IL_09e6: Unknown result type (might be due to invalid IL or missing references) //IL_09f1: Unknown result type (might be due to invalid IL or missing references) //IL_09f8: Unknown result type (might be due to invalid IL or missing references) //IL_09ff: Unknown result type (might be due to invalid IL or missing references) //IL_0a06: Unknown result type (might be due to invalid IL or missing references) //IL_0a0e: Unknown result type (might be due to invalid IL or missing references) //IL_0a15: Unknown result type (might be due to invalid IL or missing references) //IL_0a1c: Unknown result type (might be due to invalid IL or missing references) //IL_0a23: Unknown result type (might be due to invalid IL or missing references) //IL_0a2a: Unknown result type (might be due to invalid IL or missing references) //IL_0a31: Unknown result type (might be due to invalid IL or missing references) //IL_0a3d: Expected O, but got Unknown //IL_0a49: Unknown result type (might be due to invalid IL or missing references) //IL_0a4e: Unknown result type (might be due to invalid IL or missing references) //IL_0a50: Unknown result type (might be due to invalid IL or missing references) //IL_0a55: Unknown result type (might be due to invalid IL or missing references) //IL_0a57: Unknown result type (might be due to invalid IL or missing references) //IL_0a5c: Unknown result type (might be due to invalid IL or missing references) //IL_0a63: Unknown result type (might be due to invalid IL or missing references) //IL_0a6a: Unknown result type (might be due to invalid IL or missing references) //IL_0a75: Unknown result type (might be due to invalid IL or missing references) //IL_0a7c: Unknown result type (might be due to invalid IL or missing references) //IL_0a83: Unknown result type (might be due to invalid IL or missing references) //IL_0a8a: Unknown result type (might be due to invalid IL or missing references) //IL_0a92: Unknown result type (might be due to invalid IL or missing references) //IL_0a9a: Unknown result type (might be due to invalid IL or missing references) //IL_0aa1: Unknown result type (might be due to invalid IL or missing references) //IL_0aa8: Unknown result type (might be due to invalid IL or missing references) //IL_0aaf: Unknown result type (might be due to invalid IL or missing references) //IL_0ab6: Unknown result type (might be due to invalid IL or missing references) //IL_0ac2: Expected O, but got Unknown //IL_0daa: Unknown result type (might be due to invalid IL or missing references) //IL_0daf: Unknown result type (might be due to invalid IL or missing references) //IL_0db6: Unknown result type (might be due to invalid IL or missing references) //IL_0dbd: Unknown result type (might be due to invalid IL or missing references) //IL_0dc9: Expected O, but got Unknown //IL_0dd5: Unknown result type (might be due to invalid IL or missing references) //IL_0dda: Unknown result type (might be due to invalid IL or missing references) //IL_0de5: Unknown result type (might be due to invalid IL or missing references) //IL_0dec: Unknown result type (might be due to invalid IL or missing references) //IL_0df3: Unknown result type (might be due to invalid IL or missing references) //IL_0dfe: Unknown result type (might be due to invalid IL or missing references) //IL_0e05: Unknown result type (might be due to invalid IL or missing references) //IL_0e15: Expected O, but got Unknown //IL_0e21: Unknown result type (might be due to invalid IL or missing references) //IL_0e2b: Expected O, but got Unknown //IL_0e2c: Unknown result type (might be due to invalid IL or missing references) //IL_0e31: Unknown result type (might be due to invalid IL or missing references) //IL_0e3c: Unknown result type (might be due to invalid IL or missing references) //IL_0e43: Unknown result type (might be due to invalid IL or missing references) //IL_0e4e: Unknown result type (might be due to invalid IL or missing references) //IL_0e59: Unknown result type (might be due to invalid IL or missing references) //IL_0e64: Unknown result type (might be due to invalid IL or missing references) //IL_0e6f: Unknown result type (might be due to invalid IL or missing references) //IL_0e7a: Unknown result type (might be due to invalid IL or missing references) //IL_0e85: Unknown result type (might be due to invalid IL or missing references) //IL_0e90: Unknown result type (might be due to invalid IL or missing references) //IL_0e9b: Unknown result type (might be due to invalid IL or missing references) //IL_0ea6: Unknown result type (might be due to invalid IL or missing references) //IL_0eb6: Expected O, but got Unknown //IL_0eb7: Unknown result type (might be due to invalid IL or missing references) //IL_0ebc: Unknown result type (might be due to invalid IL or missing references) //IL_0ec3: Unknown result type (might be due to invalid IL or missing references) //IL_0ece: Unknown result type (might be due to invalid IL or missing references) //IL_0ed5: Unknown result type (might be due to invalid IL or missing references) //IL_0edc: Unknown result type (might be due to invalid IL or missing references) //IL_0ee7: Unknown result type (might be due to invalid IL or missing references) //IL_0ef2: Unknown result type (might be due to invalid IL or missing references) //IL_0ef9: Unknown result type (might be due to invalid IL or missing references) //IL_0f04: Unknown result type (might be due to invalid IL or missing references) //IL_0f14: Expected O, but got Unknown //IL_0f20: Unknown result type (might be due to invalid IL or missing references) //IL_0f25: Unknown result type (might be due to invalid IL or missing references) //IL_0f30: Unknown result type (might be due to invalid IL or missing references) //IL_0f37: Unknown result type (might be due to invalid IL or missing references) //IL_0f39: Unknown result type (might be due to invalid IL or missing references) //IL_0f3e: Unknown result type (might be due to invalid IL or missing references) //IL_0f49: Unknown result type (might be due to invalid IL or missing references) //IL_0f50: Unknown result type (might be due to invalid IL or missing references) //IL_0f57: Unknown result type (might be due to invalid IL or missing references) //IL_0f5e: Unknown result type (might be due to invalid IL or missing references) //IL_0f69: Unknown result type (might be due to invalid IL or missing references) //IL_0f74: Unknown result type (might be due to invalid IL or missing references) //IL_0f7b: Unknown result type (might be due to invalid IL or missing references) //IL_0f86: Unknown result type (might be due to invalid IL or missing references) //IL_0f91: Unknown result type (might be due to invalid IL or missing references) //IL_0f98: Unknown result type (might be due to invalid IL or missing references) //IL_0f9f: Unknown result type (might be due to invalid IL or missing references) //IL_0faa: Unknown result type (might be due to invalid IL or missing references) //IL_0fb1: Unknown result type (might be due to invalid IL or missing references) //IL_0fb8: Unknown result type (might be due to invalid IL or missing references) //IL_0fbf: Unknown result type (might be due to invalid IL or missing references) //IL_0fc6: Unknown result type (might be due to invalid IL or missing references) //IL_0fcd: Unknown result type (might be due to invalid IL or missing references) //IL_0fd4: Unknown result type (might be due to invalid IL or missing references) //IL_0fdf: Unknown result type (might be due to invalid IL or missing references) //IL_0fe6: Unknown result type (might be due to invalid IL or missing references) //IL_0ff1: Unknown result type (might be due to invalid IL or missing references) //IL_0ffc: Unknown result type (might be due to invalid IL or missing references) //IL_1007: Unknown result type (might be due to invalid IL or missing references) //IL_1012: Unknown result type (might be due to invalid IL or missing references) //IL_101d: Unknown result type (might be due to invalid IL or missing references) //IL_1028: Unknown result type (might be due to invalid IL or missing references) //IL_102f: Unknown result type (might be due to invalid IL or missing references) //IL_103a: Unknown result type (might be due to invalid IL or missing references) //IL_1045: Unknown result type (might be due to invalid IL or missing references) //IL_1050: Unknown result type (might be due to invalid IL or missing references) //IL_105b: Unknown result type (might be due to invalid IL or missing references) //IL_1066: Unknown result type (might be due to invalid IL or missing references) //IL_1071: Unknown result type (might be due to invalid IL or missing references) //IL_107c: Unknown result type (might be due to invalid IL or missing references) //IL_1088: Unknown result type (might be due to invalid IL or missing references) //IL_108f: Unknown result type (might be due to invalid IL or missing references) //IL_1096: Unknown result type (might be due to invalid IL or missing references) //IL_109d: Unknown result type (might be due to invalid IL or missing references) //IL_10a4: Unknown result type (might be due to invalid IL or missing references) //IL_10ab: Unknown result type (might be due to invalid IL or missing references) //IL_10b7: Expected O, but got Unknown //IL_0adb: Unknown result type (might be due to invalid IL or missing references) //IL_0b02: Unknown result type (might be due to invalid IL or missing references) //IL_0b0e: Unknown result type (might be due to invalid IL or missing references) //IL_0b13: Unknown result type (might be due to invalid IL or missing references) //IL_0b16: Unknown result type (might be due to invalid IL or missing references) //IL_0b1b: Unknown result type (might be due to invalid IL or missing references) //IL_0b26: Unknown result type (might be due to invalid IL or missing references) //IL_0b32: Unknown result type (might be due to invalid IL or missing references) //IL_0b43: Expected O, but got Unknown //IL_0b4a: Unknown result type (might be due to invalid IL or missing references) //IL_0b4f: Unknown result type (might be due to invalid IL or missing references) //IL_0b52: Unknown result type (might be due to invalid IL or missing references) //IL_0b57: Unknown result type (might be due to invalid IL or missing references) //IL_0b62: Unknown result type (might be due to invalid IL or missing references) //IL_0b6e: Unknown result type (might be due to invalid IL or missing references) //IL_0b7f: Expected O, but got Unknown //IL_0b86: Unknown result type (might be due to invalid IL or missing references) //IL_0b8b: Unknown result type (might be due to invalid IL or missing references) //IL_0b8e: Unknown result type (might be due to invalid IL or missing references) //IL_0b93: Unknown result type (might be due to invalid IL or missing references) //IL_0b9e: Unknown result type (might be due to invalid IL or missing references) //IL_0baa: Unknown result type (might be due to invalid IL or missing references) //IL_0bbb: Expected O, but got Unknown //IL_0bcb: Unknown result type (might be due to invalid IL or missing references) //IL_0bd0: Unknown result type (might be due to invalid IL or missing references) //IL_0bdb: Unknown result type (might be due to invalid IL or missing references) //IL_0bdc: Unknown result type (might be due to invalid IL or missing references) //IL_0be1: Unknown result type (might be due to invalid IL or missing references) //IL_0be4: Unknown result type (might be due to invalid IL or missing references) //IL_0be9: Unknown result type (might be due to invalid IL or missing references) //IL_0bf4: Unknown result type (might be due to invalid IL or missing references) //IL_0c00: Unknown result type (might be due to invalid IL or missing references) //IL_0c11: Expected O, but got Unknown //IL_0c16: Expected O, but got Unknown //IL_0c18: Unknown result type (might be due to invalid IL or missing references) //IL_0c1d: Unknown result type (might be due to invalid IL or missing references) //IL_0c28: Unknown result type (might be due to invalid IL or missing references) //IL_0c29: Unknown result type (might be due to invalid IL or missing references) //IL_0c2e: Unknown result type (might be due to invalid IL or missing references) //IL_0c31: Unknown result type (might be due to invalid IL or missing references) //IL_0c36: Unknown result type (might be due to invalid IL or missing references) //IL_0c41: Unknown result type (might be due to invalid IL or missing references) //IL_0c4d: Unknown result type (might be due to invalid IL or missing references) //IL_0c5e: Expected O, but got Unknown //IL_0c63: Expected O, but got Unknown //IL_0c65: Unknown result type (might be due to invalid IL or missing references) //IL_0c6c: Expected O, but got Unknown //IL_0c7a: Unknown result type (might be due to invalid IL or missing references) //IL_0c81: Expected O, but got Unknown //IL_0c84: Unknown result type (might be due to invalid IL or missing references) //IL_0cc7: Unknown result type (might be due to invalid IL or missing references) //IL_0cce: Expected O, but got Unknown //IL_0cdc: Unknown result type (might be due to invalid IL or missing references) //IL_0ce3: Expected O, but got Unknown //IL_0ce6: Unknown result type (might be due to invalid IL or missing references) //IL_0d29: Unknown result type (might be due to invalid IL or missing references) //IL_0d30: Expected O, but got Unknown //IL_0d3e: Unknown result type (might be due to invalid IL or missing references) //IL_0d45: Expected O, but got Unknown //IL_0d48: Unknown result type (might be due to invalid IL or missing references) AIActor officialEnemyByGuid = GetOfficialEnemyByGuid("01972dee89fc4404a5c408d50007dad5"); GameObject corpseObject = null; m_CachedTargetObject = expandSharedAssets1.LoadAsset("Bootleg BulletMan"); new List { "bulletman_cover_left_idle_001", "bulletman_cover_left_leap_001", "bulletman_cover_right_idle_001", "bulletman_cover_right_leap_001", "bulletman_hit_left_001", "bulletman_hit_left_002", "bulletman_hit_left_003", "bulletman_hit_left_004", "bulletman_hit_left_005", "bulletman_hit_right_001", "bulletman_hit_right_002", "bulletman_hit_right_003", "bulletman_hit_right_004", "bulletman_hit_right_005", "bulletman_idle_down_001", "bulletman_idle_left_001", "bulletman_idle_right_001", "bulletman_idle_up_001", "bulletman_pitfall_001", "bulletman_pitfall_002", "bulletman_pitfall_003", "bulletman_pitfall_004", "bulletman_pitfall_005", "bulletman_run_down_001", "bulletman_run_down_002", "bulletman_run_down_003", "bulletman_run_down_004", "bulletman_run_down_005", "bulletman_run_left_001", "bulletman_run_left_002", "bulletman_run_left_003", "bulletman_run_left_004", "bulletman_run_left_005", "bulletman_run_right_001", "bulletman_run_right_002", "bulletman_run_right_003", "bulletman_run_right_004", "bulletman_run_right_005", "bulletman_run_up_001", "bulletman_run_up_002", "bulletman_run_up_003", "bulletman_run_up_004", "bulletman_run_up_005", "bulletman_spawn_001", "bulletman_spawn_002", "bulletman_spawn_003", "bulletman_corpse" }; List list = new List { "bulletman_idle_down_001", "bulletman_idle_down_001" }; List spriteNameList = new List { "bulletman_idle_up_001", "bulletman_idle_up_001" }; List spriteNameList2 = new List { "bulletman_idle_left_001", "bulletman_idle_left_001" }; List spriteNameList3 = new List { "bulletman_idle_right_001", "bulletman_idle_right_001" }; List spriteNameList4 = new List { "bulletman_run_left_001", "bulletman_run_left_002", "bulletman_run_left_003", "bulletman_run_left_004", "bulletman_run_left_005" }; List spriteNameList5 = new List { "bulletman_run_right_001", "bulletman_run_right_002", "bulletman_run_right_003", "bulletman_run_right_004", "bulletman_run_right_005" }; List spriteNameList6 = new List { "bulletman_run_down_001", "bulletman_run_down_002", "bulletman_run_down_003", "bulletman_run_down_004", "bulletman_run_down_005" }; List spriteNameList7 = new List { "bulletman_run_up_001", "bulletman_run_up_002", "bulletman_run_up_003", "bulletman_run_up_004", "bulletman_run_up_005" }; List spriteNameList8 = new List { "bulletman_hit_left_001", "bulletman_hit_left_002", "bulletman_hit_left_003", "bulletman_hit_left_004", "bulletman_hit_left_005" }; List spriteNameList9 = new List { "bulletman_hit_right_001", "bulletman_hit_right_002", "bulletman_hit_right_003", "bulletman_hit_right_004", "bulletman_hit_right_005" }; List spriteNameList10 = new List { "bulletman_cover_left_idle_001", "bulletman_cover_left_idle_001" }; List spriteNameList11 = new List { "bulletman_cover_right_idle_001", "bulletman_cover_right_idle_001" }; List spriteNameList12 = new List { "bulletman_cover_left_leap_001", "bulletman_cover_left_leap_001" }; List spriteNameList13 = new List { "bulletman_cover_right_leap_001", "bulletman_cover_right_leap_001" }; List spriteNameList14 = new List { "bulletman_spawn_001", "bulletman_spawn_002", "bulletman_spawn_003" }; List spriteNameList15 = new List { "bulletman_pitfall_001", "bulletman_pitfall_002", "bulletman_pitfall_003", "bulletman_pitfall_004", "bulletman_pitfall_005" }; List spriteNameList16 = new List { "bulletman_corpse", "bulletman_corpse" }; SpriteSerializer.AddSpriteToObject(m_CachedTargetObject, BootlegBulletManCollection, list[0], (PerpendicularState)0); ExpandUtility.GenerateSpriteAnimator(m_CachedTargetObject, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true, IsFrameBlendedAnimation: false, 0f, 0f); tk2dSpriteAnimator component = m_CachedTargetObject.GetComponent(); ExpandUtility.AddAnimation(component, BootlegBulletManCollection.GetComponent(), spriteNameList2, "idle_west", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BootlegBulletManCollection.GetComponent(), spriteNameList3, "idle_east", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BootlegBulletManCollection.GetComponent(), list, "idle_south", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BootlegBulletManCollection.GetComponent(), spriteNameList, "idle_north", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BootlegBulletManCollection.GetComponent(), spriteNameList4, "run_west", (WrapMode)0, 24); ExpandUtility.AddAnimation(component, BootlegBulletManCollection.GetComponent(), spriteNameList5, "run_east", (WrapMode)0, 24); ExpandUtility.AddAnimation(component, BootlegBulletManCollection.GetComponent(), spriteNameList6, "run_south", (WrapMode)0, 24); ExpandUtility.AddAnimation(component, BootlegBulletManCollection.GetComponent(), spriteNameList7, "run_north", (WrapMode)0, 24); ExpandUtility.AddAnimation(component, BootlegBulletManCollection.GetComponent(), spriteNameList8, "hit_west", (WrapMode)2, 24); ExpandUtility.AddAnimation(component, BootlegBulletManCollection.GetComponent(), spriteNameList9, "hit_east", (WrapMode)2, 24); ExpandUtility.AddAnimation(component, BootlegBulletManCollection.GetComponent(), spriteNameList8, "hit_north", (WrapMode)2, 24); ExpandUtility.AddAnimation(component, BootlegBulletManCollection.GetComponent(), spriteNameList9, "hit_south", (WrapMode)2, 24); ExpandUtility.AddAnimation(component, BootlegBulletManCollection.GetComponent(), spriteNameList10, "cover_idle_west", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BootlegBulletManCollection.GetComponent(), spriteNameList11, "cover_idle_east", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BootlegBulletManCollection.GetComponent(), spriteNameList10, "cover_idle_north", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BootlegBulletManCollection.GetComponent(), spriteNameList11, "cover_idle_south", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BootlegBulletManCollection.GetComponent(), spriteNameList12, "cover_leep_west", (WrapMode)2, 6); ExpandUtility.AddAnimation(component, BootlegBulletManCollection.GetComponent(), spriteNameList13, "cover_leep_east", (WrapMode)2, 6); ExpandUtility.AddAnimation(component, BootlegBulletManCollection.GetComponent(), spriteNameList12, "cover_leep_north", (WrapMode)2, 6); ExpandUtility.AddAnimation(component, BootlegBulletManCollection.GetComponent(), spriteNameList13, "cover_leep_south", (WrapMode)2, 6); ExpandUtility.AddAnimation(component, BootlegBulletManCollection.GetComponent(), list, "awaken", (WrapMode)2, 6); ExpandUtility.AddAnimation(component, BootlegBulletManCollection.GetComponent(), spriteNameList14, "spawn", (WrapMode)2, 6); ExpandUtility.AddAnimation(component, BootlegBulletManCollection.GetComponent(), spriteNameList15, "pitfall_right", (WrapMode)2, 6); ExpandUtility.AddAnimation(component, BootlegBulletManCollection.GetComponent(), spriteNameList16, "die", (WrapMode)2, 8); ExpandUtility.AddAnimation(component, BootlegBulletManCollection.GetComponent(), spriteNameList16, "death", (WrapMode)2, 8); GameObject gameObject = ((Component)m_CachedTargetObject.transform.Find("GunAttachPoint")).gameObject; ExpandUtility.DuplicateAIShooterAndAIBulletBank(m_CachedTargetObject, ((BraveBehaviour)officialEnemyByGuid).aiShooter, ((Component)officialEnemyByGuid).GetComponent(), BootlegGuns.BootlegPistolID, gameObject.transform); ExpandUtility.GenerateAIActorTemplate(m_CachedTargetObject, out corpseObject, "Bootleg Bullet Kin", BootlegBulletManGUID, null, null, null, 38, null, RigidBodyCollidesWithTileMap: true, RigidBodyCollidesWithOthers: true, RigidBodyCanBeCarried: true, RigidBodyCanBePushed: false, isFakePrefab: false, instantiateCorpseObject: false, GetOfficialEnemyByGuid("88b6b6a93d4b4234a67844ef4728382c").CorpseObject, EnemyHasNoShooter: true); AIActor component2 = m_CachedTargetObject.GetComponent(); if (!Object.op_Implicit((Object)(object)officialEnemyByGuid)) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for donor enemy is null!", false); } return; } component2.MovementSpeed = 2f; component2.PathableTiles = (CellTypes)2; ((BraveBehaviour)component2).aiShooter.handObject = null; component2.procedurallyOutlined = false; ((BraveBehaviour)component2).specRigidbody.PixelColliders.Clear(); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)3, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 1, ManualOffsetY = 1, ManualWidth = 10, ManualHeight = 6, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)2, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 1, ManualOffsetY = 1, ManualWidth = 10, ManualHeight = 13, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); if (Object.op_Implicit((Object)(object)((BraveBehaviour)component2).aiAnimator)) { ((BraveBehaviour)component2).aiAnimator.facingType = (FacingType)0; ((BraveBehaviour)component2).aiAnimator.faceSouthWhenStopped = false; ((BraveBehaviour)component2).aiAnimator.faceTargetWhenStopped = false; ((BraveBehaviour)component2).aiAnimator.HitType = (HitStateType)0; ((BraveBehaviour)component2).aiAnimator.IdleAnimation = new DirectionalAnimation { Type = (DirectionType)9, Prefix = "idle", AnimNames = new string[4], Flipped = (FlipType[])(object)new FlipType[4] }; ((BraveBehaviour)component2).aiAnimator.MoveAnimation = new DirectionalAnimation { Type = (DirectionType)9, Prefix = "run", AnimNames = new string[4], Flipped = (FlipType[])(object)new FlipType[4] }; ((BraveBehaviour)component2).aiAnimator.HitAnimation = new DirectionalAnimation { Type = (DirectionType)9, Prefix = "hit", AnimNames = new string[4], Flipped = (FlipType[])(object)new FlipType[4] }; AIAnimator aiAnimator = ((BraveBehaviour)component2).aiAnimator; List list2 = new List { new NamedDirectionalAnimation { name = "cover_idle", anim = new DirectionalAnimation { Type = (DirectionType)9, Prefix = "cover_idle", AnimNames = new string[4], Flipped = (FlipType[])(object)new FlipType[4] } }, new NamedDirectionalAnimation { name = "cover_leep", anim = new DirectionalAnimation { Type = (DirectionType)9, Prefix = "cover_leep", AnimNames = new string[4], Flipped = (FlipType[])(object)new FlipType[4] } } }; NamedDirectionalAnimation val = new NamedDirectionalAnimation(); val.name = "pitfall"; NamedDirectionalAnimation obj = val; DirectionalAnimation val2 = new DirectionalAnimation(); val2.Type = (DirectionType)1; val2.Prefix = "pitfall"; val2.AnimNames = new string[1] { "pitfall_right" }; val2.Flipped = (FlipType[])(object)new FlipType[1]; obj.anim = val2; list2.Add(val); val = new NamedDirectionalAnimation(); val.name = "die"; NamedDirectionalAnimation obj2 = val; val2 = new DirectionalAnimation(); val2.Type = (DirectionType)1; val2.Prefix = "die"; val2.AnimNames = new string[1] { "die" }; val2.Flipped = (FlipType[])(object)new FlipType[1]; obj2.anim = val2; list2.Add(val); val = new NamedDirectionalAnimation(); val.name = "death"; NamedDirectionalAnimation obj3 = val; val2 = new DirectionalAnimation(); val2.Type = (DirectionType)1; val2.Prefix = "death"; val2.AnimNames = new string[1] { "death" }; val2.Flipped = (FlipType[])(object)new FlipType[1]; obj3.anim = val2; list2.Add(val); aiAnimator.OtherAnimations = list2; } BehaviorSpeculator obj4 = m_CachedTargetObject.AddComponent(); obj4.OtherBehaviors = new List(0); obj4.OverrideBehaviors = new List { (OverrideBehaviorBase)new RedBarrelAwareness { AvoidRedBarrels = true, ShootRedBarrels = true, PushRedBarrels = true } }; obj4.TargetBehaviors = new List { (TargetBehaviorBase)new TargetPlayerBehavior { Radius = 35f, LineOfSight = true, ObjectPermanence = true, SearchInterval = 0.25f, PauseOnTargetSwitch = false, PauseTime = 0.25f } }; obj4.MovementBehaviors = new List { (MovementBehaviorBase)new RideInCartsBehavior(), (MovementBehaviorBase)new TakeCoverBehavior { PathInterval = 0.25f, LineOfSightToLeaveCover = true, MaxCoverDistance = 10f, MaxCoverDistanceToTarget = 25f, FlipCoverDistance = 0.3f, InsideCoverTime = 2f, OutsideCoverTime = 2f, PopOutSpeedMultiplier = 3f, PopInSpeedMultiplier = 1f, InitialCoverChance = 0.5f, RepeatingCoverChance = 0.15f, RepeatingCoverInterval = 1f }, (MovementBehaviorBase)new SeekTargetBehavior { StopWhenInRange = true, CustomRange = 7f, LineOfSight = true, ReturnToSpawn = true, SpawnTetherDistance = 0f, PathInterval = 0.25f, SpecifyRange = false, MinActiveRange = 0f, MaxActiveRange = 0f } }; obj4.AttackBehaviors = new List { (AttackBehaviorBase)new ShootGunBehavior { GroupCooldownVariance = 0.2f, LineOfSight = true, WeaponType = (WeaponType)0, OverrideBulletName = "default", BulletScript = null, FixTargetDuringAttack = false, StopDuringAttack = false, LeadAmount = 0f, LeadChance = 1f, RespectReload = true, MagazineCapacity = 6f, ReloadSpeed = 2f, EmptiesClip = false, SuppressReloadAnim = false, TimeBetweenShots = -1f, PreventTargetSwitching = false, OverrideAnimation = null, OverrideDirectionalAnimation = null, HideGun = false, UseLaserSight = false, UseGreenLaser = false, PreFireLaserTime = -1f, AimAtFacingDirectionWhenSafe = false, Cooldown = 1.6f, CooldownVariance = 0f, AttackCooldown = 0f, GlobalCooldown = 0f, InitialCooldown = 0f, InitialCooldownVariance = 0f, GroupName = null, GroupCooldown = 0f, MinRange = 0f, Range = 12f, MinWallDistance = 0f, MaxEnemiesInRoom = 0f, MinHealthThreshold = 0f, MaxHealthThreshold = 1f, HealthThresholds = new float[0], AccumulateHealthThresholds = true, targetAreaStyle = null, IsBlackPhantom = false, resetCooldownOnDamage = null, RequiresLineOfSight = false, MaxUsages = 0 } }; obj4.InstantFirstTick = false; obj4.TickInterval = 0.1f; obj4.PostAwakenDelay = 0.5f; obj4.RemoveDelayOnReinforce = false; obj4.OverrideStartingFacingDirection = false; obj4.StartingFacingDirection = -90f; obj4.SkipTimingDifferentiator = false; ((ISerializedObject)obj4).SerializedObjectReferences = new List(0); ((ISerializedObject)obj4).SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; ((ISerializedObject)obj4).SerializedStateValues = new List(0); AddEnemyToDatabaseAndAmmonomicon(component2, BootlegBulletManGUID, ExpandAmmonomiconDatabase.BootlegBulletKin); officialEnemyByGuid = null; } public static void BuildBootlegBulletManBandanaPrefab(AssetBundle expandSharedAssets1, out GameObject m_CachedTargetObject) { //IL_0962: Unknown result type (might be due to invalid IL or missing references) //IL_0999: Unknown result type (might be due to invalid IL or missing references) //IL_099e: Unknown result type (might be due to invalid IL or missing references) //IL_09a0: Unknown result type (might be due to invalid IL or missing references) //IL_09a5: Unknown result type (might be due to invalid IL or missing references) //IL_09a7: Unknown result type (might be due to invalid IL or missing references) //IL_09ac: Unknown result type (might be due to invalid IL or missing references) //IL_09b3: Unknown result type (might be due to invalid IL or missing references) //IL_09ba: Unknown result type (might be due to invalid IL or missing references) //IL_09c5: Unknown result type (might be due to invalid IL or missing references) //IL_09cc: Unknown result type (might be due to invalid IL or missing references) //IL_09d3: Unknown result type (might be due to invalid IL or missing references) //IL_09da: Unknown result type (might be due to invalid IL or missing references) //IL_09e2: Unknown result type (might be due to invalid IL or missing references) //IL_09e9: Unknown result type (might be due to invalid IL or missing references) //IL_09f0: Unknown result type (might be due to invalid IL or missing references) //IL_09f7: Unknown result type (might be due to invalid IL or missing references) //IL_09fe: Unknown result type (might be due to invalid IL or missing references) //IL_0a05: Unknown result type (might be due to invalid IL or missing references) //IL_0a11: Expected O, but got Unknown //IL_0a1d: Unknown result type (might be due to invalid IL or missing references) //IL_0a22: Unknown result type (might be due to invalid IL or missing references) //IL_0a24: Unknown result type (might be due to invalid IL or missing references) //IL_0a29: Unknown result type (might be due to invalid IL or missing references) //IL_0a2b: Unknown result type (might be due to invalid IL or missing references) //IL_0a30: Unknown result type (might be due to invalid IL or missing references) //IL_0a37: Unknown result type (might be due to invalid IL or missing references) //IL_0a3e: Unknown result type (might be due to invalid IL or missing references) //IL_0a49: Unknown result type (might be due to invalid IL or missing references) //IL_0a50: Unknown result type (might be due to invalid IL or missing references) //IL_0a57: Unknown result type (might be due to invalid IL or missing references) //IL_0a5e: Unknown result type (might be due to invalid IL or missing references) //IL_0a66: Unknown result type (might be due to invalid IL or missing references) //IL_0a6e: Unknown result type (might be due to invalid IL or missing references) //IL_0a75: Unknown result type (might be due to invalid IL or missing references) //IL_0a7c: Unknown result type (might be due to invalid IL or missing references) //IL_0a83: Unknown result type (might be due to invalid IL or missing references) //IL_0a8a: Unknown result type (might be due to invalid IL or missing references) //IL_0a96: Expected O, but got Unknown //IL_0d8a: Unknown result type (might be due to invalid IL or missing references) //IL_0d8f: Unknown result type (might be due to invalid IL or missing references) //IL_0d9a: Unknown result type (might be due to invalid IL or missing references) //IL_0da1: Unknown result type (might be due to invalid IL or missing references) //IL_0da8: Unknown result type (might be due to invalid IL or missing references) //IL_0db3: Unknown result type (might be due to invalid IL or missing references) //IL_0dba: Unknown result type (might be due to invalid IL or missing references) //IL_0dca: Expected O, but got Unknown //IL_0dd6: Unknown result type (might be due to invalid IL or missing references) //IL_0ddb: Unknown result type (might be due to invalid IL or missing references) //IL_0de2: Unknown result type (might be due to invalid IL or missing references) //IL_0ded: Unknown result type (might be due to invalid IL or missing references) //IL_0df4: Unknown result type (might be due to invalid IL or missing references) //IL_0dfb: Unknown result type (might be due to invalid IL or missing references) //IL_0e06: Unknown result type (might be due to invalid IL or missing references) //IL_0e11: Unknown result type (might be due to invalid IL or missing references) //IL_0e18: Unknown result type (might be due to invalid IL or missing references) //IL_0e23: Unknown result type (might be due to invalid IL or missing references) //IL_0e33: Expected O, but got Unknown //IL_0e3f: Unknown result type (might be due to invalid IL or missing references) //IL_0e44: Unknown result type (might be due to invalid IL or missing references) //IL_0e4f: Unknown result type (might be due to invalid IL or missing references) //IL_0e56: Unknown result type (might be due to invalid IL or missing references) //IL_0e58: Unknown result type (might be due to invalid IL or missing references) //IL_0e5d: Unknown result type (might be due to invalid IL or missing references) //IL_0e64: Unknown result type (might be due to invalid IL or missing references) //IL_0e6b: Unknown result type (might be due to invalid IL or missing references) //IL_0e72: Unknown result type (might be due to invalid IL or missing references) //IL_0e79: Unknown result type (might be due to invalid IL or missing references) //IL_0e84: Unknown result type (might be due to invalid IL or missing references) //IL_0e8f: Unknown result type (might be due to invalid IL or missing references) //IL_0e96: Unknown result type (might be due to invalid IL or missing references) //IL_0ea1: Unknown result type (might be due to invalid IL or missing references) //IL_0eac: Unknown result type (might be due to invalid IL or missing references) //IL_0eb3: Unknown result type (might be due to invalid IL or missing references) //IL_0eba: Unknown result type (might be due to invalid IL or missing references) //IL_0ec5: Unknown result type (might be due to invalid IL or missing references) //IL_0ecc: Unknown result type (might be due to invalid IL or missing references) //IL_0ed3: Unknown result type (might be due to invalid IL or missing references) //IL_0eda: Unknown result type (might be due to invalid IL or missing references) //IL_0ee1: Unknown result type (might be due to invalid IL or missing references) //IL_0ee8: Unknown result type (might be due to invalid IL or missing references) //IL_0eef: Unknown result type (might be due to invalid IL or missing references) //IL_0efa: Unknown result type (might be due to invalid IL or missing references) //IL_0f01: Unknown result type (might be due to invalid IL or missing references) //IL_0f0c: Unknown result type (might be due to invalid IL or missing references) //IL_0f17: Unknown result type (might be due to invalid IL or missing references) //IL_0f22: Unknown result type (might be due to invalid IL or missing references) //IL_0f2d: Unknown result type (might be due to invalid IL or missing references) //IL_0f38: Unknown result type (might be due to invalid IL or missing references) //IL_0f43: Unknown result type (might be due to invalid IL or missing references) //IL_0f4a: Unknown result type (might be due to invalid IL or missing references) //IL_0f55: Unknown result type (might be due to invalid IL or missing references) //IL_0f60: Unknown result type (might be due to invalid IL or missing references) //IL_0f6b: Unknown result type (might be due to invalid IL or missing references) //IL_0f76: Unknown result type (might be due to invalid IL or missing references) //IL_0f81: Unknown result type (might be due to invalid IL or missing references) //IL_0f8c: Unknown result type (might be due to invalid IL or missing references) //IL_0f97: Unknown result type (might be due to invalid IL or missing references) //IL_0fa3: Unknown result type (might be due to invalid IL or missing references) //IL_0faa: Unknown result type (might be due to invalid IL or missing references) //IL_0fb1: Unknown result type (might be due to invalid IL or missing references) //IL_0fb8: Unknown result type (might be due to invalid IL or missing references) //IL_0fbf: Unknown result type (might be due to invalid IL or missing references) //IL_0fc6: Unknown result type (might be due to invalid IL or missing references) //IL_0fd2: Expected O, but got Unknown //IL_0aaf: Unknown result type (might be due to invalid IL or missing references) //IL_0ad6: Unknown result type (might be due to invalid IL or missing references) //IL_0ae2: Unknown result type (might be due to invalid IL or missing references) //IL_0ae7: Unknown result type (might be due to invalid IL or missing references) //IL_0aea: Unknown result type (might be due to invalid IL or missing references) //IL_0aef: Unknown result type (might be due to invalid IL or missing references) //IL_0afa: Unknown result type (might be due to invalid IL or missing references) //IL_0b06: Unknown result type (might be due to invalid IL or missing references) //IL_0b17: Expected O, but got Unknown //IL_0b1e: Unknown result type (might be due to invalid IL or missing references) //IL_0b23: Unknown result type (might be due to invalid IL or missing references) //IL_0b26: Unknown result type (might be due to invalid IL or missing references) //IL_0b2b: Unknown result type (might be due to invalid IL or missing references) //IL_0b36: Unknown result type (might be due to invalid IL or missing references) //IL_0b42: Unknown result type (might be due to invalid IL or missing references) //IL_0b53: Expected O, but got Unknown //IL_0b5a: Unknown result type (might be due to invalid IL or missing references) //IL_0b5f: Unknown result type (might be due to invalid IL or missing references) //IL_0b62: Unknown result type (might be due to invalid IL or missing references) //IL_0b67: Unknown result type (might be due to invalid IL or missing references) //IL_0b72: Unknown result type (might be due to invalid IL or missing references) //IL_0b7e: Unknown result type (might be due to invalid IL or missing references) //IL_0b8f: Expected O, but got Unknown //IL_0b9f: Unknown result type (might be due to invalid IL or missing references) //IL_0ba4: Unknown result type (might be due to invalid IL or missing references) //IL_0baf: Unknown result type (might be due to invalid IL or missing references) //IL_0bb0: Unknown result type (might be due to invalid IL or missing references) //IL_0bb5: Unknown result type (might be due to invalid IL or missing references) //IL_0bb8: Unknown result type (might be due to invalid IL or missing references) //IL_0bbd: Unknown result type (might be due to invalid IL or missing references) //IL_0bc8: Unknown result type (might be due to invalid IL or missing references) //IL_0bd4: Unknown result type (might be due to invalid IL or missing references) //IL_0be5: Expected O, but got Unknown //IL_0bea: Expected O, but got Unknown //IL_0bec: Unknown result type (might be due to invalid IL or missing references) //IL_0bf1: Unknown result type (might be due to invalid IL or missing references) //IL_0bfc: Unknown result type (might be due to invalid IL or missing references) //IL_0bfd: Unknown result type (might be due to invalid IL or missing references) //IL_0c02: Unknown result type (might be due to invalid IL or missing references) //IL_0c05: Unknown result type (might be due to invalid IL or missing references) //IL_0c0a: Unknown result type (might be due to invalid IL or missing references) //IL_0c15: Unknown result type (might be due to invalid IL or missing references) //IL_0c21: Unknown result type (might be due to invalid IL or missing references) //IL_0c32: Expected O, but got Unknown //IL_0c37: Expected O, but got Unknown //IL_0c39: Unknown result type (might be due to invalid IL or missing references) //IL_0c40: Expected O, but got Unknown //IL_0c4e: Unknown result type (might be due to invalid IL or missing references) //IL_0c55: Expected O, but got Unknown //IL_0c58: Unknown result type (might be due to invalid IL or missing references) //IL_0c9b: Unknown result type (might be due to invalid IL or missing references) //IL_0ca2: Expected O, but got Unknown //IL_0cb0: Unknown result type (might be due to invalid IL or missing references) //IL_0cb7: Expected O, but got Unknown //IL_0cba: Unknown result type (might be due to invalid IL or missing references) //IL_0cfd: Unknown result type (might be due to invalid IL or missing references) //IL_0d04: Expected O, but got Unknown //IL_0d12: Unknown result type (might be due to invalid IL or missing references) //IL_0d19: Expected O, but got Unknown //IL_0d1c: Unknown result type (might be due to invalid IL or missing references) AIActor officialEnemyByGuid = GetOfficialEnemyByGuid("88b6b6a93d4b4234a67844ef4728382c"); GameObject corpseObject = null; m_CachedTargetObject = expandSharedAssets1.LoadAsset("Bootleg BulletMan Bandana"); new List { "bulletmanbandana_hit_left_001", "bulletmanbandana_hit_left_002", "bulletmanbandana_hit_left_003", "bulletmanbandana_hit_left_004", "bulletmanbandana_hit_left_005", "bulletmanbandana_hit_right_001", "bulletmanbandana_hit_right_002", "bulletmanbandana_hit_right_003", "bulletmanbandana_hit_right_004", "bulletmanbandana_hit_right_005", "bulletmanbandana_idle_down_001", "bulletmanbandana_idle_left_001", "bulletmanbandana_idle_right_001", "bulletmanbandana_idle_up_001", "bulletmanbandana_pitfall_001", "bulletmanbandana_pitfall_002", "bulletmanbandana_pitfall_003", "bulletmanbandana_pitfall_004", "bulletmanbandana_pitfall_005", "bulletmanbandana_run_down_001", "bulletmanbandana_run_down_002", "bulletmanbandana_run_down_003", "bulletmanbandana_run_down_004", "bulletmanbandana_run_down_005", "bulletmanbandana_run_left_001", "bulletmanbandana_run_left_002", "bulletmanbandana_run_left_003", "bulletmanbandana_run_left_004", "bulletmanbandana_run_left_005", "bulletmanbandana_run_right_001", "bulletmanbandana_run_right_002", "bulletmanbandana_run_right_003", "bulletmanbandana_run_right_004", "bulletmanbandana_run_right_005", "bulletmanbandana_run_up_001", "bulletmanbandana_run_up_002", "bulletmanbandana_run_up_003", "bulletmanbandana_run_up_004", "bulletmanbandana_run_up_005", "bulletmanbandana_spawn_001", "bulletmanbandana_spawn_002", "bulletmanbandana_spawn_003", "bulletmanbandana_corpse" }; List list = new List { "bulletmanbandana_idle_down_001", "bulletmanbandana_idle_down_001" }; List spriteNameList = new List { "bulletmanbandana_idle_up_001", "bulletmanbandana_idle_up_001" }; List spriteNameList2 = new List { "bulletmanbandana_idle_left_001", "bulletmanbandana_idle_left_001" }; List spriteNameList3 = new List { "bulletmanbandana_idle_right_001", "bulletmanbandana_idle_right_001" }; List spriteNameList4 = new List { "bulletmanbandana_run_left_001", "bulletmanbandana_run_left_002", "bulletmanbandana_run_left_003", "bulletmanbandana_run_left_004", "bulletmanbandana_run_left_005" }; List spriteNameList5 = new List { "bulletmanbandana_run_right_001", "bulletmanbandana_run_right_002", "bulletmanbandana_run_right_003", "bulletmanbandana_run_right_004", "bulletmanbandana_run_right_005" }; List spriteNameList6 = new List { "bulletmanbandana_run_down_001", "bulletmanbandana_run_down_002", "bulletmanbandana_run_down_003", "bulletmanbandana_run_down_004", "bulletmanbandana_run_down_005" }; List spriteNameList7 = new List { "bulletmanbandana_run_up_001", "bulletmanbandana_run_up_002", "bulletmanbandana_run_up_003", "bulletmanbandana_run_up_004", "bulletmanbandana_run_up_005" }; List spriteNameList8 = new List { "bulletmanbandana_hit_left_001", "bulletmanbandana_hit_left_002", "bulletmanbandana_hit_left_003", "bulletmanbandana_hit_left_004", "bulletmanbandana_hit_left_005" }; List spriteNameList9 = new List { "bulletmanbandana_hit_right_001", "bulletmanbandana_hit_right_002", "bulletmanbandana_hit_right_003", "bulletmanbandana_hit_right_004", "bulletmanbandana_hit_right_005" }; List spriteNameList10 = new List { "bulletmanbandana_idle_left_001", "bulletmanbandana_idle_left_001" }; List spriteNameList11 = new List { "bulletmanbandana_idle_right_001", "bulletmanbandana_idle_right_001" }; List spriteNameList12 = new List { "bulletmanbandana_idle_left_001", "bulletmanbandana_idle_left_001" }; List spriteNameList13 = new List { "bulletmanbandana_idle_right_001", "bulletmanbandana_idle_right_001" }; List spriteNameList14 = new List { "bulletmanbandana_spawn_001", "bulletmanbandana_spawn_002", "bulletmanbandana_spawn_003" }; List spriteNameList15 = new List { "bulletmanbandana_pitfall_001", "bulletmanbandana_pitfall_002", "bulletmanbandana_pitfall_003", "bulletmanbandana_pitfall_004", "bulletmanbandana_pitfall_005" }; List spriteNameList16 = new List { "bulletmanbandana_corpse", "bulletmanbandana_corpse" }; SpriteSerializer.AddSpriteToObject(m_CachedTargetObject, BootlegBulletManBandanaCollection, list[0], (PerpendicularState)0); ExpandUtility.GenerateSpriteAnimator(m_CachedTargetObject, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true, IsFrameBlendedAnimation: false, 0f, 0f); tk2dSpriteAnimator component = m_CachedTargetObject.GetComponent(); ExpandUtility.AddAnimation(component, BootlegBulletManBandanaCollection.GetComponent(), spriteNameList2, "idle_west", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BootlegBulletManBandanaCollection.GetComponent(), spriteNameList3, "idle_east", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BootlegBulletManBandanaCollection.GetComponent(), list, "idle_south", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BootlegBulletManBandanaCollection.GetComponent(), spriteNameList, "idle_north", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BootlegBulletManBandanaCollection.GetComponent(), spriteNameList4, "run_west", (WrapMode)0, 24); ExpandUtility.AddAnimation(component, BootlegBulletManBandanaCollection.GetComponent(), spriteNameList5, "run_east", (WrapMode)0, 24); ExpandUtility.AddAnimation(component, BootlegBulletManBandanaCollection.GetComponent(), spriteNameList6, "run_south", (WrapMode)0, 24); ExpandUtility.AddAnimation(component, BootlegBulletManBandanaCollection.GetComponent(), spriteNameList7, "run_north", (WrapMode)0, 24); ExpandUtility.AddAnimation(component, BootlegBulletManBandanaCollection.GetComponent(), spriteNameList8, "hit_west", (WrapMode)2, 24); ExpandUtility.AddAnimation(component, BootlegBulletManBandanaCollection.GetComponent(), spriteNameList9, "hit_east", (WrapMode)2, 24); ExpandUtility.AddAnimation(component, BootlegBulletManBandanaCollection.GetComponent(), spriteNameList8, "hit_north", (WrapMode)2, 24); ExpandUtility.AddAnimation(component, BootlegBulletManBandanaCollection.GetComponent(), spriteNameList9, "hit_south", (WrapMode)2, 24); ExpandUtility.AddAnimation(component, BootlegBulletManBandanaCollection.GetComponent(), spriteNameList10, "cover_idle_west", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BootlegBulletManBandanaCollection.GetComponent(), spriteNameList11, "cover_idle_east", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BootlegBulletManBandanaCollection.GetComponent(), spriteNameList10, "cover_idle_north", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BootlegBulletManBandanaCollection.GetComponent(), spriteNameList11, "cover_idle_south", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BootlegBulletManBandanaCollection.GetComponent(), spriteNameList12, "cover_leep_west", (WrapMode)2, 6); ExpandUtility.AddAnimation(component, BootlegBulletManBandanaCollection.GetComponent(), spriteNameList13, "cover_leep_east", (WrapMode)2, 6); ExpandUtility.AddAnimation(component, BootlegBulletManBandanaCollection.GetComponent(), spriteNameList12, "cover_leep_north", (WrapMode)2, 6); ExpandUtility.AddAnimation(component, BootlegBulletManBandanaCollection.GetComponent(), spriteNameList13, "cover_leep_south", (WrapMode)2, 6); ExpandUtility.AddAnimation(component, BootlegBulletManBandanaCollection.GetComponent(), list, "awaken", (WrapMode)2, 6); ExpandUtility.AddAnimation(component, BootlegBulletManBandanaCollection.GetComponent(), spriteNameList14, "spawn", (WrapMode)2, 6); ExpandUtility.AddAnimation(component, BootlegBulletManBandanaCollection.GetComponent(), spriteNameList15, "pitfall_right", (WrapMode)2, 6); ExpandUtility.AddAnimation(component, BootlegBulletManBandanaCollection.GetComponent(), spriteNameList16, "die", (WrapMode)2, 8); ExpandUtility.AddAnimation(component, BootlegBulletManBandanaCollection.GetComponent(), spriteNameList16, "death", (WrapMode)2, 8); GameObject gameObject = ((Component)m_CachedTargetObject.transform.Find("GunAttachPoint")).gameObject; ExpandUtility.DuplicateAIShooterAndAIBulletBank(m_CachedTargetObject, ((BraveBehaviour)officialEnemyByGuid).aiShooter, ((Component)officialEnemyByGuid).GetComponent(), BootlegGuns.BootlegMachinePistolID, gameObject.transform); ExpandUtility.GenerateAIActorTemplate(m_CachedTargetObject, out corpseObject, "Bootleg Bandana Bullet Kin", BootlegBulletManBandanaGUID, null, null, null, 38, null, RigidBodyCollidesWithTileMap: true, RigidBodyCollidesWithOthers: true, RigidBodyCanBeCarried: true, RigidBodyCanBePushed: false, isFakePrefab: false, instantiateCorpseObject: false, GetOfficialEnemyByGuid("88b6b6a93d4b4234a67844ef4728382c").CorpseObject, EnemyHasNoShooter: true); AIActor component2 = m_CachedTargetObject.GetComponent(); if (!Object.op_Implicit((Object)(object)officialEnemyByGuid)) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for donor enemy is null!", false); } return; } component2.MovementSpeed = 2f; component2.PathableTiles = (CellTypes)2; ((BraveBehaviour)component2).aiShooter.handObject = null; component2.procedurallyOutlined = false; ((BraveBehaviour)component2).specRigidbody.PixelColliders.Clear(); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)3, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 2, ManualOffsetY = 1, ManualWidth = 10, ManualHeight = 6, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)2, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 2, ManualOffsetY = 1, ManualWidth = 10, ManualHeight = 13, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); if (Object.op_Implicit((Object)(object)((BraveBehaviour)component2).aiAnimator)) { ((BraveBehaviour)component2).aiAnimator.facingType = (FacingType)0; ((BraveBehaviour)component2).aiAnimator.faceSouthWhenStopped = false; ((BraveBehaviour)component2).aiAnimator.faceTargetWhenStopped = false; ((BraveBehaviour)component2).aiAnimator.HitType = (HitStateType)0; ((BraveBehaviour)component2).aiAnimator.IdleAnimation = new DirectionalAnimation { Type = (DirectionType)9, Prefix = "idle", AnimNames = new string[4], Flipped = (FlipType[])(object)new FlipType[4] }; ((BraveBehaviour)component2).aiAnimator.MoveAnimation = new DirectionalAnimation { Type = (DirectionType)9, Prefix = "run", AnimNames = new string[4], Flipped = (FlipType[])(object)new FlipType[4] }; ((BraveBehaviour)component2).aiAnimator.HitAnimation = new DirectionalAnimation { Type = (DirectionType)9, Prefix = "hit", AnimNames = new string[4], Flipped = (FlipType[])(object)new FlipType[4] }; AIAnimator aiAnimator = ((BraveBehaviour)component2).aiAnimator; List list2 = new List { new NamedDirectionalAnimation { name = "cover_idle", anim = new DirectionalAnimation { Type = (DirectionType)9, Prefix = "cover_idle", AnimNames = new string[4], Flipped = (FlipType[])(object)new FlipType[4] } }, new NamedDirectionalAnimation { name = "cover_leep", anim = new DirectionalAnimation { Type = (DirectionType)9, Prefix = "cover_leep", AnimNames = new string[4], Flipped = (FlipType[])(object)new FlipType[4] } } }; NamedDirectionalAnimation val = new NamedDirectionalAnimation(); val.name = "pitfall"; NamedDirectionalAnimation obj = val; DirectionalAnimation val2 = new DirectionalAnimation(); val2.Type = (DirectionType)1; val2.Prefix = "pitfall"; val2.AnimNames = new string[1] { "pitfall_right" }; val2.Flipped = (FlipType[])(object)new FlipType[1]; obj.anim = val2; list2.Add(val); val = new NamedDirectionalAnimation(); val.name = "die"; NamedDirectionalAnimation obj2 = val; val2 = new DirectionalAnimation(); val2.Type = (DirectionType)1; val2.Prefix = "die"; val2.AnimNames = new string[1] { "die" }; val2.Flipped = (FlipType[])(object)new FlipType[1]; obj2.anim = val2; list2.Add(val); val = new NamedDirectionalAnimation(); val.name = "death"; NamedDirectionalAnimation obj3 = val; val2 = new DirectionalAnimation(); val2.Type = (DirectionType)1; val2.Prefix = "death"; val2.AnimNames = new string[1] { "death" }; val2.Flipped = (FlipType[])(object)new FlipType[1]; obj3.anim = val2; list2.Add(val); aiAnimator.OtherAnimations = list2; } BehaviorSpeculator obj4 = m_CachedTargetObject.AddComponent(); obj4.OverrideBehaviors = new List(0); obj4.OtherBehaviors = new List(0); obj4.TargetBehaviors = new List { (TargetBehaviorBase)new TargetPlayerBehavior { Radius = 35f, LineOfSight = true, ObjectPermanence = true, SearchInterval = 0.25f, PauseOnTargetSwitch = false, PauseTime = 0.25f } }; obj4.MovementBehaviors = new List { (MovementBehaviorBase)new SeekTargetBehavior { StopWhenInRange = true, CustomRange = 6f, LineOfSight = false, ReturnToSpawn = true, SpawnTetherDistance = 0f, PathInterval = 0.5f, SpecifyRange = false, MinActiveRange = 0f, MaxActiveRange = 0f } }; obj4.AttackBehaviors = new List { (AttackBehaviorBase)new ShootGunBehavior { GroupCooldownVariance = 0.2f, LineOfSight = false, WeaponType = (WeaponType)0, OverrideBulletName = null, BulletScript = null, FixTargetDuringAttack = false, StopDuringAttack = false, LeadAmount = 0f, LeadChance = 1f, RespectReload = true, MagazineCapacity = 8f, ReloadSpeed = 2f, EmptiesClip = true, SuppressReloadAnim = false, TimeBetweenShots = -1f, PreventTargetSwitching = false, OverrideAnimation = null, OverrideDirectionalAnimation = null, HideGun = false, UseLaserSight = false, UseGreenLaser = false, PreFireLaserTime = -1f, AimAtFacingDirectionWhenSafe = false, Cooldown = 0.2f, CooldownVariance = 0f, AttackCooldown = 0f, GlobalCooldown = 0f, InitialCooldown = 0f, InitialCooldownVariance = 0f, GroupName = null, GroupCooldown = 0f, MinRange = 0f, Range = 16f, MinWallDistance = 0f, MaxEnemiesInRoom = 0f, MinHealthThreshold = 0f, MaxHealthThreshold = 1f, HealthThresholds = new float[0], AccumulateHealthThresholds = true, targetAreaStyle = null, IsBlackPhantom = false, resetCooldownOnDamage = null, RequiresLineOfSight = false, MaxUsages = 0 } }; obj4.InstantFirstTick = false; obj4.TickInterval = 0.1f; obj4.PostAwakenDelay = 1f; obj4.RemoveDelayOnReinforce = false; obj4.OverrideStartingFacingDirection = false; obj4.StartingFacingDirection = -90f; obj4.SkipTimingDifferentiator = false; ((ISerializedObject)obj4).SerializedObjectReferences = new List(0); ((ISerializedObject)obj4).SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; ((ISerializedObject)obj4).SerializedStateValues = new List(0); AddEnemyToDatabaseAndAmmonomicon(component2, BootlegBulletManBandanaGUID, ExpandAmmonomiconDatabase.BootlegBandanaBulletKin); officialEnemyByGuid = null; } public static void BuildBootlegShotgunManRedPrefab(AssetBundle expandSharedAssets1, out GameObject m_CachedTargetObject) { //IL_0705: Unknown result type (might be due to invalid IL or missing references) //IL_0786: Unknown result type (might be due to invalid IL or missing references) //IL_078b: Unknown result type (might be due to invalid IL or missing references) //IL_078d: Unknown result type (might be due to invalid IL or missing references) //IL_0792: Unknown result type (might be due to invalid IL or missing references) //IL_0794: Unknown result type (might be due to invalid IL or missing references) //IL_0799: Unknown result type (might be due to invalid IL or missing references) //IL_07a0: Unknown result type (might be due to invalid IL or missing references) //IL_07a7: Unknown result type (might be due to invalid IL or missing references) //IL_07b2: Unknown result type (might be due to invalid IL or missing references) //IL_07b9: Unknown result type (might be due to invalid IL or missing references) //IL_07c0: Unknown result type (might be due to invalid IL or missing references) //IL_07c7: Unknown result type (might be due to invalid IL or missing references) //IL_07cf: Unknown result type (might be due to invalid IL or missing references) //IL_07d7: Unknown result type (might be due to invalid IL or missing references) //IL_07de: Unknown result type (might be due to invalid IL or missing references) //IL_07e5: Unknown result type (might be due to invalid IL or missing references) //IL_07ec: Unknown result type (might be due to invalid IL or missing references) //IL_07f3: Unknown result type (might be due to invalid IL or missing references) //IL_07ff: Expected O, but got Unknown //IL_080b: Unknown result type (might be due to invalid IL or missing references) //IL_0810: Unknown result type (might be due to invalid IL or missing references) //IL_0812: Unknown result type (might be due to invalid IL or missing references) //IL_0817: Unknown result type (might be due to invalid IL or missing references) //IL_0819: Unknown result type (might be due to invalid IL or missing references) //IL_081e: Unknown result type (might be due to invalid IL or missing references) //IL_0825: Unknown result type (might be due to invalid IL or missing references) //IL_082c: Unknown result type (might be due to invalid IL or missing references) //IL_0837: Unknown result type (might be due to invalid IL or missing references) //IL_083e: Unknown result type (might be due to invalid IL or missing references) //IL_0845: Unknown result type (might be due to invalid IL or missing references) //IL_084c: Unknown result type (might be due to invalid IL or missing references) //IL_0854: Unknown result type (might be due to invalid IL or missing references) //IL_085c: Unknown result type (might be due to invalid IL or missing references) //IL_0863: Unknown result type (might be due to invalid IL or missing references) //IL_086a: Unknown result type (might be due to invalid IL or missing references) //IL_0871: Unknown result type (might be due to invalid IL or missing references) //IL_0878: Unknown result type (might be due to invalid IL or missing references) //IL_0884: Expected O, but got Unknown //IL_0ade: Unknown result type (might be due to invalid IL or missing references) //IL_0ae3: Unknown result type (might be due to invalid IL or missing references) //IL_0aee: Unknown result type (might be due to invalid IL or missing references) //IL_0af5: Unknown result type (might be due to invalid IL or missing references) //IL_0afc: Unknown result type (might be due to invalid IL or missing references) //IL_0b07: Unknown result type (might be due to invalid IL or missing references) //IL_0b0e: Unknown result type (might be due to invalid IL or missing references) //IL_0b1e: Expected O, but got Unknown //IL_0b2a: Unknown result type (might be due to invalid IL or missing references) //IL_0b34: Expected O, but got Unknown //IL_0b35: Unknown result type (might be due to invalid IL or missing references) //IL_0b3a: Unknown result type (might be due to invalid IL or missing references) //IL_0b41: Unknown result type (might be due to invalid IL or missing references) //IL_0b4c: Unknown result type (might be due to invalid IL or missing references) //IL_0b53: Unknown result type (might be due to invalid IL or missing references) //IL_0b5a: Unknown result type (might be due to invalid IL or missing references) //IL_0b65: Unknown result type (might be due to invalid IL or missing references) //IL_0b70: Unknown result type (might be due to invalid IL or missing references) //IL_0b77: Unknown result type (might be due to invalid IL or missing references) //IL_0b82: Unknown result type (might be due to invalid IL or missing references) //IL_0b92: Expected O, but got Unknown //IL_0b9e: Unknown result type (might be due to invalid IL or missing references) //IL_0ba3: Unknown result type (might be due to invalid IL or missing references) //IL_0bae: Unknown result type (might be due to invalid IL or missing references) //IL_0bb5: Unknown result type (might be due to invalid IL or missing references) //IL_0bb7: Unknown result type (might be due to invalid IL or missing references) //IL_0bbc: Unknown result type (might be due to invalid IL or missing references) //IL_0bc3: Unknown result type (might be due to invalid IL or missing references) //IL_0bc4: Unknown result type (might be due to invalid IL or missing references) //IL_0bc9: Unknown result type (might be due to invalid IL or missing references) //IL_0bd9: Expected O, but got Unknown //IL_0bd9: Unknown result type (might be due to invalid IL or missing references) //IL_0be0: Unknown result type (might be due to invalid IL or missing references) //IL_0be7: Unknown result type (might be due to invalid IL or missing references) //IL_0bf2: Unknown result type (might be due to invalid IL or missing references) //IL_0bfd: Unknown result type (might be due to invalid IL or missing references) //IL_0c04: Unknown result type (might be due to invalid IL or missing references) //IL_0c0f: Unknown result type (might be due to invalid IL or missing references) //IL_0c1a: Unknown result type (might be due to invalid IL or missing references) //IL_0c21: Unknown result type (might be due to invalid IL or missing references) //IL_0c28: Unknown result type (might be due to invalid IL or missing references) //IL_0c33: Unknown result type (might be due to invalid IL or missing references) //IL_0c3a: Unknown result type (might be due to invalid IL or missing references) //IL_0c41: Unknown result type (might be due to invalid IL or missing references) //IL_0c48: Unknown result type (might be due to invalid IL or missing references) //IL_0c4f: Unknown result type (might be due to invalid IL or missing references) //IL_0c56: Unknown result type (might be due to invalid IL or missing references) //IL_0c5d: Unknown result type (might be due to invalid IL or missing references) //IL_0c68: Unknown result type (might be due to invalid IL or missing references) //IL_0c6f: Unknown result type (might be due to invalid IL or missing references) //IL_0c7a: Unknown result type (might be due to invalid IL or missing references) //IL_0c85: Unknown result type (might be due to invalid IL or missing references) //IL_0c90: Unknown result type (might be due to invalid IL or missing references) //IL_0c9b: Unknown result type (might be due to invalid IL or missing references) //IL_0ca6: Unknown result type (might be due to invalid IL or missing references) //IL_0cb1: Unknown result type (might be due to invalid IL or missing references) //IL_0cb8: Unknown result type (might be due to invalid IL or missing references) //IL_0cc3: Unknown result type (might be due to invalid IL or missing references) //IL_0cce: Unknown result type (might be due to invalid IL or missing references) //IL_0cd9: Unknown result type (might be due to invalid IL or missing references) //IL_0ce4: Unknown result type (might be due to invalid IL or missing references) //IL_0cef: Unknown result type (might be due to invalid IL or missing references) //IL_0cfa: Unknown result type (might be due to invalid IL or missing references) //IL_0d05: Unknown result type (might be due to invalid IL or missing references) //IL_0d11: Unknown result type (might be due to invalid IL or missing references) //IL_0d18: Unknown result type (might be due to invalid IL or missing references) //IL_0d1f: Unknown result type (might be due to invalid IL or missing references) //IL_0d26: Unknown result type (might be due to invalid IL or missing references) //IL_0d2d: Unknown result type (might be due to invalid IL or missing references) //IL_0d34: Unknown result type (might be due to invalid IL or missing references) //IL_0d40: Expected O, but got Unknown //IL_089d: Unknown result type (might be due to invalid IL or missing references) //IL_08c4: Unknown result type (might be due to invalid IL or missing references) //IL_08d0: Unknown result type (might be due to invalid IL or missing references) //IL_08d5: Unknown result type (might be due to invalid IL or missing references) //IL_08d8: Unknown result type (might be due to invalid IL or missing references) //IL_08dd: Unknown result type (might be due to invalid IL or missing references) //IL_08e8: Unknown result type (might be due to invalid IL or missing references) //IL_08f4: Unknown result type (might be due to invalid IL or missing references) //IL_0905: Expected O, but got Unknown //IL_090c: Unknown result type (might be due to invalid IL or missing references) //IL_0911: Unknown result type (might be due to invalid IL or missing references) //IL_0914: Unknown result type (might be due to invalid IL or missing references) //IL_0919: Unknown result type (might be due to invalid IL or missing references) //IL_0924: Unknown result type (might be due to invalid IL or missing references) //IL_0930: Unknown result type (might be due to invalid IL or missing references) //IL_0941: Expected O, but got Unknown //IL_0948: Unknown result type (might be due to invalid IL or missing references) //IL_094d: Unknown result type (might be due to invalid IL or missing references) //IL_0950: Unknown result type (might be due to invalid IL or missing references) //IL_0955: Unknown result type (might be due to invalid IL or missing references) //IL_0960: Unknown result type (might be due to invalid IL or missing references) //IL_096c: Unknown result type (might be due to invalid IL or missing references) //IL_097d: Expected O, but got Unknown //IL_098d: Unknown result type (might be due to invalid IL or missing references) //IL_0994: Expected O, but got Unknown //IL_09a2: Unknown result type (might be due to invalid IL or missing references) //IL_09a9: Expected O, but got Unknown //IL_09ac: Unknown result type (might be due to invalid IL or missing references) //IL_09ef: Unknown result type (might be due to invalid IL or missing references) //IL_09f6: Expected O, but got Unknown //IL_0a04: Unknown result type (might be due to invalid IL or missing references) //IL_0a0b: Expected O, but got Unknown //IL_0a0e: Unknown result type (might be due to invalid IL or missing references) //IL_0a51: Unknown result type (might be due to invalid IL or missing references) //IL_0a58: Expected O, but got Unknown //IL_0a66: Unknown result type (might be due to invalid IL or missing references) //IL_0a6d: Expected O, but got Unknown //IL_0a70: Unknown result type (might be due to invalid IL or missing references) AIActor officialEnemyByGuid = GetOfficialEnemyByGuid("128db2f0781141bcb505d8f00f9e4d47"); GameObject corpseObject = null; m_CachedTargetObject = expandSharedAssets1.LoadAsset("Bootleg ShotgunMan Red"); new List { "shotgunman_red_up", "shotgunman_red_down", "shotgunman_red_left", "shotgunman_red_right", "shotgunman_red_move_down_001", "shotgunman_red_move_down_002", "shotgunman_red_move_down_003", "shotgunman_red_move_down_004", "shotgunman_red_move_down_005", "shotgunman_red_move_left_001", "shotgunman_red_move_left_002", "shotgunman_red_move_left_003", "shotgunman_red_move_left_004", "shotgunman_red_move_left_005", "shotgunman_red_move_right_001", "shotgunman_red_move_right_002", "shotgunman_red_move_right_003", "shotgunman_red_move_right_004", "shotgunman_red_move_right_005", "shotgunman_red_move_up_001", "shotgunman_red_move_up_002", "shotgunman_red_move_up_003", "shotgunman_red_move_up_004", "shotgunman_red_move_up_005", "shotgunman_red_pitfall_001", "shotgunman_red_pitfall_002", "shotgunman_red_pitfall_003", "shotgunman_red_pitfall_004", "shotgunman_red_pitfall_005", "shotgunman_red_spawn_001", "shotgunman_red_spawn_002", "shotgunman_red_spawn_003", "shotgunman_red_hit_left", "shotgunman_red_hit_right", "shotgunman_red_corpse" }; List list = new List { "shotgunman_red_down", "shotgunman_red_down" }; List spriteNameList = new List { "shotgunman_red_up", "shotgunman_red_up" }; List spriteNameList2 = new List { "shotgunman_red_left", "shotgunman_red_left" }; List spriteNameList3 = new List { "shotgunman_red_right", "shotgunman_red_right" }; List spriteNameList4 = new List { "shotgunman_red_move_left_001", "shotgunman_red_move_left_002", "shotgunman_red_move_left_003", "shotgunman_red_move_left_004", "shotgunman_red_move_left_005" }; List spriteNameList5 = new List { "shotgunman_red_move_right_001", "shotgunman_red_move_right_002", "shotgunman_red_move_right_003", "shotgunman_red_move_right_004", "shotgunman_red_move_right_005" }; List spriteNameList6 = new List { "shotgunman_red_move_down_001", "shotgunman_red_move_down_002", "shotgunman_red_move_down_003", "shotgunman_red_move_down_004", "shotgunman_red_move_down_005" }; List spriteNameList7 = new List { "shotgunman_red_move_up_001", "shotgunman_red_move_up_002", "shotgunman_red_move_up_003", "shotgunman_red_move_up_004", "shotgunman_red_move_up_005" }; List spriteNameList8 = new List { "shotgunman_red_hit_left", "shotgunman_red_hit_left" }; List spriteNameList9 = new List { "shotgunman_red_hit_right", "shotgunman_red_hit_right" }; List spriteNameList10 = new List { "shotgunman_red_spawn_001", "shotgunman_red_spawn_002", "shotgunman_red_spawn_003" }; List spriteNameList11 = new List { "shotgunman_red_pitfall_001", "shotgunman_red_pitfall_002", "shotgunman_red_pitfall_003", "shotgunman_red_pitfall_004", "shotgunman_red_pitfall_005" }; List spriteNameList12 = new List { "shotgunman_red_corpse", "shotgunman_red_corpse" }; SpriteSerializer.AddSpriteToObject(m_CachedTargetObject, BootlegShotgunManRedCollection, list[0], (PerpendicularState)0); ExpandUtility.GenerateSpriteAnimator(m_CachedTargetObject, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true, IsFrameBlendedAnimation: false, 0f, 0f); tk2dSpriteAnimator component = m_CachedTargetObject.GetComponent(); ExpandUtility.AddAnimation(component, BootlegShotgunManRedCollection.GetComponent(), spriteNameList2, "idle_west", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BootlegShotgunManRedCollection.GetComponent(), spriteNameList3, "idle_east", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BootlegShotgunManRedCollection.GetComponent(), list, "idle_south", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BootlegShotgunManRedCollection.GetComponent(), spriteNameList, "idle_north", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BootlegShotgunManRedCollection.GetComponent(), spriteNameList4, "move_west", (WrapMode)0, 24); ExpandUtility.AddAnimation(component, BootlegShotgunManRedCollection.GetComponent(), spriteNameList5, "move_east", (WrapMode)0, 24); ExpandUtility.AddAnimation(component, BootlegShotgunManRedCollection.GetComponent(), spriteNameList6, "move_south", (WrapMode)0, 24); ExpandUtility.AddAnimation(component, BootlegShotgunManRedCollection.GetComponent(), spriteNameList7, "move_north", (WrapMode)0, 24); ExpandUtility.AddAnimation(component, BootlegShotgunManRedCollection.GetComponent(), spriteNameList8, "hit_west", (WrapMode)2, 4); ExpandUtility.AddAnimation(component, BootlegShotgunManRedCollection.GetComponent(), spriteNameList9, "hit_east", (WrapMode)2, 4); ExpandUtility.AddAnimation(component, BootlegShotgunManRedCollection.GetComponent(), spriteNameList8, "hit_north", (WrapMode)2, 4); ExpandUtility.AddAnimation(component, BootlegShotgunManRedCollection.GetComponent(), spriteNameList9, "hit_south", (WrapMode)2, 4); ExpandUtility.AddAnimation(component, BootlegShotgunManRedCollection.GetComponent(), spriteNameList10, "spawn", (WrapMode)2, 6); ExpandUtility.AddAnimation(component, BootlegShotgunManRedCollection.GetComponent(), spriteNameList11, "pitfall_right", (WrapMode)2, 6); ExpandUtility.AddAnimation(component, BootlegShotgunManRedCollection.GetComponent(), spriteNameList12, "death", (WrapMode)2, 8); ExpandUtility.AddAnimation(component, BootlegShotgunManRedCollection.GetComponent(), spriteNameList12, "die", (WrapMode)2, 10); GameObject gameObject = ((Component)m_CachedTargetObject.transform.Find("GunAttachPoint")).gameObject; ExpandUtility.DuplicateAIShooterAndAIBulletBank(m_CachedTargetObject, ((BraveBehaviour)officialEnemyByGuid).aiShooter, ((Component)officialEnemyByGuid).GetComponent(), BootlegGuns.BootlegShotgunID, gameObject.transform); ExpandUtility.GenerateAIActorTemplate(m_CachedTargetObject, out corpseObject, "Bootleg Red Shogun Kin", BootlegShotgunManRedGUID, null, null, null, 38, null, RigidBodyCollidesWithTileMap: true, RigidBodyCollidesWithOthers: true, RigidBodyCanBeCarried: true, RigidBodyCanBePushed: false, isFakePrefab: false, instantiateCorpseObject: false, GetOfficialEnemyByGuid("88b6b6a93d4b4234a67844ef4728382c").CorpseObject, EnemyHasNoShooter: true); AIActor component2 = m_CachedTargetObject.GetComponent(); if (!Object.op_Implicit((Object)(object)officialEnemyByGuid)) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for donor enemy is null!", false); } return; } component2.MovementSpeed = 2f; component2.PathableTiles = (CellTypes)2; ((BraveBehaviour)component2).aiShooter.handObject = null; component2.procedurallyOutlined = false; component2.EnemySwitchState = "Plastic_Bullet_Man"; ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(30f, (float?)null, false); ((BraveBehaviour)component2).healthHaver.ForceSetCurrentHealth(30f); ((BraveBehaviour)component2).healthHaver.damagedAudioEvent = "Play_CHR_plasticBullet_hurt_01"; ((BraveBehaviour)component2).specRigidbody.PixelColliders.Clear(); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)3, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 1, ManualOffsetY = 1, ManualWidth = 12, ManualHeight = 12, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)2, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 1, ManualOffsetY = 1, ManualWidth = 12, ManualHeight = 24, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); if (Object.op_Implicit((Object)(object)((BraveBehaviour)component2).aiAnimator)) { ((BraveBehaviour)component2).aiAnimator.facingType = (FacingType)1; ((BraveBehaviour)component2).aiAnimator.faceSouthWhenStopped = false; ((BraveBehaviour)component2).aiAnimator.faceTargetWhenStopped = true; ((BraveBehaviour)component2).aiAnimator.HitType = (HitStateType)0; ((BraveBehaviour)component2).aiAnimator.IdleAnimation = new DirectionalAnimation { Type = (DirectionType)9, Prefix = "idle", AnimNames = new string[4], Flipped = (FlipType[])(object)new FlipType[4] }; ((BraveBehaviour)component2).aiAnimator.MoveAnimation = new DirectionalAnimation { Type = (DirectionType)9, Prefix = "move", AnimNames = new string[4], Flipped = (FlipType[])(object)new FlipType[4] }; ((BraveBehaviour)component2).aiAnimator.HitAnimation = new DirectionalAnimation { Type = (DirectionType)9, Prefix = "hit", AnimNames = new string[4], Flipped = (FlipType[])(object)new FlipType[4] }; AIAnimator aiAnimator = ((BraveBehaviour)component2).aiAnimator; List list2 = new List(); NamedDirectionalAnimation val = new NamedDirectionalAnimation(); val.name = "pitfall"; NamedDirectionalAnimation obj = val; DirectionalAnimation val2 = new DirectionalAnimation(); val2.Type = (DirectionType)1; val2.Prefix = "pitfall"; val2.AnimNames = new string[1] { "pitfall_right" }; val2.Flipped = (FlipType[])(object)new FlipType[1]; obj.anim = val2; list2.Add(val); val = new NamedDirectionalAnimation(); val.name = "die"; NamedDirectionalAnimation obj2 = val; val2 = new DirectionalAnimation(); val2.Type = (DirectionType)1; val2.Prefix = "die"; val2.AnimNames = new string[1] { "die" }; val2.Flipped = (FlipType[])(object)new FlipType[1]; obj2.anim = val2; list2.Add(val); val = new NamedDirectionalAnimation(); val.name = "death"; NamedDirectionalAnimation obj3 = val; val2 = new DirectionalAnimation(); val2.Type = (DirectionType)1; val2.Prefix = "death"; val2.AnimNames = new string[1] { "death" }; val2.Flipped = (FlipType[])(object)new FlipType[1]; obj3.anim = val2; list2.Add(val); aiAnimator.OtherAnimations = list2; } BehaviorSpeculator obj4 = m_CachedTargetObject.AddComponent(); obj4.OverrideBehaviors = new List(0); obj4.OtherBehaviors = new List(0); obj4.TargetBehaviors = new List { (TargetBehaviorBase)new TargetPlayerBehavior { Radius = 35f, LineOfSight = true, ObjectPermanence = true, SearchInterval = 0.25f, PauseOnTargetSwitch = false, PauseTime = 0.25f } }; obj4.MovementBehaviors = new List { (MovementBehaviorBase)new RideInCartsBehavior(), (MovementBehaviorBase)new SeekTargetBehavior { StopWhenInRange = true, CustomRange = 6f, LineOfSight = true, ReturnToSpawn = true, SpawnTetherDistance = 0f, PathInterval = 0.5f, SpecifyRange = false, MinActiveRange = 0f, MaxActiveRange = 0f } }; obj4.AttackBehaviors = new List { (AttackBehaviorBase)new ShootGunBehavior { GroupCooldownVariance = 0.2f, LineOfSight = true, WeaponType = (WeaponType)2, OverrideBulletName = null, BulletScript = new BulletScriptSelector { scriptTypeName = "BulletShotgunManRedBasicAttack1" }, FixTargetDuringAttack = false, StopDuringAttack = true, LeadAmount = 0f, LeadChance = 1f, RespectReload = true, MagazineCapacity = 1f, ReloadSpeed = 3f, EmptiesClip = false, SuppressReloadAnim = false, TimeBetweenShots = -1f, PreventTargetSwitching = false, OverrideAnimation = null, OverrideDirectionalAnimation = null, HideGun = false, UseLaserSight = false, UseGreenLaser = false, PreFireLaserTime = -1f, AimAtFacingDirectionWhenSafe = false, Cooldown = 3.5f, CooldownVariance = 0f, AttackCooldown = 0f, GlobalCooldown = 0f, InitialCooldown = 0f, InitialCooldownVariance = 0f, GroupName = null, GroupCooldown = 0f, MinRange = 0f, Range = 20f, MinWallDistance = 0f, MaxEnemiesInRoom = 0f, MinHealthThreshold = 0f, MaxHealthThreshold = 1f, HealthThresholds = new float[0], AccumulateHealthThresholds = true, targetAreaStyle = null, IsBlackPhantom = false, resetCooldownOnDamage = null, RequiresLineOfSight = false, MaxUsages = 0 } }; obj4.InstantFirstTick = false; obj4.TickInterval = 0.1f; obj4.PostAwakenDelay = 0.5f; obj4.RemoveDelayOnReinforce = false; obj4.OverrideStartingFacingDirection = false; obj4.StartingFacingDirection = -90f; obj4.SkipTimingDifferentiator = false; ((ISerializedObject)obj4).SerializedObjectReferences = new List(0); ((ISerializedObject)obj4).SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; ((ISerializedObject)obj4).SerializedStateValues = new List(0); AddEnemyToDatabaseAndAmmonomicon(component2, BootlegShotgunManRedGUID, ExpandAmmonomiconDatabase.BootlegShotgunKinRed); officialEnemyByGuid = null; } public static void BuildBootlegShotgunManBluePrefab(AssetBundle expandSharedAssets1, out GameObject m_CachedTargetObject) { //IL_0705: Unknown result type (might be due to invalid IL or missing references) //IL_0786: Unknown result type (might be due to invalid IL or missing references) //IL_078b: Unknown result type (might be due to invalid IL or missing references) //IL_078d: Unknown result type (might be due to invalid IL or missing references) //IL_0792: Unknown result type (might be due to invalid IL or missing references) //IL_0794: Unknown result type (might be due to invalid IL or missing references) //IL_0799: Unknown result type (might be due to invalid IL or missing references) //IL_07a0: Unknown result type (might be due to invalid IL or missing references) //IL_07a7: Unknown result type (might be due to invalid IL or missing references) //IL_07b2: Unknown result type (might be due to invalid IL or missing references) //IL_07b9: Unknown result type (might be due to invalid IL or missing references) //IL_07c0: Unknown result type (might be due to invalid IL or missing references) //IL_07c7: Unknown result type (might be due to invalid IL or missing references) //IL_07cf: Unknown result type (might be due to invalid IL or missing references) //IL_07d7: Unknown result type (might be due to invalid IL or missing references) //IL_07de: Unknown result type (might be due to invalid IL or missing references) //IL_07e5: Unknown result type (might be due to invalid IL or missing references) //IL_07ec: Unknown result type (might be due to invalid IL or missing references) //IL_07f3: Unknown result type (might be due to invalid IL or missing references) //IL_07ff: Expected O, but got Unknown //IL_080b: Unknown result type (might be due to invalid IL or missing references) //IL_0810: Unknown result type (might be due to invalid IL or missing references) //IL_0812: Unknown result type (might be due to invalid IL or missing references) //IL_0817: Unknown result type (might be due to invalid IL or missing references) //IL_0819: Unknown result type (might be due to invalid IL or missing references) //IL_081e: Unknown result type (might be due to invalid IL or missing references) //IL_0825: Unknown result type (might be due to invalid IL or missing references) //IL_082c: Unknown result type (might be due to invalid IL or missing references) //IL_0837: Unknown result type (might be due to invalid IL or missing references) //IL_083e: Unknown result type (might be due to invalid IL or missing references) //IL_0845: Unknown result type (might be due to invalid IL or missing references) //IL_084c: Unknown result type (might be due to invalid IL or missing references) //IL_0854: Unknown result type (might be due to invalid IL or missing references) //IL_085c: Unknown result type (might be due to invalid IL or missing references) //IL_0863: Unknown result type (might be due to invalid IL or missing references) //IL_086a: Unknown result type (might be due to invalid IL or missing references) //IL_0871: Unknown result type (might be due to invalid IL or missing references) //IL_0878: Unknown result type (might be due to invalid IL or missing references) //IL_0884: Expected O, but got Unknown //IL_0ade: Unknown result type (might be due to invalid IL or missing references) //IL_0ae3: Unknown result type (might be due to invalid IL or missing references) //IL_0aee: Unknown result type (might be due to invalid IL or missing references) //IL_0af5: Unknown result type (might be due to invalid IL or missing references) //IL_0afc: Unknown result type (might be due to invalid IL or missing references) //IL_0b07: Unknown result type (might be due to invalid IL or missing references) //IL_0b0e: Unknown result type (might be due to invalid IL or missing references) //IL_0b1e: Expected O, but got Unknown //IL_0b2a: Unknown result type (might be due to invalid IL or missing references) //IL_0b34: Expected O, but got Unknown //IL_0b35: Unknown result type (might be due to invalid IL or missing references) //IL_0b3a: Unknown result type (might be due to invalid IL or missing references) //IL_0b41: Unknown result type (might be due to invalid IL or missing references) //IL_0b4c: Unknown result type (might be due to invalid IL or missing references) //IL_0b53: Unknown result type (might be due to invalid IL or missing references) //IL_0b5a: Unknown result type (might be due to invalid IL or missing references) //IL_0b65: Unknown result type (might be due to invalid IL or missing references) //IL_0b70: Unknown result type (might be due to invalid IL or missing references) //IL_0b77: Unknown result type (might be due to invalid IL or missing references) //IL_0b82: Unknown result type (might be due to invalid IL or missing references) //IL_0b92: Expected O, but got Unknown //IL_0b9e: Unknown result type (might be due to invalid IL or missing references) //IL_0ba3: Unknown result type (might be due to invalid IL or missing references) //IL_0bae: Unknown result type (might be due to invalid IL or missing references) //IL_0bb5: Unknown result type (might be due to invalid IL or missing references) //IL_0bb7: Unknown result type (might be due to invalid IL or missing references) //IL_0bbc: Unknown result type (might be due to invalid IL or missing references) //IL_0bc3: Unknown result type (might be due to invalid IL or missing references) //IL_0bc4: Unknown result type (might be due to invalid IL or missing references) //IL_0bc9: Unknown result type (might be due to invalid IL or missing references) //IL_0bd9: Expected O, but got Unknown //IL_0bd9: Unknown result type (might be due to invalid IL or missing references) //IL_0be0: Unknown result type (might be due to invalid IL or missing references) //IL_0be7: Unknown result type (might be due to invalid IL or missing references) //IL_0bf2: Unknown result type (might be due to invalid IL or missing references) //IL_0bfd: Unknown result type (might be due to invalid IL or missing references) //IL_0c04: Unknown result type (might be due to invalid IL or missing references) //IL_0c0f: Unknown result type (might be due to invalid IL or missing references) //IL_0c1a: Unknown result type (might be due to invalid IL or missing references) //IL_0c21: Unknown result type (might be due to invalid IL or missing references) //IL_0c28: Unknown result type (might be due to invalid IL or missing references) //IL_0c33: Unknown result type (might be due to invalid IL or missing references) //IL_0c3a: Unknown result type (might be due to invalid IL or missing references) //IL_0c41: Unknown result type (might be due to invalid IL or missing references) //IL_0c48: Unknown result type (might be due to invalid IL or missing references) //IL_0c4f: Unknown result type (might be due to invalid IL or missing references) //IL_0c56: Unknown result type (might be due to invalid IL or missing references) //IL_0c5d: Unknown result type (might be due to invalid IL or missing references) //IL_0c68: Unknown result type (might be due to invalid IL or missing references) //IL_0c6f: Unknown result type (might be due to invalid IL or missing references) //IL_0c7a: Unknown result type (might be due to invalid IL or missing references) //IL_0c85: Unknown result type (might be due to invalid IL or missing references) //IL_0c90: Unknown result type (might be due to invalid IL or missing references) //IL_0c9b: Unknown result type (might be due to invalid IL or missing references) //IL_0ca6: Unknown result type (might be due to invalid IL or missing references) //IL_0cb1: Unknown result type (might be due to invalid IL or missing references) //IL_0cb8: Unknown result type (might be due to invalid IL or missing references) //IL_0cc3: Unknown result type (might be due to invalid IL or missing references) //IL_0cce: Unknown result type (might be due to invalid IL or missing references) //IL_0cd9: Unknown result type (might be due to invalid IL or missing references) //IL_0ce4: Unknown result type (might be due to invalid IL or missing references) //IL_0cef: Unknown result type (might be due to invalid IL or missing references) //IL_0cfa: Unknown result type (might be due to invalid IL or missing references) //IL_0d05: Unknown result type (might be due to invalid IL or missing references) //IL_0d11: Unknown result type (might be due to invalid IL or missing references) //IL_0d18: Unknown result type (might be due to invalid IL or missing references) //IL_0d1f: Unknown result type (might be due to invalid IL or missing references) //IL_0d26: Unknown result type (might be due to invalid IL or missing references) //IL_0d2d: Unknown result type (might be due to invalid IL or missing references) //IL_0d34: Unknown result type (might be due to invalid IL or missing references) //IL_0d40: Expected O, but got Unknown //IL_089d: Unknown result type (might be due to invalid IL or missing references) //IL_08c4: Unknown result type (might be due to invalid IL or missing references) //IL_08d0: Unknown result type (might be due to invalid IL or missing references) //IL_08d5: Unknown result type (might be due to invalid IL or missing references) //IL_08d8: Unknown result type (might be due to invalid IL or missing references) //IL_08dd: Unknown result type (might be due to invalid IL or missing references) //IL_08e8: Unknown result type (might be due to invalid IL or missing references) //IL_08f4: Unknown result type (might be due to invalid IL or missing references) //IL_0905: Expected O, but got Unknown //IL_090c: Unknown result type (might be due to invalid IL or missing references) //IL_0911: Unknown result type (might be due to invalid IL or missing references) //IL_0914: Unknown result type (might be due to invalid IL or missing references) //IL_0919: Unknown result type (might be due to invalid IL or missing references) //IL_0924: Unknown result type (might be due to invalid IL or missing references) //IL_0930: Unknown result type (might be due to invalid IL or missing references) //IL_0941: Expected O, but got Unknown //IL_0948: Unknown result type (might be due to invalid IL or missing references) //IL_094d: Unknown result type (might be due to invalid IL or missing references) //IL_0950: Unknown result type (might be due to invalid IL or missing references) //IL_0955: Unknown result type (might be due to invalid IL or missing references) //IL_0960: Unknown result type (might be due to invalid IL or missing references) //IL_096c: Unknown result type (might be due to invalid IL or missing references) //IL_097d: Expected O, but got Unknown //IL_098d: Unknown result type (might be due to invalid IL or missing references) //IL_0994: Expected O, but got Unknown //IL_09a2: Unknown result type (might be due to invalid IL or missing references) //IL_09a9: Expected O, but got Unknown //IL_09ac: Unknown result type (might be due to invalid IL or missing references) //IL_09ef: Unknown result type (might be due to invalid IL or missing references) //IL_09f6: Expected O, but got Unknown //IL_0a04: Unknown result type (might be due to invalid IL or missing references) //IL_0a0b: Expected O, but got Unknown //IL_0a0e: Unknown result type (might be due to invalid IL or missing references) //IL_0a51: Unknown result type (might be due to invalid IL or missing references) //IL_0a58: Expected O, but got Unknown //IL_0a66: Unknown result type (might be due to invalid IL or missing references) //IL_0a6d: Expected O, but got Unknown //IL_0a70: Unknown result type (might be due to invalid IL or missing references) AIActor officialEnemyByGuid = GetOfficialEnemyByGuid("b54d89f9e802455cbb2b8a96a31e8259"); GameObject corpseObject = null; m_CachedTargetObject = expandSharedAssets1.LoadAsset("Bootleg ShotgunMan Blue"); new List { "shotgunman_blue_up", "shotgunman_blue_down", "shotgunman_blue_left", "shotgunman_blue_right", "shotgunman_blue_move_down_001", "shotgunman_blue_move_down_002", "shotgunman_blue_move_down_003", "shotgunman_blue_move_down_004", "shotgunman_blue_move_down_005", "shotgunman_blue_move_left_001", "shotgunman_blue_move_left_002", "shotgunman_blue_move_left_003", "shotgunman_blue_move_left_004", "shotgunman_blue_move_left_005", "shotgunman_blue_move_right_001", "shotgunman_blue_move_right_002", "shotgunman_blue_move_right_003", "shotgunman_blue_move_right_004", "shotgunman_blue_move_right_005", "shotgunman_blue_move_up_001", "shotgunman_blue_move_up_002", "shotgunman_blue_move_up_003", "shotgunman_blue_move_up_004", "shotgunman_blue_move_up_005", "shotgunman_blue_pitfall_001", "shotgunman_blue_pitfall_002", "shotgunman_blue_pitfall_003", "shotgunman_blue_pitfall_004", "shotgunman_blue_pitfall_005", "shotgunman_blue_spawn_001", "shotgunman_blue_spawn_002", "shotgunman_blue_spawn_003", "shotgunman_blue_hit_left", "shotgunman_blue_hit_right", "shotgunman_blue_corpse" }; List list = new List { "shotgunman_blue_down", "shotgunman_blue_down" }; List spriteNameList = new List { "shotgunman_blue_up", "shotgunman_blue_up" }; List spriteNameList2 = new List { "shotgunman_blue_left", "shotgunman_blue_left" }; List spriteNameList3 = new List { "shotgunman_blue_right", "shotgunman_blue_right" }; List spriteNameList4 = new List { "shotgunman_blue_move_left_001", "shotgunman_blue_move_left_002", "shotgunman_blue_move_left_003", "shotgunman_blue_move_left_004", "shotgunman_blue_move_left_005" }; List spriteNameList5 = new List { "shotgunman_blue_move_right_001", "shotgunman_blue_move_right_002", "shotgunman_blue_move_right_003", "shotgunman_blue_move_right_004", "shotgunman_blue_move_right_005" }; List spriteNameList6 = new List { "shotgunman_blue_move_down_001", "shotgunman_blue_move_down_002", "shotgunman_blue_move_down_003", "shotgunman_blue_move_down_004", "shotgunman_blue_move_down_005" }; List spriteNameList7 = new List { "shotgunman_blue_move_up_001", "shotgunman_blue_move_up_002", "shotgunman_blue_move_up_003", "shotgunman_blue_move_up_004", "shotgunman_blue_move_up_005" }; List spriteNameList8 = new List { "shotgunman_blue_hit_left", "shotgunman_blue_hit_left" }; List spriteNameList9 = new List { "shotgunman_blue_hit_right", "shotgunman_blue_hit_right" }; List spriteNameList10 = new List { "shotgunman_blue_spawn_001", "shotgunman_blue_spawn_002", "shotgunman_blue_spawn_003" }; List spriteNameList11 = new List { "shotgunman_blue_pitfall_001", "shotgunman_blue_pitfall_002", "shotgunman_blue_pitfall_003", "shotgunman_blue_pitfall_004", "shotgunman_blue_pitfall_005" }; List spriteNameList12 = new List { "shotgunman_blue_corpse", "shotgunman_blue_corpse" }; SpriteSerializer.AddSpriteToObject(m_CachedTargetObject, BootlegShotgunManBlueCollection, list[0], (PerpendicularState)0); ExpandUtility.GenerateSpriteAnimator(m_CachedTargetObject, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true, IsFrameBlendedAnimation: false, 0f, 0f); tk2dSpriteAnimator component = m_CachedTargetObject.GetComponent(); ExpandUtility.AddAnimation(component, BootlegShotgunManBlueCollection.GetComponent(), spriteNameList2, "idle_west", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BootlegShotgunManBlueCollection.GetComponent(), spriteNameList3, "idle_east", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BootlegShotgunManBlueCollection.GetComponent(), list, "idle_south", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BootlegShotgunManBlueCollection.GetComponent(), spriteNameList, "idle_north", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, BootlegShotgunManBlueCollection.GetComponent(), spriteNameList4, "move_west", (WrapMode)0, 24); ExpandUtility.AddAnimation(component, BootlegShotgunManBlueCollection.GetComponent(), spriteNameList5, "move_east", (WrapMode)0, 24); ExpandUtility.AddAnimation(component, BootlegShotgunManBlueCollection.GetComponent(), spriteNameList6, "move_south", (WrapMode)0, 24); ExpandUtility.AddAnimation(component, BootlegShotgunManBlueCollection.GetComponent(), spriteNameList7, "move_north", (WrapMode)0, 24); ExpandUtility.AddAnimation(component, BootlegShotgunManBlueCollection.GetComponent(), spriteNameList8, "hit_west", (WrapMode)2, 4); ExpandUtility.AddAnimation(component, BootlegShotgunManBlueCollection.GetComponent(), spriteNameList9, "hit_east", (WrapMode)2, 4); ExpandUtility.AddAnimation(component, BootlegShotgunManBlueCollection.GetComponent(), spriteNameList8, "hit_north", (WrapMode)2, 4); ExpandUtility.AddAnimation(component, BootlegShotgunManBlueCollection.GetComponent(), spriteNameList9, "hit_south", (WrapMode)2, 4); ExpandUtility.AddAnimation(component, BootlegShotgunManBlueCollection.GetComponent(), spriteNameList10, "spawn", (WrapMode)2, 6); ExpandUtility.AddAnimation(component, BootlegShotgunManBlueCollection.GetComponent(), spriteNameList11, "pitfall_right", (WrapMode)2, 6); ExpandUtility.AddAnimation(component, BootlegShotgunManBlueCollection.GetComponent(), spriteNameList12, "death", (WrapMode)2, 8); ExpandUtility.AddAnimation(component, BootlegShotgunManBlueCollection.GetComponent(), spriteNameList12, "die", (WrapMode)2, 10); GameObject gameObject = ((Component)m_CachedTargetObject.transform.Find("GunAttachPoint")).gameObject; ExpandUtility.DuplicateAIShooterAndAIBulletBank(m_CachedTargetObject, ((BraveBehaviour)officialEnemyByGuid).aiShooter, ((Component)officialEnemyByGuid).GetComponent(), BootlegGuns.BootlegShotgunID, gameObject.transform); ExpandUtility.GenerateAIActorTemplate(m_CachedTargetObject, out corpseObject, "Bootleg Blue Shogun Kin", BootlegShotgunManBlueGUID, null, null, null, 38, null, RigidBodyCollidesWithTileMap: true, RigidBodyCollidesWithOthers: true, RigidBodyCanBeCarried: true, RigidBodyCanBePushed: false, isFakePrefab: false, instantiateCorpseObject: false, GetOfficialEnemyByGuid("88b6b6a93d4b4234a67844ef4728382c").CorpseObject, EnemyHasNoShooter: true); AIActor component2 = m_CachedTargetObject.GetComponent(); if (!Object.op_Implicit((Object)(object)officialEnemyByGuid)) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for donor enemy is null!", false); } return; } component2.MovementSpeed = 2f; component2.PathableTiles = (CellTypes)2; ((BraveBehaviour)component2).aiShooter.handObject = null; component2.procedurallyOutlined = false; component2.EnemySwitchState = "Plastic_Bullet_Man"; ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(40f, (float?)null, false); ((BraveBehaviour)component2).healthHaver.ForceSetCurrentHealth(40f); ((BraveBehaviour)component2).healthHaver.damagedAudioEvent = "Play_CHR_plasticBullet_hurt_01"; ((BraveBehaviour)component2).specRigidbody.PixelColliders.Clear(); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)3, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 1, ManualOffsetY = 1, ManualWidth = 12, ManualHeight = 12, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)2, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 1, ManualOffsetY = 1, ManualWidth = 12, ManualHeight = 24, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); if (Object.op_Implicit((Object)(object)((BraveBehaviour)component2).aiAnimator)) { ((BraveBehaviour)component2).aiAnimator.facingType = (FacingType)1; ((BraveBehaviour)component2).aiAnimator.faceSouthWhenStopped = false; ((BraveBehaviour)component2).aiAnimator.faceTargetWhenStopped = true; ((BraveBehaviour)component2).aiAnimator.HitType = (HitStateType)0; ((BraveBehaviour)component2).aiAnimator.IdleAnimation = new DirectionalAnimation { Type = (DirectionType)9, Prefix = "idle", AnimNames = new string[4], Flipped = (FlipType[])(object)new FlipType[4] }; ((BraveBehaviour)component2).aiAnimator.MoveAnimation = new DirectionalAnimation { Type = (DirectionType)9, Prefix = "move", AnimNames = new string[4], Flipped = (FlipType[])(object)new FlipType[4] }; ((BraveBehaviour)component2).aiAnimator.HitAnimation = new DirectionalAnimation { Type = (DirectionType)9, Prefix = "hit", AnimNames = new string[4], Flipped = (FlipType[])(object)new FlipType[4] }; AIAnimator aiAnimator = ((BraveBehaviour)component2).aiAnimator; List list2 = new List(); NamedDirectionalAnimation val = new NamedDirectionalAnimation(); val.name = "pitfall"; NamedDirectionalAnimation obj = val; DirectionalAnimation val2 = new DirectionalAnimation(); val2.Type = (DirectionType)1; val2.Prefix = "pitfall"; val2.AnimNames = new string[1] { "pitfall_right" }; val2.Flipped = (FlipType[])(object)new FlipType[1]; obj.anim = val2; list2.Add(val); val = new NamedDirectionalAnimation(); val.name = "die"; NamedDirectionalAnimation obj2 = val; val2 = new DirectionalAnimation(); val2.Type = (DirectionType)1; val2.Prefix = "die"; val2.AnimNames = new string[1] { "die" }; val2.Flipped = (FlipType[])(object)new FlipType[1]; obj2.anim = val2; list2.Add(val); val = new NamedDirectionalAnimation(); val.name = "death"; NamedDirectionalAnimation obj3 = val; val2 = new DirectionalAnimation(); val2.Type = (DirectionType)1; val2.Prefix = "death"; val2.AnimNames = new string[1] { "death" }; val2.Flipped = (FlipType[])(object)new FlipType[1]; obj3.anim = val2; list2.Add(val); aiAnimator.OtherAnimations = list2; } BehaviorSpeculator obj4 = m_CachedTargetObject.AddComponent(); obj4.OverrideBehaviors = new List(0); obj4.OtherBehaviors = new List(0); obj4.TargetBehaviors = new List { (TargetBehaviorBase)new TargetPlayerBehavior { Radius = 35f, LineOfSight = true, ObjectPermanence = true, SearchInterval = 0.25f, PauseOnTargetSwitch = false, PauseTime = 0.25f } }; obj4.MovementBehaviors = new List { (MovementBehaviorBase)new RideInCartsBehavior(), (MovementBehaviorBase)new SeekTargetBehavior { StopWhenInRange = true, CustomRange = 6f, LineOfSight = true, ReturnToSpawn = true, SpawnTetherDistance = 0f, PathInterval = 0.5f, SpecifyRange = false, MinActiveRange = 0f, MaxActiveRange = 0f } }; obj4.AttackBehaviors = new List { (AttackBehaviorBase)new ShootGunBehavior { GroupCooldownVariance = 0.2f, LineOfSight = true, WeaponType = (WeaponType)2, OverrideBulletName = null, BulletScript = new BulletScriptSelector { scriptTypeName = "BulletShotgunManBlueBasicAttack1" }, FixTargetDuringAttack = false, StopDuringAttack = true, LeadAmount = 0f, LeadChance = 1f, RespectReload = true, MagazineCapacity = 1f, ReloadSpeed = 2f, EmptiesClip = true, SuppressReloadAnim = false, TimeBetweenShots = -1f, PreventTargetSwitching = false, OverrideAnimation = null, OverrideDirectionalAnimation = null, HideGun = false, UseLaserSight = false, UseGreenLaser = false, PreFireLaserTime = -1f, AimAtFacingDirectionWhenSafe = false, Cooldown = 4f, CooldownVariance = 0f, AttackCooldown = 0f, GlobalCooldown = 0f, InitialCooldown = 0f, InitialCooldownVariance = 0f, GroupName = null, GroupCooldown = 0f, MinRange = 0f, Range = 20f, MinWallDistance = 0f, MaxEnemiesInRoom = 0f, MinHealthThreshold = 0f, MaxHealthThreshold = 1f, HealthThresholds = new float[0], AccumulateHealthThresholds = true, targetAreaStyle = null, IsBlackPhantom = false, resetCooldownOnDamage = null, RequiresLineOfSight = false, MaxUsages = 0 } }; obj4.InstantFirstTick = false; obj4.TickInterval = 0.1f; obj4.PostAwakenDelay = 0.5f; obj4.RemoveDelayOnReinforce = false; obj4.OverrideStartingFacingDirection = false; obj4.StartingFacingDirection = -90f; obj4.SkipTimingDifferentiator = false; ((ISerializedObject)obj4).SerializedObjectReferences = new List(0); ((ISerializedObject)obj4).SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; ((ISerializedObject)obj4).SerializedStateValues = new List(0); AddEnemyToDatabaseAndAmmonomicon(component2, BootlegShotgunManBlueGUID, ExpandAmmonomiconDatabase.BootlegShotgunKinBlue); officialEnemyByGuid = null; } public static void BuildCronenbergPrefab(AssetBundle expandSharedAssets1, out GameObject m_CachedTargetObject) { //IL_07ce: Unknown result type (might be due to invalid IL or missing references) //IL_0871: Unknown result type (might be due to invalid IL or missing references) //IL_0876: Unknown result type (might be due to invalid IL or missing references) //IL_0878: Unknown result type (might be due to invalid IL or missing references) //IL_087d: Unknown result type (might be due to invalid IL or missing references) //IL_087f: Unknown result type (might be due to invalid IL or missing references) //IL_0884: Unknown result type (might be due to invalid IL or missing references) //IL_088b: Unknown result type (might be due to invalid IL or missing references) //IL_0892: Unknown result type (might be due to invalid IL or missing references) //IL_089d: Unknown result type (might be due to invalid IL or missing references) //IL_08a4: Unknown result type (might be due to invalid IL or missing references) //IL_08ac: Unknown result type (might be due to invalid IL or missing references) //IL_08b3: Unknown result type (might be due to invalid IL or missing references) //IL_08bb: Unknown result type (might be due to invalid IL or missing references) //IL_08c3: Unknown result type (might be due to invalid IL or missing references) //IL_08ca: Unknown result type (might be due to invalid IL or missing references) //IL_08d1: Unknown result type (might be due to invalid IL or missing references) //IL_08d8: Unknown result type (might be due to invalid IL or missing references) //IL_08df: Unknown result type (might be due to invalid IL or missing references) //IL_08eb: Expected O, but got Unknown //IL_08f7: Unknown result type (might be due to invalid IL or missing references) //IL_08fc: Unknown result type (might be due to invalid IL or missing references) //IL_08fe: Unknown result type (might be due to invalid IL or missing references) //IL_0903: Unknown result type (might be due to invalid IL or missing references) //IL_0905: Unknown result type (might be due to invalid IL or missing references) //IL_090a: Unknown result type (might be due to invalid IL or missing references) //IL_0911: Unknown result type (might be due to invalid IL or missing references) //IL_0918: Unknown result type (might be due to invalid IL or missing references) //IL_0923: Unknown result type (might be due to invalid IL or missing references) //IL_092a: Unknown result type (might be due to invalid IL or missing references) //IL_0932: Unknown result type (might be due to invalid IL or missing references) //IL_0939: Unknown result type (might be due to invalid IL or missing references) //IL_0941: Unknown result type (might be due to invalid IL or missing references) //IL_0949: Unknown result type (might be due to invalid IL or missing references) //IL_0950: Unknown result type (might be due to invalid IL or missing references) //IL_0957: Unknown result type (might be due to invalid IL or missing references) //IL_095e: Unknown result type (might be due to invalid IL or missing references) //IL_0965: Unknown result type (might be due to invalid IL or missing references) //IL_0971: Expected O, but got Unknown //IL_0374: Unknown result type (might be due to invalid IL or missing references) //IL_037c: Unknown result type (might be due to invalid IL or missing references) //IL_06d0: Unknown result type (might be due to invalid IL or missing references) //IL_06d7: Expected O, but got Unknown //IL_0705: Unknown result type (might be due to invalid IL or missing references) //IL_070a: Unknown result type (might be due to invalid IL or missing references) //IL_076f: Unknown result type (might be due to invalid IL or missing references) //IL_098a: Unknown result type (might be due to invalid IL or missing references) //IL_09b1: Unknown result type (might be due to invalid IL or missing references) //IL_09bd: Unknown result type (might be due to invalid IL or missing references) //IL_09c2: Unknown result type (might be due to invalid IL or missing references) //IL_09c4: Unknown result type (might be due to invalid IL or missing references) //IL_09c9: Unknown result type (might be due to invalid IL or missing references) //IL_09d4: Unknown result type (might be due to invalid IL or missing references) //IL_09e0: Unknown result type (might be due to invalid IL or missing references) //IL_09f1: Expected O, but got Unknown //IL_09f8: Unknown result type (might be due to invalid IL or missing references) //IL_09fd: Unknown result type (might be due to invalid IL or missing references) //IL_09ff: Unknown result type (might be due to invalid IL or missing references) //IL_0a04: Unknown result type (might be due to invalid IL or missing references) //IL_0a0f: Unknown result type (might be due to invalid IL or missing references) //IL_0a1b: Unknown result type (might be due to invalid IL or missing references) //IL_0a2c: Expected O, but got Unknown //IL_0a33: Unknown result type (might be due to invalid IL or missing references) //IL_0a38: Unknown result type (might be due to invalid IL or missing references) //IL_0a3a: Unknown result type (might be due to invalid IL or missing references) //IL_0a3f: Unknown result type (might be due to invalid IL or missing references) //IL_0a4a: Unknown result type (might be due to invalid IL or missing references) //IL_0a56: Unknown result type (might be due to invalid IL or missing references) //IL_0a67: Expected O, but got Unknown //IL_0a74: Unknown result type (might be due to invalid IL or missing references) //IL_0a79: Unknown result type (might be due to invalid IL or missing references) //IL_0a84: Unknown result type (might be due to invalid IL or missing references) //IL_0a85: Unknown result type (might be due to invalid IL or missing references) //IL_0a8a: Unknown result type (might be due to invalid IL or missing references) //IL_0a8c: Unknown result type (might be due to invalid IL or missing references) //IL_0a91: Unknown result type (might be due to invalid IL or missing references) //IL_0a9c: Unknown result type (might be due to invalid IL or missing references) //IL_0aa8: Unknown result type (might be due to invalid IL or missing references) //IL_0ab9: Expected O, but got Unknown //IL_0abe: Expected O, but got Unknown GameObject corpseObject = null; m_CachedTargetObject = expandSharedAssets1.LoadAsset("Cronenberg Abomination"); List list = new List { "Cronenberg_Idle_001", "Cronenberg_Idle_002", "Cronenberg_Idle_003", "Cronenberg_Idle_004", "Cronenberg_Move_001", "Cronenberg_Move_002", "Cronenberg_Move_003", "Cronenberg_Move_004", "Cronenberg_Move_005", "Cronenberg_Spawn_001", "Cronenberg_Spawn_002", "Cronenberg_Spawn_003", "Cronenberg_Spawn_004", "Cronenberg_Spawn_005", "Cronenberg_Spawn_006", "Cronenberg_Die_001", "Cronenberg_Die_002", "Cronenberg_Die_003" }; List spriteNameList = new List { "Cronenberg_Idle_001", "Cronenberg_Idle_002", "Cronenberg_Idle_003", "Cronenberg_Idle_004" }; List spriteNameList2 = new List { "Cronenberg_Move_001", "Cronenberg_Move_002", "Cronenberg_Move_003", "Cronenberg_Move_004", "Cronenberg_Move_005" }; List spriteNameList3 = new List { "Cronenberg_Spawn_001", "Cronenberg_Spawn_002", "Cronenberg_Spawn_003", "Cronenberg_Spawn_004", "Cronenberg_Spawn_005", "Cronenberg_Spawn_006" }; List spriteNameList4 = new List { "Cronenberg_Die_001", "Cronenberg_Die_002", "Cronenberg_Die_003" }; tk2dSprite val = SpriteSerializer.AddSpriteToObject(m_CachedTargetObject, CronenbergCollection, list[0], (PerpendicularState)0); ExpandUtility.GenerateSpriteAnimator(m_CachedTargetObject, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true, IsFrameBlendedAnimation: false, 0f, 0f); tk2dSpriteAnimator component = m_CachedTargetObject.GetComponent(); ExpandUtility.AddAnimation(component, ((tk2dBaseSprite)val).Collection, spriteNameList, "idle", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, ((tk2dBaseSprite)val).Collection, spriteNameList2, "move", (WrapMode)0, 6); tk2dSpriteAnimationClip val2 = ExpandUtility.AddAnimation(component, CronenbergCollection.GetComponent(), spriteNameList3, "spawn", (WrapMode)2, 8); tk2dSpriteAnimationClip val3 = ExpandUtility.AddAnimation(component, CronenbergCollection.GetComponent(), spriteNameList, "hit", (WrapMode)2, 6); tk2dSpriteAnimationClip val4 = ExpandUtility.AddAnimation(component, CronenbergCollection.GetComponent(), spriteNameList4, "die", (WrapMode)2, 6); if (val2 != null && val4 != null && val3 != null) { val2.frames[0].eventAudio = "Play_EX_Cronenberg_Spawn_01"; val2.frames[0].triggerEvent = true; val4.frames[0].eventAudio = "Play_EX_Cronenberg_Die_01"; val4.frames[0].triggerEvent = true; val3.frames[0].eventAudio = "Play_EX_Cronenberg_Damage_01"; val3.frames[0].triggerEvent = true; } PickupObject byId = PickupObjectDatabase.GetById(333); Gun val5 = (Gun)(object)((byId is Gun) ? byId : null); if (Object.op_Implicit((Object)(object)val5)) { GoopDoer val6 = m_CachedTargetObject.AddComponent(); val6.goopDefinition = ((Component)val5.singleModule.projectiles[0]).gameObject.GetComponent().goopDefinition; val6.positionSource = (PositionSource)2; val6.updateTiming = (UpdateTiming)0; val6.updateFrequency = 0.05f; val6.isTimed = false; val6.goopTime = 1f; val6.updateOnPreDeath = true; val6.updateOnDeath = false; val6.updateOnAnimFrames = true; val6.updateOnCollision = false; val6.updateOnGrounded = false; val6.updateOnDestroy = false; val6.defaultGoopRadius = 1.8f; val6.suppressSplashes = false; val6.goopSizeVaries = true; val6.varyCycleTime = 0.9f; val6.radiusMin = 1.8f; val6.radiusMax = 2f; val6.goopSizeRandom = true; val6.UsesDispersalParticles = false; val6.DispersalDensity = 3f; val6.DispersalMinCoherency = 0.2f; val6.DispersalMaxCoherency = 1f; CronenbergCorpseDebrisObject1 = expandSharedAssets1.LoadAsset("CronenbergCorpseFragment_01"); CronenbergCorpseDebrisObject2 = expandSharedAssets1.LoadAsset("CronenbergCorpseFragment_02"); CronenbergCorpseDebrisObject3 = expandSharedAssets1.LoadAsset("CronenbergCorpseFragment_03"); CronenbergCorpseDebrisObject4 = expandSharedAssets1.LoadAsset("CronenbergCorpseFragment_04"); SpriteSerializer.AddSpriteToObject(CronenbergCorpseDebrisObject1, CronenbergCollection, "Cronenberg_Fragment_01", (PerpendicularState)0); SpriteSerializer.AddSpriteToObject(CronenbergCorpseDebrisObject2, CronenbergCollection, "Cronenberg_Fragment_02", (PerpendicularState)0); SpriteSerializer.AddSpriteToObject(CronenbergCorpseDebrisObject3, CronenbergCollection, "Cronenberg_Fragment_03", (PerpendicularState)0); SpriteSerializer.AddSpriteToObject(CronenbergCorpseDebrisObject4, CronenbergCollection, "Cronenberg_Fragment_04", (PerpendicularState)0); ExpandUtility.GenerateSpriteAnimator(CronenbergCorpseDebrisObject1); ExpandUtility.GenerateSpriteAnimator(CronenbergCorpseDebrisObject2); ExpandUtility.GenerateSpriteAnimator(CronenbergCorpseDebrisObject3); ExpandUtility.GenerateSpriteAnimator(CronenbergCorpseDebrisObject4); ExpandUtility.AddAnimation(CronenbergCorpseDebrisObject1.GetComponent(), CronenbergCollection.GetComponent(), new List { "Cronenberg_Fragment_01" }, "default", (WrapMode)2); ExpandUtility.AddAnimation(CronenbergCorpseDebrisObject2.GetComponent(), CronenbergCollection.GetComponent(), new List { "Cronenberg_Fragment_02" }, "default", (WrapMode)2); ExpandUtility.AddAnimation(CronenbergCorpseDebrisObject3.GetComponent(), CronenbergCollection.GetComponent(), new List { "Cronenberg_Fragment_03" }, "default", (WrapMode)2); ExpandUtility.AddAnimation(CronenbergCorpseDebrisObject4.GetComponent(), CronenbergCollection.GetComponent(), new List { "Cronenberg_Fragment_04" }, "default", (WrapMode)2); m_GenerateCronenbergDebris(CronenbergCorpseDebrisObject1, val6.goopDefinition); m_GenerateCronenbergDebris(CronenbergCorpseDebrisObject2, val6.goopDefinition); m_GenerateCronenbergDebris(CronenbergCorpseDebrisObject3, val6.goopDefinition); m_GenerateCronenbergDebris(CronenbergCorpseDebrisObject4, val6.goopDefinition); ExpandExplodeOnDeath expandExplodeOnDeath = m_CachedTargetObject.AddComponent(); ShardCluster[] array = new ShardCluster[1]; ShardCluster val7 = new ShardCluster(); val7.minFromCluster = 6; val7.maxFromCluster = 10; val7.forceMultiplier = 4f; val7.forceAxialMultiplier = new Vector3(1.25f, 1.25f, 1.25f); val7.rotationMultiplier = 1.65f; val7.clusterObjects = (DebrisObject[])(object)new DebrisObject[4] { CronenbergCorpseDebrisObject1.GetComponent(), CronenbergCorpseDebrisObject2.GetComponent(), CronenbergCorpseDebrisObject3.GetComponent(), CronenbergCorpseDebrisObject4.GetComponent() }; array[0] = val7; expandExplodeOnDeath.shardClusters = (ShardCluster[])(object)array; expandExplodeOnDeath.spawnShardsOnDeath = true; ((OnDeathBehavior)expandExplodeOnDeath).deathType = (DeathType)1; val5 = null; } ExpandUtility.GenerateAIActorTemplate(m_CachedTargetObject, out corpseObject, ((Object)m_CachedTargetObject).name, CronenbergGUID, null, null, null, 38, null, RigidBodyCollidesWithTileMap: true, RigidBodyCollidesWithOthers: true, RigidBodyCanBeCarried: true, RigidBodyCanBePushed: false, isFakePrefab: false, instantiateCorpseObject: true, null, EnemyHasNoShooter: true, EnemyHasNoCorpse: true); AIActor component2 = m_CachedTargetObject.GetComponent(); component2.IsHarmlessEnemy = true; ((GameActor)component2).HasShadow = false; component2.MovementSpeed = 0.65f; component2.PathableTiles = (CellTypes)2; component2.procedurallyOutlined = false; component2.EnemySwitchState = string.Empty; component2.PreventFallingInPitsEver = true; component2.IgnoreForRoomClear = true; component2.HitByEnemyBullets = true; component2.CanTargetEnemies = true; component2.CanTargetPlayers = false; component2.CollisionKnockbackStrength = 5f; component2.CollisionDamage = 2f; ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(25f, (float?)null, false); ((BraveBehaviour)component2).healthHaver.ForceSetCurrentHealth(15f); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Clear(); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)3, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 9, ManualOffsetY = 0, ManualWidth = 67, ManualHeight = 16, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)2, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 9, ManualOffsetY = 0, ManualWidth = 67, ManualHeight = 28, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); if (Object.op_Implicit((Object)(object)((BraveBehaviour)component2).aiAnimator)) { ((BraveBehaviour)component2).aiAnimator.facingType = (FacingType)0; ((BraveBehaviour)component2).aiAnimator.faceSouthWhenStopped = false; ((BraveBehaviour)component2).aiAnimator.faceTargetWhenStopped = false; ((BraveBehaviour)component2).aiAnimator.HitType = (HitStateType)0; ((BraveBehaviour)component2).aiAnimator.IdleAnimation = new DirectionalAnimation { Type = (DirectionType)1, Prefix = "idle", AnimNames = new string[1], Flipped = (FlipType[])(object)new FlipType[1] }; ((BraveBehaviour)component2).aiAnimator.MoveAnimation = new DirectionalAnimation { Type = (DirectionType)1, Prefix = "move", AnimNames = new string[1], Flipped = (FlipType[])(object)new FlipType[1] }; ((BraveBehaviour)component2).aiAnimator.HitAnimation = new DirectionalAnimation { Type = (DirectionType)1, Prefix = "hit", AnimNames = new string[1], Flipped = (FlipType[])(object)new FlipType[1] }; ((BraveBehaviour)component2).aiAnimator.OtherAnimations = new List { new NamedDirectionalAnimation { name = "die", anim = new DirectionalAnimation { Type = (DirectionType)1, Prefix = "die", AnimNames = new string[1], Flipped = (FlipType[])(object)new FlipType[1] } } }; } BehaviorSpeculator obj = m_CachedTargetObject.AddComponent(); obj.OverrideBehaviors = new List(0); obj.OtherBehaviors = new List(0); obj.TargetBehaviors = new List(0); obj.AttackBehaviors = new List(0); obj.MovementBehaviors = new List { (MovementBehaviorBase)(object)new ExpandSimpleMoveErraticallyBehavior() }; obj.InstantFirstTick = false; obj.TickInterval = 0.1f; obj.PostAwakenDelay = 1f; obj.RemoveDelayOnReinforce = false; obj.OverrideStartingFacingDirection = false; obj.StartingFacingDirection = -90f; obj.SkipTimingDifferentiator = false; ((ISerializedObject)obj).SerializedObjectReferences = new List(0); ((ISerializedObject)obj).SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; ((ISerializedObject)obj).SerializedStateValues = new List(0); ((BulletStatusEffectItem)CronenbergBullets.m_CachedCronenbergBulletsItem).TransmogTargetGuid = CronenbergGUID; AddEnemyToDatabaseAndAmmonomicon(component2, CronenbergGUID, ExpandAmmonomiconDatabase.Cronenberg); } public static void BuildAggressiveCronenbergPrefab(AssetBundle expandSharedAssets1, out GameObject m_CachedTargetObject) { //IL_086a: Unknown result type (might be due to invalid IL or missing references) //IL_0915: Unknown result type (might be due to invalid IL or missing references) //IL_091a: Unknown result type (might be due to invalid IL or missing references) //IL_091c: Unknown result type (might be due to invalid IL or missing references) //IL_0921: Unknown result type (might be due to invalid IL or missing references) //IL_0923: Unknown result type (might be due to invalid IL or missing references) //IL_0928: Unknown result type (might be due to invalid IL or missing references) //IL_092f: Unknown result type (might be due to invalid IL or missing references) //IL_0936: Unknown result type (might be due to invalid IL or missing references) //IL_0941: Unknown result type (might be due to invalid IL or missing references) //IL_0948: Unknown result type (might be due to invalid IL or missing references) //IL_094f: Unknown result type (might be due to invalid IL or missing references) //IL_0956: Unknown result type (might be due to invalid IL or missing references) //IL_095e: Unknown result type (might be due to invalid IL or missing references) //IL_0966: Unknown result type (might be due to invalid IL or missing references) //IL_096d: Unknown result type (might be due to invalid IL or missing references) //IL_0974: Unknown result type (might be due to invalid IL or missing references) //IL_097b: Unknown result type (might be due to invalid IL or missing references) //IL_0982: Unknown result type (might be due to invalid IL or missing references) //IL_098e: Expected O, but got Unknown //IL_099a: Unknown result type (might be due to invalid IL or missing references) //IL_099f: Unknown result type (might be due to invalid IL or missing references) //IL_09a1: Unknown result type (might be due to invalid IL or missing references) //IL_09a6: Unknown result type (might be due to invalid IL or missing references) //IL_09a8: Unknown result type (might be due to invalid IL or missing references) //IL_09ad: Unknown result type (might be due to invalid IL or missing references) //IL_09b4: Unknown result type (might be due to invalid IL or missing references) //IL_09bb: Unknown result type (might be due to invalid IL or missing references) //IL_09c6: Unknown result type (might be due to invalid IL or missing references) //IL_09cd: Unknown result type (might be due to invalid IL or missing references) //IL_09d4: Unknown result type (might be due to invalid IL or missing references) //IL_09db: Unknown result type (might be due to invalid IL or missing references) //IL_09e3: Unknown result type (might be due to invalid IL or missing references) //IL_09eb: Unknown result type (might be due to invalid IL or missing references) //IL_09f2: Unknown result type (might be due to invalid IL or missing references) //IL_09f9: Unknown result type (might be due to invalid IL or missing references) //IL_0a00: Unknown result type (might be due to invalid IL or missing references) //IL_0a07: Unknown result type (might be due to invalid IL or missing references) //IL_0a13: Expected O, but got Unknown //IL_05ed: Unknown result type (might be due to invalid IL or missing references) //IL_05f5: Unknown result type (might be due to invalid IL or missing references) //IL_0774: Unknown result type (might be due to invalid IL or missing references) //IL_077b: Expected O, but got Unknown //IL_07a9: Unknown result type (might be due to invalid IL or missing references) //IL_07ae: Unknown result type (might be due to invalid IL or missing references) //IL_0813: Unknown result type (might be due to invalid IL or missing references) //IL_0b8b: Unknown result type (might be due to invalid IL or missing references) //IL_0b90: Unknown result type (might be due to invalid IL or missing references) //IL_0b9b: Unknown result type (might be due to invalid IL or missing references) //IL_0ba2: Unknown result type (might be due to invalid IL or missing references) //IL_0ba9: Unknown result type (might be due to invalid IL or missing references) //IL_0bb4: Unknown result type (might be due to invalid IL or missing references) //IL_0bbb: Unknown result type (might be due to invalid IL or missing references) //IL_0bcb: Expected O, but got Unknown //IL_0be2: Unknown result type (might be due to invalid IL or missing references) //IL_0be7: Unknown result type (might be due to invalid IL or missing references) //IL_0bee: Unknown result type (might be due to invalid IL or missing references) //IL_0bf9: Unknown result type (might be due to invalid IL or missing references) //IL_0c00: Unknown result type (might be due to invalid IL or missing references) //IL_0c07: Unknown result type (might be due to invalid IL or missing references) //IL_0c12: Unknown result type (might be due to invalid IL or missing references) //IL_0c1d: Unknown result type (might be due to invalid IL or missing references) //IL_0c24: Unknown result type (might be due to invalid IL or missing references) //IL_0c2f: Unknown result type (might be due to invalid IL or missing references) //IL_0c3f: Expected O, but got Unknown //IL_0a2c: Unknown result type (might be due to invalid IL or missing references) //IL_0a53: Unknown result type (might be due to invalid IL or missing references) //IL_0a5f: Unknown result type (might be due to invalid IL or missing references) //IL_0a64: Unknown result type (might be due to invalid IL or missing references) //IL_0a66: Unknown result type (might be due to invalid IL or missing references) //IL_0a6b: Unknown result type (might be due to invalid IL or missing references) //IL_0a76: Unknown result type (might be due to invalid IL or missing references) //IL_0a82: Unknown result type (might be due to invalid IL or missing references) //IL_0a93: Expected O, but got Unknown //IL_0a9a: Unknown result type (might be due to invalid IL or missing references) //IL_0a9f: Unknown result type (might be due to invalid IL or missing references) //IL_0aa1: Unknown result type (might be due to invalid IL or missing references) //IL_0aa6: Unknown result type (might be due to invalid IL or missing references) //IL_0ab1: Unknown result type (might be due to invalid IL or missing references) //IL_0abd: Unknown result type (might be due to invalid IL or missing references) //IL_0ace: Expected O, but got Unknown //IL_0ad5: Unknown result type (might be due to invalid IL or missing references) //IL_0ada: Unknown result type (might be due to invalid IL or missing references) //IL_0adc: Unknown result type (might be due to invalid IL or missing references) //IL_0ae1: Unknown result type (might be due to invalid IL or missing references) //IL_0aec: Unknown result type (might be due to invalid IL or missing references) //IL_0af8: Unknown result type (might be due to invalid IL or missing references) //IL_0b09: Expected O, but got Unknown //IL_0b16: Unknown result type (might be due to invalid IL or missing references) //IL_0b1b: Unknown result type (might be due to invalid IL or missing references) //IL_0b26: Unknown result type (might be due to invalid IL or missing references) //IL_0b27: Unknown result type (might be due to invalid IL or missing references) //IL_0b2c: Unknown result type (might be due to invalid IL or missing references) //IL_0b2e: Unknown result type (might be due to invalid IL or missing references) //IL_0b33: Unknown result type (might be due to invalid IL or missing references) //IL_0b3e: Unknown result type (might be due to invalid IL or missing references) //IL_0b4a: Unknown result type (might be due to invalid IL or missing references) //IL_0b5b: Expected O, but got Unknown //IL_0b60: Expected O, but got Unknown GameObject corpseObject = null; m_CachedTargetObject = expandSharedAssets1.LoadAsset("Angry Cronenberg Abomination"); List list = new List { "berg_tall_idle_front_001", "berg_tall_idle_front_002", "berg_tall_idle_front_003", "berg_tall_idle_front_004", "berg_tall_idle_back_001", "berg_tall_idle_back_002", "berg_tall_idle_back_003", "berg_tall_idle_back_004", "berg_tall_run_left_001", "berg_tall_run_left_002", "berg_tall_run_left_003", "berg_tall_run_left_004", "berg_tall_run_left_005", "berg_tall_run_left_006", "berg_tall_run_right_001", "berg_tall_run_right_002", "berg_tall_run_right_003", "berg_tall_run_right_004", "berg_tall_run_right_005", "berg_tall_run_right_006", "berg_tall_burst_001", "berg_tall_burst_002", "berg_tall_burst_003", "berg_tall_run_back_left_001", "berg_tall_run_back_left_002", "berg_tall_run_back_left_003", "berg_tall_run_back_left_004", "berg_tall_run_back_left_005", "berg_tall_run_back_left_006", "berg_tall_run_back_right_001", "berg_tall_run_back_right_002", "berg_tall_run_back_right_003", "berg_tall_run_back_right_004", "berg_tall_run_back_right_005", "berg_tall_run_back_right_006", "berg_tall_spawn_001", "berg_tall_spawn_002", "berg_tall_spawn_003", "berg_tall_spawn_004", "berg_tall_spawn_005" }; List spriteNameList = new List { "berg_tall_idle_front_001", "berg_tall_idle_front_002", "berg_tall_idle_front_003", "berg_tall_idle_front_004" }; new List { "berg_tall_idle_back_001", "berg_tall_idle_back_002", "berg_tall_idle_back_003", "berg_tall_idle_back_004" }; List spriteNameList2 = new List { "berg_tall_run_left_001", "berg_tall_run_left_002", "berg_tall_run_left_003", "berg_tall_run_left_004", "berg_tall_run_left_005", "berg_tall_run_left_006" }; List spriteNameList3 = new List { "berg_tall_run_right_001", "berg_tall_run_right_002", "berg_tall_run_right_003", "berg_tall_run_right_004", "berg_tall_run_right_005", "berg_tall_run_right_006" }; List spriteNameList4 = new List { "berg_tall_run_back_left_001", "berg_tall_run_back_left_002", "berg_tall_run_back_left_003", "berg_tall_run_back_left_004", "berg_tall_run_back_left_005", "berg_tall_run_back_left_006" }; List spriteNameList5 = new List { "berg_tall_run_back_right_001", "berg_tall_run_back_right_002", "berg_tall_run_back_right_003", "berg_tall_run_back_right_004", "berg_tall_run_back_right_005", "berg_tall_run_back_right_006" }; List spriteNameList6 = new List { "berg_tall_spawn_001", "berg_tall_spawn_002", "berg_tall_spawn_003", "berg_tall_spawn_004", "berg_tall_spawn_005" }; List spriteNameList7 = new List { "berg_tall_burst_001", "berg_tall_burst_002", "berg_tall_burst_003" }; SpriteSerializer.AddSpriteToObject(m_CachedTargetObject, CronenbergTallCollection, list[0], (PerpendicularState)0); ExpandUtility.GenerateSpriteAnimator(m_CachedTargetObject, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true, IsFrameBlendedAnimation: false, 0f, 0f); tk2dSpriteAnimator component = m_CachedTargetObject.GetComponent(); ExpandUtility.AddAnimation(component, CronenbergTallCollection.GetComponent(), spriteNameList, "idle_front", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, CronenbergTallCollection.GetComponent(), spriteNameList, "idle_back", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, CronenbergTallCollection.GetComponent(), spriteNameList2, "move_front_right", (WrapMode)0, 10); ExpandUtility.AddAnimation(component, CronenbergTallCollection.GetComponent(), spriteNameList3, "move_front_left", (WrapMode)0, 10); ExpandUtility.AddAnimation(component, CronenbergTallCollection.GetComponent(), spriteNameList4, "move_back_right", (WrapMode)0, 10); ExpandUtility.AddAnimation(component, CronenbergTallCollection.GetComponent(), spriteNameList5, "move_back_left", (WrapMode)0, 10); tk2dSpriteAnimationClip val = ExpandUtility.AddAnimation(component, CronenbergTallCollection.GetComponent(), spriteNameList6, "spawn", (WrapMode)2, 8); tk2dSpriteAnimationClip val2 = ExpandUtility.AddAnimation(component, CronenbergTallCollection.GetComponent(), spriteNameList, "hit", (WrapMode)2, 6); tk2dSpriteAnimationClip val3 = ExpandUtility.AddAnimation(component, CronenbergTallCollection.GetComponent(), spriteNameList7, "die", (WrapMode)2, 6); if (val != null && val3 != null && val2 != null) { val3.frames[0].eventAudio = "Play_EX_Cronenberg_Die_01"; val3.frames[0].triggerEvent = true; val2.frames[0].eventAudio = "Play_EX_Cronenberg_Damage_01"; val2.frames[0].triggerEvent = true; } PickupObject byId = PickupObjectDatabase.GetById(333); Gun val4 = (Gun)(object)((byId is Gun) ? byId : null); if (Object.op_Implicit((Object)(object)val4)) { GoopDoer val5 = m_CachedTargetObject.AddComponent(); val5.goopDefinition = ((Component)val4.singleModule.projectiles[0]).gameObject.GetComponent().goopDefinition; val5.positionSource = (PositionSource)2; val5.updateTiming = (UpdateTiming)0; val5.updateFrequency = 0.05f; val5.isTimed = false; val5.goopTime = 1f; val5.updateOnPreDeath = true; val5.updateOnDeath = false; val5.updateOnAnimFrames = true; val5.updateOnCollision = false; val5.updateOnGrounded = false; val5.updateOnDestroy = false; val5.defaultGoopRadius = 1.8f; val5.suppressSplashes = false; val5.goopSizeVaries = true; val5.varyCycleTime = 0.9f; val5.radiusMin = 1f; val5.radiusMax = 1.5f; val5.goopSizeRandom = true; val5.UsesDispersalParticles = false; val5.DispersalDensity = 3f; val5.DispersalMinCoherency = 0.2f; val5.DispersalMaxCoherency = 1f; AggressiveCronenbergCorpseDebrisObject = expandSharedAssets1.LoadAsset("AngryCronenbergCorpseFragment"); SpriteSerializer.AddSpriteToObject(AggressiveCronenbergCorpseDebrisObject, CronenbergCollection, "Cronenberg_Fragment_04", (PerpendicularState)0); ExpandUtility.GenerateSpriteAnimator(AggressiveCronenbergCorpseDebrisObject); ExpandUtility.AddAnimation(AggressiveCronenbergCorpseDebrisObject.GetComponent(), ((tk2dBaseSprite)AggressiveCronenbergCorpseDebrisObject.GetComponent()).Collection, new List { "Cronenberg_Fragment_01" }, "default", (WrapMode)2); m_GenerateCronenbergDebris(AggressiveCronenbergCorpseDebrisObject, val5.goopDefinition); ExpandExplodeOnDeath expandExplodeOnDeath = m_CachedTargetObject.AddComponent(); ShardCluster[] array = new ShardCluster[1]; ShardCluster val6 = new ShardCluster(); val6.minFromCluster = 6; val6.maxFromCluster = 10; val6.forceMultiplier = 4f; val6.forceAxialMultiplier = new Vector3(1.25f, 1.25f, 1.25f); val6.rotationMultiplier = 1.65f; val6.clusterObjects = (DebrisObject[])(object)new DebrisObject[4] { AggressiveCronenbergCorpseDebrisObject.GetComponent(), AggressiveCronenbergCorpseDebrisObject.GetComponent(), AggressiveCronenbergCorpseDebrisObject.GetComponent(), AggressiveCronenbergCorpseDebrisObject.GetComponent() }; array[0] = val6; expandExplodeOnDeath.shardClusters = (ShardCluster[])(object)array; expandExplodeOnDeath.spawnShardsOnDeath = true; ((OnDeathBehavior)expandExplodeOnDeath).deathType = (DeathType)1; val4 = null; } ExpandUtility.GenerateAIActorTemplate(m_CachedTargetObject, out corpseObject, ((Object)m_CachedTargetObject).name, AggressiveCronenbergGUID, null, null, null, 38, null, RigidBodyCollidesWithTileMap: true, RigidBodyCollidesWithOthers: true, RigidBodyCanBeCarried: true, RigidBodyCanBePushed: false, isFakePrefab: false, instantiateCorpseObject: true, null, EnemyHasNoShooter: true, EnemyHasNoCorpse: true); AIActor component2 = m_CachedTargetObject.GetComponent(); ((GameActor)component2).HasShadow = false; component2.MovementSpeed = 5f; component2.PathableTiles = (CellTypes)2; component2.procedurallyOutlined = true; component2.EnemySwitchState = string.Empty; component2.PreventFallingInPitsEver = true; component2.IgnoreForRoomClear = false; component2.HitByEnemyBullets = false; component2.CanTargetEnemies = true; component2.CanTargetPlayers = false; component2.CollisionKnockbackStrength = 5f; component2.CollisionDamage = 1f; component2.DiesOnCollison = true; ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(25f, (float?)null, false); ((BraveBehaviour)component2).healthHaver.ForceSetCurrentHealth(15f); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Clear(); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)3, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 2, ManualOffsetY = 0, ManualWidth = 14, ManualHeight = 16, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)2, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 2, ManualOffsetY = 0, ManualWidth = 15, ManualHeight = 29, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); if (Object.op_Implicit((Object)(object)((BraveBehaviour)component2).aiAnimator)) { ((BraveBehaviour)component2).aiAnimator.facingType = (FacingType)0; ((BraveBehaviour)component2).aiAnimator.faceSouthWhenStopped = false; ((BraveBehaviour)component2).aiAnimator.faceTargetWhenStopped = false; ((BraveBehaviour)component2).aiAnimator.HitType = (HitStateType)0; ((BraveBehaviour)component2).aiAnimator.IdleAnimation = new DirectionalAnimation { Type = (DirectionType)3, Prefix = "idle", AnimNames = new string[2], Flipped = (FlipType[])(object)new FlipType[2] }; ((BraveBehaviour)component2).aiAnimator.MoveAnimation = new DirectionalAnimation { Type = (DirectionType)4, Prefix = "move", AnimNames = new string[4], Flipped = (FlipType[])(object)new FlipType[4] }; ((BraveBehaviour)component2).aiAnimator.HitAnimation = new DirectionalAnimation { Type = (DirectionType)1, Prefix = "hit", AnimNames = new string[1], Flipped = (FlipType[])(object)new FlipType[1] }; ((BraveBehaviour)component2).aiAnimator.OtherAnimations = new List { new NamedDirectionalAnimation { name = "die", anim = new DirectionalAnimation { Type = (DirectionType)1, Prefix = "die", AnimNames = new string[1], Flipped = (FlipType[])(object)new FlipType[1] } } }; } BehaviorSpeculator obj = m_CachedTargetObject.AddComponent(); obj.OverrideBehaviors = new List(0); obj.OtherBehaviors = new List(0); obj.TargetBehaviors = new List { (TargetBehaviorBase)new TargetPlayerBehavior { Radius = 35f, LineOfSight = false, ObjectPermanence = true, SearchInterval = 0.25f, PauseOnTargetSwitch = false, PauseTime = 0.25f } }; obj.AttackBehaviors = new List(); obj.MovementBehaviors = new List { (MovementBehaviorBase)new SeekTargetBehavior { StopWhenInRange = false, CustomRange = 6f, LineOfSight = true, ReturnToSpawn = true, SpawnTetherDistance = 0f, PathInterval = 0.5f, SpecifyRange = false, MinActiveRange = 0f, MaxActiveRange = 0f } }; obj.InstantFirstTick = false; obj.TickInterval = 0.1f; obj.PostAwakenDelay = 1f; obj.RemoveDelayOnReinforce = false; obj.OverrideStartingFacingDirection = false; obj.StartingFacingDirection = -90f; obj.SkipTimingDifferentiator = false; ((ISerializedObject)obj).SerializedObjectReferences = new List(0); ((ISerializedObject)obj).SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; ((ISerializedObject)obj).SerializedStateValues = new List(0); AddEnemyToDatabaseAndAmmonomicon(component2, AggressiveCronenbergGUID, ExpandAmmonomiconDatabase.CronenbergAngry); } public static void BuildMetalCubeGuyWestPrefab(AssetBundle expandSharedAssets1, out GameObject m_CachedTargetObject) { //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Expected O, but got Unknown m_CachedTargetObject = Object.Instantiate(ExpandPrefabs.MetalCubeGuy.gameObject); m_CachedTargetObject.SetActive(false); ((Object)m_CachedTargetObject).name = "MetalCubeGuy_TrapVersion_West"; AIActor component = m_CachedTargetObject.GetComponent(); ((GameActor)component).ActorName = ((GameActor)component).ActorName + " West"; ((GameActor)component).OverrideDisplayName = ((GameActor)component).ActorName; component.EnemyGuid = MetalCubeGuyWestGUID; StoneCubeCollection_West = expandSharedAssets1.LoadAsset("StoneCubeCollection_West"); tk2dSpriteCollectionData val = StoneCubeCollection_West.AddComponent(); JsonUtility.FromJsonOverwrite(ExpandAssets.DeserializeJSONDataFromAssetBundle(expandSharedAssets1, "SpriteCollections/StoneCubeCollection_West"), (object)val); Material val2 = new Material(((BraveBehaviour)GetOfficialEnemyByGuid("ba928393c8ed47819c2c5f593100a5bc")).sprite.Collection.materials[0]); val2.mainTexture = (Texture)(object)expandSharedAssets1.LoadAsset("Stone_Cube_Collection_West"); val.materials = (Material[])(object)new Material[1] { val2 }; tk2dSpriteDefinition[] spriteDefinitions = val.spriteDefinitions; for (int i = 0; i < spriteDefinitions.Length; i++) { spriteDefinitions[i].material = val2; } tk2dSpriteAnimation val3 = StoneCubeCollection_West.AddComponent(); ExpandUtility.DuplicateComponent(val3, m_CachedTargetObject.GetComponent().Library); tk2dSpriteAnimationClip[] clips = val3.clips; for (int i = 0; i < clips.Length; i++) { tk2dSpriteAnimationFrame[] frames = clips[i].frames; for (int j = 0; j < frames.Length; j++) { frames[j].spriteCollection = val; } } m_CachedTargetObject.GetComponent().Library = val3; ((tk2dBaseSprite)m_CachedTargetObject.GetComponent()).Collection = val; ((tk2dBaseSprite)m_CachedTargetObject.GetComponent()).SetSprite(((tk2dBaseSprite)m_CachedTargetObject.GetComponent()).spriteId); AddEnemyToDatabase(m_CachedTargetObject, MetalCubeGuyWestGUID, IsNormalEnemy: true); FakePrefab.MarkAsFakePrefab(m_CachedTargetObject); Object.DontDestroyOnLoad((Object)(object)m_CachedTargetObject); } public static void BuildDummyExplodyBarrelGuyPrefab(AssetBundle expandSharedAssets1, out GameObject m_CachedTargetObject) { //IL_0154: 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_0239: Unknown result type (might be due to invalid IL or missing references) //IL_023e: Unknown result type (might be due to invalid IL or missing references) //IL_0240: Unknown result type (might be due to invalid IL or missing references) //IL_0245: Unknown result type (might be due to invalid IL or missing references) //IL_0247: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Unknown result type (might be due to invalid IL or missing references) //IL_0253: 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_0265: Unknown result type (might be due to invalid IL or missing references) //IL_026c: Unknown result type (might be due to invalid IL or missing references) //IL_0273: Unknown result type (might be due to invalid IL or missing references) //IL_027a: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_028a: Unknown result type (might be due to invalid IL or missing references) //IL_0291: 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) //IL_029f: Unknown result type (might be due to invalid IL or missing references) //IL_02a6: Unknown result type (might be due to invalid IL or missing references) //IL_02b2: Expected O, but got Unknown //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02c3: Unknown result type (might be due to invalid IL or missing references) //IL_02c5: Unknown result type (might be due to invalid IL or missing references) //IL_02ca: Unknown result type (might be due to invalid IL or missing references) //IL_02cc: Unknown result type (might be due to invalid IL or missing references) //IL_02d1: Unknown result type (might be due to invalid IL or missing references) //IL_02d8: Unknown result type (might be due to invalid IL or missing references) //IL_02df: Unknown result type (might be due to invalid IL or missing references) //IL_02ea: Unknown result type (might be due to invalid IL or missing references) //IL_02f1: Unknown result type (might be due to invalid IL or missing references) //IL_02f8: 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_0307: Unknown result type (might be due to invalid IL or missing references) //IL_030f: Unknown result type (might be due to invalid IL or missing references) //IL_0316: Unknown result type (might be due to invalid IL or missing references) //IL_031d: Unknown result type (might be due to invalid IL or missing references) //IL_0324: Unknown result type (might be due to invalid IL or missing references) //IL_032b: Unknown result type (might be due to invalid IL or missing references) //IL_0337: Expected O, but got Unknown //IL_0350: Unknown result type (might be due to invalid IL or missing references) //IL_0377: Unknown result type (might be due to invalid IL or missing references) //IL_0383: Unknown result type (might be due to invalid IL or missing references) //IL_0388: Unknown result type (might be due to invalid IL or missing references) //IL_038a: Unknown result type (might be due to invalid IL or missing references) //IL_038f: Unknown result type (might be due to invalid IL or missing references) //IL_039a: Unknown result type (might be due to invalid IL or missing references) //IL_03a6: Unknown result type (might be due to invalid IL or missing references) //IL_03b7: Expected O, but got Unknown //IL_03be: Unknown result type (might be due to invalid IL or missing references) //IL_03c3: 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) //IL_03ca: Unknown result type (might be due to invalid IL or missing references) //IL_03d5: Unknown result type (might be due to invalid IL or missing references) //IL_03e1: Unknown result type (might be due to invalid IL or missing references) //IL_03f2: Expected O, but got Unknown //IL_03f9: Unknown result type (might be due to invalid IL or missing references) //IL_03fe: Unknown result type (might be due to invalid IL or missing references) //IL_0400: Unknown result type (might be due to invalid IL or missing references) //IL_0405: Unknown result type (might be due to invalid IL or missing references) //IL_0410: Unknown result type (might be due to invalid IL or missing references) //IL_041c: Unknown result type (might be due to invalid IL or missing references) //IL_042d: Expected O, but got Unknown //IL_043a: Unknown result type (might be due to invalid IL or missing references) //IL_043f: Unknown result type (might be due to invalid IL or missing references) //IL_044a: Unknown result type (might be due to invalid IL or missing references) //IL_044b: Unknown result type (might be due to invalid IL or missing references) //IL_0450: Unknown result type (might be due to invalid IL or missing references) //IL_0452: Unknown result type (might be due to invalid IL or missing references) //IL_0457: Unknown result type (might be due to invalid IL or missing references) //IL_0462: Unknown result type (might be due to invalid IL or missing references) //IL_046e: Unknown result type (might be due to invalid IL or missing references) //IL_047f: Expected O, but got Unknown //IL_0484: Expected O, but got Unknown GameObject corpseObject = null; m_CachedTargetObject = expandSharedAssets1.LoadAsset("EX_ExplodyBoy"); List spriteNameList = new List { "EX_ExplodyBarrel", "EX_ExplodyBarrel_Explode" }; List spriteNameList2 = new List { "EX_ExplodyBarrel", "EX_ExplodyBarrel" }; tk2dSprite val = m_CachedTargetObject.AddComponent(); ((tk2dBaseSprite)val).SetSprite(ExpandPrefabs.EXParadropCollection.GetComponent(), "EX_ExplodyBarrel"); ExpandUtility.GenerateSpriteAnimator(m_CachedTargetObject, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true, IsFrameBlendedAnimation: false, 0f, 0f); tk2dSpriteAnimator component = m_CachedTargetObject.GetComponent(); ExpandUtility.AddAnimation(component, ((tk2dBaseSprite)val).Collection, spriteNameList2, "idle", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, ((tk2dBaseSprite)val).Collection, spriteNameList2, "move", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, ExpandPrefabs.EXParadropCollection.GetComponent(), spriteNameList2, "spawn", (WrapMode)2, 8); ExpandUtility.AddAnimation(component, ExpandPrefabs.EXParadropCollection.GetComponent(), spriteNameList2, "hit", (WrapMode)2, 6); ExpandUtility.AddAnimation(component, ExpandPrefabs.EXParadropCollection.GetComponent(), spriteNameList, "die", (WrapMode)2, 6); ExpandExplodeOnDeath expandExplodeOnDeath = m_CachedTargetObject.AddComponent(); expandExplodeOnDeath.shardClusters = (ShardCluster[])(object)new ShardCluster[0]; expandExplodeOnDeath.spawnShardsOnDeath = false; ((OnDeathBehavior)expandExplodeOnDeath).deathType = (DeathType)1; ExpandUtility.GenerateAIActorTemplate(m_CachedTargetObject, out corpseObject, "Explody_Boy", ExplodyBoyGUID, null, null, null, 38, null, RigidBodyCollidesWithTileMap: true, RigidBodyCollidesWithOthers: true, RigidBodyCanBeCarried: true, RigidBodyCanBePushed: false, isFakePrefab: false, instantiateCorpseObject: true, null, EnemyHasNoShooter: true, EnemyHasNoCorpse: true); AIActor component2 = m_CachedTargetObject.GetComponent(); ((GameActor)component2).HasShadow = false; component2.MovementSpeed = 2f; component2.PathableTiles = (CellTypes)2; component2.procedurallyOutlined = false; component2.EnemySwitchState = string.Empty; component2.PreventFallingInPitsEver = true; component2.IgnoreForRoomClear = true; component2.HitByEnemyBullets = true; component2.CanTargetEnemies = false; component2.CanTargetPlayers = true; component2.DiesOnCollison = true; ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(1f, (float?)null, false); ((BraveBehaviour)component2).healthHaver.ForceSetCurrentHealth(1f); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Clear(); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)3, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 6, ManualOffsetY = 1, ManualWidth = 14, ManualHeight = 16, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)2, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 6, ManualOffsetY = 1, ManualWidth = 14, ManualHeight = 20, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); if (Object.op_Implicit((Object)(object)((BraveBehaviour)component2).aiAnimator)) { ((BraveBehaviour)component2).aiAnimator.facingType = (FacingType)0; ((BraveBehaviour)component2).aiAnimator.faceSouthWhenStopped = false; ((BraveBehaviour)component2).aiAnimator.faceTargetWhenStopped = false; ((BraveBehaviour)component2).aiAnimator.HitType = (HitStateType)0; ((BraveBehaviour)component2).aiAnimator.IdleAnimation = new DirectionalAnimation { Type = (DirectionType)1, Prefix = "idle", AnimNames = new string[1], Flipped = (FlipType[])(object)new FlipType[1] }; ((BraveBehaviour)component2).aiAnimator.MoveAnimation = new DirectionalAnimation { Type = (DirectionType)1, Prefix = "move", AnimNames = new string[1], Flipped = (FlipType[])(object)new FlipType[1] }; ((BraveBehaviour)component2).aiAnimator.HitAnimation = new DirectionalAnimation { Type = (DirectionType)1, Prefix = "hit", AnimNames = new string[1], Flipped = (FlipType[])(object)new FlipType[1] }; ((BraveBehaviour)component2).aiAnimator.OtherAnimations = new List { new NamedDirectionalAnimation { name = "die", anim = new DirectionalAnimation { Type = (DirectionType)1, Prefix = "die", AnimNames = new string[1], Flipped = (FlipType[])(object)new FlipType[1] } } }; } BehaviorSpeculator obj = m_CachedTargetObject.AddComponent(); obj.OverrideBehaviors = new List(0); obj.OtherBehaviors = new List(0); obj.TargetBehaviors = new List(0); obj.AttackBehaviors = new List(0); obj.MovementBehaviors = new List { (MovementBehaviorBase)(object)new ExpandSimpleMoveErraticallyBehavior() }; obj.InstantFirstTick = false; obj.TickInterval = 0.1f; obj.PostAwakenDelay = 1f; obj.RemoveDelayOnReinforce = false; obj.OverrideStartingFacingDirection = false; obj.StartingFacingDirection = -90f; obj.SkipTimingDifferentiator = false; ((ISerializedObject)obj).SerializedObjectReferences = new List(0); ((ISerializedObject)obj).SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; ((ISerializedObject)obj).SerializedStateValues = new List(0); AddEnemyToDatabase(m_CachedTargetObject, ExplodyBoyGUID, IsNormalEnemy: true); } public static void BuildSonicCompanionPrefab(AssetBundle expandSharedAssets1, out GameObject m_CachedTargetObject) { //IL_0f28: Unknown result type (might be due to invalid IL or missing references) //IL_0f2d: Unknown result type (might be due to invalid IL or missing references) //IL_0f2f: Unknown result type (might be due to invalid IL or missing references) //IL_0f34: Unknown result type (might be due to invalid IL or missing references) //IL_0f36: Unknown result type (might be due to invalid IL or missing references) //IL_0f3b: Unknown result type (might be due to invalid IL or missing references) //IL_0f42: Unknown result type (might be due to invalid IL or missing references) //IL_0f49: Unknown result type (might be due to invalid IL or missing references) //IL_0f54: Unknown result type (might be due to invalid IL or missing references) //IL_0f5b: Unknown result type (might be due to invalid IL or missing references) //IL_0f63: Unknown result type (might be due to invalid IL or missing references) //IL_0f6b: Unknown result type (might be due to invalid IL or missing references) //IL_0f73: Unknown result type (might be due to invalid IL or missing references) //IL_0f7b: Unknown result type (might be due to invalid IL or missing references) //IL_0f82: Unknown result type (might be due to invalid IL or missing references) //IL_0f89: Unknown result type (might be due to invalid IL or missing references) //IL_0f90: Unknown result type (might be due to invalid IL or missing references) //IL_0f97: Unknown result type (might be due to invalid IL or missing references) //IL_0fa3: Expected O, but got Unknown //IL_0faf: Unknown result type (might be due to invalid IL or missing references) //IL_0fb4: Unknown result type (might be due to invalid IL or missing references) //IL_0fb6: Unknown result type (might be due to invalid IL or missing references) //IL_0fbb: Unknown result type (might be due to invalid IL or missing references) //IL_0fbd: Unknown result type (might be due to invalid IL or missing references) //IL_0fc2: Unknown result type (might be due to invalid IL or missing references) //IL_0fc9: Unknown result type (might be due to invalid IL or missing references) //IL_0fd0: Unknown result type (might be due to invalid IL or missing references) //IL_0fdb: Unknown result type (might be due to invalid IL or missing references) //IL_0fe2: Unknown result type (might be due to invalid IL or missing references) //IL_0fea: Unknown result type (might be due to invalid IL or missing references) //IL_0ff2: Unknown result type (might be due to invalid IL or missing references) //IL_0ffa: Unknown result type (might be due to invalid IL or missing references) //IL_1002: Unknown result type (might be due to invalid IL or missing references) //IL_1009: Unknown result type (might be due to invalid IL or missing references) //IL_1010: Unknown result type (might be due to invalid IL or missing references) //IL_1017: Unknown result type (might be due to invalid IL or missing references) //IL_101e: Unknown result type (might be due to invalid IL or missing references) //IL_102a: Expected O, but got Unknown //IL_1036: Unknown result type (might be due to invalid IL or missing references) //IL_103b: Unknown result type (might be due to invalid IL or missing references) //IL_103d: Unknown result type (might be due to invalid IL or missing references) //IL_1042: Unknown result type (might be due to invalid IL or missing references) //IL_1044: Unknown result type (might be due to invalid IL or missing references) //IL_1049: Unknown result type (might be due to invalid IL or missing references) //IL_1050: Unknown result type (might be due to invalid IL or missing references) //IL_1057: Unknown result type (might be due to invalid IL or missing references) //IL_105e: Unknown result type (might be due to invalid IL or missing references) //IL_1069: Unknown result type (might be due to invalid IL or missing references) //IL_1070: Unknown result type (might be due to invalid IL or missing references) //IL_1078: Unknown result type (might be due to invalid IL or missing references) //IL_1080: Unknown result type (might be due to invalid IL or missing references) //IL_1088: Unknown result type (might be due to invalid IL or missing references) //IL_1090: Unknown result type (might be due to invalid IL or missing references) //IL_1097: Unknown result type (might be due to invalid IL or missing references) //IL_109e: Unknown result type (might be due to invalid IL or missing references) //IL_10a5: Unknown result type (might be due to invalid IL or missing references) //IL_10ac: Unknown result type (might be due to invalid IL or missing references) //IL_10b8: Expected O, but got Unknown //IL_145a: Unknown result type (might be due to invalid IL or missing references) //IL_145f: Unknown result type (might be due to invalid IL or missing references) //IL_146a: Unknown result type (might be due to invalid IL or missing references) //IL_1471: Unknown result type (might be due to invalid IL or missing references) //IL_1478: Unknown result type (might be due to invalid IL or missing references) //IL_1483: Unknown result type (might be due to invalid IL or missing references) //IL_148a: Unknown result type (might be due to invalid IL or missing references) //IL_149a: Expected O, but got Unknown //IL_14a6: Unknown result type (might be due to invalid IL or missing references) //IL_14ab: Unknown result type (might be due to invalid IL or missing references) //IL_14b6: Unknown result type (might be due to invalid IL or missing references) //IL_14bd: Unknown result type (might be due to invalid IL or missing references) //IL_14c8: Unknown result type (might be due to invalid IL or missing references) //IL_14d3: Unknown result type (might be due to invalid IL or missing references) //IL_14de: Unknown result type (might be due to invalid IL or missing references) //IL_14e9: Unknown result type (might be due to invalid IL or missing references) //IL_14f4: Unknown result type (might be due to invalid IL or missing references) //IL_14ff: Unknown result type (might be due to invalid IL or missing references) //IL_150a: Unknown result type (might be due to invalid IL or missing references) //IL_1516: Unknown result type (might be due to invalid IL or missing references) //IL_151d: Unknown result type (might be due to invalid IL or missing references) //IL_152d: Expected O, but got Unknown //IL_152e: Unknown result type (might be due to invalid IL or missing references) //IL_1533: Unknown result type (might be due to invalid IL or missing references) //IL_153a: Unknown result type (might be due to invalid IL or missing references) //IL_1545: Unknown result type (might be due to invalid IL or missing references) //IL_154c: Unknown result type (might be due to invalid IL or missing references) //IL_1553: Unknown result type (might be due to invalid IL or missing references) //IL_155e: Unknown result type (might be due to invalid IL or missing references) //IL_1569: Unknown result type (might be due to invalid IL or missing references) //IL_1570: Unknown result type (might be due to invalid IL or missing references) //IL_157b: Unknown result type (might be due to invalid IL or missing references) //IL_158b: Expected O, but got Unknown //IL_10d1: Unknown result type (might be due to invalid IL or missing references) //IL_10df: Unknown result type (might be due to invalid IL or missing references) //IL_1106: Unknown result type (might be due to invalid IL or missing references) //IL_1123: Unknown result type (might be due to invalid IL or missing references) //IL_112a: Expected O, but got Unknown //IL_112d: Unknown result type (might be due to invalid IL or missing references) //IL_11a6: Unknown result type (might be due to invalid IL or missing references) //IL_11ad: Expected O, but got Unknown //IL_11b0: Unknown result type (might be due to invalid IL or missing references) //IL_1232: Unknown result type (might be due to invalid IL or missing references) //IL_1239: Expected O, but got Unknown //IL_1247: Unknown result type (might be due to invalid IL or missing references) //IL_124e: Expected O, but got Unknown //IL_1251: Unknown result type (might be due to invalid IL or missing references) //IL_12bc: Unknown result type (might be due to invalid IL or missing references) //IL_12c1: Unknown result type (might be due to invalid IL or missing references) //IL_12cc: Unknown result type (might be due to invalid IL or missing references) //IL_12cd: Unknown result type (might be due to invalid IL or missing references) //IL_12d2: Unknown result type (might be due to invalid IL or missing references) //IL_12d5: Unknown result type (might be due to invalid IL or missing references) //IL_12da: Unknown result type (might be due to invalid IL or missing references) //IL_12e5: Unknown result type (might be due to invalid IL or missing references) //IL_12f1: Unknown result type (might be due to invalid IL or missing references) //IL_1302: Expected O, but got Unknown //IL_1307: Expected O, but got Unknown //IL_1309: Unknown result type (might be due to invalid IL or missing references) //IL_1310: Expected O, but got Unknown //IL_131e: Unknown result type (might be due to invalid IL or missing references) //IL_1325: Expected O, but got Unknown //IL_1328: Unknown result type (might be due to invalid IL or missing references) //IL_136b: Unknown result type (might be due to invalid IL or missing references) //IL_1372: Expected O, but got Unknown //IL_1380: Unknown result type (might be due to invalid IL or missing references) //IL_1387: Expected O, but got Unknown //IL_138a: Unknown result type (might be due to invalid IL or missing references) //IL_13cd: Unknown result type (might be due to invalid IL or missing references) //IL_13d4: Expected O, but got Unknown //IL_13e2: Unknown result type (might be due to invalid IL or missing references) //IL_13e9: Expected O, but got Unknown //IL_13ec: Unknown result type (might be due to invalid IL or missing references) AIActor officialEnemyByGuid = GetOfficialEnemyByGuid("01972dee89fc4404a5c408d50007dad5"); GameObject corpseObject = null; m_CachedTargetObject = expandSharedAssets1.LoadAsset("SonicCompanion"); SpriteSerializer.AddSpriteToObject(m_CachedTargetObject, SonicCompanionCollection, "Sonic_Idle_Forward_01", (PerpendicularState)0); List spriteNameList = new List { "Sonic_Move_Left_001", "Sonic_Move_Left_002", "Sonic_Move_Left_003", "Sonic_Move_Left_004", "Sonic_Move_Left_005", "Sonic_Move_Left_006", "Sonic_Move_Left_007", "Sonic_Move_Left_008", "Sonic_Move_Left_009" }; List spriteNameList2 = new List { "Sonic_Move_Right_001", "Sonic_Move_Right_002", "Sonic_Move_Right_003", "Sonic_Move_Right_004", "Sonic_Move_Right_005", "Sonic_Move_Right_006", "Sonic_Move_Right_007", "Sonic_Move_Right_008", "Sonic_Move_Right_009" }; List spriteNameList3 = new List { "Sonic_Move_Forward_001", "Sonic_Move_Forward_002", "Sonic_Move_Forward_003", "Sonic_Move_Forward_004", "Sonic_Move_Forward_005", "Sonic_Move_Forward_006", "Sonic_Move_Forward_007", "Sonic_Move_Forward_008", "Sonic_Move_Forward_009" }; List spriteNameList4 = new List { "Sonic_Move_Back_001", "Sonic_Move_Back_002", "Sonic_Move_Back_003", "Sonic_Move_Back_004", "Sonic_Move_Back_005", "Sonic_Move_Back_006", "Sonic_Move_Back_007", "Sonic_Move_Back_008", "Sonic_Move_Back_009" }; List spriteNameList5 = new List { "Sonic_Move_Forward_Left_001", "Sonic_Move_Forward_Left_002", "Sonic_Move_Forward_Left_003", "Sonic_Move_Forward_Left_004", "Sonic_Move_Forward_Left_005", "Sonic_Move_Forward_Left_006", "Sonic_Move_Forward_Left_007", "Sonic_Move_Forward_Left_008", "Sonic_Move_Forward_Left_009" }; List spriteNameList6 = new List { "Sonic_Move_Forward_Right_001", "Sonic_Move_Forward_Right_002", "Sonic_Move_Forward_Right_003", "Sonic_Move_Forward_Right_004", "Sonic_Move_Forward_Right_005", "Sonic_Move_Forward_Right_006", "Sonic_Move_Forward_Right_007", "Sonic_Move_Forward_Right_008", "Sonic_Move_Forward_Right_009" }; List spriteNameList7 = new List { "Sonic_Move_Back_Left_001", "Sonic_Move_Back_Left_002", "Sonic_Move_Back_Left_003", "Sonic_Move_Back_Left_004", "Sonic_Move_Back_Left_005", "Sonic_Move_Back_Left_006", "Sonic_Move_Back_Left_007", "Sonic_Move_Back_Left_008", "Sonic_Move_Back_Left_009", "Sonic_Move_Back_Left_010" }; List spriteNameList8 = new List { "Sonic_Move_Back_Right_001", "Sonic_Move_Back_Right_002", "Sonic_Move_Back_Right_003", "Sonic_Move_Back_Right_004", "Sonic_Move_Back_Right_005", "Sonic_Move_Back_Right_006", "Sonic_Move_Back_Right_007", "Sonic_Move_Back_Right_008", "Sonic_Move_Back_Right_009", "Sonic_Move_Back_Right_010" }; List spriteNameList9 = new List { "Sonic_Idle_Left_01", "Sonic_Idle_Left_01" }; List spriteNameList10 = new List { "Sonic_Idle_Right_01", "Sonic_Idle_Right_01" }; List spriteNameList11 = new List { "Sonic_Idle_Forward_01", "Sonic_Idle_Forward_01" }; List spriteNameList12 = new List { "Sonic_Idle_Back_01", "Sonic_Idle_Back_01" }; List spriteNameList13 = new List { "Sonic_Idle_Forward_Left_01", "Sonic_Idle_Forward_Left_01" }; List spriteNameList14 = new List { "Sonic_Idle_Forward_Right_01", "Sonic_Idle_Forward_Right_01" }; List spriteNameList15 = new List { "Sonic_Idle_Back_Left_01", "Sonic_Idle_Back_Left_01" }; List spriteNameList16 = new List { "Sonic_Idle_Back_Right_01", "Sonic_Idle_Back_Right_01" }; List spriteNameList17 = new List { "Sonic_SpindashCharge_Forward_01", "Sonic_SpindashCharge_Forward_02", "Sonic_SpindashCharge_Forward_03", "Sonic_SpindashCharge_Forward_04", "Sonic_SpindashCharge_Forward_05", "Sonic_SpindashCharge_Forward_06", "Sonic_SpindashCharge_Forward_02", "Sonic_SpindashCharge_Forward_03", "Sonic_SpindashCharge_Forward_04", "Sonic_SpindashCharge_Forward_05", "Sonic_SpindashCharge_Forward_06", "Sonic_SpindashCharge_Forward_02", "Sonic_SpindashCharge_Forward_03", "Sonic_SpindashCharge_Forward_04", "Sonic_SpindashCharge_Forward_05", "Sonic_SpindashCharge_Forward_06" }; List spriteNameList18 = new List { "Sonic_SpindashCharge_Back_01", "Sonic_SpindashCharge_Back_02", "Sonic_SpindashCharge_Back_03", "Sonic_SpindashCharge_Back_04", "Sonic_SpindashCharge_Back_05", "Sonic_SpindashCharge_Back_06", "Sonic_SpindashCharge_Back_02", "Sonic_SpindashCharge_Back_03", "Sonic_SpindashCharge_Back_04", "Sonic_SpindashCharge_Back_05", "Sonic_SpindashCharge_Back_06", "Sonic_SpindashCharge_Back_02", "Sonic_SpindashCharge_Back_03", "Sonic_SpindashCharge_Back_04", "Sonic_SpindashCharge_Back_05", "Sonic_SpindashCharge_Back_06" }; List spriteNameList19 = new List { "Sonic_SpindashCharge_Left_01", "Sonic_SpindashCharge_Left_02", "Sonic_SpindashCharge_Left_03", "Sonic_SpindashCharge_Left_04", "Sonic_SpindashCharge_Left_05", "Sonic_SpindashCharge_Left_06", "Sonic_SpindashCharge_Left_02", "Sonic_SpindashCharge_Left_03", "Sonic_SpindashCharge_Left_04", "Sonic_SpindashCharge_Left_05", "Sonic_SpindashCharge_Left_06", "Sonic_SpindashCharge_Left_02", "Sonic_SpindashCharge_Left_03", "Sonic_SpindashCharge_Left_04", "Sonic_SpindashCharge_Left_05", "Sonic_SpindashCharge_Left_06" }; List spriteNameList20 = new List { "Sonic_SpindashCharge_Right_01", "Sonic_SpindashCharge_Right_02", "Sonic_SpindashCharge_Right_03", "Sonic_SpindashCharge_Right_04", "Sonic_SpindashCharge_Right_05", "Sonic_SpindashCharge_Right_06", "Sonic_SpindashCharge_Right_02", "Sonic_SpindashCharge_Right_03", "Sonic_SpindashCharge_Right_04", "Sonic_SpindashCharge_Right_05", "Sonic_SpindashCharge_Right_06", "Sonic_SpindashCharge_Right_02", "Sonic_SpindashCharge_Right_03", "Sonic_SpindashCharge_Right_04", "Sonic_SpindashCharge_Right_05", "Sonic_SpindashCharge_Right_06" }; List spriteNameList21 = new List { "Sonic_Spindash_01", "Sonic_Spindash_01", "Sonic_Spindash_02", "Sonic_Spindash_03", "Sonic_Spindash_04", "Sonic_Spindash_05", "Sonic_Spindash_06" }; List spriteNameList22 = new List { "Sonic_Rebound_Forward_01", "Sonic_Rebound_Forward_01" }; List spriteNameList23 = new List { "Sonic_Rebound_Back_01", "Sonic_Rebound_Back_01" }; List spriteNameList24 = new List { "Sonic_Rebound_Forward_Left_01", "Sonic_Rebound_Forward_Left_01" }; List spriteNameList25 = new List { "Sonic_Rebound_Forward_Right_01", "Sonic_Rebound_Forward_Right_01" }; List spriteNameList26 = new List { "Sonic_Rebound_Back_Left_01", "Sonic_Rebound_Back_Left_01" }; List spriteNameList27 = new List { "Sonic_Rebound_Back_Right_01", "Sonic_Rebound_Back_Right_01" }; List spriteNameList28 = new List { "Sonic_Rebound_Death_01", "Sonic_Rebound_Death_01" }; List spriteNameList29 = new List { "Sonic_Rebound_Death_01", "Sonic_Rebound_Death_02", "Sonic_Rebound_Death_03", "Sonic_Rebound_Death_04", "Sonic_Rebound_Death_05" }; ExpandUtility.GenerateSpriteAnimator(m_CachedTargetObject); tk2dSpriteAnimator component = m_CachedTargetObject.GetComponent(); ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList9, "idle_left", (WrapMode)0, 2); ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList10, "idle_right", (WrapMode)0, 2); ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList11, "idle_forward", (WrapMode)0, 2); ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList13, "idle_forward_left", (WrapMode)0, 2); ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList14, "idle_forward_right", (WrapMode)0, 2); ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList12, "idle_back", (WrapMode)0, 2); ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList15, "idle_back_left", (WrapMode)0, 2); ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList16, "idle_back_right", (WrapMode)0, 2); ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList, "move_left", (WrapMode)0, 12); ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList2, "move_right", (WrapMode)0, 12); ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList3, "move_forward", (WrapMode)0, 12); ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList5, "move_forward_left", (WrapMode)0, 12); ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList6, "move_forward_right", (WrapMode)0, 12); ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList4, "move_back", (WrapMode)0, 12); ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList7, "move_back_left", (WrapMode)0, 12); ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList8, "move_back_right", (WrapMode)0, 12); tk2dSpriteAnimationClip obj = ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList18, "spindashcharge_north", (WrapMode)2, 12); obj.frames[0].eventAudio = "Play_EX_SonicSpinDashCharge_01"; obj.frames[0].triggerEvent = true; tk2dSpriteAnimationClip obj2 = ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList17, "spindashcharge_south", (WrapMode)2, 12); obj2.frames[0].eventAudio = "Play_EX_SonicSpinDashCharge_01"; obj2.frames[0].triggerEvent = true; tk2dSpriteAnimationClip obj3 = ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList19, "spindashcharge_west", (WrapMode)2, 12); obj3.frames[0].eventAudio = "Play_EX_SonicSpinDashCharge_01"; obj3.frames[0].triggerEvent = true; tk2dSpriteAnimationClip obj4 = ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList20, "spindashcharge_east", (WrapMode)2, 12); obj4.frames[0].eventAudio = "Play_EX_SonicSpinDashCharge_01"; obj4.frames[0].triggerEvent = true; tk2dSpriteAnimationClip obj5 = ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList21, "spindash_release", (WrapMode)1, 12, 1); obj5.frames[0].eventAudio = "Play_EX_SonicSpinDashRelease_01"; obj5.frames[0].triggerEvent = true; ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList22, "rebound_forward", (WrapMode)2, 8); ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList24, "rebound_forward_left", (WrapMode)2, 8); ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList25, "rebound_forward_right", (WrapMode)2, 8); ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList23, "rebound_back", (WrapMode)2, 8); ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList26, "rebound_back_left", (WrapMode)2, 4); ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList27, "rebound_back_right", (WrapMode)2, 4); ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), new List { "Sonic_Idle_Forward_01" }, "spawn", (WrapMode)2, 4); ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), new List { "Sonic_Idle_Forward_01" }, "awaken", (WrapMode)2, 4); ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList29, "pitfall", (WrapMode)2, 8); tk2dSpriteAnimationClip obj6 = ExpandUtility.AddAnimation(component, SonicCompanionCollection.GetComponent(), spriteNameList28, "death", (WrapMode)2, 16); obj6.frames[0].eventAudio = "Play_EX_SonicDeath_01"; obj6.frames[0].triggerEvent = true; tk2dSpriteAnimationClip[] clips = component.Library.clips; foreach (tk2dSpriteAnimationClip val in clips) { if (val.name.ToLower().StartsWith("spindash")) { tk2dSpriteAnimationFrame[] frames = val.frames; for (int j = 0; j < frames.Length; j++) { frames[j].invulnerableFrame = true; } } } ExpandUtility.GenerateAIActorTemplate(m_CachedTargetObject, out corpseObject, "Sonic The Hedgehog", SonicCompanionGUID, null, null, null, 38, null, RigidBodyCollidesWithTileMap: true, RigidBodyCollidesWithOthers: true, RigidBodyCanBeCarried: true, RigidBodyCanBePushed: false, isFakePrefab: false, instantiateCorpseObject: false, officialEnemyByGuid.CorpseObject, EnemyHasNoShooter: true); AIActor component2 = m_CachedTargetObject.GetComponent(); if (!Object.op_Implicit((Object)(object)officialEnemyByGuid)) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for donor enemy is null!", false); } return; } component2.MovementSpeed = 6f; component2.EnemySwitchState = string.Empty; ((BraveBehaviour)component2).specRigidbody.PixelColliders.Clear(); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)3, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 12, ManualOffsetY = 10, ManualWidth = 17, ManualHeight = 16, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)2, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 12, ManualOffsetY = 16, ManualWidth = 17, ManualHeight = 24, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)4, Enabled = false, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 12, ManualOffsetY = 10, ManualWidth = 17, ManualHeight = 16, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); if (Object.op_Implicit((Object)(object)((BraveBehaviour)component2).aiAnimator)) { ((BraveBehaviour)component2).aiAnimator.facingType = (FacingType)2; ((BraveBehaviour)component2).aiAnimator.directionalType = (DirectionalType)10; ((BraveBehaviour)component2).aiAnimator.faceSouthWhenStopped = false; ((BraveBehaviour)component2).aiAnimator.faceTargetWhenStopped = false; ((BraveBehaviour)component2).aiAnimator.HitType = (HitStateType)0; ((BraveBehaviour)component2).aiAnimator.AnimatedFacingDirection = -90f; AIAnimator aiAnimator = ((BraveBehaviour)component2).aiAnimator; DirectionalAnimation val2 = new DirectionalAnimation(); val2.Type = (DirectionType)6; val2.Prefix = "idle"; val2.AnimNames = new string[8] { "idle_back", "idle_back_right", string.Empty, "idle_forward_right", "idle_forward", "idle_forward_left", string.Empty, "idle_back_left" }; val2.Flipped = (FlipType[])(object)new FlipType[8]; aiAnimator.IdleAnimation = val2; AIAnimator aiAnimator2 = ((BraveBehaviour)component2).aiAnimator; val2 = new DirectionalAnimation(); val2.Type = (DirectionType)6; val2.Prefix = "move"; val2.AnimNames = new string[8] { "move_back", "move_back_right", string.Empty, "move_forward_right", "move_forward", "move_forward_left", string.Empty, "move_back_left" }; val2.Flipped = (FlipType[])(object)new FlipType[8]; aiAnimator2.MoveAnimation = val2; AIAnimator aiAnimator3 = ((BraveBehaviour)component2).aiAnimator; List list = new List(); NamedDirectionalAnimation val3 = new NamedDirectionalAnimation(); val3.name = "rebound"; NamedDirectionalAnimation obj7 = val3; val2 = new DirectionalAnimation(); val2.Type = (DirectionType)5; val2.Prefix = "rebound"; val2.AnimNames = new string[6] { string.Empty, string.Empty, "rebound_forward_right", "rebound_forward", "rebound_forward_left", string.Empty }; val2.Flipped = (FlipType[])(object)new FlipType[6]; obj7.anim = val2; list.Add(val3); list.Add(new NamedDirectionalAnimation { name = "spindashcharge", anim = new DirectionalAnimation { Type = (DirectionType)9, Prefix = "spindashcharge", AnimNames = new string[4], Flipped = (FlipType[])(object)new FlipType[4] } }); val3 = new NamedDirectionalAnimation(); val3.name = "spindash_release"; NamedDirectionalAnimation obj8 = val3; val2 = new DirectionalAnimation(); val2.Type = (DirectionType)1; val2.Prefix = "spindash_release"; val2.AnimNames = new string[1] { "spindash_release" }; val2.Flipped = (FlipType[])(object)new FlipType[1]; obj8.anim = val2; list.Add(val3); val3 = new NamedDirectionalAnimation(); val3.name = "spawn"; NamedDirectionalAnimation obj9 = val3; val2 = new DirectionalAnimation(); val2.Type = (DirectionType)1; val2.Prefix = "spawn"; val2.AnimNames = new string[1] { "spawn" }; val2.Flipped = (FlipType[])(object)new FlipType[1]; obj9.anim = val2; list.Add(val3); val3 = new NamedDirectionalAnimation(); val3.name = "death"; NamedDirectionalAnimation obj10 = val3; val2 = new DirectionalAnimation(); val2.Type = (DirectionType)1; val2.Prefix = "death"; val2.AnimNames = new string[1] { "death" }; val2.Flipped = (FlipType[])(object)new FlipType[1]; obj10.anim = val2; list.Add(val3); aiAnimator3.OtherAnimations = list; } BehaviorSpeculator obj11 = m_CachedTargetObject.AddComponent(); obj11.OverrideBehaviors = new List(0); obj11.OtherBehaviors = new List(0); obj11.TargetBehaviors = new List { (TargetBehaviorBase)new TargetPlayerBehavior { Radius = 35f, LineOfSight = true, ObjectPermanence = true, SearchInterval = 0.25f, PauseOnTargetSwitch = false, PauseTime = 0.25f } }; obj11.MovementBehaviors = new List { (MovementBehaviorBase)new CompanionFollowPlayerBehavior { PathInterval = 0.25f, DisableInCombat = true, IdealRadius = 4f, CatchUpRadius = 8f, CatchUpAccelTime = 3f, CatchUpSpeed = 6f, CatchUpMaxSpeed = 10f, CatchUpAnimation = string.Empty, CatchUpOutAnimation = string.Empty, IdleAnimations = new string[0], CanRollOverPits = false, RollAnimation = string.Empty }, (MovementBehaviorBase)new SeekTargetBehavior { StopWhenInRange = true, CustomRange = -1f, LineOfSight = true, ReturnToSpawn = false, SpawnTetherDistance = 0f, PathInterval = 0.25f, SpecifyRange = false, MinActiveRange = 0f, MaxActiveRange = 0f } }; obj11.AttackBehaviors = new List { (AttackBehaviorBase)(object)new ExpandChargeBehavior { avoidExits = true, avoidWalls = false, minRange = 0f, primeTime = -1f, stopDuringPrime = true, leadAmount = 1f, chargeSpeed = 25f, chargeAcceleration = -1f, maxChargeDistance = -1f, chargeKnockback = 120f, chargeDamage = 25f, wallRecoilForce = 20f, stoppedByProjectiles = false, endWhenChargeAnimFinishes = false, switchCollidersOnCharge = true, collidesWithDodgeRollingPlayers = true, ShootPoint = null, bulletScript = null, primeAnim = "spindashcharge", chargeAnim = "spindash_release", hitAnim = "rebound", HideGun = false, launchVfx = null, trailVfx = null, trailVfxParent = null, hitVfx = null, nonActorHitVfx = null, chargeDustUps = true, chargeDustUpInterval = 0.25f, Cooldown = 2f, CooldownVariance = 0f, AttackCooldown = 0f, GlobalCooldown = 0f, InitialCooldown = 0f, InitialCooldownVariance = 0f, GroupName = null, GroupCooldown = 0f, MinRange = 0f, Range = 20f, MinWallDistance = 0f, MaxEnemiesInRoom = 0f, MinHealthThreshold = 0f, MaxHealthThreshold = 1f, HealthThresholds = new float[0], AccumulateHealthThresholds = true, targetAreaStyle = null, IsBlackPhantom = false, resetCooldownOnDamage = null, RequiresLineOfSight = true, MaxUsages = 0 } }; obj11.InstantFirstTick = false; obj11.TickInterval = 0.1f; obj11.PostAwakenDelay = 0f; obj11.RemoveDelayOnReinforce = false; obj11.OverrideStartingFacingDirection = false; obj11.StartingFacingDirection = -90f; obj11.SkipTimingDifferentiator = false; ((ISerializedObject)obj11).SerializedObjectReferences = new List(0); ((ISerializedObject)obj11).SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; ((ISerializedObject)obj11).SerializedStateValues = new List(0); ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(500f, (float?)null, false); ((BraveBehaviour)component2).healthHaver.ForceSetCurrentHealth(30f); ExpandUtility.MakeCompanion(component2, null, null, targetIsNewAIActor: true, ApplyCharmedColorOverride: false); ExpandCompanionManager expandCompanionManager = m_CachedTargetObject.AddComponent(); expandCompanionManager.SwapFaceTypesOnTarget = false; expandCompanionManager.HideGunsWhenNoTarget = false; expandCompanionManager.Rescale = true; ExpandTossSpriteOnDeath expandTossSpriteOnDeath = m_CachedTargetObject.AddComponent(); expandTossSpriteOnDeath.isPowBlockDeath = false; expandTossSpriteOnDeath.applyRotation = false; expandTossSpriteOnDeath.PopupSpeed = 0.08f; expandTossSpriteOnDeath.DropSpeed = 0.11f; expandTossSpriteOnDeath.specificSpriteName = "Sonic_Rebound_Death_01"; AddEnemyToDatabase(m_CachedTargetObject, SonicCompanionGUID); officialEnemyByGuid = null; } public static void BuildClownkinPrefab(AssetBundle expandSharedAssets1, out GameObject m_CachedTargetObject, out GameObject m_CachedWigObject) { //IL_09a8: Unknown result type (might be due to invalid IL or missing references) //IL_09c7: Unknown result type (might be due to invalid IL or missing references) //IL_09cc: Unknown result type (might be due to invalid IL or missing references) //IL_09d7: Unknown result type (might be due to invalid IL or missing references) //IL_09e2: Unknown result type (might be due to invalid IL or missing references) //IL_09ed: Unknown result type (might be due to invalid IL or missing references) //IL_09fd: Expected O, but got Unknown //IL_0a18: Unknown result type (might be due to invalid IL or missing references) //IL_0a1f: Unknown result type (might be due to invalid IL or missing references) //IL_0abe: Unknown result type (might be due to invalid IL or missing references) //IL_0adc: Unknown result type (might be due to invalid IL or missing references) //IL_0ade: Unknown result type (might be due to invalid IL or missing references) //IL_0b4c: Unknown result type (might be due to invalid IL or missing references) //IL_0b5a: Unknown result type (might be due to invalid IL or missing references) //IL_0b81: Unknown result type (might be due to invalid IL or missing references) //IL_0b9e: Unknown result type (might be due to invalid IL or missing references) //IL_0ba5: Expected O, but got Unknown //IL_0ba8: Unknown result type (might be due to invalid IL or missing references) //IL_0c01: Unknown result type (might be due to invalid IL or missing references) //IL_0c08: Expected O, but got Unknown //IL_0c0b: Unknown result type (might be due to invalid IL or missing references) //IL_0c64: Unknown result type (might be due to invalid IL or missing references) //IL_0c6b: Expected O, but got Unknown //IL_0c6e: Unknown result type (might be due to invalid IL or missing references) AIActor officialEnemyByGuid = GetOfficialEnemyByGuid("01972dee89fc4404a5c408d50007dad5"); GameObject corpseObject = null; m_CachedTargetObject = expandSharedAssets1.LoadAsset("Clownkin"); SpriteSerializer.AddSpriteToObject(m_CachedTargetObject, ClownkinCollection, "clownkin_idle_left_001", (PerpendicularState)0); List spriteNameList = new List { "clownkin_run_left_001", "clownkin_run_left_002", "clownkin_run_left_003", "clownkin_run_left_004", "clownkin_run_left_005", "clownkin_run_left_006" }; List spriteNameList2 = new List { "clownkin_run_right_001", "clownkin_run_right_002", "clownkin_run_right_003", "clownkin_run_right_004", "clownkin_run_right_005", "clownkin_run_right_006" }; List spriteNameList3 = new List { "clownkin_run_left_back_001", "clownkin_run_left_back_002", "clownkin_run_left_back_003", "clownkin_run_left_back_004", "clownkin_run_left_back_005", "clownkin_run_left_back_006" }; List spriteNameList4 = new List { "clownkin_run_right_back_001", "clownkin_run_right_back_002", "clownkin_run_right_back_003", "clownkin_run_right_back_004", "clownkin_run_right_back_005", "clownkin_run_right_back_006" }; List spriteNameList5 = new List { "clownkin_idle_left_001", "clownkin_idle_left_002" }; List spriteNameList6 = new List { "clownkin_idle_right_001", "clownkin_idle_right_002" }; List spriteNameList7 = new List { "clownkin_idle_back_001", "clownkin_idle_back_002" }; List spriteNameList8 = new List { "clownkin_hit_left_001" }; List spriteNameList9 = new List { "clownkin_hit_right_001" }; List spriteNameList10 = new List { "clownkin_hit_back_left_001" }; List spriteNameList11 = new List { "clownkin_hit_back_right_001" }; List spriteNameList12 = new List { "clownkin_die_left_001", "clownkin_die_left_002" }; List spriteNameList13 = new List { "clownkin_die_right_001", "clownkin_die_right_002" }; List spriteNameList14 = new List { "clownkin_die_right_back_001", "clownkin_die_right_back_002" }; List spriteNameList15 = new List { "clownkin_die_left_back_001", "clownkin_die_left_back_002" }; List spriteNameList16 = new List { "clownkin_death_left_front_001", "clownkin_death_left_front_002", "clownkin_death_left_front_003", "clownkin_death_left_front_004", "clownkin_death_left_front_005" }; List spriteNameList17 = new List { "clownkin_death_left_side_001", "clownkin_death_left_side_002", "clownkin_death_left_side_003", "clownkin_death_left_side_004" }; new List { "clownkin_death_right_front_001", "clownkin_death_right_front_002", "clownkin_death_right_front_003", "clownkin_death_right_front_004", "clownkin_death_right_front_005" }; List spriteNameList18 = new List { "clownkin_death_right_side_001", "clownkin_death_right_side_002", "clownkin_death_right_side_003", "clownkin_death_right_side_004" }; List spriteNameList19 = new List { "clownkin_death_right_side_001", "clownkin_death_right_side_002", "clownkin_death_right_side_003", "clownkin_death_right_side_004" }; List spriteNameList20 = new List { "clownkin_death_right_back_001", "clownkin_death_right_back_002", "clownkin_death_right_back_003", "clownkin_death_right_back_004", "clownkin_death_right_back_005" }; List spriteNameList21 = new List { "clownkin_death_left_back_001", "clownkin_death_left_back_002", "clownkin_death_left_back_003", "clownkin_death_left_back_004", "clownkin_death_left_back_005" }; new List { "clownkin_death_front_north_001", "clownkin_death_front_north_002", "clownkin_death_front_north_003", "clownkin_death_front_north_004" }; new List { "clownkin_death_back_south_001", "clownkin_death_back_south_002", "clownkin_death_back_south_003", "clownkin_death_back_south_004" }; List spriteNameList22 = new List { "clownkin_spawn_001", "clownkin_spawn_002", "clownkin_spawn_003" }; List spriteNameList23 = new List { "clownkin_pitfall_001", "clownkin_pitfall_002", "clownkin_pitfall_003", "clownkin_pitfall_004", "clownkin_pitfall_005" }; ExpandUtility.GenerateSpriteAnimator(m_CachedTargetObject); tk2dSpriteAnimator component = m_CachedTargetObject.GetComponent(); ExpandUtility.AddAnimation(component, ClownkinCollection.GetComponent(), spriteNameList5, "idle_left", (WrapMode)0, 5); ExpandUtility.AddAnimation(component, ClownkinCollection.GetComponent(), spriteNameList6, "idle_right", (WrapMode)0, 5); ExpandUtility.AddAnimation(component, ClownkinCollection.GetComponent(), spriteNameList7, "idle_back", (WrapMode)0, 5); ExpandUtility.AddAnimation(component, ClownkinCollection.GetComponent(), spriteNameList, "move_forward_left", (WrapMode)0, 10); ExpandUtility.AddAnimation(component, ClownkinCollection.GetComponent(), spriteNameList2, "move_forward_right", (WrapMode)0, 10); ExpandUtility.AddAnimation(component, ClownkinCollection.GetComponent(), spriteNameList3, "move_back_left", (WrapMode)0, 10); ExpandUtility.AddAnimation(component, ClownkinCollection.GetComponent(), spriteNameList4, "move_back_right", (WrapMode)0, 10); ExpandUtility.AddAnimation(component, ClownkinCollection.GetComponent(), spriteNameList22, "spawn", (WrapMode)2, 8); ExpandUtility.AddAnimation(component, ClownkinCollection.GetComponent(), spriteNameList23, "pitfall", (WrapMode)2); ExpandUtility.AddAnimation(component, ClownkinCollection.GetComponent(), spriteNameList8, "hit_left", (WrapMode)2, 4); ExpandUtility.AddAnimation(component, ClownkinCollection.GetComponent(), spriteNameList9, "hit_right", (WrapMode)2, 4); ExpandUtility.AddAnimation(component, ClownkinCollection.GetComponent(), spriteNameList10, "hit_back_left", (WrapMode)2, 4); ExpandUtility.AddAnimation(component, ClownkinCollection.GetComponent(), spriteNameList11, "hit_back_right", (WrapMode)2, 4); ExpandUtility.AddAnimation(component, ClownkinCollection.GetComponent(), spriteNameList12, "die_left", (WrapMode)2, 10); ExpandUtility.AddAnimation(component, ClownkinCollection.GetComponent(), spriteNameList13, "die_right", (WrapMode)2, 10); ExpandUtility.AddAnimation(component, ClownkinCollection.GetComponent(), spriteNameList15, "die_back_left", (WrapMode)2, 10); ExpandUtility.AddAnimation(component, ClownkinCollection.GetComponent(), spriteNameList14, "die_back_right", (WrapMode)2, 10); ExpandUtility.AddAnimation(component, ClownkinCollection.GetComponent(), spriteNameList16, "death_left", (WrapMode)2, 10); ExpandUtility.AddAnimation(component, ClownkinCollection.GetComponent(), spriteNameList19, "death_right", (WrapMode)2, 10); ExpandUtility.AddAnimation(component, ClownkinCollection.GetComponent(), spriteNameList21, "death_back_left", (WrapMode)2, 10); ExpandUtility.AddAnimation(component, ClownkinCollection.GetComponent(), spriteNameList20, "death_back_right", (WrapMode)2, 10); ExpandUtility.AddAnimation(component, ClownkinCollection.GetComponent(), spriteNameList17, "death_left_side", (WrapMode)2, 10); ExpandUtility.AddAnimation(component, ClownkinCollection.GetComponent(), spriteNameList18, "death_right_side", (WrapMode)2, 10); ExpandUtility.GenerateAIActorTemplate(m_CachedTargetObject, out corpseObject, "ClownKin", ClownkinGUID, null, null, null, 38, null, RigidBodyCollidesWithTileMap: true, RigidBodyCollidesWithOthers: true, RigidBodyCanBeCarried: true, RigidBodyCanBePushed: false, isFakePrefab: false, instantiateCorpseObject: false, GetOfficialEnemyByGuid("01972dee89fc4404a5c408d50007dad5").CorpseObject, EnemyHasNoShooter: true); AIActor component2 = m_CachedTargetObject.GetComponent(); component2.MovementSpeed = 2f; component2.EnemySwitchState = "Metal_Bullet_Man"; component2.IgnoreForRoomClear = true; ((BraveBehaviour)component2).specRigidbody.PixelColliders[0].ManualOffsetX = 8; ((BraveBehaviour)component2).specRigidbody.PixelColliders[1].ManualOffsetX = 8; component2.IsHarmlessEnemy = true; component2.CollisionDamage = 0f; m_CachedWigObject = expandSharedAssets1.LoadAsset("Clownkin_Wig"); m_CachedWigObject.layer = 22; ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(ClownkinWig, ClownkinCollection, "clownkin_wig", (PerpendicularState)0)).HeightOffGround = 0f; List spriteNameList24 = new List { "clownkin_wig", "clownkin_wig_grounded" }; ExpandUtility.GenerateSpriteAnimator(m_CachedWigObject, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true); ExpandUtility.AddAnimation(m_CachedWigObject.GetComponent(), ClownkinCollection.GetComponent(), spriteNameList24, "wig_drop", (WrapMode)2, 2); m_CachedWigObject.GetComponent().DefaultClipId = 0; DebrisObject obj = m_CachedWigObject.AddComponent(); ((EphemeralObject)obj).Priority = (EphemeralPriority)2; obj.audioEventName = string.Empty; obj.playAnimationOnTrigger = false; obj.usesDirectionalFallAnimations = false; obj.directionalAnimationData = new DebrisDirectionalAnimationInfo { fallDown = string.Empty, fallLeft = string.Empty, fallRight = string.Empty, fallUp = string.Empty }; obj.breaksOnFall = true; obj.breakOnFallChance = 1f; obj.changesCollisionLayer = false; obj.groundedCollisionLayer = (CollisionLayer)5; obj.followupBehavior = (DebrisFollowupAction)0; obj.collisionStopsBullets = false; obj.animatePitFall = false; obj.pitFallSplash = true; obj.inertialMass = 1f; obj.motionMultiplier = 1f; obj.canRotate = true; obj.angularVelocity = 0f; obj.angularVelocityVariance = 20f; obj.bounceCount = 1; obj.additionalBounceEnglish = 0f; obj.decayOnBounce = 0.5f; obj.killTranslationOnBounce = false; obj.usesLifespan = false; obj.lifespanMin = 1f; obj.lifespanMax = 1f; obj.shouldUseSRBMotion = false; obj.removeSRBOnGrounded = false; obj.placementOptions = new DebrisPlacementOptions { canBeRotated = false, canBeFlippedHorizontally = false, canBeFlippedVertically = false }; obj.DoesGoopOnRest = false; obj.AssignedGoop = null; obj.GoopRadius = 1f; obj.additionalHeightBoost = 0f; obj.AssignFinalWorldDepth(-1.5f); obj.ForceUpdateIfDisabled = false; if (!Object.op_Implicit((Object)(object)officialEnemyByGuid)) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for donor enemy is null!", false); } return; } if (Object.op_Implicit((Object)(object)((BraveBehaviour)component2).aiAnimator)) { ((BraveBehaviour)component2).aiAnimator.facingType = (FacingType)2; ((BraveBehaviour)component2).aiAnimator.directionalType = (DirectionalType)10; ((BraveBehaviour)component2).aiAnimator.faceSouthWhenStopped = true; ((BraveBehaviour)component2).aiAnimator.faceTargetWhenStopped = false; ((BraveBehaviour)component2).aiAnimator.HitType = (HitStateType)0; ((BraveBehaviour)component2).aiAnimator.AnimatedFacingDirection = -90f; AIAnimator aiAnimator = ((BraveBehaviour)component2).aiAnimator; DirectionalAnimation val = new DirectionalAnimation(); val.Type = (DirectionType)4; val.Prefix = "idle"; val.AnimNames = new string[4] { "idle_back", "idle_right", "idle_left", "idle_back" }; val.Flipped = (FlipType[])(object)new FlipType[4]; aiAnimator.IdleAnimation = val; AIAnimator aiAnimator2 = ((BraveBehaviour)component2).aiAnimator; val = new DirectionalAnimation(); val.Type = (DirectionType)4; val.Prefix = "move"; val.AnimNames = new string[4] { string.Empty, "move_forward_right", "move_forward_left", string.Empty }; val.Flipped = (FlipType[])(object)new FlipType[4]; aiAnimator2.MoveAnimation = val; AIAnimator aiAnimator3 = ((BraveBehaviour)component2).aiAnimator; val = new DirectionalAnimation(); val.Type = (DirectionType)4; val.Prefix = "hit"; val.AnimNames = new string[4] { "hit_back_left", "hit_left", "hit_right", "hit_back_right" }; val.Flipped = (FlipType[])(object)new FlipType[4]; aiAnimator3.HitAnimation = val; ((BraveBehaviour)component2).aiAnimator.OtherAnimations = new List(0); } BehaviorSpeculator obj2 = m_CachedTargetObject.AddComponent(); obj2.OverrideBehaviors = new List(0); obj2.OtherBehaviors = new List(0); obj2.TargetBehaviors = new List(0); obj2.AttackBehaviors = new List(0); obj2.MovementBehaviors = new List { (MovementBehaviorBase)(object)new ExpandSimpleMoveErraticallyBehavior() }; obj2.InstantFirstTick = false; obj2.TickInterval = 0.1f; obj2.PostAwakenDelay = 1f; obj2.RemoveDelayOnReinforce = false; obj2.OverrideStartingFacingDirection = false; obj2.StartingFacingDirection = -90f; obj2.SkipTimingDifferentiator = false; ((ISerializedObject)obj2).SerializedObjectReferences = new List(0); ((ISerializedObject)obj2).SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; ((ISerializedObject)obj2).SerializedStateValues = new List(0); m_CachedTargetObject.AddComponent(); HelmetController obj3 = m_CachedTargetObject.AddComponent(); obj3.helmetEffect = m_CachedWigObject; obj3.helmetForce = 5f; AddEnemyToDatabaseAndAmmonomicon(component2, ClownkinGUID, ExpandAmmonomiconDatabase.ClownKin); } public static void BuildClownkinAltPrefab(AssetBundle expandSharedAssets1, out GameObject m_CachedTargetObject) { //IL_0452: Unknown result type (might be due to invalid IL or missing references) //IL_0457: Unknown result type (might be due to invalid IL or missing references) //IL_0462: Unknown result type (might be due to invalid IL or missing references) //IL_0469: Unknown result type (might be due to invalid IL or missing references) //IL_0470: Unknown result type (might be due to invalid IL or missing references) //IL_047b: Unknown result type (might be due to invalid IL or missing references) //IL_0482: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Expected O, but got Unknown //IL_04a2: Unknown result type (might be due to invalid IL or missing references) //IL_04a9: Expected O, but got Unknown //IL_0543: Unknown result type (might be due to invalid IL or missing references) //IL_0548: Unknown result type (might be due to invalid IL or missing references) //IL_054f: Unknown result type (might be due to invalid IL or missing references) //IL_055a: Unknown result type (might be due to invalid IL or missing references) //IL_0561: Unknown result type (might be due to invalid IL or missing references) //IL_0568: Unknown result type (might be due to invalid IL or missing references) //IL_0573: Unknown result type (might be due to invalid IL or missing references) //IL_057e: Unknown result type (might be due to invalid IL or missing references) //IL_0585: Unknown result type (might be due to invalid IL or missing references) //IL_0590: Unknown result type (might be due to invalid IL or missing references) //IL_05a0: Expected O, but got Unknown //IL_05af: Unknown result type (might be due to invalid IL or missing references) //IL_05b4: Unknown result type (might be due to invalid IL or missing references) //IL_05bf: Unknown result type (might be due to invalid IL or missing references) //IL_05c6: Unknown result type (might be due to invalid IL or missing references) //IL_05c8: Unknown result type (might be due to invalid IL or missing references) //IL_05cd: Unknown result type (might be due to invalid IL or missing references) //IL_05d4: Unknown result type (might be due to invalid IL or missing references) //IL_05db: Unknown result type (might be due to invalid IL or missing references) //IL_05e2: Unknown result type (might be due to invalid IL or missing references) //IL_05e9: Unknown result type (might be due to invalid IL or missing references) //IL_05f4: Unknown result type (might be due to invalid IL or missing references) //IL_05ff: Unknown result type (might be due to invalid IL or missing references) //IL_0606: Unknown result type (might be due to invalid IL or missing references) //IL_0611: Unknown result type (might be due to invalid IL or missing references) //IL_061c: Unknown result type (might be due to invalid IL or missing references) //IL_0623: Unknown result type (might be due to invalid IL or missing references) //IL_062a: Unknown result type (might be due to invalid IL or missing references) //IL_0635: Unknown result type (might be due to invalid IL or missing references) //IL_063c: Unknown result type (might be due to invalid IL or missing references) //IL_0643: Unknown result type (might be due to invalid IL or missing references) //IL_064a: Unknown result type (might be due to invalid IL or missing references) //IL_0651: Unknown result type (might be due to invalid IL or missing references) //IL_0658: Unknown result type (might be due to invalid IL or missing references) //IL_065f: Unknown result type (might be due to invalid IL or missing references) //IL_066a: Unknown result type (might be due to invalid IL or missing references) //IL_0671: Unknown result type (might be due to invalid IL or missing references) //IL_067c: Unknown result type (might be due to invalid IL or missing references) //IL_0687: Unknown result type (might be due to invalid IL or missing references) //IL_0692: Unknown result type (might be due to invalid IL or missing references) //IL_069d: Unknown result type (might be due to invalid IL or missing references) //IL_06a8: Unknown result type (might be due to invalid IL or missing references) //IL_06b3: Unknown result type (might be due to invalid IL or missing references) //IL_06ba: Unknown result type (might be due to invalid IL or missing references) //IL_06c5: Unknown result type (might be due to invalid IL or missing references) //IL_06d0: Unknown result type (might be due to invalid IL or missing references) //IL_06db: Unknown result type (might be due to invalid IL or missing references) //IL_06e6: Unknown result type (might be due to invalid IL or missing references) //IL_06f1: Unknown result type (might be due to invalid IL or missing references) //IL_06fc: Unknown result type (might be due to invalid IL or missing references) //IL_0707: Unknown result type (might be due to invalid IL or missing references) //IL_0713: Unknown result type (might be due to invalid IL or missing references) //IL_071a: Unknown result type (might be due to invalid IL or missing references) //IL_0721: Unknown result type (might be due to invalid IL or missing references) //IL_0728: Unknown result type (might be due to invalid IL or missing references) //IL_072f: Unknown result type (might be due to invalid IL or missing references) //IL_0736: Unknown result type (might be due to invalid IL or missing references) //IL_0742: Expected O, but got Unknown //IL_0839: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01fc: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Expected O, but got Unknown //IL_0206: Unknown result type (might be due to invalid IL or missing references) //IL_025f: Unknown result type (might be due to invalid IL or missing references) //IL_0266: Expected O, but got Unknown //IL_0269: Unknown result type (might be due to invalid IL or missing references) //IL_02c2: Unknown result type (might be due to invalid IL or missing references) //IL_02c9: Expected O, but got Unknown //IL_02cc: Unknown result type (might be due to invalid IL or missing references) //IL_032e: Unknown result type (might be due to invalid IL or missing references) //IL_0335: Expected O, but got Unknown //IL_0343: Unknown result type (might be due to invalid IL or missing references) //IL_034a: Expected O, but got Unknown //IL_034d: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: Unknown result type (might be due to invalid IL or missing references) //IL_03af: Expected O, but got Unknown //IL_03bd: Unknown result type (might be due to invalid IL or missing references) //IL_03c4: Expected O, but got Unknown //IL_03c7: Unknown result type (might be due to invalid IL or missing references) AIActor officialEnemyByGuid = GetOfficialEnemyByGuid("88b6b6a93d4b4234a67844ef4728382c"); AIActor officialEnemyByGuid2 = GetOfficialEnemyByGuid("01972dee89fc4404a5c408d50007dad5"); AIActor officialEnemyByGuid3 = GetOfficialEnemyByGuid("9216803e9c894002a4b931d7ea9c6bdf"); GameObject corpseObject = null; m_CachedTargetObject = expandSharedAssets1.LoadAsset("ClownkinAlt"); SpriteSerializer.AddSpriteToObject(m_CachedTargetObject, ClownkinCollection, "clownkin_idle_left_001", (PerpendicularState)0); ExpandUtility.GenerateSpriteAnimator(m_CachedTargetObject, ClownkinPrefab.GetComponent().Library); ExpandUtility.DuplicateAIShooterAndAIBulletBank(gunAttachPointOverride: ((Component)m_CachedTargetObject.transform.Find("GunAttachPoint")).gameObject.transform, targetObject: m_CachedTargetObject, sourceShooter: ((BraveBehaviour)officialEnemyByGuid3).aiShooter, sourceBulletBank: ((Component)officialEnemyByGuid3).GetComponent(), startingGunOverrideID: 520); ExpandUtility.GenerateAIActorTemplate(m_CachedTargetObject, out corpseObject, "ClownKin Companion", ClownkinAltGUID, null, null, null, 38, null, RigidBodyCollidesWithTileMap: true, RigidBodyCollidesWithOthers: true, RigidBodyCanBeCarried: true, RigidBodyCanBePushed: false, isFakePrefab: false, instantiateCorpseObject: false, GetOfficialEnemyByGuid("88b6b6a93d4b4234a67844ef4728382c").CorpseObject, EnemyHasNoShooter: true); AIActor component = m_CachedTargetObject.GetComponent(); component.MovementSpeed = 3f; component.IgnoreForRoomClear = true; component.IsHarmlessEnemy = true; component.EnemySwitchState = "Metal_Bullet_Man"; ((BraveBehaviour)component).specRigidbody.PixelColliders[0].ManualOffsetX = 8; ((BraveBehaviour)component).specRigidbody.PixelColliders[1].ManualOffsetX = 8; ((BraveBehaviour)component).aiShooter.AllowTwoHands = true; ((BraveBehaviour)component).aiShooter.handObject = ((BraveBehaviour)officialEnemyByGuid2).aiShooter.handObject; component.CanDropCurrency = false; if (!Object.op_Implicit((Object)(object)officialEnemyByGuid)) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for donor enemy is null!", false); } return; } if (Object.op_Implicit((Object)(object)((BraveBehaviour)component).aiAnimator)) { ((BraveBehaviour)component).aiAnimator.facingType = (FacingType)2; ((BraveBehaviour)component).aiAnimator.directionalType = (DirectionalType)10; ((BraveBehaviour)component).aiAnimator.faceSouthWhenStopped = true; ((BraveBehaviour)component).aiAnimator.faceTargetWhenStopped = false; ((BraveBehaviour)component).aiAnimator.HitType = (HitStateType)0; ((BraveBehaviour)component).aiAnimator.AnimatedFacingDirection = -90f; AIAnimator aiAnimator = ((BraveBehaviour)component).aiAnimator; DirectionalAnimation val = new DirectionalAnimation(); val.Type = (DirectionType)4; val.Prefix = "idle"; val.AnimNames = new string[4] { "idle_back", "idle_right", "idle_left", "idle_back" }; val.Flipped = (FlipType[])(object)new FlipType[4]; aiAnimator.IdleAnimation = val; AIAnimator aiAnimator2 = ((BraveBehaviour)component).aiAnimator; val = new DirectionalAnimation(); val.Type = (DirectionType)4; val.Prefix = "move"; val.AnimNames = new string[4] { string.Empty, "move_forward_right", "move_forward_left", string.Empty }; val.Flipped = (FlipType[])(object)new FlipType[4]; aiAnimator2.MoveAnimation = val; AIAnimator aiAnimator3 = ((BraveBehaviour)component).aiAnimator; val = new DirectionalAnimation(); val.Type = (DirectionType)4; val.Prefix = "hit"; val.AnimNames = new string[4] { "hit_back_left", "hit_left", "hit_right", "hit_back_right" }; val.Flipped = (FlipType[])(object)new FlipType[4]; aiAnimator3.HitAnimation = val; AIAnimator aiAnimator4 = ((BraveBehaviour)component).aiAnimator; List list = new List(); NamedDirectionalAnimation val2 = new NamedDirectionalAnimation(); val2.name = "spawn"; NamedDirectionalAnimation obj = val2; val = new DirectionalAnimation(); val.Type = (DirectionType)4; val.Prefix = "spawn"; val.AnimNames = new string[4] { "idle_back", "idle_right", "idle_left", "idle_back" }; val.Flipped = (FlipType[])(object)new FlipType[4]; obj.anim = val; list.Add(val2); val2 = new NamedDirectionalAnimation(); val2.name = "awaken"; NamedDirectionalAnimation obj2 = val2; val = new DirectionalAnimation(); val.Type = (DirectionType)4; val.Prefix = "awaken"; val.AnimNames = new string[4] { "idle_back", "idle_right", "idle_left", "idle_back" }; val.Flipped = (FlipType[])(object)new FlipType[4]; obj2.anim = val; list.Add(val2); aiAnimator4.OtherAnimations = list; } BehaviorSpeculator val3 = m_CachedTargetObject.AddComponent(); val3.OverrideBehaviors = new List(0); val3.OtherBehaviors = new List(0); val3.TargetBehaviors = new List { (TargetBehaviorBase)new TargetPlayerBehavior { Radius = 35f, LineOfSight = true, ObjectPermanence = true, SearchInterval = 0.25f, PauseOnTargetSwitch = false, PauseTime = 0.25f } }; List list2 = new List(); CompanionFollowPlayerBehavior val4 = new CompanionFollowPlayerBehavior(); val4.PathInterval = 0.25f; val4.DisableInCombat = true; val4.IdealRadius = 3f; val4.CatchUpRadius = 6f; val4.CatchUpAccelTime = 5f; val4.CatchUpSpeed = 6f; val4.CatchUpMaxSpeed = 10f; val4.CatchUpAnimation = string.Empty; val4.CatchUpOutAnimation = string.Empty; val4.IdleAnimations = new string[1] { "idle" }; val4.CanRollOverPits = false; val4.RollAnimation = string.Empty; list2.Add((MovementBehaviorBase)(object)val4); list2.Add((MovementBehaviorBase)new SeekTargetBehavior { StopWhenInRange = true, CustomRange = 6f, LineOfSight = true, ReturnToSpawn = false, SpawnTetherDistance = 0f, PathInterval = 0.5f, SpecifyRange = false, MinActiveRange = 0f, MaxActiveRange = 0f }); val3.MovementBehaviors = list2; val3.AttackBehaviors = new List { (AttackBehaviorBase)new ShootGunBehavior { GroupCooldownVariance = 0f, LineOfSight = true, WeaponType = (WeaponType)0, OverrideBulletName = null, BulletScript = null, FixTargetDuringAttack = false, StopDuringAttack = false, LeadAmount = 1f, LeadChance = 0.5f, RespectReload = true, MagazineCapacity = 6f, ReloadSpeed = 3.5f, EmptiesClip = false, SuppressReloadAnim = false, TimeBetweenShots = -1f, PreventTargetSwitching = false, OverrideAnimation = null, OverrideDirectionalAnimation = null, HideGun = false, UseLaserSight = false, UseGreenLaser = false, PreFireLaserTime = -1f, AimAtFacingDirectionWhenSafe = false, Cooldown = 0.25f, CooldownVariance = 0f, AttackCooldown = 0.25f, GlobalCooldown = 0f, InitialCooldown = 0f, InitialCooldownVariance = 0f, GroupName = null, GroupCooldown = 0f, MinRange = 0f, Range = 12f, MinWallDistance = 0f, MaxEnemiesInRoom = 0f, MinHealthThreshold = 0f, MaxHealthThreshold = 1f, HealthThresholds = new float[0], AccumulateHealthThresholds = true, targetAreaStyle = null, IsBlackPhantom = false, resetCooldownOnDamage = null, RequiresLineOfSight = false, MaxUsages = 0 } }; val3.InstantFirstTick = false; val3.TickInterval = 0.1f; val3.PostAwakenDelay = 1f; val3.RemoveDelayOnReinforce = false; val3.OverrideStartingFacingDirection = false; val3.StartingFacingDirection = -90f; val3.SkipTimingDifferentiator = false; ((ISerializedObject)val3).SerializedObjectReferences = new List(0); ((ISerializedObject)val3).SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; ((ISerializedObject)val3).SerializedStateValues = new List(0); ExpandClownKinBalloonManager expandClownKinBalloonManager = m_CachedTargetObject.AddComponent(); expandClownKinBalloonManager.IsSingleBalloon = true; expandClownKinBalloonManager.SingleBalloonDoesBlankOnPop = true; expandClownKinBalloonManager.DoConfettiOnSpawn = false; HelmetController obj3 = m_CachedTargetObject.AddComponent(); obj3.helmetEffect = ClownkinWig; obj3.helmetForce = 5f; ExpandUtility.MakeCompanion(component, null, null, targetIsNewAIActor: true, ApplyCharmedColorOverride: false, blocksEnemyBullets: false, ImmuneToAllDamage: true); ExpandCompanionManager expandCompanionManager = m_CachedTargetObject.AddComponent(); expandCompanionManager.ToggleFaceSouthWhenStopped = true; expandCompanionManager.WithTargetFaceType = (FacingType)1; AddEnemyToDatabase(m_CachedTargetObject, ClownkinAltGUID, IsNormalEnemy: true); officialEnemyByGuid2 = null; officialEnemyByGuid3 = null; } public static void BuildClownkinNoFXPrefab(AssetBundle expandSharedAssets1, out GameObject m_CachedTargetObject) { //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_013f: 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_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0184: Expected O, but got Unknown //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_01da: Unknown result type (might be due to invalid IL or missing references) //IL_01e0: Expected O, but got Unknown //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Unknown result type (might be due to invalid IL or missing references) //IL_023c: Expected O, but got Unknown //IL_023e: Unknown result type (might be due to invalid IL or missing references) AIActor officialEnemyByGuid = GetOfficialEnemyByGuid("01972dee89fc4404a5c408d50007dad5"); GameObject corpseObject = null; m_CachedTargetObject = expandSharedAssets1.LoadAsset("Clownkin_NoFX"); SpriteSerializer.AddSpriteToObject(m_CachedTargetObject, ClownkinCollection, "clownkin_idle_left_001", (PerpendicularState)0); ExpandUtility.GenerateSpriteAnimator(m_CachedTargetObject, ClownkinPrefab.GetComponent().Library); ExpandUtility.GenerateAIActorTemplate(m_CachedTargetObject, out corpseObject, "ClownKin From Chest", ClownkinNoFXGUID, null, null, null, 38, null, RigidBodyCollidesWithTileMap: true, RigidBodyCollidesWithOthers: true, RigidBodyCanBeCarried: true, RigidBodyCanBePushed: false, isFakePrefab: false, instantiateCorpseObject: false, GetOfficialEnemyByGuid("01972dee89fc4404a5c408d50007dad5").CorpseObject, EnemyHasNoShooter: true); AIActor component = m_CachedTargetObject.GetComponent(); component.MovementSpeed = 2f; component.EnemySwitchState = "Metal_Bullet_Man"; component.IgnoreForRoomClear = true; ((BraveBehaviour)component).specRigidbody.PixelColliders[0].ManualOffsetX = 8; ((BraveBehaviour)component).specRigidbody.PixelColliders[1].ManualOffsetX = 8; component.IsHarmlessEnemy = true; component.CollisionDamage = 0f; if (!Object.op_Implicit((Object)(object)officialEnemyByGuid)) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for donor enemy is null!", false); } return; } if (Object.op_Implicit((Object)(object)((BraveBehaviour)component).aiAnimator)) { ((BraveBehaviour)component).aiAnimator.facingType = (FacingType)2; ((BraveBehaviour)component).aiAnimator.directionalType = (DirectionalType)10; ((BraveBehaviour)component).aiAnimator.faceSouthWhenStopped = true; ((BraveBehaviour)component).aiAnimator.faceTargetWhenStopped = false; ((BraveBehaviour)component).aiAnimator.HitType = (HitStateType)0; ((BraveBehaviour)component).aiAnimator.AnimatedFacingDirection = -90f; AIAnimator aiAnimator = ((BraveBehaviour)component).aiAnimator; DirectionalAnimation val = new DirectionalAnimation(); val.Type = (DirectionType)4; val.Prefix = "idle"; val.AnimNames = new string[4] { "idle_back", "idle_right", "idle_left", "idle_back" }; val.Flipped = (FlipType[])(object)new FlipType[4]; aiAnimator.IdleAnimation = val; AIAnimator aiAnimator2 = ((BraveBehaviour)component).aiAnimator; val = new DirectionalAnimation(); val.Type = (DirectionType)4; val.Prefix = "move"; val.AnimNames = new string[4] { string.Empty, "move_forward_right", "move_forward_left", string.Empty }; val.Flipped = (FlipType[])(object)new FlipType[4]; aiAnimator2.MoveAnimation = val; AIAnimator aiAnimator3 = ((BraveBehaviour)component).aiAnimator; val = new DirectionalAnimation(); val.Type = (DirectionType)4; val.Prefix = "hit"; val.AnimNames = new string[4] { "hit_back_left", "hit_left", "hit_right", "hit_back_right" }; val.Flipped = (FlipType[])(object)new FlipType[4]; aiAnimator3.HitAnimation = val; ((BraveBehaviour)component).aiAnimator.OtherAnimations = new List(0); } BehaviorSpeculator obj = m_CachedTargetObject.AddComponent(); obj.OverrideBehaviors = new List(0); obj.OtherBehaviors = new List(0); obj.TargetBehaviors = new List(0); obj.AttackBehaviors = new List(0); obj.MovementBehaviors = new List { (MovementBehaviorBase)(object)new ExpandSimpleMoveErraticallyBehavior() }; obj.InstantFirstTick = false; obj.TickInterval = 0.1f; obj.PostAwakenDelay = 1f; obj.RemoveDelayOnReinforce = false; obj.OverrideStartingFacingDirection = false; obj.StartingFacingDirection = -90f; obj.SkipTimingDifferentiator = false; ((ISerializedObject)obj).SerializedObjectReferences = new List(0); ((ISerializedObject)obj).SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; ((ISerializedObject)obj).SerializedStateValues = new List(0); HelmetController obj2 = m_CachedTargetObject.AddComponent(); obj2.helmetEffect = ClownkinWig; obj2.helmetForce = 5f; AddEnemyToDatabase(m_CachedTargetObject, ClownkinNoFXGUID, IsNormalEnemy: true); } public static void BuildClownkinAngryPrefab(AssetBundle expandSharedAssets1, out GameObject m_CachedTargetObject) { //IL_043c: Unknown result type (might be due to invalid IL or missing references) //IL_0441: Unknown result type (might be due to invalid IL or missing references) //IL_044c: Unknown result type (might be due to invalid IL or missing references) //IL_0453: Unknown result type (might be due to invalid IL or missing references) //IL_045a: Unknown result type (might be due to invalid IL or missing references) //IL_0465: Unknown result type (might be due to invalid IL or missing references) //IL_046c: Unknown result type (might be due to invalid IL or missing references) //IL_047c: Expected O, but got Unknown //IL_0488: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_0494: Unknown result type (might be due to invalid IL or missing references) //IL_049f: Unknown result type (might be due to invalid IL or missing references) //IL_04a6: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04b8: Unknown result type (might be due to invalid IL or missing references) //IL_04c3: Unknown result type (might be due to invalid IL or missing references) //IL_04ca: Unknown result type (might be due to invalid IL or missing references) //IL_04d5: Unknown result type (might be due to invalid IL or missing references) //IL_04e5: Expected O, but got Unknown //IL_04f1: Unknown result type (might be due to invalid IL or missing references) //IL_04f6: Unknown result type (might be due to invalid IL or missing references) //IL_0501: Unknown result type (might be due to invalid IL or missing references) //IL_0508: Unknown result type (might be due to invalid IL or missing references) //IL_050a: Unknown result type (might be due to invalid IL or missing references) //IL_050f: Unknown result type (might be due to invalid IL or missing references) //IL_0516: Unknown result type (might be due to invalid IL or missing references) //IL_051d: Unknown result type (might be due to invalid IL or missing references) //IL_0524: Unknown result type (might be due to invalid IL or missing references) //IL_052b: Unknown result type (might be due to invalid IL or missing references) //IL_0536: Unknown result type (might be due to invalid IL or missing references) //IL_0541: Unknown result type (might be due to invalid IL or missing references) //IL_0548: Unknown result type (might be due to invalid IL or missing references) //IL_0553: Unknown result type (might be due to invalid IL or missing references) //IL_055e: Unknown result type (might be due to invalid IL or missing references) //IL_0565: Unknown result type (might be due to invalid IL or missing references) //IL_056c: Unknown result type (might be due to invalid IL or missing references) //IL_0577: Unknown result type (might be due to invalid IL or missing references) //IL_057e: Unknown result type (might be due to invalid IL or missing references) //IL_0585: Unknown result type (might be due to invalid IL or missing references) //IL_058c: Unknown result type (might be due to invalid IL or missing references) //IL_0593: Unknown result type (might be due to invalid IL or missing references) //IL_059a: Unknown result type (might be due to invalid IL or missing references) //IL_05a1: Unknown result type (might be due to invalid IL or missing references) //IL_05ac: Unknown result type (might be due to invalid IL or missing references) //IL_05b3: Unknown result type (might be due to invalid IL or missing references) //IL_05be: Unknown result type (might be due to invalid IL or missing references) //IL_05c9: Unknown result type (might be due to invalid IL or missing references) //IL_05d4: Unknown result type (might be due to invalid IL or missing references) //IL_05df: Unknown result type (might be due to invalid IL or missing references) //IL_05ea: Unknown result type (might be due to invalid IL or missing references) //IL_05f5: Unknown result type (might be due to invalid IL or missing references) //IL_05fc: Unknown result type (might be due to invalid IL or missing references) //IL_0607: Unknown result type (might be due to invalid IL or missing references) //IL_0612: Unknown result type (might be due to invalid IL or missing references) //IL_061d: Unknown result type (might be due to invalid IL or missing references) //IL_0628: Unknown result type (might be due to invalid IL or missing references) //IL_0633: Unknown result type (might be due to invalid IL or missing references) //IL_063e: Unknown result type (might be due to invalid IL or missing references) //IL_0649: Unknown result type (might be due to invalid IL or missing references) //IL_0655: Unknown result type (might be due to invalid IL or missing references) //IL_065c: Unknown result type (might be due to invalid IL or missing references) //IL_0663: Unknown result type (might be due to invalid IL or missing references) //IL_066a: Unknown result type (might be due to invalid IL or missing references) //IL_0671: Unknown result type (might be due to invalid IL or missing references) //IL_0678: Unknown result type (might be due to invalid IL or missing references) //IL_0684: Expected O, but got Unknown //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: 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_01eb: Unknown result type (might be due to invalid IL or missing references) //IL_01f2: Expected O, but got Unknown //IL_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_024e: Unknown result type (might be due to invalid IL or missing references) //IL_0255: Expected O, but got Unknown //IL_0258: Unknown result type (might be due to invalid IL or missing references) //IL_02b1: Unknown result type (might be due to invalid IL or missing references) //IL_02b8: Expected O, but got Unknown //IL_02bb: Unknown result type (might be due to invalid IL or missing references) //IL_031d: Unknown result type (might be due to invalid IL or missing references) //IL_0324: Expected O, but got Unknown //IL_0332: Unknown result type (might be due to invalid IL or missing references) //IL_0339: Expected O, but got Unknown //IL_033c: Unknown result type (might be due to invalid IL or missing references) //IL_0397: Unknown result type (might be due to invalid IL or missing references) //IL_039e: Expected O, but got Unknown //IL_03ac: Unknown result type (might be due to invalid IL or missing references) //IL_03b3: Expected O, but got Unknown //IL_03b6: Unknown result type (might be due to invalid IL or missing references) AIActor officialEnemyByGuid = GetOfficialEnemyByGuid("88b6b6a93d4b4234a67844ef4728382c"); AIActor officialEnemyByGuid2 = GetOfficialEnemyByGuid("01972dee89fc4404a5c408d50007dad5"); GameObject corpseObject = null; m_CachedTargetObject = expandSharedAssets1.LoadAsset("Clownkin_Angry"); SpriteSerializer.AddSpriteToObject(m_CachedTargetObject, ClownkinCollection, "clownkin_idle_left_001", (PerpendicularState)0); ExpandUtility.GenerateSpriteAnimator(m_CachedTargetObject, ClownkinNoFXPrefab.GetComponent().Library); GameObject gameObject = ((Component)m_CachedTargetObject.transform.Find("GunAttachPoint")).gameObject; ExpandUtility.DuplicateAIShooterAndAIBulletBank(m_CachedTargetObject, ((BraveBehaviour)officialEnemyByGuid).aiShooter, ((Component)officialEnemyByGuid).GetComponent(), 520, gameObject.transform); ExpandUtility.GenerateAIActorTemplate(m_CachedTargetObject, out corpseObject, "Angry ClownKin", ClownkinAngryGUID, null, null, null, 38, null, RigidBodyCollidesWithTileMap: true, RigidBodyCollidesWithOthers: true, RigidBodyCanBeCarried: true, RigidBodyCanBePushed: false, isFakePrefab: false, instantiateCorpseObject: false, GetOfficialEnemyByGuid("88b6b6a93d4b4234a67844ef4728382c").CorpseObject, EnemyHasNoShooter: true); AIActor component = m_CachedTargetObject.GetComponent(); component.MovementSpeed = 3f; component.IgnoreForRoomClear = false; component.IsHarmlessEnemy = false; component.EnemySwitchState = "Metal_Bullet_Man"; ((BraveBehaviour)component).specRigidbody.PixelColliders[0].ManualOffsetX = 8; ((BraveBehaviour)component).specRigidbody.PixelColliders[1].ManualOffsetX = 8; ((BraveBehaviour)component).aiShooter.AllowTwoHands = true; ((BraveBehaviour)component).aiShooter.handObject = ((BraveBehaviour)officialEnemyByGuid2).aiShooter.handObject; if (!Object.op_Implicit((Object)(object)officialEnemyByGuid)) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for donor enemy is null!", false); } return; } if (Object.op_Implicit((Object)(object)((BraveBehaviour)component).aiAnimator)) { ((BraveBehaviour)component).aiAnimator.facingType = (FacingType)2; ((BraveBehaviour)component).aiAnimator.directionalType = (DirectionalType)10; ((BraveBehaviour)component).aiAnimator.faceSouthWhenStopped = false; ((BraveBehaviour)component).aiAnimator.faceTargetWhenStopped = false; ((BraveBehaviour)component).aiAnimator.HitType = (HitStateType)0; ((BraveBehaviour)component).aiAnimator.AnimatedFacingDirection = -90f; AIAnimator aiAnimator = ((BraveBehaviour)component).aiAnimator; DirectionalAnimation val = new DirectionalAnimation(); val.Type = (DirectionType)4; val.Prefix = "idle"; val.AnimNames = new string[4] { "idle_back", "idle_right", "idle_left", "idle_back" }; val.Flipped = (FlipType[])(object)new FlipType[4]; aiAnimator.IdleAnimation = val; AIAnimator aiAnimator2 = ((BraveBehaviour)component).aiAnimator; val = new DirectionalAnimation(); val.Type = (DirectionType)4; val.Prefix = "move"; val.AnimNames = new string[4] { string.Empty, "move_forward_right", "move_forward_left", string.Empty }; val.Flipped = (FlipType[])(object)new FlipType[4]; aiAnimator2.MoveAnimation = val; AIAnimator aiAnimator3 = ((BraveBehaviour)component).aiAnimator; val = new DirectionalAnimation(); val.Type = (DirectionType)4; val.Prefix = "hit"; val.AnimNames = new string[4] { "hit_back_left", "hit_left", "hit_right", "hit_back_right" }; val.Flipped = (FlipType[])(object)new FlipType[4]; aiAnimator3.HitAnimation = val; AIAnimator aiAnimator4 = ((BraveBehaviour)component).aiAnimator; List list = new List(); NamedDirectionalAnimation val2 = new NamedDirectionalAnimation(); val2.name = "spawn"; NamedDirectionalAnimation obj = val2; val = new DirectionalAnimation(); val.Type = (DirectionType)4; val.Prefix = "spawn"; val.AnimNames = new string[4] { "idle_back", "idle_right", "idle_left", "idle_back" }; val.Flipped = (FlipType[])(object)new FlipType[4]; obj.anim = val; list.Add(val2); val2 = new NamedDirectionalAnimation(); val2.name = "awaken"; NamedDirectionalAnimation obj2 = val2; val = new DirectionalAnimation(); val.Type = (DirectionType)4; val.Prefix = "awaken"; val.AnimNames = new string[4] { "idle_back", "idle_right", "idle_left", "idle_back" }; val.Flipped = (FlipType[])(object)new FlipType[4]; obj2.anim = val; list.Add(val2); aiAnimator4.OtherAnimations = list; } BehaviorSpeculator obj3 = m_CachedTargetObject.AddComponent(); obj3.OverrideBehaviors = new List(0); obj3.OtherBehaviors = new List(0); obj3.TargetBehaviors = new List { (TargetBehaviorBase)new TargetPlayerBehavior { Radius = 35f, LineOfSight = true, ObjectPermanence = true, SearchInterval = 0.25f, PauseOnTargetSwitch = false, PauseTime = 0.25f } }; obj3.MovementBehaviors = new List { (MovementBehaviorBase)new SeekTargetBehavior { StopWhenInRange = true, CustomRange = 6f, LineOfSight = false, ReturnToSpawn = true, SpawnTetherDistance = 0f, PathInterval = 0.5f, SpecifyRange = false, MinActiveRange = 0f, MaxActiveRange = 0f } }; obj3.AttackBehaviors = new List { (AttackBehaviorBase)new ShootGunBehavior { GroupCooldownVariance = 0f, LineOfSight = true, WeaponType = (WeaponType)0, OverrideBulletName = null, BulletScript = null, FixTargetDuringAttack = false, StopDuringAttack = false, LeadAmount = 1f, LeadChance = 0.5f, RespectReload = true, MagazineCapacity = 6f, ReloadSpeed = 3.5f, EmptiesClip = false, SuppressReloadAnim = false, TimeBetweenShots = -1f, PreventTargetSwitching = false, OverrideAnimation = null, OverrideDirectionalAnimation = null, HideGun = false, UseLaserSight = false, UseGreenLaser = false, PreFireLaserTime = -1f, AimAtFacingDirectionWhenSafe = false, Cooldown = 0.25f, CooldownVariance = 0f, AttackCooldown = 0.25f, GlobalCooldown = 0f, InitialCooldown = 0f, InitialCooldownVariance = 0f, GroupName = null, GroupCooldown = 0f, MinRange = 0f, Range = 12f, MinWallDistance = 0f, MaxEnemiesInRoom = 0f, MinHealthThreshold = 0f, MaxHealthThreshold = 1f, HealthThresholds = new float[0], AccumulateHealthThresholds = true, targetAreaStyle = null, IsBlackPhantom = false, resetCooldownOnDamage = null, RequiresLineOfSight = false, MaxUsages = 0 } }; obj3.InstantFirstTick = false; obj3.TickInterval = 0.1f; obj3.PostAwakenDelay = 1f; obj3.RemoveDelayOnReinforce = false; obj3.OverrideStartingFacingDirection = false; obj3.StartingFacingDirection = -90f; obj3.SkipTimingDifferentiator = false; ((ISerializedObject)obj3).SerializedObjectReferences = new List(0); ((ISerializedObject)obj3).SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; ((ISerializedObject)obj3).SerializedStateValues = new List(0); HelmetController obj4 = m_CachedTargetObject.AddComponent(); obj4.helmetEffect = ClownkinWig; obj4.helmetForce = 5f; AddEnemyToDatabase(m_CachedTargetObject, ClownkinAngryGUID, IsNormalEnemy: true); officialEnemyByGuid = null; officialEnemyByGuid2 = null; } public static void BuildEntityPrefab(AssetBundle expandSharedAssets1, out GameObject m_CachedTargetObject) { //IL_065c: Unknown result type (might be due to invalid IL or missing references) //IL_0671: Unknown result type (might be due to invalid IL or missing references) //IL_0676: Unknown result type (might be due to invalid IL or missing references) //IL_0678: Unknown result type (might be due to invalid IL or missing references) //IL_0693: Unknown result type (might be due to invalid IL or missing references) //IL_0698: Unknown result type (might be due to invalid IL or missing references) //IL_06ac: Unknown result type (might be due to invalid IL or missing references) //IL_0778: Unknown result type (might be due to invalid IL or missing references) //IL_077d: Unknown result type (might be due to invalid IL or missing references) //IL_0784: Unknown result type (might be due to invalid IL or missing references) //IL_0786: Unknown result type (might be due to invalid IL or missing references) //IL_078b: Unknown result type (might be due to invalid IL or missing references) //IL_078d: Unknown result type (might be due to invalid IL or missing references) //IL_0792: Unknown result type (might be due to invalid IL or missing references) //IL_0799: Unknown result type (might be due to invalid IL or missing references) //IL_07a0: Unknown result type (might be due to invalid IL or missing references) //IL_07ab: Unknown result type (might be due to invalid IL or missing references) //IL_07b2: Unknown result type (might be due to invalid IL or missing references) //IL_07b9: Unknown result type (might be due to invalid IL or missing references) //IL_07c0: Unknown result type (might be due to invalid IL or missing references) //IL_07c8: Unknown result type (might be due to invalid IL or missing references) //IL_07d0: Unknown result type (might be due to invalid IL or missing references) //IL_07d7: Unknown result type (might be due to invalid IL or missing references) //IL_07de: Unknown result type (might be due to invalid IL or missing references) //IL_07e5: Unknown result type (might be due to invalid IL or missing references) //IL_07ec: Unknown result type (might be due to invalid IL or missing references) //IL_07f8: Expected O, but got Unknown //IL_0804: Unknown result type (might be due to invalid IL or missing references) //IL_0809: Unknown result type (might be due to invalid IL or missing references) //IL_0810: Unknown result type (might be due to invalid IL or missing references) //IL_0812: Unknown result type (might be due to invalid IL or missing references) //IL_0817: Unknown result type (might be due to invalid IL or missing references) //IL_0819: Unknown result type (might be due to invalid IL or missing references) //IL_081e: Unknown result type (might be due to invalid IL or missing references) //IL_0825: Unknown result type (might be due to invalid IL or missing references) //IL_082c: Unknown result type (might be due to invalid IL or missing references) //IL_0837: Unknown result type (might be due to invalid IL or missing references) //IL_083e: Unknown result type (might be due to invalid IL or missing references) //IL_0845: Unknown result type (might be due to invalid IL or missing references) //IL_084c: Unknown result type (might be due to invalid IL or missing references) //IL_0854: Unknown result type (might be due to invalid IL or missing references) //IL_085c: Unknown result type (might be due to invalid IL or missing references) //IL_0863: Unknown result type (might be due to invalid IL or missing references) //IL_086a: Unknown result type (might be due to invalid IL or missing references) //IL_0871: Unknown result type (might be due to invalid IL or missing references) //IL_0878: Unknown result type (might be due to invalid IL or missing references) //IL_0884: Expected O, but got Unknown //IL_0a58: Unknown result type (might be due to invalid IL or missing references) //IL_0a5d: Unknown result type (might be due to invalid IL or missing references) //IL_0a68: Unknown result type (might be due to invalid IL or missing references) //IL_0a6f: Unknown result type (might be due to invalid IL or missing references) //IL_0a76: Unknown result type (might be due to invalid IL or missing references) //IL_0a81: Unknown result type (might be due to invalid IL or missing references) //IL_0a88: Unknown result type (might be due to invalid IL or missing references) //IL_0a98: Expected O, but got Unknown //IL_0aaf: Unknown result type (might be due to invalid IL or missing references) //IL_0ab4: Unknown result type (might be due to invalid IL or missing references) //IL_0abb: Unknown result type (might be due to invalid IL or missing references) //IL_0ac6: Unknown result type (might be due to invalid IL or missing references) //IL_0acd: Unknown result type (might be due to invalid IL or missing references) //IL_0ad4: Unknown result type (might be due to invalid IL or missing references) //IL_0adf: Unknown result type (might be due to invalid IL or missing references) //IL_0aea: Unknown result type (might be due to invalid IL or missing references) //IL_0af1: Unknown result type (might be due to invalid IL or missing references) //IL_0afc: Unknown result type (might be due to invalid IL or missing references) //IL_0b0c: Expected O, but got Unknown //IL_0bbb: Unknown result type (might be due to invalid IL or missing references) //IL_089d: Unknown result type (might be due to invalid IL or missing references) //IL_08c4: Unknown result type (might be due to invalid IL or missing references) //IL_08d0: Unknown result type (might be due to invalid IL or missing references) //IL_08d5: Unknown result type (might be due to invalid IL or missing references) //IL_08d7: Unknown result type (might be due to invalid IL or missing references) //IL_08dc: Unknown result type (might be due to invalid IL or missing references) //IL_08e7: Unknown result type (might be due to invalid IL or missing references) //IL_08f3: Unknown result type (might be due to invalid IL or missing references) //IL_0904: Expected O, but got Unknown //IL_090b: Unknown result type (might be due to invalid IL or missing references) //IL_0910: Unknown result type (might be due to invalid IL or missing references) //IL_0912: Unknown result type (might be due to invalid IL or missing references) //IL_0917: Unknown result type (might be due to invalid IL or missing references) //IL_0922: Unknown result type (might be due to invalid IL or missing references) //IL_092e: Unknown result type (might be due to invalid IL or missing references) //IL_093f: Expected O, but got Unknown //IL_0946: Unknown result type (might be due to invalid IL or missing references) //IL_094b: Unknown result type (might be due to invalid IL or missing references) //IL_094d: Unknown result type (might be due to invalid IL or missing references) //IL_0952: Unknown result type (might be due to invalid IL or missing references) //IL_095d: Unknown result type (might be due to invalid IL or missing references) //IL_0969: Unknown result type (might be due to invalid IL or missing references) //IL_097a: Expected O, but got Unknown //IL_0987: Unknown result type (might be due to invalid IL or missing references) //IL_098c: Unknown result type (might be due to invalid IL or missing references) //IL_0997: Unknown result type (might be due to invalid IL or missing references) //IL_0998: Unknown result type (might be due to invalid IL or missing references) //IL_099d: Unknown result type (might be due to invalid IL or missing references) //IL_099f: Unknown result type (might be due to invalid IL or missing references) //IL_09a4: Unknown result type (might be due to invalid IL or missing references) //IL_09af: Unknown result type (might be due to invalid IL or missing references) //IL_09bb: Unknown result type (might be due to invalid IL or missing references) //IL_09cc: Expected O, but got Unknown //IL_09d1: Expected O, but got Unknown //IL_09e3: Unknown result type (might be due to invalid IL or missing references) //IL_09e8: Unknown result type (might be due to invalid IL or missing references) //IL_09f3: Unknown result type (might be due to invalid IL or missing references) //IL_09f4: Unknown result type (might be due to invalid IL or missing references) //IL_09f9: Unknown result type (might be due to invalid IL or missing references) //IL_09fb: Unknown result type (might be due to invalid IL or missing references) //IL_0a00: Unknown result type (might be due to invalid IL or missing references) //IL_0a0b: Unknown result type (might be due to invalid IL or missing references) //IL_0a17: Unknown result type (might be due to invalid IL or missing references) //IL_0a28: Expected O, but got Unknown //IL_0a2d: Expected O, but got Unknown //IL_0be5: Unknown result type (might be due to invalid IL or missing references) //IL_0cfd: Unknown result type (might be due to invalid IL or missing references) GameObject corpseObject = null; m_CachedTargetObject = expandSharedAssets1.LoadAsset("Backrooms Entity"); List spriteNameList = new List { "entity_idle_front_001", "entity_idle_front_002", "entity_idle_front_003", "entity_idle_front_004" }; new List { "entity_idle_back_001", "entity_idle_back_002", "entity_idle_back_003", "entity_idle_back_004" }; List spriteNameList2 = new List { "entity_run_left_001", "entity_run_left_002", "entity_run_left_003", "entity_run_left_004", "entity_run_left_005", "entity_run_left_006" }; List spriteNameList3 = new List { "entity_run_right_001", "entity_run_right_002", "entity_run_right_003", "entity_run_right_004", "entity_run_right_005", "entity_run_right_006" }; List spriteNameList4 = new List { "entity_run_back_left_001", "entity_run_back_left_002", "entity_run_back_left_003", "entity_run_back_left_004", "entity_run_back_left_005", "entity_run_back_left_006" }; List spriteNameList5 = new List { "entity_run_back_right_001", "entity_run_back_right_002", "entity_run_back_right_003", "entity_run_back_right_004", "entity_run_back_right_005", "entity_run_back_right_006" }; List spriteNameList6 = new List { "entity_spawn_001", "entity_spawn_002", "entity_spawn_003", "entity_spawn_004", "entity_spawn_005", "entity_spawn_006", "entity_spawn_007", "entity_spawn_008", "entity_spawn_009", "entity_spawn_010", "entity_spawn_011", "entity_spawn_012", "entity_spawn_013", "entity_spawn_014", "entity_spawn_015", "entity_spawn_016", "entity_spawn_017", "entity_spawn_018", "entity_spawn_019", "entity_spawn_020", "entity_spawn_021", "entity_spawn_022", "entity_spawn_023", "entity_spawn_024", "entity_spawn_025", "entity_spawn_026", "entity_spawn_027", "entity_spawn_028", "entity_spawn_029" }; List spriteNameList7 = new List { "entity_spawn_029", "entity_spawn_028", "entity_spawn_027", "entity_spawn_026", "entity_spawn_025", "entity_spawn_024", "entity_spawn_023", "entity_spawn_022", "entity_spawn_021", "entity_spawn_020", "entity_spawn_019", "entity_spawn_018", "entity_spawn_017", "entity_spawn_016", "entity_spawn_015", "entity_spawn_014", "entity_spawn_013", "entity_spawn_012", "entity_spawn_011", "entity_spawn_010", "entity_spawn_009", "entity_spawn_008", "entity_spawn_007", "entity_spawn_006", "entity_spawn_005", "entity_spawn_004", "entity_spawn_003", "entity_spawn_002", "entity_spawn_001" }; List spriteNameList8 = new List { "entity_idle_front_001", "entity_idle_front_001" }; SpriteSerializer.AddSpriteToObject(m_CachedTargetObject, EntityCollection, "entity_idle_front_001", (PerpendicularState)0); ExpandUtility.GenerateSpriteAnimator(m_CachedTargetObject, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true, IsFrameBlendedAnimation: false, 0f, 0f); tk2dSpriteAnimator component = m_CachedTargetObject.GetComponent(); ExpandUtility.AddAnimation(component, EntityCollection.GetComponent(), spriteNameList, "idle_front", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, EntityCollection.GetComponent(), spriteNameList, "idle_back", (WrapMode)0, 6); ExpandUtility.AddAnimation(component, EntityCollection.GetComponent(), spriteNameList3, "move_front_right", (WrapMode)0, 10); ExpandUtility.AddAnimation(component, EntityCollection.GetComponent(), spriteNameList2, "move_front_left", (WrapMode)0, 10); ExpandUtility.AddAnimation(component, EntityCollection.GetComponent(), spriteNameList5, "move_back_right", (WrapMode)0, 10); ExpandUtility.AddAnimation(component, EntityCollection.GetComponent(), spriteNameList4, "move_back_left", (WrapMode)0, 10); ExpandUtility.AddAnimation(component, EntityCollection.GetComponent(), spriteNameList7, "despawn", (WrapMode)2, 10); tk2dSpriteAnimationClip val = ExpandUtility.AddAnimation(component, EntityCollection.GetComponent(), spriteNameList6, "spawn", (WrapMode)2, 10); ExpandUtility.AddAnimation(component, EntityCollection.GetComponent(), spriteNameList, "hit", (WrapMode)2, 6); ExpandUtility.AddAnimation(component, EntityCollection.GetComponent(), spriteNameList8, "die", (WrapMode)2, 6); if (val != null) { val.frames[0].eventAudio = "Play_NPC_creep_creeping_01"; val.frames[0].triggerEvent = true; } ExpandUtility.GenerateAIActorTemplate(m_CachedTargetObject, out corpseObject, ((Object)m_CachedTargetObject).name, EntityGUID, null, null, null, 38, null, RigidBodyCollidesWithTileMap: true, RigidBodyCollidesWithOthers: true, RigidBodyCanBeCarried: true, RigidBodyCanBePushed: false, isFakePrefab: false, instantiateCorpseObject: false, null, EnemyHasNoShooter: true); AIActor component2 = m_CachedTargetObject.GetComponent(); ((GameActor)component2).EffectResistances = (ActorEffectResistance[])(object)new ActorEffectResistance[1] { new ActorEffectResistance { resistAmount = 1f, resistType = (EffectResistanceType)2 } }; ((GameActor)component2).ActorShadowOffset = new Vector3(0f, -0.18f, 0f); component2.MovementSpeed = 7f; component2.PathableTiles = (CellTypes)2; component2.procedurallyOutlined = true; component2.EnemySwitchState = string.Empty; component2.PreventFallingInPitsEver = true; component2.IgnoreForRoomClear = true; component2.HitByEnemyBullets = false; component2.CanTargetEnemies = true; component2.CanTargetPlayers = false; component2.CollisionKnockbackStrength = 5f; component2.CollisionDamage = 1f; component2.DiesOnCollison = false; ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(70f, (float?)null, false); ((BraveBehaviour)component2).healthHaver.ForceSetCurrentHealth(70f); ((BraveBehaviour)component2).knockbackDoer.weight = 35f; component2.procedurallyOutlined = true; ((DungeonPlaceableBehaviour)component2).isPassable = false; ((BraveBehaviour)component2).specRigidbody.PixelColliders.Clear(); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Add(new PixelCollider { Enabled = false, ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)3, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 7, ManualOffsetY = 5, ManualWidth = 11, ManualHeight = 16, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); ((BraveBehaviour)component2).specRigidbody.PixelColliders.Add(new PixelCollider { Enabled = false, ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)2, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 6, ManualOffsetY = 6, ManualWidth = 13, ManualHeight = 24, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); if (Object.op_Implicit((Object)(object)((BraveBehaviour)component2).aiAnimator)) { ((BraveBehaviour)component2).aiAnimator.facingType = (FacingType)0; ((BraveBehaviour)component2).aiAnimator.faceSouthWhenStopped = false; ((BraveBehaviour)component2).aiAnimator.faceTargetWhenStopped = false; ((BraveBehaviour)component2).aiAnimator.HitType = (HitStateType)0; ((BraveBehaviour)component2).aiAnimator.IdleAnimation = new DirectionalAnimation { Type = (DirectionType)3, Prefix = "idle", AnimNames = new string[2], Flipped = (FlipType[])(object)new FlipType[2] }; ((BraveBehaviour)component2).aiAnimator.MoveAnimation = new DirectionalAnimation { Type = (DirectionType)4, Prefix = "move", AnimNames = new string[4], Flipped = (FlipType[])(object)new FlipType[4] }; ((BraveBehaviour)component2).aiAnimator.HitAnimation = new DirectionalAnimation { Type = (DirectionType)1, Prefix = "hit", AnimNames = new string[1], Flipped = (FlipType[])(object)new FlipType[1] }; ((BraveBehaviour)component2).aiAnimator.OtherAnimations = new List { new NamedDirectionalAnimation { name = "die", anim = new DirectionalAnimation { Type = (DirectionType)1, Prefix = "die", AnimNames = new string[1], Flipped = (FlipType[])(object)new FlipType[1] } } }; ((BraveBehaviour)component2).aiAnimator.OtherAnimations = new List { new NamedDirectionalAnimation { name = "despawn", anim = new DirectionalAnimation { Type = (DirectionType)1, Prefix = "despawn", AnimNames = new string[1], Flipped = (FlipType[])(object)new FlipType[1] } } }; } BehaviorSpeculator obj = m_CachedTargetObject.AddComponent(); obj.OverrideBehaviors = new List(0); obj.OtherBehaviors = new List(0); obj.TargetBehaviors = new List { (TargetBehaviorBase)new TargetPlayerBehavior { Radius = 35f, LineOfSight = false, ObjectPermanence = true, SearchInterval = 0.25f, PauseOnTargetSwitch = false, PauseTime = 0.25f } }; obj.AttackBehaviors = new List(); obj.MovementBehaviors = new List { (MovementBehaviorBase)new SeekTargetBehavior { StopWhenInRange = false, CustomRange = 6f, LineOfSight = false, ReturnToSpawn = false, SpawnTetherDistance = 0f, PathInterval = 0.5f, SpecifyRange = false, MinActiveRange = 0f, MaxActiveRange = 0f } }; obj.InstantFirstTick = true; obj.TickInterval = 0.1f; obj.PostAwakenDelay = 0f; obj.RemoveDelayOnReinforce = false; obj.OverrideStartingFacingDirection = false; obj.StartingFacingDirection = -90f; obj.SkipTimingDifferentiator = false; ((ISerializedObject)obj).SerializedObjectReferences = new List(0); ((ISerializedObject)obj).SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; ((ISerializedObject)obj).SerializedStateValues = new List(0); GoopDoer obj2 = m_CachedTargetObject.AddComponent(); obj2.goopDefinition = ExpandPrefabs.EXBacteriaGoop; obj2.positionSource = (PositionSource)3; Transform obj3 = m_CachedTargetObject.transform.Find("goopObject"); obj2.goopCenter = ((obj3 != null) ? ((Component)obj3).gameObject : null); obj2.updateTiming = (UpdateTiming)0; obj2.updateFrequency = 0.05f; obj2.isTimed = false; obj2.goopTime = 1f; obj2.updateOnPreDeath = true; obj2.updateOnDeath = false; obj2.updateOnAnimFrames = false; obj2.updateOnCollision = false; obj2.updateOnGrounded = false; obj2.updateOnDestroy = false; obj2.defaultGoopRadius = 1.8f; obj2.suppressSplashes = false; obj2.goopSizeVaries = true; obj2.varyCycleTime = 0.9f; obj2.radiusMin = 1.25f; obj2.radiusMax = 1.8f; obj2.goopSizeRandom = true; obj2.UsesDispersalParticles = false; obj2.DispersalDensity = 2f; obj2.DispersalMinCoherency = 0.2f; obj2.DispersalMaxCoherency = 1f; ExplodeOnDeath obj4 = m_CachedTargetObject.AddComponent(); obj4.explosionData = ExpandUtility.GenerateExplosionData(); obj4.immuneToIBombApp = true; obj4.LinearChainExplosion = false; ((OnDeathBehavior)obj4).deathType = (DeathType)0; ((OnDeathBehavior)obj4).preDeathDelay = 0.1f; m_CachedTargetObject.AddComponent(); AddEnemyToDatabaseAndAmmonomicon(component2, EntityGUID, ExpandAmmonomiconDatabase.Entity); } public static void BuildCorruptedEnemyPrefab(AssetBundle expandSharedAssets1, out GameObject m_CachedTargetObject) { AIActor officialEnemyByGuid = GetOfficialEnemyByGuid("01972dee89fc4404a5c408d50007dad5"); m_CachedTargetObject = expandSharedAssets1.LoadAsset("EXCorruptedEnemy"); ExpandUtility.DuplicateComponent(m_CachedTargetObject.AddComponent(), ((Component)officialEnemyByGuid).gameObject.GetComponent()); tk2dSpriteAnimation val = m_CachedTargetObject.AddComponent(); ExpandUtility.DuplicateComponent(val, ((Component)officialEnemyByGuid).gameObject.GetComponent().Library); tk2dSpriteAnimator obj = m_CachedTargetObject.AddComponent(); ExpandUtility.DuplicateComponent(obj, ((Component)officialEnemyByGuid).gameObject.GetComponent()); obj.Library = val; ExpandUtility.DuplicateComponent(m_CachedTargetObject.AddComponent(), ((Component)officialEnemyByGuid).gameObject.GetComponent()); ExpandUtility.DuplicateComponent(m_CachedTargetObject.AddComponent(), ((Component)officialEnemyByGuid).gameObject.GetComponent()); AIActor val2 = ExpandUtility.BuildNewAIActor(m_CachedTargetObject, "Corrupted Enemy", corruptedEnemyGUID, 15f, null, null, null, 38, null, RigidBodyCollidesWithTileMap: true, RigidBodyCollidesWithOthers: true, RigidBodyCanBeCarried: true, RigidBodyCanBePushed: false, isFakePrefab: false, null, EnemyHasNoShooter: true); if (!Object.op_Implicit((Object)(object)val2)) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[ExpandTheGungeon] [BuildCorruptedEnemyPrefab] ERROR: New AIActor component returned null!", false); } return; } val2.invisibleUntilAwaken = true; BehaviorSpeculator obj2 = m_CachedTargetObject.AddComponent(); obj2.OverrideBehaviors = new List(0); obj2.OtherBehaviors = new List(0); obj2.TargetBehaviors = new List(0); obj2.MovementBehaviors = new List(0); obj2.AttackBehaviors = new List(0); obj2.InstantFirstTick = false; obj2.TickInterval = 0.1f; obj2.PostAwakenDelay = 0.5f; obj2.RemoveDelayOnReinforce = false; obj2.OverrideStartingFacingDirection = false; obj2.StartingFacingDirection = -90f; obj2.SkipTimingDifferentiator = false; ((ISerializedObject)obj2).SerializedObjectReferences = new List(0); ((ISerializedObject)obj2).SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; ((ISerializedObject)obj2).SerializedStateValues = new List(0); m_CachedTargetObject.AddComponent(); AddEnemyToDatabase(m_CachedTargetObject, corruptedEnemyGUID, IsNormalEnemy: true); officialEnemyByGuid = null; } public static void BuildCultistCompanionPrefab(AssetBundle expandSharedAssets1, out GameObject CachedTargetEnemyObject) { //IL_0f17: Unknown result type (might be due to invalid IL or missing references) //IL_0f1e: Expected O, but got Unknown //IL_0bf2: Unknown result type (might be due to invalid IL or missing references) //IL_0c00: Unknown result type (might be due to invalid IL or missing references) //IL_0c27: Unknown result type (might be due to invalid IL or missing references) //IL_0c44: Unknown result type (might be due to invalid IL or missing references) //IL_0c4b: Expected O, but got Unknown //IL_0c4e: Unknown result type (might be due to invalid IL or missing references) //IL_0cb7: Unknown result type (might be due to invalid IL or missing references) //IL_0cbe: Expected O, but got Unknown //IL_0cc1: Unknown result type (might be due to invalid IL or missing references) //IL_0d33: Unknown result type (might be due to invalid IL or missing references) //IL_0d3a: Expected O, but got Unknown //IL_0d48: Unknown result type (might be due to invalid IL or missing references) //IL_0d4f: Expected O, but got Unknown //IL_0d52: Unknown result type (might be due to invalid IL or missing references) //IL_0dbd: Unknown result type (might be due to invalid IL or missing references) //IL_0dc4: Expected O, but got Unknown //IL_0dd2: Unknown result type (might be due to invalid IL or missing references) //IL_0dd9: Expected O, but got Unknown //IL_0ddc: Unknown result type (might be due to invalid IL or missing references) //IL_0e27: Unknown result type (might be due to invalid IL or missing references) //IL_0e2e: Expected O, but got Unknown //IL_0e3c: Unknown result type (might be due to invalid IL or missing references) //IL_0e43: Expected O, but got Unknown //IL_0e46: Unknown result type (might be due to invalid IL or missing references) //IL_0e89: Unknown result type (might be due to invalid IL or missing references) //IL_0e90: Expected O, but got Unknown //IL_0e9e: Unknown result type (might be due to invalid IL or missing references) //IL_0ea5: Expected O, but got Unknown //IL_0ea8: Unknown result type (might be due to invalid IL or missing references) GameObject gameObject = ExpandAssets.LoadOfficialAsset("PlayerCoopCultist", ExpandAssets.AssetSource.BraveResources).gameObject; AIActor officialEnemyByGuid = GetOfficialEnemyByGuid("57255ed50ee24794b7aac1ac3cfb8a95"); AIActor officialEnemyByGuid2 = GetOfficialEnemyByGuid("9216803e9c894002a4b931d7ea9c6bdf"); GameObject corpseObject = null; CachedTargetEnemyObject = expandSharedAssets1.LoadAsset("Cultist Companion"); ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(CachedTargetEnemyObject, CultistCompanionCollection, "cultist_idle_front_001", (PerpendicularState)0)).HeightOffGround = ((BraveBehaviour)officialEnemyByGuid).sprite.HeightOffGround; List spriteNameList = new List { "cultist_move_front_001", "cultist_move_front_002", "cultist_move_front_003", "cultist_move_front_004", "cultist_move_front_005", "cultist_move_front_006" }; List spriteNameList2 = new List { "cultist_move_back_001", "cultist_move_back_002", "cultist_move_back_003", "cultist_move_back_004", "cultist_move_back_005", "cultist_move_back_006" }; List spriteNameList3 = new List { "cultist_move_front_left_001", "cultist_move_front_left_002", "cultist_move_front_left_003", "cultist_move_front_left_004", "cultist_move_front_left_005", "cultist_move_front_left_006" }; List spriteNameList4 = new List { "cultist_move_front_right_001", "cultist_move_front_right_002", "cultist_move_front_right_003", "cultist_move_front_right_004", "cultist_move_front_right_005", "cultist_move_front_right_006" }; List spriteNameList5 = new List { "cultist_move_back_left_001", "cultist_move_back_left_002", "cultist_move_back_left_003", "cultist_move_back_left_004", "cultist_move_back_left_005", "cultist_move_back_left_006" }; List spriteNameList6 = new List { "cultist_move_back_right_001", "cultist_move_back_right_002", "cultist_move_back_right_003", "cultist_move_back_right_004", "cultist_move_back_right_005", "cultist_move_back_right_006" }; List spriteNameList7 = new List { "cultist_idle_front_001", "cultist_idle_front_002", "cultist_idle_front_003", "cultist_idle_front_004" }; List spriteNameList8 = new List { "cultist_idle_back_001", "cultist_idle_back_002", "cultist_idle_back_003", "cultist_idle_back_004" }; List spriteNameList9 = new List { "cultist_idle_front_left_001", "cultist_idle_front_left_002", "cultist_idle_front_left_003", "cultist_idle_front_left_004" }; List spriteNameList10 = new List { "cultist_idle_front_right_001", "cultist_idle_front_right_002", "cultist_idle_front_right_003", "cultist_idle_front_right_004" }; List spriteNameList11 = new List { "cultist_idle_back_left_001", "cultist_idle_back_left_002", "cultist_idle_back_left_003", "cultist_idle_back_left_004" }; List spriteNameList12 = new List { "cultist_idle_back_right_001", "cultist_idle_back_right_002", "cultist_idle_back_right_003", "cultist_idle_back_right_004" }; List spriteNameList13 = new List { "cultist_dodge_front_001", "cultist_dodge_front_002", "cultist_dodge_front_003", "cultist_dodge_front_004", "cultist_dodge_front_005", "cultist_dodge_front_006", "cultist_dodge_front_007", "cultist_dodge_front_008", "cultist_dodge_front_009" }; List spriteNameList14 = new List { "cultist_dodge_back_001", "cultist_dodge_back_002", "cultist_dodge_back_003", "cultist_dodge_back_004", "cultist_dodge_back_005", "cultist_dodge_back_006", "cultist_dodge_back_007", "cultist_dodge_back_008" }; List spriteNameList15 = new List { "cultist_dodge_front_left_001", "cultist_dodge_front_left_002", "cultist_dodge_front_left_003", "cultist_dodge_front_left_004", "cultist_dodge_front_left_005", "cultist_dodge_front_left_006", "cultist_dodge_front_left_007", "cultist_dodge_front_left_008", "cultist_dodge_front_left_009" }; List spriteNameList16 = new List { "cultist_dodge_front_right_001", "cultist_dodge_front_right_002", "cultist_dodge_front_right_003", "cultist_dodge_front_right_004", "cultist_dodge_front_right_005", "cultist_dodge_front_right_006", "cultist_dodge_front_right_007", "cultist_dodge_front_right_008", "cultist_dodge_front_right_009" }; List spriteNameList17 = new List { "cultist_dodge_back_left_001", "cultist_dodge_back_left_002", "cultist_dodge_back_left_003", "cultist_dodge_back_left_004", "cultist_dodge_back_left_005", "cultist_dodge_back_left_006", "cultist_dodge_back_left_007", "cultist_dodge_back_left_008", "cultist_dodge_back_left_009" }; List spriteNameList18 = new List { "cultist_dodge_back_right_001", "cultist_dodge_back_right_002", "cultist_dodge_back_right_003", "cultist_dodge_back_right_004", "cultist_dodge_back_right_005", "cultist_dodge_back_right_006", "cultist_dodge_back_right_007", "cultist_dodge_back_right_008", "cultist_dodge_back_right_009" }; List spriteNameList19 = new List { "cultist_death_left_001", "cultist_death_left_002", "cultist_death_left_003", "cultist_death_left_004", "cultist_death_left_005", "cultist_death_left_006", "cultist_death_left_007" }; List spriteNameList20 = new List { "cultist_death_right_001", "cultist_death_right_002", "cultist_death_right_003", "cultist_death_right_004", "cultist_death_right_005", "cultist_death_right_006", "cultist_death_right_007" }; List spriteNameList21 = new List { "cultist_pitfall_001", "cultist_pitfall_002", "cultist_pitfall_003", "cultist_pitfall_004", "cultist_pitfall_005" }; List spriteNameList22 = new List { "cultist_pitfall_down_001", "cultist_pitfall_down_002", "cultist_pitfall_down_003", "cultist_pitfall_down_004", "cultist_pitfall_down_005", "cultist_pitfall_down_006" }; List spriteNameList23 = new List { "cultist_pitfall_return_001", "cultist_pitfall_return_002", "cultist_pitfall_return_003", "cultist_pitfall_return_004" }; ExpandUtility.GenerateSpriteAnimator(CachedTargetEnemyObject); tk2dSpriteAnimator component = CachedTargetEnemyObject.GetComponent(); ExpandUtility.AddAnimation(component, CultistCompanionCollection.GetComponent(), spriteNameList7, "idle_forward", (WrapMode)0, 8); ExpandUtility.AddAnimation(component, CultistCompanionCollection.GetComponent(), spriteNameList9, "idle_forward_left", (WrapMode)0, 8); ExpandUtility.AddAnimation(component, CultistCompanionCollection.GetComponent(), spriteNameList10, "idle_forward_right", (WrapMode)0, 8); ExpandUtility.AddAnimation(component, CultistCompanionCollection.GetComponent(), spriteNameList8, "idle_back", (WrapMode)0, 8); ExpandUtility.AddAnimation(component, CultistCompanionCollection.GetComponent(), spriteNameList11, "idle_back_left", (WrapMode)0, 8); ExpandUtility.AddAnimation(component, CultistCompanionCollection.GetComponent(), spriteNameList12, "idle_back_right", (WrapMode)0, 8); ExpandUtility.AddAnimation(component, CultistCompanionCollection.GetComponent(), spriteNameList, "move_forward", (WrapMode)0, 12); ExpandUtility.AddAnimation(component, CultistCompanionCollection.GetComponent(), spriteNameList3, "move_forward_left", (WrapMode)0, 12); ExpandUtility.AddAnimation(component, CultistCompanionCollection.GetComponent(), spriteNameList4, "move_forward_right", (WrapMode)0, 12); ExpandUtility.AddAnimation(component, CultistCompanionCollection.GetComponent(), spriteNameList2, "move_back", (WrapMode)0, 12); ExpandUtility.AddAnimation(component, CultistCompanionCollection.GetComponent(), spriteNameList5, "move_back_left", (WrapMode)0, 12); ExpandUtility.AddAnimation(component, CultistCompanionCollection.GetComponent(), spriteNameList6, "move_back_right", (WrapMode)0, 12); ExpandUtility.AddAnimation(component, CultistCompanionCollection.GetComponent(), spriteNameList13, "dodge_forward", (WrapMode)2, 12); ExpandUtility.AddAnimation(component, CultistCompanionCollection.GetComponent(), spriteNameList15, "dodge_forward_left", (WrapMode)2, 12); ExpandUtility.AddAnimation(component, CultistCompanionCollection.GetComponent(), spriteNameList16, "dodge_forward_right", (WrapMode)2, 12); ExpandUtility.AddAnimation(component, CultistCompanionCollection.GetComponent(), spriteNameList14, "dodge_back", (WrapMode)2, 12); ExpandUtility.AddAnimation(component, CultistCompanionCollection.GetComponent(), spriteNameList17, "dodge_back_left", (WrapMode)2, 12); ExpandUtility.AddAnimation(component, CultistCompanionCollection.GetComponent(), spriteNameList18, "dodge_back_right", (WrapMode)2, 12); ExpandUtility.AddAnimation(component, CultistCompanionCollection.GetComponent(), spriteNameList23, "spawn", (WrapMode)2, 10); ExpandUtility.AddAnimation(component, CultistCompanionCollection.GetComponent(), spriteNameList23, "awaken", (WrapMode)2, 10); ExpandUtility.AddAnimation(component, CultistCompanionCollection.GetComponent(), spriteNameList19, "death_left", (WrapMode)2, 16); ExpandUtility.AddAnimation(component, CultistCompanionCollection.GetComponent(), spriteNameList20, "death_right", (WrapMode)2, 16); ExpandUtility.AddAnimation(component, CultistCompanionCollection.GetComponent(), spriteNameList21, "pitfall_front", (WrapMode)2, 12); ExpandUtility.AddAnimation(component, CultistCompanionCollection.GetComponent(), spriteNameList22, "pitfall_back", (WrapMode)2, 10); GameObject gameObject2 = ((Component)CachedTargetEnemyObject.transform.Find("GunAttachPoint")).gameObject; ExpandUtility.DuplicateAIShooterAndAIBulletBank(CachedTargetEnemyObject, ((BraveBehaviour)officialEnemyByGuid2).aiShooter, ((Component)officialEnemyByGuid2).GetComponent(), 24, gameObject2.transform); ExpandUtility.DuplicateComponent(CachedTargetEnemyObject.AddComponent(), ((BraveBehaviour)GetOfficialEnemyByGuid("705e9081261446039e1ed9ff16905d04")).healthHaver); ExpandUtility.GenerateAIActorTemplate(CachedTargetEnemyObject, out corpseObject, "Cultist Companion", FriendlyCultistGUID, null, null, null, 38, null, RigidBodyCollidesWithTileMap: true, RigidBodyCollidesWithOthers: true, RigidBodyCanBeCarried: true, RigidBodyCanBePushed: false, isFakePrefab: false, instantiateCorpseObject: false, officialEnemyByGuid.CorpseObject, EnemyHasNoShooter: true); AIActor component2 = CachedTargetEnemyObject.GetComponent(); if (Object.op_Implicit((Object)(object)((BraveBehaviour)component2).aiShooter)) { ((BraveBehaviour)component2).aiShooter.handObject = gameObject.GetComponent().primaryHand; ((BraveBehaviour)component2).aiShooter.gunAttachPoint = gameObject2.transform; ((BraveBehaviour)component2).aiShooter.AllowTwoHands = true; } component2.CanDropCurrency = false; component2.IgnoreForRoomClear = true; ((GameActor)component2).DoDustUps = true; ((GameActor)component2).DustUpInterval = 0.4f; component2.MovementSpeed = 3.5f; component2.EnemySwitchState = "Gun Cultist"; if (Object.op_Implicit((Object)(object)((BraveBehaviour)component2).aiAnimator)) { ((BraveBehaviour)component2).aiAnimator.facingType = (FacingType)2; ((BraveBehaviour)component2).aiAnimator.directionalType = (DirectionalType)10; ((BraveBehaviour)component2).aiAnimator.faceSouthWhenStopped = false; ((BraveBehaviour)component2).aiAnimator.faceTargetWhenStopped = false; ((BraveBehaviour)component2).aiAnimator.HitType = (HitStateType)0; ((BraveBehaviour)component2).aiAnimator.AnimatedFacingDirection = -90f; AIAnimator aiAnimator = ((BraveBehaviour)component2).aiAnimator; DirectionalAnimation val = new DirectionalAnimation(); val.Type = (DirectionType)5; val.Prefix = "idle"; val.AnimNames = new string[6] { string.Empty, string.Empty, "idle_forward_right", "idle_forward", "idle_forward_left", string.Empty }; val.Flipped = (FlipType[])(object)new FlipType[6]; aiAnimator.IdleAnimation = val; AIAnimator aiAnimator2 = ((BraveBehaviour)component2).aiAnimator; val = new DirectionalAnimation(); val.Type = (DirectionType)5; val.Prefix = "move"; val.AnimNames = new string[6] { string.Empty, string.Empty, "move_forward_right", "move_forward", "move_forward_left", string.Empty }; val.Flipped = (FlipType[])(object)new FlipType[6]; aiAnimator2.MoveAnimation = val; AIAnimator aiAnimator3 = ((BraveBehaviour)component2).aiAnimator; List list = new List(); NamedDirectionalAnimation val2 = new NamedDirectionalAnimation(); val2.name = "dodgeroll"; NamedDirectionalAnimation obj = val2; val = new DirectionalAnimation(); val.Type = (DirectionType)5; val.Prefix = "dodge"; val.AnimNames = new string[6] { string.Empty, string.Empty, "dodge_forward_right", "dodge_forward", "dodge_forward_left", string.Empty }; val.Flipped = (FlipType[])(object)new FlipType[6]; obj.anim = val; list.Add(val2); val2 = new NamedDirectionalAnimation(); val2.name = "pitfall"; NamedDirectionalAnimation obj2 = val2; val = new DirectionalAnimation(); val.Type = (DirectionType)3; val.Prefix = "pitfall"; val.AnimNames = new string[2] { "pitfall_front", "pitfall_back" }; val.Flipped = (FlipType[])(object)new FlipType[2]; obj2.anim = val; list.Add(val2); val2 = new NamedDirectionalAnimation(); val2.name = "spawn"; NamedDirectionalAnimation obj3 = val2; val = new DirectionalAnimation(); val.Type = (DirectionType)1; val.Prefix = "spawn"; val.AnimNames = new string[1] { "spawn" }; val.Flipped = (FlipType[])(object)new FlipType[1]; obj3.anim = val; list.Add(val2); val2 = new NamedDirectionalAnimation(); val2.name = "death"; NamedDirectionalAnimation obj4 = val2; val = new DirectionalAnimation(); val.Type = (DirectionType)2; val.Prefix = "death"; val.AnimNames = new string[2] { "death_left", "death_right" }; val.Flipped = (FlipType[])(object)new FlipType[2]; obj4.anim = val; list.Add(val2); aiAnimator3.OtherAnimations = list; } BehaviorSpeculator val3 = CachedTargetEnemyObject.AddComponent(); ExpandUtility.DuplicateComponent(val3, ((BraveBehaviour)officialEnemyByGuid).behaviorSpeculator); List movementBehaviors = val3.MovementBehaviors; CompanionFollowPlayerBehavior val4 = new CompanionFollowPlayerBehavior(); val4.PathInterval = 0.25f; val4.DisableInCombat = true; val4.IdealRadius = 3f; val4.CatchUpRadius = 6f; val4.CatchUpAccelTime = 5f; val4.CatchUpSpeed = 6f; val4.CatchUpMaxSpeed = 10f; val4.CatchUpAnimation = "dodge"; val4.CatchUpOutAnimation = string.Empty; val4.IdleAnimations = new string[1] { "idle" }; val4.CanRollOverPits = true; val4.RollAnimation = "dodge"; movementBehaviors.Add((MovementBehaviorBase)(object)val4); foreach (AttackBehaviorBase attackBehavior in val3.AttackBehaviors) { if (attackBehavior is ShootGunBehavior) { ((ShootGunBehavior)((attackBehavior is ShootGunBehavior) ? attackBehavior : null)).GroupCooldownVariance = 0f; } } foreach (AttackGroupItem attackBehavior2 in val3.AttackBehaviorGroup.AttackBehaviors) { if (attackBehavior2.NickName == "Basic Shoot") { AttackBehaviorBase behavior = attackBehavior2.Behavior; ((ShootGunBehavior)((behavior is ShootGunBehavior) ? behavior : null)).GroupCooldownVariance = 0f; } } ((ISerializedObject)val3).SerializedObjectReferences = new List(); ((ISerializedObject)val3).SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; ((ISerializedObject)val3).SerializedStateValues = new List(0); ExpandUtility.MakeCompanion(component2, null, null, targetIsNewAIActor: true, ApplyCharmedColorOverride: false); CachedTargetEnemyObject.AddComponent(); AddEnemyToDatabase(CachedTargetEnemyObject, FriendlyCultistGUID); } public static void BuildParasiteBossPrefab(out GameObject m_CachedTargetObject, bool isFakePrefab = true) { //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_0228: Unknown result type (might be due to invalid IL or missing references) //IL_022d: Unknown result type (might be due to invalid IL or missing references) //IL_0243: Unknown result type (might be due to invalid IL or missing references) //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_02d5: Unknown result type (might be due to invalid IL or missing references) //IL_02da: Unknown result type (might be due to invalid IL or missing references) //IL_02f5: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: Unknown result type (might be due to invalid IL or missing references) m_CachedTargetObject = Object.Instantiate(((Component)EnemyDatabase.GetOrLoadByGuid("dc3cd41623d447aeba77c77c99598426")).gameObject); m_CachedTargetObject.SetActive(false); ((Object)m_CachedTargetObject).name = "BossParasite"; AIActor component = m_CachedTargetObject.GetComponent(); component.EnemyGuid = ParasiteBossGUID; component.EnemyId = Random.Range(100000, 999999); ((GameActor)component).ActorName = "Otherwordly Parasite"; EncounterTrackable component2 = m_CachedTargetObject.GetComponent(); component2.EncounterGuid = "afa1216f84714d73af66d613627397cc"; component2.journalData.PrimaryDisplayName = "Parasitic Abomination"; component2.journalData.NotificationPanelDescription = "Parasitic horror inside the beast."; component2.journalData.AmmonomiconFullEntry = "This abomination may have been responsible for the rampage of the giant worm monster."; component.SetsFlagOnDeath = false; ExpandParasiteBossDeathController expandParasiteBossDeathController = m_CachedTargetObject.AddComponent(); expandParasiteBossDeathController.explosionVfx = new List(); foreach (GameObject item3 in m_CachedTargetObject.GetComponent().explosionVfx) { expandParasiteBossDeathController.explosionVfx.Add(item3); } expandParasiteBossDeathController.explosionCount = 9; expandParasiteBossDeathController.explosionMidDelay = 0.15f; expandParasiteBossDeathController.bigExplosionVfx = new List(); foreach (GameObject item4 in m_CachedTargetObject.GetComponent().bigExplosionVfx) { expandParasiteBossDeathController.bigExplosionVfx.Add(item4); } expandParasiteBossDeathController.bigExplosionCount = 1; expandParasiteBossDeathController.bigExplosionMidDelay = 0.3f; Object.Destroy((Object)(object)m_CachedTargetObject.GetComponent()); GenericIntroDoer component3 = m_CachedTargetObject.GetComponent(); component3.triggerType = (TriggerType)10; component3.portraitSlideSettings.bossNameString = "Parasetic Abomination"; component3.portraitSlideSettings.bossSubtitleString = "Parasite Horror"; component3.portraitSlideSettings.bossQuoteString = string.Empty; m_CachedTargetObject.GetComponent().SuppressPlayerEnteredRoom = false; BehaviorSpeculator component4 = m_CachedTargetObject.GetComponent(); component.PathableTiles = (CellTypes)2; AttackBehaviorBase item = null; AttackGroupItem item2 = null; foreach (AttackBehaviorBase attackBehavior in component4.AttackBehaviors) { if (attackBehavior is BossFinalMarinePortalBehavior) { item = attackBehavior; } else if (attackBehavior is TeleportBehavior) { ((TeleportBehavior)((attackBehavior is TeleportBehavior) ? attackBehavior : null)).ManuallyDefineRoom = false; ((TeleportBehavior)((attackBehavior is TeleportBehavior) ? attackBehavior : null)).roomMin = new Vector2(4f, 4f); ((TeleportBehavior)((attackBehavior is TeleportBehavior) ? attackBehavior : null)).roomMax = new Vector2(15f, 15f); } } foreach (AttackGroupItem attackBehavior2 in component4.AttackBehaviorGroup.AttackBehaviors) { if (attackBehavior2.Behavior is BossFinalMarinePortalBehavior) { item2 = attackBehavior2; } else if (attackBehavior2.NickName == "Frequent Teleport") { AttackBehaviorBase behavior = attackBehavior2.Behavior; ((TeleportBehavior)((behavior is TeleportBehavior) ? behavior : null)).ManuallyDefineRoom = false; AttackBehaviorBase behavior2 = attackBehavior2.Behavior; ((TeleportBehavior)((behavior2 is TeleportBehavior) ? behavior2 : null)).roomMin = new Vector2(4f, 4f); AttackBehaviorBase behavior3 = attackBehavior2.Behavior; ((TeleportBehavior)((behavior3 is TeleportBehavior) ? behavior3 : null)).roomMax = new Vector2(15f, 15f); } } component4.AttackBehaviorGroup.AttackBehaviors.Remove(item2); component4.AttackBehaviors.Remove(item); ((ISerializedObject)component4).SerializedStateValues = new List(0); ((ISerializedObject)component4).SaveState(); ((BraveBehaviour)component4).RegenerateCache(); ((BraveBehaviour)component).healthHaver.ForceSetCurrentHealth(550f); ((BraveBehaviour)component).healthHaver.SetHealthMaximum(1200f, (float?)null, false); ((BraveBehaviour)component).RegenerateCache(); if (isFakePrefab) { AddEnemyToDatabase(m_CachedTargetObject, ParasiteBossGUID, IsNormalEnemy: true); FakePrefab.MarkAsFakePrefab(m_CachedTargetObject); Object.DontDestroyOnLoad((Object)(object)m_CachedTargetObject); } } public static void BuildJungleBossPrefab(out GameObject m_CachedTargetObject, bool isFakePrefab = true) { //IL_00bb: 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_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_01fb: Unknown result type (might be due to invalid IL or missing references) //IL_0200: Unknown result type (might be due to invalid IL or missing references) //IL_0211: Unknown result type (might be due to invalid IL or missing references) //IL_0216: Unknown result type (might be due to invalid IL or missing references) m_CachedTargetObject = Object.Instantiate(((Component)EnemyDatabase.GetOrLoadByGuid("880bbe4ce1014740ba6b4e2ea521e49d")).gameObject); m_CachedTargetObject.SetActive(false); ((Object)m_CachedTargetObject).name = "Com4nd0 Boss"; AIActor component = m_CachedTargetObject.GetComponent(); component.EnemyGuid = com4nd0GUID; component.EnemyId = Random.Range(100000, 999999); ((GameActor)component).ActorName = "Com4nd0"; EncounterTrackable component2 = m_CachedTargetObject.GetComponent(); component2.EncounterGuid = "7330c08088cf4f8baf6a640d4f8f5c45"; component2.journalData.PrimaryDisplayName = "Com4nd0"; component2.journalData.NotificationPanelDescription = "The Lost Human"; component2.journalData.AmmonomiconFullEntry = "This human was lost in the Jungle for many years and found refuge at an ancient temple ruins"; component.SetsFlagOnDeath = false; Object.Destroy((Object)(object)m_CachedTargetObject.GetComponent()); GenericIntroDoer component3 = m_CachedTargetObject.GetComponent(); component3.triggerType = (TriggerType)10; component3.portraitSlideSettings.bossNameString = "Com4nd0"; component3.portraitSlideSettings.bossSubtitleString = "Temple Defence"; component3.portraitSlideSettings.bossQuoteString = string.Empty; m_CachedTargetObject.GetComponent().SuppressPlayerEnteredRoom = false; BehaviorSpeculator component4 = m_CachedTargetObject.GetComponent(); component.PathableTiles = (CellTypes)2; foreach (AttackBehaviorBase attackBehavior in component4.AttackBehaviors) { if (attackBehavior is SummonEnemyBehavior) { ((SummonEnemyBehavior)((attackBehavior is SummonEnemyBehavior) ? attackBehavior : null)).ManuallyDefineRoom = false; ((SummonEnemyBehavior)((attackBehavior is SummonEnemyBehavior) ? attackBehavior : null)).roomMin = Vector2.zero; ((SummonEnemyBehavior)((attackBehavior is SummonEnemyBehavior) ? attackBehavior : null)).roomMax = Vector2.zero; ((SummonEnemyBehavior)((attackBehavior is SummonEnemyBehavior) ? attackBehavior : null)).EnemeyGuids = new List { "39e6f47a16ab4c86bec4b12984aece4c", "05891b158cd542b1a5f3df30fb67a7ff", "6b7ef9e5d05b4f96b04f05ef4a0d1b18", "98fdf153a4dd4d51bf0bafe43f3c77ff" }; } } foreach (AttackGroupItem attackBehavior2 in component4.AttackBehaviorGroup.AttackBehaviors) { if (attackBehavior2.NickName == "Teleport") { AttackBehaviorBase behavior = attackBehavior2.Behavior; ((TeleportBehavior)((behavior is TeleportBehavior) ? behavior : null)).ManuallyDefineRoom = false; AttackBehaviorBase behavior2 = attackBehavior2.Behavior; ((TeleportBehavior)((behavior2 is TeleportBehavior) ? behavior2 : null)).roomMin = Vector2.zero; AttackBehaviorBase behavior3 = attackBehavior2.Behavior; ((TeleportBehavior)((behavior3 is TeleportBehavior) ? behavior3 : null)).roomMax = Vector2.zero; } } ((ISerializedObject)component4).SerializedStateValues = new List(0); ((ISerializedObject)component4).SaveState(); ((BraveBehaviour)component4).RegenerateCache(); ((BraveBehaviour)component).healthHaver.ForceSetCurrentHealth(725f); ((BraveBehaviour)component).healthHaver.SetHealthMaximum(725f, (float?)null, false); ((BraveBehaviour)component).RegenerateCache(); if (isFakePrefab) { AddEnemyToDatabase(m_CachedTargetObject, com4nd0GUID, IsNormalEnemy: true); FakePrefab.MarkAsFakePrefab(m_CachedTargetObject); Object.DontDestroyOnLoad((Object)(object)m_CachedTargetObject); } } public static void BuildDoppelGunnerBossPrefab(AssetBundle expandSharedAssets1, out GameObject CachedTargetEnemyObject) { //IL_0598: Unknown result type (might be due to invalid IL or missing references) //IL_061b: Unknown result type (might be due to invalid IL or missing references) //IL_0620: Unknown result type (might be due to invalid IL or missing references) //IL_064b: Unknown result type (might be due to invalid IL or missing references) //IL_0650: Unknown result type (might be due to invalid IL or missing references) //IL_0660: Unknown result type (might be due to invalid IL or missing references) //IL_0668: Unknown result type (might be due to invalid IL or missing references) //IL_0673: Unknown result type (might be due to invalid IL or missing references) //IL_067e: Unknown result type (might be due to invalid IL or missing references) //IL_067f: Unknown result type (might be due to invalid IL or missing references) //IL_0684: Unknown result type (might be due to invalid IL or missing references) //IL_0689: Unknown result type (might be due to invalid IL or missing references) //IL_068a: Unknown result type (might be due to invalid IL or missing references) //IL_068f: Unknown result type (might be due to invalid IL or missing references) //IL_0694: Unknown result type (might be due to invalid IL or missing references) //IL_0695: Unknown result type (might be due to invalid IL or missing references) //IL_069a: Unknown result type (might be due to invalid IL or missing references) //IL_069f: Unknown result type (might be due to invalid IL or missing references) //IL_06b4: Unknown result type (might be due to invalid IL or missing references) //IL_06b9: Unknown result type (might be due to invalid IL or missing references) //IL_06c3: Expected O, but got Unknown //IL_06cb: Unknown result type (might be due to invalid IL or missing references) //IL_0396: Unknown result type (might be due to invalid IL or missing references) //IL_03a4: Unknown result type (might be due to invalid IL or missing references) //IL_03cb: Unknown result type (might be due to invalid IL or missing references) //IL_03d7: Unknown result type (might be due to invalid IL or missing references) //IL_03de: Expected O, but got Unknown //IL_03e1: Unknown result type (might be due to invalid IL or missing references) //IL_042a: Unknown result type (might be due to invalid IL or missing references) //IL_0431: Expected O, but got Unknown //IL_0434: Unknown result type (might be due to invalid IL or missing references) //IL_0486: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Expected O, but got Unknown //IL_049b: Unknown result type (might be due to invalid IL or missing references) //IL_04a2: Expected O, but got Unknown //IL_04a5: Unknown result type (might be due to invalid IL or missing references) //IL_04f0: Unknown result type (might be due to invalid IL or missing references) //IL_04f7: Expected O, but got Unknown //IL_0505: Unknown result type (might be due to invalid IL or missing references) //IL_050c: Expected O, but got Unknown //IL_050f: Unknown result type (might be due to invalid IL or missing references) GameObject gameObject = ((Component)ExpandAssets.LoadOfficialAsset("PlayerCoopCultist", ExpandAssets.AssetSource.BraveResources).transform.Find("PlayerSprite")).gameObject; GetOfficialEnemyByGuid("57255ed50ee24794b7aac1ac3cfb8a95"); AIActor officialEnemyByGuid = GetOfficialEnemyByGuid("9216803e9c894002a4b931d7ea9c6bdf"); GameObject corpseObject = null; CachedTargetEnemyObject = expandSharedAssets1.LoadAsset("Doppelgunner"); tk2dSprite obj = CachedTargetEnemyObject.AddComponent(); ExpandUtility.DuplicateComponent(obj, gameObject.GetComponent()); ((tk2dBaseSprite)obj).FlipX = false; GameObject gameObject2 = ((Component)CachedTargetEnemyObject.transform.Find("GunAttachPoint")).gameObject; ExpandUtility.DuplicateAIShooterAndAIBulletBank(CachedTargetEnemyObject, ((BraveBehaviour)officialEnemyByGuid).aiShooter, ((Component)officialEnemyByGuid).GetComponent(), 24, gameObject2.transform); ExpandUtility.GenerateAIActorTemplate(CachedTargetEnemyObject, out corpseObject, "Doppelgunner", doppelgunnerbossEnemyGUID, null, null, null, 38, null, RigidBodyCollidesWithTileMap: true, RigidBodyCollidesWithOthers: true, RigidBodyCanBeCarried: true, RigidBodyCanBePushed: false, isFakePrefab: false, instantiateCorpseObject: false, GetOfficialEnemyByGuid("88b6b6a93d4b4234a67844ef4728382c").CorpseObject, EnemyHasNoShooter: true); AIActor component = CachedTargetEnemyObject.GetComponent(); DopplegunnerHand = expandSharedAssets1.LoadAsset("DopplegunnerHand"); ExpandUtility.DuplicateComponent(DopplegunnerHand.AddComponent(), ((BraveBehaviour)((BraveBehaviour)officialEnemyByGuid).aiShooter.handObject).sprite); PlayerHandController handObject = DopplegunnerHand.AddComponent(); ((BraveBehaviour)component).aiShooter.handObject = handObject; ((BraveBehaviour)component).aiShooter.AllowTwoHands = true; ((GameActor)component).DoDustUps = true; ((GameActor)component).DustUpInterval = 0.4f; component.MovementSpeed = 3.5f; component.EnemySwitchState = "Gun Cultist"; List list = new List(); tk2dSpriteAnimationClip[] clips = gameObject.GetComponent().Library.clips; foreach (tk2dSpriteAnimationClip val in clips) { if (val != null && !string.IsNullOrEmpty(val.name)) { if (val.name.ToLower() == "idle") { list.Add(val); } else if (val.name.ToLower() == "idle_backward") { list.Add(val); } else if (val.name.ToLower() == "dodge") { list.Add(val); } else if (val.name.ToLower() == "dodge_bw") { list.Add(val); } else if (val.name.ToLower() == "run_down") { list.Add(val); } else if (val.name.ToLower() == "run_up") { list.Add(val); } else if (val.name.ToLower() == "death") { list.Add(val); } else if (val.name.ToLower() == "death_bw") { list.Add(val); } else if (val.name.ToLower() == "pitfall") { list.Add(val); } else if (val.name.ToLower() == "pitfall_down") { list.Add(val); } } } if (!Object.op_Implicit((Object)(object)((BraveBehaviour)component).spriteAnimator.Library)) { ((BraveBehaviour)component).spriteAnimator.Library = CachedTargetEnemyObject.AddComponent(); } if (list.Count > 0) { ((BraveBehaviour)component).spriteAnimator.Library.clips = list.ToArray(); } ((BraveBehaviour)component).spriteAnimator.DefaultClipId = 0; ((BraveBehaviour)component).spriteAnimator.playAutomatically = true; if (Object.op_Implicit((Object)(object)((BraveBehaviour)component).aiAnimator)) { ((BraveBehaviour)component).aiAnimator.facingType = (FacingType)2; ((BraveBehaviour)component).aiAnimator.directionalType = (DirectionalType)10; ((BraveBehaviour)component).aiAnimator.faceSouthWhenStopped = false; ((BraveBehaviour)component).aiAnimator.faceTargetWhenStopped = false; ((BraveBehaviour)component).aiAnimator.HitType = (HitStateType)0; AIAnimator aiAnimator = ((BraveBehaviour)component).aiAnimator; DirectionalAnimation val2 = new DirectionalAnimation(); val2.Type = (DirectionType)3; val2.Prefix = "idle"; val2.AnimNames = new string[2] { "idle_backward", "idle" }; val2.Flipped = (FlipType[])(object)new FlipType[2]; aiAnimator.IdleAnimation = val2; AIAnimator aiAnimator2 = ((BraveBehaviour)component).aiAnimator; val2 = new DirectionalAnimation(); val2.Type = (DirectionType)3; val2.Prefix = "run"; val2.AnimNames = new string[2] { "run_up", "run_down" }; val2.Flipped = (FlipType[])(object)new FlipType[2]; aiAnimator2.MoveAnimation = val2; AIAnimator aiAnimator3 = ((BraveBehaviour)component).aiAnimator; List list2 = new List(); NamedDirectionalAnimation val3 = new NamedDirectionalAnimation(); val3.name = "dodgeroll"; NamedDirectionalAnimation obj2 = val3; val2 = new DirectionalAnimation(); val2.Type = (DirectionType)3; val2.Prefix = "dodge"; val2.AnimNames = new string[2] { "dodge_bw", "dodge" }; val2.Flipped = (FlipType[])(object)new FlipType[2]; obj2.anim = val2; list2.Add(val3); val3 = new NamedDirectionalAnimation(); val3.name = "pitfall"; NamedDirectionalAnimation obj3 = val3; val2 = new DirectionalAnimation(); val2.Type = (DirectionType)3; val2.Prefix = "pitfall"; val2.AnimNames = new string[2] { "pitfall", "pitfall_down" }; val2.Flipped = (FlipType[])(object)new FlipType[2]; obj3.anim = val2; list2.Add(val3); aiAnimator3.OtherAnimations = list2; } ExpandUtility.DuplicateComponent(((BraveBehaviour)component).healthHaver, ((BraveBehaviour)GetOfficialEnemyByGuid("705e9081261446039e1ed9ff16905d04")).healthHaver); string text = "Doppelgunner"; GenericIntroDoer val4 = CachedTargetEnemyObject.AddComponent(); CachedTargetEnemyObject.AddComponent(); val4.triggerType = (TriggerType)10; val4.initialDelay = 0.15f; val4.cameraMoveSpeed = 14f; val4.specifyIntroAiAnimator = null; val4.BossMusicEvent = "Play_MUS_Boss_Theme_Beholster"; val4.PreventBossMusic = false; val4.InvisibleBeforeIntroAnim = false; val4.preIntroAnim = string.Empty; val4.preIntroDirectionalAnim = string.Empty; val4.introAnim = "idle"; val4.introDirectionalAnim = string.Empty; val4.continueAnimDuringOutro = false; val4.cameraFocus = null; val4.roomPositionCameraFocus = Vector2.zero; val4.restrictPlayerMotionToRoom = false; val4.fusebombLock = false; val4.AdditionalHeightOffset = 0f; val4.SkipBossCard = false; val4.portraitSlideSettings = new PortraitSlideSettings { bossArtSprite = (Texture)(object)ExpandAssets.LoadAsset("MimicInMirror_BossCardBackground"), bossNameString = text, bossSubtitleString = "Imposter!", bossQuoteString = "Clone gone rogue...", bossSpritePxOffset = IntVector2.Zero, topLeftTextPxOffset = IntVector2.Zero, bottomRightTextPxOffset = IntVector2.Zero, bgColor = new Color(0f, 0f, 1f, 1f) }; ((BraveBehaviour)component).healthHaver.bossHealthBar = (BossBarType)1; val4.HideGunAndHand = true; val4.SkipFinalizeAnimation = true; component.BaseMovementSpeed = 8f; component.MovementSpeed = 8f; ((BraveBehaviour)component).healthHaver.SetHealthMaximum(1000f, (float?)null, false); ((BraveBehaviour)component).healthHaver.ForceSetCurrentHealth(1000f); ((BraveBehaviour)component).healthHaver.overrideBossName = text; ((GameActor)component).OverrideDisplayName = text; ((GameActor)component).ActorName = text; ((Object)component).name = text; component.CanTargetEnemies = false; component.CanTargetPlayers = true; ((BraveBehaviour)component).spriteAnimator.DefaultClipId = 0; ((BraveBehaviour)component).spriteAnimator.playAutomatically = false; CachedTargetEnemyObject.AddComponent(); CachedTargetEnemyObject.AddComponent(); if (Object.op_Implicit((Object)(object)((Component)component).GetComponent())) { typeof(GenericIntroDoer).GetField("m_specificIntroDoer", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(val4, ((Component)component).GetComponent()); } ((Behaviour)((BraveBehaviour)component).aiAnimator).enabled = false; BehaviorSpeculator obj4 = CachedTargetEnemyObject.AddComponent(); obj4.OverrideBehaviors = new List(0); obj4.TargetBehaviors = new List(0); obj4.MovementBehaviors = new List(0); obj4.AttackBehaviors = new List(0); obj4.OtherBehaviors = new List(0); obj4.InstantFirstTick = false; obj4.TickInterval = 0.1f; obj4.PostAwakenDelay = 0.5f; obj4.RemoveDelayOnReinforce = false; obj4.OverrideStartingFacingDirection = false; obj4.StartingFacingDirection = -90f; obj4.SkipTimingDifferentiator = false; ((BraveBehaviour)obj4).RegenerateCache(); ((ISerializedObject)obj4).SerializedObjectReferences = new List(0); ((ISerializedObject)obj4).SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; ((ISerializedObject)obj4).SerializedStateValues = new List(0); AddEnemyToDatabaseAndAmmonomicon(component, doppelgunnerbossEnemyGUID, ExpandAmmonomiconDatabase.Doppelgunner, AddToMTGSpawnPool: false); } public static void BuildBulletManBossPrefab(AssetBundle expandSharedAssets1, out GameObject m_CachedTargetObject) { //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_012e: 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_0135: Unknown result type (might be due to invalid IL or missing references) //IL_013a: 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) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Expected O, but got Unknown //IL_0167: Expected O, but got Unknown //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_0188: 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_018f: Unknown result type (might be due to invalid IL or missing references) //IL_019a: 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_01b7: Expected O, but got Unknown //IL_01bc: Expected O, but got Unknown //IL_01c7: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: 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_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01dd: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: 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_01fb: Unknown result type (might be due to invalid IL or missing references) //IL_020c: Expected O, but got Unknown //IL_0211: Expected O, but got Unknown //IL_021e: 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_02cf: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: 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_030f: Unknown result type (might be due to invalid IL or missing references) //IL_0317: Unknown result type (might be due to invalid IL or missing references) //IL_0322: Unknown result type (might be due to invalid IL or missing references) //IL_032d: Unknown result type (might be due to invalid IL or missing references) //IL_032e: Unknown result type (might be due to invalid IL or missing references) //IL_0333: Unknown result type (might be due to invalid IL or missing references) //IL_0338: Unknown result type (might be due to invalid IL or missing references) //IL_0339: Unknown result type (might be due to invalid IL or missing references) //IL_033e: Unknown result type (might be due to invalid IL or missing references) //IL_0343: Unknown result type (might be due to invalid IL or missing references) //IL_0344: 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_034e: Unknown result type (might be due to invalid IL or missing references) //IL_0363: Unknown result type (might be due to invalid IL or missing references) //IL_0368: Unknown result type (might be due to invalid IL or missing references) //IL_0372: Expected O, but got Unknown //IL_0386: Unknown result type (might be due to invalid IL or missing references) //IL_03c2: Unknown result type (might be due to invalid IL or missing references) //IL_03c7: Unknown result type (might be due to invalid IL or missing references) //IL_03ce: Unknown result type (might be due to invalid IL or missing references) //IL_03d5: Unknown result type (might be due to invalid IL or missing references) //IL_03e1: Expected O, but got Unknown //IL_03ed: Unknown result type (might be due to invalid IL or missing references) //IL_03f2: Unknown result type (might be due to invalid IL or missing references) //IL_03fd: Unknown result type (might be due to invalid IL or missing references) //IL_0404: Unknown result type (might be due to invalid IL or missing references) //IL_040b: Unknown result type (might be due to invalid IL or missing references) //IL_0416: Unknown result type (might be due to invalid IL or missing references) //IL_041d: Unknown result type (might be due to invalid IL or missing references) //IL_042d: Expected O, but got Unknown //IL_0439: Unknown result type (might be due to invalid IL or missing references) //IL_0443: Expected O, but got Unknown //IL_0444: Unknown result type (might be due to invalid IL or missing references) //IL_0449: Unknown result type (might be due to invalid IL or missing references) //IL_0454: Unknown result type (might be due to invalid IL or missing references) //IL_045b: Unknown result type (might be due to invalid IL or missing references) //IL_0466: Unknown result type (might be due to invalid IL or missing references) //IL_0471: Unknown result type (might be due to invalid IL or missing references) //IL_047c: Unknown result type (might be due to invalid IL or missing references) //IL_0487: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_049d: Unknown result type (might be due to invalid IL or missing references) //IL_04a8: Unknown result type (might be due to invalid IL or missing references) //IL_04b3: Unknown result type (might be due to invalid IL or missing references) //IL_04be: Unknown result type (might be due to invalid IL or missing references) //IL_04ce: Expected O, but got Unknown //IL_04cf: Unknown result type (might be due to invalid IL or missing references) //IL_04d4: Unknown result type (might be due to invalid IL or missing references) //IL_04db: Unknown result type (might be due to invalid IL or missing references) //IL_04e6: Unknown result type (might be due to invalid IL or missing references) //IL_04ed: Unknown result type (might be due to invalid IL or missing references) //IL_04f4: Unknown result type (might be due to invalid IL or missing references) //IL_04ff: Unknown result type (might be due to invalid IL or missing references) //IL_050a: Unknown result type (might be due to invalid IL or missing references) //IL_0511: Unknown result type (might be due to invalid IL or missing references) //IL_051c: Unknown result type (might be due to invalid IL or missing references) //IL_052c: Expected O, but got Unknown //IL_0538: Unknown result type (might be due to invalid IL or missing references) //IL_053d: Unknown result type (might be due to invalid IL or missing references) //IL_0548: Unknown result type (might be due to invalid IL or missing references) //IL_054f: Unknown result type (might be due to invalid IL or missing references) //IL_0551: Unknown result type (might be due to invalid IL or missing references) //IL_0556: Unknown result type (might be due to invalid IL or missing references) //IL_0561: Unknown result type (might be due to invalid IL or missing references) //IL_0568: Unknown result type (might be due to invalid IL or missing references) //IL_056f: Unknown result type (might be due to invalid IL or missing references) //IL_0576: Unknown result type (might be due to invalid IL or missing references) //IL_0581: Unknown result type (might be due to invalid IL or missing references) //IL_058c: Unknown result type (might be due to invalid IL or missing references) //IL_0593: Unknown result type (might be due to invalid IL or missing references) //IL_059e: Unknown result type (might be due to invalid IL or missing references) //IL_05a9: Unknown result type (might be due to invalid IL or missing references) //IL_05b0: Unknown result type (might be due to invalid IL or missing references) //IL_05b7: Unknown result type (might be due to invalid IL or missing references) //IL_05c2: Unknown result type (might be due to invalid IL or missing references) //IL_05c9: Unknown result type (might be due to invalid IL or missing references) //IL_05d0: Unknown result type (might be due to invalid IL or missing references) //IL_05d7: Unknown result type (might be due to invalid IL or missing references) //IL_05de: Unknown result type (might be due to invalid IL or missing references) //IL_05e5: Unknown result type (might be due to invalid IL or missing references) //IL_05ec: Unknown result type (might be due to invalid IL or missing references) //IL_05f7: Unknown result type (might be due to invalid IL or missing references) //IL_05fe: Unknown result type (might be due to invalid IL or missing references) //IL_0609: Unknown result type (might be due to invalid IL or missing references) //IL_0614: Unknown result type (might be due to invalid IL or missing references) //IL_061f: Unknown result type (might be due to invalid IL or missing references) //IL_062a: Unknown result type (might be due to invalid IL or missing references) //IL_0635: Unknown result type (might be due to invalid IL or missing references) //IL_0640: Unknown result type (might be due to invalid IL or missing references) //IL_0647: Unknown result type (might be due to invalid IL or missing references) //IL_0652: Unknown result type (might be due to invalid IL or missing references) //IL_065d: Unknown result type (might be due to invalid IL or missing references) //IL_0668: Unknown result type (might be due to invalid IL or missing references) //IL_0673: Unknown result type (might be due to invalid IL or missing references) //IL_067e: Unknown result type (might be due to invalid IL or missing references) //IL_0689: Unknown result type (might be due to invalid IL or missing references) //IL_0694: Unknown result type (might be due to invalid IL or missing references) //IL_06a0: Unknown result type (might be due to invalid IL or missing references) //IL_06a7: Unknown result type (might be due to invalid IL or missing references) //IL_06ae: Unknown result type (might be due to invalid IL or missing references) //IL_06b5: Unknown result type (might be due to invalid IL or missing references) //IL_06bc: Unknown result type (might be due to invalid IL or missing references) //IL_06c3: Unknown result type (might be due to invalid IL or missing references) //IL_06cf: Expected O, but got Unknown //IL_07ce: Unknown result type (might be due to invalid IL or missing references) AIActor officialEnemyByGuid = GetOfficialEnemyByGuid("01972dee89fc4404a5c408d50007dad5"); GameObject corpseObject = null; m_CachedTargetObject = expandSharedAssets1.LoadAsset("BulletMan Boss"); SpriteSerializer.AddSpriteToObject(m_CachedTargetObject, ((BraveBehaviour)officialEnemyByGuid).sprite.Collection, ((BraveBehaviour)officialEnemyByGuid).sprite.Collection.spriteDefinitions[363].name, (PerpendicularState)1); ExpandUtility.GenerateSpriteAnimator(m_CachedTargetObject, ((BraveBehaviour)officialEnemyByGuid).spriteAnimator.Library, 5, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true, IsFrameBlendedAnimation: false, 0f, 0f); GameObject gameObject = ((Component)m_CachedTargetObject.transform.Find("GunAttachPoint")).gameObject; ExpandUtility.DuplicateAIShooterAndAIBulletBank(m_CachedTargetObject, ((BraveBehaviour)officialEnemyByGuid).aiShooter, ((Component)officialEnemyByGuid).GetComponent(), 38, gameObject.transform); ExpandUtility.GenerateAIActorTemplate(m_CachedTargetObject, out corpseObject, "BulletMan Boss", BulletManBossGUID, null, null, null, 38, null, RigidBodyCollidesWithTileMap: true, RigidBodyCollidesWithOthers: true, RigidBodyCanBeCarried: true, RigidBodyCanBePushed: false, isFakePrefab: false, instantiateCorpseObject: false, officialEnemyByGuid.CorpseObject, EnemyHasNoShooter: true); AIActor component = m_CachedTargetObject.GetComponent(); if (!Object.op_Implicit((Object)(object)officialEnemyByGuid)) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for donor enemy is null!", false); } return; } ExpandUtility.DuplicateComponent(((BraveBehaviour)component).aiAnimator, ((BraveBehaviour)officialEnemyByGuid).aiAnimator); ((BraveBehaviour)component).aiAnimator.OtherAnimations.Add(new NamedDirectionalAnimation { name = "cover_idle_left", anim = new DirectionalAnimation { Type = (DirectionType)0, Prefix = "cover_idle_left", AnimNames = new string[1], Flipped = (FlipType[])(object)new FlipType[1] } }); ((BraveBehaviour)component).aiAnimator.OtherAnimations.Add(new NamedDirectionalAnimation { name = "cover_leap_left", anim = new DirectionalAnimation { Type = (DirectionType)0, Prefix = "cover_leap_left", AnimNames = new string[1], Flipped = (FlipType[])(object)new FlipType[1] } }); ((BraveBehaviour)component).aiAnimator.OtherAnimations.Add(new NamedDirectionalAnimation { name = "spawn", anim = new DirectionalAnimation { Type = (DirectionType)0, Prefix = "cover_leap_left", AnimNames = new string[1], Flipped = (FlipType[])(object)new FlipType[1] } }); component.MovementSpeed = 2f; component.PathableTiles = (CellTypes)2; ((BraveBehaviour)component).specRigidbody.PixelColliders.Clear(); ExpandUtility.DuplicateRigidBody(((BraveBehaviour)component).specRigidbody, ((BraveBehaviour)officialEnemyByGuid).specRigidbody); string text = "Just a normal Bullet Kin?"; GenericIntroDoer obj = ((Component)component).gameObject.AddComponent(); obj.triggerType = (TriggerType)10; obj.initialDelay = 0.15f; obj.cameraMoveSpeed = 14f; obj.specifyIntroAiAnimator = null; obj.BossMusicEvent = "Play_MUS_Boss_Theme_Beholster"; obj.PreventBossMusic = false; obj.InvisibleBeforeIntroAnim = false; obj.preIntroDirectionalAnim = string.Empty; obj.preIntroAnim = "cover_idle_left"; obj.introAnim = string.Empty; obj.introDirectionalAnim = string.Empty; obj.continueAnimDuringOutro = true; obj.cameraFocus = null; obj.roomPositionCameraFocus = Vector2.zero; obj.restrictPlayerMotionToRoom = false; obj.fusebombLock = false; obj.AdditionalHeightOffset = 0f; obj.SkipBossCard = false; obj.portraitSlideSettings = new PortraitSlideSettings { bossArtSprite = (Texture)(object)ExpandAssets.LoadAsset("BulletMan_BossCard"), bossNameString = text, bossSubtitleString = "He's serious?", bossQuoteString = "Don't tell Him...", bossSpritePxOffset = IntVector2.Zero, topLeftTextPxOffset = IntVector2.Zero, bottomRightTextPxOffset = IntVector2.Zero, bgColor = new Color(0f, 0f, 1f, 1f) }; obj.HideGunAndHand = false; obj.SkipFinalizeAnimation = false; ((BraveBehaviour)component).healthHaver.bossHealthBar = (BossBarType)1; ((BraveBehaviour)component).healthHaver.overrideBossName = text; ((GameActor)component).OverrideDisplayName = text; m_CachedTargetObject.AddComponent(); BehaviorSpeculator obj2 = m_CachedTargetObject.AddComponent(); obj2.OtherBehaviors = new List(0); obj2.OverrideBehaviors = new List { (OverrideBehaviorBase)new RedBarrelAwareness { AvoidRedBarrels = true, ShootRedBarrels = true, PushRedBarrels = true } }; obj2.TargetBehaviors = new List { (TargetBehaviorBase)new TargetPlayerBehavior { Radius = 35f, LineOfSight = true, ObjectPermanence = true, SearchInterval = 0.25f, PauseOnTargetSwitch = false, PauseTime = 0.25f } }; obj2.MovementBehaviors = new List { (MovementBehaviorBase)new RideInCartsBehavior(), (MovementBehaviorBase)new TakeCoverBehavior { PathInterval = 0.25f, LineOfSightToLeaveCover = true, MaxCoverDistance = 10f, MaxCoverDistanceToTarget = 25f, FlipCoverDistance = 0.3f, InsideCoverTime = 2f, OutsideCoverTime = 2f, PopOutSpeedMultiplier = 3f, PopInSpeedMultiplier = 1f, InitialCoverChance = 0.9f, RepeatingCoverChance = 0.15f, RepeatingCoverInterval = 1f }, (MovementBehaviorBase)new SeekTargetBehavior { StopWhenInRange = true, CustomRange = 7f, LineOfSight = true, ReturnToSpawn = true, SpawnTetherDistance = 0f, PathInterval = 0.25f, SpecifyRange = false, MinActiveRange = 0f, MaxActiveRange = 0f } }; obj2.AttackBehaviors = new List { (AttackBehaviorBase)new ShootGunBehavior { GroupCooldownVariance = 0.2f, LineOfSight = true, WeaponType = (WeaponType)0, OverrideBulletName = "default", BulletScript = null, FixTargetDuringAttack = false, StopDuringAttack = false, LeadAmount = 0f, LeadChance = 1f, RespectReload = true, MagazineCapacity = 6f, ReloadSpeed = 2f, EmptiesClip = false, SuppressReloadAnim = false, TimeBetweenShots = -1f, PreventTargetSwitching = false, OverrideAnimation = null, OverrideDirectionalAnimation = null, HideGun = false, UseLaserSight = false, UseGreenLaser = false, PreFireLaserTime = -1f, AimAtFacingDirectionWhenSafe = false, Cooldown = 1.6f, CooldownVariance = 0f, AttackCooldown = 0f, GlobalCooldown = 0f, InitialCooldown = 0f, InitialCooldownVariance = 0f, GroupName = null, GroupCooldown = 0f, MinRange = 0f, Range = 12f, MinWallDistance = 0f, MaxEnemiesInRoom = 0f, MinHealthThreshold = 0f, MaxHealthThreshold = 1f, HealthThresholds = new float[0], AccumulateHealthThresholds = true, targetAreaStyle = null, IsBlackPhantom = false, resetCooldownOnDamage = null, RequiresLineOfSight = false, MaxUsages = 0 } }; obj2.InstantFirstTick = false; obj2.TickInterval = 0.1f; obj2.PostAwakenDelay = 0.5f; obj2.RemoveDelayOnReinforce = false; obj2.OverrideStartingFacingDirection = false; obj2.StartingFacingDirection = -90f; obj2.SkipTimingDifferentiator = false; ((ISerializedObject)obj2).SerializedObjectReferences = new List(0); ((ISerializedObject)obj2).SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; ((ISerializedObject)obj2).SerializedStateValues = new List(0); ExplodeOnDeath obj3 = m_CachedTargetObject.AddComponent(); obj3.explosionData = ExpandUtility.GenerateExplosionData(); obj3.immuneToIBombApp = true; obj3.LinearChainExplosion = false; ((OnDeathBehavior)obj3).deathType = (DeathType)1; ((OnDeathBehavior)obj3).preDeathDelay = 0.1f; AddEnemyToDatabaseAndAmmonomicon(component, BulletManBossGUID, ExpandAmmonomiconDatabase.BulletManBoss); officialEnemyByGuid = null; } public static void BuildPoisbulordBossPrefab(AssetBundle expandSharedAssets1, out GameObject m_CachedTargetObject) { //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_02e9: Unknown result type (might be due to invalid IL or missing references) //IL_02f0: Expected O, but got Unknown //IL_02f3: Unknown result type (might be due to invalid IL or missing references) //IL_0302: Unknown result type (might be due to invalid IL or missing references) //IL_0309: Expected O, but got Unknown //IL_0313: Unknown result type (might be due to invalid IL or missing references) //IL_0318: Unknown result type (might be due to invalid IL or missing references) //IL_0323: Unknown result type (might be due to invalid IL or missing references) //IL_032a: Unknown result type (might be due to invalid IL or missing references) //IL_0331: Unknown result type (might be due to invalid IL or missing references) //IL_0338: Unknown result type (might be due to invalid IL or missing references) //IL_033f: Unknown result type (might be due to invalid IL or missing references) //IL_034a: Unknown result type (might be due to invalid IL or missing references) //IL_034c: Unknown result type (might be due to invalid IL or missing references) //IL_0351: Unknown result type (might be due to invalid IL or missing references) //IL_0359: Expected O, but got Unknown //IL_059f: Unknown result type (might be due to invalid IL or missing references) //IL_05a6: Expected O, but got Unknown //IL_09be: Unknown result type (might be due to invalid IL or missing references) //IL_09c3: Unknown result type (might be due to invalid IL or missing references) //IL_09d3: Unknown result type (might be due to invalid IL or missing references) //IL_09db: Unknown result type (might be due to invalid IL or missing references) //IL_09eb: Expected O, but got Unknown //IL_0e92: Unknown result type (might be due to invalid IL or missing references) //IL_0e9a: Unknown result type (might be due to invalid IL or missing references) //IL_05dc: Unknown result type (might be due to invalid IL or missing references) //IL_05e3: Expected O, but got Unknown //IL_060f: Unknown result type (might be due to invalid IL or missing references) //IL_0616: Expected O, but got Unknown //IL_0683: Unknown result type (might be due to invalid IL or missing references) //IL_068a: Expected O, but got Unknown //IL_06f7: Unknown result type (might be due to invalid IL or missing references) //IL_06fe: Expected O, but got Unknown //IL_076b: Unknown result type (might be due to invalid IL or missing references) //IL_0772: Expected O, but got Unknown //IL_07f3: Unknown result type (might be due to invalid IL or missing references) //IL_07fa: Expected O, but got Unknown //IL_090d: Unknown result type (might be due to invalid IL or missing references) //IL_0914: Expected O, but got Unknown //IL_0847: Unknown result type (might be due to invalid IL or missing references) //IL_084e: Expected O, but got Unknown //IL_0877: Unknown result type (might be due to invalid IL or missing references) //IL_087e: Expected O, but got Unknown AIActor officialEnemyByGuid = GetOfficialEnemyByGuid("1b5810fafbec445d89921a4efb4e42b7"); m_CachedTargetObject = expandSharedAssets1.LoadAsset("Poisbulord"); VFX_Poisbulord_Splash = expandSharedAssets1.LoadAsset("VFX_Poisbulord_Splash"); VFX_Poisbulord_Die_Big = expandSharedAssets1.LoadAsset("VFX_Poisbulord_Die_Big"); VFX_Poisbulord_Die_Small = expandSharedAssets1.LoadAsset("VFX_Poisbulord_Die_Small"); GameObject gameObject = ((Component)m_CachedTargetObject.transform.Find("shoot point")).gameObject; GameObject gameObject2 = ((Component)m_CachedTargetObject.transform.Find("splash vfx")).gameObject; ExpandUtility.DuplicateRigidBody(m_CachedTargetObject.AddComponent(), ((BraveBehaviour)officialEnemyByGuid).specRigidbody); if (!Object.op_Implicit((Object)(object)officialEnemyByGuid)) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for donor enemy is null!", false); } return; } AIActor val = m_CachedTargetObject.AddComponent(); ExpandUtility.DuplicateComponent(val, officialEnemyByGuid); ((GameActor)val).ActorName = "Poisbulord"; val.EnemyGuid = PoisbulordGUID; val.EnemyId = Random.Range(11000, 99999); ((GameActor)val).EffectResistances = (ActorEffectResistance[])(object)new ActorEffectResistance[1] { new ActorEffectResistance { resistAmount = 1f, resistType = (EffectResistanceType)2 } }; ExpandUtility.DuplicateComponent(m_CachedTargetObject.AddComponent(), ((BraveBehaviour)officialEnemyByGuid).bulletBank); ExpandUtility.DuplicateComponent(GameObjectExtensions.GetOrAddComponent(m_CachedTargetObject), ((BraveBehaviour)officialEnemyByGuid).hitEffectHandler); ExpandUtility.DuplicateComponent(m_CachedTargetObject.AddComponent(), ((BraveBehaviour)officialEnemyByGuid).healthHaver); ExpandUtility.DuplicateComponent(m_CachedTargetObject.AddComponent(), ((BraveBehaviour)officialEnemyByGuid).knockbackDoer); ExpandUtility.DuplicateSprite(m_CachedTargetObject.AddComponent(), ((Component)officialEnemyByGuid).gameObject.GetComponent()); ExpandUtility.GenerateSpriteAnimator(m_CachedTargetObject, ((BraveBehaviour)officialEnemyByGuid).spriteAnimator.Library, 8, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true, IsFrameBlendedAnimation: false, 0f, 0f); ExpandUtility.SetHealth(m_CachedTargetObject.GetComponent(), 1500f); tk2dSpriteAnimation library = ((BraveBehaviour)officialEnemyByGuid).spriteAnimator.Library; tk2dSpriteAnimation val2 = m_CachedTargetObject.AddComponent(); ExpandUtility.DuplicateComponent(val2, library); List list = new List(); tk2dSpriteAnimationClip[] clips = library.clips; foreach (tk2dSpriteAnimationClip sourceClip in clips) { list.Add(ExpandUtility.DuplicateAnimationClip(sourceClip)); } foreach (tk2dSpriteAnimationClip item in list) { tk2dSpriteAnimationFrame[] frames = item.frames; for (int i = 0; i < frames.Length; i++) { frames[i].spriteCollection = ExpandPrefabs.EXPoisbulordCollection.GetComponent(); } } if (list.Count > 0) { val2.clips = list.ToArray(); } m_CachedTargetObject.GetComponent().Library = val2; ExpandUtility.DuplicateComponent(m_CachedTargetObject.AddComponent(), ((BraveBehaviour)officialEnemyByGuid).aiAnimator); ExpandUtility.DuplicateComponent(m_CachedTargetObject.AddComponent(), ((BraveBehaviour)officialEnemyByGuid).visibilityManager); AIAnimator component = m_CachedTargetObject.GetComponent(); component.OtherVFX[0].anchorTransform = gameObject2.transform; NamedVFXPool obj = component.OtherVFX[0]; VFXPool val3 = new VFXPool(); val3.type = (VFXPoolType)4; VFXComplex[] array = new VFXComplex[1]; VFXComplex val4 = new VFXComplex(); val4.effects = (VFXObject[])(object)new VFXObject[1] { new VFXObject { effect = VFX_Poisbulord_Splash, orphaned = false, attached = false, persistsOnDeath = false, usesZHeight = false, zHeight = 0f, alignment = (VFXAlignment)0, destructible = false } }; array[0] = val4; val3.effects = (VFXComplex[])(object)array; obj.vfxPool = val3; GameObject effect = ((BraveBehaviour)officialEnemyByGuid).aiAnimator.OtherVFX[0].vfxPool.effects[0].effects[0].effect; ExpandUtility.DuplicateSprite(VFX_Poisbulord_Splash.AddComponent(), effect.GetComponent()); ExpandUtility.DuplicateComponent(VFX_Poisbulord_Splash.AddComponent(), effect.GetComponent()); tk2dSpriteAnimator component2 = VFX_Poisbulord_Splash.GetComponent(); component2.Library = val2; component2.DefaultClipId = 24; ExpandUtility.DuplicateComponent(VFX_Poisbulord_Splash.AddComponent(), effect.GetComponent()); BehaviorSpeculator val5 = m_CachedTargetObject.AddComponent(); val5.InstantFirstTick = false; val5.TickInterval = 0.1f; val5.PostAwakenDelay = 2f; val5.RemoveDelayOnReinforce = false; val5.OverrideStartingFacingDirection = false; val5.StartingFacingDirection = -90f; val5.SkipTimingDifferentiator = false; val5.OverrideBehaviors = new List(0); val5.TargetBehaviors = new List(); val5.MovementBehaviors = new List(); val5.AttackBehaviors = new List(); val5.OtherBehaviors = new List(0); ISerializedObject val6 = (ISerializedObject)(object)val5; val6.SerializedObjectReferences = new List(); val6.SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; val6.SerializedStateValues = new List(0); foreach (TargetBehaviorBase targetBehavior in ((BraveBehaviour)officialEnemyByGuid).behaviorSpeculator.TargetBehaviors) { val5.TargetBehaviors.Add(targetBehavior); } foreach (MovementBehaviorBase movementBehavior in ((BraveBehaviour)officialEnemyByGuid).behaviorSpeculator.MovementBehaviors) { val5.MovementBehaviors.Add(movementBehavior); } foreach (AttackBehaviorBase attackBehavior in ((BraveBehaviour)officialEnemyByGuid).behaviorSpeculator.AttackBehaviors) { if (!(attackBehavior is AttackBehaviorGroup)) { continue; } AttackBehaviorGroup val7 = (AttackBehaviorGroup)(object)((attackBehavior is AttackBehaviorGroup) ? attackBehavior : null); AttackBehaviorGroup val8 = new AttackBehaviorGroup(); val8.ShareCooldowns = val7.ShareCooldowns; val8.AttackBehaviors = new List(); foreach (AttackGroupItem attackBehavior2 in val7.AttackBehaviors) { AttackGroupItem val9 = new AttackGroupItem(); ExpandUtility.DuplicateComponent(val9, attackBehavior2); if (attackBehavior2.NickName == "Move and Shoot" && attackBehavior2.Behavior is ShootBehavior) { ShootBehavior val10 = new ShootBehavior(); AttackBehaviorBase behavior = attackBehavior2.Behavior; ExpandUtility.DuplicateComponent(val10, (behavior is ShootBehavior) ? behavior : null); val10.ShootPoint = gameObject; val6.SerializedObjectReferences.Add((Object)(object)val10.ShootPoint); val9.Behavior = (AttackBehaviorBase)(object)val10; val8.AttackBehaviors.Add(val9); } else if (attackBehavior2.NickName == "Bouncing Blob Bullets" && attackBehavior2.Behavior is ShootBehavior) { ShootBehavior val11 = new ShootBehavior(); AttackBehaviorBase behavior2 = attackBehavior2.Behavior; ExpandUtility.DuplicateComponent(val11, (behavior2 is ShootBehavior) ? behavior2 : null); val11.ShootPoint = gameObject; val6.SerializedObjectReferences.Add((Object)(object)val11.ShootPoint); val9.Behavior = (AttackBehaviorBase)(object)val11; val8.AttackBehaviors.Add(val9); } else if (attackBehavior2.NickName == "Firehose" && attackBehavior2.Behavior is ShootBehavior) { ShootBehavior val12 = new ShootBehavior(); AttackBehaviorBase behavior3 = attackBehavior2.Behavior; ExpandUtility.DuplicateComponent(val12, (behavior3 is ShootBehavior) ? behavior3 : null); val12.ShootPoint = gameObject; val6.SerializedObjectReferences.Add((Object)(object)val12.ShootPoint); val9.Behavior = (AttackBehaviorBase)(object)val12; val8.AttackBehaviors.Add(val9); } else if (attackBehavior2.NickName == "Moving Spray" && attackBehavior2.Behavior is ShootBehavior) { ShootBehavior val13 = new ShootBehavior(); AttackBehaviorBase behavior4 = attackBehavior2.Behavior; ExpandUtility.DuplicateComponent(val13, (behavior4 is ShootBehavior) ? behavior4 : null); val13.ShootPoint = gameObject; val6.SerializedObjectReferences.Add((Object)(object)val13.ShootPoint); val9.Behavior = (AttackBehaviorBase)(object)val13; val8.AttackBehaviors.Add(val9); } else if (attackBehavior2.NickName == "Split Apart" && attackBehavior2.Behavior is SequentialAttackBehaviorGroup) { AttackBehaviorBase behavior5 = attackBehavior2.Behavior; SequentialAttackBehaviorGroup val14 = (SequentialAttackBehaviorGroup)(object)((behavior5 is SequentialAttackBehaviorGroup) ? behavior5 : null); SequentialAttackBehaviorGroup val15 = new SequentialAttackBehaviorGroup(); val15.OverrideCooldowns = val14.OverrideCooldowns; val15.RunInClass = val14.RunInClass; val15.AttackBehaviors = new List(); foreach (AttackBehaviorBase attackBehavior3 in val14.AttackBehaviors) { if (attackBehavior3 is AttackMoveBehavior) { AttackMoveBehavior val16 = new AttackMoveBehavior(); ExpandUtility.DuplicateComponent(val16, (attackBehavior3 is AttackMoveBehavior) ? attackBehavior3 : null); val15.AttackBehaviors.Add((AttackBehaviorBase)(object)val16); } else if (attackBehavior3 is TransformBehavior) { TransformBehavior val17 = new TransformBehavior(); ExpandUtility.DuplicateComponent(val17, (attackBehavior3 is TransformBehavior) ? attackBehavior3 : null); val17.shootPoint = gameObject; val6.SerializedObjectReferences.Add((Object)(object)val17.shootPoint); val15.AttackBehaviors.Add((AttackBehaviorBase)(object)val17); } } val9.Behavior = (AttackBehaviorBase)(object)val15; val8.AttackBehaviors.Add(val9); } else if (attackBehavior2.NickName == "Slam Burst " && attackBehavior2.Behavior is ShootBehavior) { ShootBehavior val18 = new ShootBehavior(); AttackBehaviorBase behavior6 = attackBehavior2.Behavior; ExpandUtility.DuplicateComponent(val18, (behavior6 is ShootBehavior) ? behavior6 : null); val18.ShootPoint = gameObject; val6.SerializedObjectReferences.Add((Object)(object)val18.ShootPoint); val9.Behavior = (AttackBehaviorBase)(object)val18; val8.AttackBehaviors.Add(val9); } } val5.AttackBehaviors.Add((AttackBehaviorBase)(object)val8); } string bossNameString = "POISBULORD"; GenericIntroDoer obj2 = m_CachedTargetObject.AddComponent(); ExpandUtility.DuplicateComponent(obj2, m_CachedTargetObject.GetComponent()); obj2.portraitSlideSettings = new PortraitSlideSettings { bossArtSprite = (Texture)(object)ExpandAssets.LoadAsset("Poisbulord_boss_Bosscard_001"), bossNameString = bossNameString, bossSubtitleString = "FIVE-STAR GENERAL" }; m_CachedTargetObject.AddComponent(); BlobulordDeathController component3 = ((Component)officialEnemyByGuid).gameObject.GetComponent(); BlobulordDeathController obj3 = m_CachedTargetObject.AddComponent(); ((Object)obj3).name = string.Empty; obj3.bigExplosionVfx = VFX_Poisbulord_Die_Big; obj3.explosionVfx = new List { VFX_Poisbulord_Die_Small }; obj3.explosionMidDelay = 0.12f; obj3.explosionCount = 25; obj3.finalScale = 0.2f; obj3.crawlerSpawnDelay = 0.3f; obj3.crawlerGuid = PoisbulordCrawlerGUID; ExpandUtility.DuplicateSprite(VFX_Poisbulord_Die_Big.AddComponent(), component3.bigExplosionVfx.GetComponent()); ExpandUtility.DuplicateComponent(VFX_Poisbulord_Die_Big.AddComponent(), component3.bigExplosionVfx.GetComponent()); tk2dSpriteAnimator component4 = VFX_Poisbulord_Die_Big.GetComponent(); component4.Library = val2; component4.DefaultClipId = 25; ExpandUtility.DuplicateComponent(VFX_Poisbulord_Die_Big.AddComponent(), component3.bigExplosionVfx.GetComponent()); ExpandUtility.DuplicateSprite(VFX_Poisbulord_Die_Small.AddComponent(), component3.explosionVfx[0].GetComponent()); ExpandUtility.DuplicateComponent(VFX_Poisbulord_Die_Small.AddComponent(), component3.explosionVfx[0].GetComponent()); tk2dSpriteAnimator component5 = VFX_Poisbulord_Die_Small.GetComponent(); component5.Library = val2; component5.DefaultClipId = 26; ExpandUtility.DuplicateComponent(VFX_Poisbulord_Die_Small.AddComponent(), component3.explosionVfx[0].GetComponent()); tk2dSpriteAttachPoint obj4 = m_CachedTargetObject.AddComponent(); obj4.attachPoints = new List { gameObject.transform }; obj4.deactivateUnusedAttachPoints = false; obj4.disableEmissionOnUnusedParticleSystems = false; obj4.ignorePosition = false; obj4.ignoreScale = false; obj4.ignoreRotation = false; obj4.centerUnusedAttachPoints = false; GoopDoer[] components = ((Component)officialEnemyByGuid).gameObject.GetComponents(); GoopDoer val19 = m_CachedTargetObject.AddComponent(); GoopDoer obj5 = m_CachedTargetObject.AddComponent(); ExpandUtility.DuplicateComponent(val19, components[0]); ExpandUtility.DuplicateComponent(obj5, components[1]); val19.goopDefinition = ExpandAssets.LoadOfficialAsset("Poison Goop", ExpandAssets.AssetSource.SharedAuto1); obj5.goopDefinition = val19.goopDefinition; obj5.DispersalParticleSystemPrefab = components[1].DispersalParticleSystemPrefab; Poisbulord_Poisbulon_Projectile = expandSharedAssets1.LoadAsset("Poisbulord_Poisbulon_Projectile"); Poisbulord_Poisbuloid_Projectile = expandSharedAssets1.LoadAsset("Poisbulord_Poisbuloid_Projectile"); ExpandUtility.DuplicateComponent(Poisbulord_Poisbulon_Projectile.AddComponent(), ((BraveBehaviour)officialEnemyByGuid).bulletBank.Bullets[4].BulletObject.GetComponent()); ExpandUtility.DuplicateComponent(Poisbulord_Poisbuloid_Projectile.AddComponent(), ((BraveBehaviour)officialEnemyByGuid).bulletBank.Bullets[5].BulletObject.GetComponent()); ExpandUtility.DuplicateComponent(Poisbulord_Poisbulon_Projectile.AddComponent(), ((BraveBehaviour)officialEnemyByGuid).bulletBank.Bullets[4].BulletObject.GetComponent()); ExpandUtility.DuplicateComponent(Poisbulord_Poisbuloid_Projectile.AddComponent(), ((BraveBehaviour)officialEnemyByGuid).bulletBank.Bullets[5].BulletObject.GetComponent()); ExpandUtility.DuplicateComponent(((Component)Poisbulord_Poisbulon_Projectile.transform.Find("Sprite")).gameObject.AddComponent(), ((Component)((BraveBehaviour)officialEnemyByGuid).bulletBank.Bullets[4].BulletObject.transform.Find("Sprite")).gameObject.GetComponent()); ExpandUtility.DuplicateComponent(((Component)Poisbulord_Poisbuloid_Projectile.transform.Find("Sprite")).gameObject.AddComponent(), ((Component)((BraveBehaviour)officialEnemyByGuid).bulletBank.Bullets[5].BulletObject.transform.Find("Sprite")).gameObject.GetComponent()); ExpandUtility.DuplicateComponent(((Component)Poisbulord_Poisbulon_Projectile.transform.Find("Sprite")).gameObject.AddComponent(), ((Component)((BraveBehaviour)officialEnemyByGuid).bulletBank.Bullets[4].BulletObject.transform.Find("Sprite")).gameObject.GetComponent()); ExpandUtility.DuplicateComponent(((Component)Poisbulord_Poisbuloid_Projectile.transform.Find("Sprite")).gameObject.AddComponent(), ((Component)((BraveBehaviour)officialEnemyByGuid).bulletBank.Bullets[5].BulletObject.transform.Find("Sprite")).gameObject.GetComponent()); GoopDoer obj6 = ((Component)Poisbulord_Poisbulon_Projectile.transform.Find("Sprite")).gameObject.AddComponent(); GoopDoer val20 = ((Component)Poisbulord_Poisbuloid_Projectile.transform.Find("Sprite")).gameObject.AddComponent(); ExpandUtility.DuplicateComponent(obj6, components[0]); ExpandUtility.DuplicateComponent(val20, components[0]); obj6.goopDefinition = val19.goopDefinition; val20.goopDefinition = val19.goopDefinition; obj6.positionSource = (PositionSource)0; val20.positionSource = (PositionSource)0; obj6.updateFrequency = 0.05f; val20.updateFrequency = 0.05f; obj6.defaultGoopRadius = 0.8f; val20.defaultGoopRadius = 0.6f; ((BraveBehaviour)val).bulletBank.Bullets[4].BulletObject = Poisbulord_Poisbulon_Projectile; ((BraveBehaviour)val).bulletBank.Bullets[5].BulletObject = Poisbulord_Poisbuloid_Projectile; AddEnemyToDatabaseAndAmmonomicon(val, PoisbulordGUID, ExpandAmmonomiconDatabase.Poisbulord); officialEnemyByGuid = null; } public static void BuildPoisbulordCrawlerPrefab(AssetBundle expandSharedAssets1, out GameObject m_CachedTargetObject) { //IL_008b: 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) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) AIActor officialEnemyByGuid = GetOfficialEnemyByGuid("d1c9781fdac54d9e8498ed89210a0238"); m_CachedTargetObject = expandSharedAssets1.LoadAsset("PoisbulordCrawler"); ExpandUtility.DuplicateRigidBody(m_CachedTargetObject.AddComponent(), ((BraveBehaviour)officialEnemyByGuid).specRigidbody); if (!Object.op_Implicit((Object)(object)officialEnemyByGuid)) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for donor enemy is null!", false); } return; } AIActor obj = m_CachedTargetObject.AddComponent(); ExpandUtility.DuplicateComponent(obj, officialEnemyByGuid); ((GameActor)obj).ActorName = "Poisbulord Remains"; obj.EnemyGuid = PoisbulordCrawlerGUID; obj.EnemyId = Random.Range(11000, 99999); ((GameActor)obj).EffectResistances = (ActorEffectResistance[])(object)new ActorEffectResistance[1] { new ActorEffectResistance { resistAmount = 1f, resistType = (EffectResistanceType)2 } }; ExpandUtility.DuplicateComponent(GameObjectExtensions.GetOrAddComponent(m_CachedTargetObject), ((BraveBehaviour)officialEnemyByGuid).hitEffectHandler); ExpandUtility.DuplicateComponent(m_CachedTargetObject.AddComponent(), ((BraveBehaviour)officialEnemyByGuid).healthHaver); ExpandUtility.DuplicateComponent(m_CachedTargetObject.AddComponent(), ((BraveBehaviour)officialEnemyByGuid).knockbackDoer); ExpandUtility.DuplicateSprite(m_CachedTargetObject.AddComponent(), ((Component)officialEnemyByGuid).gameObject.GetComponent()); ExpandUtility.GenerateSpriteAnimator(m_CachedTargetObject, ((BraveBehaviour)officialEnemyByGuid).spriteAnimator.Library, 12, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true, IsFrameBlendedAnimation: false, 0f, 0f); tk2dSpriteAnimation library = ((BraveBehaviour)officialEnemyByGuid).spriteAnimator.Library; tk2dSpriteAnimation val = m_CachedTargetObject.AddComponent(); ExpandUtility.DuplicateComponent(val, library); List list = new List(); tk2dSpriteAnimationClip[] clips = library.clips; foreach (tk2dSpriteAnimationClip sourceClip in clips) { list.Add(ExpandUtility.DuplicateAnimationClip(sourceClip)); } foreach (tk2dSpriteAnimationClip item in list) { tk2dSpriteAnimationFrame[] frames = item.frames; for (int i = 0; i < frames.Length; i++) { frames[i].spriteCollection = ExpandPrefabs.EXPoisbulordCollection.GetComponent(); } } if (list.Count > 0) { val.clips = list.ToArray(); } m_CachedTargetObject.GetComponent().Library = val; ExpandUtility.DuplicateComponent(m_CachedTargetObject.AddComponent(), ((BraveBehaviour)officialEnemyByGuid).aiAnimator); ExpandUtility.DuplicateComponent(m_CachedTargetObject.AddComponent(), ((BraveBehaviour)officialEnemyByGuid).visibilityManager); BehaviorSpeculator val2 = m_CachedTargetObject.AddComponent(); val2.InstantFirstTick = false; val2.TickInterval = 0.1f; val2.PostAwakenDelay = 0f; val2.RemoveDelayOnReinforce = false; val2.OverrideStartingFacingDirection = false; val2.StartingFacingDirection = -90f; val2.SkipTimingDifferentiator = false; val2.OverrideBehaviors = new List(0); val2.TargetBehaviors = new List(); val2.MovementBehaviors = new List(); val2.AttackBehaviors = new List(0); val2.OtherBehaviors = new List(0); ((ISerializedObject)val2).SerializedObjectReferences = new List(); ((ISerializedObject)val2).SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; ((ISerializedObject)val2).SerializedStateValues = new List(0); foreach (TargetBehaviorBase targetBehavior in ((BraveBehaviour)officialEnemyByGuid).behaviorSpeculator.TargetBehaviors) { val2.TargetBehaviors.Add(targetBehavior); } foreach (MovementBehaviorBase movementBehavior in ((BraveBehaviour)officialEnemyByGuid).behaviorSpeculator.MovementBehaviors) { val2.MovementBehaviors.Add(movementBehavior); } GoopDoer[] components = ((Component)GetOfficialEnemyByGuid("1b5810fafbec445d89921a4efb4e42b7")).gameObject.GetComponents(); GoopDoer obj2 = m_CachedTargetObject.AddComponent(); ExpandUtility.DuplicateComponent(obj2, components[0]); obj2.goopDefinition = ExpandAssets.LoadOfficialAsset("Poison Goop", ExpandAssets.AssetSource.SharedAuto1); obj2.DispersalParticleSystemPrefab = components[1].DispersalParticleSystemPrefab; obj2.defaultGoopRadius = 0.5f; AddEnemyToDatabase(m_CachedTargetObject, PoisbulordCrawlerGUID); officialEnemyByGuid = null; } private static void m_GenerateCronenbergDebris(GameObject targetObject, GoopDefinition goopSource) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002c: 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_0042: 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_005d: Expected O, but got Unknown //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007f: 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_013c: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) DebrisObject obj = targetObject.AddComponent(); ((EphemeralObject)obj).Priority = (EphemeralPriority)3; obj.audioEventName = string.Empty; obj.playAnimationOnTrigger = false; obj.usesDirectionalFallAnimations = false; obj.directionalAnimationData = new DebrisDirectionalAnimationInfo { fallDown = string.Empty, fallLeft = string.Empty, fallRight = string.Empty, fallUp = string.Empty }; obj.breaksOnFall = true; obj.breakOnFallChance = 1f; obj.changesCollisionLayer = false; obj.groundedCollisionLayer = (CollisionLayer)5; obj.followupBehavior = (DebrisFollowupAction)0; obj.collisionStopsBullets = false; obj.animatePitFall = false; obj.pitFallSplash = true; obj.inertialMass = 1f; obj.motionMultiplier = 1f; obj.canRotate = true; obj.angularVelocity = 10f; obj.angularVelocityVariance = 3f; obj.bounceCount = 1; obj.additionalBounceEnglish = 0f; obj.decayOnBounce = 0.5f; obj.killTranslationOnBounce = false; obj.usesLifespan = false; obj.lifespanMin = 1f; obj.lifespanMax = 1f; obj.shouldUseSRBMotion = false; obj.removeSRBOnGrounded = false; obj.placementOptions = new DebrisPlacementOptions { canBeRotated = true, canBeFlippedHorizontally = false, canBeFlippedVertically = false }; obj.DoesGoopOnRest = true; obj.AssignedGoop = goopSource; obj.GoopRadius = 1f; obj.additionalHeightBoost = 0f; obj.AssignFinalWorldDepth(-1.5f); obj.ForceUpdateIfDisabled = false; } } [HarmonyPatch] public class ExpandDungeonPrefabs { public static Dictionary dungeonDatabase; public static GameObject Base_Space; public static GameObject Base_Jungle; public static GameObject Base_Belly; public static GameObject Base_West; public static GameObject Base_Phobos; public static GameObject Base_Office; public static GameObject Base_Future; public static GameObject Base_BackRooms; public static Hook getOrLoadByName_Hook; public static tk2dSpriteCollectionData ENV_Tileset_Jungle(GameObject TargetObject, Texture2D tileSetTexture, AssetBundle sharedAssets, AssetBundle expandSharedAssets1) { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Expected O, but got Unknown tk2dSpriteCollectionData val = TargetObject.AddComponent(); JsonUtility.FromJsonOverwrite(ExpandAssets.DeserializeJSONDataFromAssetBundle(expandSharedAssets1, "TilesetData/Jungle/ENV_Tileset_Jungle"), (object)val); Material val2 = new Material(sharedAssets.LoadAsset("BraveLitTk2dCustomFalloffCutout")); val2.mainTexture = (Texture)(object)tileSetTexture; val2.SetFloat("_Cutoff", 0.5f); val2.SetFloat("_MaxValue", 1f); val2.SetFloat("_Perpendicular", 1f); Material val3 = new Material(sharedAssets.LoadAsset("BraveLitTK2dCustomFalloff")); val3.mainTexture = (Texture)(object)tileSetTexture; val3.SetFloat("_Cutoff", 0.5f); val3.SetFloat("_Perpendicular", 1f); val.materials = (Material[])(object)new Material[2] { val2, val3 }; val.textures = (Texture[])(object)new Texture[1] { (Texture)tileSetTexture }; string[] linesFromAssetBundle = ExpandAssets.GetLinesFromAssetBundle(expandSharedAssets1, "ExpandSerializedData/TilesetData/Jungle/ENV_Tileset_Jungle_MaterialTable"); for (int i = 0; i < val.spriteDefinitions.Length; i++) { if (linesFromAssetBundle[i].Contains("lit cutout perp")) { val.spriteDefinitions[i].material = val2; continue; } if (linesFromAssetBundle[i].Contains("lit blend")) { val.spriteDefinitions[i].material = val3; continue; } Debug.Log((object)("[ExpandTheGungeon] ERROR: sprite id " + i + " did not have a matching material name in lookup table!")); val.spriteDefinitions[i].material = val2; } return val; } public static tk2dSpriteCollectionData ENV_Tileset_Belly(GameObject TargetObject, Texture2D tileSetTexture, AssetBundle sharedAssets, AssetBundle expandSharedAssets1) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Expected O, but got Unknown //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Expected O, but got Unknown //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Expected O, but got Unknown tk2dSpriteCollectionData val = TargetObject.AddComponent(); Material val2 = new Material(sharedAssets.LoadAsset("BraveLitTk2dCustomFalloffCutout")); val2.mainTexture = (Texture)(object)tileSetTexture; val2.SetFloat("_Cutoff", 0.5f); val2.SetFloat("_MaxValue", 1f); val2.SetFloat("_Perpendicular", 1f); Material val3 = new Material(sharedAssets.LoadAsset("BraveLitTK2dCustomFalloff")); val3.mainTexture = (Texture)(object)tileSetTexture; val3.SetFloat("_Cutoff", 0.5f); val3.SetFloat("_Perpendicular", 1f); Material val4 = new Material(sharedAssets.LoadAsset("BraveUnlitCutout")); val4.mainTexture = (Texture)(object)tileSetTexture; val4.SetFloat("_Cutoff", 0.5f); val4.SetFloat("_Perpendicular", 1f); JsonUtility.FromJsonOverwrite(ExpandAssets.DeserializeJSONDataFromAssetBundle(expandSharedAssets1, "TilesetData/Belly/ENV_Tileset_Belly"), (object)val); string[] linesFromAssetBundle = ExpandAssets.GetLinesFromAssetBundle(expandSharedAssets1, "ExpandSerializedData/TilesetData/Belly/ENV_Tileset_Belly_MaterialTable"); for (int i = 0; i < val.spriteDefinitions.Length; i++) { if (linesFromAssetBundle[i].Contains("lit cutout")) { val.spriteDefinitions[i].material = val2; continue; } if (linesFromAssetBundle[i].Contains("lit blend")) { val.spriteDefinitions[i].material = val3; continue; } if (linesFromAssetBundle[i].Contains("unlit cutout")) { val.spriteDefinitions[i].material = val4; continue; } Debug.Log((object)("[ExpandTheGungeon] ERROR: sprite id " + i + " did not have a matching material name in lookup table!")); val.spriteDefinitions[i].material = val2; } val.materials = (Material[])(object)new Material[3] { val2, val3, val4 }; val.textures = (Texture[])(object)new Texture[1] { (Texture)tileSetTexture }; sharedAssets = null; return val; } public static tk2dSpriteCollectionData ENV_Tileset_West(GameObject TargetObject, Texture2D tileSetTexture, AssetBundle sharedAssets, AssetBundle expandSharedAssets1) { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Expected O, but got Unknown //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Expected O, but got Unknown tk2dSpriteCollectionData val = TargetObject.AddComponent(); JsonUtility.FromJsonOverwrite(ExpandAssets.DeserializeJSONDataFromAssetBundle(expandSharedAssets1, "TilesetData/West/ENV_Tileset_West"), (object)val); Material val2 = new Material(sharedAssets.LoadAsset("BraveLitTk2dCustomFalloffCutout")); Material val3 = new Material(sharedAssets.LoadAsset("BraveLitTK2dCustomFalloff")); Material val4 = new Material(sharedAssets.LoadAsset("BraveUnlitCutout")); val2.mainTexture = (Texture)(object)tileSetTexture; val2.SetFloat("_Cutoff", 0.5f); val2.SetFloat("_MaxValue", 1f); val2.SetFloat("_Perpendicular", 1f); val3.mainTexture = (Texture)(object)tileSetTexture; val3.SetFloat("_Cutoff", 0.5f); val3.SetFloat("_Perpendicular", 1f); val4.mainTexture = (Texture)(object)tileSetTexture; val4.SetFloat("_Cutoff", 0.5f); val4.SetFloat("_Perpendicular", 1f); string[] linesFromAssetBundle = ExpandAssets.GetLinesFromAssetBundle(expandSharedAssets1, "ExpandSerializedData/TilesetData/West/ENV_Tileset_West_MaterialTable"); for (int i = 0; i < val.spriteDefinitions.Length; i++) { if (linesFromAssetBundle[i].Contains("lit cutout")) { val.spriteDefinitions[i].material = val2; continue; } if (linesFromAssetBundle[i].Contains("lit blend")) { val.spriteDefinitions[i].material = val3; continue; } if (linesFromAssetBundle[i].Contains("unlit transparent")) { val.spriteDefinitions[i].material = val4; continue; } Debug.Log((object)("[ExpandTheGungeon] ERROR: sprite id " + i + " did not have a matching material name in lookup table!")); val.spriteDefinitions[i].material = val2; } val.materials = (Material[])(object)new Material[3] { val2, val3, val4 }; val.textures = (Texture[])(object)new Texture[1] { (Texture)tileSetTexture }; sharedAssets = null; return val; } public static tk2dSpriteCollectionData ENV_Tileset_Phobos(GameObject TargetObject, Texture2D tileSetTexture, AssetBundle sharedAssets, AssetBundle expandSharedAssets1) { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Expected O, but got Unknown //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Expected O, but got Unknown tk2dSpriteCollectionData val = TargetObject.AddComponent(); JsonUtility.FromJsonOverwrite(ExpandAssets.DeserializeJSONDataFromAssetBundle(expandSharedAssets1, "TilesetData/Phobos/ENV_Tileset_Phobos"), (object)val); Material val2 = new Material(sharedAssets.LoadAsset("BraveLitTk2dCustomFalloffCutout")); Material val3 = new Material(sharedAssets.LoadAsset("BraveLitTK2dCustomFalloff")); Material val4 = new Material(sharedAssets.LoadAsset("BraveUnlitCutout")); val2.mainTexture = (Texture)(object)tileSetTexture; val2.SetFloat("_Cutoff", 0.5f); val2.SetFloat("_MaxValue", 1f); val2.SetFloat("_Perpendicular", 1f); val3.mainTexture = (Texture)(object)tileSetTexture; val3.mainTexture = (Texture)(object)tileSetTexture; val3.SetFloat("_Cutoff", 0.5f); val3.SetFloat("_Perpendicular", 1f); val4.mainTexture = (Texture)(object)tileSetTexture; val4.SetFloat("_Cutoff", 0.5f); val4.SetFloat("_Perpendicular", 1f); string[] linesFromAssetBundle = ExpandAssets.GetLinesFromAssetBundle(expandSharedAssets1, "ExpandSerializedData/TilesetData/Phobos/ENV_Tileset_Phobos_MaterialTable"); for (int i = 0; i < val.spriteDefinitions.Length; i++) { if (linesFromAssetBundle[i].Contains("lit cutout")) { val.spriteDefinitions[i].material = val2; continue; } if (linesFromAssetBundle[i].Contains("lit blend")) { val.spriteDefinitions[i].material = val3; continue; } if (linesFromAssetBundle[i].Contains("unlit")) { val.spriteDefinitions[i].material = val4; continue; } Debug.Log((object)("[ExpandTheGungeon] ERROR: sprite id " + i + " did not have a matching material name in lookup table!")); val.spriteDefinitions[i].material = val2; } val.materials = (Material[])(object)new Material[3] { val2, val3, val4 }; val.textures = (Texture[])(object)new Texture[1] { (Texture)tileSetTexture }; sharedAssets = null; return val; } public static tk2dSpriteCollectionData ENV_Tileset_Office(GameObject TargetObject, Texture2D tileSetTexture, AssetBundle sharedAssets, AssetBundle expandSharedAssets1) { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Expected O, but got Unknown //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Expected O, but got Unknown tk2dSpriteCollectionData val = TargetObject.AddComponent(); JsonUtility.FromJsonOverwrite(ExpandAssets.DeserializeJSONDataFromAssetBundle(expandSharedAssets1, "TilesetData/Nakatomi/ENV_Tileset_Nakatomi"), (object)val); Material val2 = new Material(sharedAssets.LoadAsset("BraveLitTk2dCustomFalloffCutout")); Material val3 = new Material(sharedAssets.LoadAsset("BraveLitTK2dCustomFalloff")); Material val4 = new Material(sharedAssets.LoadAsset("BraveUnlitCutout")); val2.mainTexture = (Texture)(object)tileSetTexture; val2.SetFloat("_Cutoff", 0.5f); val2.SetFloat("_MaxValue", 1f); val2.SetFloat("_Perpendicular", 1f); val3.mainTexture = (Texture)(object)tileSetTexture; val3.SetFloat("_Cutoff", 0.5f); val3.SetFloat("_Perpendicular", 1f); val4.mainTexture = (Texture)(object)tileSetTexture; val4.SetFloat("_Cutoff", 0.5f); val4.SetFloat("_Perpendicular", 1f); string[] linesFromAssetBundle = ExpandAssets.GetLinesFromAssetBundle(expandSharedAssets1, "ExpandSerializedData/TilesetData/Nakatomi/ENV_Tileset_Nakatomi_MaterialTable"); for (int i = 0; i < val.spriteDefinitions.Length; i++) { if (linesFromAssetBundle[i].Contains("lit cutout")) { val.spriteDefinitions[i].material = val2; continue; } if (linesFromAssetBundle[i].Contains("lit blend")) { val.spriteDefinitions[i].material = val3; continue; } if (linesFromAssetBundle[i].Contains("unlit")) { val.spriteDefinitions[i].material = val4; continue; } Debug.Log((object)("[ExpandTheGungeon] ERROR: sprite id " + i + " did not have a matching material name in lookup table!")); val.spriteDefinitions[i].material = val2; } val.materials = (Material[])(object)new Material[3] { val2, val3, val4 }; val.textures = (Texture[])(object)new Texture[1] { (Texture)tileSetTexture }; sharedAssets = null; return val; } [HarmonyPatch(typeof(DungeonDatabase), "GetOrLoadByName", new Type[] { typeof(string) })] [HarmonyPrefix] public static bool GetOrLoadByNamePatch(DungeonDatabase __instance, string name, ref Dungeon __result) { if (dungeonDatabase == null) { return true; } if (!dungeonDatabase.TryGetValue(name.ToLower(), out var value)) { return true; } __result = value; return false; } public static Dungeon LoadOfficialDungeonPrefab(string name) { AssetBundle obj = ResourceManager.LoadAssetBundle("dungeons/" + name.ToLower()); DebugTime.RecordStartTime(); Dungeon component = obj.LoadAsset(name).GetComponent(); DebugTime.Log("AssetBundle.LoadAsset({0})", new object[1] { name }); return component; } public static void InitDungoenPrefabs(AssetBundle expandSharedAuto1, AssetBundle sharedAssets1, AssetBundle sharedAssets2, AssetBundle braveResources) { Base_Space = expandSharedAuto1.LoadAsset("Base_Space"); Base_Jungle = expandSharedAuto1.LoadAsset("Base_Jungle"); Base_Belly = expandSharedAuto1.LoadAsset("Base_Belly"); Base_West = expandSharedAuto1.LoadAsset("Base_West"); Base_Phobos = expandSharedAuto1.LoadAsset("Base_Phobos"); Base_Office = expandSharedAuto1.LoadAsset("Base_Office"); Base_Future = expandSharedAuto1.LoadAsset("Base_Future"); Base_BackRooms = expandSharedAuto1.LoadAsset("Base_BackRooms"); InitSpaceDungeon(Base_Space, LoadOfficialDungeonPrefab("Base_ResourcefulRat")); InitJungleDungeon(expandSharedAuto1, braveResources, sharedAssets2, Base_Jungle, LoadOfficialDungeonPrefab("Base_ResourcefulRat")); InitBellyDungeon(expandSharedAuto1, sharedAssets1, sharedAssets2, Base_Belly, LoadOfficialDungeonPrefab("Base_ResourcefulRat")); InitWestDungeon(expandSharedAuto1, sharedAssets2, Base_West, LoadOfficialDungeonPrefab("Base_Gungeon")); InitPhobosDungeon(expandSharedAuto1, sharedAssets2, Base_Phobos, LoadOfficialDungeonPrefab("Base_Gungeon")); InitOfficeDungeon(expandSharedAuto1, sharedAssets2, Base_Office, LoadOfficialDungeonPrefab("Base_Gungeon")); InitFutureDungeon(sharedAssets2, Base_Future, LoadOfficialDungeonPrefab("Base_Nakatomi")); InitBackRoomsDungeon(expandSharedAuto1, sharedAssets2, Base_BackRooms, LoadOfficialDungeonPrefab("Base_Gungeon")); dungeonDatabase = new Dictionary { ["base_space"] = Base_Space.GetComponent(), ["base_jungle"] = Base_Jungle.GetComponent(), ["base_belly"] = Base_Belly.GetComponent(), ["base_west"] = Base_West.GetComponent(), ["base_phobos"] = Base_Phobos.GetComponent(), ["base_office"] = Base_Office.GetComponent(), ["base_future"] = Base_Future.GetComponent(), ["base_backrooms"] = Base_BackRooms.GetComponent() }; } public static void InitFloorDefinitions(GameManager gameManager) { //IL_037d: Unknown result type (might be due to invalid IL or missing references) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Unknown result type (might be due to invalid IL or missing references) //IL_0398: Unknown result type (might be due to invalid IL or missing references) //IL_03a3: Unknown result type (might be due to invalid IL or missing references) //IL_03ae: Unknown result type (might be due to invalid IL or missing references) //IL_03b9: Unknown result type (might be due to invalid IL or missing references) //IL_03c4: Unknown result type (might be due to invalid IL or missing references) //IL_03cf: Unknown result type (might be due to invalid IL or missing references) //IL_03db: Unknown result type (might be due to invalid IL or missing references) //IL_03ec: Expected O, but got Unknown //IL_03f5: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_0405: Unknown result type (might be due to invalid IL or missing references) //IL_0410: Unknown result type (might be due to invalid IL or missing references) //IL_041b: Unknown result type (might be due to invalid IL or missing references) //IL_0426: Unknown result type (might be due to invalid IL or missing references) //IL_0431: Unknown result type (might be due to invalid IL or missing references) //IL_043c: Unknown result type (might be due to invalid IL or missing references) //IL_0447: Unknown result type (might be due to invalid IL or missing references) //IL_0453: Unknown result type (might be due to invalid IL or missing references) //IL_0464: Expected O, but got Unknown //IL_046d: Unknown result type (might be due to invalid IL or missing references) //IL_0472: Unknown result type (might be due to invalid IL or missing references) //IL_047d: Unknown result type (might be due to invalid IL or missing references) //IL_0488: Unknown result type (might be due to invalid IL or missing references) //IL_0493: Unknown result type (might be due to invalid IL or missing references) //IL_049e: Unknown result type (might be due to invalid IL or missing references) //IL_04a9: Unknown result type (might be due to invalid IL or missing references) //IL_04b4: Unknown result type (might be due to invalid IL or missing references) //IL_04bf: Unknown result type (might be due to invalid IL or missing references) //IL_04cb: Unknown result type (might be due to invalid IL or missing references) //IL_04dc: Expected O, but got Unknown if (!Object.op_Implicit((Object)(object)gameManager)) { return; } bool flag = false; bool flag2 = false; bool flag3 = false; if (gameManager.customFloors == null) { return; } foreach (GameLevelDefinition customFloor in gameManager.customFloors) { if (!Object.op_Implicit((Object)(object)gameManager)) { return; } switch (customFloor.dungeonSceneName.ToLower()) { case "tt_jungle": customFloor.priceMultiplier = 1.2f; customFloor.secretDoorHealthMultiplier = 1f; customFloor.enemyHealthMultiplier = 1.3333f; customFloor.damageCap = 300f; customFloor.bossDpsCap = 42f; customFloor.flowEntries = new List(0); customFloor.predefinedSeeds = new List(0); break; case "tt_belly": customFloor.priceMultiplier = 1.4f; customFloor.secretDoorHealthMultiplier = 1f; customFloor.enemyHealthMultiplier = 1.6666f; customFloor.damageCap = 300f; customFloor.bossDpsCap = 60f; customFloor.flowEntries = new List(0); customFloor.predefinedSeeds = new List(0); break; case "tt_west": customFloor.priceMultiplier = 2f; customFloor.secretDoorHealthMultiplier = 1f; customFloor.enemyHealthMultiplier = 2.1f; customFloor.damageCap = 300f; customFloor.bossDpsCap = 78f; customFloor.flowEntries = new List(0); customFloor.predefinedSeeds = new List(0); break; case "tt_phobos": customFloor.priceMultiplier = 1.4f; customFloor.secretDoorHealthMultiplier = 1f; customFloor.enemyHealthMultiplier = 1.7f; customFloor.damageCap = 300f; customFloor.bossDpsCap = 60f; customFloor.flowEntries = new List(0); customFloor.predefinedSeeds = new List(0); break; case "tt_future": customFloor.priceMultiplier = 1.2f; customFloor.secretDoorHealthMultiplier = 1f; customFloor.enemyHealthMultiplier = 1.1f; customFloor.damageCap = 300f; customFloor.bossDpsCap = 42f; customFloor.flowEntries = new List(0); customFloor.predefinedSeeds = new List(0); break; case "tt_office": flag2 = true; break; case "tt_space": flag = true; break; case "tt_backrooms": flag3 = true; break; } } if (!flag) { gameManager.customFloors.Add(new GameLevelDefinition { dungeonSceneName = "tt_space", dungeonPrefabPath = "Base_Space", priceMultiplier = 1.4f, secretDoorHealthMultiplier = 1f, enemyHealthMultiplier = 1.7f, damageCap = 300f, bossDpsCap = 60f, flowEntries = new List(0), predefinedSeeds = new List(0) }); } if (!flag2) { gameManager.customFloors.Add(new GameLevelDefinition { dungeonSceneName = "tt_office", dungeonPrefabPath = "Base_Office", priceMultiplier = 1.4f, secretDoorHealthMultiplier = 1f, enemyHealthMultiplier = 1.7f, damageCap = 300f, bossDpsCap = 60f, flowEntries = new List(0), predefinedSeeds = new List(0) }); } if (!flag3) { gameManager.customFloors.Add(new GameLevelDefinition { dungeonSceneName = "tt_backrooms", dungeonPrefabPath = "Base_BackRooms", priceMultiplier = 1.5f, secretDoorHealthMultiplier = 1f, enemyHealthMultiplier = 1.8f, damageCap = 400f, bossDpsCap = 75f, flowEntries = new List(0), predefinedSeeds = new List(0) }); } } public static void InitSpaceDungeon(GameObject targetObject, Dungeon dungeonTemplate) { //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0124: 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_0132: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_0152: 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_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0160: Unknown result type (might be due to invalid IL or missing references) //IL_0167: 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_016e: Unknown result type (might be due to invalid IL or missing references) //IL_0175: 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_0181: Unknown result type (might be due to invalid IL or missing references) //IL_0191: Expected O, but got Unknown //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Expected O, but got Unknown //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01bb: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Expected O, but got Unknown //IL_01cc: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01e8: Expected O, but got Unknown //IL_01ed: 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_01fb: Unknown result type (might be due to invalid IL or missing references) //IL_020b: Expected O, but got Unknown //IL_020c: Unknown result type (might be due to invalid IL or missing references) //IL_0211: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Unknown result type (might be due to invalid IL or missing references) //IL_021f: Unknown result type (might be due to invalid IL or missing references) //IL_022a: Unknown result type (might be due to invalid IL or missing references) //IL_022c: Unknown result type (might be due to invalid IL or missing references) //IL_0231: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Unknown result type (might be due to invalid IL or missing references) //IL_0238: Unknown result type (might be due to invalid IL or missing references) //IL_023a: Unknown result type (might be due to invalid IL or missing references) //IL_023f: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_024d: Unknown result type (might be due to invalid IL or missing references) //IL_0254: Unknown result type (might be due to invalid IL or missing references) //IL_0256: Unknown result type (might be due to invalid IL or missing references) //IL_025b: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Unknown result type (might be due to invalid IL or missing references) //IL_0267: Unknown result type (might be due to invalid IL or missing references) //IL_026e: Unknown result type (might be due to invalid IL or missing references) //IL_027e: Expected O, but got Unknown //IL_027f: Unknown result type (might be due to invalid IL or missing references) //IL_0284: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_029b: Expected O, but got Unknown //IL_029c: Unknown result type (might be due to invalid IL or missing references) //IL_02a1: 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_02b8: Expected O, but got Unknown //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02c5: Unknown result type (might be due to invalid IL or missing references) //IL_02d5: Expected O, but got Unknown //IL_02da: Unknown result type (might be due to invalid IL or missing references) //IL_02e1: Unknown result type (might be due to invalid IL or missing references) //IL_02e8: Unknown result type (might be due to invalid IL or missing references) //IL_02f8: Expected O, but got Unknown //IL_02f9: Unknown result type (might be due to invalid IL or missing references) //IL_02fe: Unknown result type (might be due to invalid IL or missing references) //IL_0305: Unknown result type (might be due to invalid IL or missing references) //IL_030c: Unknown result type (might be due to invalid IL or missing references) //IL_0317: Unknown result type (might be due to invalid IL or missing references) //IL_0319: Unknown result type (might be due to invalid IL or missing references) //IL_031e: Unknown result type (might be due to invalid IL or missing references) //IL_0320: Unknown result type (might be due to invalid IL or missing references) //IL_0325: Unknown result type (might be due to invalid IL or missing references) //IL_0327: Unknown result type (might be due to invalid IL or missing references) //IL_032c: Unknown result type (might be due to invalid IL or missing references) //IL_0333: Unknown result type (might be due to invalid IL or missing references) //IL_0335: Unknown result type (might be due to invalid IL or missing references) //IL_033a: Unknown result type (might be due to invalid IL or missing references) //IL_0341: Unknown result type (might be due to invalid IL or missing references) //IL_0343: Unknown result type (might be due to invalid IL or missing references) //IL_0348: Unknown result type (might be due to invalid IL or missing references) //IL_034f: Unknown result type (might be due to invalid IL or missing references) //IL_0354: Unknown result type (might be due to invalid IL or missing references) //IL_035b: Unknown result type (might be due to invalid IL or missing references) //IL_036b: Expected O, but got Unknown //IL_036c: Unknown result type (might be due to invalid IL or missing references) //IL_0371: Unknown result type (might be due to invalid IL or missing references) //IL_0378: Unknown result type (might be due to invalid IL or missing references) //IL_0388: Expected O, but got Unknown //IL_0389: Unknown result type (might be due to invalid IL or missing references) //IL_038e: Unknown result type (might be due to invalid IL or missing references) //IL_0395: Unknown result type (might be due to invalid IL or missing references) //IL_03a5: Expected O, but got Unknown //IL_03a6: Unknown result type (might be due to invalid IL or missing references) //IL_03ab: Unknown result type (might be due to invalid IL or missing references) //IL_03b2: Unknown result type (might be due to invalid IL or missing references) //IL_03c2: Expected O, but got Unknown //IL_03c7: Unknown result type (might be due to invalid IL or missing references) //IL_03ce: Unknown result type (might be due to invalid IL or missing references) //IL_03d5: Unknown result type (might be due to invalid IL or missing references) //IL_03e5: Expected O, but got Unknown //IL_03e6: Unknown result type (might be due to invalid IL or missing references) //IL_03eb: Unknown result type (might be due to invalid IL or missing references) //IL_03f2: Unknown result type (might be due to invalid IL or missing references) //IL_03f9: Unknown result type (might be due to invalid IL or missing references) //IL_0404: Unknown result type (might be due to invalid IL or missing references) //IL_0406: Unknown result type (might be due to invalid IL or missing references) //IL_040b: Unknown result type (might be due to invalid IL or missing references) //IL_040d: Unknown result type (might be due to invalid IL or missing references) //IL_0412: Unknown result type (might be due to invalid IL or missing references) //IL_0414: Unknown result type (might be due to invalid IL or missing references) //IL_0419: Unknown result type (might be due to invalid IL or missing references) //IL_0420: Unknown result type (might be due to invalid IL or missing references) //IL_0422: Unknown result type (might be due to invalid IL or missing references) //IL_0427: Unknown result type (might be due to invalid IL or missing references) //IL_042e: Unknown result type (might be due to invalid IL or missing references) //IL_0430: Unknown result type (might be due to invalid IL or missing references) //IL_0435: Unknown result type (might be due to invalid IL or missing references) //IL_043c: Unknown result type (might be due to invalid IL or missing references) //IL_0441: Unknown result type (might be due to invalid IL or missing references) //IL_0448: Unknown result type (might be due to invalid IL or missing references) //IL_0458: Expected O, but got Unknown //IL_0459: Unknown result type (might be due to invalid IL or missing references) //IL_045e: Unknown result type (might be due to invalid IL or missing references) //IL_0465: Unknown result type (might be due to invalid IL or missing references) //IL_0475: Expected O, but got Unknown //IL_0476: Unknown result type (might be due to invalid IL or missing references) //IL_047b: Unknown result type (might be due to invalid IL or missing references) //IL_0482: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Expected O, but got Unknown //IL_0493: Unknown result type (might be due to invalid IL or missing references) //IL_0498: Unknown result type (might be due to invalid IL or missing references) //IL_049f: Unknown result type (might be due to invalid IL or missing references) //IL_04af: Expected O, but got Unknown //IL_04b4: Unknown result type (might be due to invalid IL or missing references) //IL_04bb: Unknown result type (might be due to invalid IL or missing references) //IL_04c2: Unknown result type (might be due to invalid IL or missing references) //IL_04d2: Expected O, but got Unknown //IL_053c: Unknown result type (might be due to invalid IL or missing references) //IL_056b: Unknown result type (might be due to invalid IL or missing references) //IL_0571: Unknown result type (might be due to invalid IL or missing references) //IL_0576: Unknown result type (might be due to invalid IL or missing references) //IL_057d: Unknown result type (might be due to invalid IL or missing references) //IL_0584: Unknown result type (might be due to invalid IL or missing references) //IL_058c: Unknown result type (might be due to invalid IL or missing references) //IL_0593: Unknown result type (might be due to invalid IL or missing references) //IL_059a: Unknown result type (might be due to invalid IL or missing references) //IL_05a1: Unknown result type (might be due to invalid IL or missing references) //IL_05a8: Unknown result type (might be due to invalid IL or missing references) //IL_05af: Unknown result type (might be due to invalid IL or missing references) //IL_05b6: Unknown result type (might be due to invalid IL or missing references) //IL_05bd: Unknown result type (might be due to invalid IL or missing references) //IL_05c9: Expected O, but got Unknown //IL_05ca: Unknown result type (might be due to invalid IL or missing references) //IL_05cf: Unknown result type (might be due to invalid IL or missing references) //IL_05ea: Unknown result type (might be due to invalid IL or missing references) //IL_05f6: Unknown result type (might be due to invalid IL or missing references) //IL_0602: Unknown result type (might be due to invalid IL or missing references) //IL_060d: Unknown result type (might be due to invalid IL or missing references) //IL_0619: Expected O, but got Unknown //IL_0628: Unknown result type (might be due to invalid IL or missing references) //IL_062f: Expected O, but got Unknown //IL_0631: Unknown result type (might be due to invalid IL or missing references) //IL_0638: Expected O, but got Unknown //IL_0642: Unknown result type (might be due to invalid IL or missing references) //IL_0647: Unknown result type (might be due to invalid IL or missing references) //IL_0652: Unknown result type (might be due to invalid IL or missing references) //IL_0659: Unknown result type (might be due to invalid IL or missing references) //IL_0664: Unknown result type (might be due to invalid IL or missing references) //IL_0671: Expected O, but got Unknown //IL_0673: Unknown result type (might be due to invalid IL or missing references) //IL_0678: Unknown result type (might be due to invalid IL or missing references) //IL_0683: Unknown result type (might be due to invalid IL or missing references) //IL_068a: Unknown result type (might be due to invalid IL or missing references) //IL_0695: Unknown result type (might be due to invalid IL or missing references) //IL_06a2: Expected O, but got Unknown //IL_06a4: Unknown result type (might be due to invalid IL or missing references) //IL_06a9: Unknown result type (might be due to invalid IL or missing references) //IL_06b4: Unknown result type (might be due to invalid IL or missing references) //IL_06bb: Unknown result type (might be due to invalid IL or missing references) //IL_06c6: Unknown result type (might be due to invalid IL or missing references) //IL_06d3: Expected O, but got Unknown //IL_06d5: Unknown result type (might be due to invalid IL or missing references) //IL_06da: Unknown result type (might be due to invalid IL or missing references) //IL_06e5: Unknown result type (might be due to invalid IL or missing references) //IL_06ec: Unknown result type (might be due to invalid IL or missing references) //IL_06f7: Unknown result type (might be due to invalid IL or missing references) //IL_0704: Expected O, but got Unknown //IL_0706: Unknown result type (might be due to invalid IL or missing references) //IL_070b: Unknown result type (might be due to invalid IL or missing references) //IL_0716: Unknown result type (might be due to invalid IL or missing references) //IL_071d: Unknown result type (might be due to invalid IL or missing references) //IL_0728: Unknown result type (might be due to invalid IL or missing references) //IL_0735: Expected O, but got Unknown //IL_0737: Unknown result type (might be due to invalid IL or missing references) //IL_073c: Unknown result type (might be due to invalid IL or missing references) //IL_0747: Unknown result type (might be due to invalid IL or missing references) //IL_074e: Unknown result type (might be due to invalid IL or missing references) //IL_0759: Unknown result type (might be due to invalid IL or missing references) //IL_0766: Expected O, but got Unknown //IL_0768: Unknown result type (might be due to invalid IL or missing references) //IL_076d: Unknown result type (might be due to invalid IL or missing references) //IL_0778: Unknown result type (might be due to invalid IL or missing references) //IL_077f: Unknown result type (might be due to invalid IL or missing references) //IL_078a: Unknown result type (might be due to invalid IL or missing references) //IL_0797: Expected O, but got Unknown //IL_07ab: Unknown result type (might be due to invalid IL or missing references) //IL_07b0: Unknown result type (might be due to invalid IL or missing references) //IL_07f3: Unknown result type (might be due to invalid IL or missing references) //IL_07f8: Unknown result type (might be due to invalid IL or missing references) //IL_084d: Unknown result type (might be due to invalid IL or missing references) //IL_0852: Unknown result type (might be due to invalid IL or missing references) //IL_085f: Unknown result type (might be due to invalid IL or missing references) //IL_0864: Unknown result type (might be due to invalid IL or missing references) //IL_0871: Unknown result type (might be due to invalid IL or missing references) //IL_0876: Unknown result type (might be due to invalid IL or missing references) //IL_0883: Unknown result type (might be due to invalid IL or missing references) //IL_0888: Unknown result type (might be due to invalid IL or missing references) //IL_0895: Unknown result type (might be due to invalid IL or missing references) //IL_089a: Unknown result type (might be due to invalid IL or missing references) //IL_08b9: Unknown result type (might be due to invalid IL or missing references) //IL_08be: Unknown result type (might be due to invalid IL or missing references) //IL_0951: Unknown result type (might be due to invalid IL or missing references) //IL_0956: Unknown result type (might be due to invalid IL or missing references) //IL_095c: Unknown result type (might be due to invalid IL or missing references) //IL_0961: Unknown result type (might be due to invalid IL or missing references) //IL_0972: Unknown result type (might be due to invalid IL or missing references) //IL_0979: Unknown result type (might be due to invalid IL or missing references) //IL_098a: Unknown result type (might be due to invalid IL or missing references) //IL_0991: Unknown result type (might be due to invalid IL or missing references) //IL_0998: Unknown result type (might be due to invalid IL or missing references) //IL_099f: Unknown result type (might be due to invalid IL or missing references) //IL_09a4: Unknown result type (might be due to invalid IL or missing references) //IL_09ac: Unknown result type (might be due to invalid IL or missing references) //IL_09b7: Unknown result type (might be due to invalid IL or missing references) //IL_09be: Unknown result type (might be due to invalid IL or missing references) //IL_09ca: Expected O, but got Unknown //IL_09cf: Unknown result type (might be due to invalid IL or missing references) //IL_09d6: Unknown result type (might be due to invalid IL or missing references) //IL_09e7: Unknown result type (might be due to invalid IL or missing references) //IL_09f3: Unknown result type (might be due to invalid IL or missing references) //IL_09ff: Expected O, but got Unknown //IL_0a58: Unknown result type (might be due to invalid IL or missing references) //IL_0a5d: Unknown result type (might be due to invalid IL or missing references) //IL_0a6e: Unknown result type (might be due to invalid IL or missing references) //IL_0a7f: Unknown result type (might be due to invalid IL or missing references) //IL_0a90: Unknown result type (might be due to invalid IL or missing references) //IL_0aa1: Unknown result type (might be due to invalid IL or missing references) //IL_0ab2: Unknown result type (might be due to invalid IL or missing references) //IL_0ac3: Unknown result type (might be due to invalid IL or missing references) //IL_0ad4: Unknown result type (might be due to invalid IL or missing references) //IL_0ae5: Unknown result type (might be due to invalid IL or missing references) //IL_0af6: Unknown result type (might be due to invalid IL or missing references) //IL_0b07: Unknown result type (might be due to invalid IL or missing references) //IL_0b18: Unknown result type (might be due to invalid IL or missing references) //IL_0b2e: Expected O, but got Unknown //IL_0b4a: Unknown result type (might be due to invalid IL or missing references) //IL_0b4f: Unknown result type (might be due to invalid IL or missing references) //IL_0b5b: Unknown result type (might be due to invalid IL or missing references) //IL_0b67: Unknown result type (might be due to invalid IL or missing references) //IL_0b6e: Unknown result type (might be due to invalid IL or missing references) //IL_0b75: Unknown result type (might be due to invalid IL or missing references) //IL_0b7c: Unknown result type (might be due to invalid IL or missing references) //IL_0b83: Unknown result type (might be due to invalid IL or missing references) //IL_0b8a: Unknown result type (might be due to invalid IL or missing references) //IL_0b91: Unknown result type (might be due to invalid IL or missing references) //IL_0b98: Unknown result type (might be due to invalid IL or missing references) //IL_0b9f: Unknown result type (might be due to invalid IL or missing references) //IL_0ba6: Unknown result type (might be due to invalid IL or missing references) //IL_0bad: Unknown result type (might be due to invalid IL or missing references) //IL_0bb4: Unknown result type (might be due to invalid IL or missing references) //IL_0bc0: Expected O, but got Unknown //IL_0cd3: Unknown result type (might be due to invalid IL or missing references) //IL_0cd8: Unknown result type (might be due to invalid IL or missing references) Dungeon val = LoadOfficialDungeonPrefab("Base_Mines"); Dungeon val2 = LoadOfficialDungeonPrefab("FinalScenario_Pilot"); Dungeon val3 = LoadOfficialDungeonPrefab("FinalScenario_Bullet"); Dungeon val4 = targetObject.AddComponent(); ExpandUtility.DuplicateComponent(val4, dungeonTemplate); DungeonMaterial val5 = Object.Instantiate(val2.roomMaterialDefinitions[0]); val5.supportsPits = true; val5.doPitAO = false; val5.useLighting = true; val5.lightPrefabs.elements[0].rawGameObject = val.roomMaterialDefinitions[0].lightPrefabs.elements[0].rawGameObject; val5.roomFloorBorderGrid = val.roomMaterialDefinitions[0].roomFloorBorderGrid; val5.pitLayoutGrid = val.roomMaterialDefinitions[0].pitLayoutGrid; val5.pitBorderFlatGrid = val.roomMaterialDefinitions[0].pitBorderFlatGrid; DungeonTileStampData val6 = ScriptableObject.CreateInstance(); ((Object)val6).name = "ENV_SPACE_STAMP_DATA"; val6.tileStampWeight = 1f; val6.spriteStampWeight = 0f; val6.objectStampWeight = 1f; val6.stamps = (TileStampData[])(object)new TileStampData[0]; val6.spriteStamps = (SpriteStampData[])(object)new SpriteStampData[0]; List list = new List { new ObjectStampData { width = 1, height = 2, relativeWeight = 1f, placementRule = (StampPlacementRule)5, occupySpace = (StampSpace)0, stampCategory = (StampCategory)1, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)1, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 1f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.5f }, new StampPerRoomPlacementSettings { roomSubType = 3, roomRelativeWeight = 0.75f }, new StampPerRoomPlacementSettings { roomSubType = 4, roomRelativeWeight = 0.25f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ExpandPrefabs.EXSpace_Grass_01 }, new ObjectStampData { width = 1, height = 2, relativeWeight = 1f, placementRule = (StampPlacementRule)5, occupySpace = (StampSpace)0, stampCategory = (StampCategory)1, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)1, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 1f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.5f }, new StampPerRoomPlacementSettings { roomSubType = 3, roomRelativeWeight = 0.75f }, new StampPerRoomPlacementSettings { roomSubType = 4, roomRelativeWeight = 0.25f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ExpandPrefabs.EXSpace_Grass_02 }, new ObjectStampData { width = 1, height = 2, relativeWeight = 1f, placementRule = (StampPlacementRule)5, occupySpace = (StampSpace)0, stampCategory = (StampCategory)1, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)1, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 1f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.5f }, new StampPerRoomPlacementSettings { roomSubType = 3, roomRelativeWeight = 0.75f }, new StampPerRoomPlacementSettings { roomSubType = 4, roomRelativeWeight = 0.25f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ExpandPrefabs.EXSpace_Grass_03 }, new ObjectStampData { width = 2, height = 2, relativeWeight = 1f, placementRule = (StampPlacementRule)5, occupySpace = (StampSpace)0, stampCategory = (StampCategory)1, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)1, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 1f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.5f }, new StampPerRoomPlacementSettings { roomSubType = 3, roomRelativeWeight = 0.75f }, new StampPerRoomPlacementSettings { roomSubType = 4, roomRelativeWeight = 0.25f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ExpandPrefabs.EXSpace_Grass_04 } }; ObjectStampData[] objectStamps = dungeonTemplate.stampData.objectStamps; foreach (ObjectStampData item in objectStamps) { list.Add(item); } val6.objectStamps = list.ToArray(); val6.SymmetricFrameChance = 0.25f; val6.SymmetricCompleteChance = 0.6f; ((Object)((Component)val4).gameObject).name = "Base_Space"; val4.contentSource = (ContentSource)4; val4.DungeonSeed = 0; val4.DungeonFloorName = "An Alien Place."; val4.DungeonShortName = "An Alien Place."; val4.DungeonFloorLevelTextOverride = "Unknown location..."; val4.LevelOverrideType = (LevelOverrideState)0; val4.debugSettings = new DebugDungeonSettings { RAPID_DEBUG_DUNGEON_ITERATION_SEEKER = false, RAPID_DEBUG_DUNGEON_ITERATION = false, RAPID_DEBUG_DUNGEON_COUNT = 50, GENERATION_VIEWER_MODE = false, FULL_MINIMAP_VISIBILITY = false, COOP_TEST = false, DISABLE_ENEMIES = false, DISABLE_LOOPS = false, DISABLE_SECRET_ROOM_COVERS = false, DISABLE_OUTLINES = false, WALLS_ARE_PITS = false }; val4.PatternSettings = new SemioticDungeonGenSettings { flows = new List { FlowDatabase.GetOrLoadByName("F0b_Office_Flow_01") }, mandatoryExtraRooms = new List(0), optionalExtraRooms = new List(0), MAX_GENERATION_ATTEMPTS = 250, DEBUG_RENDER_CANVASES_SEPARATELY = false }; val4.ForceRegenerationOfCharacters = false; val4.ActuallyGenerateTilemap = true; TilemapDecoSettings val7 = new TilemapDecoSettings(); WeightedIntCollection val8 = new WeightedIntCollection(); val8.elements = (WeightedInt[])(object)new WeightedInt[7] { new WeightedInt { annotation = "pilot final", value = 0, weight = 1f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "pilot final2", value = 1, weight = 1f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "shop", value = 2, weight = 0f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "pilot final2", value = 3, weight = 1f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "pilot final3", value = 4, weight = 1f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "pilot final4", value = 5, weight = 1f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "pilot final5", value = 6, weight = 1f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] } }; val7.standardRoomVisualSubtypes = val8; val7.decalLayerStyle = val.decoSettings.decalLayerStyle; val7.decalSize = val.decoSettings.decalSize; val7.decalSpacing = val.decoSettings.decalSpacing; val7.decalExpansion = val.decoSettings.decalExpansion; val7.patternLayerStyle = val.decoSettings.patternLayerStyle; val7.patternSize = val.decoSettings.patternSize; val7.patternSpacing = val.decoSettings.patternSpacing; val7.patternExpansion = val.decoSettings.patternExpansion; val7.decoPatchFrequency = val.decoSettings.decoPatchFrequency; val7.ambientLightColor = val.decoSettings.ambientLightColor; val7.ambientLightColorTwo = val.decoSettings.ambientLightColorTwo; val7.lowQualityAmbientLightColor = val.decoSettings.lowQualityAmbientLightColor; val7.lowQualityAmbientLightColorTwo = val.decoSettings.lowQualityAmbientLightColorTwo; val7.lowQualityCheapLightVector = val.decoSettings.lowQualityCheapLightVector; val7.UsesAlienFXFloorColor = val.decoSettings.UsesAlienFXFloorColor; val7.AlienFXFloorColor = val.decoSettings.AlienFXFloorColor; val7.generateLights = val.decoSettings.generateLights; val7.lightCullingPercentage = val.decoSettings.lightCullingPercentage; val7.lightOverlapRadius = val.decoSettings.lightOverlapRadius; val7.nearestAllowedLight = val.decoSettings.nearestAllowedLight; val7.minLightExpanseWidth = val.decoSettings.minLightExpanseWidth; val7.lightHeight = val.decoSettings.lightHeight; val7.lightCookies = val.decoSettings.lightCookies; val7.debug_view = false; val4.decoSettings = val7; val4.tileIndices = new TileIndices { tilesetId = (ValidTilesets)256, dungeonCollection = val2.tileIndices.dungeonCollection, dungeonCollectionSupportsDiagonalWalls = false, aoTileIndices = val3.tileIndices.aoTileIndices, placeBorders = true, placePits = false, chestHighWallIndices = new List { new TileIndexVariant { index = 41, likelihood = 0.5f, overrideLayerIndex = 0, overrideIndex = 0 } }, decalIndexGrid = null, patternIndexGrid = val3.tileIndices.patternIndexGrid, globalSecondBorderTiles = new List(0), edgeDecorationTiles = null }; val4.roomMaterialDefinitions = (DungeonMaterial[])(object)new DungeonMaterial[7] { val5, val5, val5, val5, val5, val5, val5 }; val4.dungeonWingDefinitions = (DungeonWingDefinition[])(object)new DungeonWingDefinition[0]; val4.pathGridDefinitions = new List { val.pathGridDefinitions[0] }; val4.dungeonDustups = new DustUpVFX { runDustup = val.dungeonDustups.runDustup, waterDustup = val.dungeonDustups.waterDustup, additionalWaterDustup = val.dungeonDustups.additionalWaterDustup, rollNorthDustup = val.dungeonDustups.rollNorthDustup, rollNorthEastDustup = val.dungeonDustups.rollNorthEastDustup, rollEastDustup = val.dungeonDustups.rollEastDustup, rollSouthEastDustup = val.dungeonDustups.rollSouthEastDustup, rollSouthDustup = val.dungeonDustups.rollSouthDustup, rollSouthWestDustup = val.dungeonDustups.rollSouthWestDustup, rollWestDustup = val.dungeonDustups.rollWestDustup, rollNorthWestDustup = val.dungeonDustups.rollNorthWestDustup, rollLandDustup = val.dungeonDustups.rollLandDustup }; val4.damageTypeEffectMatrix = val.damageTypeEffectMatrix; val4.stampData = val6; val4.UsesCustomFloorIdea = false; val4.FloorIdea = new RobotDaveIdea { ValidEasyEnemyPlaceables = (DungeonPlaceable[])(object)new DungeonPlaceable[0], ValidHardEnemyPlaceables = (DungeonPlaceable[])(object)new DungeonPlaceable[0], UseWallSawblades = false, UseRollingLogsVertical = true, UseRollingLogsHorizontal = true, UseFloorPitTraps = false, UseFloorFlameTraps = true, UseFloorSpikeTraps = true, UseFloorConveyorBelts = true, UseCaveIns = true, UseAlarmMushrooms = false, UseChandeliers = true, UseMineCarts = false, CanIncludePits = false }; val4.PlaceDoors = true; val4.doorObjects = val.doorObjects; val4.oneWayDoorObjects = val.oneWayDoorObjects; val4.oneWayDoorPressurePlate = val.oneWayDoorPressurePlate; val4.phantomBlockerDoorObjects = val.phantomBlockerDoorObjects; val4.UsesWallWarpWingDoors = false; val4.baseChestContents = val.baseChestContents; val4.SecretRoomSimpleTriggersFacewall = new List { val.SecretRoomSimpleTriggersFacewall[0] }; val4.SecretRoomSimpleTriggersSidewall = new List { val.SecretRoomSimpleTriggersSidewall[0] }; val4.SecretRoomComplexTriggers = new List(0); val4.SecretRoomDoorSparkVFX = val.SecretRoomDoorSparkVFX; val4.SecretRoomHorizontalPoofVFX = val.SecretRoomHorizontalPoofVFX; val4.SecretRoomVerticalPoofVFX = val.SecretRoomVerticalPoofVFX; val4.sharedSettingsPrefab = val.sharedSettingsPrefab; val4.NormalRatGUID = string.Empty; val4.BossMasteryTokenItemId = CustomMasterRounds.GtlichFloorMasterRoundID; val4.UsesOverrideTertiaryBossSets = false; val4.OverrideTertiaryRewardSets = new List(0); val4.defaultPlayerPrefab = val.defaultPlayerPrefab; val4.StripPlayerOnArrival = false; val4.SuppressEmergencyCrates = false; val4.SetTutorialFlag = false; val4.PlayerIsLight = true; val4.PlayerLightColor = val.PlayerLightColor; val4.PlayerLightIntensity = 4f; val4.PlayerLightRadius = 4f; val4.PrefabsToAutoSpawn = (GameObject[])(object)new GameObject[0]; val4.musicEventName = "Play_EX_MUS_DeepDungeon_01"; val2 = null; val = null; } public static void InitJungleDungeon(AssetBundle expandSharedAuto1, AssetBundle braveResources, AssetBundle sharedAssets2, GameObject targetObject, Dungeon dungeonTemplate) { //IL_0359: Unknown result type (might be due to invalid IL or missing references) //IL_0368: Unknown result type (might be due to invalid IL or missing references) //IL_036d: Unknown result type (might be due to invalid IL or missing references) //IL_0374: Unknown result type (might be due to invalid IL or missing references) //IL_0379: Unknown result type (might be due to invalid IL or missing references) //IL_0384: Unknown result type (might be due to invalid IL or missing references) //IL_038f: Unknown result type (might be due to invalid IL or missing references) //IL_0396: Unknown result type (might be due to invalid IL or missing references) //IL_039d: Unknown result type (might be due to invalid IL or missing references) //IL_03ae: Expected O, but got Unknown //IL_03b8: Expected O, but got Unknown //IL_03f3: Unknown result type (might be due to invalid IL or missing references) //IL_040c: Unknown result type (might be due to invalid IL or missing references) //IL_0765: Unknown result type (might be due to invalid IL or missing references) //IL_0774: Unknown result type (might be due to invalid IL or missing references) //IL_0779: Unknown result type (might be due to invalid IL or missing references) //IL_0780: Unknown result type (might be due to invalid IL or missing references) //IL_0785: Unknown result type (might be due to invalid IL or missing references) //IL_0790: Unknown result type (might be due to invalid IL or missing references) //IL_079b: Unknown result type (might be due to invalid IL or missing references) //IL_07a2: Unknown result type (might be due to invalid IL or missing references) //IL_07a9: Unknown result type (might be due to invalid IL or missing references) //IL_07ba: Expected O, but got Unknown //IL_07c4: Expected O, but got Unknown //IL_07ff: Unknown result type (might be due to invalid IL or missing references) //IL_0818: Unknown result type (might be due to invalid IL or missing references) //IL_08e2: Unknown result type (might be due to invalid IL or missing references) //IL_0911: Unknown result type (might be due to invalid IL or missing references) //IL_0917: Unknown result type (might be due to invalid IL or missing references) //IL_091c: Unknown result type (might be due to invalid IL or missing references) //IL_0923: Unknown result type (might be due to invalid IL or missing references) //IL_092a: Unknown result type (might be due to invalid IL or missing references) //IL_0932: Unknown result type (might be due to invalid IL or missing references) //IL_0939: Unknown result type (might be due to invalid IL or missing references) //IL_0940: Unknown result type (might be due to invalid IL or missing references) //IL_0947: Unknown result type (might be due to invalid IL or missing references) //IL_094e: Unknown result type (might be due to invalid IL or missing references) //IL_0955: Unknown result type (might be due to invalid IL or missing references) //IL_095c: Unknown result type (might be due to invalid IL or missing references) //IL_0963: Unknown result type (might be due to invalid IL or missing references) //IL_096f: Expected O, but got Unknown //IL_0970: Unknown result type (might be due to invalid IL or missing references) //IL_0975: Unknown result type (might be due to invalid IL or missing references) //IL_0996: Unknown result type (might be due to invalid IL or missing references) //IL_09a2: Unknown result type (might be due to invalid IL or missing references) //IL_09ae: Unknown result type (might be due to invalid IL or missing references) //IL_09b9: Unknown result type (might be due to invalid IL or missing references) //IL_09c5: Expected O, but got Unknown //IL_09d4: Unknown result type (might be due to invalid IL or missing references) //IL_09db: Expected O, but got Unknown //IL_09dd: Unknown result type (might be due to invalid IL or missing references) //IL_09e4: Expected O, but got Unknown //IL_09ee: Unknown result type (might be due to invalid IL or missing references) //IL_09f3: Unknown result type (might be due to invalid IL or missing references) //IL_09fe: Unknown result type (might be due to invalid IL or missing references) //IL_0a05: Unknown result type (might be due to invalid IL or missing references) //IL_0a10: Unknown result type (might be due to invalid IL or missing references) //IL_0a1d: Expected O, but got Unknown //IL_0a1f: Unknown result type (might be due to invalid IL or missing references) //IL_0a24: Unknown result type (might be due to invalid IL or missing references) //IL_0a2f: Unknown result type (might be due to invalid IL or missing references) //IL_0a36: Unknown result type (might be due to invalid IL or missing references) //IL_0a41: Unknown result type (might be due to invalid IL or missing references) //IL_0a4e: Expected O, but got Unknown //IL_0a50: Unknown result type (might be due to invalid IL or missing references) //IL_0a55: Unknown result type (might be due to invalid IL or missing references) //IL_0a60: Unknown result type (might be due to invalid IL or missing references) //IL_0a67: Unknown result type (might be due to invalid IL or missing references) //IL_0a72: Unknown result type (might be due to invalid IL or missing references) //IL_0a7f: Expected O, but got Unknown //IL_0a81: Unknown result type (might be due to invalid IL or missing references) //IL_0a86: Unknown result type (might be due to invalid IL or missing references) //IL_0a91: Unknown result type (might be due to invalid IL or missing references) //IL_0a98: Unknown result type (might be due to invalid IL or missing references) //IL_0aa3: Unknown result type (might be due to invalid IL or missing references) //IL_0ab0: Expected O, but got Unknown //IL_0ab2: Unknown result type (might be due to invalid IL or missing references) //IL_0ab7: Unknown result type (might be due to invalid IL or missing references) //IL_0ac2: Unknown result type (might be due to invalid IL or missing references) //IL_0ac9: Unknown result type (might be due to invalid IL or missing references) //IL_0ad4: Unknown result type (might be due to invalid IL or missing references) //IL_0ae1: Expected O, but got Unknown //IL_0af1: Unknown result type (might be due to invalid IL or missing references) //IL_0b12: Unknown result type (might be due to invalid IL or missing references) //IL_0b51: Unknown result type (might be due to invalid IL or missing references) //IL_0b56: Unknown result type (might be due to invalid IL or missing references) //IL_0b71: Unknown result type (might be due to invalid IL or missing references) //IL_0b76: Unknown result type (might be due to invalid IL or missing references) //IL_0b91: Unknown result type (might be due to invalid IL or missing references) //IL_0b96: Unknown result type (might be due to invalid IL or missing references) //IL_0bb1: Unknown result type (might be due to invalid IL or missing references) //IL_0bb6: Unknown result type (might be due to invalid IL or missing references) //IL_0bd1: Unknown result type (might be due to invalid IL or missing references) //IL_0bd6: Unknown result type (might be due to invalid IL or missing references) //IL_0bf9: Unknown result type (might be due to invalid IL or missing references) //IL_0bfe: Unknown result type (might be due to invalid IL or missing references) //IL_0c5c: Unknown result type (might be due to invalid IL or missing references) //IL_0c61: Unknown result type (might be due to invalid IL or missing references) //IL_0c67: Unknown result type (might be due to invalid IL or missing references) //IL_0c6c: Unknown result type (might be due to invalid IL or missing references) //IL_0c7c: Unknown result type (might be due to invalid IL or missing references) //IL_0c83: Unknown result type (might be due to invalid IL or missing references) //IL_0c84: Unknown result type (might be due to invalid IL or missing references) //IL_0c89: Unknown result type (might be due to invalid IL or missing references) //IL_0c90: Unknown result type (might be due to invalid IL or missing references) //IL_0c97: Unknown result type (might be due to invalid IL or missing references) //IL_0c9e: Unknown result type (might be due to invalid IL or missing references) //IL_0ca5: Unknown result type (might be due to invalid IL or missing references) //IL_0cac: Unknown result type (might be due to invalid IL or missing references) //IL_0cb3: Unknown result type (might be due to invalid IL or missing references) //IL_0cba: Unknown result type (might be due to invalid IL or missing references) //IL_0cc1: Unknown result type (might be due to invalid IL or missing references) //IL_0cc8: Unknown result type (might be due to invalid IL or missing references) //IL_0ccf: Unknown result type (might be due to invalid IL or missing references) //IL_0cd6: Unknown result type (might be due to invalid IL or missing references) //IL_0cdd: Unknown result type (might be due to invalid IL or missing references) //IL_0ce5: Unknown result type (might be due to invalid IL or missing references) //IL_0ced: Unknown result type (might be due to invalid IL or missing references) //IL_0cf5: Unknown result type (might be due to invalid IL or missing references) //IL_0cfd: Unknown result type (might be due to invalid IL or missing references) //IL_0d05: Unknown result type (might be due to invalid IL or missing references) //IL_0d0d: Unknown result type (might be due to invalid IL or missing references) //IL_0d15: Unknown result type (might be due to invalid IL or missing references) //IL_0d1c: Unknown result type (might be due to invalid IL or missing references) //IL_0d23: Unknown result type (might be due to invalid IL or missing references) //IL_0d2a: Unknown result type (might be due to invalid IL or missing references) //IL_0d31: Unknown result type (might be due to invalid IL or missing references) //IL_0d38: Unknown result type (might be due to invalid IL or missing references) //IL_0d3f: Unknown result type (might be due to invalid IL or missing references) //IL_0d46: Unknown result type (might be due to invalid IL or missing references) //IL_0d52: Expected O, but got Unknown //IL_0d52: Unknown result type (might be due to invalid IL or missing references) //IL_0d59: Unknown result type (might be due to invalid IL or missing references) //IL_0d60: Unknown result type (might be due to invalid IL or missing references) //IL_0d67: Unknown result type (might be due to invalid IL or missing references) //IL_0d6c: Unknown result type (might be due to invalid IL or missing references) //IL_0d74: Unknown result type (might be due to invalid IL or missing references) //IL_0d7f: Unknown result type (might be due to invalid IL or missing references) //IL_0d86: Unknown result type (might be due to invalid IL or missing references) //IL_0d92: Expected O, but got Unknown //IL_0d97: Unknown result type (might be due to invalid IL or missing references) //IL_0d9e: Unknown result type (might be due to invalid IL or missing references) //IL_0da5: Unknown result type (might be due to invalid IL or missing references) //IL_0db1: Unknown result type (might be due to invalid IL or missing references) //IL_0dbd: Expected O, but got Unknown //IL_0e09: Unknown result type (might be due to invalid IL or missing references) //IL_0e0e: Unknown result type (might be due to invalid IL or missing references) //IL_0e1f: Unknown result type (might be due to invalid IL or missing references) //IL_0e30: Unknown result type (might be due to invalid IL or missing references) //IL_0e41: Unknown result type (might be due to invalid IL or missing references) //IL_0e52: Unknown result type (might be due to invalid IL or missing references) //IL_0e63: Unknown result type (might be due to invalid IL or missing references) //IL_0e74: Unknown result type (might be due to invalid IL or missing references) //IL_0e85: Unknown result type (might be due to invalid IL or missing references) //IL_0e96: Unknown result type (might be due to invalid IL or missing references) //IL_0ea7: Unknown result type (might be due to invalid IL or missing references) //IL_0eb8: Unknown result type (might be due to invalid IL or missing references) //IL_0ec9: Unknown result type (might be due to invalid IL or missing references) //IL_0edf: Expected O, but got Unknown //IL_0efb: Unknown result type (might be due to invalid IL or missing references) //IL_0f00: Unknown result type (might be due to invalid IL or missing references) //IL_0f0c: Unknown result type (might be due to invalid IL or missing references) //IL_0f18: Unknown result type (might be due to invalid IL or missing references) //IL_0f1f: Unknown result type (might be due to invalid IL or missing references) //IL_0f26: Unknown result type (might be due to invalid IL or missing references) //IL_0f2d: Unknown result type (might be due to invalid IL or missing references) //IL_0f34: Unknown result type (might be due to invalid IL or missing references) //IL_0f3b: Unknown result type (might be due to invalid IL or missing references) //IL_0f42: Unknown result type (might be due to invalid IL or missing references) //IL_0f49: Unknown result type (might be due to invalid IL or missing references) //IL_0f50: Unknown result type (might be due to invalid IL or missing references) //IL_0f57: Unknown result type (might be due to invalid IL or missing references) //IL_0f5e: Unknown result type (might be due to invalid IL or missing references) //IL_0f65: Unknown result type (might be due to invalid IL or missing references) //IL_0f71: Expected O, but got Unknown //IL_1091: Unknown result type (might be due to invalid IL or missing references) //IL_1096: Unknown result type (might be due to invalid IL or missing references) LoadOfficialDungeonPrefab("Base_Mines"); Dungeon val = LoadOfficialDungeonPrefab("Base_Gungeon"); Dungeon val2 = LoadOfficialDungeonPrefab("Base_Sewer"); Dungeon val3 = LoadOfficialDungeonPrefab("Base_Castle"); Dungeon val4 = targetObject.AddComponent(); ExpandUtility.DuplicateComponent(val4, dungeonTemplate); DungeonMaterial val5 = ScriptableObject.CreateInstance(); val5.wallShards = val.roomMaterialDefinitions[0].wallShards; val5.bigWallShards = val.roomMaterialDefinitions[0].bigWallShards; val5.bigWallShardDamageThreshold = 10f; val5.fallbackVerticalTileMapEffects = val.roomMaterialDefinitions[0].fallbackVerticalTileMapEffects; val5.fallbackHorizontalTileMapEffects = val.roomMaterialDefinitions[0].fallbackHorizontalTileMapEffects; val5.pitfallVFXPrefab = null; val5.UsePitAmbientVFX = false; val5.AmbientPitVFX = new List(0); val5.PitVFXMinCooldown = 5f; val5.PitVFXMaxCooldown = 30f; val5.ChanceToSpawnPitVFXOnCooldown = 1f; val5.stampFailChance = 0.2f; val5.overrideTableTable = null; val5.supportsPits = false; val5.doPitAO = true; val5.pitsAreOneDeep = false; val5.supportsDiagonalWalls = false; val5.supportsUpholstery = false; val5.carpetIsMainFloor = false; val5.carpetGrids = (TileIndexGrid[])(object)new TileIndexGrid[1] { ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Jungle/Woods/carpetGrid") }; val5.supportsChannels = false; val5.minChannelPools = 0; val5.maxChannelPools = 3; val5.channelTenacity = 0.75f; val5.channelGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val5.supportsLavaOrLavalikeSquares = false; val5.lavaGrids = (TileIndexGrid[])(object)new TileIndexGrid[1] { ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Jungle/Woods/lavaGrid") }; val5.supportsIceSquares = false; val5.iceGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val5.roomFloorBorderGrid = null; val5.roomCeilingBorderGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Jungle/Woods/roomCeilingBorderGrid"); val5.pitLayoutGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Jungle/Woods/pitLayoutGrid"); val5.pitBorderRaisedGrid = null; val5.additionalPitBorderFlatGrid = null; val5.pitBorderFlatGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Jungle/Woods/outerCeilingBorderGrid"); val5.outerCeilingBorderGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Jungle/Woods/outerCeilingBorderGrid"); val5.floorSquareDensity = 0.05f; val5.floorSquares = (TileIndexGrid[])(object)new TileIndexGrid[0]; val5.usesFacewallGrids = false; val5.facewallGrids = (FacewallIndexGridDefinition[])(object)new FacewallIndexGridDefinition[3] { ExpandAssets.DeserializeFacewallGridDefinitionFromAssetBundle(expandSharedAuto1, "Jungle/Woods/facewallGrids_0"), ExpandAssets.DeserializeFacewallGridDefinitionFromAssetBundle(expandSharedAuto1, "Jungle/Woods/facewallGrids_1"), ExpandAssets.DeserializeFacewallGridDefinitionFromAssetBundle(expandSharedAuto1, "Jungle/Woods/facewallGrids_2") }; val5.facewallGrids[0].grid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Jungle/Woods/facewallGrids_0_grid"); val5.facewallGrids[1].grid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Jungle/Woods/facewallGrids_1_grid"); val5.facewallGrids[2].grid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Jungle/Woods/facewallGrids_2_grid"); val5.usesInternalMaterialTransitions = false; val5.usesProceduralMaterialTransitions = false; val5.internalMaterialTransitions = (RoomInternalMaterialTransition[])(object)new RoomInternalMaterialTransition[0]; val5.secretRoomWallShardCollections = new List(0); val5.overrideStoneFloorType = false; val5.overrideFloorType = (CellFloorType)0; val5.useLighting = true; val5.lightPrefabs = new WeightedGameObjectCollection { elements = new List { new WeightedGameObject { rawGameObject = ExpandPrefabs.JungleLight, weight = 1f, forceDuplicatesPossible = false, pickupId = -1, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] } } }; val5.facewallLightStamps = val3.roomMaterialDefinitions[0].facewallLightStamps; val5.sidewallLightStamps = val3.roomMaterialDefinitions[0].sidewallLightStamps; val5.usesDecalLayer = false; val5.decalIndexGrid = null; val5.decalLayerStyle = (DecoStyle)0; val5.decalSize = 1; val5.decalSpacing = 1; val5.patternLayerStyle = (DecoStyle)99; val5.patternSpacing = 1; val5.patternSize = 1; val5.patternIndexGrid = null; val5.forceEdgesDiagonal = false; val5.exteriorFacadeBorderGrid = null; val5.facadeTopGrid = null; val5.bridgeGrid = null; DungeonMaterial val6 = ScriptableObject.CreateInstance(); val6.wallShards = val.roomMaterialDefinitions[0].wallShards; val6.bigWallShards = val.roomMaterialDefinitions[0].bigWallShards; val6.bigWallShardDamageThreshold = 10f; val6.fallbackVerticalTileMapEffects = val.roomMaterialDefinitions[0].fallbackVerticalTileMapEffects; val6.fallbackHorizontalTileMapEffects = val.roomMaterialDefinitions[0].fallbackHorizontalTileMapEffects; val6.pitfallVFXPrefab = null; val6.UsePitAmbientVFX = false; val6.AmbientPitVFX = new List(0); val6.PitVFXMinCooldown = 5f; val6.PitVFXMaxCooldown = 30f; val6.ChanceToSpawnPitVFXOnCooldown = 1f; val6.stampFailChance = 0.2f; val6.overrideTableTable = null; val6.supportsPits = false; val6.doPitAO = true; val6.pitsAreOneDeep = false; val6.supportsDiagonalWalls = false; val6.supportsUpholstery = false; val6.carpetIsMainFloor = false; val6.carpetGrids = (TileIndexGrid[])(object)new TileIndexGrid[1] { ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Jungle/Bamboo/carpetGrid") }; val6.supportsChannels = false; val6.minChannelPools = 0; val6.maxChannelPools = 3; val6.channelTenacity = 0.75f; val6.channelGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val6.supportsLavaOrLavalikeSquares = true; val6.lavaGrids = (TileIndexGrid[])(object)new TileIndexGrid[1] { ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Jungle/Bamboo/lavaGrid") }; val6.supportsIceSquares = false; val6.iceGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val6.roomFloorBorderGrid = null; val6.roomCeilingBorderGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Jungle/Bamboo/roomCeilingBorderGrid"); val6.pitLayoutGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Jungle/Bamboo/pitLayoutGrid"); val6.pitBorderRaisedGrid = null; val6.additionalPitBorderFlatGrid = null; val6.pitBorderFlatGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Jungle/Bamboo/outerCeilingBorderGrid"); val6.outerCeilingBorderGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Jungle/Bamboo/outerCeilingBorderGrid"); val6.floorSquareDensity = 0.05f; val6.floorSquares = (TileIndexGrid[])(object)new TileIndexGrid[0]; val6.usesFacewallGrids = false; val6.facewallGrids = (FacewallIndexGridDefinition[])(object)new FacewallIndexGridDefinition[3] { ExpandAssets.DeserializeFacewallGridDefinitionFromAssetBundle(expandSharedAuto1, "Jungle/Bamboo/facewallGrids_0"), ExpandAssets.DeserializeFacewallGridDefinitionFromAssetBundle(expandSharedAuto1, "Jungle/Bamboo/facewallGrids_1"), ExpandAssets.DeserializeFacewallGridDefinitionFromAssetBundle(expandSharedAuto1, "Jungle/Bamboo/facewallGrids_2") }; val6.facewallGrids[0].grid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Jungle/Bamboo/facewallGrids_0_grid"); val6.facewallGrids[1].grid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Jungle/Bamboo/facewallGrids_1_grid"); val6.facewallGrids[2].grid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Jungle/Bamboo/facewallGrids_2_grid"); val6.usesInternalMaterialTransitions = false; val6.usesProceduralMaterialTransitions = false; val6.internalMaterialTransitions = (RoomInternalMaterialTransition[])(object)new RoomInternalMaterialTransition[0]; val6.secretRoomWallShardCollections = new List(0); val6.overrideStoneFloorType = false; val6.overrideFloorType = (CellFloorType)0; val6.useLighting = true; val6.lightPrefabs = new WeightedGameObjectCollection { elements = new List { new WeightedGameObject { rawGameObject = ExpandPrefabs.JungleLight, weight = 1f, forceDuplicatesPossible = false, pickupId = -1, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] } } }; val6.facewallLightStamps = val3.roomMaterialDefinitions[0].facewallLightStamps; val6.sidewallLightStamps = val3.roomMaterialDefinitions[0].sidewallLightStamps; val6.usesDecalLayer = false; val6.decalIndexGrid = null; val6.decalLayerStyle = (DecoStyle)0; val6.decalSize = 1; val6.decalSpacing = 1; val6.patternLayerStyle = (DecoStyle)99; val6.patternSpacing = 1; val6.patternSize = 1; val6.patternIndexGrid = null; val6.forceEdgesDiagonal = false; val6.exteriorFacadeBorderGrid = null; val6.facadeTopGrid = null; val6.bridgeGrid = null; DungeonTileStampData val7 = ScriptableObject.CreateInstance(); ((Object)val7).name = "ENV_JUNGLE_STAMP_DATA"; val7.tileStampWeight = 1f; val7.spriteStampWeight = 0f; val7.objectStampWeight = 1.5f; val7.stamps = (TileStampData[])(object)new TileStampData[0]; val7.spriteStamps = (SpriteStampData[])(object)new SpriteStampData[0]; val7.objectStamps = val.stampData.objectStamps; val7.SymmetricFrameChance = 0.5f; val7.SymmetricCompleteChance = 0.25f; ((Object)((Component)val4).gameObject).name = "Base_Jungle"; val4.contentSource = (ContentSource)4; val4.DungeonSeed = 0; val4.DungeonFloorName = "Deep in the Jungle"; val4.DungeonShortName = "Deep in the Jungle"; val4.DungeonFloorLevelTextOverride = "An Ancient Place..."; val4.LevelOverrideType = (LevelOverrideState)0; val4.debugSettings = new DebugDungeonSettings { RAPID_DEBUG_DUNGEON_ITERATION_SEEKER = false, RAPID_DEBUG_DUNGEON_ITERATION = false, RAPID_DEBUG_DUNGEON_COUNT = 50, GENERATION_VIEWER_MODE = false, FULL_MINIMAP_VISIBILITY = false, COOP_TEST = false, DISABLE_ENEMIES = false, DISABLE_LOOPS = false, DISABLE_SECRET_ROOM_COVERS = false, DISABLE_OUTLINES = false, WALLS_ARE_PITS = false }; val4.PatternSettings = new SemioticDungeonGenSettings { flows = new List { f1b_jungle_flow_01.F1b_Jungle_Flow_01, f1b_jungle_flow_02.F1b_Jungle_Flow_02 }, mandatoryExtraRooms = new List(0), optionalExtraRooms = new List(0), MAX_GENERATION_ATTEMPTS = 250, DEBUG_RENDER_CANVASES_SEPARATELY = false }; val4.ForceRegenerationOfCharacters = false; val4.ActuallyGenerateTilemap = true; TilemapDecoSettings val8 = new TilemapDecoSettings(); WeightedIntCollection val9 = new WeightedIntCollection(); val9.elements = (WeightedInt[])(object)new WeightedInt[5] { new WeightedInt { annotation = "woods", value = 0, weight = 0.5f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "the boo", value = 1, weight = 0.5f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "shop", value = 2, weight = 0f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "unused", value = 3, weight = 0f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "unused", value = 4, weight = 0f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] } }; val8.standardRoomVisualSubtypes = val9; val8.decalLayerStyle = (DecoStyle)99; val8.decalSize = 3; val8.decalSpacing = 1; val8.decalExpansion = 0; val8.patternLayerStyle = (DecoStyle)99; val8.patternSize = 3; val8.patternSpacing = 3; val8.patternExpansion = 0; val8.decoPatchFrequency = 0.01f; val8.ambientLightColor = new Color(0.827336f, 0.866108f, 0.885294f, 1f); val8.ambientLightColorTwo = new Color(0.72549f, 0.764706f, 0.784314f, 1f); val8.lowQualityAmbientLightColor = new Color(1f, 1f, 1f, 1f); val8.lowQualityAmbientLightColorTwo = new Color(1f, 1f, 1f, 1f); val8.lowQualityCheapLightVector = new Vector4(1f, 0f, -1f, 0f); val8.UsesAlienFXFloorColor = false; val8.AlienFXFloorColor = new Color(0f, 0f, 0f, 1f); val8.generateLights = true; val8.lightCullingPercentage = 0.2f; val8.lightOverlapRadius = 8; val8.nearestAllowedLight = 12f; val8.minLightExpanseWidth = 2; val8.lightHeight = -2f; val8.lightCookies = (Texture2D[])(object)new Texture2D[0]; val8.debug_view = false; val4.decoSettings = val8; val4.tileIndices = new TileIndices { tilesetId = (ValidTilesets)8192, dungeonCollection = ExpandPrefabs.ENV_Tileset_Jungle.GetComponent(), dungeonCollectionSupportsDiagonalWalls = false, aoTileIndices = new AOTileIndices { AOFloorTileIndex = 0, AOBottomWallBaseTileIndex = 1, AOBottomWallTileRightIndex = 2, AOBottomWallTileLeftIndex = 3, AOBottomWallTileBothIndex = 4, AOTopFacewallRightIndex = 6, AOTopFacewallLeftIndex = 5, AOTopFacewallBothIndex = 7, AOFloorWallLeft = 5, AOFloorWallRight = 6, AOFloorWallBoth = 7, AOFloorPizzaSliceLeft = 8, AOFloorPizzaSliceRight = 9, AOFloorPizzaSliceBoth = 10, AOFloorPizzaSliceLeftWallRight = 11, AOFloorPizzaSliceRightWallLeft = 12, AOFloorWallUpAndLeft = 13, AOFloorWallUpAndRight = 14, AOFloorWallUpAndBoth = 15, AOFloorDiagonalWallNortheast = -1, AOFloorDiagonalWallNortheastLower = -1, AOFloorDiagonalWallNortheastLowerJoint = -1, AOFloorDiagonalWallNorthwest = -1, AOFloorDiagonalWallNorthwestLower = -1, AOFloorDiagonalWallNorthwestLowerJoint = -1, AOBottomWallDiagonalNortheast = -1, AOBottomWallDiagonalNorthwest = -1 }, placeBorders = true, placePits = false, chestHighWallIndices = new List { new TileIndexVariant { index = 41, likelihood = 0.5f, overrideLayerIndex = 0, overrideIndex = 0 } }, decalIndexGrid = null, patternIndexGrid = null, globalSecondBorderTiles = new List(0), edgeDecorationTiles = null }; val4.roomMaterialDefinitions = (DungeonMaterial[])(object)new DungeonMaterial[6] { val5, val6, val5, val5, val5, sharedAssets2.LoadAsset("Boss_Cathedral_StainedGlass_Lights") }; val4.dungeonWingDefinitions = (DungeonWingDefinition[])(object)new DungeonWingDefinition[0]; val4.pathGridDefinitions = new List(0); val4.dungeonDustups = new DustUpVFX { runDustup = val.dungeonDustups.runDustup, waterDustup = val.dungeonDustups.waterDustup, additionalWaterDustup = val.dungeonDustups.additionalWaterDustup, rollNorthDustup = val.dungeonDustups.rollNorthDustup, rollNorthEastDustup = val.dungeonDustups.rollNorthEastDustup, rollEastDustup = val.dungeonDustups.rollEastDustup, rollSouthEastDustup = val.dungeonDustups.rollSouthEastDustup, rollSouthDustup = val.dungeonDustups.rollSouthDustup, rollSouthWestDustup = val.dungeonDustups.rollSouthWestDustup, rollWestDustup = val.dungeonDustups.rollWestDustup, rollNorthWestDustup = val.dungeonDustups.rollNorthWestDustup, rollLandDustup = val.dungeonDustups.rollLandDustup }; val4.damageTypeEffectMatrix = val.damageTypeEffectMatrix; val4.stampData = val7; val4.UsesCustomFloorIdea = false; val4.FloorIdea = new RobotDaveIdea { ValidEasyEnemyPlaceables = (DungeonPlaceable[])(object)new DungeonPlaceable[0], ValidHardEnemyPlaceables = (DungeonPlaceable[])(object)new DungeonPlaceable[0], UseWallSawblades = false, UseRollingLogsVertical = false, UseRollingLogsHorizontal = false, UseFloorPitTraps = false, UseFloorFlameTraps = false, UseFloorSpikeTraps = false, UseFloorConveyorBelts = false, UseCaveIns = false, UseAlarmMushrooms = false, UseChandeliers = false, UseMineCarts = false, CanIncludePits = true }; val4.PlaceDoors = true; val4.doorObjects = ExpandPrefabs.Jungle_Doors; val4.oneWayDoorObjects = ExpandPrefabs.Jungle_OneWayDoors; val4.oneWayDoorPressurePlate = val.oneWayDoorPressurePlate; val4.phantomBlockerDoorObjects = val.phantomBlockerDoorObjects; val4.UsesWallWarpWingDoors = false; val4.baseChestContents = val.baseChestContents; val4.SecretRoomSimpleTriggersFacewall = new List { val2.SecretRoomSimpleTriggersFacewall[0] }; val4.SecretRoomSimpleTriggersSidewall = new List { val2.SecretRoomSimpleTriggersSidewall[0] }; val4.SecretRoomComplexTriggers = new List(0); val4.SecretRoomDoorSparkVFX = val2.SecretRoomDoorSparkVFX; val4.SecretRoomHorizontalPoofVFX = val2.SecretRoomHorizontalPoofVFX; val4.SecretRoomVerticalPoofVFX = val2.SecretRoomVerticalPoofVFX; val4.sharedSettingsPrefab = val.sharedSettingsPrefab; val4.NormalRatGUID = string.Empty; val4.BossMasteryTokenItemId = -1; val4.UsesOverrideTertiaryBossSets = false; val4.OverrideTertiaryRewardSets = new List(0); val4.defaultPlayerPrefab = val.defaultPlayerPrefab; val4.StripPlayerOnArrival = false; val4.SuppressEmergencyCrates = false; val4.SetTutorialFlag = false; val4.PlayerIsLight = false; val4.PlayerLightColor = new Color(1f, 1f, 1f, 1f); val4.PlayerLightIntensity = 3f; val4.PlayerLightRadius = 5f; val4.PrefabsToAutoSpawn = (GameObject[])(object)new GameObject[0]; val4.musicEventName = "Play_EX_MUS_Jungle_01"; val = null; val3 = null; val2 = null; } public static void InitBellyDungeon(AssetBundle expandSharedAuto1, AssetBundle sharedAssets, AssetBundle sharedAssets2, GameObject targetObject, Dungeon dungeonTemplate) { //IL_0297: Unknown result type (might be due to invalid IL or missing references) //IL_029c: Unknown result type (might be due to invalid IL or missing references) //IL_02b7: Unknown result type (might be due to invalid IL or missing references) //IL_02be: 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_02cd: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02db: 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_02e9: Unknown result type (might be due to invalid IL or missing references) //IL_02f0: Unknown result type (might be due to invalid IL or missing references) //IL_02f7: Unknown result type (might be due to invalid IL or missing references) //IL_02fe: Unknown result type (might be due to invalid IL or missing references) //IL_0305: Unknown result type (might be due to invalid IL or missing references) //IL_030c: Unknown result type (might be due to invalid IL or missing references) //IL_0313: 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_031a: Unknown result type (might be due to invalid IL or missing references) //IL_0321: Unknown result type (might be due to invalid IL or missing references) //IL_032c: Unknown result type (might be due to invalid IL or missing references) //IL_0338: Expected O, but got Unknown //IL_0372: Unknown result type (might be due to invalid IL or missing references) //IL_0381: Unknown result type (might be due to invalid IL or missing references) //IL_0386: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Unknown result type (might be due to invalid IL or missing references) //IL_0392: Unknown result type (might be due to invalid IL or missing references) //IL_039d: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: 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_03b6: Unknown result type (might be due to invalid IL or missing references) //IL_03c7: Expected O, but got Unknown //IL_03d1: Expected O, but got Unknown //IL_040c: Unknown result type (might be due to invalid IL or missing references) //IL_0425: Unknown result type (might be due to invalid IL or missing references) //IL_04bd: Unknown result type (might be due to invalid IL or missing references) //IL_04c2: Unknown result type (might be due to invalid IL or missing references) //IL_04c9: Unknown result type (might be due to invalid IL or missing references) //IL_04d0: Unknown result type (might be due to invalid IL or missing references) //IL_04db: Unknown result type (might be due to invalid IL or missing references) //IL_04dd: Unknown result type (might be due to invalid IL or missing references) //IL_04e2: Unknown result type (might be due to invalid IL or missing references) //IL_04e4: Unknown result type (might be due to invalid IL or missing references) //IL_04e9: Unknown result type (might be due to invalid IL or missing references) //IL_04eb: Unknown result type (might be due to invalid IL or missing references) //IL_04f0: Unknown result type (might be due to invalid IL or missing references) //IL_04f7: Unknown result type (might be due to invalid IL or missing references) //IL_04f9: Unknown result type (might be due to invalid IL or missing references) //IL_04fe: Unknown result type (might be due to invalid IL or missing references) //IL_0505: Unknown result type (might be due to invalid IL or missing references) //IL_0507: Unknown result type (might be due to invalid IL or missing references) //IL_050c: Unknown result type (might be due to invalid IL or missing references) //IL_0518: Unknown result type (might be due to invalid IL or missing references) //IL_051f: Unknown result type (might be due to invalid IL or missing references) //IL_0526: Unknown result type (might be due to invalid IL or missing references) //IL_0538: Expected O, but got Unknown //IL_053a: Unknown result type (might be due to invalid IL or missing references) //IL_053f: Unknown result type (might be due to invalid IL or missing references) //IL_0546: Unknown result type (might be due to invalid IL or missing references) //IL_054d: Unknown result type (might be due to invalid IL or missing references) //IL_0558: Unknown result type (might be due to invalid IL or missing references) //IL_055a: Unknown result type (might be due to invalid IL or missing references) //IL_055f: Unknown result type (might be due to invalid IL or missing references) //IL_0561: Unknown result type (might be due to invalid IL or missing references) //IL_0566: Unknown result type (might be due to invalid IL or missing references) //IL_0568: Unknown result type (might be due to invalid IL or missing references) //IL_056d: Unknown result type (might be due to invalid IL or missing references) //IL_0574: Unknown result type (might be due to invalid IL or missing references) //IL_0576: Unknown result type (might be due to invalid IL or missing references) //IL_057b: Unknown result type (might be due to invalid IL or missing references) //IL_0582: Unknown result type (might be due to invalid IL or missing references) //IL_0584: Unknown result type (might be due to invalid IL or missing references) //IL_0589: Unknown result type (might be due to invalid IL or missing references) //IL_0595: Unknown result type (might be due to invalid IL or missing references) //IL_059c: Unknown result type (might be due to invalid IL or missing references) //IL_05a3: Unknown result type (might be due to invalid IL or missing references) //IL_05b5: Expected O, but got Unknown //IL_05b7: Unknown result type (might be due to invalid IL or missing references) //IL_05bc: Unknown result type (might be due to invalid IL or missing references) //IL_05c3: Unknown result type (might be due to invalid IL or missing references) //IL_05ca: Unknown result type (might be due to invalid IL or missing references) //IL_05d5: Unknown result type (might be due to invalid IL or missing references) //IL_05d7: Unknown result type (might be due to invalid IL or missing references) //IL_05dc: Unknown result type (might be due to invalid IL or missing references) //IL_05de: Unknown result type (might be due to invalid IL or missing references) //IL_05e3: Unknown result type (might be due to invalid IL or missing references) //IL_05e5: Unknown result type (might be due to invalid IL or missing references) //IL_05ea: Unknown result type (might be due to invalid IL or missing references) //IL_05f1: Unknown result type (might be due to invalid IL or missing references) //IL_05f3: Unknown result type (might be due to invalid IL or missing references) //IL_05f8: Unknown result type (might be due to invalid IL or missing references) //IL_05ff: Unknown result type (might be due to invalid IL or missing references) //IL_0601: Unknown result type (might be due to invalid IL or missing references) //IL_0606: Unknown result type (might be due to invalid IL or missing references) //IL_0612: Unknown result type (might be due to invalid IL or missing references) //IL_0619: Unknown result type (might be due to invalid IL or missing references) //IL_0620: Unknown result type (might be due to invalid IL or missing references) //IL_0632: Expected O, but got Unknown //IL_0634: Unknown result type (might be due to invalid IL or missing references) //IL_0639: Unknown result type (might be due to invalid IL or missing references) //IL_0640: Unknown result type (might be due to invalid IL or missing references) //IL_0647: Unknown result type (might be due to invalid IL or missing references) //IL_0652: Unknown result type (might be due to invalid IL or missing references) //IL_0654: Unknown result type (might be due to invalid IL or missing references) //IL_0659: Unknown result type (might be due to invalid IL or missing references) //IL_065b: Unknown result type (might be due to invalid IL or missing references) //IL_0660: Unknown result type (might be due to invalid IL or missing references) //IL_0662: Unknown result type (might be due to invalid IL or missing references) //IL_0667: Unknown result type (might be due to invalid IL or missing references) //IL_066e: Unknown result type (might be due to invalid IL or missing references) //IL_0670: Unknown result type (might be due to invalid IL or missing references) //IL_0675: Unknown result type (might be due to invalid IL or missing references) //IL_067c: Unknown result type (might be due to invalid IL or missing references) //IL_067e: Unknown result type (might be due to invalid IL or missing references) //IL_0683: Unknown result type (might be due to invalid IL or missing references) //IL_068f: Unknown result type (might be due to invalid IL or missing references) //IL_0696: Unknown result type (might be due to invalid IL or missing references) //IL_069d: Unknown result type (might be due to invalid IL or missing references) //IL_06af: Expected O, but got Unknown //IL_06b1: Unknown result type (might be due to invalid IL or missing references) //IL_06b6: Unknown result type (might be due to invalid IL or missing references) //IL_06bd: Unknown result type (might be due to invalid IL or missing references) //IL_06c4: Unknown result type (might be due to invalid IL or missing references) //IL_06cf: Unknown result type (might be due to invalid IL or missing references) //IL_06d1: Unknown result type (might be due to invalid IL or missing references) //IL_06d6: Unknown result type (might be due to invalid IL or missing references) //IL_06d8: Unknown result type (might be due to invalid IL or missing references) //IL_06dd: Unknown result type (might be due to invalid IL or missing references) //IL_06df: Unknown result type (might be due to invalid IL or missing references) //IL_06e4: Unknown result type (might be due to invalid IL or missing references) //IL_06eb: Unknown result type (might be due to invalid IL or missing references) //IL_06ed: Unknown result type (might be due to invalid IL or missing references) //IL_06f2: Unknown result type (might be due to invalid IL or missing references) //IL_06f9: Unknown result type (might be due to invalid IL or missing references) //IL_06fb: Unknown result type (might be due to invalid IL or missing references) //IL_0700: Unknown result type (might be due to invalid IL or missing references) //IL_070c: Unknown result type (might be due to invalid IL or missing references) //IL_0713: Unknown result type (might be due to invalid IL or missing references) //IL_071a: Unknown result type (might be due to invalid IL or missing references) //IL_072c: Expected O, but got Unknown //IL_072e: Unknown result type (might be due to invalid IL or missing references) //IL_0733: Unknown result type (might be due to invalid IL or missing references) //IL_073a: Unknown result type (might be due to invalid IL or missing references) //IL_0741: Unknown result type (might be due to invalid IL or missing references) //IL_074c: Unknown result type (might be due to invalid IL or missing references) //IL_074e: Unknown result type (might be due to invalid IL or missing references) //IL_0753: Unknown result type (might be due to invalid IL or missing references) //IL_0755: Unknown result type (might be due to invalid IL or missing references) //IL_075a: Unknown result type (might be due to invalid IL or missing references) //IL_075c: Unknown result type (might be due to invalid IL or missing references) //IL_0761: Unknown result type (might be due to invalid IL or missing references) //IL_0768: Unknown result type (might be due to invalid IL or missing references) //IL_076a: Unknown result type (might be due to invalid IL or missing references) //IL_076f: Unknown result type (might be due to invalid IL or missing references) //IL_0776: Unknown result type (might be due to invalid IL or missing references) //IL_0778: Unknown result type (might be due to invalid IL or missing references) //IL_077d: Unknown result type (might be due to invalid IL or missing references) //IL_0789: Unknown result type (might be due to invalid IL or missing references) //IL_0790: Unknown result type (might be due to invalid IL or missing references) //IL_0797: Unknown result type (might be due to invalid IL or missing references) //IL_07a9: Expected O, but got Unknown //IL_07da: Unknown result type (might be due to invalid IL or missing references) //IL_080e: Unknown result type (might be due to invalid IL or missing references) //IL_0815: Unknown result type (might be due to invalid IL or missing references) //IL_081a: Unknown result type (might be due to invalid IL or missing references) //IL_0821: Unknown result type (might be due to invalid IL or missing references) //IL_0828: Unknown result type (might be due to invalid IL or missing references) //IL_0830: Unknown result type (might be due to invalid IL or missing references) //IL_0837: Unknown result type (might be due to invalid IL or missing references) //IL_083e: Unknown result type (might be due to invalid IL or missing references) //IL_0845: Unknown result type (might be due to invalid IL or missing references) //IL_084c: Unknown result type (might be due to invalid IL or missing references) //IL_0853: Unknown result type (might be due to invalid IL or missing references) //IL_085a: Unknown result type (might be due to invalid IL or missing references) //IL_0861: Unknown result type (might be due to invalid IL or missing references) //IL_086d: Expected O, but got Unknown //IL_086f: Unknown result type (might be due to invalid IL or missing references) //IL_0874: Unknown result type (might be due to invalid IL or missing references) //IL_088a: Unknown result type (might be due to invalid IL or missing references) //IL_0896: Unknown result type (might be due to invalid IL or missing references) //IL_08a2: Unknown result type (might be due to invalid IL or missing references) //IL_08ad: Unknown result type (might be due to invalid IL or missing references) //IL_08b9: Expected O, but got Unknown //IL_08cb: Unknown result type (might be due to invalid IL or missing references) //IL_08d2: Expected O, but got Unknown //IL_08d4: Unknown result type (might be due to invalid IL or missing references) //IL_08db: Expected O, but got Unknown //IL_08e5: Unknown result type (might be due to invalid IL or missing references) //IL_08ea: Unknown result type (might be due to invalid IL or missing references) //IL_08f5: Unknown result type (might be due to invalid IL or missing references) //IL_08fc: Unknown result type (might be due to invalid IL or missing references) //IL_0907: Unknown result type (might be due to invalid IL or missing references) //IL_0914: Expected O, but got Unknown //IL_0916: Unknown result type (might be due to invalid IL or missing references) //IL_091b: Unknown result type (might be due to invalid IL or missing references) //IL_0926: Unknown result type (might be due to invalid IL or missing references) //IL_092d: Unknown result type (might be due to invalid IL or missing references) //IL_0938: Unknown result type (might be due to invalid IL or missing references) //IL_0945: Expected O, but got Unknown //IL_0947: Unknown result type (might be due to invalid IL or missing references) //IL_094c: Unknown result type (might be due to invalid IL or missing references) //IL_0957: Unknown result type (might be due to invalid IL or missing references) //IL_095e: Unknown result type (might be due to invalid IL or missing references) //IL_0969: Unknown result type (might be due to invalid IL or missing references) //IL_0976: Expected O, but got Unknown //IL_0978: Unknown result type (might be due to invalid IL or missing references) //IL_097d: Unknown result type (might be due to invalid IL or missing references) //IL_0988: Unknown result type (might be due to invalid IL or missing references) //IL_098f: Unknown result type (might be due to invalid IL or missing references) //IL_099a: Unknown result type (might be due to invalid IL or missing references) //IL_09a7: Expected O, but got Unknown //IL_09a9: Unknown result type (might be due to invalid IL or missing references) //IL_09ae: Unknown result type (might be due to invalid IL or missing references) //IL_09b9: Unknown result type (might be due to invalid IL or missing references) //IL_09c0: Unknown result type (might be due to invalid IL or missing references) //IL_09cb: Unknown result type (might be due to invalid IL or missing references) //IL_09d8: Expected O, but got Unknown //IL_09e8: Unknown result type (might be due to invalid IL or missing references) //IL_0a09: Unknown result type (might be due to invalid IL or missing references) //IL_0a48: Unknown result type (might be due to invalid IL or missing references) //IL_0a4d: Unknown result type (might be due to invalid IL or missing references) //IL_0a68: Unknown result type (might be due to invalid IL or missing references) //IL_0a6d: Unknown result type (might be due to invalid IL or missing references) //IL_0a88: Unknown result type (might be due to invalid IL or missing references) //IL_0a8d: Unknown result type (might be due to invalid IL or missing references) //IL_0aa8: Unknown result type (might be due to invalid IL or missing references) //IL_0aad: Unknown result type (might be due to invalid IL or missing references) //IL_0ac8: Unknown result type (might be due to invalid IL or missing references) //IL_0acd: Unknown result type (might be due to invalid IL or missing references) //IL_0af0: Unknown result type (might be due to invalid IL or missing references) //IL_0af5: Unknown result type (might be due to invalid IL or missing references) //IL_0b54: Unknown result type (might be due to invalid IL or missing references) //IL_0b59: Unknown result type (might be due to invalid IL or missing references) //IL_0b5f: Unknown result type (might be due to invalid IL or missing references) //IL_0b64: Unknown result type (might be due to invalid IL or missing references) //IL_0b74: Unknown result type (might be due to invalid IL or missing references) //IL_0b7b: Unknown result type (might be due to invalid IL or missing references) //IL_0b7c: Unknown result type (might be due to invalid IL or missing references) //IL_0b81: Unknown result type (might be due to invalid IL or missing references) //IL_0b88: Unknown result type (might be due to invalid IL or missing references) //IL_0b8f: Unknown result type (might be due to invalid IL or missing references) //IL_0b96: Unknown result type (might be due to invalid IL or missing references) //IL_0b9d: Unknown result type (might be due to invalid IL or missing references) //IL_0ba4: Unknown result type (might be due to invalid IL or missing references) //IL_0bab: Unknown result type (might be due to invalid IL or missing references) //IL_0bb2: Unknown result type (might be due to invalid IL or missing references) //IL_0bb9: Unknown result type (might be due to invalid IL or missing references) //IL_0bc0: Unknown result type (might be due to invalid IL or missing references) //IL_0bc7: Unknown result type (might be due to invalid IL or missing references) //IL_0bce: Unknown result type (might be due to invalid IL or missing references) //IL_0bd5: Unknown result type (might be due to invalid IL or missing references) //IL_0bdd: Unknown result type (might be due to invalid IL or missing references) //IL_0be5: Unknown result type (might be due to invalid IL or missing references) //IL_0bed: Unknown result type (might be due to invalid IL or missing references) //IL_0bf5: Unknown result type (might be due to invalid IL or missing references) //IL_0bfd: Unknown result type (might be due to invalid IL or missing references) //IL_0c05: Unknown result type (might be due to invalid IL or missing references) //IL_0c0d: Unknown result type (might be due to invalid IL or missing references) //IL_0c14: Unknown result type (might be due to invalid IL or missing references) //IL_0c1b: Unknown result type (might be due to invalid IL or missing references) //IL_0c22: Unknown result type (might be due to invalid IL or missing references) //IL_0c29: Unknown result type (might be due to invalid IL or missing references) //IL_0c30: Unknown result type (might be due to invalid IL or missing references) //IL_0c37: Unknown result type (might be due to invalid IL or missing references) //IL_0c3e: Unknown result type (might be due to invalid IL or missing references) //IL_0c4a: Expected O, but got Unknown //IL_0c4a: Unknown result type (might be due to invalid IL or missing references) //IL_0c51: Unknown result type (might be due to invalid IL or missing references) //IL_0c58: Unknown result type (might be due to invalid IL or missing references) //IL_0c5f: Unknown result type (might be due to invalid IL or missing references) //IL_0c64: Unknown result type (might be due to invalid IL or missing references) //IL_0c6c: Unknown result type (might be due to invalid IL or missing references) //IL_0c77: Unknown result type (might be due to invalid IL or missing references) //IL_0c7e: Unknown result type (might be due to invalid IL or missing references) //IL_0c8a: Expected O, but got Unknown //IL_0c8f: Unknown result type (might be due to invalid IL or missing references) //IL_0c96: Unknown result type (might be due to invalid IL or missing references) //IL_0c9d: Unknown result type (might be due to invalid IL or missing references) //IL_0ca9: Unknown result type (might be due to invalid IL or missing references) //IL_0cb5: Expected O, but got Unknown //IL_0d11: Unknown result type (might be due to invalid IL or missing references) //IL_0d16: Unknown result type (might be due to invalid IL or missing references) //IL_0d27: Unknown result type (might be due to invalid IL or missing references) //IL_0d38: Unknown result type (might be due to invalid IL or missing references) //IL_0d49: Unknown result type (might be due to invalid IL or missing references) //IL_0d5a: Unknown result type (might be due to invalid IL or missing references) //IL_0d6b: Unknown result type (might be due to invalid IL or missing references) //IL_0d7c: Unknown result type (might be due to invalid IL or missing references) //IL_0d8d: Unknown result type (might be due to invalid IL or missing references) //IL_0d9e: Unknown result type (might be due to invalid IL or missing references) //IL_0daf: Unknown result type (might be due to invalid IL or missing references) //IL_0dc0: Unknown result type (might be due to invalid IL or missing references) //IL_0dd1: Unknown result type (might be due to invalid IL or missing references) //IL_0de7: Expected O, but got Unknown //IL_0e07: Unknown result type (might be due to invalid IL or missing references) //IL_0e0c: Unknown result type (might be due to invalid IL or missing references) //IL_0e18: Unknown result type (might be due to invalid IL or missing references) //IL_0e24: Unknown result type (might be due to invalid IL or missing references) //IL_0e2b: Unknown result type (might be due to invalid IL or missing references) //IL_0e32: Unknown result type (might be due to invalid IL or missing references) //IL_0e39: Unknown result type (might be due to invalid IL or missing references) //IL_0e40: Unknown result type (might be due to invalid IL or missing references) //IL_0e47: Unknown result type (might be due to invalid IL or missing references) //IL_0e4e: Unknown result type (might be due to invalid IL or missing references) //IL_0e55: Unknown result type (might be due to invalid IL or missing references) //IL_0e5c: Unknown result type (might be due to invalid IL or missing references) //IL_0e63: Unknown result type (might be due to invalid IL or missing references) //IL_0e6a: Unknown result type (might be due to invalid IL or missing references) //IL_0e71: Unknown result type (might be due to invalid IL or missing references) //IL_0e7d: Expected O, but got Unknown //IL_0fb5: Unknown result type (might be due to invalid IL or missing references) //IL_0fba: Unknown result type (might be due to invalid IL or missing references) Dungeon val = LoadOfficialDungeonPrefab("Base_Mines"); Dungeon val2 = LoadOfficialDungeonPrefab("Base_Gungeon"); Dungeon val3 = LoadOfficialDungeonPrefab("Base_Sewer"); Dungeon val4 = LoadOfficialDungeonPrefab("Base_Cathedral"); Dungeon val5 = targetObject.AddComponent(); ExpandUtility.DuplicateComponent(val5, dungeonTemplate); DungeonMaterial val6 = ScriptableObject.CreateInstance(); ((Object)val6).name = "Belly"; val6.wallShards = val2.roomMaterialDefinitions[0].wallShards; val6.bigWallShards = val2.roomMaterialDefinitions[0].bigWallShards; val6.bigWallShardDamageThreshold = 10f; val6.fallbackVerticalTileMapEffects = val2.roomMaterialDefinitions[0].fallbackVerticalTileMapEffects; val6.fallbackHorizontalTileMapEffects = val2.roomMaterialDefinitions[0].fallbackHorizontalTileMapEffects; val6.pitfallVFXPrefab = ExpandPrefabs.Belly_PitVFX2; val6.UsePitAmbientVFX = true; val6.AmbientPitVFX = new List { ExpandPrefabs.Belly_PitVFX1, ExpandPrefabs.Belly_PitVFX3 }; val6.PitVFXMinCooldown = 5f; val6.PitVFXMaxCooldown = 15f; val6.ChanceToSpawnPitVFXOnCooldown = 0.9f; val6.stampFailChance = 0.2f; val6.overrideTableTable = null; val6.supportsPits = true; val6.doPitAO = false; val6.pitsAreOneDeep = false; val6.supportsDiagonalWalls = false; val6.supportsUpholstery = false; val6.carpetIsMainFloor = false; val6.supportsChannels = false; val6.minChannelPools = 0; val6.maxChannelPools = 3; val6.channelTenacity = 0.75f; val6.channelGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val6.supportsLavaOrLavalikeSquares = false; val6.carpetGrids = (TileIndexGrid[])(object)new TileIndexGrid[1] { ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Belly/carpetGrid1") }; val6.lavaGrids = (TileIndexGrid[])(object)new TileIndexGrid[1] { ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Belly/lavaGrid") }; val6.supportsIceSquares = false; val6.iceGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val6.roomFloorBorderGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Belly/roomFloorBorderGrid"); val6.roomCeilingBorderGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Belly/roomCeilingBorderGrid"); val6.pitLayoutGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Belly/pitLayoutGrid"); val6.pitBorderFlatGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Belly/pitBorderFlatGrid"); val6.pitBorderRaisedGrid = null; val6.additionalPitBorderFlatGrid = null; val6.outerCeilingBorderGrid = null; val6.floorSquareDensity = 0.05f; val6.floorSquares = (TileIndexGrid[])(object)new TileIndexGrid[0]; val6.usesFacewallGrids = false; val6.facewallGrids = (FacewallIndexGridDefinition[])(object)new FacewallIndexGridDefinition[1] { new FacewallIndexGridDefinition { grid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Belly/faceWallGrid1"), minWidth = 3, maxWidth = 20, hasIntermediaries = true, minIntermediaryBuffer = 4, maxIntermediaryBuffer = 6, minIntermediaryLength = 1, maxIntermediaryLength = 3, topsMatchBottoms = true, middleSectionSequential = false, canExistInCorners = false, forceEdgesInCorners = false, canAcceptWallDecoration = false, canAcceptFloorDecoration = true, forcedStampMatchingStyle = (IntermediaryMatchingStyle)0, canBePlacedInExits = true, chanceToPlaceIfPossible = 0.15f, perTileFailureRate = 0.05f } }; val6.usesInternalMaterialTransitions = false; val6.usesProceduralMaterialTransitions = false; val6.internalMaterialTransitions = (RoomInternalMaterialTransition[])(object)new RoomInternalMaterialTransition[0]; val6.secretRoomWallShardCollections = new List(0); val6.overrideStoneFloorType = false; val6.overrideFloorType = (CellFloorType)0; val6.useLighting = true; val6.lightPrefabs = new WeightedGameObjectCollection { elements = new List { new WeightedGameObject { rawGameObject = ExpandPrefabs.BellyLight, weight = 1f, forceDuplicatesPossible = false, pickupId = -1, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] } } }; val6.facewallLightStamps = val2.roomMaterialDefinitions[0].facewallLightStamps; val6.sidewallLightStamps = val2.roomMaterialDefinitions[0].sidewallLightStamps; val6.usesDecalLayer = false; val6.decalIndexGrid = null; val6.decalLayerStyle = (DecoStyle)0; val6.decalSize = 1; val6.decalSpacing = 1; val6.patternLayerStyle = (DecoStyle)99; val6.patternSpacing = 1; val6.patternSize = 1; val6.patternIndexGrid = null; val6.forceEdgesDiagonal = false; val6.exteriorFacadeBorderGrid = null; val6.facadeTopGrid = null; val6.bridgeGrid = null; DungeonTileStampData val7 = ScriptableObject.CreateInstance(); ((Object)val7).name = "ENV_BELLY_STAMP_DATA"; val7.tileStampWeight = 1f; val7.spriteStampWeight = 0f; val7.objectStampWeight = 1f; val7.stamps = (TileStampData[])(object)new TileStampData[0]; val7.spriteStamps = (SpriteStampData[])(object)new SpriteStampData[0]; val7.objectStamps = (ObjectStampData[])(object)new ObjectStampData[6] { new ObjectStampData { width = 1, height = 1, relativeWeight = 1f, placementRule = (StampPlacementRule)2, occupySpace = (StampSpace)0, stampCategory = (StampCategory)1, preferredIntermediaryStamps = 2, intermediaryMatchingStyle = (IntermediaryMatchingStyle)6, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List(0), indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = sharedAssets.LoadAsset("Big_Skull_001") }, new ObjectStampData { width = 1, height = 1, relativeWeight = 1f, placementRule = (StampPlacementRule)2, occupySpace = (StampSpace)0, stampCategory = (StampCategory)1, preferredIntermediaryStamps = 2, intermediaryMatchingStyle = (IntermediaryMatchingStyle)6, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List(0), indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = sharedAssets2.LoadAsset("Big_Skull_002") }, new ObjectStampData { width = 1, height = 1, relativeWeight = 1f, placementRule = (StampPlacementRule)2, occupySpace = (StampSpace)0, stampCategory = (StampCategory)1, preferredIntermediaryStamps = 2, intermediaryMatchingStyle = (IntermediaryMatchingStyle)6, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List(0), indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = sharedAssets2.LoadAsset("Big_Skull_003") }, new ObjectStampData { width = 2, height = 1, relativeWeight = 1f, placementRule = (StampPlacementRule)2, occupySpace = (StampSpace)0, stampCategory = (StampCategory)1, preferredIntermediaryStamps = 2, intermediaryMatchingStyle = (IntermediaryMatchingStyle)6, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List(0), indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = sharedAssets.LoadAsset("Skull_Pile_001") }, new ObjectStampData { width = 1, height = 2, relativeWeight = 1f, placementRule = (StampPlacementRule)2, occupySpace = (StampSpace)0, stampCategory = (StampCategory)1, preferredIntermediaryStamps = 4, intermediaryMatchingStyle = (IntermediaryMatchingStyle)6, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List(0), indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = sharedAssets.LoadAsset("Skeleton_Left_Sit_Corner") }, new ObjectStampData { width = 1, height = 2, relativeWeight = 1f, placementRule = (StampPlacementRule)2, occupySpace = (StampSpace)0, stampCategory = (StampCategory)1, preferredIntermediaryStamps = 4, intermediaryMatchingStyle = (IntermediaryMatchingStyle)6, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List(0), indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = sharedAssets2.LoadAsset("Skeleton_Right_Sit_Corner") } }; val7.SymmetricFrameChance = 0.1f; val7.SymmetricCompleteChance = 0.1f; ((Object)((Component)val5).gameObject).name = "Base_Belly"; val5.contentSource = (ContentSource)4; val5.DungeonSeed = 0; val5.DungeonFloorName = "Inside the Beast"; val5.DungeonShortName = "Inside the Beast"; val5.DungeonFloorLevelTextOverride = "A Disgusting Place..."; val5.LevelOverrideType = (LevelOverrideState)0; val5.debugSettings = new DebugDungeonSettings { RAPID_DEBUG_DUNGEON_ITERATION_SEEKER = false, RAPID_DEBUG_DUNGEON_ITERATION = false, RAPID_DEBUG_DUNGEON_COUNT = 50, GENERATION_VIEWER_MODE = false, FULL_MINIMAP_VISIBILITY = false, COOP_TEST = false, DISABLE_ENEMIES = false, DISABLE_LOOPS = false, DISABLE_SECRET_ROOM_COVERS = false, DISABLE_OUTLINES = false, WALLS_ARE_PITS = false }; val5.PatternSettings = new SemioticDungeonGenSettings { flows = new List { f2b_belly_flow_01.F2b_Belly_Flow_01 }, mandatoryExtraRooms = new List(0), optionalExtraRooms = new List(0), MAX_GENERATION_ATTEMPTS = 250, DEBUG_RENDER_CANVASES_SEPARATELY = false }; val5.ForceRegenerationOfCharacters = false; val5.ActuallyGenerateTilemap = true; TilemapDecoSettings val8 = new TilemapDecoSettings(); WeightedIntCollection val9 = new WeightedIntCollection(); val9.elements = (WeightedInt[])(object)new WeightedInt[5] { new WeightedInt { annotation = "belly", value = 0, weight = 1f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "unused", value = 1, weight = 0f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "shop", value = 2, weight = 0f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "unused", value = 3, weight = 0f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "unused", value = 4, weight = 0f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] } }; val8.standardRoomVisualSubtypes = val9; val8.decalLayerStyle = (DecoStyle)99; val8.decalSize = 3; val8.decalSpacing = 1; val8.decalExpansion = 0; val8.patternLayerStyle = (DecoStyle)99; val8.patternSize = 3; val8.patternSpacing = 3; val8.patternExpansion = 0; val8.decoPatchFrequency = 0.01f; val8.ambientLightColor = new Color(0.925355f, 1f, 0.661765f, 1f); val8.ambientLightColorTwo = new Color(0.92549f, 1f, 0.662745f, 1f); val8.lowQualityAmbientLightColor = new Color(1f, 1f, 1f, 1f); val8.lowQualityAmbientLightColorTwo = new Color(1f, 1f, 1f, 1f); val8.lowQualityCheapLightVector = new Vector4(1f, 0f, -1f, 0f); val8.UsesAlienFXFloorColor = false; val8.AlienFXFloorColor = new Color(0f, 0f, 0f, 1f); val8.generateLights = true; val8.lightCullingPercentage = 0.2f; val8.lightOverlapRadius = 8; val8.nearestAllowedLight = 12f; val8.minLightExpanseWidth = 2; val8.lightHeight = -2f; val8.lightCookies = (Texture2D[])(object)new Texture2D[0]; val8.debug_view = false; val5.decoSettings = val8; val5.tileIndices = new TileIndices { tilesetId = (ValidTilesets)4096, dungeonCollection = ExpandPrefabs.ENV_Tileset_Belly.GetComponent(), dungeonCollectionSupportsDiagonalWalls = false, aoTileIndices = new AOTileIndices { AOFloorTileIndex = 0, AOBottomWallBaseTileIndex = 1, AOBottomWallTileRightIndex = 2, AOBottomWallTileLeftIndex = 3, AOBottomWallTileBothIndex = 4, AOTopFacewallRightIndex = 6, AOTopFacewallLeftIndex = 5, AOTopFacewallBothIndex = 7, AOFloorWallLeft = 5, AOFloorWallRight = 6, AOFloorWallBoth = 7, AOFloorPizzaSliceLeft = 8, AOFloorPizzaSliceRight = 9, AOFloorPizzaSliceBoth = 10, AOFloorPizzaSliceLeftWallRight = 11, AOFloorPizzaSliceRightWallLeft = 12, AOFloorWallUpAndLeft = 13, AOFloorWallUpAndRight = 14, AOFloorWallUpAndBoth = 15, AOFloorDiagonalWallNortheast = -1, AOFloorDiagonalWallNortheastLower = -1, AOFloorDiagonalWallNortheastLowerJoint = -1, AOFloorDiagonalWallNorthwest = -1, AOFloorDiagonalWallNorthwestLower = -1, AOFloorDiagonalWallNorthwestLowerJoint = -1, AOBottomWallDiagonalNortheast = -1, AOBottomWallDiagonalNorthwest = -1 }, placeBorders = true, placePits = false, chestHighWallIndices = new List { new TileIndexVariant { index = 41, likelihood = 0.5f, overrideLayerIndex = 0, overrideIndex = 0 } }, decalIndexGrid = null, patternIndexGrid = null, globalSecondBorderTiles = new List(0), edgeDecorationTiles = null }; val5.roomMaterialDefinitions = (DungeonMaterial[])(object)new DungeonMaterial[5] { val6, val6, val6, val6, sharedAssets2.LoadAsset("Boss_Cathedral_StainedGlass_Lights") }; val5.dungeonWingDefinitions = (DungeonWingDefinition[])(object)new DungeonWingDefinition[0]; val5.pathGridDefinitions = new List { val.pathGridDefinitions[0] }; val5.dungeonDustups = new DustUpVFX { runDustup = val2.dungeonDustups.runDustup, waterDustup = val2.dungeonDustups.waterDustup, additionalWaterDustup = val2.dungeonDustups.additionalWaterDustup, rollNorthDustup = val2.dungeonDustups.rollNorthDustup, rollNorthEastDustup = val2.dungeonDustups.rollNorthEastDustup, rollEastDustup = val2.dungeonDustups.rollEastDustup, rollSouthEastDustup = val2.dungeonDustups.rollSouthEastDustup, rollSouthDustup = val2.dungeonDustups.rollSouthDustup, rollSouthWestDustup = val2.dungeonDustups.rollSouthWestDustup, rollWestDustup = val2.dungeonDustups.rollWestDustup, rollNorthWestDustup = val2.dungeonDustups.rollNorthWestDustup, rollLandDustup = val2.dungeonDustups.rollLandDustup }; val5.damageTypeEffectMatrix = val2.damageTypeEffectMatrix; val5.stampData = val7; val5.UsesCustomFloorIdea = false; val5.FloorIdea = new RobotDaveIdea { ValidEasyEnemyPlaceables = (DungeonPlaceable[])(object)new DungeonPlaceable[0], ValidHardEnemyPlaceables = (DungeonPlaceable[])(object)new DungeonPlaceable[0], UseWallSawblades = false, UseRollingLogsVertical = false, UseRollingLogsHorizontal = false, UseFloorPitTraps = false, UseFloorFlameTraps = false, UseFloorSpikeTraps = false, UseFloorConveyorBelts = false, UseCaveIns = false, UseAlarmMushrooms = false, UseChandeliers = false, UseMineCarts = false, CanIncludePits = true }; val5.PlaceDoors = true; val5.doorObjects = ExpandPrefabs.Belly_Doors; val5.oneWayDoorObjects = val4.oneWayDoorObjects; val5.oneWayDoorPressurePlate = ExpandPrefabs.Monstro_PressurePlate; val5.phantomBlockerDoorObjects = val4.phantomBlockerDoorObjects; val5.UsesWallWarpWingDoors = false; val5.baseChestContents = val4.baseChestContents; val5.SecretRoomSimpleTriggersFacewall = new List { val3.SecretRoomSimpleTriggersFacewall[0] }; val5.SecretRoomSimpleTriggersSidewall = new List { val3.SecretRoomSimpleTriggersSidewall[0] }; val5.SecretRoomComplexTriggers = new List(0); val5.SecretRoomDoorSparkVFX = val2.SecretRoomDoorSparkVFX; val5.SecretRoomHorizontalPoofVFX = val2.SecretRoomHorizontalPoofVFX; val5.SecretRoomVerticalPoofVFX = val2.SecretRoomVerticalPoofVFX; val5.sharedSettingsPrefab = val4.sharedSettingsPrefab; val5.NormalRatGUID = string.Empty; val5.BossMasteryTokenItemId = -1; val5.UsesOverrideTertiaryBossSets = false; val5.OverrideTertiaryRewardSets = new List(0); val5.defaultPlayerPrefab = val4.defaultPlayerPrefab; val5.StripPlayerOnArrival = false; val5.SuppressEmergencyCrates = false; val5.SetTutorialFlag = false; val5.PlayerIsLight = false; val5.PlayerLightColor = new Color(1f, 1f, 1f, 1f); val5.PlayerLightIntensity = 3f; val5.PlayerLightRadius = 5f; val5.PrefabsToAutoSpawn = (GameObject[])(object)new GameObject[0]; val5.musicEventName = "Play_EX_MUS_Belly_01"; val = null; val2 = null; val4 = null; val3 = null; } public static void InitWestDungeon(AssetBundle expandSharedAuto1, AssetBundle sharedAssets2, GameObject targetObject, Dungeon dungeonTemplate) { //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Unknown result type (might be due to invalid IL or missing references) //IL_0238: Unknown result type (might be due to invalid IL or missing references) //IL_023f: Unknown result type (might be due to invalid IL or missing references) //IL_0244: Unknown result type (might be due to invalid IL or missing references) //IL_024f: 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_0261: Unknown result type (might be due to invalid IL or missing references) //IL_0268: Unknown result type (might be due to invalid IL or missing references) //IL_0279: Expected O, but got Unknown //IL_0283: Expected O, but got Unknown //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02d6: Unknown result type (might be due to invalid IL or missing references) //IL_054a: Unknown result type (might be due to invalid IL or missing references) //IL_0557: Unknown result type (might be due to invalid IL or missing references) //IL_055c: Unknown result type (might be due to invalid IL or missing references) //IL_0563: Unknown result type (might be due to invalid IL or missing references) //IL_0568: Unknown result type (might be due to invalid IL or missing references) //IL_058b: Unknown result type (might be due to invalid IL or missing references) //IL_0596: Unknown result type (might be due to invalid IL or missing references) //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_05a4: Unknown result type (might be due to invalid IL or missing references) //IL_05b5: Expected O, but got Unknown //IL_05bf: Expected O, but got Unknown //IL_05f5: Unknown result type (might be due to invalid IL or missing references) //IL_0612: Unknown result type (might be due to invalid IL or missing references) //IL_08df: Unknown result type (might be due to invalid IL or missing references) //IL_08ee: Unknown result type (might be due to invalid IL or missing references) //IL_08f3: Unknown result type (might be due to invalid IL or missing references) //IL_08fa: Unknown result type (might be due to invalid IL or missing references) //IL_08ff: Unknown result type (might be due to invalid IL or missing references) //IL_0922: Unknown result type (might be due to invalid IL or missing references) //IL_092d: Unknown result type (might be due to invalid IL or missing references) //IL_0934: Unknown result type (might be due to invalid IL or missing references) //IL_093b: Unknown result type (might be due to invalid IL or missing references) //IL_094c: Expected O, but got Unknown //IL_0956: Expected O, but got Unknown //IL_0991: Unknown result type (might be due to invalid IL or missing references) //IL_09b2: Unknown result type (might be due to invalid IL or missing references) //IL_0a29: Unknown result type (might be due to invalid IL or missing references) //IL_0a58: Unknown result type (might be due to invalid IL or missing references) //IL_0a5e: Unknown result type (might be due to invalid IL or missing references) //IL_0a63: Unknown result type (might be due to invalid IL or missing references) //IL_0a6a: Unknown result type (might be due to invalid IL or missing references) //IL_0a71: Unknown result type (might be due to invalid IL or missing references) //IL_0a79: Unknown result type (might be due to invalid IL or missing references) //IL_0a80: Unknown result type (might be due to invalid IL or missing references) //IL_0a87: Unknown result type (might be due to invalid IL or missing references) //IL_0a8e: Unknown result type (might be due to invalid IL or missing references) //IL_0a95: Unknown result type (might be due to invalid IL or missing references) //IL_0a9c: Unknown result type (might be due to invalid IL or missing references) //IL_0aa3: Unknown result type (might be due to invalid IL or missing references) //IL_0aaa: Unknown result type (might be due to invalid IL or missing references) //IL_0ab6: Expected O, but got Unknown //IL_0aec: Unknown result type (might be due to invalid IL or missing references) //IL_0af3: Expected O, but got Unknown //IL_0af5: Unknown result type (might be due to invalid IL or missing references) //IL_0afc: Expected O, but got Unknown //IL_0b06: Unknown result type (might be due to invalid IL or missing references) //IL_0b0b: Unknown result type (might be due to invalid IL or missing references) //IL_0b16: Unknown result type (might be due to invalid IL or missing references) //IL_0b1d: Unknown result type (might be due to invalid IL or missing references) //IL_0b28: Unknown result type (might be due to invalid IL or missing references) //IL_0b35: Expected O, but got Unknown //IL_0b37: Unknown result type (might be due to invalid IL or missing references) //IL_0b3c: Unknown result type (might be due to invalid IL or missing references) //IL_0b47: Unknown result type (might be due to invalid IL or missing references) //IL_0b4e: Unknown result type (might be due to invalid IL or missing references) //IL_0b59: Unknown result type (might be due to invalid IL or missing references) //IL_0b66: Expected O, but got Unknown //IL_0b68: Unknown result type (might be due to invalid IL or missing references) //IL_0b6d: Unknown result type (might be due to invalid IL or missing references) //IL_0b78: Unknown result type (might be due to invalid IL or missing references) //IL_0b7f: Unknown result type (might be due to invalid IL or missing references) //IL_0b8a: Unknown result type (might be due to invalid IL or missing references) //IL_0b97: Expected O, but got Unknown //IL_0b99: Unknown result type (might be due to invalid IL or missing references) //IL_0b9e: Unknown result type (might be due to invalid IL or missing references) //IL_0ba9: Unknown result type (might be due to invalid IL or missing references) //IL_0bb0: Unknown result type (might be due to invalid IL or missing references) //IL_0bbb: Unknown result type (might be due to invalid IL or missing references) //IL_0bc8: Expected O, but got Unknown //IL_0bca: Unknown result type (might be due to invalid IL or missing references) //IL_0bcf: Unknown result type (might be due to invalid IL or missing references) //IL_0bda: Unknown result type (might be due to invalid IL or missing references) //IL_0be1: Unknown result type (might be due to invalid IL or missing references) //IL_0bec: Unknown result type (might be due to invalid IL or missing references) //IL_0bf9: Expected O, but got Unknown //IL_0bfb: Unknown result type (might be due to invalid IL or missing references) //IL_0c00: Unknown result type (might be due to invalid IL or missing references) //IL_0c0b: Unknown result type (might be due to invalid IL or missing references) //IL_0c12: Unknown result type (might be due to invalid IL or missing references) //IL_0c1d: Unknown result type (might be due to invalid IL or missing references) //IL_0c2a: Expected O, but got Unknown //IL_0c3a: Unknown result type (might be due to invalid IL or missing references) //IL_0c5b: Unknown result type (might be due to invalid IL or missing references) //IL_0c9a: Unknown result type (might be due to invalid IL or missing references) //IL_0c9f: Unknown result type (might be due to invalid IL or missing references) //IL_0cba: Unknown result type (might be due to invalid IL or missing references) //IL_0cbf: Unknown result type (might be due to invalid IL or missing references) //IL_0cda: Unknown result type (might be due to invalid IL or missing references) //IL_0cdf: Unknown result type (might be due to invalid IL or missing references) //IL_0cfa: Unknown result type (might be due to invalid IL or missing references) //IL_0cff: Unknown result type (might be due to invalid IL or missing references) //IL_0d1a: Unknown result type (might be due to invalid IL or missing references) //IL_0d1f: Unknown result type (might be due to invalid IL or missing references) //IL_0d42: Unknown result type (might be due to invalid IL or missing references) //IL_0d47: Unknown result type (might be due to invalid IL or missing references) //IL_0da5: Unknown result type (might be due to invalid IL or missing references) //IL_0daa: Unknown result type (might be due to invalid IL or missing references) //IL_0db0: Unknown result type (might be due to invalid IL or missing references) //IL_0db5: Unknown result type (might be due to invalid IL or missing references) //IL_0dc5: Unknown result type (might be due to invalid IL or missing references) //IL_0dcc: Unknown result type (might be due to invalid IL or missing references) //IL_0dcd: Unknown result type (might be due to invalid IL or missing references) //IL_0dd2: Unknown result type (might be due to invalid IL or missing references) //IL_0dd9: Unknown result type (might be due to invalid IL or missing references) //IL_0de0: Unknown result type (might be due to invalid IL or missing references) //IL_0de7: Unknown result type (might be due to invalid IL or missing references) //IL_0dee: Unknown result type (might be due to invalid IL or missing references) //IL_0df5: Unknown result type (might be due to invalid IL or missing references) //IL_0dfc: Unknown result type (might be due to invalid IL or missing references) //IL_0e03: Unknown result type (might be due to invalid IL or missing references) //IL_0e0a: Unknown result type (might be due to invalid IL or missing references) //IL_0e11: Unknown result type (might be due to invalid IL or missing references) //IL_0e18: Unknown result type (might be due to invalid IL or missing references) //IL_0e1f: Unknown result type (might be due to invalid IL or missing references) //IL_0e26: Unknown result type (might be due to invalid IL or missing references) //IL_0e2e: Unknown result type (might be due to invalid IL or missing references) //IL_0e36: Unknown result type (might be due to invalid IL or missing references) //IL_0e3e: Unknown result type (might be due to invalid IL or missing references) //IL_0e46: Unknown result type (might be due to invalid IL or missing references) //IL_0e4e: Unknown result type (might be due to invalid IL or missing references) //IL_0e56: Unknown result type (might be due to invalid IL or missing references) //IL_0e5e: Unknown result type (might be due to invalid IL or missing references) //IL_0e66: Unknown result type (might be due to invalid IL or missing references) //IL_0e6e: Unknown result type (might be due to invalid IL or missing references) //IL_0e76: Unknown result type (might be due to invalid IL or missing references) //IL_0e7e: Unknown result type (might be due to invalid IL or missing references) //IL_0e86: Unknown result type (might be due to invalid IL or missing references) //IL_0e8e: Unknown result type (might be due to invalid IL or missing references) //IL_0e95: Unknown result type (might be due to invalid IL or missing references) //IL_0ea1: Expected O, but got Unknown //IL_0ea1: Unknown result type (might be due to invalid IL or missing references) //IL_0ea8: Unknown result type (might be due to invalid IL or missing references) //IL_0eaf: Unknown result type (might be due to invalid IL or missing references) //IL_0eb6: Unknown result type (might be due to invalid IL or missing references) //IL_0ebb: Unknown result type (might be due to invalid IL or missing references) //IL_0ec3: Unknown result type (might be due to invalid IL or missing references) //IL_0ece: Unknown result type (might be due to invalid IL or missing references) //IL_0ed5: Unknown result type (might be due to invalid IL or missing references) //IL_0ee1: Expected O, but got Unknown //IL_0ee6: Unknown result type (might be due to invalid IL or missing references) //IL_0eed: Unknown result type (might be due to invalid IL or missing references) //IL_0ef4: Unknown result type (might be due to invalid IL or missing references) //IL_0f00: Unknown result type (might be due to invalid IL or missing references) //IL_0f0c: Expected O, but got Unknown //IL_0fb1: Unknown result type (might be due to invalid IL or missing references) //IL_0fb6: Unknown result type (might be due to invalid IL or missing references) //IL_0fbd: Unknown result type (might be due to invalid IL or missing references) //IL_0fc4: Unknown result type (might be due to invalid IL or missing references) //IL_0fcf: Unknown result type (might be due to invalid IL or missing references) //IL_0fd1: Unknown result type (might be due to invalid IL or missing references) //IL_0fd6: Unknown result type (might be due to invalid IL or missing references) //IL_0fd8: Unknown result type (might be due to invalid IL or missing references) //IL_0fdd: Unknown result type (might be due to invalid IL or missing references) //IL_0fdf: Unknown result type (might be due to invalid IL or missing references) //IL_0fe4: Unknown result type (might be due to invalid IL or missing references) //IL_0feb: Unknown result type (might be due to invalid IL or missing references) //IL_0fed: Unknown result type (might be due to invalid IL or missing references) //IL_0ff2: Unknown result type (might be due to invalid IL or missing references) //IL_0ff9: Unknown result type (might be due to invalid IL or missing references) //IL_0ffb: Unknown result type (might be due to invalid IL or missing references) //IL_1000: Unknown result type (might be due to invalid IL or missing references) //IL_1007: Unknown result type (might be due to invalid IL or missing references) //IL_100c: Unknown result type (might be due to invalid IL or missing references) //IL_1013: Unknown result type (might be due to invalid IL or missing references) //IL_1023: Expected O, but got Unknown //IL_1028: Unknown result type (might be due to invalid IL or missing references) //IL_102f: Unknown result type (might be due to invalid IL or missing references) //IL_1036: Unknown result type (might be due to invalid IL or missing references) //IL_1078: Expected O, but got Unknown //IL_107a: Unknown result type (might be due to invalid IL or missing references) //IL_107f: Unknown result type (might be due to invalid IL or missing references) //IL_1086: Unknown result type (might be due to invalid IL or missing references) //IL_108d: Unknown result type (might be due to invalid IL or missing references) //IL_1098: Unknown result type (might be due to invalid IL or missing references) //IL_109a: Unknown result type (might be due to invalid IL or missing references) //IL_109f: Unknown result type (might be due to invalid IL or missing references) //IL_10a1: Unknown result type (might be due to invalid IL or missing references) //IL_10a6: Unknown result type (might be due to invalid IL or missing references) //IL_10a8: Unknown result type (might be due to invalid IL or missing references) //IL_10ad: Unknown result type (might be due to invalid IL or missing references) //IL_10b4: Unknown result type (might be due to invalid IL or missing references) //IL_10b6: Unknown result type (might be due to invalid IL or missing references) //IL_10bb: Unknown result type (might be due to invalid IL or missing references) //IL_10c2: Unknown result type (might be due to invalid IL or missing references) //IL_10c4: Unknown result type (might be due to invalid IL or missing references) //IL_10c9: Unknown result type (might be due to invalid IL or missing references) //IL_10d0: Unknown result type (might be due to invalid IL or missing references) //IL_10d5: Unknown result type (might be due to invalid IL or missing references) //IL_10dc: Unknown result type (might be due to invalid IL or missing references) //IL_10ec: Expected O, but got Unknown //IL_10f1: Unknown result type (might be due to invalid IL or missing references) //IL_10f8: Unknown result type (might be due to invalid IL or missing references) //IL_10ff: Unknown result type (might be due to invalid IL or missing references) //IL_1141: Expected O, but got Unknown //IL_11d4: Unknown result type (might be due to invalid IL or missing references) //IL_11d9: Unknown result type (might be due to invalid IL or missing references) Dungeon val = LoadOfficialDungeonPrefab("Base_Castle"); Dungeon val2 = targetObject.AddComponent(); ExpandUtility.DuplicateComponent(val2, dungeonTemplate); DungeonMaterial val3 = ScriptableObject.CreateInstance(); ((Object)val3).name = "West_Canyon"; val3.wallShards = val2.roomMaterialDefinitions[0].wallShards; val3.bigWallShards = val2.roomMaterialDefinitions[0].bigWallShards; val3.bigWallShardDamageThreshold = 10f; val3.fallbackVerticalTileMapEffects = val2.roomMaterialDefinitions[0].fallbackVerticalTileMapEffects; val3.fallbackHorizontalTileMapEffects = val2.roomMaterialDefinitions[0].fallbackHorizontalTileMapEffects; val3.pitfallVFXPrefab = null; val3.UsePitAmbientVFX = false; val3.AmbientPitVFX = new List(0); val3.PitVFXMinCooldown = 5f; val3.PitVFXMaxCooldown = 30f; val3.ChanceToSpawnPitVFXOnCooldown = 1f; val3.stampFailChance = 0.2f; val3.overrideTableTable = null; val3.supportsPits = true; val3.doPitAO = true; val3.pitsAreOneDeep = false; val3.supportsDiagonalWalls = false; val3.supportsUpholstery = false; val3.carpetIsMainFloor = false; val3.carpetGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val3.supportsChannels = false; val3.minChannelPools = 0; val3.maxChannelPools = 3; val3.channelTenacity = 0.75f; val3.channelGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val3.supportsLavaOrLavalikeSquares = false; val3.lavaGrids = (TileIndexGrid[])(object)new TileIndexGrid[1] { ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "West/Canyon/lavaGrid") }; val3.supportsIceSquares = false; val3.iceGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val3.roomFloorBorderGrid = null; val3.roomCeilingBorderGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "West/Canyon/roomCeilingBorderGrid"); val3.pitLayoutGrid = null; val3.pitBorderRaisedGrid = null; val3.additionalPitBorderFlatGrid = null; val3.pitBorderFlatGrid = null; val3.outerCeilingBorderGrid = null; val3.floorSquareDensity = 0f; val3.floorSquares = (TileIndexGrid[])(object)new TileIndexGrid[1] { ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "West/Canyon/floorGrid1") }; val3.usesFacewallGrids = false; val3.facewallGrids = (FacewallIndexGridDefinition[])(object)new FacewallIndexGridDefinition[0]; val3.usesInternalMaterialTransitions = false; val3.usesProceduralMaterialTransitions = false; val3.internalMaterialTransitions = (RoomInternalMaterialTransition[])(object)new RoomInternalMaterialTransition[0]; val3.secretRoomWallShardCollections = new List(0); val3.overrideStoneFloorType = false; val3.overrideFloorType = (CellFloorType)0; val3.useLighting = true; val3.lightPrefabs = new WeightedGameObjectCollection { elements = new List { new WeightedGameObject { rawGameObject = ExpandPrefabs.WestLight, weight = 1f, forceDuplicatesPossible = false, pickupId = -1, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] } } }; val3.facewallLightStamps = val2.roomMaterialDefinitions[0].facewallLightStamps; val3.sidewallLightStamps = val2.roomMaterialDefinitions[0].sidewallLightStamps; val3.usesDecalLayer = false; val3.decalIndexGrid = null; val3.decalLayerStyle = (DecoStyle)0; val3.decalSize = 1; val3.decalSpacing = 1; val3.usesPatternLayer = false; val3.patternLayerStyle = (DecoStyle)99; val3.patternSpacing = 1; val3.patternSize = 1; val3.patternIndexGrid = null; val3.forceEdgesDiagonal = true; val3.exteriorFacadeBorderGrid = null; val3.facadeTopGrid = null; val3.bridgeGrid = null; DungeonMaterial val4 = ScriptableObject.CreateInstance(); ((Object)val4).name = "West_Wood_Interior"; val4.wallShards = val2.roomMaterialDefinitions[0].wallShards; val4.bigWallShards = val2.roomMaterialDefinitions[0].bigWallShards; val4.bigWallShardDamageThreshold = 10f; val4.fallbackVerticalTileMapEffects = val2.roomMaterialDefinitions[0].fallbackVerticalTileMapEffects; val4.fallbackHorizontalTileMapEffects = val2.roomMaterialDefinitions[0].fallbackHorizontalTileMapEffects; val4.pitfallVFXPrefab = null; val4.UsePitAmbientVFX = false; val4.AmbientPitVFX = new List(0); val4.PitVFXMinCooldown = 5f; val4.PitVFXMaxCooldown = 30f; val4.ChanceToSpawnPitVFXOnCooldown = 1f; val4.stampFailChance = 0.2f; val4.overrideTableTable = null; val4.supportsPits = false; val4.doPitAO = true; val4.pitsAreOneDeep = false; val4.supportsDiagonalWalls = false; val4.supportsUpholstery = true; val4.carpetIsMainFloor = false; val4.carpetGrids = (TileIndexGrid[])(object)new TileIndexGrid[1] { ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "West/WoodInterior/carpetGrid1") }; val4.supportsChannels = false; val4.minChannelPools = 0; val4.maxChannelPools = 3; val4.channelTenacity = 0.75f; val4.channelGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val4.supportsLavaOrLavalikeSquares = false; val4.lavaGrids = (TileIndexGrid[])(object)new TileIndexGrid[1] { ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "West/WoodInterior/lavaGrid") }; val4.supportsIceSquares = false; val4.iceGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val4.roomFloorBorderGrid = null; val4.roomCeilingBorderGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "West/WoodInterior/roomCeilingBorderGrid"); val4.roomCeilingBorderGrid.topCapIndices.indices[0] = 575; val4.pitLayoutGrid = null; val4.pitBorderRaisedGrid = null; val4.additionalPitBorderFlatGrid = null; val4.pitBorderFlatGrid = null; val4.outerCeilingBorderGrid = null; val4.floorSquareDensity = 0f; val4.floorSquares = (TileIndexGrid[])(object)new TileIndexGrid[1] { ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "West/WoodInterior/floorGrid1") }; val4.usesFacewallGrids = false; val4.facewallGrids = (FacewallIndexGridDefinition[])(object)new FacewallIndexGridDefinition[0]; val4.usesInternalMaterialTransitions = false; val4.usesProceduralMaterialTransitions = false; val4.internalMaterialTransitions = (RoomInternalMaterialTransition[])(object)new RoomInternalMaterialTransition[0]; val4.secretRoomWallShardCollections = new List(0); val4.overrideStoneFloorType = false; val4.overrideFloorType = (CellFloorType)0; val4.useLighting = true; val4.lightPrefabs = new WeightedGameObjectCollection { elements = new List { new WeightedGameObject { rawGameObject = val.roomMaterialDefinitions[0].lightPrefabs.elements[0].rawGameObject, weight = 1f, forceDuplicatesPossible = false, pickupId = -1, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] } } }; val4.facewallLightStamps = val2.roomMaterialDefinitions[0].facewallLightStamps; val4.sidewallLightStamps = val2.roomMaterialDefinitions[0].sidewallLightStamps; val4.usesDecalLayer = false; val4.decalIndexGrid = null; val4.decalLayerStyle = (DecoStyle)0; val4.decalSize = 1; val4.decalSpacing = 1; val4.usesPatternLayer = false; val4.patternLayerStyle = (DecoStyle)99; val4.patternSpacing = 1; val4.patternSize = 1; val4.patternIndexGrid = null; val4.forceEdgesDiagonal = false; val4.exteriorFacadeBorderGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "West/WoodInterior/exteriorFacadeBorderGrid"); val4.facadeTopGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "West/WoodInterior/facadeTopGrid"); val4.bridgeGrid = null; DungeonMaterial val5 = ScriptableObject.CreateInstance(); ((Object)val5).name = "West_Red_Interior"; val5.wallShards = val2.roomMaterialDefinitions[0].wallShards; val5.bigWallShards = val2.roomMaterialDefinitions[0].bigWallShards; val5.bigWallShardDamageThreshold = 10f; val5.fallbackVerticalTileMapEffects = val2.roomMaterialDefinitions[0].fallbackVerticalTileMapEffects; val5.fallbackHorizontalTileMapEffects = val2.roomMaterialDefinitions[0].fallbackHorizontalTileMapEffects; val5.pitfallVFXPrefab = null; val5.UsePitAmbientVFX = false; val5.AmbientPitVFX = new List(0); val5.PitVFXMinCooldown = 5f; val5.PitVFXMaxCooldown = 30f; val5.ChanceToSpawnPitVFXOnCooldown = 1f; val5.stampFailChance = 0.2f; val5.overrideTableTable = null; val5.supportsPits = false; val5.doPitAO = true; val5.pitsAreOneDeep = false; val5.supportsDiagonalWalls = false; val5.supportsUpholstery = true; val5.carpetIsMainFloor = false; val5.carpetGrids = (TileIndexGrid[])(object)new TileIndexGrid[1] { ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "West/RedInterior/carpetGrid1") }; val5.supportsChannels = false; val5.minChannelPools = 0; val5.maxChannelPools = 3; val5.channelTenacity = 0.75f; val5.channelGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val5.supportsLavaOrLavalikeSquares = false; val5.lavaGrids = (TileIndexGrid[])(object)new TileIndexGrid[1] { ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "West/RedInterior/lavaGrid") }; val5.supportsIceSquares = false; val5.iceGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val5.roomFloorBorderGrid = null; val5.roomCeilingBorderGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "West/RedInterior/roomCeilingBorderGrid"); val5.roomCeilingBorderGrid.topCapIndices.indices[0] = 580; val5.pitLayoutGrid = null; val5.pitBorderRaisedGrid = null; val5.additionalPitBorderFlatGrid = null; val5.pitBorderFlatGrid = null; val5.outerCeilingBorderGrid = null; val5.floorSquareDensity = 0f; val5.floorSquares = (TileIndexGrid[])(object)new TileIndexGrid[1] { ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "West/RedInterior/floorGrid1") }; val5.usesFacewallGrids = false; val5.facewallGrids = (FacewallIndexGridDefinition[])(object)new FacewallIndexGridDefinition[0]; val5.usesInternalMaterialTransitions = false; val5.usesProceduralMaterialTransitions = false; val5.internalMaterialTransitions = (RoomInternalMaterialTransition[])(object)new RoomInternalMaterialTransition[0]; val5.secretRoomWallShardCollections = new List(0); val5.overrideStoneFloorType = false; val5.overrideFloorType = (CellFloorType)0; val5.useLighting = true; val5.lightPrefabs = new WeightedGameObjectCollection { elements = new List { new WeightedGameObject { rawGameObject = val.roomMaterialDefinitions[0].lightPrefabs.elements[0].rawGameObject, weight = 1f, forceDuplicatesPossible = false, pickupId = -1, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] } } }; val5.facewallLightStamps = val2.roomMaterialDefinitions[0].facewallLightStamps; val5.sidewallLightStamps = val2.roomMaterialDefinitions[0].sidewallLightStamps; val5.usesDecalLayer = false; val5.decalIndexGrid = null; val5.decalLayerStyle = (DecoStyle)0; val5.decalSize = 1; val5.decalSpacing = 1; val5.usesPatternLayer = false; val5.patternLayerStyle = (DecoStyle)99; val5.patternSpacing = 1; val5.patternSize = 1; val5.patternIndexGrid = null; val5.forceEdgesDiagonal = false; val5.exteriorFacadeBorderGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "West/RedInterior/exteriorFacadeBorderGrid"); val5.facadeTopGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "West/RedInterior/facadeTopGrid"); val5.bridgeGrid = null; ((Object)((Component)val2).gameObject).name = "Base_West"; val2.contentSource = (ContentSource)4; val2.DungeonSeed = 0; val2.DungeonFloorName = "Old West"; val2.DungeonShortName = "Old West"; val2.DungeonFloorLevelTextOverride = "Old Western"; val2.LevelOverrideType = (LevelOverrideState)0; val2.debugSettings = new DebugDungeonSettings { RAPID_DEBUG_DUNGEON_ITERATION_SEEKER = false, RAPID_DEBUG_DUNGEON_ITERATION = false, RAPID_DEBUG_DUNGEON_COUNT = 50, GENERATION_VIEWER_MODE = false, FULL_MINIMAP_VISIBILITY = false, COOP_TEST = false, DISABLE_ENEMIES = false, DISABLE_LOOPS = false, DISABLE_SECRET_ROOM_COVERS = false, DISABLE_OUTLINES = false, WALLS_ARE_PITS = false }; val2.PatternSettings.flows = new List { f4c_west_flow_01.F4c_West_Flow_01 }; val2.PatternSettings.MAX_GENERATION_ATTEMPTS = 1; val2.ForceRegenerationOfCharacters = false; val2.ActuallyGenerateTilemap = true; TilemapDecoSettings val6 = new TilemapDecoSettings(); WeightedIntCollection val7 = new WeightedIntCollection(); val7.elements = (WeightedInt[])(object)new WeightedInt[6] { new WeightedInt { annotation = "canyon", value = 0, weight = 1f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "interior wood", value = 1, weight = 1f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "interior red", value = 2, weight = 1f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "unused", value = 3, weight = 0f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "unused", value = 4, weight = 0f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "unused", value = 5, weight = 0f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] } }; val6.standardRoomVisualSubtypes = val7; val6.decalLayerStyle = (DecoStyle)99; val6.decalSize = 3; val6.decalSpacing = 1; val6.decalExpansion = 0; val6.patternLayerStyle = (DecoStyle)99; val6.patternSize = 3; val6.patternSpacing = 3; val6.patternExpansion = 0; val6.decoPatchFrequency = 0.01f; val6.ambientLightColor = new Color(0.81532f, 0.786505f, 0.905882f, 1f); val6.ambientLightColorTwo = new Color(0.76826f, 0.724221f, 0.905882f, 1f); val6.lowQualityAmbientLightColor = new Color(0.946203f, 0.941987f, 0.977941f, 1f); val6.lowQualityAmbientLightColorTwo = new Color(0.985294f, 0.943724f, 0.891112f, 1f); val6.lowQualityCheapLightVector = new Vector4(1f, 0f, -1f, 0f); val6.UsesAlienFXFloorColor = false; val6.AlienFXFloorColor = new Color(0f, 0f, 0f, 1f); val6.generateLights = true; val6.lightCullingPercentage = 0.2f; val6.lightOverlapRadius = 8; val6.nearestAllowedLight = 12f; val6.minLightExpanseWidth = 2; val6.lightHeight = -2f; val6.lightCookies = (Texture2D[])(object)new Texture2D[0]; val6.debug_view = false; val2.decoSettings = val6; val2.tileIndices = new TileIndices { tilesetId = (ValidTilesets)1024, dungeonCollection = ExpandPrefabs.ENV_Tileset_West.GetComponent(), dungeonCollectionSupportsDiagonalWalls = false, aoTileIndices = new AOTileIndices { AOFloorTileIndex = 0, AOBottomWallBaseTileIndex = 1, AOBottomWallTileRightIndex = 2, AOBottomWallTileLeftIndex = 3, AOBottomWallTileBothIndex = 4, AOTopFacewallRightIndex = 6, AOTopFacewallLeftIndex = 5, AOTopFacewallBothIndex = 7, AOFloorWallLeft = 5, AOFloorWallRight = 6, AOFloorWallBoth = 7, AOFloorPizzaSliceLeft = 8, AOFloorPizzaSliceRight = 9, AOFloorPizzaSliceBoth = 10, AOFloorPizzaSliceLeftWallRight = 11, AOFloorPizzaSliceRightWallLeft = 12, AOFloorWallUpAndLeft = 13, AOFloorWallUpAndRight = 14, AOFloorWallUpAndBoth = 15, AOFloorDiagonalWallNortheast = 42, AOFloorDiagonalWallNortheastLower = 64, AOFloorDiagonalWallNortheastLowerJoint = 86, AOFloorDiagonalWallNorthwest = 43, AOFloorDiagonalWallNorthwestLower = 65, AOFloorDiagonalWallNorthwestLowerJoint = 87, AOBottomWallDiagonalNortheast = -1, AOBottomWallDiagonalNorthwest = -1 }, placeBorders = true, placePits = false, chestHighWallIndices = new List { new TileIndexVariant { index = 41, likelihood = 0.5f, overrideLayerIndex = 0, overrideIndex = 0 } }, decalIndexGrid = null, patternIndexGrid = null, globalSecondBorderTiles = new List(0), edgeDecorationTiles = null }; val2.roomMaterialDefinitions = (DungeonMaterial[])(object)new DungeonMaterial[7] { val3, val4, val5, val3, val3, val3, sharedAssets2.LoadAsset("Boss_Cathedral_StainedGlass_Lights") }; val2.dungeonWingDefinitions = (DungeonWingDefinition[])(object)new DungeonWingDefinition[0]; ObjectStampData[] objectStamps = val2.stampData.objectStamps; val2.stampData = ScriptableObject.CreateInstance(); ((Object)val2.stampData).name = "ENV_WEST_STAMP_DATA"; val2.stampData.tileStampWeight = 1f; val2.stampData.spriteStampWeight = 0f; val2.stampData.objectStampWeight = 0.08f; val2.stampData.stamps = (TileStampData[])(object)new TileStampData[2] { new TileStampData { width = 3, height = 2, relativeWeight = 1f, placementRule = (StampPlacementRule)0, occupySpace = (StampSpace)1, stampCategory = (StampCategory)0, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)1, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 1f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, stampTileIndices = new List { 100, 129, 100, 100, 151, 100 } }, new TileStampData { width = 3, height = 2, relativeWeight = 1f, placementRule = (StampPlacementRule)0, occupySpace = (StampSpace)1, stampCategory = (StampCategory)0, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)1, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 2, roomRelativeWeight = 1f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, stampTileIndices = new List { 100, 130, 100, 100, 152, 100 } } }; val2.stampData.spriteStamps = (SpriteStampData[])(object)new SpriteStampData[0]; val2.stampData.objectStamps = objectStamps; val2.stampData.SymmetricFrameChance = 0.1f; val2.stampData.SymmetricCompleteChance = 0.1f; val2.UsesCustomFloorIdea = false; val2.PlaceDoors = true; val2.doorObjects = ExpandPrefabs.West_Doors; val2.BossMasteryTokenItemId = -1; val2.UsesOverrideTertiaryBossSets = false; val2.OverrideTertiaryRewardSets = new List(0); val2.StripPlayerOnArrival = false; val2.SuppressEmergencyCrates = false; val2.SetTutorialFlag = false; val2.PlayerIsLight = false; val2.PlayerLightColor = Color.white; val2.PlayerLightIntensity = 3f; val2.PlayerLightRadius = 5f; val2.musicEventName = "Play_EX_MUS_West_01"; val = null; sharedAssets2 = null; } public static void InitPhobosDungeon(AssetBundle expandSharedAuto1, AssetBundle sharedAssets2, GameObject targetObject, Dungeon dungeonTemplate) { //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Expected O, but got Unknown //IL_02b6: Unknown result type (might be due to invalid IL or missing references) //IL_02c5: Unknown result type (might be due to invalid IL or missing references) //IL_02ca: Unknown result type (might be due to invalid IL or missing references) //IL_02d1: Unknown result type (might be due to invalid IL or missing references) //IL_02d6: Unknown result type (might be due to invalid IL or missing references) //IL_02e1: Unknown result type (might be due to invalid IL or missing references) //IL_02ec: Unknown result type (might be due to invalid IL or missing references) //IL_02f3: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: Unknown result type (might be due to invalid IL or missing references) //IL_030b: Expected O, but got Unknown //IL_0315: Expected O, but got Unknown //IL_0352: Unknown result type (might be due to invalid IL or missing references) //IL_0373: Unknown result type (might be due to invalid IL or missing references) //IL_03d9: Unknown result type (might be due to invalid IL or missing references) //IL_03de: Unknown result type (might be due to invalid IL or missing references) //IL_03ef: Expected O, but got Unknown //IL_0628: Unknown result type (might be due to invalid IL or missing references) //IL_0637: Unknown result type (might be due to invalid IL or missing references) //IL_063c: Unknown result type (might be due to invalid IL or missing references) //IL_0643: Unknown result type (might be due to invalid IL or missing references) //IL_0648: Unknown result type (might be due to invalid IL or missing references) //IL_0653: Unknown result type (might be due to invalid IL or missing references) //IL_065e: Unknown result type (might be due to invalid IL or missing references) //IL_0665: Unknown result type (might be due to invalid IL or missing references) //IL_066c: Unknown result type (might be due to invalid IL or missing references) //IL_067d: Expected O, but got Unknown //IL_0687: Expected O, but got Unknown //IL_06c4: Unknown result type (might be due to invalid IL or missing references) //IL_06e5: Unknown result type (might be due to invalid IL or missing references) //IL_074b: Unknown result type (might be due to invalid IL or missing references) //IL_0750: Unknown result type (might be due to invalid IL or missing references) //IL_0761: Expected O, but got Unknown //IL_09b2: Unknown result type (might be due to invalid IL or missing references) //IL_09c1: Unknown result type (might be due to invalid IL or missing references) //IL_09c6: Unknown result type (might be due to invalid IL or missing references) //IL_09cd: Unknown result type (might be due to invalid IL or missing references) //IL_09d2: Unknown result type (might be due to invalid IL or missing references) //IL_09dd: Unknown result type (might be due to invalid IL or missing references) //IL_09e8: Unknown result type (might be due to invalid IL or missing references) //IL_09ef: Unknown result type (might be due to invalid IL or missing references) //IL_09f6: Unknown result type (might be due to invalid IL or missing references) //IL_0a07: Expected O, but got Unknown //IL_0a11: Expected O, but got Unknown //IL_0a4e: Unknown result type (might be due to invalid IL or missing references) //IL_0a6f: Unknown result type (might be due to invalid IL or missing references) //IL_0aeb: Unknown result type (might be due to invalid IL or missing references) //IL_0af0: Unknown result type (might be due to invalid IL or missing references) //IL_0af7: Unknown result type (might be due to invalid IL or missing references) //IL_0afe: Unknown result type (might be due to invalid IL or missing references) //IL_0b06: Unknown result type (might be due to invalid IL or missing references) //IL_0b0d: Unknown result type (might be due to invalid IL or missing references) //IL_0b14: Unknown result type (might be due to invalid IL or missing references) //IL_0b1b: Unknown result type (might be due to invalid IL or missing references) //IL_0b22: Unknown result type (might be due to invalid IL or missing references) //IL_0b29: Unknown result type (might be due to invalid IL or missing references) //IL_0b30: Unknown result type (might be due to invalid IL or missing references) //IL_0b37: Unknown result type (might be due to invalid IL or missing references) //IL_0b43: Expected O, but got Unknown //IL_0b45: Unknown result type (might be due to invalid IL or missing references) //IL_0b4a: Unknown result type (might be due to invalid IL or missing references) //IL_0b75: Unknown result type (might be due to invalid IL or missing references) //IL_0b81: Unknown result type (might be due to invalid IL or missing references) //IL_0b8d: Unknown result type (might be due to invalid IL or missing references) //IL_0b98: Unknown result type (might be due to invalid IL or missing references) //IL_0ba4: Expected O, but got Unknown //IL_0bb6: Unknown result type (might be due to invalid IL or missing references) //IL_0bbd: Expected O, but got Unknown //IL_0bbf: Unknown result type (might be due to invalid IL or missing references) //IL_0bc6: Expected O, but got Unknown //IL_0bd0: Unknown result type (might be due to invalid IL or missing references) //IL_0bd5: Unknown result type (might be due to invalid IL or missing references) //IL_0be0: Unknown result type (might be due to invalid IL or missing references) //IL_0be7: Unknown result type (might be due to invalid IL or missing references) //IL_0bf2: Unknown result type (might be due to invalid IL or missing references) //IL_0bff: Expected O, but got Unknown //IL_0c01: Unknown result type (might be due to invalid IL or missing references) //IL_0c06: Unknown result type (might be due to invalid IL or missing references) //IL_0c11: Unknown result type (might be due to invalid IL or missing references) //IL_0c18: Unknown result type (might be due to invalid IL or missing references) //IL_0c23: Unknown result type (might be due to invalid IL or missing references) //IL_0c30: Expected O, but got Unknown //IL_0c32: Unknown result type (might be due to invalid IL or missing references) //IL_0c37: Unknown result type (might be due to invalid IL or missing references) //IL_0c42: Unknown result type (might be due to invalid IL or missing references) //IL_0c49: Unknown result type (might be due to invalid IL or missing references) //IL_0c54: Unknown result type (might be due to invalid IL or missing references) //IL_0c61: Expected O, but got Unknown //IL_0c63: Unknown result type (might be due to invalid IL or missing references) //IL_0c68: Unknown result type (might be due to invalid IL or missing references) //IL_0c73: Unknown result type (might be due to invalid IL or missing references) //IL_0c7a: Unknown result type (might be due to invalid IL or missing references) //IL_0c85: Unknown result type (might be due to invalid IL or missing references) //IL_0c92: Expected O, but got Unknown //IL_0ca2: Unknown result type (might be due to invalid IL or missing references) //IL_0cc3: Unknown result type (might be due to invalid IL or missing references) //IL_0d02: Unknown result type (might be due to invalid IL or missing references) //IL_0d07: Unknown result type (might be due to invalid IL or missing references) //IL_0d22: Unknown result type (might be due to invalid IL or missing references) //IL_0d27: Unknown result type (might be due to invalid IL or missing references) //IL_0d2e: Unknown result type (might be due to invalid IL or missing references) //IL_0d33: Unknown result type (might be due to invalid IL or missing references) //IL_0d3a: Unknown result type (might be due to invalid IL or missing references) //IL_0d3f: Unknown result type (might be due to invalid IL or missing references) //IL_0d5a: Unknown result type (might be due to invalid IL or missing references) //IL_0d5f: Unknown result type (might be due to invalid IL or missing references) //IL_0d6e: Unknown result type (might be due to invalid IL or missing references) //IL_0d73: Unknown result type (might be due to invalid IL or missing references) //IL_0dd2: Unknown result type (might be due to invalid IL or missing references) //IL_0dd7: Unknown result type (might be due to invalid IL or missing references) //IL_0ddd: Unknown result type (might be due to invalid IL or missing references) //IL_0de2: Unknown result type (might be due to invalid IL or missing references) //IL_0df2: Unknown result type (might be due to invalid IL or missing references) //IL_0df9: Unknown result type (might be due to invalid IL or missing references) //IL_0dfa: Unknown result type (might be due to invalid IL or missing references) //IL_0dff: Unknown result type (might be due to invalid IL or missing references) //IL_0e06: Unknown result type (might be due to invalid IL or missing references) //IL_0e0d: Unknown result type (might be due to invalid IL or missing references) //IL_0e14: Unknown result type (might be due to invalid IL or missing references) //IL_0e1b: Unknown result type (might be due to invalid IL or missing references) //IL_0e22: Unknown result type (might be due to invalid IL or missing references) //IL_0e29: Unknown result type (might be due to invalid IL or missing references) //IL_0e30: Unknown result type (might be due to invalid IL or missing references) //IL_0e37: Unknown result type (might be due to invalid IL or missing references) //IL_0e3e: Unknown result type (might be due to invalid IL or missing references) //IL_0e45: Unknown result type (might be due to invalid IL or missing references) //IL_0e4c: Unknown result type (might be due to invalid IL or missing references) //IL_0e53: Unknown result type (might be due to invalid IL or missing references) //IL_0e5b: Unknown result type (might be due to invalid IL or missing references) //IL_0e63: Unknown result type (might be due to invalid IL or missing references) //IL_0e6b: Unknown result type (might be due to invalid IL or missing references) //IL_0e73: Unknown result type (might be due to invalid IL or missing references) //IL_0e7b: Unknown result type (might be due to invalid IL or missing references) //IL_0e83: Unknown result type (might be due to invalid IL or missing references) //IL_0e8b: Unknown result type (might be due to invalid IL or missing references) //IL_0e92: Unknown result type (might be due to invalid IL or missing references) //IL_0e99: Unknown result type (might be due to invalid IL or missing references) //IL_0ea0: Unknown result type (might be due to invalid IL or missing references) //IL_0ea7: Unknown result type (might be due to invalid IL or missing references) //IL_0eae: Unknown result type (might be due to invalid IL or missing references) //IL_0eb5: Unknown result type (might be due to invalid IL or missing references) //IL_0ebc: Unknown result type (might be due to invalid IL or missing references) //IL_0ec8: Expected O, but got Unknown //IL_0ec8: Unknown result type (might be due to invalid IL or missing references) //IL_0ecf: Unknown result type (might be due to invalid IL or missing references) //IL_0ed6: Unknown result type (might be due to invalid IL or missing references) //IL_0edd: Unknown result type (might be due to invalid IL or missing references) //IL_0ee2: Unknown result type (might be due to invalid IL or missing references) //IL_0eea: Unknown result type (might be due to invalid IL or missing references) //IL_0ef5: Unknown result type (might be due to invalid IL or missing references) //IL_0efc: Unknown result type (might be due to invalid IL or missing references) //IL_0f08: Expected O, but got Unknown //IL_0f0d: Unknown result type (might be due to invalid IL or missing references) //IL_0f14: Unknown result type (might be due to invalid IL or missing references) //IL_0f1b: Unknown result type (might be due to invalid IL or missing references) //IL_0f27: Unknown result type (might be due to invalid IL or missing references) //IL_0f33: Expected O, but got Unknown //IL_0f9f: Unknown result type (might be due to invalid IL or missing references) //IL_0fa4: Unknown result type (might be due to invalid IL or missing references) //IL_0faf: Unknown result type (might be due to invalid IL or missing references) //IL_0fb1: Unknown result type (might be due to invalid IL or missing references) //IL_0fb6: Unknown result type (might be due to invalid IL or missing references) //IL_0fb7: Unknown result type (might be due to invalid IL or missing references) //IL_0fbc: Unknown result type (might be due to invalid IL or missing references) //IL_0fbe: Unknown result type (might be due to invalid IL or missing references) //IL_0fc3: Unknown result type (might be due to invalid IL or missing references) //IL_0fd4: Expected O, but got Unknown //IL_0fd9: Expected O, but got Unknown //IL_0fda: Unknown result type (might be due to invalid IL or missing references) //IL_0fdf: Unknown result type (might be due to invalid IL or missing references) //IL_0fea: Unknown result type (might be due to invalid IL or missing references) //IL_0fec: Unknown result type (might be due to invalid IL or missing references) //IL_0ff1: Unknown result type (might be due to invalid IL or missing references) //IL_0ff2: Unknown result type (might be due to invalid IL or missing references) //IL_0ff7: Unknown result type (might be due to invalid IL or missing references) //IL_0ff9: Unknown result type (might be due to invalid IL or missing references) //IL_0ffe: Unknown result type (might be due to invalid IL or missing references) //IL_100f: Expected O, but got Unknown //IL_1014: Expected O, but got Unknown //IL_1015: Unknown result type (might be due to invalid IL or missing references) //IL_101a: Unknown result type (might be due to invalid IL or missing references) //IL_1025: Unknown result type (might be due to invalid IL or missing references) //IL_1027: Unknown result type (might be due to invalid IL or missing references) //IL_102c: Unknown result type (might be due to invalid IL or missing references) //IL_102d: Unknown result type (might be due to invalid IL or missing references) //IL_1032: Unknown result type (might be due to invalid IL or missing references) //IL_1034: Unknown result type (might be due to invalid IL or missing references) //IL_1039: Unknown result type (might be due to invalid IL or missing references) //IL_104a: Expected O, but got Unknown //IL_104f: Expected O, but got Unknown //IL_1050: Unknown result type (might be due to invalid IL or missing references) //IL_1055: Unknown result type (might be due to invalid IL or missing references) //IL_1060: Unknown result type (might be due to invalid IL or missing references) //IL_1063: Unknown result type (might be due to invalid IL or missing references) //IL_1068: Unknown result type (might be due to invalid IL or missing references) //IL_1069: Unknown result type (might be due to invalid IL or missing references) //IL_106e: Unknown result type (might be due to invalid IL or missing references) //IL_1070: Unknown result type (might be due to invalid IL or missing references) //IL_1075: Unknown result type (might be due to invalid IL or missing references) //IL_1086: Expected O, but got Unknown //IL_108b: Expected O, but got Unknown //IL_1147: Unknown result type (might be due to invalid IL or missing references) //IL_114c: Unknown result type (might be due to invalid IL or missing references) //IL_1158: Unknown result type (might be due to invalid IL or missing references) //IL_1164: Unknown result type (might be due to invalid IL or missing references) //IL_116b: Unknown result type (might be due to invalid IL or missing references) //IL_1172: Unknown result type (might be due to invalid IL or missing references) //IL_1179: Unknown result type (might be due to invalid IL or missing references) //IL_1180: Unknown result type (might be due to invalid IL or missing references) //IL_1187: Unknown result type (might be due to invalid IL or missing references) //IL_118e: Unknown result type (might be due to invalid IL or missing references) //IL_1195: Unknown result type (might be due to invalid IL or missing references) //IL_119c: Unknown result type (might be due to invalid IL or missing references) //IL_11a3: Unknown result type (might be due to invalid IL or missing references) //IL_11aa: Unknown result type (might be due to invalid IL or missing references) //IL_11b1: Unknown result type (might be due to invalid IL or missing references) //IL_11bd: Expected O, but got Unknown //IL_1258: Unknown result type (might be due to invalid IL or missing references) //IL_125d: Unknown result type (might be due to invalid IL or missing references) Dungeon val = LoadOfficialDungeonPrefab("Base_Nakatomi"); Dungeon val2 = LoadOfficialDungeonPrefab("Base_Sewer"); Dungeon val3 = LoadOfficialDungeonPrefab("Base_Castle"); Dungeon val4 = LoadOfficialDungeonPrefab("Base_Catacombs"); Dungeon val5 = targetObject.AddComponent(); ExpandUtility.DuplicateComponent(val5, dungeonTemplate); DungeonMaterial val6 = ScriptableObject.CreateInstance(); ((Object)val6).name = "Phobos_Blue"; val6.wallShards = val3.roomMaterialDefinitions[0].wallShards; val6.bigWallShards = new WeightedGameObjectCollection { elements = new List(0) }; val6.bigWallShardDamageThreshold = 10f; val6.fallbackVerticalTileMapEffects = val5.roomMaterialDefinitions[0].fallbackVerticalTileMapEffects; val6.fallbackHorizontalTileMapEffects = val5.roomMaterialDefinitions[0].fallbackHorizontalTileMapEffects; val6.pitfallVFXPrefab = val2.roomMaterialDefinitions[0].pitfallVFXPrefab; val6.UsePitAmbientVFX = false; val6.AmbientPitVFX = new List(0); val6.PitVFXMinCooldown = 5f; val6.PitVFXMaxCooldown = 30f; val6.ChanceToSpawnPitVFXOnCooldown = 1f; val6.stampFailChance = 0.2f; val6.overrideTableTable = null; val6.supportsPits = true; val6.doPitAO = true; val6.pitsAreOneDeep = false; val6.supportsDiagonalWalls = false; val6.supportsUpholstery = false; val6.carpetIsMainFloor = false; val6.carpetGrids = (TileIndexGrid[])(object)new TileIndexGrid[1] { ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Phobos/Phobos_Blue/carpetGrid") }; val6.supportsChannels = false; val6.minChannelPools = 0; val6.maxChannelPools = 3; val6.channelTenacity = 0.75f; val6.channelGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val6.supportsLavaOrLavalikeSquares = false; val6.lavaGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val6.supportsIceSquares = false; val6.iceGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val6.roomFloorBorderGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Phobos/Phobos_Blue/roomFloorBorderGrid"); val6.roomCeilingBorderGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Phobos/Phobos_Blue/roomCeilingBorderGrid"); val6.pitLayoutGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Phobos/Phobos_Blue/pitLayoutGrid"); val6.pitBorderFlatGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Phobos/Phobos_Blue/pitBorderFlatGrid"); val6.pitBorderRaisedGrid = null; val6.additionalPitBorderFlatGrid = null; val6.outerCeilingBorderGrid = null; val6.floorSquareDensity = 0.05f; val6.floorSquares = (TileIndexGrid[])(object)new TileIndexGrid[0]; val6.usesFacewallGrids = false; val6.facewallGrids = val4.roomMaterialDefinitions[0].facewallGrids; val6.usesInternalMaterialTransitions = false; val6.usesProceduralMaterialTransitions = false; val6.internalMaterialTransitions = (RoomInternalMaterialTransition[])(object)new RoomInternalMaterialTransition[0]; val6.secretRoomWallShardCollections = new List(0); val6.overrideStoneFloorType = false; val6.overrideFloorType = (CellFloorType)0; val6.useLighting = true; val6.lightPrefabs = new WeightedGameObjectCollection { elements = new List { new WeightedGameObject { rawGameObject = ExpandPrefabs.PhobosLight, weight = 1f, forceDuplicatesPossible = false, pickupId = -1, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] } } }; val6.facewallLightStamps = val5.roomMaterialDefinitions[0].facewallLightStamps; val6.sidewallLightStamps = val5.roomMaterialDefinitions[0].sidewallLightStamps; val6.usesDecalLayer = false; val6.decalIndexGrid = null; val6.decalLayerStyle = (DecoStyle)0; val6.decalSize = 1; val6.decalSpacing = 1; val6.usesPatternLayer = false; val6.patternLayerStyle = (DecoStyle)99; val6.patternSpacing = 1; val6.patternSize = 1; val6.patternIndexGrid = null; val6.forceEdgesDiagonal = false; val6.exteriorFacadeBorderGrid = null; val6.facadeTopGrid = null; val6.bridgeGrid = null; DungeonMaterial val7 = ScriptableObject.CreateInstance(); ((Object)val7).name = "Phobos_Grey"; val7.wallShards = val3.roomMaterialDefinitions[0].wallShards; val7.bigWallShards = new WeightedGameObjectCollection { elements = new List(0) }; val7.bigWallShardDamageThreshold = 10f; val7.fallbackVerticalTileMapEffects = val5.roomMaterialDefinitions[0].fallbackVerticalTileMapEffects; val7.fallbackHorizontalTileMapEffects = val5.roomMaterialDefinitions[0].fallbackHorizontalTileMapEffects; val7.pitfallVFXPrefab = val2.roomMaterialDefinitions[0].pitfallVFXPrefab; val7.UsePitAmbientVFX = false; val7.AmbientPitVFX = new List(0); val7.PitVFXMinCooldown = 5f; val7.PitVFXMaxCooldown = 30f; val7.ChanceToSpawnPitVFXOnCooldown = 1f; val7.stampFailChance = 0.2f; val7.overrideTableTable = null; val7.supportsPits = true; val7.doPitAO = true; val7.pitsAreOneDeep = false; val7.supportsDiagonalWalls = false; val7.supportsUpholstery = false; val7.carpetIsMainFloor = false; val7.carpetGrids = (TileIndexGrid[])(object)new TileIndexGrid[1] { ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Phobos/Phobos_Grey/carpetGrid") }; val7.supportsChannels = false; val7.minChannelPools = 0; val7.maxChannelPools = 3; val7.channelTenacity = 0.75f; val7.channelGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val7.supportsLavaOrLavalikeSquares = false; val7.lavaGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val7.supportsIceSquares = false; val7.iceGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val7.roomFloorBorderGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Phobos/Phobos_Grey/roomFloorBorderGrid"); val7.roomCeilingBorderGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Phobos/Phobos_Grey/roomCeilingBorderGrid"); val7.pitLayoutGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Phobos/Phobos_Grey/pitLayoutGrid"); val7.pitBorderFlatGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Phobos/Phobos_Grey/pitBorderFlatGrid"); val7.pitBorderRaisedGrid = null; val7.additionalPitBorderFlatGrid = null; val7.outerCeilingBorderGrid = null; val7.floorSquareDensity = 0.05f; val7.floorSquares = (TileIndexGrid[])(object)new TileIndexGrid[0]; val7.usesFacewallGrids = false; val7.facewallGrids = val4.roomMaterialDefinitions[0].facewallGrids; val7.usesInternalMaterialTransitions = false; val7.usesProceduralMaterialTransitions = false; val7.internalMaterialTransitions = (RoomInternalMaterialTransition[])(object)new RoomInternalMaterialTransition[0]; val7.secretRoomWallShardCollections = new List(0); val7.overrideStoneFloorType = false; val7.overrideFloorType = (CellFloorType)0; val7.useLighting = true; val7.lightPrefabs = new WeightedGameObjectCollection { elements = new List { new WeightedGameObject { rawGameObject = ExpandPrefabs.PhobosLight, weight = 1f, forceDuplicatesPossible = false, pickupId = -1, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] } } }; val7.facewallLightStamps = val5.roomMaterialDefinitions[0].facewallLightStamps; val7.sidewallLightStamps = val5.roomMaterialDefinitions[0].sidewallLightStamps; val7.usesDecalLayer = false; val7.decalIndexGrid = null; val7.decalLayerStyle = (DecoStyle)0; val7.decalSize = 1; val7.decalSpacing = 1; val7.usesPatternLayer = false; val7.patternLayerStyle = (DecoStyle)99; val7.patternSpacing = 1; val7.patternSize = 1; val7.patternIndexGrid = null; val7.forceEdgesDiagonal = false; val7.exteriorFacadeBorderGrid = null; val7.facadeTopGrid = null; val7.bridgeGrid = null; DungeonMaterial val8 = ScriptableObject.CreateInstance(); ((Object)val8).name = "Phobos_Gold"; val8.wallShards = val3.roomMaterialDefinitions[0].wallShards; val8.bigWallShards = new WeightedGameObjectCollection { elements = new List(0) }; val8.bigWallShardDamageThreshold = 10f; val8.fallbackVerticalTileMapEffects = val5.roomMaterialDefinitions[0].fallbackVerticalTileMapEffects; val8.fallbackHorizontalTileMapEffects = val5.roomMaterialDefinitions[0].fallbackHorizontalTileMapEffects; val8.pitfallVFXPrefab = val2.roomMaterialDefinitions[0].pitfallVFXPrefab; val8.UsePitAmbientVFX = false; val8.AmbientPitVFX = new List(0); val8.PitVFXMinCooldown = 5f; val8.PitVFXMaxCooldown = 30f; val8.ChanceToSpawnPitVFXOnCooldown = 1f; val8.stampFailChance = 0.2f; val8.overrideTableTable = null; val8.supportsPits = true; val8.doPitAO = true; val8.pitsAreOneDeep = false; val8.supportsDiagonalWalls = false; val8.supportsUpholstery = false; val8.carpetIsMainFloor = false; val8.carpetGrids = (TileIndexGrid[])(object)new TileIndexGrid[1] { ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Phobos/Phobos_Gold/carpetGrid") }; val8.supportsChannels = false; val8.minChannelPools = 0; val8.maxChannelPools = 3; val8.channelTenacity = 0.75f; val8.channelGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val8.supportsLavaOrLavalikeSquares = false; val8.lavaGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val8.supportsIceSquares = false; val8.iceGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val8.roomFloorBorderGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Phobos/Phobos_Gold/roomFloorBorderGrid"); val8.roomCeilingBorderGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Phobos/Phobos_Gold/roomCeilingBorderGrid"); val8.pitLayoutGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Phobos/Phobos_Gold/pitLayoutGrid"); val8.pitBorderFlatGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Phobos/Phobos_Gold/pitBorderFlatGrid"); val8.pitBorderRaisedGrid = null; val8.additionalPitBorderFlatGrid = null; val8.outerCeilingBorderGrid = null; val8.floorSquareDensity = 0.05f; val8.floorSquares = (TileIndexGrid[])(object)new TileIndexGrid[1] { ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Phobos/Phobos_Gold/floorSquares") }; val8.usesFacewallGrids = false; val8.facewallGrids = val4.roomMaterialDefinitions[0].facewallGrids; val8.usesInternalMaterialTransitions = false; val8.usesProceduralMaterialTransitions = false; val8.internalMaterialTransitions = (RoomInternalMaterialTransition[])(object)new RoomInternalMaterialTransition[0]; val8.secretRoomWallShardCollections = new List(0); val8.overrideStoneFloorType = false; val8.overrideFloorType = (CellFloorType)0; val8.useLighting = true; val8.lightPrefabs = new WeightedGameObjectCollection { elements = new List { new WeightedGameObject { rawGameObject = ExpandPrefabs.PhobosLight, weight = 1f, forceDuplicatesPossible = false, pickupId = -1, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] } } }; val8.facewallLightStamps = val5.roomMaterialDefinitions[0].facewallLightStamps; val8.sidewallLightStamps = val5.roomMaterialDefinitions[0].sidewallLightStamps; val8.usesDecalLayer = false; val8.decalIndexGrid = null; val8.decalLayerStyle = (DecoStyle)0; val8.decalSize = 1; val8.decalSpacing = 1; val8.usesPatternLayer = false; val8.patternLayerStyle = (DecoStyle)99; val8.patternSpacing = 1; val8.patternSize = 1; val8.patternIndexGrid = null; val8.forceEdgesDiagonal = false; val8.exteriorFacadeBorderGrid = null; val8.facadeTopGrid = null; val8.bridgeGrid = null; ((Object)((Component)val5).gameObject).name = "Base_Phobos"; val5.DungeonSeed = 0; val5.DungeonShortName = "Phobos"; val5.DungeonFloorName = "Phobos"; val5.DungeonFloorLevelTextOverride = "An unknown place."; val5.debugSettings = new DebugDungeonSettings { RAPID_DEBUG_DUNGEON_ITERATION_SEEKER = false, RAPID_DEBUG_DUNGEON_ITERATION = false, RAPID_DEBUG_DUNGEON_COUNT = 50, GENERATION_VIEWER_MODE = false, FULL_MINIMAP_VISIBILITY = false, COOP_TEST = false, DISABLE_ENEMIES = false, DISABLE_LOOPS = true, DISABLE_SECRET_ROOM_COVERS = false, DISABLE_OUTLINES = false, WALLS_ARE_PITS = false }; val5.PatternSettings = new SemioticDungeonGenSettings { flows = new List { FlowDatabase.GetOrLoadByName("F0b_Phobos_Flow_01"), FlowDatabase.GetOrLoadByName("F0b_Phobos_Flow_02") }, mandatoryExtraRooms = new List(0), optionalExtraRooms = new List(0), MAX_GENERATION_ATTEMPTS = 250, DEBUG_RENDER_CANVASES_SEPARATELY = false }; val5.ForceRegenerationOfCharacters = false; val5.ActuallyGenerateTilemap = true; TilemapDecoSettings val9 = new TilemapDecoSettings(); WeightedIntCollection val10 = new WeightedIntCollection(); val10.elements = (WeightedInt[])(object)new WeightedInt[4] { new WeightedInt { annotation = "blue plate", value = 0, weight = 0.3f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "grey plate", value = 1, weight = 0.4f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "shop", value = 2, weight = 0f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "gold plate", value = 3, weight = 0.3f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] } }; val9.standardRoomVisualSubtypes = val10; val9.decalLayerStyle = (DecoStyle)99; val9.decalSize = 3; val9.decalSpacing = 1; val9.decalExpansion = 0; val9.patternLayerStyle = (DecoStyle)99; val9.patternSize = 3; val9.patternSpacing = 3; val9.patternExpansion = 0; val9.decoPatchFrequency = 0.01f; val9.ambientLightColor = new Color(0.875462f, 0.882353f, 0.810986f, 1f); val9.ambientLightColorTwo = new Color(0.87451f, 0.882353f, 0.811765f, 1f); val9.lowQualityAmbientLightColor = Color.white; val9.lowQualityAmbientLightColorTwo = Color.white; val9.lowQualityCheapLightVector = new Vector4(1f, 0f, -1f, 0f); val9.UsesAlienFXFloorColor = false; val9.AlienFXFloorColor = Color.black; val9.generateLights = true; val9.lightCullingPercentage = 0.2f; val9.lightOverlapRadius = 8; val9.nearestAllowedLight = 12f; val9.minLightExpanseWidth = 2; val9.lightHeight = -2f; val9.lightCookies = (Texture2D[])(object)new Texture2D[0]; val9.debug_view = false; val5.decoSettings = val9; val5.tileIndices = new TileIndices { tilesetId = (ValidTilesets)512, dungeonCollection = ExpandPrefabs.ENV_Tileset_Phobos.GetComponent(), dungeonCollectionSupportsDiagonalWalls = false, aoTileIndices = new AOTileIndices { AOFloorTileIndex = 0, AOBottomWallBaseTileIndex = 1, AOBottomWallTileRightIndex = 2, AOBottomWallTileLeftIndex = 3, AOBottomWallTileBothIndex = 4, AOTopFacewallRightIndex = 6, AOTopFacewallLeftIndex = 5, AOTopFacewallBothIndex = 7, AOFloorWallLeft = 5, AOFloorWallRight = 6, AOFloorWallBoth = 7, AOFloorPizzaSliceLeft = 8, AOFloorPizzaSliceRight = 9, AOFloorPizzaSliceBoth = 10, AOFloorPizzaSliceLeftWallRight = 11, AOFloorPizzaSliceRightWallLeft = 12, AOFloorWallUpAndLeft = 13, AOFloorWallUpAndRight = 14, AOFloorWallUpAndBoth = 15, AOFloorDiagonalWallNortheast = -1, AOFloorDiagonalWallNortheastLower = -1, AOFloorDiagonalWallNortheastLowerJoint = -1, AOFloorDiagonalWallNorthwest = -1, AOFloorDiagonalWallNorthwestLower = -1, AOFloorDiagonalWallNorthwestLowerJoint = -1, AOBottomWallDiagonalNortheast = -1, AOBottomWallDiagonalNorthwest = -1 }, placeBorders = true, placePits = false, chestHighWallIndices = new List { new TileIndexVariant { index = 41, likelihood = 0.5f, overrideLayerIndex = 0, overrideIndex = 0 } }, decalIndexGrid = null, patternIndexGrid = null, globalSecondBorderTiles = new List(0), edgeDecorationTiles = null }; val5.roomMaterialDefinitions = (DungeonMaterial[])(object)new DungeonMaterial[7] { val6, val7, val6, val8, val6, sharedAssets2.LoadAsset("Boss_Cathedral_StainedGlass_Lights"), val6 }; val5.dungeonWingDefinitions = (DungeonWingDefinition[])(object)new DungeonWingDefinition[0]; val5.pathGridDefinitions = new List(0); val5.damageTypeEffectMatrix = ScriptableObject.CreateInstance(); val5.damageTypeEffectMatrix.definitions = new List { new DamageTypeEffectDefinition { name = "Fire", damageType = (CoreDamageTypes)2, wallDecals = new VFXPool { type = (VFXPoolType)0, effects = (VFXComplex[])(object)new VFXComplex[0] } }, new DamageTypeEffectDefinition { name = "Ice", damageType = (CoreDamageTypes)4, wallDecals = new VFXPool { type = (VFXPoolType)0, effects = (VFXComplex[])(object)new VFXComplex[0] } }, new DamageTypeEffectDefinition { name = "Rubel", damageType = (CoreDamageTypes)8, wallDecals = new VFXPool { type = (VFXPoolType)0, effects = (VFXComplex[])(object)new VFXComplex[0] } }, new DamageTypeEffectDefinition { name = "Water", damageType = (CoreDamageTypes)16, wallDecals = new VFXPool { type = (VFXPoolType)0, effects = (VFXComplex[])(object)new VFXComplex[0] } } }; val5.stampData = ScriptableObject.CreateInstance(); ((Object)val5.stampData).name = "ENV_PHOBOS_STAMP_DATA"; val5.stampData.tileStampWeight = 1f; val5.stampData.spriteStampWeight = 0f; val5.stampData.objectStampWeight = 1f; val5.stampData.stamps = (TileStampData[])(object)new TileStampData[0]; val5.stampData.spriteStamps = (SpriteStampData[])(object)new SpriteStampData[0]; val5.stampData.objectStamps = val2.stampData.objectStamps; val5.stampData.SymmetricFrameChance = 0.5f; val5.stampData.SymmetricCompleteChance = 0.25f; val5.UsesCustomFloorIdea = false; val5.FloorIdea = new RobotDaveIdea { ValidEasyEnemyPlaceables = (DungeonPlaceable[])(object)new DungeonPlaceable[0], ValidHardEnemyPlaceables = (DungeonPlaceable[])(object)new DungeonPlaceable[0], UseWallSawblades = false, UseRollingLogsVertical = false, UseRollingLogsHorizontal = false, UseFloorPitTraps = false, UseFloorFlameTraps = false, UseFloorSpikeTraps = false, UseFloorConveyorBelts = false, UseCaveIns = false, UseAlarmMushrooms = false, UseMineCarts = false, UseChandeliers = false, CanIncludePits = true }; val5.doorObjects = val.alternateDoorObjectsNakatomi; val5.lockedDoorObjects = null; val5.oneWayDoorObjects = val.oneWayDoorObjects; val5.oneWayDoorPressurePlate = ExpandPrefabs.SpaceShip_PressurePlate; val5.WarpWingDoorPrefab = null; val5.SecretRoomSimpleTriggersFacewall = val2.SecretRoomSimpleTriggersFacewall; val5.SecretRoomSimpleTriggersSidewall = val2.SecretRoomSimpleTriggersSidewall; val5.SecretRoomComplexTriggers = new List(0); val5.BossMasteryTokenItemId = -1; val5.StripPlayerOnArrival = false; val5.SuppressEmergencyCrates = false; val5.SetTutorialFlag = false; val5.PlayerIsLight = true; val5.PlayerLightColor = new Color(0.985294f, 0.719884f, 0.383975f, 1f); val5.PlayerLightIntensity = 3.8f; val5.PlayerLightRadius = 4.5f; val5.musicEventName = "Play_EX_MUS_DeepDungeon_01"; val = null; val2 = null; val3 = null; val4 = null; } public static void InitOfficeDungeon(AssetBundle expandSharedAuto1, AssetBundle sharedAssets2, GameObject targetObject, Dungeon dungeonTemplate) { //IL_004b: 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_0061: Expected O, but got Unknown //IL_02e9: Unknown result type (might be due to invalid IL or missing references) //IL_02f6: Unknown result type (might be due to invalid IL or missing references) //IL_02fb: Unknown result type (might be due to invalid IL or missing references) //IL_0302: Unknown result type (might be due to invalid IL or missing references) //IL_0307: Unknown result type (might be due to invalid IL or missing references) //IL_032a: Unknown result type (might be due to invalid IL or missing references) //IL_0335: Unknown result type (might be due to invalid IL or missing references) //IL_033c: Unknown result type (might be due to invalid IL or missing references) //IL_0343: Unknown result type (might be due to invalid IL or missing references) //IL_0354: Expected O, but got Unknown //IL_035e: Expected O, but got Unknown //IL_0394: 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_040c: Unknown result type (might be due to invalid IL or missing references) //IL_0411: Unknown result type (might be due to invalid IL or missing references) //IL_0422: Expected O, but got Unknown //IL_06aa: Unknown result type (might be due to invalid IL or missing references) //IL_06b7: Unknown result type (might be due to invalid IL or missing references) //IL_06bc: Unknown result type (might be due to invalid IL or missing references) //IL_06c3: Unknown result type (might be due to invalid IL or missing references) //IL_06c8: Unknown result type (might be due to invalid IL or missing references) //IL_06eb: Unknown result type (might be due to invalid IL or missing references) //IL_06f6: Unknown result type (might be due to invalid IL or missing references) //IL_06fd: Unknown result type (might be due to invalid IL or missing references) //IL_0704: Unknown result type (might be due to invalid IL or missing references) //IL_0715: Expected O, but got Unknown //IL_071f: Expected O, but got Unknown //IL_0755: Unknown result type (might be due to invalid IL or missing references) //IL_0772: Unknown result type (might be due to invalid IL or missing references) //IL_07e1: Unknown result type (might be due to invalid IL or missing references) //IL_07e6: Unknown result type (might be due to invalid IL or missing references) //IL_07ed: Unknown result type (might be due to invalid IL or missing references) //IL_07f4: Unknown result type (might be due to invalid IL or missing references) //IL_07fc: Unknown result type (might be due to invalid IL or missing references) //IL_0803: Unknown result type (might be due to invalid IL or missing references) //IL_080a: Unknown result type (might be due to invalid IL or missing references) //IL_0811: Unknown result type (might be due to invalid IL or missing references) //IL_0818: Unknown result type (might be due to invalid IL or missing references) //IL_081f: Unknown result type (might be due to invalid IL or missing references) //IL_0826: Unknown result type (might be due to invalid IL or missing references) //IL_082d: Unknown result type (might be due to invalid IL or missing references) //IL_0839: Expected O, but got Unknown //IL_083a: Unknown result type (might be due to invalid IL or missing references) //IL_083f: Unknown result type (might be due to invalid IL or missing references) //IL_085a: Unknown result type (might be due to invalid IL or missing references) //IL_0866: Unknown result type (might be due to invalid IL or missing references) //IL_0872: Unknown result type (might be due to invalid IL or missing references) //IL_087d: Unknown result type (might be due to invalid IL or missing references) //IL_0889: Expected O, but got Unknown //IL_0898: Unknown result type (might be due to invalid IL or missing references) //IL_089f: Expected O, but got Unknown //IL_08a1: Unknown result type (might be due to invalid IL or missing references) //IL_08a8: Expected O, but got Unknown //IL_08b2: Unknown result type (might be due to invalid IL or missing references) //IL_08b7: Unknown result type (might be due to invalid IL or missing references) //IL_08c2: Unknown result type (might be due to invalid IL or missing references) //IL_08c9: Unknown result type (might be due to invalid IL or missing references) //IL_08d4: Unknown result type (might be due to invalid IL or missing references) //IL_08e1: Expected O, but got Unknown //IL_08e3: Unknown result type (might be due to invalid IL or missing references) //IL_08e8: Unknown result type (might be due to invalid IL or missing references) //IL_08f3: Unknown result type (might be due to invalid IL or missing references) //IL_08fa: Unknown result type (might be due to invalid IL or missing references) //IL_0905: Unknown result type (might be due to invalid IL or missing references) //IL_0912: Expected O, but got Unknown //IL_0914: Unknown result type (might be due to invalid IL or missing references) //IL_0919: Unknown result type (might be due to invalid IL or missing references) //IL_0924: Unknown result type (might be due to invalid IL or missing references) //IL_092b: Unknown result type (might be due to invalid IL or missing references) //IL_0936: Unknown result type (might be due to invalid IL or missing references) //IL_0943: Expected O, but got Unknown //IL_0945: Unknown result type (might be due to invalid IL or missing references) //IL_094a: Unknown result type (might be due to invalid IL or missing references) //IL_0955: Unknown result type (might be due to invalid IL or missing references) //IL_095c: Unknown result type (might be due to invalid IL or missing references) //IL_0967: Unknown result type (might be due to invalid IL or missing references) //IL_0974: Expected O, but got Unknown //IL_0976: Unknown result type (might be due to invalid IL or missing references) //IL_097b: Unknown result type (might be due to invalid IL or missing references) //IL_0986: Unknown result type (might be due to invalid IL or missing references) //IL_098d: Unknown result type (might be due to invalid IL or missing references) //IL_0998: Unknown result type (might be due to invalid IL or missing references) //IL_09a5: Expected O, but got Unknown //IL_09b5: Unknown result type (might be due to invalid IL or missing references) //IL_09d6: Unknown result type (might be due to invalid IL or missing references) //IL_0a15: Unknown result type (might be due to invalid IL or missing references) //IL_0a1a: Unknown result type (might be due to invalid IL or missing references) //IL_0a35: Unknown result type (might be due to invalid IL or missing references) //IL_0a3a: Unknown result type (might be due to invalid IL or missing references) //IL_0a41: Unknown result type (might be due to invalid IL or missing references) //IL_0a46: Unknown result type (might be due to invalid IL or missing references) //IL_0a4d: Unknown result type (might be due to invalid IL or missing references) //IL_0a52: Unknown result type (might be due to invalid IL or missing references) //IL_0a6d: Unknown result type (might be due to invalid IL or missing references) //IL_0a72: Unknown result type (might be due to invalid IL or missing references) //IL_0a81: Unknown result type (might be due to invalid IL or missing references) //IL_0a86: Unknown result type (might be due to invalid IL or missing references) //IL_0ae4: Unknown result type (might be due to invalid IL or missing references) //IL_0ae9: Unknown result type (might be due to invalid IL or missing references) //IL_0aef: Unknown result type (might be due to invalid IL or missing references) //IL_0af4: Unknown result type (might be due to invalid IL or missing references) //IL_0b04: Unknown result type (might be due to invalid IL or missing references) //IL_0b0b: Unknown result type (might be due to invalid IL or missing references) //IL_0b0c: Unknown result type (might be due to invalid IL or missing references) //IL_0b11: Unknown result type (might be due to invalid IL or missing references) //IL_0b18: Unknown result type (might be due to invalid IL or missing references) //IL_0b1f: Unknown result type (might be due to invalid IL or missing references) //IL_0b26: Unknown result type (might be due to invalid IL or missing references) //IL_0b2d: Unknown result type (might be due to invalid IL or missing references) //IL_0b34: Unknown result type (might be due to invalid IL or missing references) //IL_0b3b: Unknown result type (might be due to invalid IL or missing references) //IL_0b42: Unknown result type (might be due to invalid IL or missing references) //IL_0b49: Unknown result type (might be due to invalid IL or missing references) //IL_0b50: Unknown result type (might be due to invalid IL or missing references) //IL_0b57: Unknown result type (might be due to invalid IL or missing references) //IL_0b5e: Unknown result type (might be due to invalid IL or missing references) //IL_0b65: Unknown result type (might be due to invalid IL or missing references) //IL_0b6d: Unknown result type (might be due to invalid IL or missing references) //IL_0b75: Unknown result type (might be due to invalid IL or missing references) //IL_0b7d: Unknown result type (might be due to invalid IL or missing references) //IL_0b85: Unknown result type (might be due to invalid IL or missing references) //IL_0b8d: Unknown result type (might be due to invalid IL or missing references) //IL_0b95: Unknown result type (might be due to invalid IL or missing references) //IL_0b9d: Unknown result type (might be due to invalid IL or missing references) //IL_0ba4: Unknown result type (might be due to invalid IL or missing references) //IL_0bab: Unknown result type (might be due to invalid IL or missing references) //IL_0bb2: Unknown result type (might be due to invalid IL or missing references) //IL_0bb9: Unknown result type (might be due to invalid IL or missing references) //IL_0bc0: Unknown result type (might be due to invalid IL or missing references) //IL_0bc7: Unknown result type (might be due to invalid IL or missing references) //IL_0bce: Unknown result type (might be due to invalid IL or missing references) //IL_0bda: Expected O, but got Unknown //IL_0bda: Unknown result type (might be due to invalid IL or missing references) //IL_0be1: Unknown result type (might be due to invalid IL or missing references) //IL_0be8: Unknown result type (might be due to invalid IL or missing references) //IL_0bef: Unknown result type (might be due to invalid IL or missing references) //IL_0bf4: Unknown result type (might be due to invalid IL or missing references) //IL_0bfc: Unknown result type (might be due to invalid IL or missing references) //IL_0c07: Unknown result type (might be due to invalid IL or missing references) //IL_0c0e: Unknown result type (might be due to invalid IL or missing references) //IL_0c1a: Expected O, but got Unknown //IL_0c1f: Unknown result type (might be due to invalid IL or missing references) //IL_0c26: Unknown result type (might be due to invalid IL or missing references) //IL_0c2d: Unknown result type (might be due to invalid IL or missing references) //IL_0c39: Unknown result type (might be due to invalid IL or missing references) //IL_0c45: Expected O, but got Unknown //IL_0d11: Unknown result type (might be due to invalid IL or missing references) //IL_0d16: Unknown result type (might be due to invalid IL or missing references) //IL_0d1d: Unknown result type (might be due to invalid IL or missing references) //IL_0d24: Unknown result type (might be due to invalid IL or missing references) //IL_0d2f: Unknown result type (might be due to invalid IL or missing references) //IL_0d31: Unknown result type (might be due to invalid IL or missing references) //IL_0d36: Unknown result type (might be due to invalid IL or missing references) //IL_0d38: Unknown result type (might be due to invalid IL or missing references) //IL_0d3d: Unknown result type (might be due to invalid IL or missing references) //IL_0d3f: Unknown result type (might be due to invalid IL or missing references) //IL_0d44: Unknown result type (might be due to invalid IL or missing references) //IL_0d4b: Unknown result type (might be due to invalid IL or missing references) //IL_0d4d: Unknown result type (might be due to invalid IL or missing references) //IL_0d52: Unknown result type (might be due to invalid IL or missing references) //IL_0d59: Unknown result type (might be due to invalid IL or missing references) //IL_0d5b: Unknown result type (might be due to invalid IL or missing references) //IL_0d60: Unknown result type (might be due to invalid IL or missing references) //IL_0d67: Unknown result type (might be due to invalid IL or missing references) //IL_0d6c: Unknown result type (might be due to invalid IL or missing references) //IL_0d73: Unknown result type (might be due to invalid IL or missing references) //IL_0d83: Expected O, but got Unknown //IL_0d88: Unknown result type (might be due to invalid IL or missing references) //IL_0d8f: Unknown result type (might be due to invalid IL or missing references) //IL_0d96: Unknown result type (might be due to invalid IL or missing references) //IL_0daa: Expected O, but got Unknown //IL_0de5: Unknown result type (might be due to invalid IL or missing references) //IL_0dea: Unknown result type (might be due to invalid IL or missing references) //IL_0df7: Unknown result type (might be due to invalid IL or missing references) //IL_0e04: Unknown result type (might be due to invalid IL or missing references) //IL_0e11: Unknown result type (might be due to invalid IL or missing references) //IL_0e14: Unknown result type (might be due to invalid IL or missing references) //IL_0e19: Unknown result type (might be due to invalid IL or missing references) //IL_0e1e: Unknown result type (might be due to invalid IL or missing references) //IL_0e21: Unknown result type (might be due to invalid IL or missing references) //IL_0e26: Unknown result type (might be due to invalid IL or missing references) //IL_0e2b: Unknown result type (might be due to invalid IL or missing references) //IL_0e2e: Unknown result type (might be due to invalid IL or missing references) //IL_0e33: Unknown result type (might be due to invalid IL or missing references) //IL_0e38: Unknown result type (might be due to invalid IL or missing references) //IL_0e45: Unknown result type (might be due to invalid IL or missing references) //IL_0e48: Unknown result type (might be due to invalid IL or missing references) //IL_0e4d: Unknown result type (might be due to invalid IL or missing references) //IL_0e52: Unknown result type (might be due to invalid IL or missing references) //IL_0e5f: Unknown result type (might be due to invalid IL or missing references) //IL_0e62: Unknown result type (might be due to invalid IL or missing references) //IL_0e67: Unknown result type (might be due to invalid IL or missing references) //IL_0e6c: Unknown result type (might be due to invalid IL or missing references) //IL_0e77: Unknown result type (might be due to invalid IL or missing references) //IL_0e84: Unknown result type (might be due to invalid IL or missing references) //IL_0e91: Unknown result type (might be due to invalid IL or missing references) //IL_0ea3: Expected O, but got Unknown //IL_0f7c: Unknown result type (might be due to invalid IL or missing references) //IL_1046: Unknown result type (might be due to invalid IL or missing references) //IL_10a0: Unknown result type (might be due to invalid IL or missing references) //IL_10f3: Unknown result type (might be due to invalid IL or missing references) //IL_10f8: Unknown result type (might be due to invalid IL or missing references) //IL_10ff: Unknown result type (might be due to invalid IL or missing references) //IL_1106: Unknown result type (might be due to invalid IL or missing references) //IL_1111: Unknown result type (might be due to invalid IL or missing references) //IL_1113: Unknown result type (might be due to invalid IL or missing references) //IL_1118: Unknown result type (might be due to invalid IL or missing references) //IL_111a: Unknown result type (might be due to invalid IL or missing references) //IL_111f: Unknown result type (might be due to invalid IL or missing references) //IL_1121: Unknown result type (might be due to invalid IL or missing references) //IL_1126: Unknown result type (might be due to invalid IL or missing references) //IL_112d: Unknown result type (might be due to invalid IL or missing references) //IL_112f: Unknown result type (might be due to invalid IL or missing references) //IL_1134: Unknown result type (might be due to invalid IL or missing references) //IL_113b: Unknown result type (might be due to invalid IL or missing references) //IL_113d: Unknown result type (might be due to invalid IL or missing references) //IL_1142: Unknown result type (might be due to invalid IL or missing references) //IL_1149: Unknown result type (might be due to invalid IL or missing references) //IL_114e: Unknown result type (might be due to invalid IL or missing references) //IL_1155: Unknown result type (might be due to invalid IL or missing references) //IL_1165: Expected O, but got Unknown //IL_1166: Unknown result type (might be due to invalid IL or missing references) //IL_116b: Unknown result type (might be due to invalid IL or missing references) //IL_1172: Unknown result type (might be due to invalid IL or missing references) //IL_1182: Expected O, but got Unknown //IL_1187: Unknown result type (might be due to invalid IL or missing references) //IL_118e: Unknown result type (might be due to invalid IL or missing references) //IL_1195: Unknown result type (might be due to invalid IL or missing references) //IL_11d6: Expected O, but got Unknown //IL_11d8: Unknown result type (might be due to invalid IL or missing references) //IL_11dd: Unknown result type (might be due to invalid IL or missing references) //IL_11e4: Unknown result type (might be due to invalid IL or missing references) //IL_11eb: Unknown result type (might be due to invalid IL or missing references) //IL_11f6: Unknown result type (might be due to invalid IL or missing references) //IL_11f8: Unknown result type (might be due to invalid IL or missing references) //IL_11fd: Unknown result type (might be due to invalid IL or missing references) //IL_11ff: Unknown result type (might be due to invalid IL or missing references) //IL_1204: Unknown result type (might be due to invalid IL or missing references) //IL_1206: Unknown result type (might be due to invalid IL or missing references) //IL_120b: Unknown result type (might be due to invalid IL or missing references) //IL_1212: Unknown result type (might be due to invalid IL or missing references) //IL_1214: Unknown result type (might be due to invalid IL or missing references) //IL_1219: Unknown result type (might be due to invalid IL or missing references) //IL_1220: Unknown result type (might be due to invalid IL or missing references) //IL_1222: Unknown result type (might be due to invalid IL or missing references) //IL_1227: Unknown result type (might be due to invalid IL or missing references) //IL_122e: Unknown result type (might be due to invalid IL or missing references) //IL_1233: Unknown result type (might be due to invalid IL or missing references) //IL_123a: Unknown result type (might be due to invalid IL or missing references) //IL_124a: Expected O, but got Unknown //IL_124b: Unknown result type (might be due to invalid IL or missing references) //IL_1250: Unknown result type (might be due to invalid IL or missing references) //IL_1257: Unknown result type (might be due to invalid IL or missing references) //IL_1267: Expected O, but got Unknown //IL_126c: Unknown result type (might be due to invalid IL or missing references) //IL_1273: Unknown result type (might be due to invalid IL or missing references) //IL_127a: Unknown result type (might be due to invalid IL or missing references) //IL_12bb: Expected O, but got Unknown //IL_12bd: Unknown result type (might be due to invalid IL or missing references) //IL_12c2: Unknown result type (might be due to invalid IL or missing references) //IL_12c9: Unknown result type (might be due to invalid IL or missing references) //IL_12d0: Unknown result type (might be due to invalid IL or missing references) //IL_12db: Unknown result type (might be due to invalid IL or missing references) //IL_12dd: Unknown result type (might be due to invalid IL or missing references) //IL_12e2: Unknown result type (might be due to invalid IL or missing references) //IL_12e4: Unknown result type (might be due to invalid IL or missing references) //IL_12e9: Unknown result type (might be due to invalid IL or missing references) //IL_12eb: Unknown result type (might be due to invalid IL or missing references) //IL_12f0: Unknown result type (might be due to invalid IL or missing references) //IL_12f7: Unknown result type (might be due to invalid IL or missing references) //IL_12f9: Unknown result type (might be due to invalid IL or missing references) //IL_12fe: Unknown result type (might be due to invalid IL or missing references) //IL_1305: Unknown result type (might be due to invalid IL or missing references) //IL_1307: Unknown result type (might be due to invalid IL or missing references) //IL_130c: Unknown result type (might be due to invalid IL or missing references) //IL_1313: Unknown result type (might be due to invalid IL or missing references) //IL_1318: Unknown result type (might be due to invalid IL or missing references) //IL_131f: Unknown result type (might be due to invalid IL or missing references) //IL_132f: Expected O, but got Unknown //IL_1330: Unknown result type (might be due to invalid IL or missing references) //IL_1335: Unknown result type (might be due to invalid IL or missing references) //IL_133c: Unknown result type (might be due to invalid IL or missing references) //IL_134c: Expected O, but got Unknown //IL_1351: Unknown result type (might be due to invalid IL or missing references) //IL_1358: Unknown result type (might be due to invalid IL or missing references) //IL_135f: Unknown result type (might be due to invalid IL or missing references) //IL_13a1: Expected O, but got Unknown //IL_13a3: Unknown result type (might be due to invalid IL or missing references) //IL_13a8: Unknown result type (might be due to invalid IL or missing references) //IL_13af: Unknown result type (might be due to invalid IL or missing references) //IL_13b6: Unknown result type (might be due to invalid IL or missing references) //IL_13c1: Unknown result type (might be due to invalid IL or missing references) //IL_13c3: Unknown result type (might be due to invalid IL or missing references) //IL_13c8: Unknown result type (might be due to invalid IL or missing references) //IL_13ca: Unknown result type (might be due to invalid IL or missing references) //IL_13cf: Unknown result type (might be due to invalid IL or missing references) //IL_13d1: Unknown result type (might be due to invalid IL or missing references) //IL_13d6: Unknown result type (might be due to invalid IL or missing references) //IL_13dd: Unknown result type (might be due to invalid IL or missing references) //IL_13df: Unknown result type (might be due to invalid IL or missing references) //IL_13e4: Unknown result type (might be due to invalid IL or missing references) //IL_13eb: Unknown result type (might be due to invalid IL or missing references) //IL_13ed: Unknown result type (might be due to invalid IL or missing references) //IL_13f2: Unknown result type (might be due to invalid IL or missing references) //IL_13f9: Unknown result type (might be due to invalid IL or missing references) //IL_13fe: Unknown result type (might be due to invalid IL or missing references) //IL_1405: Unknown result type (might be due to invalid IL or missing references) //IL_1415: Expected O, but got Unknown //IL_1416: Unknown result type (might be due to invalid IL or missing references) //IL_141b: Unknown result type (might be due to invalid IL or missing references) //IL_1422: Unknown result type (might be due to invalid IL or missing references) //IL_1432: Expected O, but got Unknown //IL_1437: Unknown result type (might be due to invalid IL or missing references) //IL_143e: Unknown result type (might be due to invalid IL or missing references) //IL_1445: Unknown result type (might be due to invalid IL or missing references) //IL_1487: Expected O, but got Unknown //IL_1489: Unknown result type (might be due to invalid IL or missing references) //IL_148e: Unknown result type (might be due to invalid IL or missing references) //IL_1495: Unknown result type (might be due to invalid IL or missing references) //IL_149c: Unknown result type (might be due to invalid IL or missing references) //IL_14a7: Unknown result type (might be due to invalid IL or missing references) //IL_14a9: Unknown result type (might be due to invalid IL or missing references) //IL_14ae: Unknown result type (might be due to invalid IL or missing references) //IL_14b0: Unknown result type (might be due to invalid IL or missing references) //IL_14b5: Unknown result type (might be due to invalid IL or missing references) //IL_14b7: Unknown result type (might be due to invalid IL or missing references) //IL_14bc: Unknown result type (might be due to invalid IL or missing references) //IL_14c3: Unknown result type (might be due to invalid IL or missing references) //IL_14c5: Unknown result type (might be due to invalid IL or missing references) //IL_14ca: Unknown result type (might be due to invalid IL or missing references) //IL_14d1: Unknown result type (might be due to invalid IL or missing references) //IL_14d3: Unknown result type (might be due to invalid IL or missing references) //IL_14d8: Unknown result type (might be due to invalid IL or missing references) //IL_14df: Unknown result type (might be due to invalid IL or missing references) //IL_14e4: Unknown result type (might be due to invalid IL or missing references) //IL_14eb: Unknown result type (might be due to invalid IL or missing references) //IL_14fb: Expected O, but got Unknown //IL_14fc: Unknown result type (might be due to invalid IL or missing references) //IL_1501: Unknown result type (might be due to invalid IL or missing references) //IL_1508: Unknown result type (might be due to invalid IL or missing references) //IL_1518: Expected O, but got Unknown //IL_151d: Unknown result type (might be due to invalid IL or missing references) //IL_1524: Unknown result type (might be due to invalid IL or missing references) //IL_152b: Unknown result type (might be due to invalid IL or missing references) //IL_156c: Expected O, but got Unknown //IL_156e: Unknown result type (might be due to invalid IL or missing references) //IL_1573: Unknown result type (might be due to invalid IL or missing references) //IL_157a: Unknown result type (might be due to invalid IL or missing references) //IL_1581: Unknown result type (might be due to invalid IL or missing references) //IL_158c: Unknown result type (might be due to invalid IL or missing references) //IL_158e: Unknown result type (might be due to invalid IL or missing references) //IL_1593: Unknown result type (might be due to invalid IL or missing references) //IL_1595: Unknown result type (might be due to invalid IL or missing references) //IL_159a: Unknown result type (might be due to invalid IL or missing references) //IL_159c: Unknown result type (might be due to invalid IL or missing references) //IL_15a1: Unknown result type (might be due to invalid IL or missing references) //IL_15a8: Unknown result type (might be due to invalid IL or missing references) //IL_15aa: Unknown result type (might be due to invalid IL or missing references) //IL_15af: Unknown result type (might be due to invalid IL or missing references) //IL_15b6: Unknown result type (might be due to invalid IL or missing references) //IL_15b8: Unknown result type (might be due to invalid IL or missing references) //IL_15bd: Unknown result type (might be due to invalid IL or missing references) //IL_15c4: Unknown result type (might be due to invalid IL or missing references) //IL_15c9: Unknown result type (might be due to invalid IL or missing references) //IL_15d0: Unknown result type (might be due to invalid IL or missing references) //IL_15e0: Expected O, but got Unknown //IL_15e1: Unknown result type (might be due to invalid IL or missing references) //IL_15e6: Unknown result type (might be due to invalid IL or missing references) //IL_15ed: Unknown result type (might be due to invalid IL or missing references) //IL_15fd: Expected O, but got Unknown //IL_1602: Unknown result type (might be due to invalid IL or missing references) //IL_1609: Unknown result type (might be due to invalid IL or missing references) //IL_1610: Unknown result type (might be due to invalid IL or missing references) //IL_1652: Expected O, but got Unknown //IL_1654: Unknown result type (might be due to invalid IL or missing references) //IL_1659: Unknown result type (might be due to invalid IL or missing references) //IL_1660: Unknown result type (might be due to invalid IL or missing references) //IL_1667: Unknown result type (might be due to invalid IL or missing references) //IL_1672: Unknown result type (might be due to invalid IL or missing references) //IL_1674: Unknown result type (might be due to invalid IL or missing references) //IL_1679: Unknown result type (might be due to invalid IL or missing references) //IL_167b: Unknown result type (might be due to invalid IL or missing references) //IL_1680: Unknown result type (might be due to invalid IL or missing references) //IL_1682: Unknown result type (might be due to invalid IL or missing references) //IL_1687: Unknown result type (might be due to invalid IL or missing references) //IL_168e: Unknown result type (might be due to invalid IL or missing references) //IL_1690: Unknown result type (might be due to invalid IL or missing references) //IL_1695: Unknown result type (might be due to invalid IL or missing references) //IL_169c: Unknown result type (might be due to invalid IL or missing references) //IL_169e: Unknown result type (might be due to invalid IL or missing references) //IL_16a3: Unknown result type (might be due to invalid IL or missing references) //IL_16aa: Unknown result type (might be due to invalid IL or missing references) //IL_16af: Unknown result type (might be due to invalid IL or missing references) //IL_16b6: Unknown result type (might be due to invalid IL or missing references) //IL_16c6: Expected O, but got Unknown //IL_16c7: Unknown result type (might be due to invalid IL or missing references) //IL_16cc: Unknown result type (might be due to invalid IL or missing references) //IL_16d3: Unknown result type (might be due to invalid IL or missing references) //IL_16e3: Expected O, but got Unknown //IL_16e8: Unknown result type (might be due to invalid IL or missing references) //IL_16ef: Unknown result type (might be due to invalid IL or missing references) //IL_16f6: Unknown result type (might be due to invalid IL or missing references) //IL_1737: Expected O, but got Unknown //IL_1739: Unknown result type (might be due to invalid IL or missing references) //IL_173e: Unknown result type (might be due to invalid IL or missing references) //IL_1745: Unknown result type (might be due to invalid IL or missing references) //IL_174c: Unknown result type (might be due to invalid IL or missing references) //IL_1757: Unknown result type (might be due to invalid IL or missing references) //IL_1759: Unknown result type (might be due to invalid IL or missing references) //IL_175e: Unknown result type (might be due to invalid IL or missing references) //IL_1760: Unknown result type (might be due to invalid IL or missing references) //IL_1765: Unknown result type (might be due to invalid IL or missing references) //IL_1767: Unknown result type (might be due to invalid IL or missing references) //IL_176c: Unknown result type (might be due to invalid IL or missing references) //IL_1773: Unknown result type (might be due to invalid IL or missing references) //IL_1775: Unknown result type (might be due to invalid IL or missing references) //IL_177a: Unknown result type (might be due to invalid IL or missing references) //IL_1781: Unknown result type (might be due to invalid IL or missing references) //IL_1783: Unknown result type (might be due to invalid IL or missing references) //IL_1788: Unknown result type (might be due to invalid IL or missing references) //IL_178f: Unknown result type (might be due to invalid IL or missing references) //IL_1794: Unknown result type (might be due to invalid IL or missing references) //IL_179b: Unknown result type (might be due to invalid IL or missing references) //IL_17ab: Expected O, but got Unknown //IL_17ac: Unknown result type (might be due to invalid IL or missing references) //IL_17b1: Unknown result type (might be due to invalid IL or missing references) //IL_17b8: Unknown result type (might be due to invalid IL or missing references) //IL_17c8: Expected O, but got Unknown //IL_17cd: Unknown result type (might be due to invalid IL or missing references) //IL_17d4: Unknown result type (might be due to invalid IL or missing references) //IL_17db: Unknown result type (might be due to invalid IL or missing references) //IL_181c: Expected O, but got Unknown //IL_181e: Unknown result type (might be due to invalid IL or missing references) //IL_1823: Unknown result type (might be due to invalid IL or missing references) //IL_182a: Unknown result type (might be due to invalid IL or missing references) //IL_1831: Unknown result type (might be due to invalid IL or missing references) //IL_183c: Unknown result type (might be due to invalid IL or missing references) //IL_183e: Unknown result type (might be due to invalid IL or missing references) //IL_1843: Unknown result type (might be due to invalid IL or missing references) //IL_1845: Unknown result type (might be due to invalid IL or missing references) //IL_184a: Unknown result type (might be due to invalid IL or missing references) //IL_184c: Unknown result type (might be due to invalid IL or missing references) //IL_1851: Unknown result type (might be due to invalid IL or missing references) //IL_1858: Unknown result type (might be due to invalid IL or missing references) //IL_185a: Unknown result type (might be due to invalid IL or missing references) //IL_185f: Unknown result type (might be due to invalid IL or missing references) //IL_1866: Unknown result type (might be due to invalid IL or missing references) //IL_1868: Unknown result type (might be due to invalid IL or missing references) //IL_186d: Unknown result type (might be due to invalid IL or missing references) //IL_1874: Unknown result type (might be due to invalid IL or missing references) //IL_1879: Unknown result type (might be due to invalid IL or missing references) //IL_1880: Unknown result type (might be due to invalid IL or missing references) //IL_1890: Expected O, but got Unknown //IL_1891: Unknown result type (might be due to invalid IL or missing references) //IL_1896: Unknown result type (might be due to invalid IL or missing references) //IL_189d: Unknown result type (might be due to invalid IL or missing references) //IL_18ad: Expected O, but got Unknown //IL_18b2: Unknown result type (might be due to invalid IL or missing references) //IL_18b9: Unknown result type (might be due to invalid IL or missing references) //IL_18c0: Unknown result type (might be due to invalid IL or missing references) //IL_1902: Expected O, but got Unknown //IL_1904: Unknown result type (might be due to invalid IL or missing references) //IL_1909: Unknown result type (might be due to invalid IL or missing references) //IL_1910: Unknown result type (might be due to invalid IL or missing references) //IL_1917: Unknown result type (might be due to invalid IL or missing references) //IL_1922: Unknown result type (might be due to invalid IL or missing references) //IL_1924: Unknown result type (might be due to invalid IL or missing references) //IL_1929: Unknown result type (might be due to invalid IL or missing references) //IL_192b: Unknown result type (might be due to invalid IL or missing references) //IL_1930: Unknown result type (might be due to invalid IL or missing references) //IL_1932: Unknown result type (might be due to invalid IL or missing references) //IL_1937: Unknown result type (might be due to invalid IL or missing references) //IL_193e: Unknown result type (might be due to invalid IL or missing references) //IL_1940: Unknown result type (might be due to invalid IL or missing references) //IL_1945: Unknown result type (might be due to invalid IL or missing references) //IL_194c: Unknown result type (might be due to invalid IL or missing references) //IL_194e: Unknown result type (might be due to invalid IL or missing references) //IL_1953: Unknown result type (might be due to invalid IL or missing references) //IL_195a: Unknown result type (might be due to invalid IL or missing references) //IL_195f: Unknown result type (might be due to invalid IL or missing references) //IL_1966: Unknown result type (might be due to invalid IL or missing references) //IL_1976: Expected O, but got Unknown //IL_1977: Unknown result type (might be due to invalid IL or missing references) //IL_197c: Unknown result type (might be due to invalid IL or missing references) //IL_1983: Unknown result type (might be due to invalid IL or missing references) //IL_1993: Expected O, but got Unknown //IL_1998: Unknown result type (might be due to invalid IL or missing references) //IL_199f: Unknown result type (might be due to invalid IL or missing references) //IL_19a6: Unknown result type (might be due to invalid IL or missing references) //IL_19e7: Expected O, but got Unknown //IL_19e9: Unknown result type (might be due to invalid IL or missing references) //IL_19ee: Unknown result type (might be due to invalid IL or missing references) //IL_19f5: Unknown result type (might be due to invalid IL or missing references) //IL_19fc: Unknown result type (might be due to invalid IL or missing references) //IL_1a07: Unknown result type (might be due to invalid IL or missing references) //IL_1a09: Unknown result type (might be due to invalid IL or missing references) //IL_1a0e: Unknown result type (might be due to invalid IL or missing references) //IL_1a10: Unknown result type (might be due to invalid IL or missing references) //IL_1a15: Unknown result type (might be due to invalid IL or missing references) //IL_1a17: Unknown result type (might be due to invalid IL or missing references) //IL_1a1c: Unknown result type (might be due to invalid IL or missing references) //IL_1a23: Unknown result type (might be due to invalid IL or missing references) //IL_1a25: Unknown result type (might be due to invalid IL or missing references) //IL_1a2a: Unknown result type (might be due to invalid IL or missing references) //IL_1a31: Unknown result type (might be due to invalid IL or missing references) //IL_1a33: Unknown result type (might be due to invalid IL or missing references) //IL_1a38: Unknown result type (might be due to invalid IL or missing references) //IL_1a3f: Unknown result type (might be due to invalid IL or missing references) //IL_1a44: Unknown result type (might be due to invalid IL or missing references) //IL_1a4b: Unknown result type (might be due to invalid IL or missing references) //IL_1a5b: Expected O, but got Unknown //IL_1a5c: Unknown result type (might be due to invalid IL or missing references) //IL_1a61: Unknown result type (might be due to invalid IL or missing references) //IL_1a68: Unknown result type (might be due to invalid IL or missing references) //IL_1a78: Expected O, but got Unknown //IL_1a7d: Unknown result type (might be due to invalid IL or missing references) //IL_1a84: Unknown result type (might be due to invalid IL or missing references) //IL_1a8b: Unknown result type (might be due to invalid IL or missing references) //IL_1acc: Expected O, but got Unknown //IL_1ad6: Unknown result type (might be due to invalid IL or missing references) //IL_1adb: Unknown result type (might be due to invalid IL or missing references) //IL_1ae2: Unknown result type (might be due to invalid IL or missing references) //IL_1ae9: Unknown result type (might be due to invalid IL or missing references) //IL_1af4: Unknown result type (might be due to invalid IL or missing references) //IL_1af6: Unknown result type (might be due to invalid IL or missing references) //IL_1afb: Unknown result type (might be due to invalid IL or missing references) //IL_1afd: Unknown result type (might be due to invalid IL or missing references) //IL_1b02: Unknown result type (might be due to invalid IL or missing references) //IL_1b04: Unknown result type (might be due to invalid IL or missing references) //IL_1b09: Unknown result type (might be due to invalid IL or missing references) //IL_1b10: Unknown result type (might be due to invalid IL or missing references) //IL_1b12: Unknown result type (might be due to invalid IL or missing references) //IL_1b17: Unknown result type (might be due to invalid IL or missing references) //IL_1b1e: Unknown result type (might be due to invalid IL or missing references) //IL_1b20: Unknown result type (might be due to invalid IL or missing references) //IL_1b25: Unknown result type (might be due to invalid IL or missing references) //IL_1b2c: Unknown result type (might be due to invalid IL or missing references) //IL_1b31: Unknown result type (might be due to invalid IL or missing references) //IL_1b38: Unknown result type (might be due to invalid IL or missing references) //IL_1b48: Expected O, but got Unknown //IL_1b49: Unknown result type (might be due to invalid IL or missing references) //IL_1b4e: Unknown result type (might be due to invalid IL or missing references) //IL_1b55: Unknown result type (might be due to invalid IL or missing references) //IL_1b65: Expected O, but got Unknown //IL_1b6a: Unknown result type (might be due to invalid IL or missing references) //IL_1b71: Unknown result type (might be due to invalid IL or missing references) //IL_1b78: Unknown result type (might be due to invalid IL or missing references) //IL_1b88: Expected O, but got Unknown //IL_1b9c: Unknown result type (might be due to invalid IL or missing references) //IL_1ba1: Unknown result type (might be due to invalid IL or missing references) //IL_1ba8: Unknown result type (might be due to invalid IL or missing references) //IL_1baf: Unknown result type (might be due to invalid IL or missing references) //IL_1bba: Unknown result type (might be due to invalid IL or missing references) //IL_1bbc: Unknown result type (might be due to invalid IL or missing references) //IL_1bc1: Unknown result type (might be due to invalid IL or missing references) //IL_1bc3: Unknown result type (might be due to invalid IL or missing references) //IL_1bc8: Unknown result type (might be due to invalid IL or missing references) //IL_1bca: Unknown result type (might be due to invalid IL or missing references) //IL_1bcf: Unknown result type (might be due to invalid IL or missing references) //IL_1bd6: Unknown result type (might be due to invalid IL or missing references) //IL_1bd8: Unknown result type (might be due to invalid IL or missing references) //IL_1bdd: Unknown result type (might be due to invalid IL or missing references) //IL_1be4: Unknown result type (might be due to invalid IL or missing references) //IL_1be6: Unknown result type (might be due to invalid IL or missing references) //IL_1beb: Unknown result type (might be due to invalid IL or missing references) //IL_1bf2: Unknown result type (might be due to invalid IL or missing references) //IL_1bf7: Unknown result type (might be due to invalid IL or missing references) //IL_1bfe: Unknown result type (might be due to invalid IL or missing references) //IL_1c0e: Expected O, but got Unknown //IL_1c0f: Unknown result type (might be due to invalid IL or missing references) //IL_1c14: Unknown result type (might be due to invalid IL or missing references) //IL_1c1b: Unknown result type (might be due to invalid IL or missing references) //IL_1c2b: Expected O, but got Unknown //IL_1c30: Unknown result type (might be due to invalid IL or missing references) //IL_1c37: Unknown result type (might be due to invalid IL or missing references) //IL_1c3e: Unknown result type (might be due to invalid IL or missing references) //IL_1c4e: Expected O, but got Unknown //IL_1c50: Unknown result type (might be due to invalid IL or missing references) //IL_1c55: Unknown result type (might be due to invalid IL or missing references) //IL_1c5c: Unknown result type (might be due to invalid IL or missing references) //IL_1c63: Unknown result type (might be due to invalid IL or missing references) //IL_1c6e: Unknown result type (might be due to invalid IL or missing references) //IL_1c70: Unknown result type (might be due to invalid IL or missing references) //IL_1c75: Unknown result type (might be due to invalid IL or missing references) //IL_1c77: Unknown result type (might be due to invalid IL or missing references) //IL_1c7c: Unknown result type (might be due to invalid IL or missing references) //IL_1c7e: Unknown result type (might be due to invalid IL or missing references) //IL_1c83: Unknown result type (might be due to invalid IL or missing references) //IL_1c8a: Unknown result type (might be due to invalid IL or missing references) //IL_1c8c: Unknown result type (might be due to invalid IL or missing references) //IL_1c91: Unknown result type (might be due to invalid IL or missing references) //IL_1c98: Unknown result type (might be due to invalid IL or missing references) //IL_1c9a: Unknown result type (might be due to invalid IL or missing references) //IL_1c9f: Unknown result type (might be due to invalid IL or missing references) //IL_1ca6: Unknown result type (might be due to invalid IL or missing references) //IL_1cab: Unknown result type (might be due to invalid IL or missing references) //IL_1cb2: Unknown result type (might be due to invalid IL or missing references) //IL_1cc2: Expected O, but got Unknown //IL_1cc3: Unknown result type (might be due to invalid IL or missing references) //IL_1cc8: Unknown result type (might be due to invalid IL or missing references) //IL_1ccf: Unknown result type (might be due to invalid IL or missing references) //IL_1cdf: Expected O, but got Unknown //IL_1ce4: Unknown result type (might be due to invalid IL or missing references) //IL_1ceb: Unknown result type (might be due to invalid IL or missing references) //IL_1cf2: Unknown result type (might be due to invalid IL or missing references) //IL_1d02: Expected O, but got Unknown //IL_1d04: Unknown result type (might be due to invalid IL or missing references) //IL_1d09: Unknown result type (might be due to invalid IL or missing references) //IL_1d10: Unknown result type (might be due to invalid IL or missing references) //IL_1d17: Unknown result type (might be due to invalid IL or missing references) //IL_1d22: Unknown result type (might be due to invalid IL or missing references) //IL_1d24: Unknown result type (might be due to invalid IL or missing references) //IL_1d29: Unknown result type (might be due to invalid IL or missing references) //IL_1d2b: Unknown result type (might be due to invalid IL or missing references) //IL_1d30: Unknown result type (might be due to invalid IL or missing references) //IL_1d32: Unknown result type (might be due to invalid IL or missing references) //IL_1d37: Unknown result type (might be due to invalid IL or missing references) //IL_1d3e: Unknown result type (might be due to invalid IL or missing references) //IL_1d40: Unknown result type (might be due to invalid IL or missing references) //IL_1d45: Unknown result type (might be due to invalid IL or missing references) //IL_1d4c: Unknown result type (might be due to invalid IL or missing references) //IL_1d4e: Unknown result type (might be due to invalid IL or missing references) //IL_1d53: Unknown result type (might be due to invalid IL or missing references) //IL_1d5a: Unknown result type (might be due to invalid IL or missing references) //IL_1d5f: Unknown result type (might be due to invalid IL or missing references) //IL_1d66: Unknown result type (might be due to invalid IL or missing references) //IL_1d76: Expected O, but got Unknown //IL_1d77: Unknown result type (might be due to invalid IL or missing references) //IL_1d7c: Unknown result type (might be due to invalid IL or missing references) //IL_1d83: Unknown result type (might be due to invalid IL or missing references) //IL_1d93: Expected O, but got Unknown //IL_1d98: Unknown result type (might be due to invalid IL or missing references) //IL_1d9f: Unknown result type (might be due to invalid IL or missing references) //IL_1da6: Unknown result type (might be due to invalid IL or missing references) //IL_1db6: Expected O, but got Unknown //IL_1db8: Unknown result type (might be due to invalid IL or missing references) //IL_1dbd: Unknown result type (might be due to invalid IL or missing references) //IL_1dc4: Unknown result type (might be due to invalid IL or missing references) //IL_1dcb: Unknown result type (might be due to invalid IL or missing references) //IL_1dd6: Unknown result type (might be due to invalid IL or missing references) //IL_1dd8: Unknown result type (might be due to invalid IL or missing references) //IL_1ddd: Unknown result type (might be due to invalid IL or missing references) //IL_1ddf: Unknown result type (might be due to invalid IL or missing references) //IL_1de4: Unknown result type (might be due to invalid IL or missing references) //IL_1de6: Unknown result type (might be due to invalid IL or missing references) //IL_1deb: Unknown result type (might be due to invalid IL or missing references) //IL_1df2: Unknown result type (might be due to invalid IL or missing references) //IL_1df4: Unknown result type (might be due to invalid IL or missing references) //IL_1df9: Unknown result type (might be due to invalid IL or missing references) //IL_1e00: Unknown result type (might be due to invalid IL or missing references) //IL_1e02: Unknown result type (might be due to invalid IL or missing references) //IL_1e07: Unknown result type (might be due to invalid IL or missing references) //IL_1e0e: Unknown result type (might be due to invalid IL or missing references) //IL_1e13: Unknown result type (might be due to invalid IL or missing references) //IL_1e1a: Unknown result type (might be due to invalid IL or missing references) //IL_1e2a: Expected O, but got Unknown //IL_1e2b: Unknown result type (might be due to invalid IL or missing references) //IL_1e30: Unknown result type (might be due to invalid IL or missing references) //IL_1e37: Unknown result type (might be due to invalid IL or missing references) //IL_1e47: Expected O, but got Unknown //IL_1e4c: Unknown result type (might be due to invalid IL or missing references) //IL_1e53: Unknown result type (might be due to invalid IL or missing references) //IL_1e5a: Unknown result type (might be due to invalid IL or missing references) //IL_1e6a: Expected O, but got Unknown //IL_1ea4: Unknown result type (might be due to invalid IL or missing references) //IL_1ea9: Unknown result type (might be due to invalid IL or missing references) //IL_1eb5: Unknown result type (might be due to invalid IL or missing references) //IL_1ec1: Unknown result type (might be due to invalid IL or missing references) //IL_1ec8: Unknown result type (might be due to invalid IL or missing references) //IL_1ecf: Unknown result type (might be due to invalid IL or missing references) //IL_1ed6: Unknown result type (might be due to invalid IL or missing references) //IL_1edd: Unknown result type (might be due to invalid IL or missing references) //IL_1ee4: Unknown result type (might be due to invalid IL or missing references) //IL_1eeb: Unknown result type (might be due to invalid IL or missing references) //IL_1ef2: Unknown result type (might be due to invalid IL or missing references) //IL_1ef9: Unknown result type (might be due to invalid IL or missing references) //IL_1f00: Unknown result type (might be due to invalid IL or missing references) //IL_1f07: Unknown result type (might be due to invalid IL or missing references) //IL_1f0e: Unknown result type (might be due to invalid IL or missing references) //IL_1f1a: Expected O, but got Unknown //IL_1fdb: Unknown result type (might be due to invalid IL or missing references) //IL_1fe0: Unknown result type (might be due to invalid IL or missing references) //IL_0f22: Unknown result type (might be due to invalid IL or missing references) //IL_0f27: Unknown result type (might be due to invalid IL or missing references) //IL_0f34: Unknown result type (might be due to invalid IL or missing references) //IL_0f46: Expected O, but got Unknown Dungeon val = LoadOfficialDungeonPrefab("Base_Nakatomi"); LoadOfficialDungeonPrefab("Base_Cathedral"); Dungeon val2 = targetObject.AddComponent(); ExpandUtility.DuplicateComponent(val2, dungeonTemplate); DungeonMaterial val3 = ScriptableObject.CreateInstance(); ((Object)val3).name = "Nakatomi_Purple"; val3.wallShards = val.roomMaterialDefinitions[0].wallShards; val3.bigWallShards = new WeightedGameObjectCollection { elements = new List(0) }; val3.bigWallShardDamageThreshold = 10f; val3.fallbackVerticalTileMapEffects = val.roomMaterialDefinitions[0].fallbackVerticalTileMapEffects; val3.fallbackHorizontalTileMapEffects = val.roomMaterialDefinitions[0].fallbackHorizontalTileMapEffects; val3.pitfallVFXPrefab = null; val3.UsePitAmbientVFX = false; val3.AmbientPitVFX = new List(0); val3.PitVFXMinCooldown = 5f; val3.PitVFXMaxCooldown = 30f; val3.ChanceToSpawnPitVFXOnCooldown = 1f; val3.stampFailChance = 0.65f; val3.overrideTableTable = null; val3.supportsPits = false; val3.doPitAO = true; val3.pitsAreOneDeep = false; val3.supportsDiagonalWalls = false; val3.supportsUpholstery = true; val3.carpetIsMainFloor = false; val3.carpetGrids = (TileIndexGrid[])(object)new TileIndexGrid[2] { ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Purple/carpetGrids_0"), ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Purple/carpetGrids_1") }; val3.supportsChannels = false; val3.minChannelPools = 0; val3.maxChannelPools = 3; val3.channelTenacity = 0.65f; val3.channelGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val3.supportsLavaOrLavalikeSquares = false; val3.lavaGrids = (TileIndexGrid[])(object)new TileIndexGrid[1] { ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Purple/lavaGrids") }; val3.supportsIceSquares = false; val3.iceGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val3.roomFloorBorderGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Purple/roomFloorBorderGrid"); val3.roomCeilingBorderGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Purple/roomCeilingBorderGrid"); val3.pitLayoutGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Purple/pitLayoutGrid"); val3.pitBorderFlatGrid = null; val3.pitBorderRaisedGrid = null; val3.additionalPitBorderFlatGrid = null; val3.outerCeilingBorderGrid = null; val3.floorSquareDensity = 0.05f; val3.floorSquares = (TileIndexGrid[])(object)new TileIndexGrid[0]; val3.usesFacewallGrids = true; val3.facewallGrids = (FacewallIndexGridDefinition[])(object)new FacewallIndexGridDefinition[2] { ExpandAssets.DeserializeFacewallGridDefinitionFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Purple/facewallGrids_0"), ExpandAssets.DeserializeFacewallGridDefinitionFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Purple/facewallGrids_1") }; val3.facewallGrids[0].grid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Purple/facewallGrids_0_grid"); val3.facewallGrids[1].grid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Purple/facewallGrids_1_grid"); val3.usesInternalMaterialTransitions = false; val3.usesProceduralMaterialTransitions = false; val3.internalMaterialTransitions = (RoomInternalMaterialTransition[])(object)new RoomInternalMaterialTransition[0]; val3.secretRoomWallShardCollections = new List(0); val3.overrideStoneFloorType = false; val3.overrideFloorType = (CellFloorType)0; val3.useLighting = true; val3.lightPrefabs = new WeightedGameObjectCollection { elements = new List { new WeightedGameObject { rawGameObject = val.roomMaterialDefinitions[0].lightPrefabs.elements[0].rawGameObject, weight = 1f, forceDuplicatesPossible = false, pickupId = -1, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] } } }; val3.facewallLightStamps = val.roomMaterialDefinitions[0].facewallLightStamps; val3.sidewallLightStamps = val.roomMaterialDefinitions[0].sidewallLightStamps; val3.usesDecalLayer = false; val3.decalIndexGrid = null; val3.decalLayerStyle = (DecoStyle)0; val3.decalSize = 1; val3.decalSpacing = 1; val3.usesPatternLayer = false; val3.patternLayerStyle = (DecoStyle)99; val3.patternSpacing = 1; val3.patternSize = 1; val3.patternIndexGrid = null; val3.forceEdgesDiagonal = false; val3.exteriorFacadeBorderGrid = null; val3.facadeTopGrid = null; val3.bridgeGrid = null; DungeonMaterial val4 = ScriptableObject.CreateInstance(); ((Object)val4).name = "Nakatomi_Blue"; val4.wallShards = val.roomMaterialDefinitions[1].wallShards; val4.bigWallShards = new WeightedGameObjectCollection { elements = new List(0) }; val4.bigWallShardDamageThreshold = 10f; val4.fallbackVerticalTileMapEffects = val.roomMaterialDefinitions[1].fallbackVerticalTileMapEffects; val4.fallbackHorizontalTileMapEffects = val.roomMaterialDefinitions[1].fallbackHorizontalTileMapEffects; val4.pitfallVFXPrefab = null; val4.UsePitAmbientVFX = false; val4.AmbientPitVFX = new List(0); val4.PitVFXMinCooldown = 5f; val4.PitVFXMaxCooldown = 30f; val4.ChanceToSpawnPitVFXOnCooldown = 1f; val4.stampFailChance = 0.6f; val4.overrideTableTable = null; val4.supportsPits = false; val4.doPitAO = true; val4.pitsAreOneDeep = false; val4.supportsDiagonalWalls = false; val4.supportsUpholstery = true; val4.carpetIsMainFloor = false; val4.carpetGrids = (TileIndexGrid[])(object)new TileIndexGrid[2] { ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Blue/carpetGrids_0"), ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Blue/carpetGrids_1") }; val4.supportsChannels = false; val4.minChannelPools = 0; val4.maxChannelPools = 3; val4.channelTenacity = 0.75f; val4.channelGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val4.supportsLavaOrLavalikeSquares = false; val4.lavaGrids = (TileIndexGrid[])(object)new TileIndexGrid[1] { ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Blue/lavaGrids") }; val4.supportsIceSquares = false; val4.iceGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val4.roomFloorBorderGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Blue/roomFloorBorderGrid"); val4.roomCeilingBorderGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Blue/roomCeilingBorderGrid"); val4.pitLayoutGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Blue/pitLayoutGrid"); val4.pitBorderFlatGrid = null; val4.pitBorderRaisedGrid = null; val4.additionalPitBorderFlatGrid = null; val4.outerCeilingBorderGrid = null; val4.floorSquareDensity = 0.05f; val4.floorSquares = (TileIndexGrid[])(object)new TileIndexGrid[0]; val4.usesFacewallGrids = true; val4.facewallGrids = (FacewallIndexGridDefinition[])(object)new FacewallIndexGridDefinition[2] { ExpandAssets.DeserializeFacewallGridDefinitionFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Blue/facewallGrids_0"), ExpandAssets.DeserializeFacewallGridDefinitionFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Blue/facewallGrids_1") }; val4.facewallGrids[0].grid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Blue/facewallGrids_0_grid"); val4.facewallGrids[1].grid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Blue/facewallGrids_1_grid"); val4.usesInternalMaterialTransitions = false; val4.usesProceduralMaterialTransitions = false; val4.internalMaterialTransitions = (RoomInternalMaterialTransition[])(object)new RoomInternalMaterialTransition[0]; val4.secretRoomWallShardCollections = new List(0); val4.overrideStoneFloorType = false; val4.overrideFloorType = (CellFloorType)0; val4.useLighting = true; val4.lightPrefabs = new WeightedGameObjectCollection { elements = new List { new WeightedGameObject { rawGameObject = val.roomMaterialDefinitions[1].lightPrefabs.elements[0].rawGameObject, weight = 1f, forceDuplicatesPossible = false, pickupId = -1, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] } } }; val4.facewallLightStamps = val.roomMaterialDefinitions[1].facewallLightStamps; val4.sidewallLightStamps = val.roomMaterialDefinitions[1].sidewallLightStamps; val4.usesDecalLayer = false; val4.decalIndexGrid = null; val4.decalLayerStyle = (DecoStyle)0; val4.decalSize = 1; val4.decalSpacing = 1; val4.usesPatternLayer = false; val4.patternLayerStyle = (DecoStyle)99; val4.patternSpacing = 1; val4.patternSize = 1; val4.patternIndexGrid = null; val4.forceEdgesDiagonal = false; val4.exteriorFacadeBorderGrid = null; val4.facadeTopGrid = null; val4.bridgeGrid = null; ((Object)((Component)val2).gameObject).name = "Base_Office"; val2.DungeonSeed = 0; val2.DungeonShortName = "Office"; val2.DungeonFloorName = "Office"; val2.DungeonFloorLevelTextOverride = "In a dangerous workplace."; val2.debugSettings = new DebugDungeonSettings { RAPID_DEBUG_DUNGEON_ITERATION_SEEKER = false, RAPID_DEBUG_DUNGEON_ITERATION = false, RAPID_DEBUG_DUNGEON_COUNT = 50, GENERATION_VIEWER_MODE = false, FULL_MINIMAP_VISIBILITY = false, COOP_TEST = false, DISABLE_ENEMIES = false, DISABLE_LOOPS = true, DISABLE_SECRET_ROOM_COVERS = false, DISABLE_OUTLINES = false, WALLS_ARE_PITS = false }; val2.PatternSettings = new SemioticDungeonGenSettings { flows = new List { FlowDatabase.GetOrLoadByName("F0b_Office_Flow_01") }, mandatoryExtraRooms = new List(0), optionalExtraRooms = new List(0), MAX_GENERATION_ATTEMPTS = 250, DEBUG_RENDER_CANVASES_SEPARATELY = false }; val2.ForceRegenerationOfCharacters = false; val2.ActuallyGenerateTilemap = true; TilemapDecoSettings val5 = new TilemapDecoSettings(); WeightedIntCollection val6 = new WeightedIntCollection(); val6.elements = (WeightedInt[])(object)new WeightedInt[5] { new WeightedInt { annotation = "purple", value = 0, weight = 0.5f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "blue", value = 1, weight = 0.5f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "shop", value = 2, weight = 0f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "unused", value = 3, weight = 0f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "unused", value = 4, weight = 0f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] } }; val5.standardRoomVisualSubtypes = val6; val5.decalLayerStyle = (DecoStyle)99; val5.decalSize = 3; val5.decalSpacing = 1; val5.decalExpansion = 0; val5.patternLayerStyle = (DecoStyle)99; val5.patternSize = 3; val5.patternSpacing = 3; val5.patternExpansion = 0; val5.decoPatchFrequency = 0.01f; val5.ambientLightColor = new Color(0.927336f, 0.966108f, 0.985294f, 1f); val5.ambientLightColorTwo = new Color(0.92549f, 0.964705f, 0.984314f, 1f); val5.lowQualityAmbientLightColor = Color.white; val5.lowQualityAmbientLightColorTwo = Color.white; val5.lowQualityCheapLightVector = new Vector4(1f, 0f, -1f, 0f); val5.UsesAlienFXFloorColor = false; val5.AlienFXFloorColor = Color.black; val5.generateLights = true; val5.lightCullingPercentage = 0.2f; val5.lightOverlapRadius = 8; val5.nearestAllowedLight = 12f; val5.minLightExpanseWidth = 2; val5.lightHeight = -2f; val5.lightCookies = (Texture2D[])(object)new Texture2D[0]; val5.debug_view = false; val2.decoSettings = val5; val2.tileIndices = new TileIndices { tilesetId = (ValidTilesets)256, dungeonCollection = ExpandPrefabs.ENV_Tileset_Office.GetComponent(), dungeonCollectionSupportsDiagonalWalls = false, aoTileIndices = new AOTileIndices { AOFloorTileIndex = 0, AOBottomWallBaseTileIndex = 1, AOBottomWallTileRightIndex = 2, AOBottomWallTileLeftIndex = 3, AOBottomWallTileBothIndex = 4, AOTopFacewallRightIndex = 6, AOTopFacewallLeftIndex = 5, AOTopFacewallBothIndex = 7, AOFloorWallLeft = 5, AOFloorWallRight = 6, AOFloorWallBoth = 7, AOFloorPizzaSliceLeft = 8, AOFloorPizzaSliceRight = 9, AOFloorPizzaSliceBoth = 10, AOFloorPizzaSliceLeftWallRight = 11, AOFloorPizzaSliceRightWallLeft = 12, AOFloorWallUpAndLeft = 13, AOFloorWallUpAndRight = 14, AOFloorWallUpAndBoth = 15, AOFloorDiagonalWallNortheast = -1, AOFloorDiagonalWallNortheastLower = -1, AOFloorDiagonalWallNortheastLowerJoint = -1, AOFloorDiagonalWallNorthwest = -1, AOFloorDiagonalWallNorthwestLower = -1, AOFloorDiagonalWallNorthwestLowerJoint = -1, AOBottomWallDiagonalNortheast = -1, AOBottomWallDiagonalNorthwest = -1 }, placeBorders = true, placePits = false, chestHighWallIndices = new List { new TileIndexVariant { index = 41, likelihood = 0.5f, overrideLayerIndex = 0, overrideIndex = 0 } }, decalIndexGrid = null, patternIndexGrid = null, globalSecondBorderTiles = new List(0), edgeDecorationTiles = null }; val2.roomMaterialDefinitions = (DungeonMaterial[])(object)new DungeonMaterial[6] { val3, val4, val3, val3, val3, sharedAssets2.LoadAsset("Boss_Cathedral_StainedGlass_Lights") }; val2.dungeonWingDefinitions = (DungeonWingDefinition[])(object)new DungeonWingDefinition[0]; val2.pathGridDefinitions = val.pathGridDefinitions; val2.dungeonDustups = val.dungeonDustups; val2.damageTypeEffectMatrix = ScriptableObject.CreateInstance(); val2.damageTypeEffectMatrix.definitions = val.damageTypeEffectMatrix.definitions; val2.stampData = ScriptableObject.CreateInstance(); ((Object)val2.stampData).name = "ENV_OFFICE_STAMP_DATA"; val2.stampData.tileStampWeight = 0.33f; val2.stampData.spriteStampWeight = 0f; val2.stampData.objectStampWeight = 1f; val2.stampData.stamps = (TileStampData[])(object)new TileStampData[1] { new TileStampData { width = 1, height = 1, relativeWeight = 1f, placementRule = (StampPlacementRule)0, occupySpace = (StampSpace)1, stampCategory = (StampCategory)3, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)1, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 1f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, stampTileIndices = new List { 60 } } }; val2.stampData.spriteStamps = (SpriteStampData[])(object)new SpriteStampData[0]; List list = new List(); ObjectStampData[] objectStamps = val.stampData.objectStamps; foreach (ObjectStampData val7 in objectStamps) { list.Add(new ObjectStampData { width = ((StampDataBase)val7).width, height = ((StampDataBase)val7).height, relativeWeight = ((StampDataBase)val7).relativeWeight, placementRule = ((StampDataBase)val7).placementRule, occupySpace = ((StampDataBase)val7).occupySpace, stampCategory = ((StampDataBase)val7).stampCategory, preferredIntermediaryStamps = ((StampDataBase)val7).preferredIntermediaryStamps, intermediaryMatchingStyle = ((StampDataBase)val7).intermediaryMatchingStyle, requiresForcedMatchingStyle = ((StampDataBase)val7).requiresForcedMatchingStyle, opulence = ((StampDataBase)val7).opulence, roomTypeData = new List(), indexOfSymmetricPartner = ((StampDataBase)val7).indexOfSymmetricPartner, preventRoomRepeats = ((StampDataBase)val7).preventRoomRepeats, objectReference = val7.objectReference }); } for (int j = 0; j < list.Count; j++) { if (((StampDataBase)val.stampData.objectStamps[j]).roomTypeData == null || ((StampDataBase)val.stampData.objectStamps[j]).roomTypeData.Count <= 0) { continue; } foreach (StampPerRoomPlacementSettings roomTypeDatum in ((StampDataBase)val.stampData.objectStamps[j]).roomTypeData) { ((StampDataBase)list[j]).roomTypeData.Add(new StampPerRoomPlacementSettings { roomSubType = roomTypeDatum.roomSubType, roomRelativeWeight = roomTypeDatum.roomRelativeWeight }); } } ((StampDataBase)list[6]).placementRule = (StampPlacementRule)5; ((StampDataBase)list[0]).roomTypeData[1].roomRelativeWeight = 0f; ((StampDataBase)list[0]).width = 2; ((StampDataBase)list[1]).roomTypeData[1].roomRelativeWeight = 0f; ((StampDataBase)list[2]).roomTypeData[1].roomRelativeWeight = 0f; ((StampDataBase)list[3]).roomTypeData[1].roomRelativeWeight = 0f; ((StampDataBase)list[5]).roomTypeData[1].roomRelativeWeight = 0f; ((StampDataBase)list[6]).roomTypeData[1].roomRelativeWeight = 0f; ((StampDataBase)list[7]).placementRule = (StampPlacementRule)5; ((StampDataBase)list[7]).roomTypeData[1].roomRelativeWeight = 0.4f; ((StampDataBase)list[7]).roomTypeData[1].roomRelativeWeight = 0f; ((StampDataBase)list[7]).relativeWeight = 0.4f; ((StampDataBase)list[8]).placementRule = (StampPlacementRule)5; ((StampDataBase)list[8]).relativeWeight = 0.4f; ((StampDataBase)list[8]).roomTypeData[0].roomRelativeWeight = 0.4f; ((StampDataBase)list[8]).roomTypeData[1].roomRelativeWeight = 0f; list.Add(new ObjectStampData { width = 1, height = 1, relativeWeight = 0.5f, placementRule = (StampPlacementRule)2, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.4f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)val.PatternSettings.flows[0].AllNodes[6].overrideExactRoom.placedObjects[2].nonenemyBehaviour).gameObject }); list.Add(new ObjectStampData { width = 1, height = 1, relativeWeight = 0.5f, placementRule = (StampPlacementRule)8, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.4f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)val.PatternSettings.flows[0].AllNodes[6].overrideExactRoom.placedObjects[7].nonenemyBehaviour).gameObject }); list.Add(new ObjectStampData { width = 1, height = 1, relativeWeight = 0.5f, placementRule = (StampPlacementRule)3, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.4f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)val.PatternSettings.flows[0].AllNodes[6].overrideExactRoom.placedObjects[10].nonenemyBehaviour).gameObject }); list.Add(new ObjectStampData { width = 3, height = 1, relativeWeight = 0.5f, placementRule = (StampPlacementRule)2, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0.2f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.2f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)val.PatternSettings.flows[0].AllNodes[4].overrideExactRoom.placedObjects[16].nonenemyBehaviour).gameObject }); list.Add(new ObjectStampData { width = 1, height = 1, relativeWeight = 0.5f, placementRule = (StampPlacementRule)8, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0.2f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.2f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)val.PatternSettings.flows[0].AllNodes[4].overrideExactRoom.placedObjects[8].nonenemyBehaviour).gameObject }); list.Add(new ObjectStampData { width = 1, height = 1, relativeWeight = 0.5f, placementRule = (StampPlacementRule)3, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0.2f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.2f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)val.PatternSettings.flows[0].AllNodes[4].overrideExactRoom.placedObjects[12].nonenemyBehaviour).gameObject }); list.Add(new ObjectStampData { width = 2, height = 1, relativeWeight = 0.5f, placementRule = (StampPlacementRule)2, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0.2f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.2f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)val.PatternSettings.flows[0].AllNodes[4].overrideExactRoom.placedObjects[2].nonenemyBehaviour).gameObject }); list.Add(new ObjectStampData { width = 1, height = 1, relativeWeight = 0.5f, placementRule = (StampPlacementRule)5, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0.2f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.2f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)val.PatternSettings.flows[0].AllNodes[4].overrideExactRoom.placedObjects[8].nonenemyBehaviour).gameObject }); list.Add(new ObjectStampData { width = 1, height = 1, relativeWeight = 0.5f, placementRule = (StampPlacementRule)5, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0.2f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.2f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)val.PatternSettings.flows[0].AllNodes[4].overrideExactRoom.placedObjects[12].nonenemyBehaviour).gameObject }); list.Add(new ObjectStampData { width = 2, height = 1, relativeWeight = 0.5f, placementRule = (StampPlacementRule)5, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0.2f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.2f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)val.PatternSettings.flows[0].AllNodes[4].overrideExactRoom.placedObjects[2].nonenemyBehaviour).gameObject }); list.Add(new ObjectStampData { width = 1, height = 2, relativeWeight = 0.5f, placementRule = (StampPlacementRule)5, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0.2f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.2f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)val.PatternSettings.flows[0].AllNodes[0].overrideExactRoom.placedObjects[3].nonenemyBehaviour).gameObject }); for (int k = 0; k < 200; k++) { list.Add(new ObjectStampData { width = 1, height = 1, relativeWeight = 1f, placementRule = (StampPlacementRule)5, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 1f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 1f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ExpandPrefabs.EXDummyObject }); } list.Add(new ObjectStampData { width = 1, height = 1, relativeWeight = 0.1f, placementRule = (StampPlacementRule)3, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0.6f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.6f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ExpandPrefabs.EXDummyObject }); list.Add(new ObjectStampData { width = 1, height = 1, relativeWeight = 0.1f, placementRule = (StampPlacementRule)8, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0.6f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.6f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ExpandPrefabs.EXDummyObject }); list.Add(new ObjectStampData { width = 1, height = 1, relativeWeight = 0.6f, placementRule = (StampPlacementRule)2, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 1f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 1f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ExpandPrefabs.EXDummyObject }); list.Add(new ObjectStampData { width = 1, height = 1, relativeWeight = 0.6f, placementRule = (StampPlacementRule)0, occupySpace = (StampSpace)0, stampCategory = (StampCategory)3, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0.8f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.8f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ExpandPrefabs.EXDummyObject }); val2.stampData.objectStamps = list.ToArray(); val2.stampData.SymmetricFrameChance = 0.1f; val2.stampData.SymmetricCompleteChance = 0.1f; val2.UsesCustomFloorIdea = false; val2.FloorIdea = new RobotDaveIdea { ValidEasyEnemyPlaceables = (DungeonPlaceable[])(object)new DungeonPlaceable[0], ValidHardEnemyPlaceables = (DungeonPlaceable[])(object)new DungeonPlaceable[0], UseWallSawblades = false, UseRollingLogsVertical = false, UseRollingLogsHorizontal = false, UseFloorPitTraps = false, UseFloorFlameTraps = false, UseFloorSpikeTraps = false, UseFloorConveyorBelts = false, UseCaveIns = false, UseAlarmMushrooms = false, UseMineCarts = false, UseChandeliers = false, CanIncludePits = true }; val2.doorObjects = val.doorObjects; val2.lockedDoorObjects = null; val2.oneWayDoorObjects = ExpandPrefabs.Office_OneWayDoors; val2.oneWayDoorPressurePlate = val.oneWayDoorPressurePlate; val2.phantomBlockerDoorObjects = val.phantomBlockerDoorObjects; val2.WarpWingDoorPrefab = null; val2.baseChestContents = val.baseChestContents; val2.SecretRoomSimpleTriggersFacewall = val.SecretRoomSimpleTriggersFacewall; val2.SecretRoomSimpleTriggersSidewall = val.SecretRoomSimpleTriggersSidewall; val2.SecretRoomComplexTriggers = new List(0); val2.SecretRoomDoorSparkVFX = val.SecretRoomDoorSparkVFX; val2.SecretRoomHorizontalPoofVFX = val.SecretRoomHorizontalPoofVFX; val2.SecretRoomVerticalPoofVFX = val.SecretRoomVerticalPoofVFX; val2.sharedSettingsPrefab = val.sharedSettingsPrefab; val2.BossMasteryTokenItemId = -1; val2.StripPlayerOnArrival = false; val2.SuppressEmergencyCrates = false; val2.SetTutorialFlag = false; val2.PlayerIsLight = false; val2.PlayerLightColor = Color.white; val2.PlayerLightIntensity = 3f; val2.PlayerLightRadius = 5f; val2.musicEventName = "Play_MUS_Office_Theme_01"; val = null; } public static void InitFutureDungeon(AssetBundle sharedAssets2, GameObject targetObject, Dungeon dungeonTemplate) { //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_0172: 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_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Unknown result type (might be due to invalid IL or missing references) //IL_01e0: Unknown result type (might be due to invalid IL or missing references) //IL_01e5: Unknown result type (might be due to invalid IL or missing references) //IL_01ea: Unknown result type (might be due to invalid IL or missing references) //IL_0202: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Unknown result type (might be due to invalid IL or missing references) //IL_0215: Unknown result type (might be due to invalid IL or missing references) //IL_021a: Unknown result type (might be due to invalid IL or missing references) //IL_0232: Unknown result type (might be due to invalid IL or missing references) //IL_0240: Unknown result type (might be due to invalid IL or missing references) //IL_0245: Unknown result type (might be due to invalid IL or missing references) //IL_024a: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Unknown result type (might be due to invalid IL or missing references) //IL_027a: Unknown result type (might be due to invalid IL or missing references) //IL_0292: Unknown result type (might be due to invalid IL or missing references) //IL_0299: Unknown result type (might be due to invalid IL or missing references) //IL_029e: 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_02e9: Expected O, but got Unknown //IL_02ef: Expected O, but got Unknown //IL_02f1: Unknown result type (might be due to invalid IL or missing references) //IL_02f6: Unknown result type (might be due to invalid IL or missing references) //IL_030f: Unknown result type (might be due to invalid IL or missing references) //IL_0328: Unknown result type (might be due to invalid IL or missing references) //IL_0341: Unknown result type (might be due to invalid IL or missing references) //IL_0350: Unknown result type (might be due to invalid IL or missing references) //IL_0355: Unknown result type (might be due to invalid IL or missing references) //IL_035a: Unknown result type (might be due to invalid IL or missing references) //IL_0369: Unknown result type (might be due to invalid IL or missing references) //IL_036e: Unknown result type (might be due to invalid IL or missing references) //IL_0373: Unknown result type (might be due to invalid IL or missing references) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_03a5: 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_03b9: Unknown result type (might be due to invalid IL or missing references) //IL_03be: Unknown result type (might be due to invalid IL or missing references) //IL_03d7: Unknown result type (might be due to invalid IL or missing references) //IL_03e6: Unknown result type (might be due to invalid IL or missing references) //IL_03eb: Unknown result type (might be due to invalid IL or missing references) //IL_03f0: Unknown result type (might be due to invalid IL or missing references) //IL_0409: Unknown result type (might be due to invalid IL or missing references) //IL_0422: Unknown result type (might be due to invalid IL or missing references) //IL_043b: Unknown result type (might be due to invalid IL or missing references) //IL_0442: Unknown result type (might be due to invalid IL or missing references) //IL_0447: Unknown result type (might be due to invalid IL or missing references) //IL_046b: Unknown result type (might be due to invalid IL or missing references) //IL_0494: Expected O, but got Unknown //IL_049a: Expected O, but got Unknown //IL_049c: Unknown result type (might be due to invalid IL or missing references) //IL_04a1: Unknown result type (might be due to invalid IL or missing references) //IL_04ba: Unknown result type (might be due to invalid IL or missing references) //IL_04d3: Unknown result type (might be due to invalid IL or missing references) //IL_04ec: Unknown result type (might be due to invalid IL or missing references) //IL_04fb: Unknown result type (might be due to invalid IL or missing references) //IL_0500: Unknown result type (might be due to invalid IL or missing references) //IL_0505: Unknown result type (might be due to invalid IL or missing references) //IL_0514: Unknown result type (might be due to invalid IL or missing references) //IL_0519: Unknown result type (might be due to invalid IL or missing references) //IL_051e: Unknown result type (might be due to invalid IL or missing references) //IL_052d: Unknown result type (might be due to invalid IL or missing references) //IL_0532: Unknown result type (might be due to invalid IL or missing references) //IL_0537: Unknown result type (might be due to invalid IL or missing references) //IL_0550: Unknown result type (might be due to invalid IL or missing references) //IL_055f: Unknown result type (might be due to invalid IL or missing references) //IL_0564: Unknown result type (might be due to invalid IL or missing references) //IL_0569: Unknown result type (might be due to invalid IL or missing references) //IL_0582: Unknown result type (might be due to invalid IL or missing references) //IL_0591: Unknown result type (might be due to invalid IL or missing references) //IL_0596: Unknown result type (might be due to invalid IL or missing references) //IL_059b: Unknown result type (might be due to invalid IL or missing references) //IL_05b4: Unknown result type (might be due to invalid IL or missing references) //IL_05cd: Unknown result type (might be due to invalid IL or missing references) //IL_05e6: Unknown result type (might be due to invalid IL or missing references) //IL_05ed: Unknown result type (might be due to invalid IL or missing references) //IL_05f2: Unknown result type (might be due to invalid IL or missing references) //IL_0616: Unknown result type (might be due to invalid IL or missing references) //IL_063f: Expected O, but got Unknown //IL_0645: Expected O, but got Unknown //IL_0651: Unknown result type (might be due to invalid IL or missing references) //IL_0656: Unknown result type (might be due to invalid IL or missing references) //IL_065d: Unknown result type (might be due to invalid IL or missing references) //IL_0664: Unknown result type (might be due to invalid IL or missing references) //IL_066f: Unknown result type (might be due to invalid IL or missing references) //IL_0671: Unknown result type (might be due to invalid IL or missing references) //IL_0676: Unknown result type (might be due to invalid IL or missing references) //IL_0678: Unknown result type (might be due to invalid IL or missing references) //IL_067d: Unknown result type (might be due to invalid IL or missing references) //IL_067f: Unknown result type (might be due to invalid IL or missing references) //IL_0684: Unknown result type (might be due to invalid IL or missing references) //IL_068b: Unknown result type (might be due to invalid IL or missing references) //IL_068d: Unknown result type (might be due to invalid IL or missing references) //IL_0692: Unknown result type (might be due to invalid IL or missing references) //IL_0699: Unknown result type (might be due to invalid IL or missing references) //IL_069b: Unknown result type (might be due to invalid IL or missing references) //IL_06a0: Unknown result type (might be due to invalid IL or missing references) //IL_06a7: Unknown result type (might be due to invalid IL or missing references) //IL_06ac: Unknown result type (might be due to invalid IL or missing references) //IL_06b3: Unknown result type (might be due to invalid IL or missing references) //IL_06c3: Expected O, but got Unknown //IL_06c4: Unknown result type (might be due to invalid IL or missing references) //IL_06c9: Unknown result type (might be due to invalid IL or missing references) //IL_06d0: Unknown result type (might be due to invalid IL or missing references) //IL_06e0: Expected O, but got Unknown //IL_06e5: Unknown result type (might be due to invalid IL or missing references) //IL_06ec: Unknown result type (might be due to invalid IL or missing references) //IL_06f3: Unknown result type (might be due to invalid IL or missing references) //IL_0708: Expected O, but got Unknown //IL_0709: Unknown result type (might be due to invalid IL or missing references) //IL_070e: Unknown result type (might be due to invalid IL or missing references) //IL_0715: Unknown result type (might be due to invalid IL or missing references) //IL_071c: Unknown result type (might be due to invalid IL or missing references) //IL_0727: Unknown result type (might be due to invalid IL or missing references) //IL_0729: Unknown result type (might be due to invalid IL or missing references) //IL_072e: Unknown result type (might be due to invalid IL or missing references) //IL_0730: Unknown result type (might be due to invalid IL or missing references) //IL_0735: Unknown result type (might be due to invalid IL or missing references) //IL_0737: Unknown result type (might be due to invalid IL or missing references) //IL_073c: Unknown result type (might be due to invalid IL or missing references) //IL_0743: Unknown result type (might be due to invalid IL or missing references) //IL_0745: Unknown result type (might be due to invalid IL or missing references) //IL_074a: Unknown result type (might be due to invalid IL or missing references) //IL_0751: Unknown result type (might be due to invalid IL or missing references) //IL_0753: Unknown result type (might be due to invalid IL or missing references) //IL_0758: Unknown result type (might be due to invalid IL or missing references) //IL_075f: Unknown result type (might be due to invalid IL or missing references) //IL_0764: Unknown result type (might be due to invalid IL or missing references) //IL_076b: Unknown result type (might be due to invalid IL or missing references) //IL_077b: Expected O, but got Unknown //IL_077c: Unknown result type (might be due to invalid IL or missing references) //IL_0781: Unknown result type (might be due to invalid IL or missing references) //IL_0788: Unknown result type (might be due to invalid IL or missing references) //IL_0798: Expected O, but got Unknown //IL_079d: Unknown result type (might be due to invalid IL or missing references) //IL_07a4: Unknown result type (might be due to invalid IL or missing references) //IL_07ab: Unknown result type (might be due to invalid IL or missing references) //IL_07c0: Expected O, but got Unknown //IL_07c1: Unknown result type (might be due to invalid IL or missing references) //IL_07c6: Unknown result type (might be due to invalid IL or missing references) //IL_07cd: Unknown result type (might be due to invalid IL or missing references) //IL_07d4: Unknown result type (might be due to invalid IL or missing references) //IL_07df: Unknown result type (might be due to invalid IL or missing references) //IL_07e1: Unknown result type (might be due to invalid IL or missing references) //IL_07e6: Unknown result type (might be due to invalid IL or missing references) //IL_07e8: Unknown result type (might be due to invalid IL or missing references) //IL_07ed: Unknown result type (might be due to invalid IL or missing references) //IL_07ef: Unknown result type (might be due to invalid IL or missing references) //IL_07f4: Unknown result type (might be due to invalid IL or missing references) //IL_07fb: Unknown result type (might be due to invalid IL or missing references) //IL_07fd: Unknown result type (might be due to invalid IL or missing references) //IL_0802: Unknown result type (might be due to invalid IL or missing references) //IL_0809: Unknown result type (might be due to invalid IL or missing references) //IL_080b: Unknown result type (might be due to invalid IL or missing references) //IL_0810: Unknown result type (might be due to invalid IL or missing references) //IL_0817: Unknown result type (might be due to invalid IL or missing references) //IL_081c: Unknown result type (might be due to invalid IL or missing references) //IL_0823: Unknown result type (might be due to invalid IL or missing references) //IL_0833: Expected O, but got Unknown //IL_0834: Unknown result type (might be due to invalid IL or missing references) //IL_0839: Unknown result type (might be due to invalid IL or missing references) //IL_0840: Unknown result type (might be due to invalid IL or missing references) //IL_0850: Expected O, but got Unknown //IL_0855: Unknown result type (might be due to invalid IL or missing references) //IL_085c: Unknown result type (might be due to invalid IL or missing references) //IL_0863: Unknown result type (might be due to invalid IL or missing references) //IL_0878: Expected O, but got Unknown //IL_0879: Unknown result type (might be due to invalid IL or missing references) //IL_087e: Unknown result type (might be due to invalid IL or missing references) //IL_0885: Unknown result type (might be due to invalid IL or missing references) //IL_088c: Unknown result type (might be due to invalid IL or missing references) //IL_0897: Unknown result type (might be due to invalid IL or missing references) //IL_0899: Unknown result type (might be due to invalid IL or missing references) //IL_089e: Unknown result type (might be due to invalid IL or missing references) //IL_08a0: Unknown result type (might be due to invalid IL or missing references) //IL_08a5: Unknown result type (might be due to invalid IL or missing references) //IL_08a7: Unknown result type (might be due to invalid IL or missing references) //IL_08ac: Unknown result type (might be due to invalid IL or missing references) //IL_08b3: Unknown result type (might be due to invalid IL or missing references) //IL_08b5: Unknown result type (might be due to invalid IL or missing references) //IL_08ba: Unknown result type (might be due to invalid IL or missing references) //IL_08c1: Unknown result type (might be due to invalid IL or missing references) //IL_08c3: Unknown result type (might be due to invalid IL or missing references) //IL_08c8: Unknown result type (might be due to invalid IL or missing references) //IL_08cf: Unknown result type (might be due to invalid IL or missing references) //IL_08d4: Unknown result type (might be due to invalid IL or missing references) //IL_08db: Unknown result type (might be due to invalid IL or missing references) //IL_08eb: Expected O, but got Unknown //IL_08ec: Unknown result type (might be due to invalid IL or missing references) //IL_08f1: Unknown result type (might be due to invalid IL or missing references) //IL_08f8: Unknown result type (might be due to invalid IL or missing references) //IL_0908: Expected O, but got Unknown //IL_090d: Unknown result type (might be due to invalid IL or missing references) //IL_0914: Unknown result type (might be due to invalid IL or missing references) //IL_091b: Unknown result type (might be due to invalid IL or missing references) //IL_0930: Expected O, but got Unknown //IL_0931: Unknown result type (might be due to invalid IL or missing references) //IL_0936: Unknown result type (might be due to invalid IL or missing references) //IL_093d: Unknown result type (might be due to invalid IL or missing references) //IL_0944: Unknown result type (might be due to invalid IL or missing references) //IL_094f: Unknown result type (might be due to invalid IL or missing references) //IL_0951: Unknown result type (might be due to invalid IL or missing references) //IL_0956: Unknown result type (might be due to invalid IL or missing references) //IL_0958: Unknown result type (might be due to invalid IL or missing references) //IL_095d: Unknown result type (might be due to invalid IL or missing references) //IL_095f: Unknown result type (might be due to invalid IL or missing references) //IL_0964: Unknown result type (might be due to invalid IL or missing references) //IL_096b: Unknown result type (might be due to invalid IL or missing references) //IL_096d: Unknown result type (might be due to invalid IL or missing references) //IL_0972: Unknown result type (might be due to invalid IL or missing references) //IL_0979: Unknown result type (might be due to invalid IL or missing references) //IL_097b: Unknown result type (might be due to invalid IL or missing references) //IL_0980: Unknown result type (might be due to invalid IL or missing references) //IL_0987: Unknown result type (might be due to invalid IL or missing references) //IL_098c: Unknown result type (might be due to invalid IL or missing references) //IL_0993: Unknown result type (might be due to invalid IL or missing references) //IL_09a3: Expected O, but got Unknown //IL_09a4: Unknown result type (might be due to invalid IL or missing references) //IL_09a9: Unknown result type (might be due to invalid IL or missing references) //IL_09b0: Unknown result type (might be due to invalid IL or missing references) //IL_09c0: Expected O, but got Unknown //IL_09c5: Unknown result type (might be due to invalid IL or missing references) //IL_09cc: Unknown result type (might be due to invalid IL or missing references) //IL_09d3: Unknown result type (might be due to invalid IL or missing references) //IL_09e8: Expected O, but got Unknown //IL_09e9: Unknown result type (might be due to invalid IL or missing references) //IL_09ee: Unknown result type (might be due to invalid IL or missing references) //IL_09f5: Unknown result type (might be due to invalid IL or missing references) //IL_09fc: Unknown result type (might be due to invalid IL or missing references) //IL_0a07: Unknown result type (might be due to invalid IL or missing references) //IL_0a09: Unknown result type (might be due to invalid IL or missing references) //IL_0a0e: Unknown result type (might be due to invalid IL or missing references) //IL_0a10: Unknown result type (might be due to invalid IL or missing references) //IL_0a15: Unknown result type (might be due to invalid IL or missing references) //IL_0a17: Unknown result type (might be due to invalid IL or missing references) //IL_0a1c: Unknown result type (might be due to invalid IL or missing references) //IL_0a23: Unknown result type (might be due to invalid IL or missing references) //IL_0a25: Unknown result type (might be due to invalid IL or missing references) //IL_0a2a: Unknown result type (might be due to invalid IL or missing references) //IL_0a31: Unknown result type (might be due to invalid IL or missing references) //IL_0a33: Unknown result type (might be due to invalid IL or missing references) //IL_0a38: Unknown result type (might be due to invalid IL or missing references) //IL_0a3f: Unknown result type (might be due to invalid IL or missing references) //IL_0a44: Unknown result type (might be due to invalid IL or missing references) //IL_0a4b: Unknown result type (might be due to invalid IL or missing references) //IL_0a5b: Expected O, but got Unknown //IL_0a5c: Unknown result type (might be due to invalid IL or missing references) //IL_0a61: Unknown result type (might be due to invalid IL or missing references) //IL_0a68: Unknown result type (might be due to invalid IL or missing references) //IL_0a78: Expected O, but got Unknown //IL_0a7d: Unknown result type (might be due to invalid IL or missing references) //IL_0a84: Unknown result type (might be due to invalid IL or missing references) //IL_0a8b: Unknown result type (might be due to invalid IL or missing references) //IL_0aa0: Expected O, but got Unknown //IL_0aa1: Unknown result type (might be due to invalid IL or missing references) //IL_0aa6: Unknown result type (might be due to invalid IL or missing references) //IL_0aad: Unknown result type (might be due to invalid IL or missing references) //IL_0ab4: Unknown result type (might be due to invalid IL or missing references) //IL_0abf: Unknown result type (might be due to invalid IL or missing references) //IL_0ac1: Unknown result type (might be due to invalid IL or missing references) //IL_0ac6: Unknown result type (might be due to invalid IL or missing references) //IL_0ac8: Unknown result type (might be due to invalid IL or missing references) //IL_0acd: Unknown result type (might be due to invalid IL or missing references) //IL_0acf: Unknown result type (might be due to invalid IL or missing references) //IL_0ad4: Unknown result type (might be due to invalid IL or missing references) //IL_0adb: Unknown result type (might be due to invalid IL or missing references) //IL_0add: Unknown result type (might be due to invalid IL or missing references) //IL_0ae2: Unknown result type (might be due to invalid IL or missing references) //IL_0ae9: Unknown result type (might be due to invalid IL or missing references) //IL_0aeb: Unknown result type (might be due to invalid IL or missing references) //IL_0af0: Unknown result type (might be due to invalid IL or missing references) //IL_0af7: Unknown result type (might be due to invalid IL or missing references) //IL_0afc: Unknown result type (might be due to invalid IL or missing references) //IL_0b03: Unknown result type (might be due to invalid IL or missing references) //IL_0b13: Expected O, but got Unknown //IL_0b14: Unknown result type (might be due to invalid IL or missing references) //IL_0b19: Unknown result type (might be due to invalid IL or missing references) //IL_0b20: Unknown result type (might be due to invalid IL or missing references) //IL_0b30: Expected O, but got Unknown //IL_0b35: Unknown result type (might be due to invalid IL or missing references) //IL_0b3c: Unknown result type (might be due to invalid IL or missing references) //IL_0b43: Unknown result type (might be due to invalid IL or missing references) //IL_0b58: Expected O, but got Unknown //IL_0b59: Unknown result type (might be due to invalid IL or missing references) //IL_0b5e: Unknown result type (might be due to invalid IL or missing references) //IL_0b65: Unknown result type (might be due to invalid IL or missing references) //IL_0b6c: Unknown result type (might be due to invalid IL or missing references) //IL_0b77: Unknown result type (might be due to invalid IL or missing references) //IL_0b79: Unknown result type (might be due to invalid IL or missing references) //IL_0b7e: Unknown result type (might be due to invalid IL or missing references) //IL_0b80: Unknown result type (might be due to invalid IL or missing references) //IL_0b85: Unknown result type (might be due to invalid IL or missing references) //IL_0b87: Unknown result type (might be due to invalid IL or missing references) //IL_0b8c: Unknown result type (might be due to invalid IL or missing references) //IL_0b93: Unknown result type (might be due to invalid IL or missing references) //IL_0b95: Unknown result type (might be due to invalid IL or missing references) //IL_0b9a: Unknown result type (might be due to invalid IL or missing references) //IL_0ba1: Unknown result type (might be due to invalid IL or missing references) //IL_0ba3: Unknown result type (might be due to invalid IL or missing references) //IL_0ba8: Unknown result type (might be due to invalid IL or missing references) //IL_0baf: Unknown result type (might be due to invalid IL or missing references) //IL_0bb4: Unknown result type (might be due to invalid IL or missing references) //IL_0bbb: Unknown result type (might be due to invalid IL or missing references) //IL_0bcb: Expected O, but got Unknown //IL_0bcc: Unknown result type (might be due to invalid IL or missing references) //IL_0bd1: Unknown result type (might be due to invalid IL or missing references) //IL_0bd8: Unknown result type (might be due to invalid IL or missing references) //IL_0be8: Expected O, but got Unknown //IL_0bed: Unknown result type (might be due to invalid IL or missing references) //IL_0bf4: Unknown result type (might be due to invalid IL or missing references) //IL_0bfb: Unknown result type (might be due to invalid IL or missing references) //IL_0c10: Expected O, but got Unknown //IL_0c11: Unknown result type (might be due to invalid IL or missing references) //IL_0c16: Unknown result type (might be due to invalid IL or missing references) //IL_0c1d: Unknown result type (might be due to invalid IL or missing references) //IL_0c24: Unknown result type (might be due to invalid IL or missing references) //IL_0c2f: Unknown result type (might be due to invalid IL or missing references) //IL_0c31: Unknown result type (might be due to invalid IL or missing references) //IL_0c36: Unknown result type (might be due to invalid IL or missing references) //IL_0c38: Unknown result type (might be due to invalid IL or missing references) //IL_0c3d: Unknown result type (might be due to invalid IL or missing references) //IL_0c3f: Unknown result type (might be due to invalid IL or missing references) //IL_0c44: Unknown result type (might be due to invalid IL or missing references) //IL_0c4b: Unknown result type (might be due to invalid IL or missing references) //IL_0c4d: Unknown result type (might be due to invalid IL or missing references) //IL_0c52: Unknown result type (might be due to invalid IL or missing references) //IL_0c59: Unknown result type (might be due to invalid IL or missing references) //IL_0c5b: Unknown result type (might be due to invalid IL or missing references) //IL_0c60: Unknown result type (might be due to invalid IL or missing references) //IL_0c67: Unknown result type (might be due to invalid IL or missing references) //IL_0c6c: Unknown result type (might be due to invalid IL or missing references) //IL_0c73: Unknown result type (might be due to invalid IL or missing references) //IL_0c83: Expected O, but got Unknown //IL_0c84: Unknown result type (might be due to invalid IL or missing references) //IL_0c89: Unknown result type (might be due to invalid IL or missing references) //IL_0c90: Unknown result type (might be due to invalid IL or missing references) //IL_0ca0: Expected O, but got Unknown //IL_0ca5: Unknown result type (might be due to invalid IL or missing references) //IL_0cac: Unknown result type (might be due to invalid IL or missing references) //IL_0cb3: Unknown result type (might be due to invalid IL or missing references) //IL_0cc8: Expected O, but got Unknown //IL_0cc9: Unknown result type (might be due to invalid IL or missing references) //IL_0cce: Unknown result type (might be due to invalid IL or missing references) //IL_0cd5: Unknown result type (might be due to invalid IL or missing references) //IL_0cdc: Unknown result type (might be due to invalid IL or missing references) //IL_0ce7: Unknown result type (might be due to invalid IL or missing references) //IL_0ce9: Unknown result type (might be due to invalid IL or missing references) //IL_0cee: Unknown result type (might be due to invalid IL or missing references) //IL_0cf0: Unknown result type (might be due to invalid IL or missing references) //IL_0cf5: Unknown result type (might be due to invalid IL or missing references) //IL_0cf7: Unknown result type (might be due to invalid IL or missing references) //IL_0cfc: Unknown result type (might be due to invalid IL or missing references) //IL_0d03: Unknown result type (might be due to invalid IL or missing references) //IL_0d05: Unknown result type (might be due to invalid IL or missing references) //IL_0d0a: Unknown result type (might be due to invalid IL or missing references) //IL_0d11: Unknown result type (might be due to invalid IL or missing references) //IL_0d13: Unknown result type (might be due to invalid IL or missing references) //IL_0d18: Unknown result type (might be due to invalid IL or missing references) //IL_0d1f: Unknown result type (might be due to invalid IL or missing references) //IL_0d24: Unknown result type (might be due to invalid IL or missing references) //IL_0d2b: Unknown result type (might be due to invalid IL or missing references) //IL_0d3b: Expected O, but got Unknown //IL_0d3c: Unknown result type (might be due to invalid IL or missing references) //IL_0d41: Unknown result type (might be due to invalid IL or missing references) //IL_0d48: Unknown result type (might be due to invalid IL or missing references) //IL_0d58: Expected O, but got Unknown //IL_0d5d: Unknown result type (might be due to invalid IL or missing references) //IL_0d64: Unknown result type (might be due to invalid IL or missing references) //IL_0d6b: Unknown result type (might be due to invalid IL or missing references) //IL_0d7b: Expected O, but got Unknown //IL_0d7c: Unknown result type (might be due to invalid IL or missing references) //IL_0d81: Unknown result type (might be due to invalid IL or missing references) //IL_0d88: Unknown result type (might be due to invalid IL or missing references) //IL_0d8f: Unknown result type (might be due to invalid IL or missing references) //IL_0d9a: Unknown result type (might be due to invalid IL or missing references) //IL_0d9c: Unknown result type (might be due to invalid IL or missing references) //IL_0da1: Unknown result type (might be due to invalid IL or missing references) //IL_0da3: Unknown result type (might be due to invalid IL or missing references) //IL_0da8: Unknown result type (might be due to invalid IL or missing references) //IL_0daa: Unknown result type (might be due to invalid IL or missing references) //IL_0daf: Unknown result type (might be due to invalid IL or missing references) //IL_0db6: Unknown result type (might be due to invalid IL or missing references) //IL_0db8: Unknown result type (might be due to invalid IL or missing references) //IL_0dbd: Unknown result type (might be due to invalid IL or missing references) //IL_0dc4: Unknown result type (might be due to invalid IL or missing references) //IL_0dc6: Unknown result type (might be due to invalid IL or missing references) //IL_0dcb: Unknown result type (might be due to invalid IL or missing references) //IL_0dd2: Unknown result type (might be due to invalid IL or missing references) //IL_0dd7: Unknown result type (might be due to invalid IL or missing references) //IL_0dde: Unknown result type (might be due to invalid IL or missing references) //IL_0dee: Expected O, but got Unknown //IL_0def: Unknown result type (might be due to invalid IL or missing references) //IL_0df4: Unknown result type (might be due to invalid IL or missing references) //IL_0dfb: Unknown result type (might be due to invalid IL or missing references) //IL_0e0b: Expected O, but got Unknown //IL_0e10: Unknown result type (might be due to invalid IL or missing references) //IL_0e17: Unknown result type (might be due to invalid IL or missing references) //IL_0e1e: Unknown result type (might be due to invalid IL or missing references) //IL_0e2e: Expected O, but got Unknown //IL_0e2f: Unknown result type (might be due to invalid IL or missing references) //IL_0e34: Unknown result type (might be due to invalid IL or missing references) //IL_0e3b: Unknown result type (might be due to invalid IL or missing references) //IL_0e42: Unknown result type (might be due to invalid IL or missing references) //IL_0e4d: Unknown result type (might be due to invalid IL or missing references) //IL_0e4f: Unknown result type (might be due to invalid IL or missing references) //IL_0e54: Unknown result type (might be due to invalid IL or missing references) //IL_0e56: Unknown result type (might be due to invalid IL or missing references) //IL_0e5b: Unknown result type (might be due to invalid IL or missing references) //IL_0e5d: Unknown result type (might be due to invalid IL or missing references) //IL_0e62: Unknown result type (might be due to invalid IL or missing references) //IL_0e69: Unknown result type (might be due to invalid IL or missing references) //IL_0e6b: Unknown result type (might be due to invalid IL or missing references) //IL_0e70: Unknown result type (might be due to invalid IL or missing references) //IL_0e77: Unknown result type (might be due to invalid IL or missing references) //IL_0e79: Unknown result type (might be due to invalid IL or missing references) //IL_0e7e: Unknown result type (might be due to invalid IL or missing references) //IL_0e85: Unknown result type (might be due to invalid IL or missing references) //IL_0e8a: Unknown result type (might be due to invalid IL or missing references) //IL_0e91: Unknown result type (might be due to invalid IL or missing references) //IL_0ea1: Expected O, but got Unknown //IL_0ea2: Unknown result type (might be due to invalid IL or missing references) //IL_0ea7: Unknown result type (might be due to invalid IL or missing references) //IL_0eae: Unknown result type (might be due to invalid IL or missing references) //IL_0ebe: Expected O, but got Unknown //IL_0ec3: Unknown result type (might be due to invalid IL or missing references) //IL_0eca: Unknown result type (might be due to invalid IL or missing references) //IL_0ed1: Unknown result type (might be due to invalid IL or missing references) //IL_0ee1: Expected O, but got Unknown //IL_0ee2: Unknown result type (might be due to invalid IL or missing references) //IL_0ee7: Unknown result type (might be due to invalid IL or missing references) //IL_0eee: Unknown result type (might be due to invalid IL or missing references) //IL_0ef5: Unknown result type (might be due to invalid IL or missing references) //IL_0f00: Unknown result type (might be due to invalid IL or missing references) //IL_0f02: Unknown result type (might be due to invalid IL or missing references) //IL_0f07: Unknown result type (might be due to invalid IL or missing references) //IL_0f09: Unknown result type (might be due to invalid IL or missing references) //IL_0f0e: Unknown result type (might be due to invalid IL or missing references) //IL_0f10: Unknown result type (might be due to invalid IL or missing references) //IL_0f15: Unknown result type (might be due to invalid IL or missing references) //IL_0f1c: Unknown result type (might be due to invalid IL or missing references) //IL_0f1e: Unknown result type (might be due to invalid IL or missing references) //IL_0f23: Unknown result type (might be due to invalid IL or missing references) //IL_0f2a: Unknown result type (might be due to invalid IL or missing references) //IL_0f2c: Unknown result type (might be due to invalid IL or missing references) //IL_0f31: Unknown result type (might be due to invalid IL or missing references) //IL_0f38: Unknown result type (might be due to invalid IL or missing references) //IL_0f3d: Unknown result type (might be due to invalid IL or missing references) //IL_0f44: Unknown result type (might be due to invalid IL or missing references) //IL_0f54: Expected O, but got Unknown //IL_0f55: Unknown result type (might be due to invalid IL or missing references) //IL_0f5a: Unknown result type (might be due to invalid IL or missing references) //IL_0f61: Unknown result type (might be due to invalid IL or missing references) //IL_0f71: Expected O, but got Unknown //IL_0f76: Unknown result type (might be due to invalid IL or missing references) //IL_0f7d: Unknown result type (might be due to invalid IL or missing references) //IL_0f84: Unknown result type (might be due to invalid IL or missing references) //IL_0f94: Expected O, but got Unknown //IL_0f95: Unknown result type (might be due to invalid IL or missing references) //IL_0f9a: Unknown result type (might be due to invalid IL or missing references) //IL_0fa1: Unknown result type (might be due to invalid IL or missing references) //IL_0fa8: Unknown result type (might be due to invalid IL or missing references) //IL_0fb3: Unknown result type (might be due to invalid IL or missing references) //IL_0fb5: Unknown result type (might be due to invalid IL or missing references) //IL_0fba: Unknown result type (might be due to invalid IL or missing references) //IL_0fbc: Unknown result type (might be due to invalid IL or missing references) //IL_0fc1: Unknown result type (might be due to invalid IL or missing references) //IL_0fc3: Unknown result type (might be due to invalid IL or missing references) //IL_0fc8: Unknown result type (might be due to invalid IL or missing references) //IL_0fcf: Unknown result type (might be due to invalid IL or missing references) //IL_0fd1: Unknown result type (might be due to invalid IL or missing references) //IL_0fd6: Unknown result type (might be due to invalid IL or missing references) //IL_0fdd: Unknown result type (might be due to invalid IL or missing references) //IL_0fdf: Unknown result type (might be due to invalid IL or missing references) //IL_0fe4: Unknown result type (might be due to invalid IL or missing references) //IL_0feb: Unknown result type (might be due to invalid IL or missing references) //IL_0ff0: Unknown result type (might be due to invalid IL or missing references) //IL_0ff7: Unknown result type (might be due to invalid IL or missing references) //IL_1007: Expected O, but got Unknown //IL_1008: Unknown result type (might be due to invalid IL or missing references) //IL_100d: Unknown result type (might be due to invalid IL or missing references) //IL_1014: Unknown result type (might be due to invalid IL or missing references) //IL_1024: Expected O, but got Unknown //IL_1029: Unknown result type (might be due to invalid IL or missing references) //IL_1030: Unknown result type (might be due to invalid IL or missing references) //IL_1037: Unknown result type (might be due to invalid IL or missing references) //IL_104c: Expected O, but got Unknown //IL_104d: Unknown result type (might be due to invalid IL or missing references) //IL_1052: Unknown result type (might be due to invalid IL or missing references) //IL_1059: Unknown result type (might be due to invalid IL or missing references) //IL_1060: Unknown result type (might be due to invalid IL or missing references) //IL_106b: Unknown result type (might be due to invalid IL or missing references) //IL_106d: Unknown result type (might be due to invalid IL or missing references) //IL_1072: Unknown result type (might be due to invalid IL or missing references) //IL_1074: Unknown result type (might be due to invalid IL or missing references) //IL_1079: Unknown result type (might be due to invalid IL or missing references) //IL_107b: Unknown result type (might be due to invalid IL or missing references) //IL_1080: Unknown result type (might be due to invalid IL or missing references) //IL_1087: Unknown result type (might be due to invalid IL or missing references) //IL_1089: Unknown result type (might be due to invalid IL or missing references) //IL_108e: Unknown result type (might be due to invalid IL or missing references) //IL_1095: Unknown result type (might be due to invalid IL or missing references) //IL_1097: Unknown result type (might be due to invalid IL or missing references) //IL_109c: Unknown result type (might be due to invalid IL or missing references) //IL_10a3: Unknown result type (might be due to invalid IL or missing references) //IL_10a8: Unknown result type (might be due to invalid IL or missing references) //IL_10af: Unknown result type (might be due to invalid IL or missing references) //IL_10bf: Expected O, but got Unknown //IL_10c0: Unknown result type (might be due to invalid IL or missing references) //IL_10c5: Unknown result type (might be due to invalid IL or missing references) //IL_10cc: Unknown result type (might be due to invalid IL or missing references) //IL_10dc: Expected O, but got Unknown //IL_10e1: Unknown result type (might be due to invalid IL or missing references) //IL_10e8: Unknown result type (might be due to invalid IL or missing references) //IL_10ef: Unknown result type (might be due to invalid IL or missing references) //IL_1104: Expected O, but got Unknown //IL_1105: Unknown result type (might be due to invalid IL or missing references) //IL_110a: Unknown result type (might be due to invalid IL or missing references) //IL_1111: Unknown result type (might be due to invalid IL or missing references) //IL_1118: Unknown result type (might be due to invalid IL or missing references) //IL_1123: Unknown result type (might be due to invalid IL or missing references) //IL_1125: Unknown result type (might be due to invalid IL or missing references) //IL_112a: Unknown result type (might be due to invalid IL or missing references) //IL_112c: Unknown result type (might be due to invalid IL or missing references) //IL_1131: Unknown result type (might be due to invalid IL or missing references) //IL_1133: Unknown result type (might be due to invalid IL or missing references) //IL_1138: Unknown result type (might be due to invalid IL or missing references) //IL_113f: Unknown result type (might be due to invalid IL or missing references) //IL_1141: Unknown result type (might be due to invalid IL or missing references) //IL_1146: Unknown result type (might be due to invalid IL or missing references) //IL_114d: Unknown result type (might be due to invalid IL or missing references) //IL_114f: Unknown result type (might be due to invalid IL or missing references) //IL_1154: Unknown result type (might be due to invalid IL or missing references) //IL_115b: Unknown result type (might be due to invalid IL or missing references) //IL_1160: Unknown result type (might be due to invalid IL or missing references) //IL_1167: Unknown result type (might be due to invalid IL or missing references) //IL_1177: Expected O, but got Unknown //IL_1178: Unknown result type (might be due to invalid IL or missing references) //IL_117d: Unknown result type (might be due to invalid IL or missing references) //IL_1184: Unknown result type (might be due to invalid IL or missing references) //IL_1194: Expected O, but got Unknown //IL_1199: Unknown result type (might be due to invalid IL or missing references) //IL_11a0: Unknown result type (might be due to invalid IL or missing references) //IL_11a7: Unknown result type (might be due to invalid IL or missing references) //IL_11bc: Expected O, but got Unknown //IL_11c4: Unknown result type (might be due to invalid IL or missing references) //IL_11c9: Unknown result type (might be due to invalid IL or missing references) //IL_11d0: Unknown result type (might be due to invalid IL or missing references) //IL_11d7: Unknown result type (might be due to invalid IL or missing references) //IL_11e2: Unknown result type (might be due to invalid IL or missing references) //IL_11e4: Unknown result type (might be due to invalid IL or missing references) //IL_11e9: Unknown result type (might be due to invalid IL or missing references) //IL_11eb: Unknown result type (might be due to invalid IL or missing references) //IL_11f0: Unknown result type (might be due to invalid IL or missing references) //IL_11f2: Unknown result type (might be due to invalid IL or missing references) //IL_11f7: Unknown result type (might be due to invalid IL or missing references) //IL_11fe: Unknown result type (might be due to invalid IL or missing references) //IL_1200: Unknown result type (might be due to invalid IL or missing references) //IL_1205: Unknown result type (might be due to invalid IL or missing references) //IL_120c: Unknown result type (might be due to invalid IL or missing references) //IL_120e: Unknown result type (might be due to invalid IL or missing references) //IL_1213: Unknown result type (might be due to invalid IL or missing references) //IL_121a: Unknown result type (might be due to invalid IL or missing references) //IL_121f: Unknown result type (might be due to invalid IL or missing references) //IL_1226: Unknown result type (might be due to invalid IL or missing references) //IL_1236: Expected O, but got Unknown //IL_1237: Unknown result type (might be due to invalid IL or missing references) //IL_123c: Unknown result type (might be due to invalid IL or missing references) //IL_1243: Unknown result type (might be due to invalid IL or missing references) //IL_1253: Expected O, but got Unknown //IL_1258: Unknown result type (might be due to invalid IL or missing references) //IL_125f: Unknown result type (might be due to invalid IL or missing references) //IL_1266: Unknown result type (might be due to invalid IL or missing references) //IL_1276: Expected O, but got Unknown //IL_1283: Unknown result type (might be due to invalid IL or missing references) //IL_1288: Unknown result type (might be due to invalid IL or missing references) //IL_128f: Unknown result type (might be due to invalid IL or missing references) //IL_1296: Unknown result type (might be due to invalid IL or missing references) //IL_12a1: Unknown result type (might be due to invalid IL or missing references) //IL_12a3: Unknown result type (might be due to invalid IL or missing references) //IL_12a8: Unknown result type (might be due to invalid IL or missing references) //IL_12aa: Unknown result type (might be due to invalid IL or missing references) //IL_12af: Unknown result type (might be due to invalid IL or missing references) //IL_12b1: Unknown result type (might be due to invalid IL or missing references) //IL_12b6: Unknown result type (might be due to invalid IL or missing references) //IL_12bd: Unknown result type (might be due to invalid IL or missing references) //IL_12bf: Unknown result type (might be due to invalid IL or missing references) //IL_12c4: Unknown result type (might be due to invalid IL or missing references) //IL_12cb: Unknown result type (might be due to invalid IL or missing references) //IL_12cd: Unknown result type (might be due to invalid IL or missing references) //IL_12d2: Unknown result type (might be due to invalid IL or missing references) //IL_12d9: Unknown result type (might be due to invalid IL or missing references) //IL_12de: Unknown result type (might be due to invalid IL or missing references) //IL_12e5: Unknown result type (might be due to invalid IL or missing references) //IL_12f5: Expected O, but got Unknown //IL_12f6: Unknown result type (might be due to invalid IL or missing references) //IL_12fb: Unknown result type (might be due to invalid IL or missing references) //IL_1302: Unknown result type (might be due to invalid IL or missing references) //IL_1312: Expected O, but got Unknown //IL_1317: Unknown result type (might be due to invalid IL or missing references) //IL_131e: Unknown result type (might be due to invalid IL or missing references) //IL_1325: Unknown result type (might be due to invalid IL or missing references) //IL_1335: Expected O, but got Unknown //IL_1347: Unknown result type (might be due to invalid IL or missing references) //IL_134d: Expected O, but got Unknown //IL_134e: Unknown result type (might be due to invalid IL or missing references) //IL_1355: Expected O, but got Unknown //IL_1360: Unknown result type (might be due to invalid IL or missing references) //IL_1365: Unknown result type (might be due to invalid IL or missing references) //IL_1370: Unknown result type (might be due to invalid IL or missing references) //IL_1377: Unknown result type (might be due to invalid IL or missing references) //IL_1382: Unknown result type (might be due to invalid IL or missing references) //IL_138f: Expected O, but got Unknown //IL_1391: Unknown result type (might be due to invalid IL or missing references) //IL_1396: Unknown result type (might be due to invalid IL or missing references) //IL_13a1: Unknown result type (might be due to invalid IL or missing references) //IL_13a8: Unknown result type (might be due to invalid IL or missing references) //IL_13b3: Unknown result type (might be due to invalid IL or missing references) //IL_13c0: Expected O, but got Unknown //IL_13c2: Unknown result type (might be due to invalid IL or missing references) //IL_13c7: Unknown result type (might be due to invalid IL or missing references) //IL_13d2: Unknown result type (might be due to invalid IL or missing references) //IL_13d9: Unknown result type (might be due to invalid IL or missing references) //IL_13e4: Unknown result type (might be due to invalid IL or missing references) //IL_13f1: Expected O, but got Unknown //IL_13f3: Unknown result type (might be due to invalid IL or missing references) //IL_13f8: Unknown result type (might be due to invalid IL or missing references) //IL_1403: Unknown result type (might be due to invalid IL or missing references) //IL_140a: Unknown result type (might be due to invalid IL or missing references) //IL_1415: Unknown result type (might be due to invalid IL or missing references) //IL_1422: Expected O, but got Unknown //IL_1424: Unknown result type (might be due to invalid IL or missing references) //IL_1429: Unknown result type (might be due to invalid IL or missing references) //IL_1434: Unknown result type (might be due to invalid IL or missing references) //IL_143b: Unknown result type (might be due to invalid IL or missing references) //IL_1446: Unknown result type (might be due to invalid IL or missing references) //IL_1453: Expected O, but got Unknown //IL_1455: Unknown result type (might be due to invalid IL or missing references) //IL_145a: Unknown result type (might be due to invalid IL or missing references) //IL_1465: Unknown result type (might be due to invalid IL or missing references) //IL_146c: Unknown result type (might be due to invalid IL or missing references) //IL_1477: Unknown result type (might be due to invalid IL or missing references) //IL_1484: Expected O, but got Unknown //IL_1486: Unknown result type (might be due to invalid IL or missing references) //IL_148b: Unknown result type (might be due to invalid IL or missing references) //IL_1496: Unknown result type (might be due to invalid IL or missing references) //IL_149d: Unknown result type (might be due to invalid IL or missing references) //IL_14a8: Unknown result type (might be due to invalid IL or missing references) //IL_14b5: Expected O, but got Unknown //IL_14b7: Unknown result type (might be due to invalid IL or missing references) //IL_14bc: Unknown result type (might be due to invalid IL or missing references) //IL_14c7: Unknown result type (might be due to invalid IL or missing references) //IL_14ce: Unknown result type (might be due to invalid IL or missing references) //IL_14d9: Unknown result type (might be due to invalid IL or missing references) //IL_14e6: Expected O, but got Unknown //IL_14e8: Unknown result type (might be due to invalid IL or missing references) //IL_14ed: Unknown result type (might be due to invalid IL or missing references) //IL_14f8: Unknown result type (might be due to invalid IL or missing references) //IL_14ff: Unknown result type (might be due to invalid IL or missing references) //IL_150a: Unknown result type (might be due to invalid IL or missing references) //IL_1517: Expected O, but got Unknown //IL_1526: Unknown result type (might be due to invalid IL or missing references) //IL_1543: Unknown result type (might be due to invalid IL or missing references) //IL_156f: Unknown result type (might be due to invalid IL or missing references) //IL_1574: Unknown result type (might be due to invalid IL or missing references) //IL_1580: Unknown result type (might be due to invalid IL or missing references) //IL_1585: Unknown result type (might be due to invalid IL or missing references) //IL_1591: Unknown result type (might be due to invalid IL or missing references) //IL_1596: Unknown result type (might be due to invalid IL or missing references) //IL_15a2: Unknown result type (might be due to invalid IL or missing references) //IL_15a7: Unknown result type (might be due to invalid IL or missing references) //IL_15b3: Unknown result type (might be due to invalid IL or missing references) //IL_15b8: Unknown result type (might be due to invalid IL or missing references) //IL_15cb: Unknown result type (might be due to invalid IL or missing references) //IL_15d0: Unknown result type (might be due to invalid IL or missing references) //IL_162a: Unknown result type (might be due to invalid IL or missing references) //IL_162f: Unknown result type (might be due to invalid IL or missing references) //IL_1635: Unknown result type (might be due to invalid IL or missing references) //IL_163a: Unknown result type (might be due to invalid IL or missing references) //IL_164b: Unknown result type (might be due to invalid IL or missing references) //IL_1652: Unknown result type (might be due to invalid IL or missing references) //IL_1653: Unknown result type (might be due to invalid IL or missing references) //IL_1658: Unknown result type (might be due to invalid IL or missing references) //IL_165f: Unknown result type (might be due to invalid IL or missing references) //IL_1666: Unknown result type (might be due to invalid IL or missing references) //IL_166d: Unknown result type (might be due to invalid IL or missing references) //IL_1674: Unknown result type (might be due to invalid IL or missing references) //IL_167b: Unknown result type (might be due to invalid IL or missing references) //IL_1682: Unknown result type (might be due to invalid IL or missing references) //IL_1689: Unknown result type (might be due to invalid IL or missing references) //IL_1690: Unknown result type (might be due to invalid IL or missing references) //IL_1697: Unknown result type (might be due to invalid IL or missing references) //IL_169e: Unknown result type (might be due to invalid IL or missing references) //IL_16a5: Unknown result type (might be due to invalid IL or missing references) //IL_16ac: Unknown result type (might be due to invalid IL or missing references) //IL_16b4: Unknown result type (might be due to invalid IL or missing references) //IL_16bc: Unknown result type (might be due to invalid IL or missing references) //IL_16c4: Unknown result type (might be due to invalid IL or missing references) //IL_16cc: Unknown result type (might be due to invalid IL or missing references) //IL_16d4: Unknown result type (might be due to invalid IL or missing references) //IL_16dc: Unknown result type (might be due to invalid IL or missing references) //IL_16e4: Unknown result type (might be due to invalid IL or missing references) //IL_16eb: Unknown result type (might be due to invalid IL or missing references) //IL_16f2: Unknown result type (might be due to invalid IL or missing references) //IL_16f9: Unknown result type (might be due to invalid IL or missing references) //IL_1700: Unknown result type (might be due to invalid IL or missing references) //IL_1707: Unknown result type (might be due to invalid IL or missing references) //IL_170e: Unknown result type (might be due to invalid IL or missing references) //IL_1715: Unknown result type (might be due to invalid IL or missing references) //IL_1721: Expected O, but got Unknown //IL_1721: Unknown result type (might be due to invalid IL or missing references) //IL_1728: Unknown result type (might be due to invalid IL or missing references) //IL_172f: Unknown result type (might be due to invalid IL or missing references) //IL_1736: Unknown result type (might be due to invalid IL or missing references) //IL_173b: Unknown result type (might be due to invalid IL or missing references) //IL_1743: Unknown result type (might be due to invalid IL or missing references) //IL_174e: Unknown result type (might be due to invalid IL or missing references) //IL_1755: Unknown result type (might be due to invalid IL or missing references) //IL_1761: Expected O, but got Unknown //IL_1766: Unknown result type (might be due to invalid IL or missing references) //IL_176d: Unknown result type (might be due to invalid IL or missing references) //IL_1774: Unknown result type (might be due to invalid IL or missing references) //IL_1780: Unknown result type (might be due to invalid IL or missing references) //IL_178c: Expected O, but got Unknown //IL_17c2: Unknown result type (might be due to invalid IL or missing references) Dungeon val = targetObject.AddComponent(); ExpandUtility.DuplicateComponent(val, dungeonTemplate); ExpandUtility.DuplicateComponent(targetObject.AddComponent(), ((Component)dungeonTemplate).gameObject.GetComponent()); val.PatternSettings.flows = new List { FlowDatabase.GetOrLoadByName("F1b_Future_Flow_01"), FlowDatabase.GetOrLoadByName("F1b_Future_Flow_02") }; val.roomMaterialDefinitions = (DungeonMaterial[])(object)new DungeonMaterial[9] { dungeonTemplate.roomMaterialDefinitions[7], dungeonTemplate.roomMaterialDefinitions[8], dungeonTemplate.roomMaterialDefinitions[7], dungeonTemplate.roomMaterialDefinitions[8], dungeonTemplate.roomMaterialDefinitions[7], sharedAssets2.LoadAsset("Boss_Cathedral_StainedGlass_Lights"), dungeonTemplate.roomMaterialDefinitions[8], dungeonTemplate.roomMaterialDefinitions[7], dungeonTemplate.roomMaterialDefinitions[8] }; val.stampData = ScriptableObject.CreateInstance(); ((Object)val.stampData).name = "ENV_FUTURE_STAMP_DATA"; val.stampData.tileStampWeight = 0.33f; val.stampData.spriteStampWeight = 0f; val.stampData.objectStampWeight = 1f; val.stampData.SymmetricFrameChance = 0.1f; val.stampData.SymmetricCompleteChance = 0.1f; val.stampData.spriteStamps = (SpriteStampData[])(object)new SpriteStampData[0]; val.stampData.stamps = (TileStampData[])(object)new TileStampData[3] { new TileStampData { width = ((StampDataBase)dungeonTemplate.stampData.stamps[8]).width, height = ((StampDataBase)dungeonTemplate.stampData.stamps[8]).height, relativeWeight = ((StampDataBase)dungeonTemplate.stampData.stamps[8]).relativeWeight, placementRule = ((StampDataBase)dungeonTemplate.stampData.stamps[8]).placementRule, occupySpace = ((StampDataBase)dungeonTemplate.stampData.stamps[8]).occupySpace, stampCategory = ((StampDataBase)dungeonTemplate.stampData.stamps[8]).stampCategory, preferredIntermediaryStamps = ((StampDataBase)dungeonTemplate.stampData.stamps[8]).preferredIntermediaryStamps, intermediaryMatchingStyle = ((StampDataBase)dungeonTemplate.stampData.stamps[8]).intermediaryMatchingStyle, requiresForcedMatchingStyle = ((StampDataBase)dungeonTemplate.stampData.stamps[8]).requiresForcedMatchingStyle, opulence = ((StampDataBase)dungeonTemplate.stampData.stamps[8]).opulence, indexOfSymmetricPartner = ((StampDataBase)dungeonTemplate.stampData.stamps[8]).indexOfSymmetricPartner, preventRoomRepeats = ((StampDataBase)dungeonTemplate.stampData.stamps[8]).preventRoomRepeats, stampTileIndices = dungeonTemplate.stampData.stamps[8].stampTileIndices, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = ((StampDataBase)dungeonTemplate.stampData.stamps[8]).roomTypeData[0].roomSubType, roomRelativeWeight = ((StampDataBase)dungeonTemplate.stampData.stamps[8]).roomTypeData[0].roomRelativeWeight } } }, new TileStampData { width = ((StampDataBase)dungeonTemplate.stampData.stamps[9]).width, height = ((StampDataBase)dungeonTemplate.stampData.stamps[9]).height, relativeWeight = ((StampDataBase)dungeonTemplate.stampData.stamps[9]).relativeWeight, placementRule = ((StampDataBase)dungeonTemplate.stampData.stamps[9]).placementRule, occupySpace = ((StampDataBase)dungeonTemplate.stampData.stamps[9]).occupySpace, stampCategory = ((StampDataBase)dungeonTemplate.stampData.stamps[9]).stampCategory, preferredIntermediaryStamps = ((StampDataBase)dungeonTemplate.stampData.stamps[9]).preferredIntermediaryStamps, intermediaryMatchingStyle = ((StampDataBase)dungeonTemplate.stampData.stamps[9]).intermediaryMatchingStyle, requiresForcedMatchingStyle = ((StampDataBase)dungeonTemplate.stampData.stamps[9]).requiresForcedMatchingStyle, opulence = ((StampDataBase)dungeonTemplate.stampData.stamps[9]).opulence, indexOfSymmetricPartner = ((StampDataBase)dungeonTemplate.stampData.stamps[9]).indexOfSymmetricPartner, preventRoomRepeats = ((StampDataBase)dungeonTemplate.stampData.stamps[9]).preventRoomRepeats, stampTileIndices = dungeonTemplate.stampData.stamps[9].stampTileIndices, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = ((StampDataBase)dungeonTemplate.stampData.stamps[9]).roomTypeData[0].roomSubType, roomRelativeWeight = ((StampDataBase)dungeonTemplate.stampData.stamps[9]).roomTypeData[0].roomRelativeWeight } } }, new TileStampData { width = ((StampDataBase)dungeonTemplate.stampData.stamps[10]).width, height = ((StampDataBase)dungeonTemplate.stampData.stamps[10]).height, relativeWeight = ((StampDataBase)dungeonTemplate.stampData.stamps[10]).relativeWeight, placementRule = ((StampDataBase)dungeonTemplate.stampData.stamps[10]).placementRule, occupySpace = ((StampDataBase)dungeonTemplate.stampData.stamps[10]).occupySpace, stampCategory = ((StampDataBase)dungeonTemplate.stampData.stamps[10]).stampCategory, preferredIntermediaryStamps = ((StampDataBase)dungeonTemplate.stampData.stamps[10]).preferredIntermediaryStamps, intermediaryMatchingStyle = ((StampDataBase)dungeonTemplate.stampData.stamps[10]).intermediaryMatchingStyle, requiresForcedMatchingStyle = ((StampDataBase)dungeonTemplate.stampData.stamps[10]).requiresForcedMatchingStyle, opulence = ((StampDataBase)dungeonTemplate.stampData.stamps[10]).opulence, indexOfSymmetricPartner = ((StampDataBase)dungeonTemplate.stampData.stamps[10]).indexOfSymmetricPartner, preventRoomRepeats = ((StampDataBase)dungeonTemplate.stampData.stamps[10]).preventRoomRepeats, stampTileIndices = dungeonTemplate.stampData.stamps[10].stampTileIndices, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = ((StampDataBase)dungeonTemplate.stampData.stamps[10]).roomTypeData[0].roomSubType, roomRelativeWeight = ((StampDataBase)dungeonTemplate.stampData.stamps[10]).roomTypeData[0].roomRelativeWeight } } } }; List list = new List(); list.Add(new ObjectStampData { width = 1, height = 2, relativeWeight = 0.5f, placementRule = (StampPlacementRule)2, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 7, roomRelativeWeight = 0.5f }, new StampPerRoomPlacementSettings { roomSubType = 8, roomRelativeWeight = 0.5f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)ExpandObjectDatabase.Metal_Crate).gameObject }); list.Add(new ObjectStampData { width = 2, height = 2, relativeWeight = 0.5f, placementRule = (StampPlacementRule)2, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 7, roomRelativeWeight = 0.5f }, new StampPerRoomPlacementSettings { roomSubType = 8, roomRelativeWeight = 0.5f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)ExpandObjectDatabase.MarineMachine).gameObject }); list.Add(new ObjectStampData { width = 1, height = 2, relativeWeight = 0.5f, placementRule = (StampPlacementRule)8, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 7, roomRelativeWeight = 0.5f }, new StampPerRoomPlacementSettings { roomSubType = 8, roomRelativeWeight = 0.5f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)ExpandObjectDatabase.Metal_Crate).gameObject }); list.Add(new ObjectStampData { width = 1, height = 2, relativeWeight = 0.5f, placementRule = (StampPlacementRule)3, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 7, roomRelativeWeight = 0.5f }, new StampPerRoomPlacementSettings { roomSubType = 8, roomRelativeWeight = 0.5f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)ExpandObjectDatabase.Metal_Crate).gameObject }); list.Add(new ObjectStampData { width = 1, height = 2, relativeWeight = 0.5f, placementRule = (StampPlacementRule)2, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 7, roomRelativeWeight = 0.5f }, new StampPerRoomPlacementSettings { roomSubType = 8, roomRelativeWeight = 0.5f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)ExpandObjectDatabase.Alien_Tank).gameObject }); list.Add(new ObjectStampData { width = 1, height = 2, relativeWeight = 0.5f, placementRule = (StampPlacementRule)8, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 7, roomRelativeWeight = 0.5f }, new StampPerRoomPlacementSettings { roomSubType = 8, roomRelativeWeight = 0.5f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)ExpandObjectDatabase.Alien_Tank).gameObject }); list.Add(new ObjectStampData { width = 1, height = 2, relativeWeight = 0.5f, placementRule = (StampPlacementRule)3, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 7, roomRelativeWeight = 0.5f }, new StampPerRoomPlacementSettings { roomSubType = 8, roomRelativeWeight = 0.5f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)ExpandObjectDatabase.Alien_Tank).gameObject }); list.Add(new ObjectStampData { width = 2, height = 2, relativeWeight = 0.5f, placementRule = (StampPlacementRule)2, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 7, roomRelativeWeight = 0.5f }, new StampPerRoomPlacementSettings { roomSubType = 8, roomRelativeWeight = 0.5f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)ExpandObjectDatabase.Tech_Machine_Wall).gameObject }); list.Add(new ObjectStampData { width = 3, height = 1, relativeWeight = 0.5f, placementRule = (StampPlacementRule)2, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 7, roomRelativeWeight = 0.5f }, new StampPerRoomPlacementSettings { roomSubType = 8, roomRelativeWeight = 0.5f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)ExpandObjectDatabase.MetalPipe).gameObject }); list.Add(new ObjectStampData { width = 2, height = 2, relativeWeight = 0.5f, placementRule = (StampPlacementRule)2, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 7, roomRelativeWeight = 0.5f }, new StampPerRoomPlacementSettings { roomSubType = 8, roomRelativeWeight = 0.5f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ExpandPrefabs.Ooze_Tank }); list.Add(new ObjectStampData { width = 1, height = 2, relativeWeight = 0.5f, placementRule = (StampPlacementRule)3, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 7, roomRelativeWeight = 0.5f }, new StampPerRoomPlacementSettings { roomSubType = 8, roomRelativeWeight = 0.5f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ExpandPrefabs.Ooze_Tank }); list.Add(new ObjectStampData { width = 1, height = 2, relativeWeight = 0.5f, placementRule = (StampPlacementRule)8, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 7, roomRelativeWeight = 0.5f }, new StampPerRoomPlacementSettings { roomSubType = 8, roomRelativeWeight = 0.5f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ExpandPrefabs.Ooze_Tank }); list.Add(new ObjectStampData { width = 1, height = 2, relativeWeight = 0.5f, placementRule = (StampPlacementRule)5, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 7, roomRelativeWeight = 0.5f }, new StampPerRoomPlacementSettings { roomSubType = 8, roomRelativeWeight = 0.5f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ExpandPrefabs.Ooze_Tank }); list.Add(new ObjectStampData { width = 1, height = 2, relativeWeight = 0.5f, placementRule = (StampPlacementRule)5, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 7, roomRelativeWeight = 0.5f }, new StampPerRoomPlacementSettings { roomSubType = 8, roomRelativeWeight = 0.5f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)ExpandObjectDatabase.Alien_Tank).gameObject }); list.Add(new ObjectStampData { width = 1, height = 1, relativeWeight = 0.5f, placementRule = (StampPlacementRule)5, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 7, roomRelativeWeight = 0.5f }, new StampPerRoomPlacementSettings { roomSubType = 8, roomRelativeWeight = 0.5f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)ExpandObjectDatabase.Metal_Crate).gameObject }); list.Add(new ObjectStampData { width = 3, height = 1, relativeWeight = 0.5f, placementRule = (StampPlacementRule)5, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 7, roomRelativeWeight = 0.5f }, new StampPerRoomPlacementSettings { roomSubType = 8, roomRelativeWeight = 0.5f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)ExpandObjectDatabase.MetalPipe).gameObject }); for (int i = 0; i < 10; i++) { list.Add(new ObjectStampData { width = 1, height = 1, relativeWeight = 1f, placementRule = (StampPlacementRule)5, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 7, roomRelativeWeight = 1f }, new StampPerRoomPlacementSettings { roomSubType = 8, roomRelativeWeight = 1f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ExpandPrefabs.EXDummyObject }); } list.Add(new ObjectStampData { width = 1, height = 1, relativeWeight = 0.6f, placementRule = (StampPlacementRule)2, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 7, roomRelativeWeight = 1f }, new StampPerRoomPlacementSettings { roomSubType = 8, roomRelativeWeight = 1f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ExpandPrefabs.EXDummyObject }); val.stampData.objectStamps = list.ToArray(); TilemapDecoSettings val2 = new TilemapDecoSettings(); WeightedIntCollection val3 = new WeightedIntCollection(); val3.elements = (WeightedInt[])(object)new WeightedInt[9] { new WeightedInt { annotation = "purple", value = 0, weight = 0f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "blue", value = 1, weight = 0f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "bathroom", value = 2, weight = 0f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "duct", value = 3, weight = 0f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "unused", value = 4, weight = 0f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "unused", value = 5, weight = 0f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "unused", value = 6, weight = 0f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "dark polymer", value = 7, weight = 0.5f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "metal plate", value = 8, weight = 0.5f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] } }; val2.standardRoomVisualSubtypes = val3; val2.decalLayerStyle = (DecoStyle)99; val2.decalSize = 3; val2.decalSpacing = 1; val2.decalExpansion = 0; val2.patternLayerStyle = (DecoStyle)99; val2.patternSize = 3; val2.patternSpacing = 3; val2.patternExpansion = 0; val2.decoPatchFrequency = 0.01f; val2.ambientLightColor = dungeonTemplate.decoSettings.ambientLightColor; val2.ambientLightColorTwo = dungeonTemplate.decoSettings.ambientLightColorTwo; val2.lowQualityAmbientLightColor = dungeonTemplate.decoSettings.lowQualityAmbientLightColor; val2.lowQualityAmbientLightColorTwo = dungeonTemplate.decoSettings.lowQualityAmbientLightColorTwo; val2.lowQualityCheapLightVector = dungeonTemplate.decoSettings.lowQualityCheapLightVector; val2.UsesAlienFXFloorColor = false; val2.AlienFXFloorColor = dungeonTemplate.decoSettings.AlienFXFloorColor; val2.generateLights = true; val2.lightCullingPercentage = 0.2f; val2.lightOverlapRadius = 8; val2.nearestAllowedLight = 12f; val2.minLightExpanseWidth = 2; val2.lightHeight = -2f; val2.lightCookies = dungeonTemplate.decoSettings.lightCookies; val2.debug_view = false; val.decoSettings = val2; val.tileIndices = new TileIndices { tilesetId = (ValidTilesets)256, dungeonCollection = dungeonTemplate.tileIndices.dungeonCollection, dungeonCollectionSupportsDiagonalWalls = false, aoTileIndices = new AOTileIndices { AOFloorTileIndex = 0, AOBottomWallBaseTileIndex = 1, AOBottomWallTileRightIndex = 2, AOBottomWallTileLeftIndex = 3, AOBottomWallTileBothIndex = 4, AOTopFacewallRightIndex = 6, AOTopFacewallLeftIndex = 5, AOTopFacewallBothIndex = 7, AOFloorWallLeft = 5, AOFloorWallRight = 6, AOFloorWallBoth = 7, AOFloorPizzaSliceLeft = 8, AOFloorPizzaSliceRight = 9, AOFloorPizzaSliceBoth = 10, AOFloorPizzaSliceLeftWallRight = 11, AOFloorPizzaSliceRightWallLeft = 12, AOFloorWallUpAndLeft = 13, AOFloorWallUpAndRight = 14, AOFloorWallUpAndBoth = 15, AOFloorDiagonalWallNortheast = -1, AOFloorDiagonalWallNortheastLower = -1, AOFloorDiagonalWallNortheastLowerJoint = -1, AOFloorDiagonalWallNorthwest = -1, AOFloorDiagonalWallNorthwestLower = -1, AOFloorDiagonalWallNorthwestLowerJoint = -1, AOBottomWallDiagonalNortheast = -1, AOBottomWallDiagonalNorthwest = -1 }, placeBorders = true, placePits = false, chestHighWallIndices = new List { new TileIndexVariant { index = 41, likelihood = 0.5f, overrideIndex = 0, overrideLayerIndex = 0 } }, decalIndexGrid = null, patternIndexGrid = null, globalSecondBorderTiles = new List(0), edgeDecorationTiles = null }; val.alternateDoorObjectsNakatomi = null; val.PlayerLightIntensity = 3f; val.PlayerLightRadius = 5f; val.doorObjects = dungeonTemplate.alternateDoorObjectsNakatomi; val.oneWayDoorPressurePlate = ExpandPrefabs.SpaceShip_PressurePlate; val.LevelOverrideType = (LevelOverrideState)0; val.DungeonFloorName = "Far into the Future"; val.DungeonShortName = "Into the Future"; val.DungeonFloorLevelTextOverride = "An Advanced Place..."; val.musicEventName = "Play_MUS_Space_Theme_01"; } public static void InitBackRoomsDungeon(AssetBundle expandSharedAuto1, AssetBundle sharedAssets2, GameObject targetObject, Dungeon dungeonTemplate) { //IL_004b: 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_0061: Expected O, but got Unknown //IL_02b9: 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_02cb: Unknown result type (might be due to invalid IL or missing references) //IL_02d2: Unknown result type (might be due to invalid IL or missing references) //IL_02d7: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: Unknown result type (might be due to invalid IL or missing references) //IL_0305: Unknown result type (might be due to invalid IL or missing references) //IL_030c: Unknown result type (might be due to invalid IL or missing references) //IL_0313: Unknown result type (might be due to invalid IL or missing references) //IL_0324: Expected O, but got Unknown //IL_032e: Expected O, but got Unknown //IL_0364: Unknown result type (might be due to invalid IL or missing references) //IL_0381: Unknown result type (might be due to invalid IL or missing references) //IL_03dc: Unknown result type (might be due to invalid IL or missing references) //IL_03e1: Unknown result type (might be due to invalid IL or missing references) //IL_03f2: Expected O, but got Unknown //IL_064a: Unknown result type (might be due to invalid IL or missing references) //IL_0657: Unknown result type (might be due to invalid IL or missing references) //IL_065c: Unknown result type (might be due to invalid IL or missing references) //IL_0663: Unknown result type (might be due to invalid IL or missing references) //IL_0668: Unknown result type (might be due to invalid IL or missing references) //IL_068b: Unknown result type (might be due to invalid IL or missing references) //IL_0696: Unknown result type (might be due to invalid IL or missing references) //IL_069d: Unknown result type (might be due to invalid IL or missing references) //IL_06a4: Unknown result type (might be due to invalid IL or missing references) //IL_06b5: Expected O, but got Unknown //IL_06bf: Expected O, but got Unknown //IL_06f5: Unknown result type (might be due to invalid IL or missing references) //IL_0712: Unknown result type (might be due to invalid IL or missing references) //IL_0781: Unknown result type (might be due to invalid IL or missing references) //IL_0786: Unknown result type (might be due to invalid IL or missing references) //IL_078d: Unknown result type (might be due to invalid IL or missing references) //IL_0794: Unknown result type (might be due to invalid IL or missing references) //IL_079c: Unknown result type (might be due to invalid IL or missing references) //IL_07a3: Unknown result type (might be due to invalid IL or missing references) //IL_07aa: Unknown result type (might be due to invalid IL or missing references) //IL_07b1: Unknown result type (might be due to invalid IL or missing references) //IL_07b8: Unknown result type (might be due to invalid IL or missing references) //IL_07bf: Unknown result type (might be due to invalid IL or missing references) //IL_07c6: Unknown result type (might be due to invalid IL or missing references) //IL_07cd: Unknown result type (might be due to invalid IL or missing references) //IL_07d9: Expected O, but got Unknown //IL_07da: Unknown result type (might be due to invalid IL or missing references) //IL_07df: Unknown result type (might be due to invalid IL or missing references) //IL_081a: Unknown result type (might be due to invalid IL or missing references) //IL_0826: Unknown result type (might be due to invalid IL or missing references) //IL_0832: Unknown result type (might be due to invalid IL or missing references) //IL_083d: Unknown result type (might be due to invalid IL or missing references) //IL_0849: Expected O, but got Unknown //IL_0858: Unknown result type (might be due to invalid IL or missing references) //IL_085f: Expected O, but got Unknown //IL_0861: Unknown result type (might be due to invalid IL or missing references) //IL_0868: Expected O, but got Unknown //IL_0872: Unknown result type (might be due to invalid IL or missing references) //IL_0877: Unknown result type (might be due to invalid IL or missing references) //IL_0882: Unknown result type (might be due to invalid IL or missing references) //IL_0889: Unknown result type (might be due to invalid IL or missing references) //IL_0894: Unknown result type (might be due to invalid IL or missing references) //IL_08a1: Expected O, but got Unknown //IL_08a3: Unknown result type (might be due to invalid IL or missing references) //IL_08a8: Unknown result type (might be due to invalid IL or missing references) //IL_08b3: Unknown result type (might be due to invalid IL or missing references) //IL_08ba: Unknown result type (might be due to invalid IL or missing references) //IL_08c5: Unknown result type (might be due to invalid IL or missing references) //IL_08d2: Expected O, but got Unknown //IL_08d4: Unknown result type (might be due to invalid IL or missing references) //IL_08d9: Unknown result type (might be due to invalid IL or missing references) //IL_08e4: Unknown result type (might be due to invalid IL or missing references) //IL_08eb: Unknown result type (might be due to invalid IL or missing references) //IL_08f6: Unknown result type (might be due to invalid IL or missing references) //IL_0903: Expected O, but got Unknown //IL_0905: Unknown result type (might be due to invalid IL or missing references) //IL_090a: Unknown result type (might be due to invalid IL or missing references) //IL_0915: Unknown result type (might be due to invalid IL or missing references) //IL_091c: Unknown result type (might be due to invalid IL or missing references) //IL_0927: Unknown result type (might be due to invalid IL or missing references) //IL_0934: Expected O, but got Unknown //IL_0936: Unknown result type (might be due to invalid IL or missing references) //IL_093b: Unknown result type (might be due to invalid IL or missing references) //IL_0946: Unknown result type (might be due to invalid IL or missing references) //IL_094d: Unknown result type (might be due to invalid IL or missing references) //IL_0958: Unknown result type (might be due to invalid IL or missing references) //IL_0965: Expected O, but got Unknown //IL_0975: Unknown result type (might be due to invalid IL or missing references) //IL_0996: Unknown result type (might be due to invalid IL or missing references) //IL_09d5: Unknown result type (might be due to invalid IL or missing references) //IL_09da: Unknown result type (might be due to invalid IL or missing references) //IL_09f5: Unknown result type (might be due to invalid IL or missing references) //IL_09fa: Unknown result type (might be due to invalid IL or missing references) //IL_0a01: Unknown result type (might be due to invalid IL or missing references) //IL_0a06: Unknown result type (might be due to invalid IL or missing references) //IL_0a0d: Unknown result type (might be due to invalid IL or missing references) //IL_0a12: Unknown result type (might be due to invalid IL or missing references) //IL_0a2d: Unknown result type (might be due to invalid IL or missing references) //IL_0a32: Unknown result type (might be due to invalid IL or missing references) //IL_0a41: Unknown result type (might be due to invalid IL or missing references) //IL_0a46: Unknown result type (might be due to invalid IL or missing references) //IL_0aa4: Unknown result type (might be due to invalid IL or missing references) //IL_0aa9: Unknown result type (might be due to invalid IL or missing references) //IL_0aaf: Unknown result type (might be due to invalid IL or missing references) //IL_0ab4: Unknown result type (might be due to invalid IL or missing references) //IL_0ac4: Unknown result type (might be due to invalid IL or missing references) //IL_0acb: Unknown result type (might be due to invalid IL or missing references) //IL_0acc: Unknown result type (might be due to invalid IL or missing references) //IL_0ad1: Unknown result type (might be due to invalid IL or missing references) //IL_0ad8: Unknown result type (might be due to invalid IL or missing references) //IL_0adf: Unknown result type (might be due to invalid IL or missing references) //IL_0ae6: Unknown result type (might be due to invalid IL or missing references) //IL_0aed: Unknown result type (might be due to invalid IL or missing references) //IL_0af4: Unknown result type (might be due to invalid IL or missing references) //IL_0afb: Unknown result type (might be due to invalid IL or missing references) //IL_0b02: Unknown result type (might be due to invalid IL or missing references) //IL_0b09: Unknown result type (might be due to invalid IL or missing references) //IL_0b10: Unknown result type (might be due to invalid IL or missing references) //IL_0b17: Unknown result type (might be due to invalid IL or missing references) //IL_0b1e: Unknown result type (might be due to invalid IL or missing references) //IL_0b25: Unknown result type (might be due to invalid IL or missing references) //IL_0b2d: Unknown result type (might be due to invalid IL or missing references) //IL_0b35: Unknown result type (might be due to invalid IL or missing references) //IL_0b3d: Unknown result type (might be due to invalid IL or missing references) //IL_0b45: Unknown result type (might be due to invalid IL or missing references) //IL_0b4d: Unknown result type (might be due to invalid IL or missing references) //IL_0b55: Unknown result type (might be due to invalid IL or missing references) //IL_0b5d: Unknown result type (might be due to invalid IL or missing references) //IL_0b64: Unknown result type (might be due to invalid IL or missing references) //IL_0b6b: Unknown result type (might be due to invalid IL or missing references) //IL_0b72: Unknown result type (might be due to invalid IL or missing references) //IL_0b79: Unknown result type (might be due to invalid IL or missing references) //IL_0b80: Unknown result type (might be due to invalid IL or missing references) //IL_0b87: Unknown result type (might be due to invalid IL or missing references) //IL_0b8e: Unknown result type (might be due to invalid IL or missing references) //IL_0b9a: Expected O, but got Unknown //IL_0b9a: Unknown result type (might be due to invalid IL or missing references) //IL_0ba1: Unknown result type (might be due to invalid IL or missing references) //IL_0ba8: Unknown result type (might be due to invalid IL or missing references) //IL_0baf: Unknown result type (might be due to invalid IL or missing references) //IL_0bb4: Unknown result type (might be due to invalid IL or missing references) //IL_0bbc: Unknown result type (might be due to invalid IL or missing references) //IL_0bc7: Unknown result type (might be due to invalid IL or missing references) //IL_0bce: Unknown result type (might be due to invalid IL or missing references) //IL_0bda: Expected O, but got Unknown //IL_0bdf: Unknown result type (might be due to invalid IL or missing references) //IL_0be6: Unknown result type (might be due to invalid IL or missing references) //IL_0bed: Unknown result type (might be due to invalid IL or missing references) //IL_0bf9: Unknown result type (might be due to invalid IL or missing references) //IL_0c05: Expected O, but got Unknown //IL_0cd1: Unknown result type (might be due to invalid IL or missing references) //IL_0cd6: Unknown result type (might be due to invalid IL or missing references) //IL_0cdd: Unknown result type (might be due to invalid IL or missing references) //IL_0ce4: Unknown result type (might be due to invalid IL or missing references) //IL_0cef: Unknown result type (might be due to invalid IL or missing references) //IL_0cf1: Unknown result type (might be due to invalid IL or missing references) //IL_0cf6: Unknown result type (might be due to invalid IL or missing references) //IL_0cf8: Unknown result type (might be due to invalid IL or missing references) //IL_0cfd: Unknown result type (might be due to invalid IL or missing references) //IL_0cff: Unknown result type (might be due to invalid IL or missing references) //IL_0d04: Unknown result type (might be due to invalid IL or missing references) //IL_0d0b: Unknown result type (might be due to invalid IL or missing references) //IL_0d0d: Unknown result type (might be due to invalid IL or missing references) //IL_0d12: Unknown result type (might be due to invalid IL or missing references) //IL_0d19: Unknown result type (might be due to invalid IL or missing references) //IL_0d1b: Unknown result type (might be due to invalid IL or missing references) //IL_0d20: Unknown result type (might be due to invalid IL or missing references) //IL_0d27: Unknown result type (might be due to invalid IL or missing references) //IL_0d2c: Unknown result type (might be due to invalid IL or missing references) //IL_0d33: Unknown result type (might be due to invalid IL or missing references) //IL_0d43: Expected O, but got Unknown //IL_0d48: Unknown result type (might be due to invalid IL or missing references) //IL_0d4f: Unknown result type (might be due to invalid IL or missing references) //IL_0d56: Unknown result type (might be due to invalid IL or missing references) //IL_0d6a: Expected O, but got Unknown //IL_0da5: Unknown result type (might be due to invalid IL or missing references) //IL_0daa: Unknown result type (might be due to invalid IL or missing references) //IL_0db7: Unknown result type (might be due to invalid IL or missing references) //IL_0dc4: Unknown result type (might be due to invalid IL or missing references) //IL_0dd1: Unknown result type (might be due to invalid IL or missing references) //IL_0dd4: Unknown result type (might be due to invalid IL or missing references) //IL_0dd9: Unknown result type (might be due to invalid IL or missing references) //IL_0dde: Unknown result type (might be due to invalid IL or missing references) //IL_0de1: Unknown result type (might be due to invalid IL or missing references) //IL_0de6: Unknown result type (might be due to invalid IL or missing references) //IL_0deb: Unknown result type (might be due to invalid IL or missing references) //IL_0dee: Unknown result type (might be due to invalid IL or missing references) //IL_0df3: Unknown result type (might be due to invalid IL or missing references) //IL_0df8: Unknown result type (might be due to invalid IL or missing references) //IL_0e05: Unknown result type (might be due to invalid IL or missing references) //IL_0e08: Unknown result type (might be due to invalid IL or missing references) //IL_0e0d: Unknown result type (might be due to invalid IL or missing references) //IL_0e12: Unknown result type (might be due to invalid IL or missing references) //IL_0e1f: Unknown result type (might be due to invalid IL or missing references) //IL_0e22: Unknown result type (might be due to invalid IL or missing references) //IL_0e27: Unknown result type (might be due to invalid IL or missing references) //IL_0e2c: Unknown result type (might be due to invalid IL or missing references) //IL_0e37: Unknown result type (might be due to invalid IL or missing references) //IL_0e44: Unknown result type (might be due to invalid IL or missing references) //IL_0e51: Unknown result type (might be due to invalid IL or missing references) //IL_0e63: Expected O, but got Unknown //IL_0f3c: Unknown result type (might be due to invalid IL or missing references) //IL_1006: Unknown result type (might be due to invalid IL or missing references) //IL_1060: Unknown result type (might be due to invalid IL or missing references) //IL_10b3: Unknown result type (might be due to invalid IL or missing references) //IL_10b8: Unknown result type (might be due to invalid IL or missing references) //IL_10bf: Unknown result type (might be due to invalid IL or missing references) //IL_10c6: Unknown result type (might be due to invalid IL or missing references) //IL_10d1: Unknown result type (might be due to invalid IL or missing references) //IL_10d3: Unknown result type (might be due to invalid IL or missing references) //IL_10d8: Unknown result type (might be due to invalid IL or missing references) //IL_10da: Unknown result type (might be due to invalid IL or missing references) //IL_10df: Unknown result type (might be due to invalid IL or missing references) //IL_10e1: Unknown result type (might be due to invalid IL or missing references) //IL_10e6: Unknown result type (might be due to invalid IL or missing references) //IL_10ed: Unknown result type (might be due to invalid IL or missing references) //IL_10ef: Unknown result type (might be due to invalid IL or missing references) //IL_10f4: Unknown result type (might be due to invalid IL or missing references) //IL_10fb: Unknown result type (might be due to invalid IL or missing references) //IL_10fd: Unknown result type (might be due to invalid IL or missing references) //IL_1102: Unknown result type (might be due to invalid IL or missing references) //IL_1109: Unknown result type (might be due to invalid IL or missing references) //IL_110e: Unknown result type (might be due to invalid IL or missing references) //IL_1115: Unknown result type (might be due to invalid IL or missing references) //IL_1125: Expected O, but got Unknown //IL_1126: Unknown result type (might be due to invalid IL or missing references) //IL_112b: Unknown result type (might be due to invalid IL or missing references) //IL_1132: Unknown result type (might be due to invalid IL or missing references) //IL_1142: Expected O, but got Unknown //IL_1147: Unknown result type (might be due to invalid IL or missing references) //IL_114e: Unknown result type (might be due to invalid IL or missing references) //IL_1155: Unknown result type (might be due to invalid IL or missing references) //IL_1165: Expected O, but got Unknown //IL_1167: Unknown result type (might be due to invalid IL or missing references) //IL_116c: Unknown result type (might be due to invalid IL or missing references) //IL_1173: Unknown result type (might be due to invalid IL or missing references) //IL_117a: Unknown result type (might be due to invalid IL or missing references) //IL_1185: Unknown result type (might be due to invalid IL or missing references) //IL_1187: Unknown result type (might be due to invalid IL or missing references) //IL_118c: Unknown result type (might be due to invalid IL or missing references) //IL_118e: Unknown result type (might be due to invalid IL or missing references) //IL_1193: Unknown result type (might be due to invalid IL or missing references) //IL_1195: Unknown result type (might be due to invalid IL or missing references) //IL_119a: Unknown result type (might be due to invalid IL or missing references) //IL_11a1: Unknown result type (might be due to invalid IL or missing references) //IL_11a3: Unknown result type (might be due to invalid IL or missing references) //IL_11a8: Unknown result type (might be due to invalid IL or missing references) //IL_11af: Unknown result type (might be due to invalid IL or missing references) //IL_11b1: Unknown result type (might be due to invalid IL or missing references) //IL_11b6: Unknown result type (might be due to invalid IL or missing references) //IL_11bd: Unknown result type (might be due to invalid IL or missing references) //IL_11c2: Unknown result type (might be due to invalid IL or missing references) //IL_11c9: Unknown result type (might be due to invalid IL or missing references) //IL_11d9: Expected O, but got Unknown //IL_11da: Unknown result type (might be due to invalid IL or missing references) //IL_11df: Unknown result type (might be due to invalid IL or missing references) //IL_11e6: Unknown result type (might be due to invalid IL or missing references) //IL_11f6: Expected O, but got Unknown //IL_11fb: Unknown result type (might be due to invalid IL or missing references) //IL_1202: Unknown result type (might be due to invalid IL or missing references) //IL_1209: Unknown result type (might be due to invalid IL or missing references) //IL_1219: Expected O, but got Unknown //IL_1223: Unknown result type (might be due to invalid IL or missing references) //IL_1228: Unknown result type (might be due to invalid IL or missing references) //IL_122f: Unknown result type (might be due to invalid IL or missing references) //IL_1236: Unknown result type (might be due to invalid IL or missing references) //IL_1241: Unknown result type (might be due to invalid IL or missing references) //IL_1243: Unknown result type (might be due to invalid IL or missing references) //IL_1248: Unknown result type (might be due to invalid IL or missing references) //IL_124a: Unknown result type (might be due to invalid IL or missing references) //IL_124f: Unknown result type (might be due to invalid IL or missing references) //IL_1251: Unknown result type (might be due to invalid IL or missing references) //IL_1256: Unknown result type (might be due to invalid IL or missing references) //IL_125d: Unknown result type (might be due to invalid IL or missing references) //IL_125f: Unknown result type (might be due to invalid IL or missing references) //IL_1264: Unknown result type (might be due to invalid IL or missing references) //IL_126b: Unknown result type (might be due to invalid IL or missing references) //IL_126d: Unknown result type (might be due to invalid IL or missing references) //IL_1272: Unknown result type (might be due to invalid IL or missing references) //IL_1279: Unknown result type (might be due to invalid IL or missing references) //IL_127e: Unknown result type (might be due to invalid IL or missing references) //IL_1285: Unknown result type (might be due to invalid IL or missing references) //IL_1295: Expected O, but got Unknown //IL_1296: Unknown result type (might be due to invalid IL or missing references) //IL_129b: Unknown result type (might be due to invalid IL or missing references) //IL_12a2: Unknown result type (might be due to invalid IL or missing references) //IL_12b2: Expected O, but got Unknown //IL_12b7: Unknown result type (might be due to invalid IL or missing references) //IL_12be: Unknown result type (might be due to invalid IL or missing references) //IL_12c5: Unknown result type (might be due to invalid IL or missing references) //IL_12d5: Expected O, but got Unknown //IL_12e6: Unknown result type (might be due to invalid IL or missing references) //IL_12eb: Unknown result type (might be due to invalid IL or missing references) //IL_12f2: Unknown result type (might be due to invalid IL or missing references) //IL_12f9: Unknown result type (might be due to invalid IL or missing references) //IL_1304: Unknown result type (might be due to invalid IL or missing references) //IL_1306: Unknown result type (might be due to invalid IL or missing references) //IL_130b: Unknown result type (might be due to invalid IL or missing references) //IL_130d: Unknown result type (might be due to invalid IL or missing references) //IL_1312: Unknown result type (might be due to invalid IL or missing references) //IL_1314: Unknown result type (might be due to invalid IL or missing references) //IL_1319: Unknown result type (might be due to invalid IL or missing references) //IL_1320: Unknown result type (might be due to invalid IL or missing references) //IL_1322: Unknown result type (might be due to invalid IL or missing references) //IL_1327: Unknown result type (might be due to invalid IL or missing references) //IL_132e: Unknown result type (might be due to invalid IL or missing references) //IL_1330: Unknown result type (might be due to invalid IL or missing references) //IL_1335: Unknown result type (might be due to invalid IL or missing references) //IL_133c: Unknown result type (might be due to invalid IL or missing references) //IL_1341: Unknown result type (might be due to invalid IL or missing references) //IL_1348: Unknown result type (might be due to invalid IL or missing references) //IL_1358: Expected O, but got Unknown //IL_1359: Unknown result type (might be due to invalid IL or missing references) //IL_135e: Unknown result type (might be due to invalid IL or missing references) //IL_1365: Unknown result type (might be due to invalid IL or missing references) //IL_1375: Expected O, but got Unknown //IL_137a: Unknown result type (might be due to invalid IL or missing references) //IL_1381: Unknown result type (might be due to invalid IL or missing references) //IL_1388: Unknown result type (might be due to invalid IL or missing references) //IL_13c9: Expected O, but got Unknown //IL_13cb: Unknown result type (might be due to invalid IL or missing references) //IL_13d0: Unknown result type (might be due to invalid IL or missing references) //IL_13d7: Unknown result type (might be due to invalid IL or missing references) //IL_13de: Unknown result type (might be due to invalid IL or missing references) //IL_13e9: Unknown result type (might be due to invalid IL or missing references) //IL_13eb: Unknown result type (might be due to invalid IL or missing references) //IL_13f0: Unknown result type (might be due to invalid IL or missing references) //IL_13f2: Unknown result type (might be due to invalid IL or missing references) //IL_13f7: Unknown result type (might be due to invalid IL or missing references) //IL_13f9: Unknown result type (might be due to invalid IL or missing references) //IL_13fe: Unknown result type (might be due to invalid IL or missing references) //IL_1405: Unknown result type (might be due to invalid IL or missing references) //IL_1407: Unknown result type (might be due to invalid IL or missing references) //IL_140c: Unknown result type (might be due to invalid IL or missing references) //IL_1413: Unknown result type (might be due to invalid IL or missing references) //IL_1415: Unknown result type (might be due to invalid IL or missing references) //IL_141a: Unknown result type (might be due to invalid IL or missing references) //IL_1421: Unknown result type (might be due to invalid IL or missing references) //IL_1426: Unknown result type (might be due to invalid IL or missing references) //IL_142d: Unknown result type (might be due to invalid IL or missing references) //IL_143d: Expected O, but got Unknown //IL_143e: Unknown result type (might be due to invalid IL or missing references) //IL_1443: Unknown result type (might be due to invalid IL or missing references) //IL_144a: Unknown result type (might be due to invalid IL or missing references) //IL_145a: Expected O, but got Unknown //IL_145f: Unknown result type (might be due to invalid IL or missing references) //IL_1466: Unknown result type (might be due to invalid IL or missing references) //IL_146d: Unknown result type (might be due to invalid IL or missing references) //IL_14ae: Expected O, but got Unknown //IL_14b0: Unknown result type (might be due to invalid IL or missing references) //IL_14b5: Unknown result type (might be due to invalid IL or missing references) //IL_14bc: Unknown result type (might be due to invalid IL or missing references) //IL_14c3: Unknown result type (might be due to invalid IL or missing references) //IL_14ce: Unknown result type (might be due to invalid IL or missing references) //IL_14d0: Unknown result type (might be due to invalid IL or missing references) //IL_14d5: Unknown result type (might be due to invalid IL or missing references) //IL_14d7: Unknown result type (might be due to invalid IL or missing references) //IL_14dc: Unknown result type (might be due to invalid IL or missing references) //IL_14de: Unknown result type (might be due to invalid IL or missing references) //IL_14e3: Unknown result type (might be due to invalid IL or missing references) //IL_14ea: Unknown result type (might be due to invalid IL or missing references) //IL_14ec: Unknown result type (might be due to invalid IL or missing references) //IL_14f1: Unknown result type (might be due to invalid IL or missing references) //IL_14f8: Unknown result type (might be due to invalid IL or missing references) //IL_14fa: Unknown result type (might be due to invalid IL or missing references) //IL_14ff: Unknown result type (might be due to invalid IL or missing references) //IL_1506: Unknown result type (might be due to invalid IL or missing references) //IL_150b: Unknown result type (might be due to invalid IL or missing references) //IL_1512: Unknown result type (might be due to invalid IL or missing references) //IL_1522: Expected O, but got Unknown //IL_1523: Unknown result type (might be due to invalid IL or missing references) //IL_1528: Unknown result type (might be due to invalid IL or missing references) //IL_152f: Unknown result type (might be due to invalid IL or missing references) //IL_153f: Expected O, but got Unknown //IL_1544: Unknown result type (might be due to invalid IL or missing references) //IL_154b: Unknown result type (might be due to invalid IL or missing references) //IL_1552: Unknown result type (might be due to invalid IL or missing references) //IL_1594: Expected O, but got Unknown //IL_1596: Unknown result type (might be due to invalid IL or missing references) //IL_159b: Unknown result type (might be due to invalid IL or missing references) //IL_15a2: Unknown result type (might be due to invalid IL or missing references) //IL_15a9: Unknown result type (might be due to invalid IL or missing references) //IL_15b4: Unknown result type (might be due to invalid IL or missing references) //IL_15b6: Unknown result type (might be due to invalid IL or missing references) //IL_15bb: Unknown result type (might be due to invalid IL or missing references) //IL_15bd: Unknown result type (might be due to invalid IL or missing references) //IL_15c2: Unknown result type (might be due to invalid IL or missing references) //IL_15c4: Unknown result type (might be due to invalid IL or missing references) //IL_15c9: Unknown result type (might be due to invalid IL or missing references) //IL_15d0: Unknown result type (might be due to invalid IL or missing references) //IL_15d2: Unknown result type (might be due to invalid IL or missing references) //IL_15d7: Unknown result type (might be due to invalid IL or missing references) //IL_15de: Unknown result type (might be due to invalid IL or missing references) //IL_15e0: Unknown result type (might be due to invalid IL or missing references) //IL_15e5: Unknown result type (might be due to invalid IL or missing references) //IL_15ec: Unknown result type (might be due to invalid IL or missing references) //IL_15f1: Unknown result type (might be due to invalid IL or missing references) //IL_15f8: Unknown result type (might be due to invalid IL or missing references) //IL_1608: Expected O, but got Unknown //IL_1609: Unknown result type (might be due to invalid IL or missing references) //IL_160e: Unknown result type (might be due to invalid IL or missing references) //IL_1615: Unknown result type (might be due to invalid IL or missing references) //IL_1625: Expected O, but got Unknown //IL_162a: Unknown result type (might be due to invalid IL or missing references) //IL_1631: Unknown result type (might be due to invalid IL or missing references) //IL_1638: Unknown result type (might be due to invalid IL or missing references) //IL_167a: Expected O, but got Unknown //IL_167c: Unknown result type (might be due to invalid IL or missing references) //IL_1681: Unknown result type (might be due to invalid IL or missing references) //IL_1688: Unknown result type (might be due to invalid IL or missing references) //IL_168f: Unknown result type (might be due to invalid IL or missing references) //IL_169a: Unknown result type (might be due to invalid IL or missing references) //IL_169c: Unknown result type (might be due to invalid IL or missing references) //IL_16a1: Unknown result type (might be due to invalid IL or missing references) //IL_16a3: Unknown result type (might be due to invalid IL or missing references) //IL_16a8: Unknown result type (might be due to invalid IL or missing references) //IL_16aa: Unknown result type (might be due to invalid IL or missing references) //IL_16af: Unknown result type (might be due to invalid IL or missing references) //IL_16b6: Unknown result type (might be due to invalid IL or missing references) //IL_16b8: Unknown result type (might be due to invalid IL or missing references) //IL_16bd: Unknown result type (might be due to invalid IL or missing references) //IL_16c4: Unknown result type (might be due to invalid IL or missing references) //IL_16c6: Unknown result type (might be due to invalid IL or missing references) //IL_16cb: Unknown result type (might be due to invalid IL or missing references) //IL_16d2: Unknown result type (might be due to invalid IL or missing references) //IL_16d7: Unknown result type (might be due to invalid IL or missing references) //IL_16de: Unknown result type (might be due to invalid IL or missing references) //IL_16ee: Expected O, but got Unknown //IL_16ef: Unknown result type (might be due to invalid IL or missing references) //IL_16f4: Unknown result type (might be due to invalid IL or missing references) //IL_16fb: Unknown result type (might be due to invalid IL or missing references) //IL_170b: Expected O, but got Unknown //IL_1710: Unknown result type (might be due to invalid IL or missing references) //IL_1717: Unknown result type (might be due to invalid IL or missing references) //IL_171e: Unknown result type (might be due to invalid IL or missing references) //IL_175f: Expected O, but got Unknown //IL_1761: Unknown result type (might be due to invalid IL or missing references) //IL_1766: Unknown result type (might be due to invalid IL or missing references) //IL_176d: Unknown result type (might be due to invalid IL or missing references) //IL_1774: Unknown result type (might be due to invalid IL or missing references) //IL_177f: Unknown result type (might be due to invalid IL or missing references) //IL_1781: Unknown result type (might be due to invalid IL or missing references) //IL_1786: Unknown result type (might be due to invalid IL or missing references) //IL_1788: Unknown result type (might be due to invalid IL or missing references) //IL_178d: Unknown result type (might be due to invalid IL or missing references) //IL_178f: Unknown result type (might be due to invalid IL or missing references) //IL_1794: Unknown result type (might be due to invalid IL or missing references) //IL_179b: Unknown result type (might be due to invalid IL or missing references) //IL_179d: Unknown result type (might be due to invalid IL or missing references) //IL_17a2: Unknown result type (might be due to invalid IL or missing references) //IL_17a9: Unknown result type (might be due to invalid IL or missing references) //IL_17ab: Unknown result type (might be due to invalid IL or missing references) //IL_17b0: Unknown result type (might be due to invalid IL or missing references) //IL_17b7: Unknown result type (might be due to invalid IL or missing references) //IL_17bc: Unknown result type (might be due to invalid IL or missing references) //IL_17c3: Unknown result type (might be due to invalid IL or missing references) //IL_17d3: Expected O, but got Unknown //IL_17d4: Unknown result type (might be due to invalid IL or missing references) //IL_17d9: Unknown result type (might be due to invalid IL or missing references) //IL_17e0: Unknown result type (might be due to invalid IL or missing references) //IL_17f0: Expected O, but got Unknown //IL_17f5: Unknown result type (might be due to invalid IL or missing references) //IL_17fc: Unknown result type (might be due to invalid IL or missing references) //IL_1803: Unknown result type (might be due to invalid IL or missing references) //IL_1845: Expected O, but got Unknown //IL_1847: Unknown result type (might be due to invalid IL or missing references) //IL_184c: Unknown result type (might be due to invalid IL or missing references) //IL_1853: Unknown result type (might be due to invalid IL or missing references) //IL_185a: Unknown result type (might be due to invalid IL or missing references) //IL_1865: Unknown result type (might be due to invalid IL or missing references) //IL_1867: Unknown result type (might be due to invalid IL or missing references) //IL_186c: Unknown result type (might be due to invalid IL or missing references) //IL_186e: Unknown result type (might be due to invalid IL or missing references) //IL_1873: Unknown result type (might be due to invalid IL or missing references) //IL_1875: Unknown result type (might be due to invalid IL or missing references) //IL_187a: Unknown result type (might be due to invalid IL or missing references) //IL_1881: Unknown result type (might be due to invalid IL or missing references) //IL_1883: Unknown result type (might be due to invalid IL or missing references) //IL_1888: Unknown result type (might be due to invalid IL or missing references) //IL_188f: Unknown result type (might be due to invalid IL or missing references) //IL_1891: Unknown result type (might be due to invalid IL or missing references) //IL_1896: Unknown result type (might be due to invalid IL or missing references) //IL_189d: Unknown result type (might be due to invalid IL or missing references) //IL_18a2: Unknown result type (might be due to invalid IL or missing references) //IL_18a9: Unknown result type (might be due to invalid IL or missing references) //IL_18b9: Expected O, but got Unknown //IL_18ba: Unknown result type (might be due to invalid IL or missing references) //IL_18bf: Unknown result type (might be due to invalid IL or missing references) //IL_18c6: Unknown result type (might be due to invalid IL or missing references) //IL_18d6: Expected O, but got Unknown //IL_18db: Unknown result type (might be due to invalid IL or missing references) //IL_18e2: Unknown result type (might be due to invalid IL or missing references) //IL_18e9: Unknown result type (might be due to invalid IL or missing references) //IL_192a: Expected O, but got Unknown //IL_192c: Unknown result type (might be due to invalid IL or missing references) //IL_1931: Unknown result type (might be due to invalid IL or missing references) //IL_1938: Unknown result type (might be due to invalid IL or missing references) //IL_193f: Unknown result type (might be due to invalid IL or missing references) //IL_194a: Unknown result type (might be due to invalid IL or missing references) //IL_194c: Unknown result type (might be due to invalid IL or missing references) //IL_1951: Unknown result type (might be due to invalid IL or missing references) //IL_1953: Unknown result type (might be due to invalid IL or missing references) //IL_1958: Unknown result type (might be due to invalid IL or missing references) //IL_195a: Unknown result type (might be due to invalid IL or missing references) //IL_195f: Unknown result type (might be due to invalid IL or missing references) //IL_1966: Unknown result type (might be due to invalid IL or missing references) //IL_1968: Unknown result type (might be due to invalid IL or missing references) //IL_196d: Unknown result type (might be due to invalid IL or missing references) //IL_1974: Unknown result type (might be due to invalid IL or missing references) //IL_1976: Unknown result type (might be due to invalid IL or missing references) //IL_197b: Unknown result type (might be due to invalid IL or missing references) //IL_1982: Unknown result type (might be due to invalid IL or missing references) //IL_1987: Unknown result type (might be due to invalid IL or missing references) //IL_198e: Unknown result type (might be due to invalid IL or missing references) //IL_199e: Expected O, but got Unknown //IL_199f: Unknown result type (might be due to invalid IL or missing references) //IL_19a4: Unknown result type (might be due to invalid IL or missing references) //IL_19ab: Unknown result type (might be due to invalid IL or missing references) //IL_19bb: Expected O, but got Unknown //IL_19c0: Unknown result type (might be due to invalid IL or missing references) //IL_19c7: Unknown result type (might be due to invalid IL or missing references) //IL_19ce: Unknown result type (might be due to invalid IL or missing references) //IL_1a0f: Expected O, but got Unknown //IL_1a11: Unknown result type (might be due to invalid IL or missing references) //IL_1a16: Unknown result type (might be due to invalid IL or missing references) //IL_1a1d: Unknown result type (might be due to invalid IL or missing references) //IL_1a24: Unknown result type (might be due to invalid IL or missing references) //IL_1a2f: Unknown result type (might be due to invalid IL or missing references) //IL_1a31: Unknown result type (might be due to invalid IL or missing references) //IL_1a36: Unknown result type (might be due to invalid IL or missing references) //IL_1a38: Unknown result type (might be due to invalid IL or missing references) //IL_1a3d: Unknown result type (might be due to invalid IL or missing references) //IL_1a3f: Unknown result type (might be due to invalid IL or missing references) //IL_1a44: Unknown result type (might be due to invalid IL or missing references) //IL_1a4b: Unknown result type (might be due to invalid IL or missing references) //IL_1a4d: Unknown result type (might be due to invalid IL or missing references) //IL_1a52: Unknown result type (might be due to invalid IL or missing references) //IL_1a59: Unknown result type (might be due to invalid IL or missing references) //IL_1a5b: Unknown result type (might be due to invalid IL or missing references) //IL_1a60: Unknown result type (might be due to invalid IL or missing references) //IL_1a67: Unknown result type (might be due to invalid IL or missing references) //IL_1a6c: Unknown result type (might be due to invalid IL or missing references) //IL_1a73: Unknown result type (might be due to invalid IL or missing references) //IL_1a83: Expected O, but got Unknown //IL_1a84: Unknown result type (might be due to invalid IL or missing references) //IL_1a89: Unknown result type (might be due to invalid IL or missing references) //IL_1a90: Unknown result type (might be due to invalid IL or missing references) //IL_1aa0: Expected O, but got Unknown //IL_1aa5: Unknown result type (might be due to invalid IL or missing references) //IL_1aac: Unknown result type (might be due to invalid IL or missing references) //IL_1ab3: Unknown result type (might be due to invalid IL or missing references) //IL_1af5: Expected O, but got Unknown //IL_1af7: Unknown result type (might be due to invalid IL or missing references) //IL_1afc: Unknown result type (might be due to invalid IL or missing references) //IL_1b03: Unknown result type (might be due to invalid IL or missing references) //IL_1b0a: Unknown result type (might be due to invalid IL or missing references) //IL_1b15: Unknown result type (might be due to invalid IL or missing references) //IL_1b17: Unknown result type (might be due to invalid IL or missing references) //IL_1b1c: Unknown result type (might be due to invalid IL or missing references) //IL_1b1e: Unknown result type (might be due to invalid IL or missing references) //IL_1b23: Unknown result type (might be due to invalid IL or missing references) //IL_1b25: Unknown result type (might be due to invalid IL or missing references) //IL_1b2a: Unknown result type (might be due to invalid IL or missing references) //IL_1b31: Unknown result type (might be due to invalid IL or missing references) //IL_1b33: Unknown result type (might be due to invalid IL or missing references) //IL_1b38: Unknown result type (might be due to invalid IL or missing references) //IL_1b3f: Unknown result type (might be due to invalid IL or missing references) //IL_1b41: Unknown result type (might be due to invalid IL or missing references) //IL_1b46: Unknown result type (might be due to invalid IL or missing references) //IL_1b4d: Unknown result type (might be due to invalid IL or missing references) //IL_1b52: Unknown result type (might be due to invalid IL or missing references) //IL_1b59: Unknown result type (might be due to invalid IL or missing references) //IL_1b69: Expected O, but got Unknown //IL_1b6a: Unknown result type (might be due to invalid IL or missing references) //IL_1b6f: Unknown result type (might be due to invalid IL or missing references) //IL_1b76: Unknown result type (might be due to invalid IL or missing references) //IL_1b86: Expected O, but got Unknown //IL_1b8b: Unknown result type (might be due to invalid IL or missing references) //IL_1b92: Unknown result type (might be due to invalid IL or missing references) //IL_1b99: Unknown result type (might be due to invalid IL or missing references) //IL_1bda: Expected O, but got Unknown //IL_1bdc: Unknown result type (might be due to invalid IL or missing references) //IL_1be1: Unknown result type (might be due to invalid IL or missing references) //IL_1be8: Unknown result type (might be due to invalid IL or missing references) //IL_1bef: Unknown result type (might be due to invalid IL or missing references) //IL_1bfa: Unknown result type (might be due to invalid IL or missing references) //IL_1bfc: Unknown result type (might be due to invalid IL or missing references) //IL_1c01: Unknown result type (might be due to invalid IL or missing references) //IL_1c03: Unknown result type (might be due to invalid IL or missing references) //IL_1c08: Unknown result type (might be due to invalid IL or missing references) //IL_1c0a: Unknown result type (might be due to invalid IL or missing references) //IL_1c0f: Unknown result type (might be due to invalid IL or missing references) //IL_1c16: Unknown result type (might be due to invalid IL or missing references) //IL_1c18: Unknown result type (might be due to invalid IL or missing references) //IL_1c1d: Unknown result type (might be due to invalid IL or missing references) //IL_1c24: Unknown result type (might be due to invalid IL or missing references) //IL_1c26: Unknown result type (might be due to invalid IL or missing references) //IL_1c2b: Unknown result type (might be due to invalid IL or missing references) //IL_1c32: Unknown result type (might be due to invalid IL or missing references) //IL_1c37: Unknown result type (might be due to invalid IL or missing references) //IL_1c3e: Unknown result type (might be due to invalid IL or missing references) //IL_1c4e: Expected O, but got Unknown //IL_1c4f: Unknown result type (might be due to invalid IL or missing references) //IL_1c54: Unknown result type (might be due to invalid IL or missing references) //IL_1c5b: Unknown result type (might be due to invalid IL or missing references) //IL_1c6b: Expected O, but got Unknown //IL_1c70: Unknown result type (might be due to invalid IL or missing references) //IL_1c77: Unknown result type (might be due to invalid IL or missing references) //IL_1c7e: Unknown result type (might be due to invalid IL or missing references) //IL_1cbf: Expected O, but got Unknown //IL_1cc9: Unknown result type (might be due to invalid IL or missing references) //IL_1cce: Unknown result type (might be due to invalid IL or missing references) //IL_1cd5: Unknown result type (might be due to invalid IL or missing references) //IL_1cdc: Unknown result type (might be due to invalid IL or missing references) //IL_1ce7: Unknown result type (might be due to invalid IL or missing references) //IL_1ce9: Unknown result type (might be due to invalid IL or missing references) //IL_1cee: Unknown result type (might be due to invalid IL or missing references) //IL_1cf0: Unknown result type (might be due to invalid IL or missing references) //IL_1cf5: Unknown result type (might be due to invalid IL or missing references) //IL_1cf7: Unknown result type (might be due to invalid IL or missing references) //IL_1cfc: Unknown result type (might be due to invalid IL or missing references) //IL_1d03: Unknown result type (might be due to invalid IL or missing references) //IL_1d05: Unknown result type (might be due to invalid IL or missing references) //IL_1d0a: Unknown result type (might be due to invalid IL or missing references) //IL_1d11: Unknown result type (might be due to invalid IL or missing references) //IL_1d13: Unknown result type (might be due to invalid IL or missing references) //IL_1d18: Unknown result type (might be due to invalid IL or missing references) //IL_1d1f: Unknown result type (might be due to invalid IL or missing references) //IL_1d24: Unknown result type (might be due to invalid IL or missing references) //IL_1d2b: Unknown result type (might be due to invalid IL or missing references) //IL_1d3b: Expected O, but got Unknown //IL_1d3c: Unknown result type (might be due to invalid IL or missing references) //IL_1d41: Unknown result type (might be due to invalid IL or missing references) //IL_1d48: Unknown result type (might be due to invalid IL or missing references) //IL_1d58: Expected O, but got Unknown //IL_1d5d: Unknown result type (might be due to invalid IL or missing references) //IL_1d64: Unknown result type (might be due to invalid IL or missing references) //IL_1d6b: Unknown result type (might be due to invalid IL or missing references) //IL_1d7b: Expected O, but got Unknown //IL_1d8f: Unknown result type (might be due to invalid IL or missing references) //IL_1d94: Unknown result type (might be due to invalid IL or missing references) //IL_1d9b: Unknown result type (might be due to invalid IL or missing references) //IL_1da2: Unknown result type (might be due to invalid IL or missing references) //IL_1dad: Unknown result type (might be due to invalid IL or missing references) //IL_1daf: Unknown result type (might be due to invalid IL or missing references) //IL_1db4: Unknown result type (might be due to invalid IL or missing references) //IL_1db6: Unknown result type (might be due to invalid IL or missing references) //IL_1dbb: Unknown result type (might be due to invalid IL or missing references) //IL_1dbd: Unknown result type (might be due to invalid IL or missing references) //IL_1dc2: Unknown result type (might be due to invalid IL or missing references) //IL_1dc9: Unknown result type (might be due to invalid IL or missing references) //IL_1dcb: Unknown result type (might be due to invalid IL or missing references) //IL_1dd0: Unknown result type (might be due to invalid IL or missing references) //IL_1dd7: Unknown result type (might be due to invalid IL or missing references) //IL_1dd9: Unknown result type (might be due to invalid IL or missing references) //IL_1dde: Unknown result type (might be due to invalid IL or missing references) //IL_1de5: Unknown result type (might be due to invalid IL or missing references) //IL_1dea: Unknown result type (might be due to invalid IL or missing references) //IL_1df1: Unknown result type (might be due to invalid IL or missing references) //IL_1e01: Expected O, but got Unknown //IL_1e02: Unknown result type (might be due to invalid IL or missing references) //IL_1e07: Unknown result type (might be due to invalid IL or missing references) //IL_1e0e: Unknown result type (might be due to invalid IL or missing references) //IL_1e1e: Expected O, but got Unknown //IL_1e23: Unknown result type (might be due to invalid IL or missing references) //IL_1e2a: Unknown result type (might be due to invalid IL or missing references) //IL_1e31: Unknown result type (might be due to invalid IL or missing references) //IL_1e41: Expected O, but got Unknown //IL_1e43: Unknown result type (might be due to invalid IL or missing references) //IL_1e48: Unknown result type (might be due to invalid IL or missing references) //IL_1e4f: Unknown result type (might be due to invalid IL or missing references) //IL_1e56: Unknown result type (might be due to invalid IL or missing references) //IL_1e61: Unknown result type (might be due to invalid IL or missing references) //IL_1e63: Unknown result type (might be due to invalid IL or missing references) //IL_1e68: Unknown result type (might be due to invalid IL or missing references) //IL_1e6a: Unknown result type (might be due to invalid IL or missing references) //IL_1e6f: Unknown result type (might be due to invalid IL or missing references) //IL_1e71: Unknown result type (might be due to invalid IL or missing references) //IL_1e76: Unknown result type (might be due to invalid IL or missing references) //IL_1e7d: Unknown result type (might be due to invalid IL or missing references) //IL_1e7f: Unknown result type (might be due to invalid IL or missing references) //IL_1e84: Unknown result type (might be due to invalid IL or missing references) //IL_1e8b: Unknown result type (might be due to invalid IL or missing references) //IL_1e8d: Unknown result type (might be due to invalid IL or missing references) //IL_1e92: Unknown result type (might be due to invalid IL or missing references) //IL_1e99: Unknown result type (might be due to invalid IL or missing references) //IL_1e9e: Unknown result type (might be due to invalid IL or missing references) //IL_1ea5: Unknown result type (might be due to invalid IL or missing references) //IL_1eb5: Expected O, but got Unknown //IL_1eb6: Unknown result type (might be due to invalid IL or missing references) //IL_1ebb: Unknown result type (might be due to invalid IL or missing references) //IL_1ec2: Unknown result type (might be due to invalid IL or missing references) //IL_1ed2: Expected O, but got Unknown //IL_1ed7: Unknown result type (might be due to invalid IL or missing references) //IL_1ede: Unknown result type (might be due to invalid IL or missing references) //IL_1ee5: Unknown result type (might be due to invalid IL or missing references) //IL_1ef5: Expected O, but got Unknown //IL_1ef7: Unknown result type (might be due to invalid IL or missing references) //IL_1efc: Unknown result type (might be due to invalid IL or missing references) //IL_1f03: Unknown result type (might be due to invalid IL or missing references) //IL_1f0a: Unknown result type (might be due to invalid IL or missing references) //IL_1f15: Unknown result type (might be due to invalid IL or missing references) //IL_1f17: Unknown result type (might be due to invalid IL or missing references) //IL_1f1c: Unknown result type (might be due to invalid IL or missing references) //IL_1f1e: Unknown result type (might be due to invalid IL or missing references) //IL_1f23: Unknown result type (might be due to invalid IL or missing references) //IL_1f25: Unknown result type (might be due to invalid IL or missing references) //IL_1f2a: Unknown result type (might be due to invalid IL or missing references) //IL_1f31: Unknown result type (might be due to invalid IL or missing references) //IL_1f33: Unknown result type (might be due to invalid IL or missing references) //IL_1f38: Unknown result type (might be due to invalid IL or missing references) //IL_1f3f: Unknown result type (might be due to invalid IL or missing references) //IL_1f41: Unknown result type (might be due to invalid IL or missing references) //IL_1f46: Unknown result type (might be due to invalid IL or missing references) //IL_1f4d: Unknown result type (might be due to invalid IL or missing references) //IL_1f52: Unknown result type (might be due to invalid IL or missing references) //IL_1f59: Unknown result type (might be due to invalid IL or missing references) //IL_1f69: Expected O, but got Unknown //IL_1f6a: Unknown result type (might be due to invalid IL or missing references) //IL_1f6f: Unknown result type (might be due to invalid IL or missing references) //IL_1f76: Unknown result type (might be due to invalid IL or missing references) //IL_1f86: Expected O, but got Unknown //IL_1f8b: Unknown result type (might be due to invalid IL or missing references) //IL_1f92: Unknown result type (might be due to invalid IL or missing references) //IL_1f99: Unknown result type (might be due to invalid IL or missing references) //IL_1fa9: Expected O, but got Unknown //IL_1fab: Unknown result type (might be due to invalid IL or missing references) //IL_1fb0: Unknown result type (might be due to invalid IL or missing references) //IL_1fb7: Unknown result type (might be due to invalid IL or missing references) //IL_1fbe: Unknown result type (might be due to invalid IL or missing references) //IL_1fc9: Unknown result type (might be due to invalid IL or missing references) //IL_1fcb: Unknown result type (might be due to invalid IL or missing references) //IL_1fd0: Unknown result type (might be due to invalid IL or missing references) //IL_1fd2: Unknown result type (might be due to invalid IL or missing references) //IL_1fd7: Unknown result type (might be due to invalid IL or missing references) //IL_1fd9: Unknown result type (might be due to invalid IL or missing references) //IL_1fde: Unknown result type (might be due to invalid IL or missing references) //IL_1fe5: Unknown result type (might be due to invalid IL or missing references) //IL_1fe7: Unknown result type (might be due to invalid IL or missing references) //IL_1fec: Unknown result type (might be due to invalid IL or missing references) //IL_1ff3: Unknown result type (might be due to invalid IL or missing references) //IL_1ff5: Unknown result type (might be due to invalid IL or missing references) //IL_1ffa: Unknown result type (might be due to invalid IL or missing references) //IL_2001: Unknown result type (might be due to invalid IL or missing references) //IL_2006: Unknown result type (might be due to invalid IL or missing references) //IL_200d: Unknown result type (might be due to invalid IL or missing references) //IL_201d: Expected O, but got Unknown //IL_201e: Unknown result type (might be due to invalid IL or missing references) //IL_2023: Unknown result type (might be due to invalid IL or missing references) //IL_202a: Unknown result type (might be due to invalid IL or missing references) //IL_203a: Expected O, but got Unknown //IL_203f: Unknown result type (might be due to invalid IL or missing references) //IL_2046: Unknown result type (might be due to invalid IL or missing references) //IL_204d: Unknown result type (might be due to invalid IL or missing references) //IL_205d: Expected O, but got Unknown //IL_20a7: Unknown result type (might be due to invalid IL or missing references) //IL_20ac: Unknown result type (might be due to invalid IL or missing references) //IL_20b8: Unknown result type (might be due to invalid IL or missing references) //IL_20c4: Unknown result type (might be due to invalid IL or missing references) //IL_20cb: Unknown result type (might be due to invalid IL or missing references) //IL_20d2: Unknown result type (might be due to invalid IL or missing references) //IL_20d9: Unknown result type (might be due to invalid IL or missing references) //IL_20e0: Unknown result type (might be due to invalid IL or missing references) //IL_20e7: Unknown result type (might be due to invalid IL or missing references) //IL_20ee: Unknown result type (might be due to invalid IL or missing references) //IL_20f5: Unknown result type (might be due to invalid IL or missing references) //IL_20fc: Unknown result type (might be due to invalid IL or missing references) //IL_2103: Unknown result type (might be due to invalid IL or missing references) //IL_210a: Unknown result type (might be due to invalid IL or missing references) //IL_2111: Unknown result type (might be due to invalid IL or missing references) //IL_211d: Expected O, but got Unknown //IL_21e9: Unknown result type (might be due to invalid IL or missing references) //IL_21ee: Unknown result type (might be due to invalid IL or missing references) //IL_0ee2: Unknown result type (might be due to invalid IL or missing references) //IL_0ee7: Unknown result type (might be due to invalid IL or missing references) //IL_0ef4: Unknown result type (might be due to invalid IL or missing references) //IL_0f06: Expected O, but got Unknown Dungeon val = LoadOfficialDungeonPrefab("Base_Nakatomi"); LoadOfficialDungeonPrefab("Base_Cathedral"); Dungeon val2 = targetObject.AddComponent(); ExpandUtility.DuplicateComponent(val2, dungeonTemplate); DungeonMaterial val3 = ScriptableObject.CreateInstance(); ((Object)val3).name = "Backrooms"; val3.wallShards = val.roomMaterialDefinitions[0].wallShards; val3.bigWallShards = new WeightedGameObjectCollection { elements = new List(0) }; val3.bigWallShardDamageThreshold = 10f; val3.fallbackVerticalTileMapEffects = val.roomMaterialDefinitions[0].fallbackVerticalTileMapEffects; val3.fallbackHorizontalTileMapEffects = val.roomMaterialDefinitions[0].fallbackHorizontalTileMapEffects; val3.pitfallVFXPrefab = null; val3.UsePitAmbientVFX = false; val3.AmbientPitVFX = new List(0); val3.PitVFXMinCooldown = 5f; val3.PitVFXMaxCooldown = 30f; val3.ChanceToSpawnPitVFXOnCooldown = 1f; val3.stampFailChance = 0.65f; val3.overrideTableTable = null; val3.supportsPits = false; val3.doPitAO = true; val3.pitsAreOneDeep = false; val3.supportsDiagonalWalls = false; val3.supportsUpholstery = false; val3.carpetIsMainFloor = false; val3.carpetGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val3.supportsChannels = false; val3.minChannelPools = 0; val3.maxChannelPools = 3; val3.channelTenacity = 0.65f; val3.channelGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val3.supportsLavaOrLavalikeSquares = false; val3.lavaGrids = (TileIndexGrid[])(object)new TileIndexGrid[1] { ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Purple/lavaGrids") }; val3.supportsIceSquares = false; val3.iceGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val3.roomFloorBorderGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Purple/roomFloorBorderGrid"); val3.roomCeilingBorderGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Purple/roomCeilingBorderGrid"); val3.pitLayoutGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Purple/pitLayoutGrid"); val3.pitBorderFlatGrid = null; val3.pitBorderRaisedGrid = null; val3.additionalPitBorderFlatGrid = null; val3.outerCeilingBorderGrid = null; val3.floorSquareDensity = 0.05f; val3.floorSquares = (TileIndexGrid[])(object)new TileIndexGrid[0]; val3.usesFacewallGrids = true; val3.facewallGrids = (FacewallIndexGridDefinition[])(object)new FacewallIndexGridDefinition[2] { ExpandAssets.DeserializeFacewallGridDefinitionFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Purple/facewallGrids_0"), ExpandAssets.DeserializeFacewallGridDefinitionFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Purple/facewallGrids_1") }; val3.facewallGrids[0].grid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Purple/facewallGrids_0_grid"); val3.facewallGrids[1].grid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Purple/facewallGrids_1_grid"); val3.usesInternalMaterialTransitions = false; val3.usesProceduralMaterialTransitions = false; val3.internalMaterialTransitions = (RoomInternalMaterialTransition[])(object)new RoomInternalMaterialTransition[0]; val3.secretRoomWallShardCollections = new List(0); val3.overrideStoneFloorType = false; val3.overrideFloorType = (CellFloorType)0; val3.useLighting = true; val3.lightPrefabs = new WeightedGameObjectCollection { elements = new List { new WeightedGameObject { rawGameObject = val.roomMaterialDefinitions[0].lightPrefabs.elements[0].rawGameObject, weight = 1f, forceDuplicatesPossible = false, pickupId = -1, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] } } }; val3.facewallLightStamps = val.roomMaterialDefinitions[0].facewallLightStamps; val3.sidewallLightStamps = val.roomMaterialDefinitions[0].sidewallLightStamps; val3.usesDecalLayer = false; val3.decalIndexGrid = null; val3.decalLayerStyle = (DecoStyle)0; val3.decalSize = 1; val3.decalSpacing = 1; val3.usesPatternLayer = false; val3.patternLayerStyle = (DecoStyle)99; val3.patternSpacing = 1; val3.patternSize = 1; val3.patternIndexGrid = null; val3.forceEdgesDiagonal = false; val3.exteriorFacadeBorderGrid = null; val3.facadeTopGrid = null; val3.bridgeGrid = null; DungeonMaterial val4 = ScriptableObject.CreateInstance(); ((Object)val4).name = "Backrooms_Bathrooms"; val4.wallShards = val.roomMaterialDefinitions[1].wallShards; val4.bigWallShards = new WeightedGameObjectCollection { elements = new List(0) }; val4.bigWallShardDamageThreshold = 10f; val4.fallbackVerticalTileMapEffects = val.roomMaterialDefinitions[1].fallbackVerticalTileMapEffects; val4.fallbackHorizontalTileMapEffects = val.roomMaterialDefinitions[1].fallbackHorizontalTileMapEffects; val4.pitfallVFXPrefab = null; val4.UsePitAmbientVFX = false; val4.AmbientPitVFX = new List(0); val4.PitVFXMinCooldown = 5f; val4.PitVFXMaxCooldown = 30f; val4.ChanceToSpawnPitVFXOnCooldown = 1f; val4.stampFailChance = 0.6f; val4.overrideTableTable = null; val4.supportsPits = false; val4.doPitAO = true; val4.pitsAreOneDeep = false; val4.supportsDiagonalWalls = false; val4.supportsUpholstery = false; val4.carpetIsMainFloor = false; val4.carpetGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val4.supportsChannels = false; val4.minChannelPools = 0; val4.maxChannelPools = 3; val4.channelTenacity = 0.75f; val4.channelGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val4.supportsLavaOrLavalikeSquares = false; val4.lavaGrids = (TileIndexGrid[])(object)new TileIndexGrid[1] { ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Blue/lavaGrids") }; val4.supportsIceSquares = false; val4.iceGrids = (TileIndexGrid[])(object)new TileIndexGrid[0]; val4.roomFloorBorderGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Blue/roomFloorBorderGrid"); val4.roomCeilingBorderGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Blue/roomCeilingBorderGrid"); val4.pitLayoutGrid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Blue/pitLayoutGrid"); val4.pitBorderFlatGrid = null; val4.pitBorderRaisedGrid = null; val4.additionalPitBorderFlatGrid = null; val4.outerCeilingBorderGrid = null; val4.floorSquareDensity = 0.05f; val4.floorSquares = (TileIndexGrid[])(object)new TileIndexGrid[0]; val4.usesFacewallGrids = true; val4.facewallGrids = (FacewallIndexGridDefinition[])(object)new FacewallIndexGridDefinition[2] { ExpandAssets.DeserializeFacewallGridDefinitionFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Blue/facewallGrids_0"), ExpandAssets.DeserializeFacewallGridDefinitionFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Blue/facewallGrids_1") }; val4.facewallGrids[0].grid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Blue/facewallGrids_0_grid"); val4.facewallGrids[1].grid = ExpandAssets.DeserializeTileIndexGridFromAssetBundle(expandSharedAuto1, "Nakatomi/Nakatomi_Blue/facewallGrids_1_grid"); val4.usesInternalMaterialTransitions = false; val4.usesProceduralMaterialTransitions = false; val4.internalMaterialTransitions = (RoomInternalMaterialTransition[])(object)new RoomInternalMaterialTransition[0]; val4.secretRoomWallShardCollections = new List(0); val4.overrideStoneFloorType = false; val4.overrideFloorType = (CellFloorType)0; val4.useLighting = true; val4.lightPrefabs = new WeightedGameObjectCollection { elements = new List { new WeightedGameObject { rawGameObject = val.roomMaterialDefinitions[1].lightPrefabs.elements[0].rawGameObject, weight = 1f, forceDuplicatesPossible = false, pickupId = -1, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] } } }; val4.facewallLightStamps = val.roomMaterialDefinitions[1].facewallLightStamps; val4.sidewallLightStamps = val.roomMaterialDefinitions[1].sidewallLightStamps; val4.usesDecalLayer = false; val4.decalIndexGrid = null; val4.decalLayerStyle = (DecoStyle)0; val4.decalSize = 1; val4.decalSpacing = 1; val4.usesPatternLayer = false; val4.patternLayerStyle = (DecoStyle)99; val4.patternSpacing = 1; val4.patternSize = 1; val4.patternIndexGrid = null; val4.forceEdgesDiagonal = false; val4.exteriorFacadeBorderGrid = null; val4.facadeTopGrid = null; val4.bridgeGrid = null; ((Object)((Component)val2).gameObject).name = "Base_BackRooms"; val2.DungeonSeed = 0; val2.DungeonShortName = "The Backrooms"; val2.DungeonFloorName = "The Backrooms"; val2.DungeonFloorLevelTextOverride = "A Liminal Space..."; val2.debugSettings = new DebugDungeonSettings { RAPID_DEBUG_DUNGEON_ITERATION_SEEKER = false, RAPID_DEBUG_DUNGEON_ITERATION = false, RAPID_DEBUG_DUNGEON_COUNT = 50, GENERATION_VIEWER_MODE = false, FULL_MINIMAP_VISIBILITY = false, COOP_TEST = false, DISABLE_ENEMIES = false, DISABLE_LOOPS = true, DISABLE_SECRET_ROOM_COVERS = false, DISABLE_OUTLINES = false, WALLS_ARE_PITS = false }; val2.PatternSettings = new SemioticDungeonGenSettings { flows = new List { FlowDatabase.GetOrLoadByName("BackRooms_Flow_01"), FlowDatabase.GetOrLoadByName("BackRooms_Flow_02"), FlowDatabase.GetOrLoadByName("BackRooms_Flow_03") }, mandatoryExtraRooms = new List(0), optionalExtraRooms = new List(0), MAX_GENERATION_ATTEMPTS = 250, DEBUG_RENDER_CANVASES_SEPARATELY = false }; val2.ForceRegenerationOfCharacters = false; val2.ActuallyGenerateTilemap = true; TilemapDecoSettings val5 = new TilemapDecoSettings(); WeightedIntCollection val6 = new WeightedIntCollection(); val6.elements = (WeightedInt[])(object)new WeightedInt[5] { new WeightedInt { annotation = "backrooms", value = 0, weight = 0.5f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "bathrooms", value = 1, weight = 0.5f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "shop", value = 2, weight = 0f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "unused", value = 3, weight = 0f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }, new WeightedInt { annotation = "unused", value = 4, weight = 0f, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] } }; val5.standardRoomVisualSubtypes = val6; val5.decalLayerStyle = (DecoStyle)99; val5.decalSize = 3; val5.decalSpacing = 1; val5.decalExpansion = 0; val5.patternLayerStyle = (DecoStyle)99; val5.patternSize = 3; val5.patternSpacing = 3; val5.patternExpansion = 0; val5.decoPatchFrequency = 0.01f; val5.ambientLightColor = new Color(0.627336f, 0.666108f, 0.585294f, 1f); val5.ambientLightColorTwo = new Color(0.62549f, 0.664705f, 0.584314f, 1f); val5.lowQualityAmbientLightColor = Color.white; val5.lowQualityAmbientLightColorTwo = Color.white; val5.lowQualityCheapLightVector = new Vector4(1f, 0f, -1f, 0f); val5.UsesAlienFXFloorColor = false; val5.AlienFXFloorColor = Color.black; val5.generateLights = true; val5.lightCullingPercentage = 0.2f; val5.lightOverlapRadius = 8; val5.nearestAllowedLight = 12f; val5.minLightExpanseWidth = 2; val5.lightHeight = -2f; val5.lightCookies = (Texture2D[])(object)new Texture2D[0]; val5.debug_view = false; val2.decoSettings = val5; val2.tileIndices = new TileIndices { tilesetId = (ValidTilesets)256, dungeonCollection = ExpandPrefabs.ENV_Tileset_Backrooms.GetComponent(), dungeonCollectionSupportsDiagonalWalls = false, aoTileIndices = new AOTileIndices { AOFloorTileIndex = 0, AOBottomWallBaseTileIndex = 1, AOBottomWallTileRightIndex = 2, AOBottomWallTileLeftIndex = 3, AOBottomWallTileBothIndex = 4, AOTopFacewallRightIndex = 6, AOTopFacewallLeftIndex = 5, AOTopFacewallBothIndex = 7, AOFloorWallLeft = 5, AOFloorWallRight = 6, AOFloorWallBoth = 7, AOFloorPizzaSliceLeft = 8, AOFloorPizzaSliceRight = 9, AOFloorPizzaSliceBoth = 10, AOFloorPizzaSliceLeftWallRight = 11, AOFloorPizzaSliceRightWallLeft = 12, AOFloorWallUpAndLeft = 13, AOFloorWallUpAndRight = 14, AOFloorWallUpAndBoth = 15, AOFloorDiagonalWallNortheast = -1, AOFloorDiagonalWallNortheastLower = -1, AOFloorDiagonalWallNortheastLowerJoint = -1, AOFloorDiagonalWallNorthwest = -1, AOFloorDiagonalWallNorthwestLower = -1, AOFloorDiagonalWallNorthwestLowerJoint = -1, AOBottomWallDiagonalNortheast = -1, AOBottomWallDiagonalNorthwest = -1 }, placeBorders = true, placePits = false, chestHighWallIndices = new List { new TileIndexVariant { index = 41, likelihood = 0.5f, overrideLayerIndex = 0, overrideIndex = 0 } }, decalIndexGrid = null, patternIndexGrid = null, globalSecondBorderTiles = new List(0), edgeDecorationTiles = null }; val2.roomMaterialDefinitions = (DungeonMaterial[])(object)new DungeonMaterial[6] { val3, val4, val3, val3, val3, sharedAssets2.LoadAsset("Boss_Cathedral_StainedGlass_Lights") }; val2.dungeonWingDefinitions = (DungeonWingDefinition[])(object)new DungeonWingDefinition[0]; val2.pathGridDefinitions = val.pathGridDefinitions; val2.dungeonDustups = val.dungeonDustups; val2.damageTypeEffectMatrix = ScriptableObject.CreateInstance(); val2.damageTypeEffectMatrix.definitions = val.damageTypeEffectMatrix.definitions; val2.stampData = ScriptableObject.CreateInstance(); ((Object)val2.stampData).name = "ENV_OFFICE_STAMP_DATA"; val2.stampData.tileStampWeight = 0.33f; val2.stampData.spriteStampWeight = 0f; val2.stampData.objectStampWeight = 1f; val2.stampData.stamps = (TileStampData[])(object)new TileStampData[1] { new TileStampData { width = 1, height = 1, relativeWeight = 1f, placementRule = (StampPlacementRule)0, occupySpace = (StampSpace)1, stampCategory = (StampCategory)3, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)1, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 1f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, stampTileIndices = new List { 60 } } }; val2.stampData.spriteStamps = (SpriteStampData[])(object)new SpriteStampData[0]; List list = new List(); ObjectStampData[] objectStamps = val.stampData.objectStamps; foreach (ObjectStampData val7 in objectStamps) { list.Add(new ObjectStampData { width = ((StampDataBase)val7).width, height = ((StampDataBase)val7).height, relativeWeight = ((StampDataBase)val7).relativeWeight, placementRule = ((StampDataBase)val7).placementRule, occupySpace = ((StampDataBase)val7).occupySpace, stampCategory = ((StampDataBase)val7).stampCategory, preferredIntermediaryStamps = ((StampDataBase)val7).preferredIntermediaryStamps, intermediaryMatchingStyle = ((StampDataBase)val7).intermediaryMatchingStyle, requiresForcedMatchingStyle = ((StampDataBase)val7).requiresForcedMatchingStyle, opulence = ((StampDataBase)val7).opulence, roomTypeData = new List(), indexOfSymmetricPartner = ((StampDataBase)val7).indexOfSymmetricPartner, preventRoomRepeats = ((StampDataBase)val7).preventRoomRepeats, objectReference = val7.objectReference }); } for (int j = 0; j < list.Count; j++) { if (((StampDataBase)val.stampData.objectStamps[j]).roomTypeData == null || ((StampDataBase)val.stampData.objectStamps[j]).roomTypeData.Count <= 0) { continue; } foreach (StampPerRoomPlacementSettings roomTypeDatum in ((StampDataBase)val.stampData.objectStamps[j]).roomTypeData) { ((StampDataBase)list[j]).roomTypeData.Add(new StampPerRoomPlacementSettings { roomSubType = roomTypeDatum.roomSubType, roomRelativeWeight = roomTypeDatum.roomRelativeWeight }); } } ((StampDataBase)list[6]).placementRule = (StampPlacementRule)5; ((StampDataBase)list[0]).roomTypeData[1].roomRelativeWeight = 0f; ((StampDataBase)list[0]).width = 2; ((StampDataBase)list[1]).roomTypeData[1].roomRelativeWeight = 0f; ((StampDataBase)list[2]).roomTypeData[1].roomRelativeWeight = 0f; ((StampDataBase)list[3]).roomTypeData[1].roomRelativeWeight = 0f; ((StampDataBase)list[5]).roomTypeData[1].roomRelativeWeight = 0f; ((StampDataBase)list[6]).roomTypeData[1].roomRelativeWeight = 0f; ((StampDataBase)list[7]).placementRule = (StampPlacementRule)5; ((StampDataBase)list[7]).roomTypeData[1].roomRelativeWeight = 0.4f; ((StampDataBase)list[7]).roomTypeData[1].roomRelativeWeight = 0f; ((StampDataBase)list[7]).relativeWeight = 0.4f; ((StampDataBase)list[8]).placementRule = (StampPlacementRule)5; ((StampDataBase)list[8]).relativeWeight = 0.4f; ((StampDataBase)list[8]).roomTypeData[0].roomRelativeWeight = 0.4f; ((StampDataBase)list[8]).roomTypeData[1].roomRelativeWeight = 0f; list.Add(new ObjectStampData { width = 1, height = 1, relativeWeight = 1f, placementRule = (StampPlacementRule)5, occupySpace = (StampSpace)0, stampCategory = (StampCategory)3, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 1f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 1f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ExpandPrefabs.EXBackRoomsCarpetStain_Large }); list.Add(new ObjectStampData { width = 1, height = 1, relativeWeight = 1f, placementRule = (StampPlacementRule)5, occupySpace = (StampSpace)0, stampCategory = (StampCategory)3, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 1f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 1f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ExpandPrefabs.EXBackRoomsCarpetStain_Medium }); for (int k = 0; k < 40; k++) { list.Add(new ObjectStampData { width = 1, height = 1, relativeWeight = 1f, placementRule = (StampPlacementRule)5, occupySpace = (StampSpace)0, stampCategory = (StampCategory)3, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 1f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 1f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ExpandPrefabs.EXBackRoomsCarpetStain_Small }); } list.Add(new ObjectStampData { width = 2, height = 1, relativeWeight = 0.5f, placementRule = (StampPlacementRule)2, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.4f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)val.PatternSettings.flows[0].AllNodes[6].overrideExactRoom.placedObjects[2].nonenemyBehaviour).gameObject }); list.Add(new ObjectStampData { width = 1, height = 2, relativeWeight = 0.5f, placementRule = (StampPlacementRule)8, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.4f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)val.PatternSettings.flows[0].AllNodes[6].overrideExactRoom.placedObjects[7].nonenemyBehaviour).gameObject }); list.Add(new ObjectStampData { width = 1, height = 2, relativeWeight = 0.5f, placementRule = (StampPlacementRule)3, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.4f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)val.PatternSettings.flows[0].AllNodes[6].overrideExactRoom.placedObjects[10].nonenemyBehaviour).gameObject }); list.Add(new ObjectStampData { width = 3, height = 1, relativeWeight = 0.5f, placementRule = (StampPlacementRule)2, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0.2f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.2f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)val.PatternSettings.flows[0].AllNodes[4].overrideExactRoom.placedObjects[16].nonenemyBehaviour).gameObject }); list.Add(new ObjectStampData { width = 1, height = 2, relativeWeight = 0.5f, placementRule = (StampPlacementRule)8, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0.2f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.2f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)val.PatternSettings.flows[0].AllNodes[4].overrideExactRoom.placedObjects[8].nonenemyBehaviour).gameObject }); list.Add(new ObjectStampData { width = 1, height = 2, relativeWeight = 0.5f, placementRule = (StampPlacementRule)3, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0.2f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.2f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)val.PatternSettings.flows[0].AllNodes[4].overrideExactRoom.placedObjects[12].nonenemyBehaviour).gameObject }); list.Add(new ObjectStampData { width = 2, height = 1, relativeWeight = 0.5f, placementRule = (StampPlacementRule)2, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0.2f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.2f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)val.PatternSettings.flows[0].AllNodes[4].overrideExactRoom.placedObjects[2].nonenemyBehaviour).gameObject }); list.Add(new ObjectStampData { width = 1, height = 1, relativeWeight = 0.5f, placementRule = (StampPlacementRule)5, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0.2f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.2f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)val.PatternSettings.flows[0].AllNodes[4].overrideExactRoom.placedObjects[8].nonenemyBehaviour).gameObject }); list.Add(new ObjectStampData { width = 1, height = 1, relativeWeight = 0.5f, placementRule = (StampPlacementRule)5, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0.2f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.2f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)val.PatternSettings.flows[0].AllNodes[4].overrideExactRoom.placedObjects[12].nonenemyBehaviour).gameObject }); list.Add(new ObjectStampData { width = 2, height = 1, relativeWeight = 0.5f, placementRule = (StampPlacementRule)5, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0.2f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.2f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)val.PatternSettings.flows[0].AllNodes[4].overrideExactRoom.placedObjects[2].nonenemyBehaviour).gameObject }); list.Add(new ObjectStampData { width = 1, height = 2, relativeWeight = 0.5f, placementRule = (StampPlacementRule)5, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0.2f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.2f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ((Component)val.PatternSettings.flows[0].AllNodes[0].overrideExactRoom.placedObjects[3].nonenemyBehaviour).gameObject }); for (int l = 0; l < 200; l++) { list.Add(new ObjectStampData { width = 1, height = 1, relativeWeight = 1f, placementRule = (StampPlacementRule)5, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 1f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 1f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ExpandPrefabs.EXDummyObject }); } list.Add(new ObjectStampData { width = 1, height = 1, relativeWeight = 0.1f, placementRule = (StampPlacementRule)3, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0.6f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.6f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ExpandPrefabs.EXDummyObject }); list.Add(new ObjectStampData { width = 1, height = 1, relativeWeight = 0.1f, placementRule = (StampPlacementRule)8, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0.6f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.6f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ExpandPrefabs.EXDummyObject }); list.Add(new ObjectStampData { width = 1, height = 1, relativeWeight = 0.6f, placementRule = (StampPlacementRule)2, occupySpace = (StampSpace)0, stampCategory = (StampCategory)2, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 1f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 1f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ExpandPrefabs.EXDummyObject }); list.Add(new ObjectStampData { width = 1, height = 1, relativeWeight = 0.6f, placementRule = (StampPlacementRule)0, occupySpace = (StampSpace)0, stampCategory = (StampCategory)3, preferredIntermediaryStamps = 0, intermediaryMatchingStyle = (IntermediaryMatchingStyle)0, requiresForcedMatchingStyle = false, opulence = (Opulence)0, roomTypeData = new List { new StampPerRoomPlacementSettings { roomSubType = 0, roomRelativeWeight = 0.8f }, new StampPerRoomPlacementSettings { roomSubType = 1, roomRelativeWeight = 0.8f } }, indexOfSymmetricPartner = -1, preventRoomRepeats = false, objectReference = ExpandPrefabs.EXDummyObject }); val2.stampData.objectStamps = list.ToArray(); val2.stampData.objectStampWeight = 1f; val2.stampData.SymmetricFrameChance = 0.1f; val2.stampData.SymmetricCompleteChance = 0.1f; val2.UsesCustomFloorIdea = false; val2.FloorIdea = new RobotDaveIdea { ValidEasyEnemyPlaceables = (DungeonPlaceable[])(object)new DungeonPlaceable[0], ValidHardEnemyPlaceables = (DungeonPlaceable[])(object)new DungeonPlaceable[0], UseWallSawblades = false, UseRollingLogsVertical = false, UseRollingLogsHorizontal = false, UseFloorPitTraps = false, UseFloorFlameTraps = false, UseFloorSpikeTraps = false, UseFloorConveyorBelts = false, UseCaveIns = false, UseAlarmMushrooms = false, UseMineCarts = false, UseChandeliers = false, CanIncludePits = true }; val2.doorObjects = val.doorObjects; val2.lockedDoorObjects = null; val2.oneWayDoorObjects = ExpandPrefabs.Backrooms_OneWayDoors; val2.oneWayDoorPressurePlate = val.oneWayDoorPressurePlate; val2.phantomBlockerDoorObjects = val.phantomBlockerDoorObjects; val2.WarpWingDoorPrefab = ExpandPrefabs.EXWarpDoor_Backrooms; val2.baseChestContents = val.baseChestContents; val2.SecretRoomSimpleTriggersFacewall = val.SecretRoomSimpleTriggersFacewall; val2.SecretRoomSimpleTriggersSidewall = val.SecretRoomSimpleTriggersSidewall; val2.SecretRoomComplexTriggers = new List(0); val2.SecretRoomDoorSparkVFX = val.SecretRoomDoorSparkVFX; val2.SecretRoomHorizontalPoofVFX = val.SecretRoomHorizontalPoofVFX; val2.SecretRoomVerticalPoofVFX = val.SecretRoomVerticalPoofVFX; val2.sharedSettingsPrefab = val.sharedSettingsPrefab; val2.BossMasteryTokenItemId = -1; val2.UsesWallWarpWingDoors = true; val2.StripPlayerOnArrival = false; val2.SuppressEmergencyCrates = false; val2.SetTutorialFlag = false; val2.PlayerIsLight = false; val2.PlayerLightColor = Color.white; val2.PlayerLightIntensity = 3f; val2.PlayerLightRadius = 5f; val2.musicEventName = "Play_EX_MUS_Backrooms_01"; val2.PrefabsToAutoSpawn = (GameObject[])(object)new GameObject[1] { ExpandPrefabs.EXVoidController }; val = null; } } public class ExpandSawBladeTrapPlaceable : DungeonPlaceableBehaviour, IPlaceConfigurable { public IntVector2 PathNodeAreaSize; public Vector2 PathNodeOffset; public ExpandSawBladeTrapPlaceable() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) PathNodeAreaSize = new IntVector2(4, 4); PathNodeOffset = Vector2.zero; } private void Start() { } private SerializedPath GenerateRectanglePathInset(Vector2 BasePosition, IntVector2 Dimensions) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) //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_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: 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) //IL_0016: 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_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: 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_003e: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0040: 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_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_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: 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_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0087: 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_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Expected O, but got Unknown IntVector2 val = Vector2Extensions.ToIntVector2(BasePosition, (VectorConversions)2); val += new IntVector2(-1, 0); Dimensions += IntVector2.One; SerializedPath val2 = new SerializedPath(val); val2.AddPosition(val + ((IntVector2)(ref Dimensions)).WithY(0)); val2.AddPosition(val + Dimensions); val2.AddPosition(val + ((IntVector2)(ref Dimensions)).WithX(0)); val2.wrapMode = (SerializedPathWrapMode)1; SerializedPathNode value = val2.nodes[0]; value.placement = (SerializedNodePlacement)2; val2.nodes[0] = value; value = val2.nodes[1]; value.placement = (SerializedNodePlacement)8; val2.nodes[1] = value; value = val2.nodes[2]; value.placement = (SerializedNodePlacement)6; val2.nodes[2] = value; value = val2.nodes[3]; value.placement = (SerializedNodePlacement)4; val2.nodes[3] = value; return val2; } public void ConfigureOnPlacement(RoomHandler room) { //IL_001e: 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_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_0045: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) ((Component)this).gameObject.SetActive(true); ((Behaviour)this).enabled = true; IntVector2 val = Vector2Extensions.ToIntVector2(TransformExtensions.PositionVector2(((Component)this).gameObject.transform), (VectorConversions)2) - room.area.basePosition; Vector2 basePosition = ((IntVector2)(ref val)).ToVector2(); SerializedPath val2 = GenerateRectanglePathInset(basePosition, PathNodeAreaSize); room.area.prototypeRoom.paths.Add(val2); DungeonPlaceable val3 = BraveResources.Load("RobotDaveTraps", ".asset"); GameObject val4 = null; if (Object.op_Implicit((Object)(object)val3)) { val4 = val3.variantTiers[0].nonDatabasePlaceable; } if (!Object.op_Implicit((Object)(object)val4)) { return; } GameObject val5 = Object.Instantiate(val4, ((Component)this).gameObject.transform.position, Quaternion.identity); val5.SetActive(false); if (Object.op_Implicit((Object)(object)val5)) { PathMover component = val5.GetComponent(); if ((Object)(object)component != (Object)null) { component.RoomHandler = room; component.Path = val2; component.PathStartNode = Random.Range(0, val2.nodes.Count); component.IsUsingAlternateTargets = false; component.ForceCornerDelayHack = false; component.nodeOffset = PathNodeOffset; val5.SetActive(true); } } } protected override void OnDestroy() { ((DungeonPlaceableBehaviour)this).OnDestroy(); } } public static class ExpandSecretDoorPrefabs { public static GameObject EXSecretDoorMinimapIcon; public static GameObject EXSecretBackroomsDoorMinimapIcon; public static GameObject EXSecretDoor_Hollow; public static GameObject EXSecretDoor_Hollow_Unlocked; public static GameObject EXSecretDoor; public static GameObject EXSecretDoor_Unlocked; public static GameObject EXSecretBackroomsDoor; public static GameObject EXSecretDoorAnimation; private static readonly List m_DoorOpenSprites = new List { "EXSecretDoor_Open_00", "EXSecretDoor_Open_01", "EXSecretDoor_Open_02", "EXSecretDoor_Open_03", "EXSecretDoor_Open_04", "EXSecretDoor_Open_05", "EXSecretDoor_Open_06", "EXSecretDoor_Open_07" }; private static readonly List m_DoorCloseSprites = new List { "EXSecretDoor_Open_07", "EXSecretDoor_Open_06", "EXSecretDoor_Open_05", "EXSecretDoor_Open_04", "EXSecretDoor_Open_03", "EXSecretDoor_Open_02", "EXSecretDoor_Open_01", "EXSecretDoor_Open_00" }; private static readonly List m_DoorOpenBackroomsSprites = new List { "EXSecretBackroomsDoor_Open_00", "EXSecretBackroomsDoor_Open_01", "EXSecretBackroomsDoor_Open_02", "EXSecretBackroomsDoor_Open_03", "EXSecretBackroomsDoor_Open_04", "EXSecretBackroomsDoor_Open_05", "EXSecretBackroomsDoor_Open_06", "EXSecretBackroomsDoor_Open_07" }; private static readonly List m_DoorCloseBackroomsSprites = new List { "EXSecretBackroomsDoor_Open_07", "EXSecretBackroomsDoor_Open_06", "EXSecretBackroomsDoor_Open_05", "EXSecretBackroomsDoor_Open_04", "EXSecretBackroomsDoor_Open_03", "EXSecretBackroomsDoor_Open_02", "EXSecretBackroomsDoor_Open_01", "EXSecretBackroomsDoor_Open_00" }; private static readonly List m_EXLockUnlockSprites = new List { "west_biglock_open_001", "west_biglock_open_002", "west_biglock_open_003", "west_biglock_open_004", "west_biglock_open_005", "west_biglock_open_006", "west_biglock_open_007", "west_biglock_open_008", "west_biglock_open_009", "west_biglock_open_010", "west_biglock_open_011", "west_biglock_open_012", "west_biglock_open_013" }; public static void InitPrefabs(AssetBundle expandSharedAssets1) { //IL_0292: Unknown result type (might be due to invalid IL or missing references) //IL_029f: Unknown result type (might be due to invalid IL or missing references) //IL_02c2: Unknown result type (might be due to invalid IL or missing references) //IL_02d0: Unknown result type (might be due to invalid IL or missing references) //IL_02f3: Unknown result type (might be due to invalid IL or missing references) //IL_0301: Unknown result type (might be due to invalid IL or missing references) //IL_0608: Unknown result type (might be due to invalid IL or missing references) //IL_0615: Unknown result type (might be due to invalid IL or missing references) //IL_0638: Unknown result type (might be due to invalid IL or missing references) //IL_0646: Unknown result type (might be due to invalid IL or missing references) //IL_0669: Unknown result type (might be due to invalid IL or missing references) //IL_0677: Unknown result type (might be due to invalid IL or missing references) //IL_084b: Unknown result type (might be due to invalid IL or missing references) //IL_0858: Unknown result type (might be due to invalid IL or missing references) //IL_087b: Unknown result type (might be due to invalid IL or missing references) //IL_0889: Unknown result type (might be due to invalid IL or missing references) //IL_08ac: Unknown result type (might be due to invalid IL or missing references) //IL_08ba: Unknown result type (might be due to invalid IL or missing references) //IL_0969: Unknown result type (might be due to invalid IL or missing references) //IL_096e: Unknown result type (might be due to invalid IL or missing references) //IL_0b6f: Unknown result type (might be due to invalid IL or missing references) //IL_0b7c: Unknown result type (might be due to invalid IL or missing references) //IL_0b9f: Unknown result type (might be due to invalid IL or missing references) //IL_0bad: Unknown result type (might be due to invalid IL or missing references) //IL_0bd0: Unknown result type (might be due to invalid IL or missing references) //IL_0bde: Unknown result type (might be due to invalid IL or missing references) //IL_0d97: Unknown result type (might be due to invalid IL or missing references) //IL_0da4: Unknown result type (might be due to invalid IL or missing references) //IL_0dc7: Unknown result type (might be due to invalid IL or missing references) //IL_0dd5: Unknown result type (might be due to invalid IL or missing references) //IL_0df8: Unknown result type (might be due to invalid IL or missing references) //IL_0e06: Unknown result type (might be due to invalid IL or missing references) EXSecretDoorAnimation = expandSharedAssets1.LoadAsset("EX_SecretDoor_Animation"); tk2dSpriteAnimation val = EXSecretDoorAnimation.AddComponent(); ExpandUtility.AddAnimation(val, ExpandPrefabs.EXSecretDoorCollection.GetComponent(), m_DoorOpenSprites, "door_open", (WrapMode)2, 10); ExpandUtility.AddAnimation(val, ExpandPrefabs.EXSecretDoorCollection.GetComponent(), m_DoorCloseSprites, "door_close", (WrapMode)2, 10); ExpandUtility.AddAnimation(val, ExpandPrefabs.EXSecretDoorCollection.GetComponent(), m_DoorOpenBackroomsSprites, "backrooms_door_open", (WrapMode)2, 10); ExpandUtility.AddAnimation(val, ExpandPrefabs.EXSecretDoorCollection.GetComponent(), m_DoorCloseBackroomsSprites, "backrooms_door_close", (WrapMode)2, 10); EXSecretDoorMinimapIcon = expandSharedAssets1.LoadAsset("EXSecretDoor_MinimapIcon"); SpriteSerializer.AddSpriteToObject(EXSecretDoorMinimapIcon, ExpandPrefabs.EXSecretDoorCollection, "EXSecretDoor_MinimapIcon", (PerpendicularState)0); EXSecretBackroomsDoorMinimapIcon = expandSharedAssets1.LoadAsset("EXSecretBackroomsDoor_MinimapIcon"); SpriteSerializer.AddSpriteToObject(EXSecretBackroomsDoorMinimapIcon, ExpandPrefabs.EXSecretDoorCollection, "EXSecretBackroomsDoor_MinimapIcon", (PerpendicularState)0); EXSecretDoor_Hollow = expandSharedAssets1.LoadAsset("EX_Secret_Door_Hollow"); GameObject gameObject = ((Component)EXSecretDoor_Hollow.transform.Find("FrameTop")).gameObject; GameObject gameObject2 = ((Component)EXSecretDoor_Hollow.transform.Find("FrameBottom")).gameObject; GameObject gameObject3 = ((Component)EXSecretDoor_Hollow.transform.Find("Background")).gameObject; GameObject gameObject4 = ((Component)EXSecretDoor_Hollow.transform.Find("Light")).gameObject; GameObject gameObject5 = ((Component)EXSecretDoor_Hollow.transform.Find("Lock")).gameObject; tk2dSprite val2 = SpriteSerializer.AddSpriteToObject(EXSecretDoor_Hollow, ExpandPrefabs.EXSecretDoorCollection, "EXSecretDoor_Open_00", (PerpendicularState)0); tk2dSprite val3 = SpriteSerializer.AddSpriteToObject(gameObject, ExpandPrefabs.EXSecretDoorCollection, "EXSecretDoor_Frame_Top", (PerpendicularState)0); tk2dSprite val4 = SpriteSerializer.AddSpriteToObject(gameObject2, ExpandPrefabs.EXSecretDoorCollection, "EXSecretDoor_Frame_Bottom", (PerpendicularState)0); tk2dSprite val5 = SpriteSerializer.AddSpriteToObject(gameObject3, ExpandPrefabs.EXSecretDoorCollection, "EXSecretDoor_Background", (PerpendicularState)0); tk2dSprite obj = SpriteSerializer.AddSpriteToObject(gameObject4, ExpandPrefabs.EXSecretDoorCollection, "EXSecretDoor_Light_Red", (PerpendicularState)0); ((tk2dBaseSprite)val3).HeightOffGround = 3f; ((tk2dBaseSprite)val4).HeightOffGround = -0.5f; ((tk2dBaseSprite)val2).HeightOffGround = -1.5f; ((tk2dBaseSprite)val5).HeightOffGround = -2f; ((tk2dBaseSprite)obj).HeightOffGround = 3.5f; ExpandUtility.GenerateSpriteAnimator(EXSecretDoor_Hollow, val, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: false, IsFrameBlendedAnimation: false, 0f, 10f); ExpandUtility.GenerateOrAddToRigidBody(EXSecretDoor_Hollow, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: false, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 64), (IntVector2?)new IntVector2(16, 0)); ExpandUtility.GenerateOrAddToRigidBody(EXSecretDoor_Hollow, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: false, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 32), (IntVector2?)new IntVector2(16, 14)); ExpandUtility.GenerateOrAddToRigidBody(EXSecretDoor_Hollow, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: false, CanBePushed: false, RecheckTriggers: false, IsTrigger: true, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 32), (IntVector2?)new IntVector2(16, 12)); ExpandSecretDoorPlacable expandSecretDoorPlacable = EXSecretDoor_Hollow.AddComponent(); expandSecretDoorPlacable.DoorTopBorderObject = gameObject; expandSecretDoorPlacable.DoorBottomBorderObject = gameObject2; expandSecretDoorPlacable.DoorBackgroundObject = gameObject3; expandSecretDoorPlacable.DoorLightObject = gameObject4; tk2dSprite val6 = SpriteSerializer.AddSpriteToObject(gameObject5, ExpandPrefabs.EXSecretDoorCollection, "west_biglock_001", (PerpendicularState)0); tk2dSpriteAnimator obj2 = ExpandUtility.GenerateSpriteAnimator(gameObject5, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true, IsFrameBlendedAnimation: false, 0f, 10f); ExpandUtility.AddAnimation(obj2, ExpandPrefabs.EXSecretDoorCollection.GetComponent(), new List { "west_biglock_001" }, "west_biglock_idle", (WrapMode)2, 10, 0, 1f, 2f); ExpandUtility.AddAnimation(obj2, ExpandPrefabs.EXSecretDoorCollection.GetComponent(), m_EXLockUnlockSprites, "west_biglock_unlock", (WrapMode)2, 10, 0, 1f, 2f); obj2.DefaultClipId = 0; obj2.Library.clips[1].frames[0].triggerEvent = true; obj2.Library.clips[1].frames[0].eventAudio = "Play_OBJ_chest_unlock_01"; ((tk2dBaseSprite)val6).HeightOffGround = -0.25f; ExpandInteractableLock expandInteractableLock = gameObject5.AddComponent(); expandInteractableLock.Suppress = false; expandInteractableLock.lockMode = ExpandInteractableLock.InteractableLockMode.CUSTOMKEY; expandInteractableLock.KeyItemID = ExpandKeyBulletPickup.OldKeyID; expandInteractableLock.IdleAnimName = "west_lock_idle"; expandInteractableLock.UnlockAnimName = "west_biglock_unlock"; expandInteractableLock.NoKeyAnimName = string.Empty; expandInteractableLock.SpitAnimName = string.Empty; expandInteractableLock.BustedAnimName = string.Empty; expandSecretDoorPlacable.EXLock = expandInteractableLock; GameObjectExtensions.SetLayerRecursively(EXSecretDoor_Hollow, LayerMask.NameToLayer("FG_Critical")); expandSecretDoorPlacable.UsesEXLock = true; EXSecretDoor_Hollow_Unlocked = expandSharedAssets1.LoadAsset("EX_Secret_Door_Hollow_Unlocked"); GameObject gameObject6 = ((Component)EXSecretDoor_Hollow_Unlocked.transform.Find("FrameTop")).gameObject; GameObject gameObject7 = ((Component)EXSecretDoor_Hollow_Unlocked.transform.Find("FrameBottom")).gameObject; GameObject gameObject8 = ((Component)EXSecretDoor_Hollow_Unlocked.transform.Find("Background")).gameObject; GameObject gameObject9 = ((Component)EXSecretDoor_Hollow_Unlocked.transform.Find("Light")).gameObject; tk2dSprite val7 = SpriteSerializer.AddSpriteToObject(EXSecretDoor_Hollow_Unlocked, ExpandPrefabs.EXSecretDoorCollection, "EXSecretDoor_Open_00", (PerpendicularState)0); tk2dSprite val8 = SpriteSerializer.AddSpriteToObject(gameObject6, ExpandPrefabs.EXSecretDoorCollection, "EXSecretDoor_Frame_Top", (PerpendicularState)0); tk2dSprite val9 = SpriteSerializer.AddSpriteToObject(gameObject7, ExpandPrefabs.EXSecretDoorCollection, "EXSecretDoor_Frame_Bottom", (PerpendicularState)0); tk2dSprite val10 = SpriteSerializer.AddSpriteToObject(gameObject8, ExpandPrefabs.EXSecretDoorCollection, "EXSecretDoor_Background", (PerpendicularState)0); tk2dSprite obj3 = SpriteSerializer.AddSpriteToObject(gameObject9, ExpandPrefabs.EXSecretDoorCollection, "EXSecretDoor_Light_Red", (PerpendicularState)0); ((tk2dBaseSprite)val8).HeightOffGround = 3f; ((tk2dBaseSprite)val9).HeightOffGround = -0.5f; ((tk2dBaseSprite)val7).HeightOffGround = -1.5f; ((tk2dBaseSprite)val10).HeightOffGround = -2f; ((tk2dBaseSprite)obj3).HeightOffGround = 3.5f; ExpandUtility.GenerateSpriteAnimator(EXSecretDoor_Hollow_Unlocked, val, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: false, IsFrameBlendedAnimation: false, 0f, 10f); ExpandUtility.GenerateOrAddToRigidBody(EXSecretDoor_Hollow_Unlocked, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: false, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 64), (IntVector2?)new IntVector2(16, 0)); ExpandUtility.GenerateOrAddToRigidBody(EXSecretDoor_Hollow_Unlocked, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: false, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 32), (IntVector2?)new IntVector2(16, 14)); ExpandUtility.GenerateOrAddToRigidBody(EXSecretDoor_Hollow_Unlocked, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: false, CanBePushed: false, RecheckTriggers: false, IsTrigger: true, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 32), (IntVector2?)new IntVector2(16, 12)); ExpandSecretDoorPlacable expandSecretDoorPlacable2 = EXSecretDoor_Hollow_Unlocked.AddComponent(); expandSecretDoorPlacable2.DoorTopBorderObject = gameObject6; expandSecretDoorPlacable2.DoorBottomBorderObject = gameObject7; expandSecretDoorPlacable2.DoorBackgroundObject = gameObject8; expandSecretDoorPlacable2.DoorLightObject = gameObject9; GameObjectExtensions.SetLayerRecursively(EXSecretDoor_Hollow_Unlocked, LayerMask.NameToLayer("FG_Critical")); EXSecretDoor = expandSharedAssets1.LoadAsset("EX_Secret_Door"); GameObject gameObject10 = ((Component)EXSecretDoor.transform.Find("FrameTop")).gameObject; GameObject gameObject11 = ((Component)EXSecretDoor.transform.Find("FrameBottom")).gameObject; GameObject gameObject12 = ((Component)EXSecretDoor.transform.Find("Background")).gameObject; GameObject gameObject13 = ((Component)EXSecretDoor.transform.Find("Light")).gameObject; GameObject gameObject14 = ((Component)EXSecretDoor.transform.Find("Lock")).gameObject; tk2dSprite val11 = SpriteSerializer.AddSpriteToObject(EXSecretDoor, ExpandPrefabs.EXSecretDoorCollection, "EXSecretDoor_Open_00", (PerpendicularState)0); tk2dSprite val12 = SpriteSerializer.AddSpriteToObject(gameObject10, ExpandPrefabs.EXSecretDoorCollection, "EXSecretDoor_Frame_NoDecal_Top", (PerpendicularState)0); tk2dSprite val13 = SpriteSerializer.AddSpriteToObject(gameObject11, ExpandPrefabs.EXSecretDoorCollection, "EXSecretDoor_Frame_Bottom", (PerpendicularState)0); tk2dSprite val14 = SpriteSerializer.AddSpriteToObject(gameObject12, ExpandPrefabs.EXSecretDoorCollection, "EXSecretDoor_Background", (PerpendicularState)0); tk2dSprite obj4 = SpriteSerializer.AddSpriteToObject(gameObject13, ExpandPrefabs.EXSecretDoorCollection, "EXSecretDoor_Light_Red", (PerpendicularState)0); ((tk2dBaseSprite)val12).HeightOffGround = 3f; ((tk2dBaseSprite)val13).HeightOffGround = -0.5f; ((tk2dBaseSprite)val11).HeightOffGround = -1.5f; ((tk2dBaseSprite)val14).HeightOffGround = -2f; ((tk2dBaseSprite)obj4).HeightOffGround = 3.5f; ExpandUtility.GenerateSpriteAnimator(EXSecretDoor, val, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: false, IsFrameBlendedAnimation: false, 0f, 10f); ExpandUtility.GenerateOrAddToRigidBody(EXSecretDoor, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: false, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 64), (IntVector2?)new IntVector2(16, 0)); ExpandUtility.GenerateOrAddToRigidBody(EXSecretDoor, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: false, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 32), (IntVector2?)new IntVector2(16, 14)); ExpandUtility.GenerateOrAddToRigidBody(EXSecretDoor, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: false, CanBePushed: false, RecheckTriggers: false, IsTrigger: true, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 32), (IntVector2?)new IntVector2(16, 12)); ExpandSecretDoorPlacable expandSecretDoorPlacable3 = EXSecretDoor.AddComponent(); expandSecretDoorPlacable3.DoorTopBorderObject = gameObject10; expandSecretDoorPlacable3.DoorBottomBorderObject = gameObject11; expandSecretDoorPlacable3.DoorBackgroundObject = gameObject12; expandSecretDoorPlacable3.DoorLightObject = gameObject13; GameObject gameObject15 = ((Component)ExpandObjectDatabase.GungeonSewersExit.GetComponent().WorldLocks[0]).gameObject; tk2dSprite val15 = gameObject14.AddComponent(); ExpandUtility.DuplicateSprite(val15, gameObject15.GetComponent()); ExpandUtility.DuplicateSpriteAnimator(gameObject14, gameObject15.GetComponent()); ((tk2dBaseSprite)val15).HeightOffGround = 1.7f; InteractableLock val16 = gameObject14.AddComponent(); val16.Suppress = gameObject15.GetComponent().Suppress; val16.lockMode = gameObject15.GetComponent().lockMode; val16.JailCellKeyId = gameObject15.GetComponent().JailCellKeyId; val16.IdleAnimName = gameObject15.GetComponent().IdleAnimName; val16.UnlockAnimName = gameObject15.GetComponent().UnlockAnimName; val16.NoKeyAnimName = gameObject15.GetComponent().NoKeyAnimName; val16.SpitAnimName = gameObject15.GetComponent().SpitAnimName; val16.BustedAnimName = gameObject15.GetComponent().BustedAnimName; expandSecretDoorPlacable3.Lock = val16; GameObjectExtensions.SetLayerRecursively(EXSecretDoor, LayerMask.NameToLayer("FG_Critical")); gameObject15 = null; EXSecretDoor_Unlocked = expandSharedAssets1.LoadAsset("EX_Secret_Door_Unlocked"); GameObject gameObject16 = ((Component)EXSecretDoor_Unlocked.transform.Find("FrameTop")).gameObject; GameObject gameObject17 = ((Component)EXSecretDoor_Unlocked.transform.Find("FrameBottom")).gameObject; GameObject gameObject18 = ((Component)EXSecretDoor_Unlocked.transform.Find("Background")).gameObject; GameObject gameObject19 = ((Component)EXSecretDoor_Unlocked.transform.Find("Light")).gameObject; tk2dSprite val17 = SpriteSerializer.AddSpriteToObject(EXSecretDoor_Unlocked, ExpandPrefabs.EXSecretDoorCollection, "EXSecretDoor_Open_00", (PerpendicularState)0); tk2dSprite val18 = SpriteSerializer.AddSpriteToObject(gameObject16, ExpandPrefabs.EXSecretDoorCollection, "EXSecretDoor_Frame_NoDecal_Top", (PerpendicularState)0); tk2dSprite val19 = SpriteSerializer.AddSpriteToObject(gameObject17, ExpandPrefabs.EXSecretDoorCollection, "EXSecretDoor_Frame_Bottom", (PerpendicularState)0); tk2dSprite val20 = SpriteSerializer.AddSpriteToObject(gameObject18, ExpandPrefabs.EXSecretDoorCollection, "EXSecretDoor_Background", (PerpendicularState)0); tk2dSprite obj5 = SpriteSerializer.AddSpriteToObject(gameObject19, ExpandPrefabs.EXSecretDoorCollection, "EXSecretDoor_Light_Red", (PerpendicularState)0); ((tk2dBaseSprite)val18).HeightOffGround = 3f; ((tk2dBaseSprite)val19).HeightOffGround = -0.5f; ((tk2dBaseSprite)val17).HeightOffGround = -1.5f; ((tk2dBaseSprite)val20).HeightOffGround = -2f; ((tk2dBaseSprite)obj5).HeightOffGround = 3.5f; ExpandUtility.GenerateSpriteAnimator(EXSecretDoor_Unlocked, val, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: false, IsFrameBlendedAnimation: false, 0f, 10f); ExpandUtility.GenerateOrAddToRigidBody(EXSecretDoor_Unlocked, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: false, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 64), (IntVector2?)new IntVector2(16, 0)); ExpandUtility.GenerateOrAddToRigidBody(EXSecretDoor_Unlocked, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: false, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 32), (IntVector2?)new IntVector2(16, 14)); ExpandUtility.GenerateOrAddToRigidBody(EXSecretDoor_Unlocked, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: false, CanBePushed: false, RecheckTriggers: false, IsTrigger: true, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 32), (IntVector2?)new IntVector2(16, 12)); ExpandSecretDoorPlacable expandSecretDoorPlacable4 = EXSecretDoor_Unlocked.AddComponent(); expandSecretDoorPlacable4.DoorTopBorderObject = gameObject16; expandSecretDoorPlacable4.DoorBottomBorderObject = gameObject17; expandSecretDoorPlacable4.DoorBackgroundObject = gameObject18; expandSecretDoorPlacable4.DoorLightObject = gameObject19; GameObjectExtensions.SetLayerRecursively(EXSecretDoor_Unlocked, LayerMask.NameToLayer("FG_Critical")); EXSecretBackroomsDoor = expandSharedAssets1.LoadAsset("EX_Secret_Door_Backrooms"); GameObject gameObject20 = ((Component)EXSecretBackroomsDoor.transform.Find("FrameTop")).gameObject; GameObject gameObject21 = ((Component)EXSecretBackroomsDoor.transform.Find("FrameBottom")).gameObject; GameObject gameObject22 = ((Component)EXSecretBackroomsDoor.transform.Find("Background")).gameObject; GameObject gameObject23 = ((Component)EXSecretBackroomsDoor.transform.Find("Light")).gameObject; tk2dSprite val21 = SpriteSerializer.AddSpriteToObject(EXSecretBackroomsDoor, ExpandPrefabs.EXSecretDoorCollection, "EXSecretBackroomsDoor_Open_00", (PerpendicularState)1); tk2dSprite val22 = SpriteSerializer.AddSpriteToObject(gameObject20, ExpandPrefabs.EXSecretDoorCollection, "EXSecretBackroomsDoor_Frame_Top", (PerpendicularState)1); tk2dSprite val23 = SpriteSerializer.AddSpriteToObject(gameObject21, ExpandPrefabs.EXSecretDoorCollection, "EXSecretBackroomsDoor_Frame_Bottom", (PerpendicularState)1); tk2dSprite val24 = SpriteSerializer.AddSpriteToObject(gameObject22, ExpandPrefabs.EXSecretDoorCollection, "EXSecretBackroomsDoor_Background", (PerpendicularState)1); tk2dSprite obj6 = SpriteSerializer.AddSpriteToObject(gameObject23, ExpandPrefabs.EXSecretDoorCollection, "EXSecretBackroomsDoor_Light_Red", (PerpendicularState)1); ((tk2dBaseSprite)val22).HeightOffGround = -1f; ((tk2dBaseSprite)val23).HeightOffGround = -1f; ((tk2dBaseSprite)val21).HeightOffGround = -1.5f; ((tk2dBaseSprite)val24).HeightOffGround = -2f; ((tk2dBaseSprite)obj6).HeightOffGround = -0.9f; ExpandUtility.GenerateSpriteAnimator(EXSecretBackroomsDoor, val, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: false, IsFrameBlendedAnimation: false, 0f, 10f); ExpandUtility.GenerateOrAddToRigidBody(EXSecretBackroomsDoor, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: false, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 64), (IntVector2?)new IntVector2(16, 0)); ExpandUtility.GenerateOrAddToRigidBody(EXSecretBackroomsDoor, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: false, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 32), (IntVector2?)new IntVector2(16, 14)); ExpandUtility.GenerateOrAddToRigidBody(EXSecretBackroomsDoor, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: false, CanBePushed: false, RecheckTriggers: false, IsTrigger: true, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 32), (IntVector2?)new IntVector2(16, 12)); ExpandSecretDoorPlacable expandSecretDoorPlacable5 = EXSecretBackroomsDoor.AddComponent(); expandSecretDoorPlacable5.DoorTopBorderObject = gameObject20; expandSecretDoorPlacable5.DoorBottomBorderObject = gameObject21; expandSecretDoorPlacable5.DoorBackgroundObject = gameObject22; expandSecretDoorPlacable5.DoorLightObject = gameObject23; expandSecretDoorPlacable5.DoorPanelLight_RedSprite = "EXSecretBackroomsDoor_Light_Red"; expandSecretDoorPlacable5.DoorPanelLight_GreenSprite = "EXSecretBackroomsDoor_Light_Green"; expandSecretDoorPlacable5.DoorSprite_Closed = "EXSecretBackroomsDoor_Open_00"; expandSecretDoorPlacable5.DoorCloseAnimationClip = "backrooms_door_close"; expandSecretDoorPlacable5.DoorOpenAnimationClip = "backrooms_door_open"; expandSecretDoorPlacable5.MinimapIcon = EXSecretBackroomsDoorMinimapIcon; expandSecretDoorPlacable5.IsBackRoomsElevator = true; } } public class ExpandSecretDoorPlacable : DungeonPlaceableBehaviour, IPlaceConfigurable, IPlayerInteractable { public bool ManuallyAssigned; public bool UsesEXLock; public bool IsBackRoomsElevator; [NonSerialized] public bool m_IsRecievingPlayer; [NonSerialized] public bool m_Disabled; [NonSerialized] public bool m_InUse; [NonSerialized] public bool m_WaitingForPlayer; public ExpandInteractableLock EXLock; public InteractableLock Lock; public GameObject MinimapIcon; public GameObject DoorTopBorderObject; public GameObject DoorBottomBorderObject; public GameObject DoorBackgroundObject; public GameObject DoorLightObject; public string DoorPanelLight_RedSprite; public string DoorPanelLight_GreenSprite; public string DoorSprite_Closed; public string DoorCloseAnimationClip; public string DoorOpenAnimationClip; [NonSerialized] public ExpandSecretDoorPlacable m_DestinationDoor; [NonSerialized] public Vector3? m_Destination; [NonSerialized] public PlayerController m_RecievedPlayer; [NonSerialized] private RoomHandler m_parentRoom; [NonSerialized] private bool m_spawnUnlocked; [NonSerialized] private tk2dSprite m_doorLightSprite; private bool m_IsLocked { get { if (m_spawnUnlocked) { return false; } if (!UsesEXLock && Object.op_Implicit((Object)(object)Lock) && (Lock.IsBusted | Lock.IsLocked)) { return true; } if (UsesEXLock && Object.op_Implicit((Object)(object)EXLock) && (EXLock.IsBusted | EXLock.IsLocked)) { return true; } return false; } } public ExpandSecretDoorPlacable() { //IL_0016: Unknown result type (might be due to invalid IL or missing references) base.placeableWidth = 4; base.placeableHeight = 4; base.difficulty = (PlaceableDifficulty)0; base.isPassable = true; DoorPanelLight_RedSprite = "EXSecretDoor_Light_Red"; DoorPanelLight_GreenSprite = "EXSecretDoor_Light_Green"; DoorCloseAnimationClip = "door_close"; DoorOpenAnimationClip = "door_open"; DoorSprite_Closed = "EXSecretDoor_Open_00"; ManuallyAssigned = false; UsesEXLock = false; IsBackRoomsElevator = false; m_IsRecievingPlayer = false; m_Disabled = false; m_InUse = false; m_spawnUnlocked = false; m_WaitingForPlayer = false; } public IEnumerator Start() { while (Dungeon.IsGenerating | GameManager.Instance.IsLoadingLevel) { yield return null; } if (!ManuallyAssigned) { TryFindOtherDoor(); } yield return null; RoomHandler absoluteRoom = Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)this).transform.position); if (IsBackRoomsElevator && absoluteRoom != null) { int childCount = absoluteRoom.hierarchyParent.childCount; if (childCount > 0) { for (int i = 0; i < childCount; i++) { Transform child = absoluteRoom.hierarchyParent.GetChild(i); if (Object.op_Implicit((Object)(object)((child != null) ? ((Component)child).gameObject : null)) && Object.op_Implicit((Object)(object)((Component)child).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)child).gameObject); } } } } yield return null; if (!Object.op_Implicit((Object)(object)m_DestinationDoor) | !m_Destination.HasValue) { ETGModConsole.Log((object)("[ExpandTheGungeon] [" + ((Object)((Component)this).gameObject).name + "] ERROR: Destination Door was not found!"), true); m_Disabled = true; yield break; } if (!Object.op_Implicit((Object)(object)((BraveBehaviour)this).specRigidbody)) { m_Disabled = true; yield break; } if (!m_spawnUnlocked) { if (Object.op_Implicit((Object)(object)Lock)) { m_parentRoom.RegisterInteractable((IPlayerInteractable)(object)Lock); Lock.OnUnlocked = MakeReadyForPlayer; } else if (Object.op_Implicit((Object)(object)EXLock)) { m_parentRoom.RegisterInteractable((IPlayerInteractable)(object)EXLock); EXLock.OnUnlocked = MakeReadyForPlayer; } } if (Object.op_Implicit((Object)(object)MinimapIcon)) { Minimap.Instance.RegisterRoomIcon(m_parentRoom, MinimapIcon, false); } else if (m_spawnUnlocked) { Minimap.Instance.RegisterRoomIcon(m_parentRoom, ExpandPrefabs.exit_room_basic.associatedMinimapIcon, false); } } private void LateUpdate() { if (m_Disabled && !m_InUse) { m_InUse = true; Object.Destroy((Object)(object)this); } else if (!m_InUse && !m_Disabled && m_IsRecievingPlayer && Object.op_Implicit((Object)(object)m_RecievedPlayer)) { m_InUse = true; ((MonoBehaviour)this).StartCoroutine(ReceivePlayer(m_RecievedPlayer)); } } private void TryFindOtherDoor() { //IL_0040: 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) ExpandSecretDoorPlacable[] array = Object.FindObjectsOfType(); if ((array == null) | (array.Length == 0)) { m_Disabled = true; return; } ExpandSecretDoorPlacable[] array2 = array; foreach (ExpandSecretDoorPlacable expandSecretDoorPlacable in array2) { if ((Object)(object)expandSecretDoorPlacable != (Object)(object)this) { m_DestinationDoor = expandSecretDoorPlacable; m_Destination = ((BraveBehaviour)m_DestinationDoor).transform.position + new Vector3(1.25f, 0.6f); return; } } m_Disabled = true; } public void ConfigureOnPlacement(RoomHandler room) { //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_003f: 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_0047: 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_0067: 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_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0095: 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) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: 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_00c9: Unknown result type (might be due to invalid IL or missing references) m_parentRoom = room; if (IsBackRoomsElevator) { RoomHandler parentRoom = m_parentRoom; if (parentRoom == null || parentRoom.area?.PrototypeRoomCategory != (RoomCategory?)8) { IntVector2 val = Vector2Extensions.ToIntVector2(Vector3Extensions.XY(((BraveBehaviour)this).transform.position) + new Vector2(1f, 1f), (VectorConversions)2); IntVector2 val2 = Vector2Extensions.ToIntVector2(((IntVector2)(ref val)).ToVector2(), (VectorConversions)0); IntVector2 val3 = val2 + IntVector2.Right; try { CellData val4 = GameManager.Instance.Dungeon.data[val2]; CellData obj = GameManager.Instance.Dungeon.data[val3]; val4.isSecretRoomCell = true; obj.isSecretRoomCell = true; val4.forceDisallowGoop = true; obj.forceDisallowGoop = true; val4.cellVisualData.preventFloorStamping = true; obj.cellVisualData.preventFloorStamping = true; val4.isWallMimicHideout = true; obj.isWallMimicHideout = true; } catch (Exception ex) { Debug.Log((object)"[DEBUG] Warning: Exception caught during ExpandSecretDoorPlacable.ConfigureOnPlacement!"); Debug.LogException(ex); } } } DoorTopBorderObject.transform.SetParent(room.hierarchyParent, true); DoorBottomBorderObject.transform.SetParent(room.hierarchyParent, true); DoorBackgroundObject.transform.SetParent(room.hierarchyParent, true); if (!Object.op_Implicit((Object)(object)Lock) && !Object.op_Implicit((Object)(object)EXLock)) { m_spawnUnlocked = true; } m_doorLightSprite = DoorLightObject.GetComponent(); ((BraveBehaviour)this).transform.SetParent(((Component)GameManager.Instance.Dungeon).gameObject.transform, true); } public void Interact(PlayerController interactor) { if (!(m_IsLocked | m_WaitingForPlayer) && !m_Disabled && !m_InUse && Object.op_Implicit((Object)(object)interactor) && !m_parentRoom.HasActiveEnemies((ActiveEnemyType)1)) { MakeReadyForPlayer(); } } public string GetAnimationState(PlayerController interactor, out bool shouldBeFlipped) { shouldBeFlipped = false; return string.Empty; } public float GetOverrideMaxDistance() { return -1f; } public float GetDistanceToPoint(Vector2 point) { //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_0047: 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_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: 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_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) if (m_InUse | m_IsRecievingPlayer | m_IsLocked | m_Disabled | m_WaitingForPlayer | m_parentRoom.HasActiveEnemies((ActiveEnemyType)1)) { return 1000f; } Bounds bounds = ((BraveBehaviour)this).sprite.GetBounds(); ((Bounds)(ref bounds)).SetMinMax(((Bounds)(ref bounds)).min + ((BraveBehaviour)this).transform.position, ((Bounds)(ref bounds)).max + ((BraveBehaviour)this).transform.position); float num = Mathf.Max(Mathf.Min(point.x, ((Bounds)(ref bounds)).max.x), ((Bounds)(ref bounds)).min.x); float num2 = Mathf.Max(Mathf.Min(point.y, ((Bounds)(ref bounds)).max.y), ((Bounds)(ref bounds)).min.y); return Mathf.Sqrt((point.x - num) * (point.x - num) + (point.y - num2) * (point.y - num2)); } public void OnEnteredRange(PlayerController interactor) { //IL_0041: Unknown result type (might be due to invalid IL or missing references) if (!(!Object.op_Implicit((Object)(object)this) | m_InUse | m_IsRecievingPlayer | m_WaitingForPlayer | m_IsLocked | m_Disabled)) { SpriteOutlineManager.RemoveOutlineFromSprite((tk2dBaseSprite)(object)m_doorLightSprite, false); SpriteOutlineManager.AddOutlineToSprite((tk2dBaseSprite)(object)m_doorLightSprite, Color.white, 0.1f, 0f, (OutlineType)0); ((tk2dBaseSprite)m_doorLightSprite).UpdateZDepth(); } } public void OnExitRange(PlayerController interactor) { //IL_001b: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)this)) { SpriteOutlineManager.RemoveOutlineFromSprite((tk2dBaseSprite)(object)m_doorLightSprite, false); SpriteOutlineManager.AddOutlineToSprite((tk2dBaseSprite)(object)m_doorLightSprite, Color.black, 0.1f, 0f, (OutlineType)0); ((tk2dBaseSprite)m_doorLightSprite).UpdateZDepth(); } } private void HandleTriggerCollision(SpeculativeRigidbody Rigidbody, SpeculativeRigidbody sourceSpecRigidbody, CollisionData collisionData) { //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Expected O, but got Unknown //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Expected O, but got Unknown if (m_InUse | m_IsLocked | !m_WaitingForPlayer) { return; } PlayerController component = ((Component)Rigidbody).GetComponent(); PlayerController otherPlayer = GameManager.Instance.GetOtherPlayer(component); if (!Object.op_Implicit((Object)(object)component)) { return; } m_InUse = true; if (component.IsDodgeRolling) { component.ForceStopDodgeRoll(); } component.SetInputOverride("Entering Elevator"); ((BraveBehaviour)component).healthHaver.IsVulnerable = false; if (Object.op_Implicit((Object)(object)otherPlayer)) { if (otherPlayer.IsDodgeRolling) { otherPlayer.ForceStopDodgeRoll(); } otherPlayer.SetInputOverride("Entering Elevator"); ((BraveBehaviour)otherPlayer).healthHaver.IsVulnerable = false; } if (Object.op_Implicit((Object)(object)m_doorLightSprite)) { ((tk2dBaseSprite)m_doorLightSprite).SetSprite(DoorPanelLight_RedSprite); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).sprite)) { ((BraveBehaviour)this).sprite.HeightOffGround = 3f; ((BraveBehaviour)this).sprite.UpdateZDepth(); } ((BraveBehaviour)this).specRigidbody.OnTriggerCollision = (OnTriggerDelegate)Delegate.Remove((Delegate?)(object)((BraveBehaviour)this).specRigidbody.OnTriggerCollision, (Delegate?)new OnTriggerDelegate(HandleTriggerCollision)); ((MonoBehaviour)this).StartCoroutine(SendPlayer(component)); } private void MakeReadyForPlayer() { //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Expected O, but got Unknown //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Expected O, but got Unknown if (!m_parentRoom.HasActiveEnemies((ActiveEnemyType)1)) { m_WaitingForPlayer = true; ((BraveBehaviour)this).specRigidbody.OnTriggerCollision = (OnTriggerDelegate)Delegate.Combine((Delegate?)(object)((BraveBehaviour)this).specRigidbody.OnTriggerCollision, (Delegate?)new OnTriggerDelegate(HandleTriggerCollision)); if (Object.op_Implicit((Object)(object)m_doorLightSprite)) { ((tk2dBaseSprite)m_doorLightSprite).SetSprite(DoorPanelLight_GreenSprite); } AkSoundEngine.PostEvent("Play_OBJ_cardoor_open_01", ((Component)this).gameObject); ((MonoBehaviour)this).StartCoroutine(HandleOpen()); } } public void Reset() { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Expected O, but got Unknown //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Expected O, but got Unknown ((BraveBehaviour)this).specRigidbody.OnTriggerCollision = (OnTriggerDelegate)Delegate.Remove((Delegate?)(object)((BraveBehaviour)this).specRigidbody.OnTriggerCollision, (Delegate?)new OnTriggerDelegate(HandleTriggerCollision)); m_WaitingForPlayer = false; } private IEnumerator HandleOpen() { if (UsesEXLock && Object.op_Implicit((Object)(object)EXLock)) { while (((Component)EXLock).gameObject.activeSelf) { yield return null; } } else if (Object.op_Implicit((Object)(object)Lock)) { while (((Component)Lock).gameObject.activeSelf) { yield return null; } } if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).spriteAnimator)) { ((BraveBehaviour)this).spriteAnimator.Play(DoorOpenAnimationClip); while (((BraveBehaviour)this).spriteAnimator.IsPlaying(DoorOpenAnimationClip)) { yield return null; } } ((BraveBehaviour)this).specRigidbody.PixelColliders[0].Enabled = false; ((BraveBehaviour)this).sprite.HeightOffGround = -1.5f; ((BraveBehaviour)this).sprite.UpdateZDepth(); } private IEnumerator SendPlayer(PlayerController player) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).spriteAnimator)) { AkSoundEngine.PostEvent("Play_OBJ_cardoor_close_01", ((Component)this).gameObject); ((BraveBehaviour)this).spriteAnimator.Play(DoorCloseAnimationClip); while (((BraveBehaviour)this).spriteAnimator.IsPlaying(DoorCloseAnimationClip)) { yield return null; } } m_WaitingForPlayer = false; if (m_DestinationDoor.m_WaitingForPlayer) { m_DestinationDoor.Reset(); } Pixelator.Instance.FadeToBlack(0.25f, false, 0f); yield return (object)new WaitForSeconds(0.35f); player.WarpToPointAndBringCoopPartner(Vector2.op_Implicit(m_Destination.Value), false, true); if (!((Behaviour)m_DestinationDoor).enabled) { ((Behaviour)m_DestinationDoor).enabled = true; } m_DestinationDoor.m_RecievedPlayer = player; m_DestinationDoor.m_IsRecievingPlayer = true; ((BraveBehaviour)this).specRigidbody.PixelColliders[0].Enabled = true; if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).sprite)) { ((BraveBehaviour)this).sprite.HeightOffGround = -1.5f; ((BraveBehaviour)this).sprite.UpdateZDepth(); } m_InUse = false; } private IEnumerator ReceivePlayer(PlayerController player) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).sprite)) { ((BraveBehaviour)this).sprite.HeightOffGround = 3f; ((BraveBehaviour)this).sprite.UpdateZDepth(); } PlayerController otherPlayer = GameManager.Instance.GetOtherPlayer(player); yield return null; if (Object.op_Implicit((Object)(object)otherPlayer)) { otherPlayer.forceAimPoint = Vector2.down; otherPlayer.ForceStaticFaceDirection(Vector2.down); } player.forceAimPoint = Vector2.down; player.ForceStaticFaceDirection(Vector2.down); if (Object.op_Implicit((Object)(object)m_doorLightSprite)) { ((tk2dBaseSprite)m_doorLightSprite).SetSprite(DoorPanelLight_RedSprite); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).sprite)) { ((BraveBehaviour)this).sprite.SetSprite(DoorSprite_Closed); } if (!((BraveBehaviour)this).specRigidbody.PixelColliders[0].Enabled) { ((BraveBehaviour)this).specRigidbody.PixelColliders[0].Enabled = true; } yield return (object)new WaitForSeconds(0.3f); Pixelator.Instance.FadeToBlack(0.25f, true, 0f); yield return (object)new WaitForSeconds(0.35f); if (m_IsLocked && Object.op_Implicit((Object)(object)Lock)) { Lock.OnUnlocked = null; Lock.ForceUnlock(); while (Lock.IsLocked) { yield return null; } } if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).spriteAnimator)) { AkSoundEngine.PostEvent("Play_OBJ_cardoor_open_01", ((Component)this).gameObject); ((BraveBehaviour)this).spriteAnimator.Play(DoorOpenAnimationClip); while (((BraveBehaviour)this).spriteAnimator.IsPlaying(DoorOpenAnimationClip)) { yield return null; } } AkSoundEngine.PostEvent("Play_EX_ElevatorBell_01", ((Component)this).gameObject); if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).sprite)) { ((BraveBehaviour)this).sprite.HeightOffGround = -1.5f; ((BraveBehaviour)this).sprite.UpdateZDepth(); } yield return (object)new WaitForSeconds(0.1f); player.ForceMoveInDirectionUntilThreshold(Vector2.down, ((GameActor)player).CenterPosition.y - 1.5f, 0f, 0.6f, new List { ((BraveBehaviour)this).specRigidbody }); if (Object.op_Implicit((Object)(object)otherPlayer)) { otherPlayer.ForceMoveInDirectionUntilThreshold(Vector2.down, ((GameActor)GameManager.Instance.GetOtherPlayer(player)).CenterPosition.y - 1.5f, 0f, 0.6f, new List { ((BraveBehaviour)this).specRigidbody }); } yield return (object)new WaitForSeconds(0.6f); if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).spriteAnimator)) { AkSoundEngine.PostEvent("Play_OBJ_cardoor_close_01", ((Component)this).gameObject); ((BraveBehaviour)this).spriteAnimator.Play(DoorCloseAnimationClip); while (((BraveBehaviour)this).spriteAnimator.IsPlaying(DoorCloseAnimationClip)) { yield return null; } } if (Object.op_Implicit((Object)(object)m_doorLightSprite)) { ((tk2dBaseSprite)m_doorLightSprite).SetSprite(DoorPanelLight_GreenSprite); } player.forceAimPoint = null; player.ClearAllInputOverrides(); ((BraveBehaviour)player).healthHaver.IsVulnerable = true; if (Object.op_Implicit((Object)(object)otherPlayer)) { ((BraveBehaviour)otherPlayer).healthHaver.IsVulnerable = true; otherPlayer.forceAimPoint = null; otherPlayer.ClearAllInputOverrides(); } m_IsRecievingPlayer = false; m_InUse = false; } protected override void OnDestroy() { ((DungeonPlaceableBehaviour)this).OnDestroy(); } } public enum WestBros { Angel, Nome, Tuc } public class ExpandWesternBrosPrefabBuilder { public static GameObject WestBrosAngelPrefab; public static GameObject WestBrosNomePrefab; public static GameObject WestBrosTucPrefab; public static GameObject WestBrosAngelHatPrefab; public static GameObject WestBrosNomeHatPrefab; public static GameObject WestBrosTucHatPrefab; public static GameObject WestBrosHandPrefab; public static string WestBrosAngelGUID; public static string WestBrosNomeGUID; public static string WestBrosTucGUID; public static PickupObject WestBrosGun; public static tk2dSpriteCollectionData Collection; public static tk2dSpriteAnimation Animation; public static DebrisObject ShadesDebris; public static void BuildWestBrosBossPrefabs(AssetBundle assetBundle) { WestBrosGun = PickupObjectDatabase.GetById(752); Collection = ((tk2dBaseSprite)((Component)WestBrosGun).gameObject.GetComponent()).Collection; Animation = ((Component)WestBrosGun).gameObject.GetComponent().Library; ShadesDebris = ((Component)ExpandEnemyDatabase.GetOfficialEnemyByGuid("c00390483f394a849c36143eb878998f")).GetComponentInChildren().debrisSources[0]; SetupHand(assetBundle, out WestBrosHandPrefab, ExpandEnemyDatabase.WestBrosCollection.GetComponent()); BuildWestBrosHatPrefab(assetBundle, out WestBrosAngelHatPrefab, WestBros.Angel, Collection, ShadesDebris); BuildWestBrosHatPrefab(assetBundle, out WestBrosNomeHatPrefab, WestBros.Nome, Collection, ShadesDebris); BuildWestBrosHatPrefab(assetBundle, out WestBrosTucHatPrefab, WestBros.Tuc, Collection, ShadesDebris); BuildWestBrosBossPrefab(assetBundle, out WestBrosAngelPrefab, WestBros.Angel, isSmiley: false, Collection, Animation); BuildWestBrosBossPrefab(assetBundle, out WestBrosNomePrefab, WestBros.Nome, isSmiley: true, Collection, Animation, keepIntroDoer: true); BuildWestBrosBossPrefab(assetBundle, out WestBrosTucPrefab, WestBros.Tuc, isSmiley: true, Collection, Animation); } private static void SetupHand(AssetBundle assetBundle, out GameObject handPrefab, tk2dSpriteCollectionData collection) { //IL_000d: 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_0018: 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) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) tk2dSpriteDefinition spriteDefinition = collection.GetSpriteDefinition("Western_Bros_Hand"); spriteDefinition.boundsDataCenter = Vector3.zero; spriteDefinition.untrimmedBoundsDataCenter = Vector3.zero; float num = 0.2f; spriteDefinition.boundsDataExtents = new Vector3(num * 2f, num * 2f, 0f); spriteDefinition.untrimmedBoundsDataExtents = new Vector3(num * 2f, num * 2f, 0f); spriteDefinition.position0 = new Vector3(0f - num, 0f - num, 0f); spriteDefinition.position1 = new Vector3(num, 0f - num, 0f); spriteDefinition.position2 = new Vector3(0f - num, num, 0f); spriteDefinition.position3 = new Vector3(num, num, 0f); handPrefab = assetBundle.LoadAsset("WestBroHandObject"); SpriteSerializer.AddSpriteToObject(handPrefab, ExpandEnemyDatabase.WestBrosCollection, spriteDefinition.name, (PerpendicularState)0); handPrefab.AddComponent(); } private static void BuildWestBrosHatPrefab(AssetBundle assetBundle, out GameObject outObject, WestBros whichBro, tk2dSpriteCollectionData spriteCollection, DebrisObject broDebris) { //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) outObject = assetBundle.LoadAsset($"WestBrosHat_{whichBro}"); string text = null; switch (whichBro) { case WestBros.Angel: text = "hat_angel"; break; case WestBros.Nome: text = "hat_nome"; break; case WestBros.Tuc: text = "hat_tuco"; break; } tk2dSprite obj = outObject.AddComponent(); ((tk2dBaseSprite)obj).SetSprite(spriteCollection, text); ((tk2dBaseSprite)obj).SortingOrder = 0; ExpandUtility.GenerateSpriteAnimator(outObject); DebrisObject obj2 = outObject.AddComponent(); ((EphemeralObject)obj2).Priority = ((EphemeralObject)broDebris).Priority; ExpandUtility.ReflectionShallowCopyFields(obj2, broDebris, BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Public); } public static void Log(object o, bool debug = false) { ETGModConsole.Log((object)((o != null) ? o.ToString() : "null"), debug); } private static void BuildWestBrosBossPrefab(AssetBundle assetBundle, out GameObject outObject, WestBros whichBro, bool isSmiley, tk2dSpriteCollectionData sourceSpriteCollection, tk2dSpriteAnimation sourceAnimations, bool keepIntroDoer = false) { //IL_001c: 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_0268: Unknown result type (might be due to invalid IL or missing references) //IL_0735: Unknown result type (might be due to invalid IL or missing references) //IL_0764: Unknown result type (might be due to invalid IL or missing references) //IL_0778: Unknown result type (might be due to invalid IL or missing references) //IL_077d: Unknown result type (might be due to invalid IL or missing references) //IL_07cc: Unknown result type (might be due to invalid IL or missing references) //IL_0800: Unknown result type (might be due to invalid IL or missing references) //IL_0834: Unknown result type (might be due to invalid IL or missing references) //IL_08c6: Unknown result type (might be due to invalid IL or missing references) //IL_08d5: Unknown result type (might be due to invalid IL or missing references) //IL_08da: Unknown result type (might be due to invalid IL or missing references) //IL_044d: Unknown result type (might be due to invalid IL or missing references) //IL_0454: Expected O, but got Unknown //IL_0497: Unknown result type (might be due to invalid IL or missing references) //IL_0578: Unknown result type (might be due to invalid IL or missing references) //IL_059f: Unknown result type (might be due to invalid IL or missing references) //IL_05c6: Unknown result type (might be due to invalid IL or missing references) //IL_05ed: Unknown result type (might be due to invalid IL or missing references) //IL_0650: Unknown result type (might be due to invalid IL or missing references) //IL_06b0: Unknown result type (might be due to invalid IL or missing references) GameObject gameObject = ((Component)ExpandEnemyDatabase.GetOfficialEnemyByGuid(isSmiley ? "ea40fcc863d34b0088f490f4e57f8913" : "c00390483f394a849c36143eb878998f")).gameObject; outObject = Object.Instantiate(gameObject, Vector3.zero, Quaternion.identity); try { string text = $"West Bros {whichBro}"; outObject.SetActive(false); ((Object)outObject).name = text; AIActor component = outObject.GetComponent(); ((BraveBehaviour)component).healthHaver.overrideBossName = "Western Bros"; component.EnemyId = Random.Range(100000, 999999); ((GameActor)component).ActorName = text; EncounterTrackable component2 = outObject.GetComponent(); switch (whichBro) { case WestBros.Angel: component.EnemyGuid = "275354563e244f558be87fcff4b07f9f"; component2.EncounterGuid = "7d6e1faf682d4402b29535020313f383"; break; case WestBros.Nome: component.EnemyGuid = "3a1a33a905bb4b669e7d798f20674c4c"; component2.EncounterGuid = "78cb8889dc884dd9b3aafe64558d858e"; break; case WestBros.Tuc: component.EnemyGuid = "d2e7ea9ea9a444cebadd3bafa0832cd1"; component2.EncounterGuid = "1df53371ce084dafb46f6bcd5a6c1c5f"; break; } component2.journalData.PrimaryDisplayName = text; component2.journalData.NotificationPanelDescription = text; component2.journalData.AmmonomiconFullEntry = text; BroController component3 = outObject.GetComponent(); ExpandWesternBroController expandWesternBroController = outObject.AddComponent(); expandWesternBroController.enrageAnim = component3.enrageAnim; expandWesternBroController.enrageAnimTime = component3.enrageAnimTime; expandWesternBroController.enrageHealToPercent = component3.enrageHealToPercent; expandWesternBroController.overheadVfx = component3.overheadVfx; expandWesternBroController.postEnrageMoveSpeed = component3.postEnrageMoveSpeed; expandWesternBroController.whichBro = whichBro; expandWesternBroController.postSecondEnrageMoveSpeed = expandWesternBroController.postEnrageMoveSpeed; Object.Destroy((Object)(object)component3); Object.Destroy((Object)(object)outObject.GetComponent()); outObject.AddComponent(); ExpandWesternBroSeekTargetBehavior expandWesternBroSeekTargetBehavior = new ExpandWesternBroSeekTargetBehavior(); MovementBehaviorBase obj = ((BraveBehaviour)component).behaviorSpeculator.MovementBehaviors.First(); BulletBroSeekTargetBehavior val = (BulletBroSeekTargetBehavior)(object)((obj is BulletBroSeekTargetBehavior) ? obj : null); expandWesternBroSeekTargetBehavior.CustomRange = val.CustomRange; expandWesternBroSeekTargetBehavior.PathInterval = val.PathInterval; expandWesternBroSeekTargetBehavior.StopWhenInRange = val.StopWhenInRange; ((BraveBehaviour)component).behaviorSpeculator.MovementBehaviors = new List { (MovementBehaviorBase)(object)expandWesternBroSeekTargetBehavior }; if (isSmiley) { if (!keepIntroDoer) { Object.Destroy((Object)(object)outObject.GetComponent()); Object.Destroy((Object)(object)outObject.GetComponent()); } else { Object.Destroy((Object)(object)outObject.GetComponent()); GenericIntroDoer component4 = outObject.GetComponent(); component4.portraitSlideSettings.bossNameString = "Western Bros"; component4.portraitSlideSettings.bossSubtitleString = "Triple Tap"; component4.portraitSlideSettings.bossQuoteString = string.Empty; component4.portraitSlideSettings.bossArtSprite = (Texture)(object)assetBundle.LoadAsset("WesternBrosBossCard"); component4.triggerType = (TriggerType)10; component4.OnIntroFinished = delegate { }; outObject.AddComponent(); } } GameObject val2 = assetBundle.LoadAsset($"WestBrosAnimations_{whichBro}"); List list = new List(); tk2dSpriteAnimationClip[] clips = sourceAnimations.clips; foreach (tk2dSpriteAnimationClip val3 in clips) { if (val3.name.StartsWith($"{whichBro.ToString().ToLower()}_")) { list.Add(ExpandUtility.DuplicateAnimationClip(val3)); } } List list2 = new List(); foreach (tk2dSpriteAnimationClip item in list) { item.name = item.name.Replace($"{whichBro.ToString().ToLower()}_", string.Empty); item.name = item.name.Replace("dash_front", "dash_forward"); item.name = item.name.Replace("move_front", "move_forward"); if (item.name.EndsWith("_prime")) { item.frames[5].eventAudio = "Play_ENM_bullet_dash_01"; item.frames[5].triggerEvent = true; } else if (item.name.StartsWith("move_")) { item.frames[2].eventAudio = "PLay_FS_ENM"; item.frames[2].triggerEvent = true; } else if (item.name == "anger") { List list3 = item.frames.ToList(); tk2dSpriteAnimationFrame[] frames = item.frames; foreach (tk2dSpriteAnimationFrame source in frames) { tk2dSpriteAnimationFrame val4 = new tk2dSpriteAnimationFrame(); ExpandUtility.ReflectionShallowCopyFields(val4, source, BindingFlags.Instance | BindingFlags.Public); list3.Add(val4); } item.loopStart = item.frames.Length; item.frames = list3.ToArray(); item.wrapMode = (WrapMode)1; item.frames[0].eventAudio = "Play_BOSS_bulletbros_anger_01"; item.frames[0].triggerEvent = true; } else if (item.name == "death_right") { item.name = "die"; tk2dSpriteAnimationClip val5 = ExpandUtility.DuplicateAnimationClip(item); val5.name = "die_front_right"; list2.Add(val5); } else if (item.name == "death_left") { item.name = "die_left"; tk2dSpriteAnimationClip val6 = ExpandUtility.DuplicateAnimationClip(item); val6.name = "die_front_left"; list2.Add(val6); } else if (item.name == "idle_front") { item.name = "idle"; tk2dSpriteAnimationClip val7 = ExpandUtility.DuplicateAnimationClip(item); val7.wrapMode = (WrapMode)2; val7.name = "big_shot"; list2.Add(val7); tk2dSpriteAnimationClip val8 = ExpandUtility.DuplicateAnimationClip(item); val8.wrapMode = (WrapMode)0; val8.name = "charge"; list2.Add(val8); tk2dSpriteAnimationClip val9 = ExpandUtility.DuplicateAnimationClip(item); val9.wrapMode = (WrapMode)2; val9.name = "appear"; list2.Add(val9); tk2dSpriteAnimationClip val10 = ExpandUtility.DuplicateAnimationClip(item); val10.wrapMode = (WrapMode)2; val10.name = "intro2"; list2.Add(val10); val10.frames[0].eventInfo = "guntoggle"; val10.frames[0].triggerEvent = true; } else if (item.name == "summon") { item.name = "whistle"; item.wrapMode = (WrapMode)2; } else if (item.name == "pound") { item.name = "jump_attack"; item.frames[0].eventAudio = "Play_EX_BOSS_westbros_slam_01"; item.frames[0].triggerEvent = true; } else if (item.name == "intro") { item.wrapMode = (WrapMode)2; } } list.AddRange(list2); tk2dSpriteAnimation val11 = val2.AddComponent(); val11.clips = list.ToArray(); outObject.GetComponent().Library = val11; tk2dSprite component5 = outObject.GetComponent(); ((tk2dBaseSprite)component5).SetSprite(sourceSpriteCollection, $"BB_{whichBro.ToString().ToLower()}_idle_front_001"); ((tk2dBaseSprite)component5).PlaceAtPositionByAnchor(new Vector3(0f, 0f), (Anchor)1); outObject.GetComponent().OtherAnimations.RemoveAt(0); Transform obj2 = outObject.transform.Find("shadow"); obj2.localPosition += new Vector3(1.52f, 0.02f, 0f); AIShooter val12 = SetupAIShooter(outObject); val12.handObject = WestBrosHandPrefab.GetComponent(); DebrisObject val13 = null; switch (whichBro) { case WestBros.Angel: val12.gunAttachPoint.position = new Vector3(-1.05f, 0.5f); WestBrosAngelGUID = component.EnemyGuid; val13 = WestBrosAngelHatPrefab.GetComponent(); break; case WestBros.Nome: val12.gunAttachPoint.position = new Vector3(-1.05f, 0.4f); WestBrosNomeGUID = component.EnemyGuid; val13 = WestBrosNomeHatPrefab.GetComponent(); break; case WestBros.Tuc: val12.gunAttachPoint.position = new Vector3(-1.05f, 0.5f); WestBrosTucGUID = component.EnemyGuid; val13 = WestBrosTucHatPrefab.GetComponent(); break; } val12.equippedGunId = WestBrosRevolverGenerator.GetWestBrosRevolverID(whichBro); if (val12.equippedGunId == -1) { ETGModConsole.Log((object)"The West Bros Gun ID should have been set at this point already, but it wasn't. Assigning fallback gun.", false); val12.equippedGunId = (isSmiley ? 35 : 22); } ExplosionDebrisLauncher componentInChildren = outObject.GetComponentInChildren(); componentInChildren.specifyArcDegrees = false; componentInChildren.minShards = 1; componentInChildren.maxShards = 1; componentInChildren.debrisSources = (DebrisObject[])(object)new DebrisObject[1] { val13 }; Transform obj3 = outObject.transform.Find("shoot point"); obj3.position += new Vector3(1.5f, 0f); foreach (PixelCollider pixelCollider in outObject.GetComponent().PixelColliders) { pixelCollider.ManualOffsetX = 32; pixelCollider.Regenerate(outObject.transform, true, true); } ((BraveBehaviour)component).healthHaver.ForceSetCurrentHealth(600f); ((BraveBehaviour)component).healthHaver.SetHealthMaximum(600f, (float?)null, false); ((BraveBehaviour)component).RegenerateCache(); switch (whichBro) { case WestBros.Angel: ExpandEnemyDatabase.AddEnemyToDatabaseAndAmmonomicon(component, component.EnemyGuid, ExpandAmmonomiconDatabase.WestBrosAngel); break; case WestBros.Nome: ExpandEnemyDatabase.AddEnemyToDatabaseAndAmmonomicon(component, component.EnemyGuid, ExpandAmmonomiconDatabase.WestBrosNome); break; case WestBros.Tuc: ExpandEnemyDatabase.AddEnemyToDatabaseAndAmmonomicon(component, component.EnemyGuid, ExpandAmmonomiconDatabase.WestBrosTuc); break; } FakePrefab.MarkAsFakePrefab(outObject); Object.DontDestroyOnLoad((Object)(object)outObject); } catch (Exception ex) { Debug.Log((object)$"Error setting up the western bro {whichBro}!"); Debug.LogException(ex); ExpandLoadingScreen.LoadText[ExpandTheGungeon.LoadStatus.LoadError] = "ERROR: Error building Western Bros!"; ExpandTheGungeon.loadStatus = ExpandTheGungeon.LoadStatus.LoadError; } } private static AIShooter SetupAIShooter(GameObject outObject) { //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) AIShooter component = outObject.GetComponent(); tk2dSprite component2 = outObject.GetComponent(); string text = JsonUtility.ToJson((object)component); GunInventory val = ReflectionHelpers.ReflectGetField(typeof(AIShooter), "m_inventory", component); List list = ReflectionHelpers.ReflectGetField>(typeof(AIShooter), "m_attachedHands", component); foreach (Gun allGun in val.AllGuns) { ((tk2dBaseSprite)component2).DetachRenderer(allGun.GetSprite()); Object.Destroy((Object)(object)((Component)allGun).gameObject); } if (Object.op_Implicit((Object)(object)val.CurrentGun)) { ((tk2dBaseSprite)component2).DetachRenderer(val.CurrentGun.GetSprite()); Object.Destroy((Object)(object)((Component)val.CurrentGun).gameObject); } foreach (PlayerHandController item in list) { Object.Destroy((Object)(object)((Component)item).gameObject); } Object.Destroy((Object)(object)((Component)component.gunAttachPoint).gameObject); Object.Destroy((Object)(object)component); component = outObject.AddComponent(); JsonUtility.FromJsonOverwrite(text, (object)component); component.gunAttachPoint = new GameObject("GunAttachPoint") { layer = 0 }.transform; component.gunAttachPoint.SetParent(outObject.transform); return component; } } public class ExpandCorruptedRoomAmbiencePlacable : DungeonPlaceableBehaviour, IPlaceConfigurable { public string CorruptionFXPlayEvent; public string CorruptionFXStopEvent; public bool StartImmedietely; public bool CameFromCorruptionBomb; public bool GoesAwayEventually; public float FadeTimer; public RoomHandler m_Room; private GameObject m_RoomAmbienceSFX; private GameObject m_ScreenFXObject; private bool m_HasBeenActivated; public ExpandCorruptedRoomAmbiencePlacable() { CorruptionFXPlayEvent = "Play_EX_CorruptionAmbience_01"; CorruptionFXStopEvent = "Stop_EX_CorruptionAmbience_01"; StartImmedietely = false; CameFromCorruptionBomb = false; GoesAwayEventually = false; m_HasBeenActivated = false; FadeTimer = 90f; } public void Start() { } public void Update() { if (!GoesAwayEventually) { return; } FadeTimer -= BraveTime.DeltaTime; if (FadeTimer <= 0f) { if ((Object)(object)m_RoomAmbienceSFX != (Object)null && !CameFromCorruptionBomb) { AkSoundEngine.PostEvent(CorruptionFXStopEvent, m_RoomAmbienceSFX); Object.Destroy((Object)(object)m_RoomAmbienceSFX); } else { AkSoundEngine.PostEvent(CorruptionFXStopEvent, ((Component)this).gameObject); } GoesAwayEventually = false; } } private void HandleBecomeVisible() { //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Expected O, but got Unknown //IL_0050: 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_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) if (!m_HasBeenActivated && m_Room != null) { if (!Object.op_Implicit((Object)(object)m_RoomAmbienceSFX)) { m_RoomAmbienceSFX = new GameObject("RoomCorruptionAmbience_SFX") { layer = 0 }; m_RoomAmbienceSFX.transform.position = Vector2.op_Implicit(m_Room.area.Center); m_RoomAmbienceSFX.transform.parent = m_Room.hierarchyParent; } if (!ExpandLists.InvalidGraphicsModes.Contains(SystemInfo.graphicsDeviceType) && !Object.op_Implicit((Object)(object)m_ScreenFXObject)) { m_ScreenFXObject = Object.Instantiate(ExpandAssets.LoadAsset("EXSecretRoomGlitchFX"), Vector2.op_Implicit(m_Room.area.UnitCenter), Quaternion.identity); m_ScreenFXObject.GetComponent().ParentRoom = m_Room; m_ScreenFXObject.transform.SetParent(((Component)GameManager.Instance.Dungeon).gameObject.transform); } AkSoundEngine.PostEvent(CorruptionFXPlayEvent, m_RoomAmbienceSFX); m_HasBeenActivated = true; } } public void ConfigureOnPlacement(RoomHandler room) { //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Expected O, but got Unknown m_Room = room; if (StartImmedietely && !CameFromCorruptionBomb) { HandleBecomeVisible(); } else if (!CameFromCorruptionBomb) { m_Room.BecameVisible += (OnBecameVisibleEventHandler)delegate { HandleBecomeVisible(); }; } else if (CameFromCorruptionBomb) { AkSoundEngine.PostEvent(CorruptionFXPlayEvent, ((Component)this).gameObject); } } protected override void OnDestroy() { if ((Object)(object)m_RoomAmbienceSFX != (Object)null && !CameFromCorruptionBomb) { AkSoundEngine.PostEvent(CorruptionFXStopEvent, m_RoomAmbienceSFX); Object.Destroy((Object)(object)m_RoomAmbienceSFX); } else { AkSoundEngine.PostEvent(CorruptionFXStopEvent, ((Component)this).gameObject); } ((DungeonPlaceableBehaviour)this).OnDestroy(); } } public class ExpandPrefabs { public static GameObject EXDummyObject; public static GameObject EXItemCollection; public static GameObject EXGunCollection; public static GameObject EXChestCollection; public static GameObject EXTrapCollection; public static GameObject EXJungleCollection; public static GameObject EXParadropCollection; public static GameObject EXLargeMonsterCollection; public static GameObject EXMonsterCollection; public static GameObject EXSecretDoorCollection; public static GameObject EXBootlegRoomCollection; public static GameObject SecretElevatorExitTilesetCollection; public static GameObject EXBalloonCollection; public static GameObject EXPortableElevatorCollection; public static GameObject EXOfficeCollection; public static GameObject EXSpaceCollection; public static GameObject EXFoyerCollection; public static GameObject EXBackroomsCollection; public static GameObject EXFutureCollection; public static GameObject EXHattyHammerCollection; public static GameObject EXPoisbulordCollection; public static Material SpaceFog; public static Material HattyHammerMaterial; public static Material PoisbulordMaterial; public static Material PoisbulordCrawlerMaterial; public static Texture2D BulletManMonochromeTexture; public static Texture2D BulletManUpsideDownTexture; public static Texture2D BacterialGoopWorldTexture; public static GameObject RatTrapdoor; public static PrototypeDungeonRoom shop02; public static PrototypeDungeonRoom fusebombroom01; public static PrototypeDungeonRoom elevator_entrance; public static PrototypeDungeonRoom gungeon_entrance; public static PrototypeDungeonRoom gungeon_entrance_bossrush; public static PrototypeDungeonRoom elevator_maintenance_room; public static PrototypeDungeonRoom test_entrance; public static PrototypeDungeonRoom exit_room_basic; public static PrototypeDungeonRoom boss_foyer; public static PrototypeDungeonRoom gungeon_rewardroom_1; public static PrototypeDungeonRoom paradox_04; public static PrototypeDungeonRoom paradox_04_copy; public static PrototypeDungeonRoom blobulordroom01; public static PrototypeDungeonRoom doublebeholsterroom01; public static PrototypeDungeonRoom bossstatuesroom01; public static PrototypeDungeonRoom oldbulletking_room_01; public static PrototypeDungeonRoom DragunBossFoyerRoom; public static PrototypeDungeonRoom DraGunRoom01; public static PrototypeDungeonRoom DraGunExitRoom; public static PrototypeDungeonRoom DraGunEndTimesRoom; public static PrototypeDungeonRoom BlacksmithShop; public static PrototypeDungeonRoom GatlingGullRoom05; public static PrototypeDungeonRoom letsgetsomeshrines_001; public static PrototypeDungeonRoom shop_special_key_01; public static PrototypeDungeonRoom square_hub; public static PrototypeDungeonRoom subshop_muncher_01; public static PrototypeDungeonRoom black_market; public static PrototypeDungeonRoom gungeon_checkerboard; public static PrototypeDungeonRoom gungeon_normal_fightinaroomwithtonsoftraps; public static PrototypeDungeonRoom gungeon_gauntlet_001; public static PrototypeDungeonRoom ResourcefulRat_LongMinecartRoom_01; public static PrototypeDungeonRoom ResourcefulRat_FirstSecretRoom_01; public static PrototypeDungeonRoom ResourcefulRat_SecondSecretRoom_01; public static PrototypeDungeonRoom ResourcefulRat_Entrance; public static PrototypeDungeonRoom SewersRatExitEoom; public static PrototypeDungeonRoom tiny_entrance; public static PrototypeDungeonRoom tiny_exit; public static PrototypeDungeonRoom reward_room; public static PrototypeDungeonRoom tutorial_minibossroom; public static PrototypeDungeonRoom bossrush_alternate_entrance; public static PrototypeDungeonRoom tutorial_fakeboss; public static PrototypeDungeonRoom big_entrance; public static PrototypeDungeonRoom Hell_Hath_No_Joery_009; public static PrototypeDungeonRoom[] gatlinggull_noTileVisualOverrides; public static PrototypeDungeonRoom[] winchesterrooms; public static PrototypeDungeonRoom[] minibossrooms; public static PrototypeDungeonRoom[] BonusChestRooms; public static GenericRoomTable castle_challengeshrine_roomtable; public static GenericRoomTable catacombs_challengeshrine_roomtable; public static GenericRoomTable forge_challengeshrine_roomtable; public static GenericRoomTable gungeon_challengeshrine_roomtable; public static GenericRoomTable mines_challengeshrine_roomtable; public static GenericRoomTable shop_room_table; public static GenericRoomTable CastleRoomTable; public static GenericRoomTable Gungeon_RoomTable; public static GenericRoomTable SecretRoomTable; public static GenericRoomTable bosstable_02_beholster; public static GenericRoomTable bosstable_01_bulletbros; public static GenericRoomTable bosstable_01_bulletking; public static GenericRoomTable bosstable_01_gatlinggull; public static GenericRoomTable bosstable_02_meduzi; public static GenericRoomTable bosstable_02a_highpriest; public static GenericRoomTable bosstable_03_mineflayer; public static GenericRoomTable bosstable_03_powderskull; public static GenericRoomTable bosstable_03_tank; public static GenericRoomTable bosstable_04_demonwall; public static GenericRoomTable bosstable_04_statues; public static GenericRoomTable blocknerminiboss_table_01; public static GenericRoomTable phantomagunim_table_01; public static GenericRoomTable basic_special_rooms; public static GenericRoomTable winchesterroomtable; public static GenericRoomTable boss_foyertable; public static GenericRoomTable doublebeholstertable; public static GenericRoomTable SewersRoomTable; public static GenericRoomTable AbbeyRoomTable; public static GenericRoomTable MinesRoomTable; public static GenericRoomTable CatacombsRoomTable; public static GenericRoomTable ForgeRoomTable; public static GenericRoomTable BulletHellRoomTable; public static GenericRoomTable CastleGungeonMergedTable; public static GenericRoomTable CustomRoomTable; public static GenericRoomTable CustomRoomTable2; public static GenericRoomTable CustomRoomTableSecretGlitchFloor; public static GenericRoomTable MegaBossRoomTable; public static GenericRoomTable MegaChallengeShrineTable; public static GenericRoomTable MegaMiniBossRoomTable; public static GenericRoomTable basic_special_rooms_noBlackMarket; public static GenericRoomTable bosstable_01_gatlinggull_custom; public static GenericRoomTable AbbeyAblernRoomTable; public static GenericRoomTable JungleRoomTable; public static GenericRoomTable BellyRoomTable; public static GenericRoomTable WestRoomTable; public static GenericRoomTable WestCanyonRoomTable; public static GenericRoomTable WestTinyCanyonRoomTable; public static GenericRoomTable WestInterior1RoomTable; public static GenericRoomTable AbbeyRoomTableForOffice; public static GenericRoomTable BackRoomsRoomTable; public static GenericRoomTable BackRoomsWarpWingTable; public static GenericRoomTable BackRoomsEntranceRoomTable; public static GenericRoomTable FutureRoomTable; public static GenericRoomTable FutureEntranceRoomTable; public static GenericRoomTable FutureFoyerRoomTable; public static WeightedRoom[] OfficeAndUnusedWeightedRooms; public static GenericLootTable Shop_Key_Items_01; public static GenericLootTable BlackSmith_Items_01; public static GenericLootTable Shop_Truck_Items_01; public static GenericLootTable Shop_Curse_Items_01; public static ProceduralFlowModifierData AbbeyFlowModifierData; public static GameObject MetalGearRatPrefab; private static GameObject ResourcefulRatBossPrefab; public static GameObject MimicNPC; public static GameObject RatCorpseNPC; public static GameObject PlayerLostRatNote; public static GameObject MouseTrap1; public static GameObject MouseTrap2; public static GameObject MouseTrap3; public static GameObject EXTrap_Apache; public static GameObject SecretElevatorExitTileset; public static GameObject Teleporter_Gungeon_01; public static GameObject ElevatorMaintanenceRoomIcon; public static GameObject Teleporter_Info_Sign; public static GameObject RewardPedestalPrefab; public static GameObject Minimap_Maintenance_Icon; public static GameObject Arrival; public static GameObject NPCBabyDragunChaos; public static DungeonPlaceable ElevatorDeparture; public static DungeonPlaceable ElevatorArrival; public static DungeonPlaceable TinySecretRoomRewards; public static DungeonPlaceable TinySecretRoomJunkReward; public static DungeonPlaceable RatTrapPlacable; public static DungeonPlaceable CorruptedSecretRoomSpecialItem; public static DungeonPlaceable CorruptedSecretRoomNPCs; public static DungeonPlaceable CorruptedSecretRoomNPCs2; public static DungeonPlaceable Jungle_Doors; public static DungeonPlaceable Jungle_OneWayDoors; public static DungeonPlaceable Belly_Doors; public static DungeonPlaceable West_Doors; public static DungeonPlaceable Office_OneWayDoors; public static DungeonPlaceable Backrooms_OneWayDoors; public static GameObject MetalCubeGuy; public static GameObject SerManuel; public static GameObject SkusketHead; public static GameObject CandleGuy; public static GameObject WallMimic; public static GameObject AK47BulletKin; public static GameObject PirateShotgunKin; public static GameObject PirateShotgunKinHat; public static GameObject PirateBulletKin; public static GameObject PirateBulletKinHat; public static GameObject RatJailDoor; public static GameObject CursedMirror; public static DungeonPlaceableVariant ElevatorArrivalVarientForUnknownTilesets; public static DungeonPlaceableVariant ElevatorArrivalVarientForOffice; public static DungeonPlaceableVariant ElevatorArrivalVarientForJungle; public static DungeonPlaceableVariant ElevatorArrivalVarientForBelly; public static DungeonPlaceableVariant ElevatorArrivalVarientForOldWest; public static DungeonPlaceableVariant ElevatorArrivalVarientForPhobos; public static DungeonPlaceableVariant ElevatorArrivalVarientForSpace; public static DungeonPlaceableVariant ElevatorDepartureVarientForOffice; public static DungeonPlaceableVariant ElevatorDepartureVarientForJungle; public static DungeonPlaceableVariant ElevatorDepartureVarientForBelly; public static DungeonPlaceableVariant ElevatorDepartureVarientForOldWest; public static DungeonPlaceableVariant ElevatorDepartureVarientForPhobos; public static DungeonPlaceableVariant ElevatorDepartureVarientForSpace; public static GameObject ChallengeManagerObject; public static GameObject ChallengeMegaManagerObject; public static FlameTrapChallengeModifier RatsRevengChallenge; public static GameObject Challenge_BlobulinAmmo; public static GameObject Challenge_BooRoom; public static GameObject Challenge_ZoneControl; public static GameObject DoppelgunnerMirror; public static GameObject DoppelgunnerMirrorFX; public static GameObject RoomCorruptionAmbience; public static GameObject EXAlarmMushroom; public static GameObject EXSawBladeTrap_4x4Zone; public static GameObject EXFriendlyForgeHammer; public static GameObject EXFriendlyForgeHammerBullet; public static GameObject EXBootlegRoomObject; public static GameObject EXBootlegRoomDoorTriggers; public static GameObject RickRollChestObject; public static GameObject RickRollAnimationObject; public static GameObject RickRollMusicSwitchObject; public static GameObject SurpriseChestObject; public static GameObject FakePastChest; public static GameObject ExpandThunderstormPlaceable; public static GameObject Door_Horizontal_Jungle; public static GameObject Door_Vertical_Jungle; public static GameObject DoorOneWay_Horizontal_Jungle; public static GameObject DoorOneWay_Vertical_Jungle; public static GameObject Jungle_LargeTree; public static GameObject Jungle_LargeTreeTopFrame; public static GameObject EXJungleTree_MinimapIcon; public static GameObject EXJungleCrest_MinimapIcon; public static GameObject Jungle_ExitLadder; public static GameObject Jungle_ExitLadder_Destination; public static GameObject Jungle_ExitLadder_Hole; public static GameObject Jungle_BlobLostSign; public static GameObject Jungle_ItemStump; public static GameObject Door_Horizontal_Belly; public static GameObject Door_Vertical_Belly; public static GameObject Belly_ExitWarp; public static GameObject Belly_ExitRoomIcon; public static GameObject Belly_DoorAnimations; public static GameObject Belly_Shipwreck_Left; public static GameObject Belly_Shipwreck_Right; public static GameObject Door_Horizontal_West; public static GameObject Door_Vertical_West; public static GameObject West_PuzzleSetupPlacable; public static GameObject EXOldWestWarp; public static GameObject EXSpaceFloor_50x50; public static GameObject EXSpaceFloorPitBorder_50x50; public static GameObject DoorOneWay_Vertical_Office; public static GameObject DoorOneWay_Horizontal_Office; public static GameObject DoorOneWay_Vertical_Backrooms; public static GameObject ExpandJungleTree_Medium; public static GameObject ExpandJungleTree_Small; public static GameObject ExpandJungleTreeMedium_Stump; public static GameObject ExpandJungleTreeSmall_Stump; public static GameObject ExpandJungleTree_Shard_01; public static GameObject ExpandJungleTree_Shard_02; public static GameObject ExpandJungleTree_Shard_03; public static GameObject Sarcophagus_ShotgunBook_Kaliber; public static GameObject Sarcophagus_ShotgunMace_Kaliber; public static GameObject Sarcophagus_BulletSword_Kaliber; public static GameObject Sarcophagus_BulletShield_Kaliber; public static GameObject Sarco_WoodShieldPedestal; public static GameObject Sarco_Door; public static GameObject Sarco_Floor; public static GameObject Sarco_MonsterObject; public static GameObject Sarco_Skeleton; public static GameObject Belly_PitVFX1; public static GameObject Belly_PitVFX2; public static GameObject Belly_PitVFX3; public static GameObject Monstro_PressurePlate; public static GameObject JungleLight; public static GameObject BellyLight; public static GameObject WestLight; public static GameObject PhobosLight; public static GameObject Cactus_A; public static GameObject Cactus_B; public static GameObject CactusShard1; public static GameObject CactusShard2; public static GameObject BlankRewardPedestal; public static GameObject RatKeyRewardPedestal; public static GameObject CorruptionBombRewardPedestal; public static GameObject EX_GlitchPortal; public static GameObject EX_Parachute; public static GameObject EX_ParadropAnchor; public static GameObject EX_ExplodyBarrelDummy; public static GameObject EX_ItemDropper; public static GameObject EX_Chest_West; public static GameObject EX_RedBalloon; public static GameObject EX_BlueBalloon; public static GameObject EX_GreenBalloon; public static GameObject EX_PinkBalloon; public static GameObject EX_YellowBalloon; public static GameObject EXPortableElevator_Departure; public static GameObject EXPortableElevator_Reticle; public static GameObject EXPortableElevator_Departure_Placable; public static GameObject EXJungleElevator_Departure_Placable; public static GameObject EXElevator_Arrival_Placable; public static GameObject ENV_Tileset_Jungle; public static GameObject ENV_Tileset_Belly; public static GameObject ENV_Tileset_West; public static GameObject ENV_Tileset_Phobos; public static GameObject ENV_Tileset_Office; public static GameObject ENV_Tileset_Backrooms; public static GameObject EXSpace_Grass_01; public static GameObject EXSpace_Grass_02; public static GameObject EXSpace_Grass_03; public static GameObject EXSpace_Grass_04; public static GameObject Challenge_ChaosMode; public static GameObject Challenge_TripleTrouble; public static GameObject Challenge_KingsMen; public static GameObject ChamberGun; public static GameObject EXRatDoor_4xLocks; public static GameObject EXFoyerTrigger; public static GameObject EXFoyerWarpDoor; public static GameObject EXCasinoHub; public static GameObject EXPunchoutArcadeCoin; public static GameObject EXArcadeGame_Prop; public static GameObject EXArcadeGame_Prop_Depressed; public static GameObject EXCasino_HatRack; public static GameObject EXCasino_Litter_Cans; public static GameObject EXCasino_Litter_Paper; public static GameObject EXDangerRoomIcon; public static GameObject EXBackroomsWWIcon; public static GameObject EXWarpDoor_Backrooms; public static GameObject EXBackRoomsCarpetStain_Small; public static GameObject EXBackRoomsCarpetStain_Medium; public static GameObject EXBackRoomsCarpetStain_Large; public static GameObject EXVoidController; public static GameObject EXVoidRoomAmbience; public static GameObject EXEntitySpawner; public static GameObject EXPoisbulordGrate; public static GameObject Ooze_Tank; public static GameObject SpaceShip_PressurePlate; public static GameObject EXFuture_SignPost; public static GameObject EXSignPost_MinimapIcon; public static GoopDefinition EXBacteriaGoop; public static void InitSpriteCollections(AssetBundle expandSharedAssets1, AssetBundle sharedAssets) { //IL_0355: Unknown result type (might be due to invalid IL or missing references) //IL_035f: Expected O, but got Unknown //IL_03ed: Unknown result type (might be due to invalid IL or missing references) //IL_03f7: Expected O, but got Unknown ENV_Tileset_Jungle = expandSharedAssets1.LoadAsset("ENV_Tileset_Jungle"); ENV_Tileset_Belly = expandSharedAssets1.LoadAsset("ENV_Tileset_Belly"); ENV_Tileset_West = expandSharedAssets1.LoadAsset("ENV_Tileset_West"); ENV_Tileset_Phobos = expandSharedAssets1.LoadAsset("ENV_Tileset_Phobos"); ENV_Tileset_Office = expandSharedAssets1.LoadAsset("ENV_Tileset_Office"); ENV_Tileset_Backrooms = expandSharedAssets1.LoadAsset("ENV_Tileset_BackRooms"); ExpandDungeonPrefabs.ENV_Tileset_Jungle(ENV_Tileset_Jungle, expandSharedAssets1.LoadAsset("ENV_Tileset_Jungle"), sharedAssets, expandSharedAssets1); ExpandDungeonPrefabs.ENV_Tileset_Belly(ENV_Tileset_Belly, expandSharedAssets1.LoadAsset("ENV_Tileset_Belly"), sharedAssets, expandSharedAssets1); ExpandDungeonPrefabs.ENV_Tileset_Phobos(ENV_Tileset_Phobos, expandSharedAssets1.LoadAsset("ENV_Tileset_Phobos"), sharedAssets, expandSharedAssets1); ExpandDungeonPrefabs.ENV_Tileset_West(ENV_Tileset_West, expandSharedAssets1.LoadAsset("ENV_Tileset_West"), sharedAssets, expandSharedAssets1); ExpandDungeonPrefabs.ENV_Tileset_Office(ENV_Tileset_Office, expandSharedAssets1.LoadAsset("ENV_Tileset_Nakatomi"), sharedAssets, expandSharedAssets1); ExpandDungeonPrefabs.ENV_Tileset_Office(ENV_Tileset_Backrooms, expandSharedAssets1.LoadAsset("ENV_Tileset_Backrooms"), sharedAssets, expandSharedAssets1); EXItemCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "EXItemCollection", "EXItem_Collection", "EXItemCollection"); EXGunCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "EXGunCollection", "EXGun_Collection", "EXGunCollection"); EXChestCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "EXChestCollection", "EXChest_Collection", "EXChestCollection"); EXTrapCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "EXTrapCollection", "EXTrap_Collection", "EXTrapCollection"); EXJungleCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "EXJungleCollection", "EXJungle_Collection", "EXJungleCollection"); EXParadropCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "EXParadropCollection", "EXParadrop_Collection", "EXParadropCollection"); EXLargeMonsterCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "EXLargeMonsterCollection", "EXLargeMonster_Collection", "EXLargeMonsterCollection"); EXMonsterCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "EXMonsterCollection", "EXMonster_Collection", "EXMonsterCollection"); EXSecretDoorCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "EXSecretDoorCollection", "EXSecretDoor_Collection", "EXSecretDoorCollection"); EXBootlegRoomCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "EXBootlegRoomCollection", "EXBootlegRoom_Collection", "EXBootlegRoomCollection"); SecretElevatorExitTilesetCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "SecretElevatorExitTilesetCollection", "SecretElevatorExitTileset_Collection", "SecretElevatorExitTilesetCollection"); EXBalloonCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "EXBalloonCollection", "EXBalloon_Collection", "EXBalloonCollection"); EXPortableElevatorCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "EXPortableElevatorCollection", "EXPortableElevator_Collection", "EXPortableElevatorCollection"); EXOfficeCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "EXOfficeCollection", "EXOffice_Collection", "EXOfficeCollection"); EXSpaceCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "EXSpaceCollection", "EXSpace_Collection", "EXSpaceCollection"); EXFoyerCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "EXFoyerCollection", "EXFoyer_Collection", "EXFoyerCollection"); EXBackroomsCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "EXBackroomsCollection", "EXBackrooms_Collection", "EXBackroomsCollection"); EXFutureCollection = SpriteSerializer.DeserializeSpriteCollectionFromAssetBundle(expandSharedAssets1, "EXFutureCollection", "EXFuture_Collection", "EXFutureCollection"); EXHattyHammerCollection = expandSharedAssets1.LoadAsset("HattyHammerCollection"); EXPoisbulordCollection = expandSharedAssets1.LoadAsset("PoisbulordCollection"); tk2dSpriteCollectionData val = EXHattyHammerCollection.AddComponent(); JsonUtility.FromJsonOverwrite(JsonUtility.ToJson((object)((tk2dBaseSprite)ExpandObjectDatabase.ForgeHammer.GetComponent()).Collection), (object)val); HattyHammerMaterial = new Material(((tk2dBaseSprite)ExpandObjectDatabase.ForgeHammer.GetComponent()).Collection.materials[0]); HattyHammerMaterial.mainTexture = (Texture)(object)expandSharedAssets1.LoadAsset("HattyHammer_Collection"); val.materials[0] = HattyHammerMaterial; tk2dSpriteDefinition[] spriteDefinitions = val.spriteDefinitions; for (int i = 0; i < spriteDefinitions.Length; i++) { spriteDefinitions[i].material = HattyHammerMaterial; } tk2dSpriteCollectionData val2 = EXPoisbulordCollection.AddComponent(); JsonUtility.FromJsonOverwrite(JsonUtility.ToJson((object)((BraveBehaviour)EnemyDatabase.GetOrLoadByGuid("1b5810fafbec445d89921a4efb4e42b7")).sprite.Collection), (object)val2); PoisbulordMaterial = new Material(((BraveBehaviour)EnemyDatabase.GetOrLoadByGuid("1b5810fafbec445d89921a4efb4e42b7")).sprite.Collection.materials[0]); PoisbulordMaterial.mainTexture = (Texture)(object)expandSharedAssets1.LoadAsset("Poisbulord_Collection"); val2.materials[0] = PoisbulordMaterial; spriteDefinitions = val2.spriteDefinitions; for (int i = 0; i < spriteDefinitions.Length; i++) { spriteDefinitions[i].material = PoisbulordMaterial; } EXGunCollection.GetComponent().DefineProjectileCollision("bootleg_pistol_projectile_001", 8, 8, 4, 4, 0, 0); tk2dSpriteCollectionData component = EXItemCollection.GetComponent(); for (int j = 1; j < 7; j++) { component.DefineProjectileCollision("hatty_00" + j, 13, 12, 2, 1, 0, 0); } } public static void PreInit() { //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Expected O, but got Unknown basic_special_rooms = ExpandAssets.LoadOfficialAsset("basic special rooms (shrines, etc)", ExpandAssets.AssetSource.SharedAuto1); basic_special_rooms_noBlackMarket = ScriptableObject.CreateInstance(); ((Object)basic_special_rooms_noBlackMarket).name = "Special Rooms (no blackmarket)"; basic_special_rooms_noBlackMarket.includedRooms = new WeightedRoomCollection(); basic_special_rooms_noBlackMarket.includedRooms.elements = new List(); basic_special_rooms_noBlackMarket.includedRoomTables = new List(0); basic_special_rooms_noBlackMarket.includedRooms.elements.Add(basic_special_rooms.includedRooms.elements[0]); basic_special_rooms_noBlackMarket.includedRooms.elements.Add(basic_special_rooms.includedRooms.elements[1]); basic_special_rooms_noBlackMarket.includedRooms.elements.Add(basic_special_rooms.includedRooms.elements[3]); basic_special_rooms_noBlackMarket.includedRooms.elements.Add(basic_special_rooms.includedRooms.elements[4]); CursedMirror = ((Component)basic_special_rooms.includedRooms.elements[1].room.placedObjects[0].nonenemyBehaviour).gameObject; } public static void InitPrefabs(AssetBundle expandSharedAssets1, AssetBundle sharedAssets, AssetBundle sharedAssets2, AssetBundle braveResources, AssetBundle enemiesBase) { //IL_078b: Unknown result type (might be due to invalid IL or missing references) //IL_07f5: Unknown result type (might be due to invalid IL or missing references) //IL_07ff: Expected O, but got Unknown //IL_089a: Unknown result type (might be due to invalid IL or missing references) //IL_08a4: Expected O, but got Unknown //IL_08d7: Unknown result type (might be due to invalid IL or missing references) //IL_08e1: Expected O, but got Unknown //IL_0914: Unknown result type (might be due to invalid IL or missing references) //IL_091e: Expected O, but got Unknown //IL_0951: Unknown result type (might be due to invalid IL or missing references) //IL_095b: Expected O, but got Unknown //IL_098e: Unknown result type (might be due to invalid IL or missing references) //IL_0998: Expected O, but got Unknown //IL_09cb: Unknown result type (might be due to invalid IL or missing references) //IL_09d5: Expected O, but got Unknown //IL_0a08: Unknown result type (might be due to invalid IL or missing references) //IL_0a12: Expected O, but got Unknown //IL_0a45: Unknown result type (might be due to invalid IL or missing references) //IL_0a4f: Expected O, but got Unknown //IL_0a82: Unknown result type (might be due to invalid IL or missing references) //IL_0a8c: Expected O, but got Unknown //IL_0abf: Unknown result type (might be due to invalid IL or missing references) //IL_0ac9: Expected O, but got Unknown //IL_0afc: Unknown result type (might be due to invalid IL or missing references) //IL_0b06: Expected O, but got Unknown //IL_0b39: Unknown result type (might be due to invalid IL or missing references) //IL_0b43: Expected O, but got Unknown //IL_0b85: Unknown result type (might be due to invalid IL or missing references) //IL_0b8f: Expected O, but got Unknown //IL_0e67: Unknown result type (might be due to invalid IL or missing references) //IL_0e6c: Unknown result type (might be due to invalid IL or missing references) //IL_0e73: Unknown result type (might be due to invalid IL or missing references) //IL_0e7e: Unknown result type (might be due to invalid IL or missing references) //IL_0e89: Unknown result type (might be due to invalid IL or missing references) //IL_0e90: Unknown result type (might be due to invalid IL or missing references) //IL_0ea1: Expected O, but got Unknown //IL_0eab: Unknown result type (might be due to invalid IL or missing references) //IL_0eb0: Unknown result type (might be due to invalid IL or missing references) //IL_0eb7: Unknown result type (might be due to invalid IL or missing references) //IL_0ec2: Unknown result type (might be due to invalid IL or missing references) //IL_0ecd: Unknown result type (might be due to invalid IL or missing references) //IL_0ed4: Unknown result type (might be due to invalid IL or missing references) //IL_0ee5: Expected O, but got Unknown //IL_0eef: Unknown result type (might be due to invalid IL or missing references) //IL_0ef4: Unknown result type (might be due to invalid IL or missing references) //IL_0efb: Unknown result type (might be due to invalid IL or missing references) //IL_0f06: Unknown result type (might be due to invalid IL or missing references) //IL_0f11: Unknown result type (might be due to invalid IL or missing references) //IL_0f18: Unknown result type (might be due to invalid IL or missing references) //IL_0f29: Expected O, but got Unknown //IL_0f33: Unknown result type (might be due to invalid IL or missing references) //IL_0f38: Unknown result type (might be due to invalid IL or missing references) //IL_0f3f: Unknown result type (might be due to invalid IL or missing references) //IL_0f4a: Unknown result type (might be due to invalid IL or missing references) //IL_0f55: Unknown result type (might be due to invalid IL or missing references) //IL_0f5c: Unknown result type (might be due to invalid IL or missing references) //IL_0f6d: Expected O, but got Unknown //IL_0f77: Unknown result type (might be due to invalid IL or missing references) //IL_0f7c: Unknown result type (might be due to invalid IL or missing references) //IL_0f83: Unknown result type (might be due to invalid IL or missing references) //IL_0f8e: Unknown result type (might be due to invalid IL or missing references) //IL_0f99: Unknown result type (might be due to invalid IL or missing references) //IL_0fa0: Unknown result type (might be due to invalid IL or missing references) //IL_0fb1: Expected O, but got Unknown //IL_0fbb: Unknown result type (might be due to invalid IL or missing references) //IL_0fc0: Unknown result type (might be due to invalid IL or missing references) //IL_0fc7: Unknown result type (might be due to invalid IL or missing references) //IL_0fd2: Unknown result type (might be due to invalid IL or missing references) //IL_0fdd: Unknown result type (might be due to invalid IL or missing references) //IL_0fe4: Unknown result type (might be due to invalid IL or missing references) //IL_0ff5: Expected O, but got Unknown //IL_0fff: Unknown result type (might be due to invalid IL or missing references) //IL_1004: Unknown result type (might be due to invalid IL or missing references) //IL_100b: Unknown result type (might be due to invalid IL or missing references) //IL_1016: Unknown result type (might be due to invalid IL or missing references) //IL_1021: Unknown result type (might be due to invalid IL or missing references) //IL_1028: Unknown result type (might be due to invalid IL or missing references) //IL_1039: Expected O, but got Unknown //IL_1043: Unknown result type (might be due to invalid IL or missing references) //IL_1048: Unknown result type (might be due to invalid IL or missing references) //IL_104f: Unknown result type (might be due to invalid IL or missing references) //IL_105a: Unknown result type (might be due to invalid IL or missing references) //IL_1065: Unknown result type (might be due to invalid IL or missing references) //IL_106c: Unknown result type (might be due to invalid IL or missing references) //IL_107d: Expected O, but got Unknown //IL_137a: Unknown result type (might be due to invalid IL or missing references) //IL_1387: Unknown result type (might be due to invalid IL or missing references) //IL_13b1: Unknown result type (might be due to invalid IL or missing references) //IL_0bf3: Unknown result type (might be due to invalid IL or missing references) //IL_0bf9: Invalid comparison between Unknown and I4 //IL_1e2f: Unknown result type (might be due to invalid IL or missing references) //IL_1e3d: Unknown result type (might be due to invalid IL or missing references) //IL_1e5d: Unknown result type (might be due to invalid IL or missing references) //IL_1e6b: Unknown result type (might be due to invalid IL or missing references) //IL_1e8c: Unknown result type (might be due to invalid IL or missing references) //IL_1e9a: Unknown result type (might be due to invalid IL or missing references) //IL_1eb9: Unknown result type (might be due to invalid IL or missing references) //IL_1ec7: Unknown result type (might be due to invalid IL or missing references) //IL_1ee6: Unknown result type (might be due to invalid IL or missing references) //IL_1ef4: Unknown result type (might be due to invalid IL or missing references) //IL_1f14: Unknown result type (might be due to invalid IL or missing references) //IL_1f22: Unknown result type (might be due to invalid IL or missing references) //IL_1f42: Unknown result type (might be due to invalid IL or missing references) //IL_1f50: Unknown result type (might be due to invalid IL or missing references) //IL_1f70: Unknown result type (might be due to invalid IL or missing references) //IL_1f7e: Unknown result type (might be due to invalid IL or missing references) //IL_213d: Unknown result type (might be due to invalid IL or missing references) //IL_214b: Unknown result type (might be due to invalid IL or missing references) //IL_216b: Unknown result type (might be due to invalid IL or missing references) //IL_2179: Unknown result type (might be due to invalid IL or missing references) //IL_219a: Unknown result type (might be due to invalid IL or missing references) //IL_21a8: Unknown result type (might be due to invalid IL or missing references) //IL_21c7: Unknown result type (might be due to invalid IL or missing references) //IL_21d5: Unknown result type (might be due to invalid IL or missing references) //IL_21f4: Unknown result type (might be due to invalid IL or missing references) //IL_2202: Unknown result type (might be due to invalid IL or missing references) //IL_2222: Unknown result type (might be due to invalid IL or missing references) //IL_2230: Unknown result type (might be due to invalid IL or missing references) //IL_2250: Unknown result type (might be due to invalid IL or missing references) //IL_225e: Unknown result type (might be due to invalid IL or missing references) //IL_227e: Unknown result type (might be due to invalid IL or missing references) //IL_228c: Unknown result type (might be due to invalid IL or missing references) //IL_2428: Unknown result type (might be due to invalid IL or missing references) //IL_2436: Unknown result type (might be due to invalid IL or missing references) //IL_2456: Unknown result type (might be due to invalid IL or missing references) //IL_2464: Unknown result type (might be due to invalid IL or missing references) //IL_2485: Unknown result type (might be due to invalid IL or missing references) //IL_2493: Unknown result type (might be due to invalid IL or missing references) //IL_24b2: Unknown result type (might be due to invalid IL or missing references) //IL_24c0: Unknown result type (might be due to invalid IL or missing references) //IL_24df: Unknown result type (might be due to invalid IL or missing references) //IL_24ed: Unknown result type (might be due to invalid IL or missing references) //IL_250d: Unknown result type (might be due to invalid IL or missing references) //IL_251b: Unknown result type (might be due to invalid IL or missing references) //IL_253b: Unknown result type (might be due to invalid IL or missing references) //IL_2549: Unknown result type (might be due to invalid IL or missing references) //IL_2569: Unknown result type (might be due to invalid IL or missing references) //IL_2577: Unknown result type (might be due to invalid IL or missing references) //IL_271e: Unknown result type (might be due to invalid IL or missing references) //IL_272c: Unknown result type (might be due to invalid IL or missing references) //IL_274c: Unknown result type (might be due to invalid IL or missing references) //IL_275a: Unknown result type (might be due to invalid IL or missing references) //IL_2779: Unknown result type (might be due to invalid IL or missing references) //IL_2787: Unknown result type (might be due to invalid IL or missing references) //IL_27a6: Unknown result type (might be due to invalid IL or missing references) //IL_27b4: Unknown result type (might be due to invalid IL or missing references) //IL_27d4: Unknown result type (might be due to invalid IL or missing references) //IL_27e2: Unknown result type (might be due to invalid IL or missing references) //IL_2802: Unknown result type (might be due to invalid IL or missing references) //IL_2810: Unknown result type (might be due to invalid IL or missing references) //IL_2830: Unknown result type (might be due to invalid IL or missing references) //IL_283e: Unknown result type (might be due to invalid IL or missing references) //IL_299c: Unknown result type (might be due to invalid IL or missing references) //IL_29a1: Unknown result type (might be due to invalid IL or missing references) //IL_29ac: Unknown result type (might be due to invalid IL or missing references) //IL_29ad: Unknown result type (might be due to invalid IL or missing references) //IL_29b2: Unknown result type (might be due to invalid IL or missing references) //IL_29b7: Unknown result type (might be due to invalid IL or missing references) //IL_29be: Unknown result type (might be due to invalid IL or missing references) //IL_29c9: Unknown result type (might be due to invalid IL or missing references) //IL_29d1: Unknown result type (might be due to invalid IL or missing references) //IL_29d8: Unknown result type (might be due to invalid IL or missing references) //IL_29df: Unknown result type (might be due to invalid IL or missing references) //IL_29eb: Unknown result type (might be due to invalid IL or missing references) //IL_29fc: Expected O, but got Unknown //IL_29fd: Unknown result type (might be due to invalid IL or missing references) //IL_2a02: Unknown result type (might be due to invalid IL or missing references) //IL_2a0d: Unknown result type (might be due to invalid IL or missing references) //IL_2a0e: Unknown result type (might be due to invalid IL or missing references) //IL_2a13: Unknown result type (might be due to invalid IL or missing references) //IL_2a18: Unknown result type (might be due to invalid IL or missing references) //IL_2a1f: Unknown result type (might be due to invalid IL or missing references) //IL_2a2a: Unknown result type (might be due to invalid IL or missing references) //IL_2a35: Unknown result type (might be due to invalid IL or missing references) //IL_2a3c: Unknown result type (might be due to invalid IL or missing references) //IL_2a43: Unknown result type (might be due to invalid IL or missing references) //IL_2a4f: Unknown result type (might be due to invalid IL or missing references) //IL_2a60: Expected O, but got Unknown //IL_2a61: Unknown result type (might be due to invalid IL or missing references) //IL_2a66: Unknown result type (might be due to invalid IL or missing references) //IL_2a71: Unknown result type (might be due to invalid IL or missing references) //IL_2a72: Unknown result type (might be due to invalid IL or missing references) //IL_2a77: Unknown result type (might be due to invalid IL or missing references) //IL_2a7c: Unknown result type (might be due to invalid IL or missing references) //IL_2a83: Unknown result type (might be due to invalid IL or missing references) //IL_2a8e: Unknown result type (might be due to invalid IL or missing references) //IL_2a99: Unknown result type (might be due to invalid IL or missing references) //IL_2aa0: Unknown result type (might be due to invalid IL or missing references) //IL_2aa7: Unknown result type (might be due to invalid IL or missing references) //IL_2ab3: Unknown result type (might be due to invalid IL or missing references) //IL_2ac4: Expected O, but got Unknown //IL_2ac5: Unknown result type (might be due to invalid IL or missing references) //IL_2aca: Unknown result type (might be due to invalid IL or missing references) //IL_2ad5: Unknown result type (might be due to invalid IL or missing references) //IL_2ad6: Unknown result type (might be due to invalid IL or missing references) //IL_2adb: Unknown result type (might be due to invalid IL or missing references) //IL_2ae0: Unknown result type (might be due to invalid IL or missing references) //IL_2ae7: Unknown result type (might be due to invalid IL or missing references) //IL_2af2: Unknown result type (might be due to invalid IL or missing references) //IL_2afd: Unknown result type (might be due to invalid IL or missing references) //IL_2b04: Unknown result type (might be due to invalid IL or missing references) //IL_2b0b: Unknown result type (might be due to invalid IL or missing references) //IL_2b17: Unknown result type (might be due to invalid IL or missing references) //IL_2b28: Expected O, but got Unknown //IL_2b29: Unknown result type (might be due to invalid IL or missing references) //IL_2b2e: Unknown result type (might be due to invalid IL or missing references) //IL_2b39: Unknown result type (might be due to invalid IL or missing references) //IL_2b3a: Unknown result type (might be due to invalid IL or missing references) //IL_2b3f: Unknown result type (might be due to invalid IL or missing references) //IL_2b44: Unknown result type (might be due to invalid IL or missing references) //IL_2b4b: Unknown result type (might be due to invalid IL or missing references) //IL_2b56: Unknown result type (might be due to invalid IL or missing references) //IL_2b5e: Unknown result type (might be due to invalid IL or missing references) //IL_2b65: Unknown result type (might be due to invalid IL or missing references) //IL_2b6c: Unknown result type (might be due to invalid IL or missing references) //IL_2b78: Unknown result type (might be due to invalid IL or missing references) //IL_2b89: Expected O, but got Unknown //IL_2b8a: Unknown result type (might be due to invalid IL or missing references) //IL_2b8f: Unknown result type (might be due to invalid IL or missing references) //IL_2b9a: Unknown result type (might be due to invalid IL or missing references) //IL_2b9b: Unknown result type (might be due to invalid IL or missing references) //IL_2ba0: Unknown result type (might be due to invalid IL or missing references) //IL_2ba5: Unknown result type (might be due to invalid IL or missing references) //IL_2bac: Unknown result type (might be due to invalid IL or missing references) //IL_2bb7: Unknown result type (might be due to invalid IL or missing references) //IL_2bbf: Unknown result type (might be due to invalid IL or missing references) //IL_2bc6: Unknown result type (might be due to invalid IL or missing references) //IL_2bcd: Unknown result type (might be due to invalid IL or missing references) //IL_2bd9: Unknown result type (might be due to invalid IL or missing references) //IL_2bea: Expected O, but got Unknown //IL_2beb: Unknown result type (might be due to invalid IL or missing references) //IL_2bf0: Unknown result type (might be due to invalid IL or missing references) //IL_2bfb: Unknown result type (might be due to invalid IL or missing references) //IL_2bfc: Unknown result type (might be due to invalid IL or missing references) //IL_2c01: Unknown result type (might be due to invalid IL or missing references) //IL_2c06: Unknown result type (might be due to invalid IL or missing references) //IL_2c0d: Unknown result type (might be due to invalid IL or missing references) //IL_2c18: Unknown result type (might be due to invalid IL or missing references) //IL_2c23: Unknown result type (might be due to invalid IL or missing references) //IL_2c2a: Unknown result type (might be due to invalid IL or missing references) //IL_2c31: Unknown result type (might be due to invalid IL or missing references) //IL_2c3d: Unknown result type (might be due to invalid IL or missing references) //IL_2c4e: Expected O, but got Unknown //IL_2c4f: Unknown result type (might be due to invalid IL or missing references) //IL_2c54: Unknown result type (might be due to invalid IL or missing references) //IL_2c5f: Unknown result type (might be due to invalid IL or missing references) //IL_2c60: Unknown result type (might be due to invalid IL or missing references) //IL_2c65: Unknown result type (might be due to invalid IL or missing references) //IL_2c6a: Unknown result type (might be due to invalid IL or missing references) //IL_2c71: Unknown result type (might be due to invalid IL or missing references) //IL_2c7c: Unknown result type (might be due to invalid IL or missing references) //IL_2c87: Unknown result type (might be due to invalid IL or missing references) //IL_2c8e: Unknown result type (might be due to invalid IL or missing references) //IL_2c95: Unknown result type (might be due to invalid IL or missing references) //IL_2ca1: Unknown result type (might be due to invalid IL or missing references) //IL_2cb2: Expected O, but got Unknown //IL_2cb3: Unknown result type (might be due to invalid IL or missing references) //IL_2cb8: Unknown result type (might be due to invalid IL or missing references) //IL_2cc3: Unknown result type (might be due to invalid IL or missing references) //IL_2cc4: Unknown result type (might be due to invalid IL or missing references) //IL_2cc9: Unknown result type (might be due to invalid IL or missing references) //IL_2cce: Unknown result type (might be due to invalid IL or missing references) //IL_2cd5: Unknown result type (might be due to invalid IL or missing references) //IL_2ce0: Unknown result type (might be due to invalid IL or missing references) //IL_2ceb: Unknown result type (might be due to invalid IL or missing references) //IL_2cf2: Unknown result type (might be due to invalid IL or missing references) //IL_2cf9: Unknown result type (might be due to invalid IL or missing references) //IL_2d05: Unknown result type (might be due to invalid IL or missing references) //IL_2d16: Expected O, but got Unknown //IL_2d98: Unknown result type (might be due to invalid IL or missing references) //IL_2d9d: Unknown result type (might be due to invalid IL or missing references) //IL_2da8: Unknown result type (might be due to invalid IL or missing references) //IL_2da9: Unknown result type (might be due to invalid IL or missing references) //IL_2dae: Unknown result type (might be due to invalid IL or missing references) //IL_2db3: Unknown result type (might be due to invalid IL or missing references) //IL_2dba: Unknown result type (might be due to invalid IL or missing references) //IL_2dc5: Unknown result type (might be due to invalid IL or missing references) //IL_2dcd: Unknown result type (might be due to invalid IL or missing references) //IL_2dd4: Unknown result type (might be due to invalid IL or missing references) //IL_2ddb: Unknown result type (might be due to invalid IL or missing references) //IL_2de7: Unknown result type (might be due to invalid IL or missing references) //IL_2df8: Expected O, but got Unknown //IL_2e7a: Unknown result type (might be due to invalid IL or missing references) //IL_2e7f: Unknown result type (might be due to invalid IL or missing references) //IL_2e8a: Unknown result type (might be due to invalid IL or missing references) //IL_2e8b: Unknown result type (might be due to invalid IL or missing references) //IL_2e90: Unknown result type (might be due to invalid IL or missing references) //IL_2e95: Unknown result type (might be due to invalid IL or missing references) //IL_2ea0: Unknown result type (might be due to invalid IL or missing references) //IL_2eab: Unknown result type (might be due to invalid IL or missing references) //IL_2eb2: Unknown result type (might be due to invalid IL or missing references) //IL_2eb9: Unknown result type (might be due to invalid IL or missing references) //IL_2ec5: Unknown result type (might be due to invalid IL or missing references) //IL_2ed6: Expected O, but got Unknown //IL_2f58: Unknown result type (might be due to invalid IL or missing references) //IL_2f5d: Unknown result type (might be due to invalid IL or missing references) //IL_2f68: Unknown result type (might be due to invalid IL or missing references) //IL_2f69: Unknown result type (might be due to invalid IL or missing references) //IL_2f6e: Unknown result type (might be due to invalid IL or missing references) //IL_2f73: Unknown result type (might be due to invalid IL or missing references) //IL_2f7e: Unknown result type (might be due to invalid IL or missing references) //IL_2f89: Unknown result type (might be due to invalid IL or missing references) //IL_2f90: Unknown result type (might be due to invalid IL or missing references) //IL_2f97: Unknown result type (might be due to invalid IL or missing references) //IL_2f9e: Unknown result type (might be due to invalid IL or missing references) //IL_2faa: Unknown result type (might be due to invalid IL or missing references) //IL_2fbb: Expected O, but got Unknown //IL_2fbc: Unknown result type (might be due to invalid IL or missing references) //IL_2fc1: Unknown result type (might be due to invalid IL or missing references) //IL_2fcc: Unknown result type (might be due to invalid IL or missing references) //IL_2fcd: Unknown result type (might be due to invalid IL or missing references) //IL_2fd2: Unknown result type (might be due to invalid IL or missing references) //IL_2fd7: Unknown result type (might be due to invalid IL or missing references) //IL_2fe2: Unknown result type (might be due to invalid IL or missing references) //IL_2fed: Unknown result type (might be due to invalid IL or missing references) //IL_2ff4: Unknown result type (might be due to invalid IL or missing references) //IL_2ffb: Unknown result type (might be due to invalid IL or missing references) //IL_3002: Unknown result type (might be due to invalid IL or missing references) //IL_300e: Unknown result type (might be due to invalid IL or missing references) //IL_301f: Expected O, but got Unknown //IL_3020: Unknown result type (might be due to invalid IL or missing references) //IL_3025: Unknown result type (might be due to invalid IL or missing references) //IL_3030: Unknown result type (might be due to invalid IL or missing references) //IL_3031: Unknown result type (might be due to invalid IL or missing references) //IL_3036: Unknown result type (might be due to invalid IL or missing references) //IL_303b: Unknown result type (might be due to invalid IL or missing references) //IL_3046: Unknown result type (might be due to invalid IL or missing references) //IL_3051: Unknown result type (might be due to invalid IL or missing references) //IL_3058: Unknown result type (might be due to invalid IL or missing references) //IL_305f: Unknown result type (might be due to invalid IL or missing references) //IL_3066: Unknown result type (might be due to invalid IL or missing references) //IL_3072: Unknown result type (might be due to invalid IL or missing references) //IL_3083: Expected O, but got Unknown //IL_3084: Unknown result type (might be due to invalid IL or missing references) //IL_3089: Unknown result type (might be due to invalid IL or missing references) //IL_3094: Unknown result type (might be due to invalid IL or missing references) //IL_3095: Unknown result type (might be due to invalid IL or missing references) //IL_309a: Unknown result type (might be due to invalid IL or missing references) //IL_309f: Unknown result type (might be due to invalid IL or missing references) //IL_30a6: Unknown result type (might be due to invalid IL or missing references) //IL_30b1: Unknown result type (might be due to invalid IL or missing references) //IL_30b8: Unknown result type (might be due to invalid IL or missing references) //IL_30bf: Unknown result type (might be due to invalid IL or missing references) //IL_30c6: Unknown result type (might be due to invalid IL or missing references) //IL_30d2: Unknown result type (might be due to invalid IL or missing references) //IL_30e3: Expected O, but got Unknown //IL_3165: Unknown result type (might be due to invalid IL or missing references) //IL_316a: Unknown result type (might be due to invalid IL or missing references) //IL_3175: Unknown result type (might be due to invalid IL or missing references) //IL_3176: Unknown result type (might be due to invalid IL or missing references) //IL_317b: Unknown result type (might be due to invalid IL or missing references) //IL_3180: Unknown result type (might be due to invalid IL or missing references) //IL_318b: Unknown result type (might be due to invalid IL or missing references) //IL_3196: Unknown result type (might be due to invalid IL or missing references) //IL_319d: Unknown result type (might be due to invalid IL or missing references) //IL_31a4: Unknown result type (might be due to invalid IL or missing references) //IL_31ab: Unknown result type (might be due to invalid IL or missing references) //IL_31b7: Unknown result type (might be due to invalid IL or missing references) //IL_31c8: Expected O, but got Unknown //IL_31c9: Unknown result type (might be due to invalid IL or missing references) //IL_31ce: Unknown result type (might be due to invalid IL or missing references) //IL_31d9: Unknown result type (might be due to invalid IL or missing references) //IL_31da: Unknown result type (might be due to invalid IL or missing references) //IL_31df: Unknown result type (might be due to invalid IL or missing references) //IL_31e4: Unknown result type (might be due to invalid IL or missing references) //IL_31ef: Unknown result type (might be due to invalid IL or missing references) //IL_31fa: Unknown result type (might be due to invalid IL or missing references) //IL_3201: Unknown result type (might be due to invalid IL or missing references) //IL_3208: Unknown result type (might be due to invalid IL or missing references) //IL_320f: Unknown result type (might be due to invalid IL or missing references) //IL_321b: Unknown result type (might be due to invalid IL or missing references) //IL_322c: Expected O, but got Unknown //IL_322d: Unknown result type (might be due to invalid IL or missing references) //IL_3232: Unknown result type (might be due to invalid IL or missing references) //IL_323d: Unknown result type (might be due to invalid IL or missing references) //IL_323e: Unknown result type (might be due to invalid IL or missing references) //IL_3243: Unknown result type (might be due to invalid IL or missing references) //IL_3248: Unknown result type (might be due to invalid IL or missing references) //IL_3253: Unknown result type (might be due to invalid IL or missing references) //IL_325e: Unknown result type (might be due to invalid IL or missing references) //IL_3265: Unknown result type (might be due to invalid IL or missing references) //IL_326c: Unknown result type (might be due to invalid IL or missing references) //IL_3273: Unknown result type (might be due to invalid IL or missing references) //IL_327f: Unknown result type (might be due to invalid IL or missing references) //IL_3290: Expected O, but got Unknown //IL_3291: Unknown result type (might be due to invalid IL or missing references) //IL_3296: Unknown result type (might be due to invalid IL or missing references) //IL_32a1: Unknown result type (might be due to invalid IL or missing references) //IL_32a2: Unknown result type (might be due to invalid IL or missing references) //IL_32a7: Unknown result type (might be due to invalid IL or missing references) //IL_32ac: Unknown result type (might be due to invalid IL or missing references) //IL_32b3: Unknown result type (might be due to invalid IL or missing references) //IL_32be: Unknown result type (might be due to invalid IL or missing references) //IL_32c5: Unknown result type (might be due to invalid IL or missing references) //IL_32cc: Unknown result type (might be due to invalid IL or missing references) //IL_32d3: Unknown result type (might be due to invalid IL or missing references) //IL_32df: Unknown result type (might be due to invalid IL or missing references) //IL_32f0: Expected O, but got Unknown //IL_33fa: Unknown result type (might be due to invalid IL or missing references) //IL_346a: Unknown result type (might be due to invalid IL or missing references) //IL_350c: Unknown result type (might be due to invalid IL or missing references) //IL_3511: Unknown result type (might be due to invalid IL or missing references) //IL_351c: Unknown result type (might be due to invalid IL or missing references) //IL_3527: Unknown result type (might be due to invalid IL or missing references) //IL_3528: Unknown result type (might be due to invalid IL or missing references) //IL_352d: Unknown result type (might be due to invalid IL or missing references) //IL_3532: Unknown result type (might be due to invalid IL or missing references) //IL_353d: Unknown result type (might be due to invalid IL or missing references) //IL_3548: Unknown result type (might be due to invalid IL or missing references) //IL_354f: Unknown result type (might be due to invalid IL or missing references) //IL_3556: Unknown result type (might be due to invalid IL or missing references) //IL_355d: Unknown result type (might be due to invalid IL or missing references) //IL_3569: Unknown result type (might be due to invalid IL or missing references) //IL_357a: Expected O, but got Unknown //IL_357a: Unknown result type (might be due to invalid IL or missing references) //IL_3581: Expected O, but got Unknown //IL_359b: Unknown result type (might be due to invalid IL or missing references) //IL_35a0: Unknown result type (might be due to invalid IL or missing references) //IL_35ec: Unknown result type (might be due to invalid IL or missing references) //IL_35f1: Unknown result type (might be due to invalid IL or missing references) //IL_35f3: Unknown result type (might be due to invalid IL or missing references) //IL_35f8: Unknown result type (might be due to invalid IL or missing references) //IL_35fa: Unknown result type (might be due to invalid IL or missing references) //IL_35ff: Unknown result type (might be due to invalid IL or missing references) //IL_3601: Unknown result type (might be due to invalid IL or missing references) //IL_3606: Unknown result type (might be due to invalid IL or missing references) //IL_3608: Unknown result type (might be due to invalid IL or missing references) //IL_360d: Unknown result type (might be due to invalid IL or missing references) //IL_3618: Unknown result type (might be due to invalid IL or missing references) //IL_361f: Unknown result type (might be due to invalid IL or missing references) //IL_362a: Unknown result type (might be due to invalid IL or missing references) //IL_3631: Unknown result type (might be due to invalid IL or missing references) //IL_3638: Unknown result type (might be due to invalid IL or missing references) //IL_363a: Unknown result type (might be due to invalid IL or missing references) //IL_363f: Unknown result type (might be due to invalid IL or missing references) //IL_3645: Unknown result type (might be due to invalid IL or missing references) //IL_364a: Unknown result type (might be due to invalid IL or missing references) //IL_3651: Unknown result type (might be due to invalid IL or missing references) //IL_3658: Unknown result type (might be due to invalid IL or missing references) //IL_3660: Expected O, but got Unknown //IL_366c: Unknown result type (might be due to invalid IL or missing references) //IL_3673: Expected O, but got Unknown //IL_368d: Unknown result type (might be due to invalid IL or missing references) //IL_3692: Unknown result type (might be due to invalid IL or missing references) //IL_36de: Unknown result type (might be due to invalid IL or missing references) //IL_36e3: Unknown result type (might be due to invalid IL or missing references) //IL_36e5: Unknown result type (might be due to invalid IL or missing references) //IL_36ea: Unknown result type (might be due to invalid IL or missing references) //IL_36ec: Unknown result type (might be due to invalid IL or missing references) //IL_36f1: Unknown result type (might be due to invalid IL or missing references) //IL_36f3: Unknown result type (might be due to invalid IL or missing references) //IL_36f8: Unknown result type (might be due to invalid IL or missing references) //IL_36fa: Unknown result type (might be due to invalid IL or missing references) //IL_36ff: Unknown result type (might be due to invalid IL or missing references) //IL_370a: Unknown result type (might be due to invalid IL or missing references) //IL_3711: Unknown result type (might be due to invalid IL or missing references) //IL_371c: Unknown result type (might be due to invalid IL or missing references) //IL_3723: Unknown result type (might be due to invalid IL or missing references) //IL_372a: Unknown result type (might be due to invalid IL or missing references) //IL_372c: Unknown result type (might be due to invalid IL or missing references) //IL_3731: Unknown result type (might be due to invalid IL or missing references) //IL_3737: Unknown result type (might be due to invalid IL or missing references) //IL_373c: Unknown result type (might be due to invalid IL or missing references) //IL_3743: Unknown result type (might be due to invalid IL or missing references) //IL_374a: Unknown result type (might be due to invalid IL or missing references) //IL_3752: Expected O, but got Unknown //IL_375e: Unknown result type (might be due to invalid IL or missing references) //IL_3765: Expected O, but got Unknown //IL_377f: Unknown result type (might be due to invalid IL or missing references) //IL_3784: Unknown result type (might be due to invalid IL or missing references) //IL_37d0: Unknown result type (might be due to invalid IL or missing references) //IL_37d5: Unknown result type (might be due to invalid IL or missing references) //IL_37d7: Unknown result type (might be due to invalid IL or missing references) //IL_37dc: Unknown result type (might be due to invalid IL or missing references) //IL_37de: Unknown result type (might be due to invalid IL or missing references) //IL_37e3: Unknown result type (might be due to invalid IL or missing references) //IL_37e5: Unknown result type (might be due to invalid IL or missing references) //IL_37ea: Unknown result type (might be due to invalid IL or missing references) //IL_37ec: Unknown result type (might be due to invalid IL or missing references) //IL_37f1: Unknown result type (might be due to invalid IL or missing references) //IL_37fc: Unknown result type (might be due to invalid IL or missing references) //IL_3803: Unknown result type (might be due to invalid IL or missing references) //IL_380e: Unknown result type (might be due to invalid IL or missing references) //IL_3815: Unknown result type (might be due to invalid IL or missing references) //IL_381c: Unknown result type (might be due to invalid IL or missing references) //IL_381e: Unknown result type (might be due to invalid IL or missing references) //IL_3823: Unknown result type (might be due to invalid IL or missing references) //IL_3829: Unknown result type (might be due to invalid IL or missing references) //IL_382e: Unknown result type (might be due to invalid IL or missing references) //IL_3835: Unknown result type (might be due to invalid IL or missing references) //IL_383c: Unknown result type (might be due to invalid IL or missing references) //IL_3844: Expected O, but got Unknown //IL_3850: Unknown result type (might be due to invalid IL or missing references) //IL_3857: Expected O, but got Unknown //IL_3871: Unknown result type (might be due to invalid IL or missing references) //IL_3876: Unknown result type (might be due to invalid IL or missing references) //IL_38c2: Unknown result type (might be due to invalid IL or missing references) //IL_38c7: Unknown result type (might be due to invalid IL or missing references) //IL_38c9: Unknown result type (might be due to invalid IL or missing references) //IL_38ce: Unknown result type (might be due to invalid IL or missing references) //IL_38d0: Unknown result type (might be due to invalid IL or missing references) //IL_38d5: Unknown result type (might be due to invalid IL or missing references) //IL_38d7: Unknown result type (might be due to invalid IL or missing references) //IL_38dc: Unknown result type (might be due to invalid IL or missing references) //IL_38de: Unknown result type (might be due to invalid IL or missing references) //IL_38e3: Unknown result type (might be due to invalid IL or missing references) //IL_38ee: Unknown result type (might be due to invalid IL or missing references) //IL_38f5: Unknown result type (might be due to invalid IL or missing references) //IL_3900: Unknown result type (might be due to invalid IL or missing references) //IL_3907: Unknown result type (might be due to invalid IL or missing references) //IL_390e: Unknown result type (might be due to invalid IL or missing references) //IL_3910: Unknown result type (might be due to invalid IL or missing references) //IL_3915: Unknown result type (might be due to invalid IL or missing references) //IL_391b: Unknown result type (might be due to invalid IL or missing references) //IL_3920: Unknown result type (might be due to invalid IL or missing references) //IL_3927: Unknown result type (might be due to invalid IL or missing references) //IL_392e: Unknown result type (might be due to invalid IL or missing references) //IL_3936: Expected O, but got Unknown //IL_3942: Unknown result type (might be due to invalid IL or missing references) //IL_3949: Expected O, but got Unknown //IL_3963: Unknown result type (might be due to invalid IL or missing references) //IL_3968: Unknown result type (might be due to invalid IL or missing references) //IL_39b4: Unknown result type (might be due to invalid IL or missing references) //IL_39b9: Unknown result type (might be due to invalid IL or missing references) //IL_39bb: Unknown result type (might be due to invalid IL or missing references) //IL_39c0: Unknown result type (might be due to invalid IL or missing references) //IL_39c2: Unknown result type (might be due to invalid IL or missing references) //IL_39c7: Unknown result type (might be due to invalid IL or missing references) //IL_39c9: Unknown result type (might be due to invalid IL or missing references) //IL_39ce: Unknown result type (might be due to invalid IL or missing references) //IL_39d0: Unknown result type (might be due to invalid IL or missing references) //IL_39d5: Unknown result type (might be due to invalid IL or missing references) //IL_39e0: Unknown result type (might be due to invalid IL or missing references) //IL_39e7: Unknown result type (might be due to invalid IL or missing references) //IL_39f2: Unknown result type (might be due to invalid IL or missing references) //IL_39f9: Unknown result type (might be due to invalid IL or missing references) //IL_3a00: Unknown result type (might be due to invalid IL or missing references) //IL_3a02: Unknown result type (might be due to invalid IL or missing references) //IL_3a07: Unknown result type (might be due to invalid IL or missing references) //IL_3a0d: Unknown result type (might be due to invalid IL or missing references) //IL_3a12: Unknown result type (might be due to invalid IL or missing references) //IL_3a19: Unknown result type (might be due to invalid IL or missing references) //IL_3a20: Unknown result type (might be due to invalid IL or missing references) //IL_3a28: Expected O, but got Unknown //IL_3a34: Unknown result type (might be due to invalid IL or missing references) //IL_3a3b: Expected O, but got Unknown //IL_3a55: Unknown result type (might be due to invalid IL or missing references) //IL_3a5a: Unknown result type (might be due to invalid IL or missing references) //IL_3aa6: Unknown result type (might be due to invalid IL or missing references) //IL_3aab: Unknown result type (might be due to invalid IL or missing references) //IL_3aad: Unknown result type (might be due to invalid IL or missing references) //IL_3ab2: Unknown result type (might be due to invalid IL or missing references) //IL_3ab4: Unknown result type (might be due to invalid IL or missing references) //IL_3ab9: Unknown result type (might be due to invalid IL or missing references) //IL_3abb: Unknown result type (might be due to invalid IL or missing references) //IL_3ac0: Unknown result type (might be due to invalid IL or missing references) //IL_3ac2: Unknown result type (might be due to invalid IL or missing references) //IL_3ac7: Unknown result type (might be due to invalid IL or missing references) //IL_3ad2: Unknown result type (might be due to invalid IL or missing references) //IL_3ad9: Unknown result type (might be due to invalid IL or missing references) //IL_3ae4: Unknown result type (might be due to invalid IL or missing references) //IL_3aeb: Unknown result type (might be due to invalid IL or missing references) //IL_3af2: Unknown result type (might be due to invalid IL or missing references) //IL_3af4: Unknown result type (might be due to invalid IL or missing references) //IL_3af9: Unknown result type (might be due to invalid IL or missing references) //IL_3aff: Unknown result type (might be due to invalid IL or missing references) //IL_3b04: Unknown result type (might be due to invalid IL or missing references) //IL_3b0b: Unknown result type (might be due to invalid IL or missing references) //IL_3b12: Unknown result type (might be due to invalid IL or missing references) //IL_3b1a: Expected O, but got Unknown //IL_3b26: Unknown result type (might be due to invalid IL or missing references) //IL_3b2d: Expected O, but got Unknown //IL_3b47: Unknown result type (might be due to invalid IL or missing references) //IL_3b4c: Unknown result type (might be due to invalid IL or missing references) //IL_3b98: Unknown result type (might be due to invalid IL or missing references) //IL_3b9d: Unknown result type (might be due to invalid IL or missing references) //IL_3b9f: Unknown result type (might be due to invalid IL or missing references) //IL_3ba4: Unknown result type (might be due to invalid IL or missing references) //IL_3ba6: Unknown result type (might be due to invalid IL or missing references) //IL_3bab: Unknown result type (might be due to invalid IL or missing references) //IL_3bad: Unknown result type (might be due to invalid IL or missing references) //IL_3bb2: Unknown result type (might be due to invalid IL or missing references) //IL_3bb4: Unknown result type (might be due to invalid IL or missing references) //IL_3bb9: Unknown result type (might be due to invalid IL or missing references) //IL_3bc4: Unknown result type (might be due to invalid IL or missing references) //IL_3bcb: Unknown result type (might be due to invalid IL or missing references) //IL_3bd6: Unknown result type (might be due to invalid IL or missing references) //IL_3bdd: Unknown result type (might be due to invalid IL or missing references) //IL_3be4: Unknown result type (might be due to invalid IL or missing references) //IL_3be6: Unknown result type (might be due to invalid IL or missing references) //IL_3beb: Unknown result type (might be due to invalid IL or missing references) //IL_3bf1: Unknown result type (might be due to invalid IL or missing references) //IL_3bf6: Unknown result type (might be due to invalid IL or missing references) //IL_3bfd: Unknown result type (might be due to invalid IL or missing references) //IL_3c04: Unknown result type (might be due to invalid IL or missing references) //IL_3c0c: Expected O, but got Unknown //IL_3c18: Unknown result type (might be due to invalid IL or missing references) //IL_3c1f: Expected O, but got Unknown //IL_3c39: Unknown result type (might be due to invalid IL or missing references) //IL_3c3e: Unknown result type (might be due to invalid IL or missing references) //IL_3c8a: Unknown result type (might be due to invalid IL or missing references) //IL_3c8f: Unknown result type (might be due to invalid IL or missing references) //IL_3c91: Unknown result type (might be due to invalid IL or missing references) //IL_3c96: Unknown result type (might be due to invalid IL or missing references) //IL_3c98: Unknown result type (might be due to invalid IL or missing references) //IL_3c9d: Unknown result type (might be due to invalid IL or missing references) //IL_3c9f: Unknown result type (might be due to invalid IL or missing references) //IL_3ca4: Unknown result type (might be due to invalid IL or missing references) //IL_3ca6: Unknown result type (might be due to invalid IL or missing references) //IL_3cab: Unknown result type (might be due to invalid IL or missing references) //IL_3cb6: Unknown result type (might be due to invalid IL or missing references) //IL_3cbd: Unknown result type (might be due to invalid IL or missing references) //IL_3cc8: Unknown result type (might be due to invalid IL or missing references) //IL_3ccf: Unknown result type (might be due to invalid IL or missing references) //IL_3cd6: Unknown result type (might be due to invalid IL or missing references) //IL_3cd8: Unknown result type (might be due to invalid IL or missing references) //IL_3cdd: Unknown result type (might be due to invalid IL or missing references) //IL_3ce3: Unknown result type (might be due to invalid IL or missing references) //IL_3ce8: Unknown result type (might be due to invalid IL or missing references) //IL_3cef: Unknown result type (might be due to invalid IL or missing references) //IL_3cf6: Unknown result type (might be due to invalid IL or missing references) //IL_3cfe: Expected O, but got Unknown //IL_3d0a: Unknown result type (might be due to invalid IL or missing references) //IL_3d11: Expected O, but got Unknown //IL_3d2b: Unknown result type (might be due to invalid IL or missing references) //IL_3d30: Unknown result type (might be due to invalid IL or missing references) //IL_3d7c: Unknown result type (might be due to invalid IL or missing references) //IL_3d81: Unknown result type (might be due to invalid IL or missing references) //IL_3d83: Unknown result type (might be due to invalid IL or missing references) //IL_3d88: Unknown result type (might be due to invalid IL or missing references) //IL_3d8a: Unknown result type (might be due to invalid IL or missing references) //IL_3d8f: Unknown result type (might be due to invalid IL or missing references) //IL_3d91: Unknown result type (might be due to invalid IL or missing references) //IL_3d96: Unknown result type (might be due to invalid IL or missing references) //IL_3d98: Unknown result type (might be due to invalid IL or missing references) //IL_3d9d: Unknown result type (might be due to invalid IL or missing references) //IL_3da8: Unknown result type (might be due to invalid IL or missing references) //IL_3daf: Unknown result type (might be due to invalid IL or missing references) //IL_3dba: Unknown result type (might be due to invalid IL or missing references) //IL_3dc1: Unknown result type (might be due to invalid IL or missing references) //IL_3dc8: Unknown result type (might be due to invalid IL or missing references) //IL_3dca: Unknown result type (might be due to invalid IL or missing references) //IL_3dcf: Unknown result type (might be due to invalid IL or missing references) //IL_3dd5: Unknown result type (might be due to invalid IL or missing references) //IL_3dda: Unknown result type (might be due to invalid IL or missing references) //IL_3de1: Unknown result type (might be due to invalid IL or missing references) //IL_3de8: Unknown result type (might be due to invalid IL or missing references) //IL_3df0: Expected O, but got Unknown //IL_3dfc: Unknown result type (might be due to invalid IL or missing references) //IL_3e03: Expected O, but got Unknown //IL_3e1d: Unknown result type (might be due to invalid IL or missing references) //IL_3e22: Unknown result type (might be due to invalid IL or missing references) //IL_3e6e: Unknown result type (might be due to invalid IL or missing references) //IL_3e73: Unknown result type (might be due to invalid IL or missing references) //IL_3e75: Unknown result type (might be due to invalid IL or missing references) //IL_3e7a: Unknown result type (might be due to invalid IL or missing references) //IL_3e7c: Unknown result type (might be due to invalid IL or missing references) //IL_3e81: Unknown result type (might be due to invalid IL or missing references) //IL_3e83: Unknown result type (might be due to invalid IL or missing references) //IL_3e88: Unknown result type (might be due to invalid IL or missing references) //IL_3e8a: Unknown result type (might be due to invalid IL or missing references) //IL_3e8f: Unknown result type (might be due to invalid IL or missing references) //IL_3e9a: Unknown result type (might be due to invalid IL or missing references) //IL_3ea1: Unknown result type (might be due to invalid IL or missing references) //IL_3eac: Unknown result type (might be due to invalid IL or missing references) //IL_3eb3: Unknown result type (might be due to invalid IL or missing references) //IL_3eba: Unknown result type (might be due to invalid IL or missing references) //IL_3ebc: Unknown result type (might be due to invalid IL or missing references) //IL_3ec1: Unknown result type (might be due to invalid IL or missing references) //IL_3ec7: Unknown result type (might be due to invalid IL or missing references) //IL_3ecc: Unknown result type (might be due to invalid IL or missing references) //IL_3ed3: Unknown result type (might be due to invalid IL or missing references) //IL_3eda: Unknown result type (might be due to invalid IL or missing references) //IL_3ee2: Expected O, but got Unknown //IL_3eee: Unknown result type (might be due to invalid IL or missing references) //IL_3ef5: Expected O, but got Unknown //IL_3f0f: Unknown result type (might be due to invalid IL or missing references) //IL_3f14: Unknown result type (might be due to invalid IL or missing references) //IL_3f60: Unknown result type (might be due to invalid IL or missing references) //IL_3f65: Unknown result type (might be due to invalid IL or missing references) //IL_3f67: Unknown result type (might be due to invalid IL or missing references) //IL_3f6c: Unknown result type (might be due to invalid IL or missing references) //IL_3f6e: Unknown result type (might be due to invalid IL or missing references) //IL_3f73: Unknown result type (might be due to invalid IL or missing references) //IL_3f75: Unknown result type (might be due to invalid IL or missing references) //IL_3f7a: Unknown result type (might be due to invalid IL or missing references) //IL_3f7c: Unknown result type (might be due to invalid IL or missing references) //IL_3f81: Unknown result type (might be due to invalid IL or missing references) //IL_3f8c: Unknown result type (might be due to invalid IL or missing references) //IL_3f93: Unknown result type (might be due to invalid IL or missing references) //IL_3f9e: Unknown result type (might be due to invalid IL or missing references) //IL_3fa5: Unknown result type (might be due to invalid IL or missing references) //IL_3fac: Unknown result type (might be due to invalid IL or missing references) //IL_3fae: Unknown result type (might be due to invalid IL or missing references) //IL_3fb3: Unknown result type (might be due to invalid IL or missing references) //IL_3fb9: Unknown result type (might be due to invalid IL or missing references) //IL_3fbe: Unknown result type (might be due to invalid IL or missing references) //IL_3fc5: Unknown result type (might be due to invalid IL or missing references) //IL_3fcc: Unknown result type (might be due to invalid IL or missing references) //IL_3fd4: Expected O, but got Unknown //IL_3fe0: Unknown result type (might be due to invalid IL or missing references) //IL_3fe7: Expected O, but got Unknown //IL_4001: Unknown result type (might be due to invalid IL or missing references) //IL_4006: Unknown result type (might be due to invalid IL or missing references) //IL_4052: Unknown result type (might be due to invalid IL or missing references) //IL_4057: Unknown result type (might be due to invalid IL or missing references) //IL_4059: Unknown result type (might be due to invalid IL or missing references) //IL_405e: Unknown result type (might be due to invalid IL or missing references) //IL_4060: Unknown result type (might be due to invalid IL or missing references) //IL_4065: Unknown result type (might be due to invalid IL or missing references) //IL_4067: Unknown result type (might be due to invalid IL or missing references) //IL_406c: Unknown result type (might be due to invalid IL or missing references) //IL_406e: Unknown result type (might be due to invalid IL or missing references) //IL_4073: Unknown result type (might be due to invalid IL or missing references) //IL_407e: Unknown result type (might be due to invalid IL or missing references) //IL_4085: Unknown result type (might be due to invalid IL or missing references) //IL_4090: Unknown result type (might be due to invalid IL or missing references) //IL_4097: Unknown result type (might be due to invalid IL or missing references) //IL_409e: Unknown result type (might be due to invalid IL or missing references) //IL_40a0: Unknown result type (might be due to invalid IL or missing references) //IL_40a5: Unknown result type (might be due to invalid IL or missing references) //IL_40ab: Unknown result type (might be due to invalid IL or missing references) //IL_40b0: Unknown result type (might be due to invalid IL or missing references) //IL_40b7: Unknown result type (might be due to invalid IL or missing references) //IL_40be: Unknown result type (might be due to invalid IL or missing references) //IL_40c6: Expected O, but got Unknown //IL_4204: Unknown result type (might be due to invalid IL or missing references) //IL_420e: Expected O, but got Unknown //IL_15c3: Unknown result type (might be due to invalid IL or missing references) //IL_1682: Unknown result type (might be due to invalid IL or missing references) //IL_1687: Unknown result type (might be due to invalid IL or missing references) //IL_16a6: Unknown result type (might be due to invalid IL or missing references) //IL_16a7: Unknown result type (might be due to invalid IL or missing references) //IL_16ac: Unknown result type (might be due to invalid IL or missing references) //IL_16bc: Expected O, but got Unknown //IL_16bc: Unknown result type (might be due to invalid IL or missing references) //IL_16c3: Unknown result type (might be due to invalid IL or missing references) //IL_16ce: Unknown result type (might be due to invalid IL or missing references) //IL_16d0: Unknown result type (might be due to invalid IL or missing references) //IL_16d5: Unknown result type (might be due to invalid IL or missing references) //IL_16dc: Unknown result type (might be due to invalid IL or missing references) //IL_16e7: Unknown result type (might be due to invalid IL or missing references) //IL_16ee: Unknown result type (might be due to invalid IL or missing references) //IL_16f5: Unknown result type (might be due to invalid IL or missing references) //IL_16fc: Unknown result type (might be due to invalid IL or missing references) //IL_1703: Unknown result type (might be due to invalid IL or missing references) //IL_170a: Unknown result type (might be due to invalid IL or missing references) //IL_1711: Unknown result type (might be due to invalid IL or missing references) //IL_1718: Unknown result type (might be due to invalid IL or missing references) //IL_171f: Unknown result type (might be due to invalid IL or missing references) //IL_172a: Unknown result type (might be due to invalid IL or missing references) //IL_1731: Unknown result type (might be due to invalid IL or missing references) //IL_173c: Unknown result type (might be due to invalid IL or missing references) //IL_1743: Unknown result type (might be due to invalid IL or missing references) //IL_174a: Unknown result type (might be due to invalid IL or missing references) //IL_1755: Unknown result type (might be due to invalid IL or missing references) //IL_175c: Unknown result type (might be due to invalid IL or missing references) //IL_1763: Unknown result type (might be due to invalid IL or missing references) //IL_176a: Unknown result type (might be due to invalid IL or missing references) //IL_1771: Unknown result type (might be due to invalid IL or missing references) //IL_1778: Unknown result type (might be due to invalid IL or missing references) //IL_177f: Unknown result type (might be due to invalid IL or missing references) //IL_1786: Unknown result type (might be due to invalid IL or missing references) //IL_178d: Unknown result type (might be due to invalid IL or missing references) //IL_1794: Unknown result type (might be due to invalid IL or missing references) //IL_179b: Unknown result type (might be due to invalid IL or missing references) //IL_17a2: Unknown result type (might be due to invalid IL or missing references) //IL_17a9: Unknown result type (might be due to invalid IL or missing references) //IL_17b5: Unknown result type (might be due to invalid IL or missing references) //IL_17c0: Unknown result type (might be due to invalid IL or missing references) //IL_17cb: Unknown result type (might be due to invalid IL or missing references) //IL_17d6: Unknown result type (might be due to invalid IL or missing references) //IL_17e1: Unknown result type (might be due to invalid IL or missing references) //IL_17ec: Unknown result type (might be due to invalid IL or missing references) //IL_17f7: Unknown result type (might be due to invalid IL or missing references) //IL_17fe: Unknown result type (might be due to invalid IL or missing references) //IL_1809: Unknown result type (might be due to invalid IL or missing references) //IL_1814: Unknown result type (might be due to invalid IL or missing references) //IL_181f: Unknown result type (might be due to invalid IL or missing references) //IL_182a: Unknown result type (might be due to invalid IL or missing references) //IL_1835: Unknown result type (might be due to invalid IL or missing references) //IL_1840: Unknown result type (might be due to invalid IL or missing references) //IL_184b: Unknown result type (might be due to invalid IL or missing references) //IL_1857: Unknown result type (might be due to invalid IL or missing references) //IL_185e: Unknown result type (might be due to invalid IL or missing references) //IL_1865: Unknown result type (might be due to invalid IL or missing references) //IL_186c: Unknown result type (might be due to invalid IL or missing references) //IL_1873: Unknown result type (might be due to invalid IL or missing references) //IL_187a: Unknown result type (might be due to invalid IL or missing references) //IL_1886: Expected O, but got Unknown //IL_4336: Unknown result type (might be due to invalid IL or missing references) //IL_4340: Expected O, but got Unknown //IL_43ce: Unknown result type (might be due to invalid IL or missing references) //IL_43d8: Expected O, but got Unknown //IL_441a: Unknown result type (might be due to invalid IL or missing references) //IL_4424: Expected O, but got Unknown //IL_4b97: Unknown result type (might be due to invalid IL or missing references) //IL_4ba1: Expected O, but got Unknown //IL_4c5b: Unknown result type (might be due to invalid IL or missing references) //IL_4c65: Expected O, but got Unknown //IL_501e: Unknown result type (might be due to invalid IL or missing references) //IL_5093: Unknown result type (might be due to invalid IL or missing references) //IL_5098: Unknown result type (might be due to invalid IL or missing references) //IL_50be: Unknown result type (might be due to invalid IL or missing references) //IL_510f: Unknown result type (might be due to invalid IL or missing references) //IL_5137: Unknown result type (might be due to invalid IL or missing references) //IL_5161: Unknown result type (might be due to invalid IL or missing references) //IL_5190: Unknown result type (might be due to invalid IL or missing references) //IL_51b0: Unknown result type (might be due to invalid IL or missing references) //IL_51d0: Unknown result type (might be due to invalid IL or missing references) //IL_51f6: Unknown result type (might be due to invalid IL or missing references) //IL_523c: Unknown result type (might be due to invalid IL or missing references) //IL_5266: Unknown result type (might be due to invalid IL or missing references) //IL_5295: Unknown result type (might be due to invalid IL or missing references) //IL_52cf: Unknown result type (might be due to invalid IL or missing references) //IL_52ef: Unknown result type (might be due to invalid IL or missing references) //IL_530f: Unknown result type (might be due to invalid IL or missing references) //IL_534d: Unknown result type (might be due to invalid IL or missing references) //IL_5373: Unknown result type (might be due to invalid IL or missing references) //IL_5378: Unknown result type (might be due to invalid IL or missing references) //IL_537f: Unknown result type (might be due to invalid IL or missing references) //IL_5384: Unknown result type (might be due to invalid IL or missing references) //IL_538f: Unknown result type (might be due to invalid IL or missing references) //IL_539a: Unknown result type (might be due to invalid IL or missing references) //IL_539f: Unknown result type (might be due to invalid IL or missing references) //IL_53a4: Unknown result type (might be due to invalid IL or missing references) //IL_53ab: Unknown result type (might be due to invalid IL or missing references) //IL_53b2: Unknown result type (might be due to invalid IL or missing references) //IL_53b9: Unknown result type (might be due to invalid IL or missing references) //IL_53c5: Unknown result type (might be due to invalid IL or missing references) //IL_53d1: Unknown result type (might be due to invalid IL or missing references) //IL_53dd: Unknown result type (might be due to invalid IL or missing references) //IL_53e9: Expected O, but got Unknown //IL_53ee: Unknown result type (might be due to invalid IL or missing references) //IL_53ff: Unknown result type (might be due to invalid IL or missing references) //IL_540e: Unknown result type (might be due to invalid IL or missing references) //IL_5415: Unknown result type (might be due to invalid IL or missing references) //IL_541c: Unknown result type (might be due to invalid IL or missing references) //IL_5423: Unknown result type (might be due to invalid IL or missing references) //IL_542a: Unknown result type (might be due to invalid IL or missing references) //IL_5435: Unknown result type (might be due to invalid IL or missing references) //IL_5437: Unknown result type (might be due to invalid IL or missing references) //IL_543c: Unknown result type (might be due to invalid IL or missing references) //IL_5447: Unknown result type (might be due to invalid IL or missing references) //IL_5453: Expected O, but got Unknown //IL_545e: Unknown result type (might be due to invalid IL or missing references) //IL_5488: Unknown result type (might be due to invalid IL or missing references) //IL_5493: Unknown result type (might be due to invalid IL or missing references) //IL_549e: Unknown result type (might be due to invalid IL or missing references) //IL_54b0: Unknown result type (might be due to invalid IL or missing references) //IL_54b5: Unknown result type (might be due to invalid IL or missing references) //IL_54b7: Unknown result type (might be due to invalid IL or missing references) //IL_54bc: Unknown result type (might be due to invalid IL or missing references) //IL_54be: Unknown result type (might be due to invalid IL or missing references) //IL_54c8: Expected O, but got Unknown //IL_54cb: Unknown result type (might be due to invalid IL or missing references) //IL_54d0: Unknown result type (might be due to invalid IL or missing references) //IL_54d2: Unknown result type (might be due to invalid IL or missing references) //IL_54d7: Unknown result type (might be due to invalid IL or missing references) //IL_54d9: Unknown result type (might be due to invalid IL or missing references) //IL_54e3: Expected O, but got Unknown //IL_54fd: Unknown result type (might be due to invalid IL or missing references) //IL_553e: Unknown result type (might be due to invalid IL or missing references) //IL_5564: Unknown result type (might be due to invalid IL or missing references) //IL_5569: Unknown result type (might be due to invalid IL or missing references) //IL_5570: Unknown result type (might be due to invalid IL or missing references) //IL_5575: Unknown result type (might be due to invalid IL or missing references) //IL_5580: Unknown result type (might be due to invalid IL or missing references) //IL_558b: Unknown result type (might be due to invalid IL or missing references) //IL_5590: Unknown result type (might be due to invalid IL or missing references) //IL_5595: Unknown result type (might be due to invalid IL or missing references) //IL_559c: Unknown result type (might be due to invalid IL or missing references) //IL_55a3: Unknown result type (might be due to invalid IL or missing references) //IL_55aa: Unknown result type (might be due to invalid IL or missing references) //IL_55b6: Unknown result type (might be due to invalid IL or missing references) //IL_55c2: Unknown result type (might be due to invalid IL or missing references) //IL_55ce: Unknown result type (might be due to invalid IL or missing references) //IL_55da: Expected O, but got Unknown //IL_55df: Unknown result type (might be due to invalid IL or missing references) //IL_55f0: Unknown result type (might be due to invalid IL or missing references) //IL_55ff: Unknown result type (might be due to invalid IL or missing references) //IL_5606: Unknown result type (might be due to invalid IL or missing references) //IL_560d: Unknown result type (might be due to invalid IL or missing references) //IL_5614: Unknown result type (might be due to invalid IL or missing references) //IL_561b: Unknown result type (might be due to invalid IL or missing references) //IL_5626: Unknown result type (might be due to invalid IL or missing references) //IL_5628: Unknown result type (might be due to invalid IL or missing references) //IL_562d: Unknown result type (might be due to invalid IL or missing references) //IL_5638: Unknown result type (might be due to invalid IL or missing references) //IL_5644: Expected O, but got Unknown //IL_5690: Unknown result type (might be due to invalid IL or missing references) //IL_56d4: Unknown result type (might be due to invalid IL or missing references) //IL_56d9: Unknown result type (might be due to invalid IL or missing references) //IL_56e4: Unknown result type (might be due to invalid IL or missing references) //IL_56ef: Unknown result type (might be due to invalid IL or missing references) //IL_56f4: Unknown result type (might be due to invalid IL or missing references) //IL_56f9: Unknown result type (might be due to invalid IL or missing references) //IL_5700: Unknown result type (might be due to invalid IL or missing references) //IL_5707: Unknown result type (might be due to invalid IL or missing references) //IL_570e: Unknown result type (might be due to invalid IL or missing references) //IL_571a: Unknown result type (might be due to invalid IL or missing references) //IL_5726: Unknown result type (might be due to invalid IL or missing references) //IL_5732: Unknown result type (might be due to invalid IL or missing references) //IL_573e: Expected O, but got Unknown //IL_5749: Unknown result type (might be due to invalid IL or missing references) //IL_574e: Unknown result type (might be due to invalid IL or missing references) //IL_575e: Unknown result type (might be due to invalid IL or missing references) //IL_5769: Unknown result type (might be due to invalid IL or missing references) //IL_576e: Unknown result type (might be due to invalid IL or missing references) //IL_5773: Unknown result type (might be due to invalid IL or missing references) //IL_577a: Unknown result type (might be due to invalid IL or missing references) //IL_5781: Unknown result type (might be due to invalid IL or missing references) //IL_5788: Unknown result type (might be due to invalid IL or missing references) //IL_5794: Unknown result type (might be due to invalid IL or missing references) //IL_57a0: Unknown result type (might be due to invalid IL or missing references) //IL_57ac: Unknown result type (might be due to invalid IL or missing references) //IL_57b8: Expected O, but got Unknown //IL_57d3: Unknown result type (might be due to invalid IL or missing references) //IL_57f8: Unknown result type (might be due to invalid IL or missing references) //IL_5818: Unknown result type (might be due to invalid IL or missing references) //IL_5822: Expected O, but got Unknown //IL_5977: Unknown result type (might be due to invalid IL or missing references) //IL_5981: Expected O, but got Unknown //IL_5b7d: Unknown result type (might be due to invalid IL or missing references) //IL_5bcd: Unknown result type (might be due to invalid IL or missing references) //IL_5d7b: Unknown result type (might be due to invalid IL or missing references) //IL_5d81: Invalid comparison between Unknown and I4 //IL_5f1d: Unknown result type (might be due to invalid IL or missing references) //IL_5f22: Unknown result type (might be due to invalid IL or missing references) //IL_5f2d: Unknown result type (might be due to invalid IL or missing references) //IL_5f2e: Unknown result type (might be due to invalid IL or missing references) //IL_5f33: Unknown result type (might be due to invalid IL or missing references) //IL_5f38: Unknown result type (might be due to invalid IL or missing references) //IL_5f43: Unknown result type (might be due to invalid IL or missing references) //IL_5f4e: Unknown result type (might be due to invalid IL or missing references) //IL_5f55: Unknown result type (might be due to invalid IL or missing references) //IL_5f5c: Unknown result type (might be due to invalid IL or missing references) //IL_5f63: Unknown result type (might be due to invalid IL or missing references) //IL_5f6f: Unknown result type (might be due to invalid IL or missing references) //IL_5f80: Expected O, but got Unknown //IL_5f81: Unknown result type (might be due to invalid IL or missing references) //IL_5f86: Unknown result type (might be due to invalid IL or missing references) //IL_5f91: Unknown result type (might be due to invalid IL or missing references) //IL_5f92: Unknown result type (might be due to invalid IL or missing references) //IL_5f97: Unknown result type (might be due to invalid IL or missing references) //IL_5f9c: Unknown result type (might be due to invalid IL or missing references) //IL_5fa7: Unknown result type (might be due to invalid IL or missing references) //IL_5fb2: Unknown result type (might be due to invalid IL or missing references) //IL_5fb9: Unknown result type (might be due to invalid IL or missing references) //IL_5fc0: Unknown result type (might be due to invalid IL or missing references) //IL_5fc7: Unknown result type (might be due to invalid IL or missing references) //IL_5fd3: Unknown result type (might be due to invalid IL or missing references) //IL_5fe4: Expected O, but got Unknown //IL_5fe5: Unknown result type (might be due to invalid IL or missing references) //IL_5fea: Unknown result type (might be due to invalid IL or missing references) //IL_5ff5: Unknown result type (might be due to invalid IL or missing references) //IL_5ff6: Unknown result type (might be due to invalid IL or missing references) //IL_5ffb: Unknown result type (might be due to invalid IL or missing references) //IL_6000: Unknown result type (might be due to invalid IL or missing references) //IL_600b: Unknown result type (might be due to invalid IL or missing references) //IL_6016: Unknown result type (might be due to invalid IL or missing references) //IL_601d: Unknown result type (might be due to invalid IL or missing references) //IL_6024: Unknown result type (might be due to invalid IL or missing references) //IL_602b: Unknown result type (might be due to invalid IL or missing references) //IL_6037: Unknown result type (might be due to invalid IL or missing references) //IL_6048: Expected O, but got Unknown //IL_6462: Unknown result type (might be due to invalid IL or missing references) //IL_646e: Unknown result type (might be due to invalid IL or missing references) //IL_651c: Unknown result type (might be due to invalid IL or missing references) //IL_6526: Expected O, but got Unknown //IL_65a1: Unknown result type (might be due to invalid IL or missing references) //IL_6643: Unknown result type (might be due to invalid IL or missing references) //IL_6648: Unknown result type (might be due to invalid IL or missing references) //IL_6653: Unknown result type (might be due to invalid IL or missing references) //IL_665e: Unknown result type (might be due to invalid IL or missing references) //IL_665f: Unknown result type (might be due to invalid IL or missing references) //IL_6664: Unknown result type (might be due to invalid IL or missing references) //IL_6669: Unknown result type (might be due to invalid IL or missing references) //IL_6670: Unknown result type (might be due to invalid IL or missing references) //IL_667b: Unknown result type (might be due to invalid IL or missing references) //IL_6682: Unknown result type (might be due to invalid IL or missing references) //IL_6689: Unknown result type (might be due to invalid IL or missing references) //IL_6690: Unknown result type (might be due to invalid IL or missing references) //IL_669c: Unknown result type (might be due to invalid IL or missing references) //IL_66ad: Expected O, but got Unknown //IL_66ae: Unknown result type (might be due to invalid IL or missing references) //IL_66b3: Unknown result type (might be due to invalid IL or missing references) //IL_66be: Unknown result type (might be due to invalid IL or missing references) //IL_66c9: Unknown result type (might be due to invalid IL or missing references) //IL_66ca: Unknown result type (might be due to invalid IL or missing references) //IL_66cf: Unknown result type (might be due to invalid IL or missing references) //IL_66d4: Unknown result type (might be due to invalid IL or missing references) //IL_66db: Unknown result type (might be due to invalid IL or missing references) //IL_66e6: Unknown result type (might be due to invalid IL or missing references) //IL_66ed: Unknown result type (might be due to invalid IL or missing references) //IL_66f4: Unknown result type (might be due to invalid IL or missing references) //IL_66fb: Unknown result type (might be due to invalid IL or missing references) //IL_6707: Unknown result type (might be due to invalid IL or missing references) //IL_6718: Expected O, but got Unknown //IL_6719: Unknown result type (might be due to invalid IL or missing references) //IL_671e: Unknown result type (might be due to invalid IL or missing references) //IL_6729: Unknown result type (might be due to invalid IL or missing references) //IL_6734: Unknown result type (might be due to invalid IL or missing references) //IL_6735: Unknown result type (might be due to invalid IL or missing references) //IL_673a: Unknown result type (might be due to invalid IL or missing references) //IL_673f: Unknown result type (might be due to invalid IL or missing references) //IL_6746: Unknown result type (might be due to invalid IL or missing references) //IL_6751: Unknown result type (might be due to invalid IL or missing references) //IL_6758: Unknown result type (might be due to invalid IL or missing references) //IL_675f: Unknown result type (might be due to invalid IL or missing references) //IL_6766: Unknown result type (might be due to invalid IL or missing references) //IL_6772: Unknown result type (might be due to invalid IL or missing references) //IL_6783: Expected O, but got Unknown //IL_6784: Unknown result type (might be due to invalid IL or missing references) //IL_6789: Unknown result type (might be due to invalid IL or missing references) //IL_6794: Unknown result type (might be due to invalid IL or missing references) //IL_679f: Unknown result type (might be due to invalid IL or missing references) //IL_67a0: Unknown result type (might be due to invalid IL or missing references) //IL_67a5: Unknown result type (might be due to invalid IL or missing references) //IL_67aa: Unknown result type (might be due to invalid IL or missing references) //IL_67b1: Unknown result type (might be due to invalid IL or missing references) //IL_67bc: Unknown result type (might be due to invalid IL or missing references) //IL_67c3: Unknown result type (might be due to invalid IL or missing references) //IL_67ca: Unknown result type (might be due to invalid IL or missing references) //IL_67d1: Unknown result type (might be due to invalid IL or missing references) //IL_67dd: Unknown result type (might be due to invalid IL or missing references) //IL_67ee: Expected O, but got Unknown //IL_67ef: Unknown result type (might be due to invalid IL or missing references) //IL_67f4: Unknown result type (might be due to invalid IL or missing references) //IL_67ff: Unknown result type (might be due to invalid IL or missing references) //IL_680a: Unknown result type (might be due to invalid IL or missing references) //IL_680b: Unknown result type (might be due to invalid IL or missing references) //IL_6810: Unknown result type (might be due to invalid IL or missing references) //IL_6815: Unknown result type (might be due to invalid IL or missing references) //IL_681c: Unknown result type (might be due to invalid IL or missing references) //IL_6827: Unknown result type (might be due to invalid IL or missing references) //IL_682e: Unknown result type (might be due to invalid IL or missing references) //IL_6835: Unknown result type (might be due to invalid IL or missing references) //IL_683c: Unknown result type (might be due to invalid IL or missing references) //IL_6848: Unknown result type (might be due to invalid IL or missing references) //IL_6859: Expected O, but got Unknown //IL_685a: Unknown result type (might be due to invalid IL or missing references) //IL_685f: Unknown result type (might be due to invalid IL or missing references) //IL_686a: Unknown result type (might be due to invalid IL or missing references) //IL_6875: Unknown result type (might be due to invalid IL or missing references) //IL_6876: Unknown result type (might be due to invalid IL or missing references) //IL_687b: Unknown result type (might be due to invalid IL or missing references) //IL_6880: Unknown result type (might be due to invalid IL or missing references) //IL_6887: Unknown result type (might be due to invalid IL or missing references) //IL_6892: Unknown result type (might be due to invalid IL or missing references) //IL_6899: Unknown result type (might be due to invalid IL or missing references) //IL_68a0: Unknown result type (might be due to invalid IL or missing references) //IL_68a7: Unknown result type (might be due to invalid IL or missing references) //IL_68b3: Unknown result type (might be due to invalid IL or missing references) //IL_68c4: Expected O, but got Unknown //IL_68c5: Unknown result type (might be due to invalid IL or missing references) //IL_68ca: Unknown result type (might be due to invalid IL or missing references) //IL_68d5: Unknown result type (might be due to invalid IL or missing references) //IL_68e0: Unknown result type (might be due to invalid IL or missing references) //IL_68e1: Unknown result type (might be due to invalid IL or missing references) //IL_68e6: Unknown result type (might be due to invalid IL or missing references) //IL_68eb: Unknown result type (might be due to invalid IL or missing references) //IL_68f2: Unknown result type (might be due to invalid IL or missing references) //IL_68fd: Unknown result type (might be due to invalid IL or missing references) //IL_6904: Unknown result type (might be due to invalid IL or missing references) //IL_690b: Unknown result type (might be due to invalid IL or missing references) //IL_6912: Unknown result type (might be due to invalid IL or missing references) //IL_691e: Unknown result type (might be due to invalid IL or missing references) //IL_692f: Expected O, but got Unknown //IL_6a16: Unknown result type (might be due to invalid IL or missing references) //IL_6bba: Unknown result type (might be due to invalid IL or missing references) //IL_6c1c: Unknown result type (might be due to invalid IL or missing references) //IL_6c21: Unknown result type (might be due to invalid IL or missing references) //IL_6c23: Unknown result type (might be due to invalid IL or missing references) //IL_6c28: Unknown result type (might be due to invalid IL or missing references) //IL_6c39: Expected O, but got Unknown //IL_6c45: Unknown result type (might be due to invalid IL or missing references) //IL_6c4a: Unknown result type (might be due to invalid IL or missing references) //IL_6c4c: Unknown result type (might be due to invalid IL or missing references) //IL_6c51: Unknown result type (might be due to invalid IL or missing references) //IL_6c62: Expected O, but got Unknown //IL_74a3: Unknown result type (might be due to invalid IL or missing references) //IL_74af: Unknown result type (might be due to invalid IL or missing references) //IL_7549: Unknown result type (might be due to invalid IL or missing references) //IL_75ab: Unknown result type (might be due to invalid IL or missing references) //IL_75b0: Unknown result type (might be due to invalid IL or missing references) //IL_75b2: Unknown result type (might be due to invalid IL or missing references) //IL_75b7: Unknown result type (might be due to invalid IL or missing references) //IL_75c8: Expected O, but got Unknown //IL_75d4: Unknown result type (might be due to invalid IL or missing references) //IL_75d9: Unknown result type (might be due to invalid IL or missing references) //IL_75db: Unknown result type (might be due to invalid IL or missing references) //IL_75e0: Unknown result type (might be due to invalid IL or missing references) //IL_75f1: Expected O, but got Unknown //IL_76e5: Unknown result type (might be due to invalid IL or missing references) //IL_77e1: Unknown result type (might be due to invalid IL or missing references) //IL_77e8: Expected O, but got Unknown //IL_7804: Unknown result type (might be due to invalid IL or missing references) //IL_783a: Unknown result type (might be due to invalid IL or missing references) //IL_783c: Unknown result type (might be due to invalid IL or missing references) //IL_7845: Unknown result type (might be due to invalid IL or missing references) //IL_787b: Unknown result type (might be due to invalid IL or missing references) //IL_787d: Unknown result type (might be due to invalid IL or missing references) //IL_7886: Unknown result type (might be due to invalid IL or missing references) //IL_78bc: Unknown result type (might be due to invalid IL or missing references) //IL_78be: Unknown result type (might be due to invalid IL or missing references) //IL_7f54: Unknown result type (might be due to invalid IL or missing references) //IL_7f63: Unknown result type (might be due to invalid IL or missing references) //IL_7f68: Unknown result type (might be due to invalid IL or missing references) //IL_8012: Unknown result type (might be due to invalid IL or missing references) //IL_8021: Unknown result type (might be due to invalid IL or missing references) //IL_8026: Unknown result type (might be due to invalid IL or missing references) //IL_8183: Unknown result type (might be due to invalid IL or missing references) //IL_8192: Unknown result type (might be due to invalid IL or missing references) //IL_8197: Unknown result type (might be due to invalid IL or missing references) //IL_8254: Unknown result type (might be due to invalid IL or missing references) //IL_8263: Unknown result type (might be due to invalid IL or missing references) //IL_8268: Unknown result type (might be due to invalid IL or missing references) //IL_835c: Unknown result type (might be due to invalid IL or missing references) //IL_836b: Unknown result type (might be due to invalid IL or missing references) //IL_8370: Unknown result type (might be due to invalid IL or missing references) //IL_8538: Unknown result type (might be due to invalid IL or missing references) //IL_8546: Unknown result type (might be due to invalid IL or missing references) //IL_8569: Unknown result type (might be due to invalid IL or missing references) //IL_8577: Unknown result type (might be due to invalid IL or missing references) //IL_8599: Unknown result type (might be due to invalid IL or missing references) //IL_85a7: Unknown result type (might be due to invalid IL or missing references) //IL_85ca: Unknown result type (might be due to invalid IL or missing references) //IL_85d8: Unknown result type (might be due to invalid IL or missing references) //IL_85fb: Unknown result type (might be due to invalid IL or missing references) //IL_8609: Unknown result type (might be due to invalid IL or missing references) //IL_862d: Unknown result type (might be due to invalid IL or missing references) //IL_863b: Unknown result type (might be due to invalid IL or missing references) //IL_87b9: Unknown result type (might be due to invalid IL or missing references) //IL_87c3: Unknown result type (might be due to invalid IL or missing references) //IL_883b: Unknown result type (might be due to invalid IL or missing references) //IL_8849: Unknown result type (might be due to invalid IL or missing references) //IL_886f: Unknown result type (might be due to invalid IL or missing references) //IL_887d: Unknown result type (might be due to invalid IL or missing references) //IL_8954: Unknown result type (might be due to invalid IL or missing references) //IL_8977: Unknown result type (might be due to invalid IL or missing references) //IL_897c: Unknown result type (might be due to invalid IL or missing references) //IL_8987: Unknown result type (might be due to invalid IL or missing references) //IL_8992: Unknown result type (might be due to invalid IL or missing references) //IL_899d: Unknown result type (might be due to invalid IL or missing references) //IL_89ad: Expected O, but got Unknown //IL_89cc: Unknown result type (might be due to invalid IL or missing references) //IL_89d4: Unknown result type (might be due to invalid IL or missing references) //IL_8a7d: Unknown result type (might be due to invalid IL or missing references) //IL_8a9b: Unknown result type (might be due to invalid IL or missing references) //IL_8a9d: Unknown result type (might be due to invalid IL or missing references) //IL_8add: Unknown result type (might be due to invalid IL or missing references) //IL_8b00: Unknown result type (might be due to invalid IL or missing references) //IL_8b05: Unknown result type (might be due to invalid IL or missing references) //IL_8b10: Unknown result type (might be due to invalid IL or missing references) //IL_8b1b: Unknown result type (might be due to invalid IL or missing references) //IL_8b26: Unknown result type (might be due to invalid IL or missing references) //IL_8b36: Expected O, but got Unknown //IL_8b55: Unknown result type (might be due to invalid IL or missing references) //IL_8b5d: Unknown result type (might be due to invalid IL or missing references) //IL_8c06: Unknown result type (might be due to invalid IL or missing references) //IL_8c24: Unknown result type (might be due to invalid IL or missing references) //IL_8c26: Unknown result type (might be due to invalid IL or missing references) //IL_8c66: Unknown result type (might be due to invalid IL or missing references) //IL_8c89: Unknown result type (might be due to invalid IL or missing references) //IL_8c8e: Unknown result type (might be due to invalid IL or missing references) //IL_8c99: Unknown result type (might be due to invalid IL or missing references) //IL_8ca4: Unknown result type (might be due to invalid IL or missing references) //IL_8caf: Unknown result type (might be due to invalid IL or missing references) //IL_8cbf: Expected O, but got Unknown //IL_8cde: Unknown result type (might be due to invalid IL or missing references) //IL_8ce6: Unknown result type (might be due to invalid IL or missing references) //IL_8d8f: Unknown result type (might be due to invalid IL or missing references) //IL_8dad: Unknown result type (might be due to invalid IL or missing references) //IL_8daf: Unknown result type (might be due to invalid IL or missing references) //IL_90cc: Unknown result type (might be due to invalid IL or missing references) //IL_90da: Unknown result type (might be due to invalid IL or missing references) //IL_9101: Unknown result type (might be due to invalid IL or missing references) //IL_910f: Unknown result type (might be due to invalid IL or missing references) //IL_9135: Unknown result type (might be due to invalid IL or missing references) //IL_9142: Unknown result type (might be due to invalid IL or missing references) //IL_9169: Unknown result type (might be due to invalid IL or missing references) //IL_9177: Unknown result type (might be due to invalid IL or missing references) //IL_91fb: Unknown result type (might be due to invalid IL or missing references) //IL_9202: Expected O, but got Unknown //IL_922c: Unknown result type (might be due to invalid IL or missing references) //IL_9231: Unknown result type (might be due to invalid IL or missing references) //IL_9296: Unknown result type (might be due to invalid IL or missing references) //IL_929d: Expected O, but got Unknown //IL_92c7: Unknown result type (might be due to invalid IL or missing references) //IL_92cc: Unknown result type (might be due to invalid IL or missing references) //IL_9322: Unknown result type (might be due to invalid IL or missing references) //IL_9329: Expected O, but got Unknown //IL_9347: Unknown result type (might be due to invalid IL or missing references) //IL_934c: Unknown result type (might be due to invalid IL or missing references) //IL_93cc: Unknown result type (might be due to invalid IL or missing references) //IL_9439: Unknown result type (might be due to invalid IL or missing references) //IL_943e: Unknown result type (might be due to invalid IL or missing references) //IL_9440: Unknown result type (might be due to invalid IL or missing references) //IL_9445: Unknown result type (might be due to invalid IL or missing references) //IL_9456: Expected O, but got Unknown //IL_9464: Unknown result type (might be due to invalid IL or missing references) //IL_946b: Expected O, but got Unknown //IL_946e: Unknown result type (might be due to invalid IL or missing references) //IL_947d: Unknown result type (might be due to invalid IL or missing references) //IL_9484: Expected O, but got Unknown //IL_948e: Unknown result type (might be due to invalid IL or missing references) //IL_9493: Unknown result type (might be due to invalid IL or missing references) //IL_949e: Unknown result type (might be due to invalid IL or missing references) //IL_94a0: Unknown result type (might be due to invalid IL or missing references) //IL_94a5: Unknown result type (might be due to invalid IL or missing references) //IL_94ac: Unknown result type (might be due to invalid IL or missing references) //IL_94b3: Unknown result type (might be due to invalid IL or missing references) //IL_94ba: Unknown result type (might be due to invalid IL or missing references) //IL_94c1: Unknown result type (might be due to invalid IL or missing references) //IL_94c8: Unknown result type (might be due to invalid IL or missing references) //IL_94d4: Expected O, but got Unknown //IL_94d6: Unknown result type (might be due to invalid IL or missing references) //IL_94db: Unknown result type (might be due to invalid IL or missing references) //IL_94ec: Unknown result type (might be due to invalid IL or missing references) //IL_94ee: Unknown result type (might be due to invalid IL or missing references) //IL_94f3: Unknown result type (might be due to invalid IL or missing references) //IL_94fa: Unknown result type (might be due to invalid IL or missing references) //IL_9501: Unknown result type (might be due to invalid IL or missing references) //IL_9508: Unknown result type (might be due to invalid IL or missing references) //IL_950f: Unknown result type (might be due to invalid IL or missing references) //IL_9516: Unknown result type (might be due to invalid IL or missing references) //IL_9522: Expected O, but got Unknown //IL_95c0: Unknown result type (might be due to invalid IL or missing references) //IL_95c7: Expected O, but got Unknown //IL_95f1: Unknown result type (might be due to invalid IL or missing references) //IL_95f6: Unknown result type (might be due to invalid IL or missing references) //IL_965b: Unknown result type (might be due to invalid IL or missing references) //IL_9662: Expected O, but got Unknown //IL_968c: Unknown result type (might be due to invalid IL or missing references) //IL_9691: Unknown result type (might be due to invalid IL or missing references) //IL_96e7: Unknown result type (might be due to invalid IL or missing references) //IL_96ee: Expected O, but got Unknown //IL_970c: Unknown result type (might be due to invalid IL or missing references) //IL_9711: Unknown result type (might be due to invalid IL or missing references) //IL_9791: Unknown result type (might be due to invalid IL or missing references) //IL_97fe: Unknown result type (might be due to invalid IL or missing references) //IL_9803: Unknown result type (might be due to invalid IL or missing references) //IL_9805: Unknown result type (might be due to invalid IL or missing references) //IL_980a: Unknown result type (might be due to invalid IL or missing references) //IL_981b: Expected O, but got Unknown //IL_9829: Unknown result type (might be due to invalid IL or missing references) //IL_9830: Expected O, but got Unknown //IL_9833: Unknown result type (might be due to invalid IL or missing references) //IL_9842: Unknown result type (might be due to invalid IL or missing references) //IL_9849: Expected O, but got Unknown //IL_9853: Unknown result type (might be due to invalid IL or missing references) //IL_9858: Unknown result type (might be due to invalid IL or missing references) //IL_9863: Unknown result type (might be due to invalid IL or missing references) //IL_9865: Unknown result type (might be due to invalid IL or missing references) //IL_986a: Unknown result type (might be due to invalid IL or missing references) //IL_9871: Unknown result type (might be due to invalid IL or missing references) //IL_9878: Unknown result type (might be due to invalid IL or missing references) //IL_987f: Unknown result type (might be due to invalid IL or missing references) //IL_9886: Unknown result type (might be due to invalid IL or missing references) //IL_988d: Unknown result type (might be due to invalid IL or missing references) //IL_9899: Expected O, but got Unknown //IL_989b: Unknown result type (might be due to invalid IL or missing references) //IL_98a0: Unknown result type (might be due to invalid IL or missing references) //IL_98b1: Unknown result type (might be due to invalid IL or missing references) //IL_98b3: Unknown result type (might be due to invalid IL or missing references) //IL_98b8: Unknown result type (might be due to invalid IL or missing references) //IL_98bf: Unknown result type (might be due to invalid IL or missing references) //IL_98c6: Unknown result type (might be due to invalid IL or missing references) //IL_98cd: Unknown result type (might be due to invalid IL or missing references) //IL_98d4: Unknown result type (might be due to invalid IL or missing references) //IL_98db: Unknown result type (might be due to invalid IL or missing references) //IL_98e7: Expected O, but got Unknown //IL_69bd: Unknown result type (might be due to invalid IL or missing references) //IL_69c7: Expected O, but got Unknown //IL_69e7: Unknown result type (might be due to invalid IL or missing references) //IL_9c65: Unknown result type (might be due to invalid IL or missing references) //IL_9c93: Unknown result type (might be due to invalid IL or missing references) //IL_9cc1: Unknown result type (might be due to invalid IL or missing references) //IL_9cef: Unknown result type (might be due to invalid IL or missing references) //IL_9d1d: Unknown result type (might be due to invalid IL or missing references) //IL_9d4b: Unknown result type (might be due to invalid IL or missing references) //IL_9d79: Unknown result type (might be due to invalid IL or missing references) //IL_9da7: Unknown result type (might be due to invalid IL or missing references) //IL_a1c8: Unknown result type (might be due to invalid IL or missing references) //IL_a380: Unknown result type (might be due to invalid IL or missing references) //IL_a3af: Unknown result type (might be due to invalid IL or missing references) //IL_a3de: Unknown result type (might be due to invalid IL or missing references) //IL_a40d: Unknown result type (might be due to invalid IL or missing references) //IL_a43c: Unknown result type (might be due to invalid IL or missing references) //IL_a46b: Unknown result type (might be due to invalid IL or missing references) //IL_a49a: Unknown result type (might be due to invalid IL or missing references) //IL_a4c9: Unknown result type (might be due to invalid IL or missing references) //IL_aab2: Unknown result type (might be due to invalid IL or missing references) //IL_aaba: Unknown result type (might be due to invalid IL or missing references) //IL_aac2: Unknown result type (might be due to invalid IL or missing references) //IL_aac9: Unknown result type (might be due to invalid IL or missing references) //IL_abd4: Unknown result type (might be due to invalid IL or missing references) //IL_abe9: Unknown result type (might be due to invalid IL or missing references) //IL_ac01: Unknown result type (might be due to invalid IL or missing references) //IL_ac19: Unknown result type (might be due to invalid IL or missing references) //IL_ac6c: Unknown result type (might be due to invalid IL or missing references) //IL_ac8a: Unknown result type (might be due to invalid IL or missing references) //IL_acaa: Unknown result type (might be due to invalid IL or missing references) //IL_acca: Unknown result type (might be due to invalid IL or missing references) //IL_ad18: Unknown result type (might be due to invalid IL or missing references) //IL_ad26: Unknown result type (might be due to invalid IL or missing references) //IL_ad4c: Unknown result type (might be due to invalid IL or missing references) //IL_ad5a: Unknown result type (might be due to invalid IL or missing references) //IL_ad7f: Unknown result type (might be due to invalid IL or missing references) //IL_ad8d: Unknown result type (might be due to invalid IL or missing references) //IL_aeca: Unknown result type (might be due to invalid IL or missing references) //IL_aed8: Unknown result type (might be due to invalid IL or missing references) //IL_aeff: Unknown result type (might be due to invalid IL or missing references) //IL_af0d: Unknown result type (might be due to invalid IL or missing references) //IL_af32: Unknown result type (might be due to invalid IL or missing references) //IL_af40: Unknown result type (might be due to invalid IL or missing references) //IL_af66: Unknown result type (might be due to invalid IL or missing references) //IL_af74: Unknown result type (might be due to invalid IL or missing references) //IL_af9a: Unknown result type (might be due to invalid IL or missing references) //IL_afa8: Unknown result type (might be due to invalid IL or missing references) //IL_afcd: Unknown result type (might be due to invalid IL or missing references) //IL_afdb: Unknown result type (might be due to invalid IL or missing references) //IL_b001: Unknown result type (might be due to invalid IL or missing references) //IL_b00f: Unknown result type (might be due to invalid IL or missing references) //IL_b036: Unknown result type (might be due to invalid IL or missing references) //IL_b044: Unknown result type (might be due to invalid IL or missing references) //IL_b06a: Unknown result type (might be due to invalid IL or missing references) //IL_b077: Unknown result type (might be due to invalid IL or missing references) //IL_b09d: Unknown result type (might be due to invalid IL or missing references) //IL_b0ab: Unknown result type (might be due to invalid IL or missing references) //IL_b20f: Unknown result type (might be due to invalid IL or missing references) //IL_b223: Unknown result type (might be due to invalid IL or missing references) //IL_b248: Unknown result type (might be due to invalid IL or missing references) //IL_b25c: Unknown result type (might be due to invalid IL or missing references) //IL_b283: Unknown result type (might be due to invalid IL or missing references) //IL_b297: Unknown result type (might be due to invalid IL or missing references) //IL_b2b4: Unknown result type (might be due to invalid IL or missing references) //IL_b2b9: Unknown result type (might be due to invalid IL or missing references) //IL_b3e9: Unknown result type (might be due to invalid IL or missing references) //IL_b70b: Unknown result type (might be due to invalid IL or missing references) //IL_b710: Unknown result type (might be due to invalid IL or missing references) //IL_b71b: Unknown result type (might be due to invalid IL or missing references) //IL_b727: Expected O, but got Unknown //IL_b8be: Unknown result type (might be due to invalid IL or missing references) //IL_b8fe: Unknown result type (might be due to invalid IL or missing references) //IL_b903: Unknown result type (might be due to invalid IL or missing references) //IL_b9b6: Unknown result type (might be due to invalid IL or missing references) //IL_ba58: Unknown result type (might be due to invalid IL or missing references) //IL_ba5d: Unknown result type (might be due to invalid IL or missing references) //IL_bb10: Unknown result type (might be due to invalid IL or missing references) //IL_bbb2: Unknown result type (might be due to invalid IL or missing references) //IL_bbb7: Unknown result type (might be due to invalid IL or missing references) //IL_bc6a: Unknown result type (might be due to invalid IL or missing references) //IL_bd0c: Unknown result type (might be due to invalid IL or missing references) //IL_bd11: Unknown result type (might be due to invalid IL or missing references) //IL_bdb7: Unknown result type (might be due to invalid IL or missing references) //IL_bdda: Unknown result type (might be due to invalid IL or missing references) //IL_bddf: Unknown result type (might be due to invalid IL or missing references) //IL_bdea: Unknown result type (might be due to invalid IL or missing references) //IL_bdf5: Unknown result type (might be due to invalid IL or missing references) //IL_be00: Unknown result type (might be due to invalid IL or missing references) //IL_be10: Expected O, but got Unknown //IL_be2f: Unknown result type (might be due to invalid IL or missing references) //IL_be37: Unknown result type (might be due to invalid IL or missing references) //IL_bee0: Unknown result type (might be due to invalid IL or missing references) //IL_befe: Unknown result type (might be due to invalid IL or missing references) //IL_bf00: Unknown result type (might be due to invalid IL or missing references) //IL_bfae: Unknown result type (might be due to invalid IL or missing references) //IL_bfd1: Unknown result type (might be due to invalid IL or missing references) //IL_bfd6: Unknown result type (might be due to invalid IL or missing references) //IL_bfe1: Unknown result type (might be due to invalid IL or missing references) //IL_bfec: Unknown result type (might be due to invalid IL or missing references) //IL_bff7: Unknown result type (might be due to invalid IL or missing references) //IL_c007: Expected O, but got Unknown //IL_c026: Unknown result type (might be due to invalid IL or missing references) //IL_c02e: Unknown result type (might be due to invalid IL or missing references) //IL_c0d7: Unknown result type (might be due to invalid IL or missing references) //IL_c0f5: Unknown result type (might be due to invalid IL or missing references) //IL_c0f7: Unknown result type (might be due to invalid IL or missing references) //IL_c1eb: Unknown result type (might be due to invalid IL or missing references) //IL_c1f7: Unknown result type (might be due to invalid IL or missing references) //IL_c21c: Unknown result type (might be due to invalid IL or missing references) //IL_c229: Unknown result type (might be due to invalid IL or missing references) //IL_c2ad: Unknown result type (might be due to invalid IL or missing references) //IL_c2b4: Expected O, but got Unknown //IL_c2d2: Unknown result type (might be due to invalid IL or missing references) //IL_c2d7: Unknown result type (might be due to invalid IL or missing references) //IL_c316: Unknown result type (might be due to invalid IL or missing references) //IL_c383: Unknown result type (might be due to invalid IL or missing references) //IL_c388: Unknown result type (might be due to invalid IL or missing references) //IL_c38a: Unknown result type (might be due to invalid IL or missing references) //IL_c38f: Unknown result type (might be due to invalid IL or missing references) //IL_c3a0: Expected O, but got Unknown //IL_c3ae: Unknown result type (might be due to invalid IL or missing references) //IL_c3b3: Unknown result type (might be due to invalid IL or missing references) //IL_c3b5: Unknown result type (might be due to invalid IL or missing references) //IL_c3ba: Unknown result type (might be due to invalid IL or missing references) //IL_c3cb: Expected O, but got Unknown //IL_c4a6: Unknown result type (might be due to invalid IL or missing references) //IL_c4b3: Unknown result type (might be due to invalid IL or missing references) //IL_c4d8: Unknown result type (might be due to invalid IL or missing references) //IL_c4e5: Unknown result type (might be due to invalid IL or missing references) //IL_c569: Unknown result type (might be due to invalid IL or missing references) //IL_c570: Expected O, but got Unknown //IL_c58e: Unknown result type (might be due to invalid IL or missing references) //IL_c593: Unknown result type (might be due to invalid IL or missing references) //IL_c5d2: Unknown result type (might be due to invalid IL or missing references) //IL_c63f: Unknown result type (might be due to invalid IL or missing references) //IL_c644: Unknown result type (might be due to invalid IL or missing references) //IL_c646: Unknown result type (might be due to invalid IL or missing references) //IL_c64b: Unknown result type (might be due to invalid IL or missing references) //IL_c65c: Expected O, but got Unknown //IL_c66a: Unknown result type (might be due to invalid IL or missing references) //IL_c66f: Unknown result type (might be due to invalid IL or missing references) //IL_c671: Unknown result type (might be due to invalid IL or missing references) //IL_c676: Unknown result type (might be due to invalid IL or missing references) //IL_c687: Expected O, but got Unknown //IL_c9ac: Unknown result type (might be due to invalid IL or missing references) //IL_c9b6: Expected O, but got Unknown //IL_cc22: Unknown result type (might be due to invalid IL or missing references) //IL_cc27: Unknown result type (might be due to invalid IL or missing references) //IL_cc29: Unknown result type (might be due to invalid IL or missing references) //IL_cc2e: Unknown result type (might be due to invalid IL or missing references) //IL_cc30: Unknown result type (might be due to invalid IL or missing references) //IL_cc35: Unknown result type (might be due to invalid IL or missing references) //IL_cc3c: Unknown result type (might be due to invalid IL or missing references) //IL_cc43: Unknown result type (might be due to invalid IL or missing references) //IL_cc4e: Unknown result type (might be due to invalid IL or missing references) //IL_cc55: Unknown result type (might be due to invalid IL or missing references) //IL_cc5c: Unknown result type (might be due to invalid IL or missing references) //IL_cc63: Unknown result type (might be due to invalid IL or missing references) //IL_cc6b: Unknown result type (might be due to invalid IL or missing references) //IL_cc73: Unknown result type (might be due to invalid IL or missing references) //IL_cc7a: Unknown result type (might be due to invalid IL or missing references) //IL_cc81: Unknown result type (might be due to invalid IL or missing references) //IL_cc88: Unknown result type (might be due to invalid IL or missing references) //IL_cc8f: Unknown result type (might be due to invalid IL or missing references) //IL_cc9b: Expected O, but got Unknown //IL_cca0: Unknown result type (might be due to invalid IL or missing references) //IL_cca5: Unknown result type (might be due to invalid IL or missing references) //IL_cca7: Unknown result type (might be due to invalid IL or missing references) //IL_ccac: Unknown result type (might be due to invalid IL or missing references) //IL_ccae: Unknown result type (might be due to invalid IL or missing references) //IL_ccb3: Unknown result type (might be due to invalid IL or missing references) //IL_ccba: Unknown result type (might be due to invalid IL or missing references) //IL_ccc1: Unknown result type (might be due to invalid IL or missing references) //IL_cccc: Unknown result type (might be due to invalid IL or missing references) //IL_ccd3: Unknown result type (might be due to invalid IL or missing references) //IL_ccda: Unknown result type (might be due to invalid IL or missing references) //IL_cce1: Unknown result type (might be due to invalid IL or missing references) //IL_cce9: Unknown result type (might be due to invalid IL or missing references) //IL_ccf1: Unknown result type (might be due to invalid IL or missing references) //IL_ccf8: Unknown result type (might be due to invalid IL or missing references) //IL_ccff: Unknown result type (might be due to invalid IL or missing references) //IL_cd06: Unknown result type (might be due to invalid IL or missing references) //IL_cd0d: Unknown result type (might be due to invalid IL or missing references) //IL_cd19: Expected O, but got Unknown //IL_cd60: Unknown result type (might be due to invalid IL or missing references) //IL_cd6d: Unknown result type (might be due to invalid IL or missing references) //IL_d221: Unknown result type (might be due to invalid IL or missing references) //IL_d22d: Unknown result type (might be due to invalid IL or missing references) //IL_d30b: Unknown result type (might be due to invalid IL or missing references) //IL_d407: Unknown result type (might be due to invalid IL or missing references) //IL_d40e: Expected O, but got Unknown //IL_d42a: Unknown result type (might be due to invalid IL or missing references) //IL_d460: Unknown result type (might be due to invalid IL or missing references) //IL_d462: Unknown result type (might be due to invalid IL or missing references) //IL_d46b: Unknown result type (might be due to invalid IL or missing references) //IL_d4a1: Unknown result type (might be due to invalid IL or missing references) //IL_d4a3: Unknown result type (might be due to invalid IL or missing references) //IL_d4ac: Unknown result type (might be due to invalid IL or missing references) //IL_d4e2: Unknown result type (might be due to invalid IL or missing references) //IL_d4e4: Unknown result type (might be due to invalid IL or missing references) //IL_d7cc: Unknown result type (might be due to invalid IL or missing references) //IL_d7dc: Unknown result type (might be due to invalid IL or missing references) //IL_d8a5: Unknown result type (might be due to invalid IL or missing references) //IL_d8ac: Expected O, but got Unknown //IL_d8b8: Unknown result type (might be due to invalid IL or missing references) //IL_d8ee: Unknown result type (might be due to invalid IL or missing references) //IL_d8f0: Unknown result type (might be due to invalid IL or missing references) //IL_d8f9: Unknown result type (might be due to invalid IL or missing references) //IL_d92f: Unknown result type (might be due to invalid IL or missing references) //IL_d931: Unknown result type (might be due to invalid IL or missing references) //IL_d9d2: Unknown result type (might be due to invalid IL or missing references) //IL_d9d7: Unknown result type (might be due to invalid IL or missing references) //IL_e3e5: Unknown result type (might be due to invalid IL or missing references) //IL_e3ea: Unknown result type (might be due to invalid IL or missing references) //IL_e3f5: Unknown result type (might be due to invalid IL or missing references) //IL_e405: Unknown result type (might be due to invalid IL or missing references) //IL_e407: Unknown result type (might be due to invalid IL or missing references) //IL_e40c: Unknown result type (might be due to invalid IL or missing references) //IL_e418: Unknown result type (might be due to invalid IL or missing references) //IL_e429: Expected O, but got Unknown //IL_e430: Unknown result type (might be due to invalid IL or missing references) //IL_e435: Unknown result type (might be due to invalid IL or missing references) //IL_e440: Unknown result type (might be due to invalid IL or missing references) //IL_e450: Unknown result type (might be due to invalid IL or missing references) //IL_e452: Unknown result type (might be due to invalid IL or missing references) //IL_e457: Unknown result type (might be due to invalid IL or missing references) //IL_e463: Unknown result type (might be due to invalid IL or missing references) //IL_e474: Expected O, but got Unknown //IL_e4b1: Unknown result type (might be due to invalid IL or missing references) //IL_e4b8: Expected O, but got Unknown //IL_e511: Unknown result type (might be due to invalid IL or missing references) //IL_e518: Expected O, but got Unknown //IL_e571: Unknown result type (might be due to invalid IL or missing references) //IL_e578: Expected O, but got Unknown //IL_e5d1: Unknown result type (might be due to invalid IL or missing references) //IL_e5d8: Expected O, but got Unknown //IL_e871: Unknown result type (might be due to invalid IL or missing references) //IL_e89e: Unknown result type (might be due to invalid IL or missing references) //IL_e8ab: Unknown result type (might be due to invalid IL or missing references) //IL_e8cd: Unknown result type (might be due to invalid IL or missing references) //IL_e8da: Unknown result type (might be due to invalid IL or missing references) //IL_e8fc: Unknown result type (might be due to invalid IL or missing references) //IL_e90a: Unknown result type (might be due to invalid IL or missing references) //IL_e92e: Unknown result type (might be due to invalid IL or missing references) //IL_e93c: Unknown result type (might be due to invalid IL or missing references) //IL_ef78: Unknown result type (might be due to invalid IL or missing references) //IL_ef86: Unknown result type (might be due to invalid IL or missing references) //IL_efac: Unknown result type (might be due to invalid IL or missing references) //IL_efbd: Unknown result type (might be due to invalid IL or missing references) //IL_efe0: Unknown result type (might be due to invalid IL or missing references) //IL_eff1: Unknown result type (might be due to invalid IL or missing references) //IL_f014: Unknown result type (might be due to invalid IL or missing references) //IL_f021: Unknown result type (might be due to invalid IL or missing references) //IL_f047: Unknown result type (might be due to invalid IL or missing references) //IL_f057: Unknown result type (might be due to invalid IL or missing references) //IL_f07a: Unknown result type (might be due to invalid IL or missing references) //IL_f086: Unknown result type (might be due to invalid IL or missing references) //IL_f0a9: Unknown result type (might be due to invalid IL or missing references) //IL_f0b6: Unknown result type (might be due to invalid IL or missing references) //IL_f0d6: Unknown result type (might be due to invalid IL or missing references) //IL_f0e2: Unknown result type (might be due to invalid IL or missing references) //IL_f100: Unknown result type (might be due to invalid IL or missing references) //IL_f10c: Unknown result type (might be due to invalid IL or missing references) //IL_f1eb: Unknown result type (might be due to invalid IL or missing references) //IL_f1f7: Unknown result type (might be due to invalid IL or missing references) //IL_f216: Unknown result type (might be due to invalid IL or missing references) //IL_f223: Unknown result type (might be due to invalid IL or missing references) //IL_f600: Unknown result type (might be due to invalid IL or missing references) //IL_f60c: Unknown result type (might be due to invalid IL or missing references) //IL_f62f: Unknown result type (might be due to invalid IL or missing references) //IL_f63c: Unknown result type (might be due to invalid IL or missing references) //IL_f722: Unknown result type (might be due to invalid IL or missing references) //IL_f72e: Unknown result type (might be due to invalid IL or missing references) //IL_f751: Unknown result type (might be due to invalid IL or missing references) //IL_f75e: Unknown result type (might be due to invalid IL or missing references) //IL_f969: Unknown result type (might be due to invalid IL or missing references) //IL_f975: Unknown result type (might be due to invalid IL or missing references) //IL_f994: Unknown result type (might be due to invalid IL or missing references) //IL_f9a1: Unknown result type (might be due to invalid IL or missing references) //IL_fd96: Unknown result type (might be due to invalid IL or missing references) //IL_fda0: Unknown result type (might be due to invalid IL or missing references) //IL_fdc3: Unknown result type (might be due to invalid IL or missing references) //IL_fdd0: Unknown result type (might be due to invalid IL or missing references) //IL_10022: Unknown result type (might be due to invalid IL or missing references) //IL_1002f: Unknown result type (might be due to invalid IL or missing references) //IL_10051: Unknown result type (might be due to invalid IL or missing references) //IL_1005d: Unknown result type (might be due to invalid IL or missing references) //IL_1007f: Unknown result type (might be due to invalid IL or missing references) //IL_1008c: Unknown result type (might be due to invalid IL or missing references) //IL_100a8: Unknown result type (might be due to invalid IL or missing references) //IL_100bb: Unknown result type (might be due to invalid IL or missing references) //IL_100c0: Unknown result type (might be due to invalid IL or missing references) //IL_10281: Unknown result type (might be due to invalid IL or missing references) //IL_10286: Unknown result type (might be due to invalid IL or missing references) //IL_102a9: Unknown result type (might be due to invalid IL or missing references) //IL_102ae: Unknown result type (might be due to invalid IL or missing references) //IL_102fe: Unknown result type (might be due to invalid IL or missing references) //IL_10303: Unknown result type (might be due to invalid IL or missing references) //IL_10305: Unknown result type (might be due to invalid IL or missing references) //IL_1030a: Unknown result type (might be due to invalid IL or missing references) //IL_1031b: Expected O, but got Unknown //IL_10359: Unknown result type (might be due to invalid IL or missing references) //IL_1035e: Unknown result type (might be due to invalid IL or missing references) //IL_10363: Unknown result type (might be due to invalid IL or missing references) //IL_10381: Unknown result type (might be due to invalid IL or missing references) //IL_10386: Unknown result type (might be due to invalid IL or missing references) //IL_1038b: Unknown result type (might be due to invalid IL or missing references) //IL_103a9: Unknown result type (might be due to invalid IL or missing references) //IL_103ae: Unknown result type (might be due to invalid IL or missing references) //IL_103b3: Unknown result type (might be due to invalid IL or missing references) //IL_10489: Unknown result type (might be due to invalid IL or missing references) //IL_105be: Unknown result type (might be due to invalid IL or missing references) //IL_105dd: Unknown result type (might be due to invalid IL or missing references) //IL_105fc: Unknown result type (might be due to invalid IL or missing references) //IL_1061b: Unknown result type (might be due to invalid IL or missing references) //IL_1063a: Unknown result type (might be due to invalid IL or missing references) //IL_10659: Unknown result type (might be due to invalid IL or missing references) //IL_106c0: Unknown result type (might be due to invalid IL or missing references) //IL_10868: Unknown result type (might be due to invalid IL or missing references) //IL_1086d: Unknown result type (might be due to invalid IL or missing references) //IL_10878: Unknown result type (might be due to invalid IL or missing references) //IL_10884: Expected O, but got Unknown //IL_108d6: Unknown result type (might be due to invalid IL or missing references) //IL_10e58: Unknown result type (might be due to invalid IL or missing references) //IL_10e65: Unknown result type (might be due to invalid IL or missing references) Dungeon orLoadByName = DungeonDatabase.GetOrLoadByName("Base_Tutorial"); Dungeon orLoadByName2 = DungeonDatabase.GetOrLoadByName("Base_Castle"); DungeonDatabase.GetOrLoadByName("Base_Gungeon"); Dungeon orLoadByName3 = DungeonDatabase.GetOrLoadByName("Base_Sewer"); Dungeon orLoadByName4 = DungeonDatabase.GetOrLoadByName("Base_Mines"); Dungeon orLoadByName5 = DungeonDatabase.GetOrLoadByName("base_resourcefulrat"); Dungeon orLoadByName6 = DungeonDatabase.GetOrLoadByName("Base_Cathedral"); Dungeon orLoadByName7 = DungeonDatabase.GetOrLoadByName("Base_BulletHell"); Dungeon orLoadByName8 = DungeonDatabase.GetOrLoadByName("Base_Forge"); Dungeon orLoadByName9 = DungeonDatabase.GetOrLoadByName("Base_Catacombs"); Dungeon orLoadByName10 = DungeonDatabase.GetOrLoadByName("base_nakatomi"); EXDummyObject = expandSharedAssets1.LoadAsset("DummyObject"); ((BraveBehaviour)SpriteSerializer.AddSpriteToObject(EXDummyObject, EXBackroomsCollection, "CarpetStain_01", (PerpendicularState)2, -1.7f)).renderer.enabled = false; SpaceFog = ((Renderer)((Component)((Component)PickupObjectDatabase.GetById(597)).gameObject.GetComponent().TargetSystem).gameObject.GetComponent()).materials[0]; BulletManMonochromeTexture = expandSharedAssets1.LoadAsset("BulletMan_Monochrome"); BulletManUpsideDownTexture = expandSharedAssets1.LoadAsset("BulletMan_UpsideDown"); BacterialGoopWorldTexture = expandSharedAssets1.LoadAsset("BacteriaGoop_WorldTexture"); RatTrapdoor = orLoadByName4.RatTrapdoor; shop02 = sharedAssets2.LoadAsset("shop02"); fusebombroom01 = sharedAssets.LoadAsset("fusebombroom01"); elevator_entrance = sharedAssets2.LoadAsset("elevator entrance"); gungeon_entrance = sharedAssets2.LoadAsset("Gungeon Entrance"); elevator_maintenance_room = sharedAssets2.LoadAsset("ElevatorMaintenanceRoom"); test_entrance = sharedAssets2.LoadAsset("test entrance"); exit_room_basic = sharedAssets2.LoadAsset("exit_room_basic"); boss_foyer = sharedAssets2.LoadAsset("boss foyer"); gungeon_rewardroom_1 = sharedAssets2.LoadAsset("gungeon_rewardroom_1"); paradox_04 = sharedAssets2.LoadAsset("paradox_04"); paradox_04_copy = sharedAssets2.LoadAsset("paradox_04 copy"); blobulordroom01 = sharedAssets.LoadAsset("BlobulordRoom01"); doublebeholsterroom01 = ExpandDungeonFlow.LoadOfficialFlow("Secret_DoubleBeholster_Flow").AllNodes[2].overrideExactRoom; doublebeholstertable = ExpandDungeonFlow.LoadOfficialFlow("Secret_DoubleBeholster_Flow").AllNodes[2].overrideRoomTable; bossstatuesroom01 = sharedAssets.LoadAsset("bossstatuesroom01"); oldbulletking_room_01 = sharedAssets.LoadAsset("oldbulletking_room_01"); DragunBossFoyerRoom = orLoadByName8.PatternSettings.flows[0].AllNodes[1].overrideExactRoom; DraGunRoom01 = sharedAssets.LoadAsset("dragunroom01"); DraGunExitRoom = orLoadByName8.PatternSettings.flows[0].AllNodes[3].overrideExactRoom; DraGunEndTimesRoom = orLoadByName8.PatternSettings.flows[0].AllNodes[12].overrideExactRoom; BlacksmithShop = orLoadByName8.PatternSettings.flows[0].AllNodes[10].overrideExactRoom; GatlingGullRoom05 = sharedAssets.LoadAsset("GatlingGullRoom05"); letsgetsomeshrines_001 = sharedAssets.LoadAsset("letsgetsomeshrines_001"); shop_special_key_01 = sharedAssets.LoadAsset("shop_special_key_01"); square_hub = sharedAssets2.LoadAsset("square hub"); subshop_muncher_01 = sharedAssets2.LoadAsset("subshop_muncher_01"); black_market = sharedAssets.LoadAsset("Black Market"); gungeon_checkerboard = sharedAssets2.LoadAsset("gungeon_checkerboard"); gungeon_normal_fightinaroomwithtonsoftraps = sharedAssets2.LoadAsset("gungeon_normal_fightinaroomwithtonsoftraps"); gungeon_gauntlet_001 = sharedAssets2.LoadAsset("gungeon_gauntlet_001"); BonusChestRooms = (PrototypeDungeonRoom[])(object)new PrototypeDungeonRoom[10] { sharedAssets2.LoadAsset("lockedcellminireward_01"), sharedAssets2.LoadAsset("lockedcellminireward_02"), sharedAssets2.LoadAsset("lockedcellminireward_03"), sharedAssets2.LoadAsset("lockedcellminireward_04"), sharedAssets2.LoadAsset("lockedcellminireward_05"), sharedAssets2.LoadAsset("lockedcellminireward_06"), sharedAssets2.LoadAsset("lockedcellminireward_07"), sharedAssets2.LoadAsset("lockedcellminireward_08"), sharedAssets2.LoadAsset("lockedcellminireward_09"), sharedAssets2.LoadAsset("lockedcellminireward_10") }; ResourcefulRat_LongMinecartRoom_01 = RatTrapdoor.GetComponent().TargetMinecartRoom; ResourcefulRat_FirstSecretRoom_01 = RatTrapdoor.GetComponent().FirstSecretRoom; ResourcefulRat_SecondSecretRoom_01 = RatTrapdoor.GetComponent().SecondSecretRoom; ResourcefulRat_Entrance = orLoadByName5.PatternSettings.flows[0].AllNodes[0].overrideExactRoom; ResourcefulRat_Entrance.placedObjects[0].placeableContents = null; tiny_entrance = Object.Instantiate(orLoadByName.PatternSettings.flows[0].AllNodes[4].overrideExactRoom); tiny_exit = Object.Instantiate(orLoadByName.PatternSettings.flows[0].AllNodes[4].overrideExactRoom); reward_room = sharedAssets2.LoadAsset("reward room"); tutorial_minibossroom = Object.Instantiate(orLoadByName.PatternSettings.flows[0].AllNodes[8].overrideExactRoom); bossrush_alternate_entrance = Object.Instantiate(test_entrance); tutorial_fakeboss = Object.Instantiate(DraGunRoom01); big_entrance = Object.Instantiate(sharedAssets.LoadAsset("GatlingGullRoom05")); castle_challengeshrine_roomtable = sharedAssets.LoadAsset("castle_challengeshrine_roomtable"); catacombs_challengeshrine_roomtable = sharedAssets.LoadAsset("catacombs_challengeshrine_roomtable"); forge_challengeshrine_roomtable = sharedAssets.LoadAsset("forge_challengeshrine_roomtable"); gungeon_challengeshrine_roomtable = sharedAssets.LoadAsset("gungeon_challengeshrine_roomtable"); mines_challengeshrine_roomtable = sharedAssets.LoadAsset("mines_challengeshrine_roomtable"); shop_room_table = sharedAssets2.LoadAsset("Shop Room Table"); CastleRoomTable = sharedAssets2.LoadAsset("Castle_RoomTable"); Gungeon_RoomTable = sharedAssets2.LoadAsset("Gungeon_RoomTable"); SecretRoomTable = sharedAssets2.LoadAsset("secret_room_table_01"); bosstable_02_beholster = sharedAssets.LoadAsset("bosstable_02_beholster"); bosstable_01_bulletbros = sharedAssets.LoadAsset("bosstable_01_bulletbros"); bosstable_01_bulletking = sharedAssets.LoadAsset("bosstable_01_bulletking"); bosstable_01_gatlinggull = sharedAssets.LoadAsset("bosstable_01_gatlinggull"); bosstable_02_meduzi = sharedAssets.LoadAsset("bosstable_02_meduzi"); bosstable_02a_highpriest = sharedAssets.LoadAsset("bosstable_02a_highpriest"); bosstable_03_mineflayer = sharedAssets.LoadAsset("bosstable_03_mineflayer"); bosstable_03_powderskull = sharedAssets.LoadAsset("bosstable_03_powderskull"); bosstable_03_tank = sharedAssets.LoadAsset("bosstable_03_tank"); bosstable_04_demonwall = sharedAssets.LoadAsset("bosstable_04_demonwall"); bosstable_04_statues = sharedAssets.LoadAsset("bosstable_04_statues"); blocknerminiboss_table_01 = sharedAssets.LoadAsset("BlocknerMiniboss_Table_01"); phantomagunim_table_01 = sharedAssets.LoadAsset("PhantomAgunim_Table_01"); winchesterroomtable = sharedAssets.LoadAsset("winchesterroomtable"); SewersRoomTable = orLoadByName3.PatternSettings.flows[0].fallbackRoomTable; AbbeyRoomTable = orLoadByName6.PatternSettings.flows[0].fallbackRoomTable; MinesRoomTable = orLoadByName4.PatternSettings.flows[0].fallbackRoomTable; CatacombsRoomTable = orLoadByName9.PatternSettings.flows[0].fallbackRoomTable; ForgeRoomTable = orLoadByName8.PatternSettings.flows[0].fallbackRoomTable; BulletHellRoomTable = orLoadByName7.PatternSettings.flows[0].fallbackRoomTable; boss_foyertable = sharedAssets2.LoadAsset("Boss Foyers"); gungeon_entrance_bossrush = Object.Instantiate(gungeon_entrance); gungeon_entrance_bossrush.category = (RoomCategory)0; ((Object)gungeon_entrance_bossrush).name = "Bossrush Curse Shrine"; gungeon_entrance_bossrush.associatedMinimapIcon = null; AbbeyFlowModifierData = orLoadByName6.PatternSettings.flows[0].sharedInjectionData[1].InjectionData[0]; AbbeyAblernRoomTable = ScriptableObject.CreateInstance(); ((Object)AbbeyAblernRoomTable).name = "Alburn Secret Rooms"; AbbeyAblernRoomTable.includedRooms = new WeightedRoomCollection(); AbbeyAblernRoomTable.includedRooms.elements = new List(); AbbeyAblernRoomTable.includedRoomTables = new List(0); AbbeyAblernRoomTable.includedRooms.elements.Add(ExpandRoomPrefabs.GenerateWeightedRoom(orLoadByName6.PatternSettings.flows[0].sharedInjectionData[1].InjectionData[0].exactRoom)); AbbeyFlowModifierData.exactRoom = null; AbbeyFlowModifierData.roomTable = AbbeyAblernRoomTable; JungleRoomTable = ScriptableObject.CreateInstance(); JungleRoomTable.includedRooms = new WeightedRoomCollection(); JungleRoomTable.includedRooms.elements = new List(); JungleRoomTable.includedRoomTables = new List(0); BellyRoomTable = ScriptableObject.CreateInstance(); BellyRoomTable.includedRooms = new WeightedRoomCollection(); BellyRoomTable.includedRooms.elements = new List(); BellyRoomTable.includedRoomTables = new List(0); WestRoomTable = ScriptableObject.CreateInstance(); WestRoomTable.includedRooms = new WeightedRoomCollection(); WestRoomTable.includedRooms.elements = new List(); WestRoomTable.includedRoomTables = new List(0); WestCanyonRoomTable = ScriptableObject.CreateInstance(); WestCanyonRoomTable.includedRooms = new WeightedRoomCollection(); WestCanyonRoomTable.includedRooms.elements = new List(); WestCanyonRoomTable.includedRoomTables = new List(0); WestTinyCanyonRoomTable = ScriptableObject.CreateInstance(); WestTinyCanyonRoomTable.includedRooms = new WeightedRoomCollection(); WestTinyCanyonRoomTable.includedRooms.elements = new List(); WestTinyCanyonRoomTable.includedRoomTables = new List(0); WestInterior1RoomTable = ScriptableObject.CreateInstance(); WestInterior1RoomTable.includedRooms = new WeightedRoomCollection(); WestInterior1RoomTable.includedRooms.elements = new List(); WestInterior1RoomTable.includedRoomTables = new List(0); BackRoomsRoomTable = ScriptableObject.CreateInstance(); BackRoomsRoomTable.includedRooms = new WeightedRoomCollection(); BackRoomsRoomTable.includedRooms.elements = new List(); BackRoomsRoomTable.includedRoomTables = new List(0); BackRoomsEntranceRoomTable = ScriptableObject.CreateInstance(); BackRoomsEntranceRoomTable.includedRooms = new WeightedRoomCollection(); BackRoomsEntranceRoomTable.includedRooms.elements = new List(); BackRoomsEntranceRoomTable.includedRoomTables = new List(0); BackRoomsWarpWingTable = ScriptableObject.CreateInstance(); BackRoomsWarpWingTable.includedRooms = new WeightedRoomCollection(); BackRoomsWarpWingTable.includedRooms.elements = new List(); BackRoomsWarpWingTable.includedRoomTables = new List(0); FutureRoomTable = ScriptableObject.CreateInstance(); FutureRoomTable.includedRooms = new WeightedRoomCollection(); FutureRoomTable.includedRooms.elements = new List(); FutureRoomTable.includedRoomTables = new List(0); FutureEntranceRoomTable = ScriptableObject.CreateInstance(); FutureEntranceRoomTable.includedRooms = new WeightedRoomCollection(); FutureEntranceRoomTable.includedRooms.elements = new List(); FutureEntranceRoomTable.includedRoomTables = new List(0); FutureFoyerRoomTable = ScriptableObject.CreateInstance(); FutureFoyerRoomTable.includedRooms = new WeightedRoomCollection(); FutureFoyerRoomTable.includedRooms.elements = new List(); FutureFoyerRoomTable.includedRoomTables = new List(0); AbbeyRoomTableForOffice = ScriptableObject.CreateInstance(); ((Object)AbbeyRoomTableForOffice).name = "Office_RoomTable"; AbbeyRoomTableForOffice.includedRooms = new WeightedRoomCollection(); AbbeyRoomTableForOffice.includedRooms.elements = new List(); AbbeyRoomTableForOffice.includedRoomTables = AbbeyRoomTable.includedRoomTables; foreach (WeightedRoom element in AbbeyRoomTable.includedRooms.elements) { bool flag = false; PrototypeDungeonRoomCellData[] fullCellData = element.room.FullCellData; for (int i = 0; i < fullCellData.Length; i++) { if ((int)fullCellData[i].state == 4) { flag = true; break; } } if (!flag) { AbbeyRoomTableForOffice.includedRooms.elements.Add(element); } } OfficeAndUnusedWeightedRooms = (WeightedRoom[])(object)new WeightedRoom[10] { ExpandRoomPrefabs.GenerateWeightedRoom(orLoadByName10.PatternSettings.flows[0].AllNodes[2].overrideExactRoom), ExpandRoomPrefabs.GenerateWeightedRoom(orLoadByName10.PatternSettings.flows[0].AllNodes[3].overrideExactRoom), ExpandRoomPrefabs.GenerateWeightedRoom(orLoadByName10.PatternSettings.flows[0].AllNodes[4].overrideExactRoom), ExpandRoomPrefabs.GenerateWeightedRoom(orLoadByName10.PatternSettings.flows[0].AllNodes[5].overrideExactRoom), ExpandRoomPrefabs.GenerateWeightedRoom(orLoadByName10.PatternSettings.flows[0].AllNodes[6].overrideExactRoom), ExpandRoomPrefabs.GenerateWeightedRoom(orLoadByName10.PatternSettings.flows[0].AllNodes[7].overrideExactRoom), ExpandRoomPrefabs.GenerateWeightedRoom(orLoadByName10.PatternSettings.flows[0].AllNodes[8].overrideExactRoom), ExpandRoomPrefabs.GenerateWeightedRoom(orLoadByName10.PatternSettings.flows[0].AllNodes[9].overrideExactRoom), ExpandRoomPrefabs.GenerateWeightedRoom(paradox_04), ExpandRoomPrefabs.GenerateWeightedRoom(paradox_04_copy) }; Shop_Key_Items_01 = sharedAssets.LoadAsset("Shop_Key_Items_01"); Shop_Truck_Items_01 = sharedAssets.LoadAsset("Shop_Truck_Items_01"); DungeonPlaceableBehaviour nonenemyBehaviour = BlacksmithShop.placedObjects[8].nonenemyBehaviour; BlackSmith_Items_01 = ((BaseShopController)((nonenemyBehaviour is BaseShopController) ? nonenemyBehaviour : null)).shopItemsGroup2; Shop_Curse_Items_01 = sharedAssets.LoadAsset("Shop_Curse_Items_01"); BlackSmith_Items_01.defaultItemDrops.Add(new WeightedGameObject { rawGameObject = null, pickupId = BabyGoodHammer.HammerPickupID, weight = 1f, forceDuplicatesPossible = false, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }); Shop_Key_Items_01.defaultItemDrops.Add(new WeightedGameObject { rawGameObject = null, pickupId = TheLeadKey.TheLeadKeyPickupID, weight = 1f, forceDuplicatesPossible = false, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }); Shop_Truck_Items_01.defaultItemDrops.Add(new WeightedGameObject { rawGameObject = null, pickupId = RockSlide.RockSlidePickupID, weight = 1f, forceDuplicatesPossible = false, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }); Shop_Truck_Items_01.defaultItemDrops.Add(new WeightedGameObject { rawGameObject = null, pickupId = PowBlock.PowBlockPickupID, weight = 1f, forceDuplicatesPossible = false, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }); Shop_Truck_Items_01.defaultItemDrops.Add(new WeightedGameObject { rawGameObject = null, pickupId = ClownBullets.ClownBulletsID, weight = 1f, forceDuplicatesPossible = false, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }); Shop_Truck_Items_01.defaultItemDrops.Add(new WeightedGameObject { rawGameObject = null, pickupId = PortableShip.PortableShipID, weight = 1f, forceDuplicatesPossible = false, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }); Shop_Curse_Items_01.defaultItemDrops.Add(new WeightedGameObject { rawGameObject = null, pickupId = CursedBrick.CursedBrickID, weight = 1f, forceDuplicatesPossible = false, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }); Shop_Curse_Items_01.defaultItemDrops.Add(new WeightedGameObject { rawGameObject = null, pickupId = ThirdEye.ThirdEyeID, weight = 1f, forceDuplicatesPossible = false, additionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }); CastleGungeonMergedTable = ScriptableObject.CreateInstance(); CustomRoomTable = ScriptableObject.CreateInstance(); CustomRoomTable2 = ScriptableObject.CreateInstance(); CustomRoomTableSecretGlitchFloor = ScriptableObject.CreateInstance(); MegaBossRoomTable = ScriptableObject.CreateInstance(); MegaChallengeShrineTable = ScriptableObject.CreateInstance(); MegaMiniBossRoomTable = ScriptableObject.CreateInstance(); bosstable_01_gatlinggull_custom = ScriptableObject.CreateInstance(); gatlinggull_noTileVisualOverrides = (PrototypeDungeonRoom[])(object)new PrototypeDungeonRoom[0]; MetalGearRatPrefab = enemiesBase.LoadAsset("MetalGearRat"); ResourcefulRatBossPrefab = enemiesBase.LoadAsset("ResourcefulRat_Boss"); SewersRatExitEoom = orLoadByName3.PatternSettings.flows[0].sharedInjectionData[1].InjectionData[0].exactRoom; MimicNPC = ((Component)orLoadByName5.PatternSettings.flows[0].AllNodes[12].overrideExactRoom.additionalObjectLayers[0].placedObjects[13].nonenemyBehaviour).gameObject; RatCorpseNPC = ((Component)MetalGearRatPrefab.GetComponent().PunchoutMinigamePrefab.GetComponent().PlayerWonRatNPC).gameObject; PlayerLostRatNote = ((Component)MetalGearRatPrefab.GetComponent().PunchoutMinigamePrefab.GetComponent().PlayerLostNotePrefab).gameObject; MouseTrap1 = ResourcefulRatBossPrefab.GetComponent().MouseTraps[0]; MouseTrap2 = ResourcefulRatBossPrefab.GetComponent().MouseTraps[1]; MouseTrap3 = ResourcefulRatBossPrefab.GetComponent().MouseTraps[2]; SecretElevatorExitTileset = expandSharedAssets1.LoadAsset("SecretElevatorExitTileset"); GameObject gameObject = ((Component)SecretElevatorExitTileset.transform.Find("Floor")).gameObject; GameObject gameObject2 = ((Component)SecretElevatorExitTileset.transform.Find("Roof")).gameObject; ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(gameObject, SecretElevatorExitTilesetCollection, "SecretElevatorExitTileset_Floor", (PerpendicularState)2)).HeightOffGround = -1.7f; ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(gameObject2, SecretElevatorExitTilesetCollection, "SecretElevatorExitTileset_Roof", (PerpendicularState)2)).HeightOffGround = 2f; EXTrap_Apache = expandSharedAssets1.LoadAsset("EX_Trap_Apache"); ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(EXTrap_Apache, EXTrapCollection, "EX_Trap_Apache_01", (PerpendicularState)0)).HeightOffGround = 2f; ExpandUtility.GenerateSpriteAnimator(EXTrap_Apache, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true, IsFrameBlendedAnimation: false, 0f, 8f); tk2dSpriteAnimator component = EXTrap_Apache.GetComponent(); List spriteNameList = new List { "EX_Trap_Apache_01", "EX_Trap_Apache_01" }; List spriteNameList2 = new List { "EX_Trap_Apache_02", "EX_Trap_Apache_02" }; ExpandUtility.AddAnimation(component, EXTrapCollection.GetComponent(), spriteNameList, "ApacheTrap_Normal", (WrapMode)0, 8); ExpandUtility.AddAnimation(component, EXTrapCollection.GetComponent(), spriteNameList2, "ApacheTrap_Flipped", (WrapMode)0, 8); ExpandUtility.GenerateOrAddToRigidBody(EXTrap_Apache, (CollisionLayer)16, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: true, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(44, 58), (IntVector2?)new IntVector2(10, 1)); PathingTrapController obj = EXTrap_Apache.AddComponent(); ((DungeonPlaceableBehaviour)obj).placeableHeight = 2; ((DungeonPlaceableBehaviour)obj).placeableWidth = 2; ((DungeonPlaceableBehaviour)obj).difficulty = (PlaceableDifficulty)0; ((DungeonPlaceableBehaviour)obj).isPassable = true; ((TrapController)obj).TrapSwitchState = string.Empty; obj.damage = 0.5f; obj.knockbackStrength = 50f; obj.hitsEnemies = false; obj.enemyDamage = 0f; obj.enemyKnockbackStrength = 0f; obj.usesBloodyAnimation = false; obj.usesDirectionalAnimations = true; obj.northAnimation = "ApacheTrap_Flipped"; obj.northShadowAnimation = string.Empty; obj.eastAnimation = "ApacheTrap_Normal"; obj.eastShadowAnimation = string.Empty; obj.southAnimation = "ApacheTrap_Normal"; obj.southShadowAnimation = string.Empty; obj.westAnimation = "ApacheTrap_Flipped"; obj.westShadowAnimation = string.Empty; obj.usesDirectionalShadowAnimations = false; obj.pauseAnimationOnRest = false; PathMover obj2 = EXTrap_Apache.AddComponent(); obj2.Paused = false; obj2.OriginalPathSpeed = 6f; obj2.AdditionalNodeDelay = 0f; obj2.ForceCornerDelayHack = false; obj2.IsUsingAlternateTargets = false; PrototypeDungeonRoom val = null; foreach (WeightedRoom element2 in BulletHellRoomTable.includedRooms.elements) { if (((Object)element2.room).name.ToLower().StartsWith("hell_connector_pathburst_01")) { val = element2.room; break; } } if (Object.op_Implicit((Object)(object)val) && val.placedObjects.Count > 2 && Object.op_Implicit((Object)(object)val.placedObjects[3].nonenemyBehaviour) && Object.op_Implicit((Object)(object)((Component)val.placedObjects[3].nonenemyBehaviour).gameObject) && ((Object)((Component)val.placedObjects[3].nonenemyBehaviour).gameObject).name == "RadialFireBurster") { EXTrap_Apache.AddComponent(); EXTrap_Apache.GetComponent().placeableWidth = 2; EXTrap_Apache.GetComponent().placeableHeight = 2; EXTrap_Apache.GetComponent().difficulty = (PlaceableDifficulty)0; GameObject gameObject3 = ((Component)val.placedObjects[3].nonenemyBehaviour).gameObject; EXTrap_Apache.AddComponent(); ExpandUtility.DuplicateComponent(EXTrap_Apache.GetComponent(), gameObject3.GetComponent()); BehaviorSpeculator obj3 = EXTrap_Apache.AddComponent(); obj3.OverrideBehaviors = new List(0); obj3.OtherBehaviors = new List(0); obj3.TargetBehaviors = new List(0); obj3.MovementBehaviors = new List(0); obj3.InstantFirstTick = false; obj3.TickInterval = 0.1f; obj3.PostAwakenDelay = 0f; obj3.RemoveDelayOnReinforce = false; obj3.OverrideStartingFacingDirection = false; obj3.StartingFacingDirection = -90f; obj3.SkipTimingDifferentiator = false; obj3.AttackBehaviors = new List { (AttackBehaviorBase)new ShootBehavior { ShootPoint = ((Component)EXTrap_Apache.transform.Find("shoot point")).gameObject, BulletScript = new BulletScriptSelector { scriptTypeName = "CircleBurst12" }, BulletName = null, LeadAmount = 0f, StopDuring = (StopType)0, ImmobileDuringStop = false, MoveSpeedModifier = 1f, LockFacingDirection = false, ContinueAimingDuringTell = false, ReaimOnFire = false, MultipleFireEvents = false, RequiresTarget = false, PreventTargetSwitching = false, Uninterruptible = false, ClearGoop = false, ClearGoopRadius = 2f, ShouldOverrideFireDirection = false, OverrideFireDirection = -1f, SpecifyAiAnimator = null, ChargeAnimation = null, ChargeTime = 0f, TellAnimation = null, FireAnimation = null, PostFireAnimation = null, HideGun = true, OverrideBaseAnims = false, OverrideIdleAnim = null, OverrideMoveAnim = null, UseVfx = false, ChargeVfx = null, TellVfx = null, FireVfx = null, Vfx = null, EnabledDuringAttack = (GameObject[])(object)new GameObject[0], Cooldown = 4f, CooldownVariance = 0f, AttackCooldown = 0f, GlobalCooldown = 0f, InitialCooldown = 0f, InitialCooldownVariance = 0f, GroupName = null, GroupCooldown = 0f, MinRange = 0f, Range = 0f, MinWallDistance = 0f, MaxEnemiesInRoom = 0f, MinHealthThreshold = 0f, MaxHealthThreshold = 1f, HealthThresholds = new float[0], AccumulateHealthThresholds = true, targetAreaStyle = null, IsBlackPhantom = false, resetCooldownOnDamage = null, RequiresLineOfSight = false, MaxUsages = 0 } }; ((ISerializedObject)obj3).SerializedObjectReferences = new List { (Object)(object)((Component)EXTrap_Apache.transform.Find("shoot point")).gameObject }; ((ISerializedObject)obj3).SerializedStateKeys = new List { "OverrideBehaviors", "TargetBehaviors", "MovementBehaviors", "AttackBehaviors", "OtherBehaviors" }; ((ISerializedObject)obj3).SerializedStateValues = new List(0); EXTrap_Apache.AddComponent(); } Teleporter_Gungeon_01 = braveResources.LoadAsset("Teleporter_Gungeon_01"); ElevatorMaintanenceRoomIcon = sharedAssets2.LoadAsset("Minimap_Maintenance_Icon"); Teleporter_Info_Sign = sharedAssets2.LoadAsset("teleporter_info_sign"); RewardPedestalPrefab = sharedAssets.LoadAsset("Boss_Reward_Pedestal"); Minimap_Maintenance_Icon = sharedAssets2.LoadAsset("minimap_maintenance_icon"); EXFriendlyForgeHammer = ExpandForgeHammerComponent.BuildHammerPrefab(expandSharedAssets1, "Friendly Forge Hammer", string.Empty, SkipBulletBuild: true, IsFriendlyBullet: true, isHattyHammer: false, out var _); ((BraveBehaviour)EXFriendlyForgeHammer.GetComponent()).bulletBank.Bullets[0].BulletObject = EXFriendlyForgeHammerBullet; Arrival = expandSharedAssets1.LoadAsset("Arrival"); ((Object)Arrival.transform).name = "Arrival"; NPCBabyDragunChaos = expandSharedAssets1.LoadAsset("Chaos Baby Dragun"); NPCBabyDragunChaos.AddComponent(); ExpandUtility.DuplicateSprite(NPCBabyDragunChaos.GetComponent(), sharedAssets2.LoadAsset("BabyDragunJail").GetComponentInChildren()); NPCBabyDragunChaos.AddComponent(); NPCBabyDragunChaos.AddComponent(); tk2dSpriteAnimation val2 = NPCBabyDragunChaos.AddComponent(); List list = new List(); tk2dSpriteAnimationClip[] clips = sharedAssets2.LoadAsset("BabyDragunJail").GetComponentInChildren().Library.clips; foreach (tk2dSpriteAnimationClip val3 in clips) { if ((val3.name == "baby_dragun_weak_idle") | (val3.name == "baby_dragun_weak_eat")) { list.Add(val3); } } val2.clips = list.ToArray(); tk2dSpriteAnimator component2 = NPCBabyDragunChaos.GetComponent(); component2.Library = val2; component2.DefaultClipId = 0; component2.AdditionalCameraVisibilityRadius = 0f; component2.AnimateDuringBossIntros = false; component2.AlwaysIgnoreTimeScale = false; component2.ForceSetEveryFrame = false; component2.playAutomatically = false; component2.IsFrameBlendedAnimation = false; component2.clipTime = 0f; component2.deferNextStartClip = false; NPCBabyDragunChaos.AddComponent(); EXPortableElevator_Departure = expandSharedAssets1.LoadAsset("EXPortableElevator_Departure"); GameObject gameObject4 = ((Component)EXPortableElevator_Departure.transform.Find("elevator")).gameObject; GameObject gameObject5 = ((Component)EXPortableElevator_Departure.transform.Find("floor")).gameObject; GameObject gameObject6 = ((Component)EXPortableElevator_Departure.transform.Find("interiorFloor")).gameObject; ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(gameObject4, EXPortableElevatorCollection, "portable_elevator_arrive_01", (PerpendicularState)0)).HeightOffGround = -4.75f; ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(gameObject5, EXPortableElevatorCollection, "portable_elevator_floor_alt", (PerpendicularState)2)).HeightOffGround = -1.75f; ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(gameObject6, EXPortableElevatorCollection, "portable_elevator_interiorfloor", (PerpendicularState)2)).HeightOffGround = -0.75f; List spriteNameList3 = new List { "portable_elevator_arrive_01", "portable_elevator_arrive_02", "portable_elevator_arrive_03", "portable_elevator_arrive_04" }; List spriteNameList4 = new List { "portable_elevator_depart_01", "portable_elevator_depart_02", "portable_elevator_depart_03", "portable_elevator_depart_04", "portable_elevator_depart_05", "portable_elevator_depart_06", "portable_elevator_depart_07", "portable_elevator_depart_08", "portable_elevator_depart_09", "portable_elevator_depart_10", "portable_elevator_depart_11" }; List spriteNameList5 = new List { "portable_elevator_open_01", "portable_elevator_open_02", "portable_elevator_open_03", "portable_elevator_open_04", "portable_elevator_open_05" }; List spriteNameList6 = new List { "portable_elevator_open_05", "portable_elevator_open_04", "portable_elevator_open_03", "portable_elevator_open_02", "portable_elevator_open_01" }; ExpandUtility.GenerateSpriteAnimator(gameObject4); tk2dSpriteAnimator component3 = gameObject4.GetComponent(); ExpandUtility.AddAnimation(component3, EXPortableElevatorCollection.GetComponent(), spriteNameList3, "arrive", (WrapMode)2, 16); component3.Library.clips[0].frames[0].eventAudio = "Play_OBJ_elevator_arrive_01"; component3.Library.clips[0].frames[0].triggerEvent = true; ExpandUtility.AddAnimation(component3, EXPortableElevatorCollection.GetComponent(), spriteNameList4, "depart", (WrapMode)2, 30); component3.Library.clips[1].frames[0].eventAudio = "Play_OBJ_elevator_leave_01"; component3.Library.clips[1].frames[0].triggerEvent = true; ExpandUtility.AddAnimation(component3, EXPortableElevatorCollection.GetComponent(), spriteNameList5, "open", (WrapMode)2, 9); ExpandUtility.AddAnimation(component3, EXPortableElevatorCollection.GetComponent(), spriteNameList6, "close", (WrapMode)2, 9); ExpandUtility.GenerateOrAddToRigidBody(gameObject5, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 12), (IntVector2?)new IntVector2(32, 16)); ExpandUtility.GenerateOrAddToRigidBody(gameObject5, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 36), (IntVector2?)new IntVector2(32, 28)); ExpandUtility.GenerateOrAddToRigidBody(gameObject5, (CollisionLayer)16, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: true, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 32), (IntVector2?)new IntVector2(32, 64)); ExpandUtility.GenerateOrAddToRigidBody(gameObject5, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(11, 7), (IntVector2?)new IntVector2(21, 21)); ExpandUtility.GenerateOrAddToRigidBody(gameObject5, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(11, 7), (IntVector2?)new IntVector2(64, 21)); ExpandUtility.GenerateOrAddToRigidBody(gameObject5, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(16, 78), (IntVector2?)new IntVector2(16, 28)); ExpandUtility.GenerateOrAddToRigidBody(gameObject5, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(16, 78), (IntVector2?)new IntVector2(64, 28)); ExpandUtility.GenerateOrAddToRigidBody(gameObject5, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 13), (IntVector2?)new IntVector2(32, 93)); EXPortableElevator_Departure.AddComponent().ImpactVFXObjects = (GameObject[])(object)new GameObject[3] { sharedAssets.LoadAsset("VFX_Dust_Explosion"), sharedAssets.LoadAsset("VFX_Tombstone_Impact"), sharedAssets.LoadAsset("VFX_Big_Dust_Poof") }; EXPortableElevator_Reticle = expandSharedAssets1.LoadAsset("EXPortableElevator_Reticle"); SpriteSerializer.AddSpriteToObject(EXPortableElevator_Reticle, EXPortableElevatorCollection, "portable_elevator_reticle_green", (PerpendicularState)2); ExpandReticleRiserEffect expandReticleRiserEffect = EXPortableElevator_Reticle.AddComponent(); expandReticleRiserEffect.UpdateSpriteDefinitions = true; expandReticleRiserEffect.CurrentSpriteName = "portable_elevator_reticle_green"; expandReticleRiserEffect.NumRisers = 3; expandReticleRiserEffect.RiserHeight = 1f; expandReticleRiserEffect.RiseTime = 1.5f; EXPortableElevator_Departure_Placable = expandSharedAssets1.LoadAsset("EXPortableElevator_Departure_Placable"); GameObject gameObject7 = ((Component)EXPortableElevator_Departure_Placable.transform.Find("elevator")).gameObject; GameObject gameObject8 = ((Component)EXPortableElevator_Departure_Placable.transform.Find("floor")).gameObject; GameObject gameObject9 = ((Component)EXPortableElevator_Departure_Placable.transform.Find("floorBorder")).gameObject; GameObject gameObject10 = ((Component)EXPortableElevator_Departure_Placable.transform.Find("interiorFloor")).gameObject; ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(gameObject7, EXPortableElevatorCollection, "portable_elevator_arrive_01", (PerpendicularState)0)).HeightOffGround = -4.75f; ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(gameObject8, EXPortableElevatorCollection, "portable_elevator_floor", (PerpendicularState)2)).HeightOffGround = -1.7f; ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(gameObject9, EXPortableElevatorCollection, "portable_elevator_floor_border", (PerpendicularState)2)).HeightOffGround = -1.75f; ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(gameObject10, EXPortableElevatorCollection, "portable_elevator_interiorfloor", (PerpendicularState)2)).HeightOffGround = -0.75f; ExpandUtility.GenerateOrAddToRigidBody(gameObject8, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 12), (IntVector2?)new IntVector2(32, 16)); ExpandUtility.GenerateOrAddToRigidBody(gameObject8, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 36), (IntVector2?)new IntVector2(32, 28)); ExpandUtility.GenerateOrAddToRigidBody(gameObject8, (CollisionLayer)16, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: true, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 32), (IntVector2?)new IntVector2(32, 64)); ExpandUtility.GenerateOrAddToRigidBody(gameObject8, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(11, 7), (IntVector2?)new IntVector2(21, 21)); ExpandUtility.GenerateOrAddToRigidBody(gameObject8, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(11, 7), (IntVector2?)new IntVector2(64, 21)); ExpandUtility.GenerateOrAddToRigidBody(gameObject8, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(16, 78), (IntVector2?)new IntVector2(16, 28)); ExpandUtility.GenerateOrAddToRigidBody(gameObject8, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(16, 78), (IntVector2?)new IntVector2(64, 28)); ExpandUtility.GenerateOrAddToRigidBody(gameObject8, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 13), (IntVector2?)new IntVector2(32, 93)); ExpandUtility.GenerateSpriteAnimator(gameObject7); gameObject7.GetComponent().Library = component3.Library; ExpandNewElevatorController expandNewElevatorController = EXPortableElevator_Departure_Placable.AddComponent(); expandNewElevatorController.ArriveOnSpawn = false; expandNewElevatorController.UsesOverrideTargetFloor = false; expandNewElevatorController.ImpactVFXObjects = (GameObject[])(object)new GameObject[3] { sharedAssets.LoadAsset("VFX_Dust_Explosion"), sharedAssets.LoadAsset("VFX_Tombstone_Impact"), sharedAssets.LoadAsset("VFX_Big_Dust_Poof") }; EXJungleElevator_Departure_Placable = expandSharedAssets1.LoadAsset("EXJungleElevator_Departure_Placable"); GameObject gameObject11 = ((Component)EXJungleElevator_Departure_Placable.transform.Find("elevator")).gameObject; GameObject gameObject12 = ((Component)EXJungleElevator_Departure_Placable.transform.Find("floor")).gameObject; GameObject gameObject13 = ((Component)EXJungleElevator_Departure_Placable.transform.Find("floorBorder")).gameObject; GameObject gameObject14 = ((Component)EXJungleElevator_Departure_Placable.transform.Find("interiorFloor")).gameObject; ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(gameObject11, EXPortableElevatorCollection, "portable_elevator_arrive_01", (PerpendicularState)0)).HeightOffGround = -4.75f; ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(gameObject12, EXPortableElevatorCollection, "portable_elevator_floor", (PerpendicularState)2)).HeightOffGround = -1.7f; ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(gameObject13, EXPortableElevatorCollection, "portable_elevator_floor_border", (PerpendicularState)2)).HeightOffGround = -1.75f; ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(gameObject14, EXPortableElevatorCollection, "portable_elevator_interiorfloor", (PerpendicularState)2)).HeightOffGround = -0.75f; ExpandUtility.GenerateOrAddToRigidBody(gameObject12, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 12), (IntVector2?)new IntVector2(32, 16)); ExpandUtility.GenerateOrAddToRigidBody(gameObject12, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 36), (IntVector2?)new IntVector2(32, 28)); ExpandUtility.GenerateOrAddToRigidBody(gameObject12, (CollisionLayer)16, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: true, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 32), (IntVector2?)new IntVector2(32, 64)); ExpandUtility.GenerateOrAddToRigidBody(gameObject12, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(11, 7), (IntVector2?)new IntVector2(21, 21)); ExpandUtility.GenerateOrAddToRigidBody(gameObject12, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(11, 7), (IntVector2?)new IntVector2(64, 21)); ExpandUtility.GenerateOrAddToRigidBody(gameObject12, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(16, 78), (IntVector2?)new IntVector2(16, 28)); ExpandUtility.GenerateOrAddToRigidBody(gameObject12, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(16, 78), (IntVector2?)new IntVector2(64, 28)); ExpandUtility.GenerateOrAddToRigidBody(gameObject12, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 13), (IntVector2?)new IntVector2(32, 93)); ExpandUtility.GenerateSpriteAnimator(gameObject11); gameObject11.GetComponent().Library = component3.Library; ExpandNewElevatorController expandNewElevatorController2 = EXJungleElevator_Departure_Placable.AddComponent(); expandNewElevatorController2.ArriveOnSpawn = false; expandNewElevatorController2.UsesOverrideTargetFloor = true; expandNewElevatorController2.OverrideFloorName = "tt_jungle"; expandNewElevatorController2.ImpactVFXObjects = (GameObject[])(object)new GameObject[3] { sharedAssets.LoadAsset("VFX_Dust_Explosion"), sharedAssets.LoadAsset("VFX_Tombstone_Impact"), sharedAssets.LoadAsset("VFX_Big_Dust_Poof") }; EXElevator_Arrival_Placable = expandSharedAssets1.LoadAsset("EXElevator_Arrival_Placable"); GameObject gameObject15 = ((Component)EXElevator_Arrival_Placable.transform.Find("elevator")).gameObject; GameObject gameObject16 = ((Component)EXElevator_Arrival_Placable.transform.Find("floor")).gameObject; GameObject gameObject17 = ((Component)EXElevator_Arrival_Placable.transform.Find("floorBorder")).gameObject; GameObject gameObject18 = ((Component)EXElevator_Arrival_Placable.transform.Find("interiorFloor")).gameObject; ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(gameObject15, EXPortableElevatorCollection, "portable_elevator_arrive_01", (PerpendicularState)0)).HeightOffGround = -4.75f; ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(gameObject16, EXPortableElevatorCollection, "portable_elevator_floor", (PerpendicularState)2)).HeightOffGround = -1.7f; ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(gameObject17, EXPortableElevatorCollection, "portable_elevator_floor_border", (PerpendicularState)2)).HeightOffGround = -1.75f; ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(gameObject18, EXPortableElevatorCollection, "portable_elevator_interiorfloor", (PerpendicularState)2)).HeightOffGround = -0.75f; ExpandUtility.GenerateOrAddToRigidBody(gameObject16, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 12), (IntVector2?)new IntVector2(32, 16)); ExpandUtility.GenerateOrAddToRigidBody(gameObject16, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 36), (IntVector2?)new IntVector2(32, 28)); ExpandUtility.GenerateOrAddToRigidBody(gameObject16, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(11, 7), (IntVector2?)new IntVector2(21, 21)); ExpandUtility.GenerateOrAddToRigidBody(gameObject16, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(11, 7), (IntVector2?)new IntVector2(64, 21)); ExpandUtility.GenerateOrAddToRigidBody(gameObject16, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(16, 78), (IntVector2?)new IntVector2(16, 28)); ExpandUtility.GenerateOrAddToRigidBody(gameObject16, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(16, 78), (IntVector2?)new IntVector2(64, 28)); ExpandUtility.GenerateOrAddToRigidBody(gameObject16, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 13), (IntVector2?)new IntVector2(32, 93)); ExpandUtility.GenerateSpriteAnimator(gameObject15); gameObject15.GetComponent().Library = component3.Library; ExpandNewElevatorController expandNewElevatorController3 = EXElevator_Arrival_Placable.AddComponent(); expandNewElevatorController3.IsArrivalElevator = true; expandNewElevatorController3.ArriveOnSpawn = false; expandNewElevatorController3.ImpactVFXObjects = (GameObject[])(object)new GameObject[3] { sharedAssets.LoadAsset("VFX_Dust_Explosion"), sharedAssets.LoadAsset("VFX_Tombstone_Impact"), sharedAssets.LoadAsset("VFX_Big_Dust_Poof") }; ElevatorDeparture = sharedAssets2.LoadAsset("Elevator_Departure"); ElevatorArrival = sharedAssets2.LoadAsset("Elevator_Arrival"); TinySecretRoomRewards = ScriptableObject.CreateInstance(); TinySecretRoomJunkReward = ScriptableObject.CreateInstance(); CorruptedSecretRoomSpecialItem = ScriptableObject.CreateInstance(); CorruptedSecretRoomNPCs = ScriptableObject.CreateInstance(); CorruptedSecretRoomNPCs2 = ScriptableObject.CreateInstance(); ((Object)TinySecretRoomRewards).name = "Tiny Secret Room Reward"; TinySecretRoomRewards.width = 1; TinySecretRoomRewards.height = 1; TinySecretRoomRewards.isPassable = true; TinySecretRoomRewards.roomSequential = false; TinySecretRoomRewards.respectsEncounterableDifferentiator = false; TinySecretRoomRewards.UsePrefabTransformOffset = false; TinySecretRoomRewards.MarkSpawnedItemsAsRatIgnored = true; TinySecretRoomRewards.DebugThisPlaceable = false; TinySecretRoomRewards.IsAnnexTable = false; TinySecretRoomRewards.variantTiers = new List { new DungeonPlaceableVariant { percentChance = 0.6f, unitOffset = Vector2.zero, nonDatabasePlaceable = null, enemyPlaceableGuid = string.Empty, pickupObjectPlaceableId = 127, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] }, new DungeonPlaceableVariant { percentChance = 0.35f, unitOffset = Vector2.zero, nonDatabasePlaceable = null, enemyPlaceableGuid = string.Empty, pickupObjectPlaceableId = 147, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] }, new DungeonPlaceableVariant { percentChance = 0.3f, unitOffset = Vector2.zero, nonDatabasePlaceable = null, enemyPlaceableGuid = string.Empty, pickupObjectPlaceableId = 224, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] }, new DungeonPlaceableVariant { percentChance = 0.3f, unitOffset = Vector2.zero, nonDatabasePlaceable = null, enemyPlaceableGuid = string.Empty, pickupObjectPlaceableId = 600, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] }, new DungeonPlaceableVariant { percentChance = 0.3f, unitOffset = Vector2.zero, nonDatabasePlaceable = null, enemyPlaceableGuid = string.Empty, pickupObjectPlaceableId = 78, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] }, new DungeonPlaceableVariant { percentChance = 0.3f, unitOffset = Vector2.zero, nonDatabasePlaceable = null, enemyPlaceableGuid = string.Empty, pickupObjectPlaceableId = 120, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] }, new DungeonPlaceableVariant { percentChance = 0.3f, unitOffset = Vector2.zero, nonDatabasePlaceable = null, enemyPlaceableGuid = string.Empty, pickupObjectPlaceableId = 565, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] }, new DungeonPlaceableVariant { percentChance = 0.02f, unitOffset = Vector2.zero, nonDatabasePlaceable = null, enemyPlaceableGuid = string.Empty, pickupObjectPlaceableId = 641, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] }, new DungeonPlaceableVariant { percentChance = 0.02f, unitOffset = Vector2.zero, nonDatabasePlaceable = null, enemyPlaceableGuid = string.Empty, pickupObjectPlaceableId = 580, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] } }; ((Object)TinySecretRoomJunkReward).name = "Tiny Secret Room Junk Reward"; TinySecretRoomJunkReward.width = 1; TinySecretRoomJunkReward.height = 1; TinySecretRoomJunkReward.isPassable = true; TinySecretRoomJunkReward.roomSequential = false; TinySecretRoomJunkReward.respectsEncounterableDifferentiator = false; TinySecretRoomJunkReward.UsePrefabTransformOffset = false; TinySecretRoomJunkReward.MarkSpawnedItemsAsRatIgnored = true; TinySecretRoomJunkReward.DebugThisPlaceable = false; TinySecretRoomJunkReward.IsAnnexTable = false; TinySecretRoomJunkReward.variantTiers = new List { new DungeonPlaceableVariant { percentChance = 1f, unitOffset = Vector2.zero, nonDatabasePlaceable = null, enemyPlaceableGuid = string.Empty, pickupObjectPlaceableId = 127, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] } }; ((Object)CorruptedSecretRoomSpecialItem).name = "Corrupte Secret Room Corruption Bomb Item"; CorruptedSecretRoomSpecialItem.width = 1; CorruptedSecretRoomSpecialItem.height = 1; CorruptedSecretRoomSpecialItem.isPassable = true; CorruptedSecretRoomSpecialItem.roomSequential = false; CorruptedSecretRoomSpecialItem.respectsEncounterableDifferentiator = false; CorruptedSecretRoomSpecialItem.UsePrefabTransformOffset = false; CorruptedSecretRoomSpecialItem.MarkSpawnedItemsAsRatIgnored = true; CorruptedSecretRoomSpecialItem.DebugThisPlaceable = false; CorruptedSecretRoomSpecialItem.IsAnnexTable = false; CorruptedSecretRoomSpecialItem.variantTiers = new List { new DungeonPlaceableVariant { percentChance = 1f, unitOffset = Vector2.zero, enemyPlaceableGuid = string.Empty, pickupObjectPlaceableId = CorruptionBomb.CorruptionBombPickupID, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] } }; ((Object)CorruptedSecretRoomNPCs).name = "Corrupted Secret Room NPCs"; CorruptedSecretRoomNPCs.width = 1; CorruptedSecretRoomNPCs.height = 1; CorruptedSecretRoomNPCs.isPassable = true; CorruptedSecretRoomNPCs.roomSequential = false; CorruptedSecretRoomNPCs.respectsEncounterableDifferentiator = false; CorruptedSecretRoomNPCs.UsePrefabTransformOffset = false; CorruptedSecretRoomNPCs.MarkSpawnedItemsAsRatIgnored = true; CorruptedSecretRoomNPCs.DebugThisPlaceable = false; CorruptedSecretRoomNPCs.IsAnnexTable = false; CorruptedSecretRoomNPCs.variantTiers = new List { new DungeonPlaceableVariant { percentChance = 0.3f, unitOffset = Vector2.zero, nonDatabasePlaceable = ExpandObjectDatabase.NPCMonsterManuel, enemyPlaceableGuid = string.Empty, pickupObjectPlaceableId = -1, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] }, new DungeonPlaceableVariant { percentChance = 0.3f, unitOffset = Vector2.zero, nonDatabasePlaceable = ExpandObjectDatabase.NPCOldMan, enemyPlaceableGuid = string.Empty, pickupObjectPlaceableId = -1, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] }, new DungeonPlaceableVariant { percentChance = 0.3f, unitOffset = Vector2.zero, nonDatabasePlaceable = ExpandObjectDatabase.NPCVampire, enemyPlaceableGuid = string.Empty, pickupObjectPlaceableId = -1, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] }, new DungeonPlaceableVariant { percentChance = 0.4f, unitOffset = Vector2.zero, nonDatabasePlaceable = null, enemyPlaceableGuid = string.Empty, pickupObjectPlaceableId = -1, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] } }; ((Object)CorruptedSecretRoomNPCs2).name = "Corrupted Secret Room NPCs Alt"; CorruptedSecretRoomNPCs2.width = 1; CorruptedSecretRoomNPCs2.height = 1; CorruptedSecretRoomNPCs2.isPassable = true; CorruptedSecretRoomNPCs2.roomSequential = false; CorruptedSecretRoomNPCs2.respectsEncounterableDifferentiator = false; CorruptedSecretRoomNPCs2.UsePrefabTransformOffset = false; CorruptedSecretRoomNPCs2.MarkSpawnedItemsAsRatIgnored = true; CorruptedSecretRoomNPCs2.DebugThisPlaceable = false; CorruptedSecretRoomNPCs2.IsAnnexTable = false; CorruptedSecretRoomNPCs2.variantTiers = new List { new DungeonPlaceableVariant { percentChance = 0.3f, unitOffset = Vector2.zero, nonDatabasePlaceable = ExpandObjectDatabase.NPCMonsterManuel, enemyPlaceableGuid = string.Empty, pickupObjectPlaceableId = -1, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] }, new DungeonPlaceableVariant { percentChance = 0.3f, unitOffset = Vector2.zero, nonDatabasePlaceable = ExpandObjectDatabase.NPCOldMan, enemyPlaceableGuid = string.Empty, pickupObjectPlaceableId = -1, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] }, new DungeonPlaceableVariant { percentChance = 0.2f, unitOffset = Vector2.zero, nonDatabasePlaceable = ExpandObjectDatabase.NPCGunMuncher, enemyPlaceableGuid = string.Empty, pickupObjectPlaceableId = -1, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] }, new DungeonPlaceableVariant { percentChance = 0.4f, unitOffset = Vector2.zero, nonDatabasePlaceable = null, enemyPlaceableGuid = string.Empty, pickupObjectPlaceableId = -1, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] } }; MetalCubeGuy = ((Component)EnemyDatabase.GetOrLoadByGuid("ba928393c8ed47819c2c5f593100a5bc")).gameObject; SerManuel = ((Component)EnemyDatabase.GetOrLoadByGuid("fc809bd43a4d41738a62d7565456622c")).gameObject; SkusketHead = ((Component)EnemyDatabase.GetOrLoadByGuid("c2f902b7cbe745efb3db4399927eab34")).gameObject; AK47BulletKin = ((Component)EnemyDatabase.GetOrLoadByGuid("db35531e66ce41cbb81d507a34366dfe")).gameObject; PirateShotgunKin = ((Component)EnemyDatabase.GetOrLoadByGuid("86dfc13486ee4f559189de53cfb84107")).gameObject; PirateShotgunKinHat = PirateShotgunKin.GetComponent().OtherVFX[0].vfxPool.effects[0].effects[0].effect; PirateBulletKin = ((Component)EnemyDatabase.GetOrLoadByGuid("6f818f482a5c47fd8f38cce101f6566c")).gameObject; PirateBulletKinHat = PirateBulletKin.GetComponent().OtherVFX[0].vfxPool.effects[0].effects[0].effect; AK47BulletKin.GetComponent().EnemySwitchState = EnemyDatabase.GetOrLoadByGuid("01972dee89fc4404a5c408d50007dad5").EnemySwitchState; ((tk2dBaseSprite)PirateShotgunKinHat.GetComponent()).CachedPerpState = (PerpendicularState)2; PirateShotgunKin.GetComponent().OtherVFX[0].vfxPool.effects[0].effects[0].usesZHeight = true; PirateShotgunKin.GetComponent().OtherVFX[0].vfxPool.effects[0].effects[0].zHeight = -1.5f; ((tk2dBaseSprite)PirateBulletKinHat.GetComponent()).CachedPerpState = (PerpendicularState)2; PirateBulletKin.GetComponent().OtherVFX[0].vfxPool.effects[0].effects[0].usesZHeight = true; PirateBulletKin.GetComponent().OtherVFX[0].vfxPool.effects[0].effects[0].zHeight = -1.5f; RatJailDoor = ((Component)orLoadByName5.PatternSettings.flows[0].AllNodes[13].overrideExactRoom.placedObjects[1].nonenemyBehaviour).gameObject; ElevatorArrivalVarientForUnknownTilesets = new DungeonPlaceableVariant { percentChance = 0f, percentChanceMultiplier = 1f, unitOffset = Vector2.zero, nonDatabasePlaceable = EXElevator_Arrival_Placable, enemyPlaceableGuid = string.Empty, pickupObjectPlaceableId = -1, forceBlackPhantom = false, addDebrisObject = false, materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0], prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0] }; DungeonPlaceableVariant val4 = new DungeonPlaceableVariant(); val4.percentChance = 1f; val4.percentChanceMultiplier = 1f; val4.unitOffset = Vector2.zero; val4.nonDatabasePlaceable = EXElevator_Arrival_Placable; val4.enemyPlaceableGuid = string.Empty; val4.pickupObjectPlaceableId = -1; val4.forceBlackPhantom = false; val4.addDebrisObject = false; val4.materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0]; val4.prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[1] { new DungeonPrerequisite { prerequisiteType = (PrerequisiteType)3, prerequisiteOperation = (PrerequisiteOperation)0, statToCheck = (TrackedStats)0, maxToCheck = (TrackedMaximums)0, comparisonValue = 0f, useSessionStatValue = false, encounteredObjectGuid = string.Empty, requiredNumberOfEncounters = 0, requireCharacter = false, requiredCharacter = (PlayableCharacters)0, requiredTileset = (ValidTilesets)2048, requireTileset = true, requireFlag = false, requireDemoMode = false } }; ElevatorArrivalVarientForOffice = val4; val4 = new DungeonPlaceableVariant(); val4.percentChance = 1f; val4.percentChanceMultiplier = 1f; val4.unitOffset = Vector2.zero; val4.nonDatabasePlaceable = EXElevator_Arrival_Placable; val4.enemyPlaceableGuid = string.Empty; val4.pickupObjectPlaceableId = -1; val4.forceBlackPhantom = false; val4.addDebrisObject = false; val4.materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0]; val4.prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[1] { new DungeonPrerequisite { prerequisiteType = (PrerequisiteType)3, prerequisiteOperation = (PrerequisiteOperation)0, statToCheck = (TrackedStats)0, maxToCheck = (TrackedMaximums)0, comparisonValue = 0f, useSessionStatValue = false, encounteredObjectGuid = string.Empty, requiredNumberOfEncounters = 0, requireCharacter = false, requiredCharacter = (PlayableCharacters)0, requiredTileset = (ValidTilesets)8192, requireTileset = true, requireFlag = false, requireDemoMode = false } }; ElevatorArrivalVarientForJungle = val4; val4 = new DungeonPlaceableVariant(); val4.percentChance = 1f; val4.percentChanceMultiplier = 1f; val4.unitOffset = Vector2.zero; val4.nonDatabasePlaceable = EXElevator_Arrival_Placable; val4.enemyPlaceableGuid = string.Empty; val4.pickupObjectPlaceableId = -1; val4.forceBlackPhantom = false; val4.addDebrisObject = false; val4.materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0]; val4.prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[1] { new DungeonPrerequisite { prerequisiteType = (PrerequisiteType)3, prerequisiteOperation = (PrerequisiteOperation)0, statToCheck = (TrackedStats)0, maxToCheck = (TrackedMaximums)0, comparisonValue = 0f, useSessionStatValue = false, encounteredObjectGuid = string.Empty, requiredNumberOfEncounters = 0, requireCharacter = false, requiredCharacter = (PlayableCharacters)0, requiredTileset = (ValidTilesets)4096, requireTileset = true, requireFlag = false, requireDemoMode = false } }; ElevatorArrivalVarientForBelly = val4; val4 = new DungeonPlaceableVariant(); val4.percentChance = 1f; val4.percentChanceMultiplier = 1f; val4.unitOffset = Vector2.zero; val4.nonDatabasePlaceable = EXElevator_Arrival_Placable; val4.enemyPlaceableGuid = string.Empty; val4.pickupObjectPlaceableId = -1; val4.forceBlackPhantom = false; val4.addDebrisObject = false; val4.materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0]; val4.prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[1] { new DungeonPrerequisite { prerequisiteType = (PrerequisiteType)3, prerequisiteOperation = (PrerequisiteOperation)0, statToCheck = (TrackedStats)0, maxToCheck = (TrackedMaximums)0, comparisonValue = 0f, useSessionStatValue = false, encounteredObjectGuid = string.Empty, requiredNumberOfEncounters = 0, requireCharacter = false, requiredCharacter = (PlayableCharacters)0, requiredTileset = (ValidTilesets)1024, requireTileset = true, requireFlag = false, requireDemoMode = false } }; ElevatorArrivalVarientForOldWest = val4; val4 = new DungeonPlaceableVariant(); val4.percentChance = 1f; val4.percentChanceMultiplier = 1f; val4.unitOffset = Vector2.zero; val4.nonDatabasePlaceable = EXElevator_Arrival_Placable; val4.enemyPlaceableGuid = string.Empty; val4.pickupObjectPlaceableId = -1; val4.forceBlackPhantom = false; val4.addDebrisObject = false; val4.materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0]; val4.prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[1] { new DungeonPrerequisite { prerequisiteType = (PrerequisiteType)3, prerequisiteOperation = (PrerequisiteOperation)0, statToCheck = (TrackedStats)0, maxToCheck = (TrackedMaximums)0, comparisonValue = 0f, useSessionStatValue = false, encounteredObjectGuid = string.Empty, requiredNumberOfEncounters = 0, requireCharacter = false, requiredCharacter = (PlayableCharacters)0, requiredTileset = (ValidTilesets)512, requireTileset = true, requireFlag = false, requireDemoMode = false } }; ElevatorArrivalVarientForPhobos = val4; val4 = new DungeonPlaceableVariant(); val4.percentChance = 1f; val4.percentChanceMultiplier = 1f; val4.unitOffset = Vector2.zero; val4.nonDatabasePlaceable = EXElevator_Arrival_Placable; val4.enemyPlaceableGuid = string.Empty; val4.pickupObjectPlaceableId = -1; val4.forceBlackPhantom = false; val4.addDebrisObject = false; val4.materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0]; val4.prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[1] { new DungeonPrerequisite { prerequisiteType = (PrerequisiteType)3, prerequisiteOperation = (PrerequisiteOperation)0, statToCheck = (TrackedStats)0, maxToCheck = (TrackedMaximums)0, comparisonValue = 0f, useSessionStatValue = false, encounteredObjectGuid = string.Empty, requiredNumberOfEncounters = 0, requireCharacter = false, requiredCharacter = (PlayableCharacters)0, requiredTileset = (ValidTilesets)256, requireTileset = true, requireFlag = false, requireDemoMode = false } }; ElevatorArrivalVarientForSpace = val4; val4 = new DungeonPlaceableVariant(); val4.percentChance = 1f; val4.percentChanceMultiplier = 1f; val4.unitOffset = Vector2.zero; val4.nonDatabasePlaceable = EXPortableElevator_Departure_Placable; val4.enemyPlaceableGuid = string.Empty; val4.pickupObjectPlaceableId = -1; val4.forceBlackPhantom = false; val4.addDebrisObject = false; val4.materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0]; val4.prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[1] { new DungeonPrerequisite { prerequisiteType = (PrerequisiteType)3, prerequisiteOperation = (PrerequisiteOperation)0, statToCheck = (TrackedStats)0, maxToCheck = (TrackedMaximums)0, comparisonValue = 0f, useSessionStatValue = false, encounteredObjectGuid = string.Empty, requiredNumberOfEncounters = 0, requireCharacter = false, requiredCharacter = (PlayableCharacters)0, requiredTileset = (ValidTilesets)2048, requireTileset = true, requireFlag = false, requireDemoMode = false } }; ElevatorDepartureVarientForOffice = val4; val4 = new DungeonPlaceableVariant(); val4.percentChance = 1f; val4.percentChanceMultiplier = 1f; val4.unitOffset = Vector2.zero; val4.nonDatabasePlaceable = EXPortableElevator_Departure_Placable; val4.enemyPlaceableGuid = string.Empty; val4.pickupObjectPlaceableId = -1; val4.forceBlackPhantom = false; val4.addDebrisObject = false; val4.materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0]; val4.prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[1] { new DungeonPrerequisite { prerequisiteType = (PrerequisiteType)3, prerequisiteOperation = (PrerequisiteOperation)0, statToCheck = (TrackedStats)0, maxToCheck = (TrackedMaximums)0, comparisonValue = 0f, useSessionStatValue = false, encounteredObjectGuid = string.Empty, requiredNumberOfEncounters = 0, requireCharacter = false, requiredCharacter = (PlayableCharacters)0, requiredTileset = (ValidTilesets)8192, requireTileset = true, requireFlag = false, requireDemoMode = false } }; ElevatorDepartureVarientForJungle = val4; val4 = new DungeonPlaceableVariant(); val4.percentChance = 1f; val4.percentChanceMultiplier = 1f; val4.unitOffset = Vector2.zero; val4.nonDatabasePlaceable = EXPortableElevator_Departure_Placable; val4.enemyPlaceableGuid = string.Empty; val4.pickupObjectPlaceableId = -1; val4.forceBlackPhantom = false; val4.addDebrisObject = false; val4.materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0]; val4.prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[1] { new DungeonPrerequisite { prerequisiteType = (PrerequisiteType)3, prerequisiteOperation = (PrerequisiteOperation)0, statToCheck = (TrackedStats)0, maxToCheck = (TrackedMaximums)0, comparisonValue = 0f, useSessionStatValue = false, encounteredObjectGuid = string.Empty, requiredNumberOfEncounters = 0, requireCharacter = false, requiredCharacter = (PlayableCharacters)0, requiredTileset = (ValidTilesets)4096, requireTileset = true, requireFlag = false, requireDemoMode = false } }; ElevatorDepartureVarientForBelly = val4; val4 = new DungeonPlaceableVariant(); val4.percentChance = 1f; val4.percentChanceMultiplier = 1f; val4.unitOffset = Vector2.zero; val4.nonDatabasePlaceable = EXPortableElevator_Departure_Placable; val4.enemyPlaceableGuid = string.Empty; val4.pickupObjectPlaceableId = -1; val4.forceBlackPhantom = false; val4.addDebrisObject = false; val4.materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0]; val4.prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[1] { new DungeonPrerequisite { prerequisiteType = (PrerequisiteType)3, prerequisiteOperation = (PrerequisiteOperation)0, statToCheck = (TrackedStats)0, maxToCheck = (TrackedMaximums)0, comparisonValue = 0f, useSessionStatValue = false, encounteredObjectGuid = string.Empty, requiredNumberOfEncounters = 0, requireCharacter = false, requiredCharacter = (PlayableCharacters)0, requiredTileset = (ValidTilesets)1024, requireTileset = true, requireFlag = false, requireDemoMode = false } }; ElevatorDepartureVarientForOldWest = val4; val4 = new DungeonPlaceableVariant(); val4.percentChance = 1f; val4.percentChanceMultiplier = 1f; val4.unitOffset = Vector2.zero; val4.nonDatabasePlaceable = EXPortableElevator_Departure_Placable; val4.enemyPlaceableGuid = string.Empty; val4.pickupObjectPlaceableId = -1; val4.forceBlackPhantom = false; val4.addDebrisObject = false; val4.materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0]; val4.prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[1] { new DungeonPrerequisite { prerequisiteType = (PrerequisiteType)3, prerequisiteOperation = (PrerequisiteOperation)0, statToCheck = (TrackedStats)0, maxToCheck = (TrackedMaximums)0, comparisonValue = 0f, useSessionStatValue = false, encounteredObjectGuid = string.Empty, requiredNumberOfEncounters = 0, requireCharacter = false, requiredCharacter = (PlayableCharacters)0, requiredTileset = (ValidTilesets)512, requireTileset = true, requireFlag = false, requireDemoMode = false } }; ElevatorDepartureVarientForPhobos = val4; val4 = new DungeonPlaceableVariant(); val4.percentChance = 1f; val4.percentChanceMultiplier = 1f; val4.unitOffset = Vector2.zero; val4.nonDatabasePlaceable = EXPortableElevator_Departure_Placable; val4.enemyPlaceableGuid = string.Empty; val4.pickupObjectPlaceableId = -1; val4.forceBlackPhantom = false; val4.addDebrisObject = false; val4.materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0]; val4.prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[1] { new DungeonPrerequisite { prerequisiteType = (PrerequisiteType)3, prerequisiteOperation = (PrerequisiteOperation)0, statToCheck = (TrackedStats)0, maxToCheck = (TrackedMaximums)0, comparisonValue = 0f, useSessionStatValue = false, encounteredObjectGuid = string.Empty, requiredNumberOfEncounters = 0, requireCharacter = false, requiredCharacter = (PlayableCharacters)0, requiredTileset = (ValidTilesets)256, requireTileset = true, requireFlag = false, requireDemoMode = false } }; ElevatorDepartureVarientForSpace = val4; ElevatorArrival.variantTiers.Add(ElevatorArrivalVarientForUnknownTilesets); ElevatorArrival.variantTiers.Add(ElevatorArrivalVarientForOffice); ElevatorArrival.variantTiers.Add(ElevatorArrivalVarientForJungle); ElevatorArrival.variantTiers.Add(ElevatorArrivalVarientForBelly); ElevatorArrival.variantTiers.Add(ElevatorArrivalVarientForOldWest); ElevatorArrival.variantTiers.Add(ElevatorArrivalVarientForPhobos); ElevatorArrival.variantTiers.Add(ElevatorArrivalVarientForSpace); ElevatorDeparture.variantTiers.Add(ElevatorDepartureVarientForOffice); ElevatorDeparture.variantTiers.Add(ElevatorDepartureVarientForJungle); ElevatorDeparture.variantTiers.Add(ElevatorDepartureVarientForBelly); ElevatorDeparture.variantTiers.Add(ElevatorDepartureVarientForOldWest); ElevatorDeparture.variantTiers.Add(ElevatorDepartureVarientForPhobos); ElevatorDeparture.variantTiers.Add(ElevatorDepartureVarientForSpace); ElevatorDeparture.variantTiers[6].nonDatabasePlaceable = EXPortableElevator_Departure_Placable; ((Object)CastleGungeonMergedTable).name = "CastleGungeonMergedTable"; CastleGungeonMergedTable.includedRooms = new WeightedRoomCollection(); CastleGungeonMergedTable.includedRooms.elements = new List(); CastleGungeonMergedTable.includedRoomTables = new List { SecretRoomTable }; CastleGungeonMergedTable.includedRooms.elements.Add(ExpandRoomPrefabs.GenerateWeightedRoom(paradox_04)); CastleGungeonMergedTable.includedRooms.elements.Add(ExpandRoomPrefabs.GenerateWeightedRoom(paradox_04_copy)); for (int j = 0; j < CastleRoomTable.includedRooms.elements.Count; j++) { CastleGungeonMergedTable.includedRooms.elements.Add(CastleRoomTable.includedRooms.elements[j]); } for (int k = 0; k < Gungeon_RoomTable.includedRooms.elements.Count; k++) { CastleGungeonMergedTable.includedRooms.elements.Add(Gungeon_RoomTable.includedRooms.elements[k]); } ((Object)CustomRoomTable).name = "Test Mega Room Table"; CustomRoomTable.includedRooms = new WeightedRoomCollection(); CustomRoomTable.includedRooms.elements = new List(); CustomRoomTable.includedRoomTables = new List { SecretRoomTable }; CustomRoomTable.includedRooms.elements.Add(ExpandRoomPrefabs.GenerateWeightedRoom(paradox_04)); CustomRoomTable.includedRooms.elements.Add(ExpandRoomPrefabs.GenerateWeightedRoom(paradox_04_copy)); ((Object)CustomRoomTable2).name = "Test Mega Room Table 2"; CustomRoomTable2.includedRooms = new WeightedRoomCollection(); CustomRoomTable2.includedRooms.elements = new List(); CustomRoomTable2.includedRoomTables = new List { SecretRoomTable }; ((Object)CustomRoomTableSecretGlitchFloor).name = "Test Mega Room Table Secret"; CustomRoomTableSecretGlitchFloor.includedRooms = new WeightedRoomCollection(); CustomRoomTableSecretGlitchFloor.includedRooms.elements = new List(); CustomRoomTableSecretGlitchFloor.includedRoomTables = new List { SecretRoomTable }; WeightedRoom[] officeAndUnusedWeightedRooms = OfficeAndUnusedWeightedRooms; foreach (WeightedRoom val5 in officeAndUnusedWeightedRooms) { if ((Object)(object)val5.room != (Object)null) { CustomRoomTable.includedRooms.elements.Add(val5); CustomRoomTable2.includedRooms.elements.Add(val5); CustomRoomTableSecretGlitchFloor.includedRooms.elements.Add(val5); } } foreach (WeightedRoom element3 in CastleRoomTable.includedRooms.elements) { if ((Object)(object)element3.room != (Object)null && element3.room.overrideRoomVisualType == -1) { CustomRoomTable.includedRooms.elements.Add(element3); CustomRoomTable2.includedRooms.elements.Add(element3); CustomRoomTableSecretGlitchFloor.includedRooms.elements.Add(element3); } } foreach (WeightedRoom element4 in orLoadByName3.PatternSettings.flows[0].fallbackRoomTable.includedRooms.elements) { if ((Object)(object)element4.room != (Object)null) { CustomRoomTable.includedRooms.elements.Add(element4); CustomRoomTable2.includedRooms.elements.Add(element4); CustomRoomTableSecretGlitchFloor.includedRooms.elements.Add(element4); } } foreach (WeightedRoom element5 in Gungeon_RoomTable.includedRooms.elements) { if ((Object)(object)element5.room != (Object)null && !((Object)element5.room).name.ToLower().StartsWith("gungeon_snipe_city")) { CustomRoomTable.includedRooms.elements.Add(element5); CustomRoomTable2.includedRooms.elements.Add(element5); CustomRoomTableSecretGlitchFloor.includedRooms.elements.Add(element5); } } foreach (WeightedRoom element6 in orLoadByName6.PatternSettings.flows[0].fallbackRoomTable.includedRooms.elements) { if ((Object)(object)element6.room != (Object)null) { CustomRoomTable.includedRooms.elements.Add(element6); CustomRoomTable2.includedRooms.elements.Add(element6); CustomRoomTableSecretGlitchFloor.includedRooms.elements.Add(element6); } } foreach (WeightedRoom element7 in orLoadByName4.PatternSettings.flows[0].fallbackRoomTable.includedRooms.elements) { if ((Object)(object)element7.room != (Object)null && ((element7.room.paths == null) | (element7.room.paths.Count <= 0))) { CustomRoomTable.includedRooms.elements.Add(element7); CustomRoomTable2.includedRooms.elements.Add(element7); CustomRoomTableSecretGlitchFloor.includedRooms.elements.Add(element7); } } foreach (WeightedRoom element8 in orLoadByName9.PatternSettings.flows[0].fallbackRoomTable.includedRooms.elements) { if ((Object)(object)element8.room != (Object)null) { CustomRoomTable.includedRooms.elements.Add(element8); CustomRoomTable2.includedRooms.elements.Add(element8); CustomRoomTableSecretGlitchFloor.includedRooms.elements.Add(element8); } } foreach (WeightedRoom element9 in orLoadByName8.PatternSettings.flows[0].fallbackRoomTable.includedRooms.elements) { if ((Object)(object)element9.room != (Object)null && !((Object)element9.room).name.ToLower().EndsWith("(final)") && !((Object)element9.room).name.ToLower().EndsWith("exit_room_forge") && !((Object)element9.room).name.ToLower().EndsWith("testroom") && !((Object)element9.room).name.ToLower().EndsWith("endtimes_chamber") && !((Object)element9.room).name.ToLower().StartsWith("forge_joe_hot_fire_011") && !((Object)element9.room).name.ToLower().StartsWith("Forge_Joe_Hot_Fire_019")) { CustomRoomTable.includedRooms.elements.Add(element9); CustomRoomTable2.includedRooms.elements.Add(element9); CustomRoomTableSecretGlitchFloor.includedRooms.elements.Add(element9); } } foreach (WeightedRoom element10 in orLoadByName7.PatternSettings.flows[0].fallbackRoomTable.includedRooms.elements) { if ((Object)(object)element10.room != (Object)null) { CustomRoomTable.includedRooms.elements.Add(element10); CustomRoomTable2.includedRooms.elements.Add(element10); CustomRoomTableSecretGlitchFloor.includedRooms.elements.Add(element10); if (!string.IsNullOrEmpty(((Object)element10.room).name) && ((Object)element10.room).name.ToLower().StartsWith("hell_hath_no_joery_009")) { Hell_Hath_No_Joery_009 = element10.room; } } } if ((Object)(object)Hell_Hath_No_Joery_009 != (Object)null) { RoomBuilder.GenerateRoomLayout(Hell_Hath_No_Joery_009, "Hell_Hath_No_Joery_009_Layout", (PitBorderType)0, (CoreDamageTypes)0); } List list2 = new List(); foreach (WeightedRoom element11 in bosstable_01_gatlinggull.includedRooms.elements) { list2.Add(Object.Instantiate(element11.room)); } foreach (PrototypeDungeonRoom item in list2) { item.overrideRoomVisualType = -1; } gatlinggull_noTileVisualOverrides = list2.ToArray(); bosstable_01_gatlinggull_custom.includedRooms = new WeightedRoomCollection(); bosstable_01_gatlinggull_custom.includedRooms.elements = new List(); bosstable_01_gatlinggull_custom.includedRoomTables = new List(0); PrototypeDungeonRoom[] array = gatlinggull_noTileVisualOverrides; foreach (PrototypeDungeonRoom val6 in array) { if (((Object)val6).name.StartsWith("GatlingGullRoom04") | ((Object)val6).name.StartsWith("GatlingGullRoom05")) { bosstable_01_gatlinggull_custom.includedRooms.elements.Add(ExpandRoomPrefabs.GenerateWeightedRoom(val6, 0.5f)); } else { bosstable_01_gatlinggull_custom.includedRooms.elements.Add(ExpandRoomPrefabs.GenerateWeightedRoom(val6)); } } MegaBossRoomTable.includedRooms = new WeightedRoomCollection(); MegaBossRoomTable.includedRooms.elements = new List(); MegaBossRoomTable.includedRoomTables = new List(0); foreach (WeightedRoom element12 in bosstable_01_bulletbros.includedRooms.elements) { if ((Object)(object)element12.room != (Object)null) { MegaBossRoomTable.includedRooms.elements.Add(element12); } } foreach (WeightedRoom element13 in bosstable_01_bulletking.includedRooms.elements) { if ((Object)(object)element13.room != (Object)null) { MegaBossRoomTable.includedRooms.elements.Add(element13); } } foreach (WeightedRoom element14 in bosstable_01_gatlinggull_custom.includedRooms.elements) { if ((Object)(object)element14.room != (Object)null) { MegaBossRoomTable.includedRooms.elements.Add(element14); } } foreach (WeightedRoom element15 in bosstable_02_meduzi.includedRooms.elements) { if ((Object)(object)element15.room != (Object)null) { MegaBossRoomTable.includedRooms.elements.Add(element15); } } foreach (WeightedRoom element16 in bosstable_02a_highpriest.includedRooms.elements) { if ((Object)(object)element16.room != (Object)null) { MegaBossRoomTable.includedRooms.elements.Add(element16); } } foreach (WeightedRoom element17 in bosstable_03_powderskull.includedRooms.elements) { if ((Object)(object)element17.room != (Object)null) { MegaBossRoomTable.includedRooms.elements.Add(element17); } } foreach (WeightedRoom element18 in bosstable_03_tank.includedRooms.elements) { if ((Object)(object)element18.room != (Object)null) { MegaBossRoomTable.includedRooms.elements.Add(element18); } } foreach (WeightedRoom element19 in bosstable_04_demonwall.includedRooms.elements) { if ((Object)(object)element19.room != (Object)null) { MegaBossRoomTable.includedRooms.elements.Add(element19); } } foreach (WeightedRoom element20 in bosstable_04_statues.includedRooms.elements) { if ((Object)(object)element20.room != (Object)null) { MegaBossRoomTable.includedRooms.elements.Add(element20); } } winchesterroomtable.includedRooms.elements = BraveUtility.Shuffle(winchesterroomtable.includedRooms.elements); PrototypeDungeonRoom val7 = Object.Instantiate(gungeon_rewardroom_1); RoomBuilder.AddObjectToRoom(reward_room, new Vector2(3f, 1f), null, Teleporter_Gungeon_01.GetComponent()); reward_room.additionalObjectLayers.Add(val7.additionalObjectLayers[1]); int index = reward_room.additionalObjectLayers.Count - 1; reward_room.additionalObjectLayers[index].placedObjects[0].contentsBasePosition = new Vector2(4f, 7.5f); reward_room.additionalObjectLayers[index].placedObjectBasePositions[0] = new Vector2(4f, 7.5f); ((Object)tiny_entrance).name = "Tiny Elevator Entrance"; tiny_entrance.placedObjects = new List(); tiny_entrance.placedObjectPositions = new List(); tiny_entrance.exitData.exits = new List(); tiny_entrance.category = (RoomCategory)7; tiny_entrance.associatedMinimapIcon = elevator_entrance.associatedMinimapIcon; RoomBuilder.AddObjectToRoom(tiny_entrance, new Vector2(3f, 8f), ElevatorArrival); RoomBuilder.AddObjectToRoom(tiny_entrance, new Vector2(4f, 1f), null, Teleporter_Gungeon_01.GetComponent()); RoomBuilder.AddExitToRoom(tiny_entrance, new Vector2(0f, 6f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(tiny_entrance, new Vector2(6f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(tiny_entrance, new Vector2(13f, 6f), (Direction)2, (ExitType)0, (ExitGroup)0); ((Object)tiny_exit).name = "Tiny Exit"; tiny_exit.category = (RoomCategory)8; tiny_exit.placedObjects = new List(); tiny_exit.placedObjectPositions = new List(); tiny_exit.exitData.exits = new List(); RoomBuilder.AddObjectToRoom(tiny_exit, new Vector2(3f, 8f), ElevatorDeparture); RoomBuilder.AddObjectToRoom(tiny_exit, new Vector2(4f, 1f), null, Teleporter_Gungeon_01.GetComponent()); RoomBuilder.AddObjectToRoom(tiny_exit, new Vector2(9f, 6f), null, exit_room_basic.placedObjects[2].nonenemyBehaviour); RoomBuilder.AddExitToRoom(tiny_exit, new Vector2(0f, 6f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(tiny_exit, new Vector2(6f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(tiny_exit, new Vector2(13f, 6f), (Direction)2, (ExitType)0, (ExitGroup)0); ((Object)tutorial_minibossroom).name = "Tutorial Miniboss(Custom)"; tutorial_minibossroom.placedObjects = new List(); RoomBuilder.AddObjectToRoom(tutorial_minibossroom, new Vector2(4f, 9f), null, null, "01972dee89fc4404a5c408d50007dad5"); tutorial_minibossroom.additionalObjectLayers = new List { new PrototypeRoomObjectLayer { placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "fc809bd43a4d41738a62d7565456622c", contentsBasePosition = new Vector2(14f, 9f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }, placedObjectBasePositions = new List { new Vector2(14f, 9f) }, layerIsReinforcementLayer = true, shuffle = true, randomize = 2, suppressPlayerChecks = true, delayTime = 4f, reinforcementTriggerCondition = (RoomEventTriggerCondition)2, probability = 1f, numberTimesEncounteredRequired = 0 } }; tutorial_minibossroom.overriddenTilesets = (ValidTilesets)0; tutorial_minibossroom.usesProceduralDecoration = true; tutorial_minibossroom.associatedMinimapIcon = fusebombroom01.associatedMinimapIcon; tutorial_minibossroom.category = (RoomCategory)3; tutorial_minibossroom.subCategorySpecial = (RoomSpecialSubCategory)0; tutorial_minibossroom.subCategoryBoss = (RoomBossSubCategory)1; tutorial_minibossroom.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0) { condition = (RoomEventTriggerCondition)3, action = (RoomEventTriggerAction)0 }, new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) { condition = (RoomEventTriggerCondition)2, action = (RoomEventTriggerAction)1 } }; ((Object)bossrush_alternate_entrance).name = "ElevatorMaintenanceRoom"; bossrush_alternate_entrance.category = (RoomCategory)2; bossrush_alternate_entrance.associatedMinimapIcon = ElevatorMaintanenceRoomIcon; tutorial_fakeboss.placedObjectPositions = new List(); tutorial_fakeboss.placedObjects = new List(); RoomBuilder.AddObjectToRoom(tutorial_fakeboss, new Vector2(8f, 20f), null, null, "01972dee89fc4404a5c408d50007dad5"); tutorial_fakeboss.additionalObjectLayers = new List { new PrototypeRoomObjectLayer { placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "fc809bd43a4d41738a62d7565456622c", contentsBasePosition = new Vector2(18f, 22f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }, placedObjectBasePositions = new List { new Vector2(18f, 22f) }, layerIsReinforcementLayer = true, shuffle = true, randomize = 2, suppressPlayerChecks = true, delayTime = 4f, reinforcementTriggerCondition = (RoomEventTriggerCondition)2, probability = 1f, numberTimesEncounteredRequired = 0 } }; ((Object)big_entrance).name = "Large Elevator Entrance"; big_entrance.associatedMinimapIcon = tiny_entrance.associatedMinimapIcon; big_entrance.roomEvents.Clear(); big_entrance.additionalObjectLayers.Clear(); big_entrance.category = (RoomCategory)7; big_entrance.GUID = Guid.NewGuid().ToString(); big_entrance.placedObjects[0].nonenemyBehaviour = null; big_entrance.placedObjects[0] = new PrototypePlacedObjectData { placeableContents = ElevatorArrival, contentsBasePosition = new Vector2(22f, 21f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }; big_entrance.placedObjects[1] = new PrototypePlacedObjectData { nonenemyBehaviour = Teleporter_Gungeon_01.GetComponent(), contentsBasePosition = new Vector2(23f, 8f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }; big_entrance.placedObjectPositions[0] = big_entrance.placedObjects[0].contentsBasePosition; big_entrance.placedObjectPositions[1] = big_entrance.placedObjects[1].contentsBasePosition; RoomBuilder.GenerateRoomLayout(big_entrance, "Large_Elevator_Entrance_Layout", (PitBorderType)0, (CoreDamageTypes)0); MegaChallengeShrineTable.includedRooms = new WeightedRoomCollection(); MegaChallengeShrineTable.includedRooms.elements = new List(); MegaChallengeShrineTable.includedRoomTables = new List(0); foreach (WeightedRoom element21 in gungeon_challengeshrine_roomtable.includedRooms.elements) { MegaChallengeShrineTable.includedRooms.Add(element21); } foreach (WeightedRoom element22 in mines_challengeshrine_roomtable.includedRooms.elements) { MegaChallengeShrineTable.includedRooms.Add(element22); } foreach (WeightedRoom element23 in catacombs_challengeshrine_roomtable.includedRooms.elements) { MegaChallengeShrineTable.includedRooms.Add(element23); } foreach (WeightedRoom element24 in forge_challengeshrine_roomtable.includedRooms.elements) { MegaChallengeShrineTable.includedRooms.Add(element24); } MegaMiniBossRoomTable.includedRooms = new WeightedRoomCollection(); MegaMiniBossRoomTable.includedRooms.elements = new List(); MegaMiniBossRoomTable.includedRoomTables = new List(0); List list3 = new List(); foreach (WeightedRoom element25 in blocknerminiboss_table_01.includedRooms.elements) { if ((Object)(object)element25.room != (Object)null) { list3.Add(element25.room); } } foreach (WeightedRoom element26 in phantomagunim_table_01.includedRooms.elements) { if ((Object)(object)element26.room != (Object)null) { list3.Add(element26.room); } } minibossrooms = list3.ToArray(); array = minibossrooms; for (int i = 0; i < array.Length; i++) { array[i].associatedMinimapIcon = fusebombroom01.associatedMinimapIcon; } foreach (WeightedRoom element27 in blocknerminiboss_table_01.includedRooms.elements) { MegaMiniBossRoomTable.includedRooms.Add(ExpandRoomPrefabs.GenerateWeightedRoom(Object.Instantiate(element27.room), 1f, LimitedCopies: false)); } foreach (WeightedRoom element28 in phantomagunim_table_01.includedRooms.elements) { MegaMiniBossRoomTable.includedRooms.Add(ExpandRoomPrefabs.GenerateWeightedRoom(Object.Instantiate(element28.room), 1f, LimitedCopies: false)); } foreach (WeightedRoom element29 in MegaMiniBossRoomTable.includedRooms.elements) { element29.room.category = (RoomCategory)2; } if (Object.op_Implicit((Object)(object)MetalCubeGuy)) { MetalCubeGuy.AddComponent(); MetalCubeGuy.GetComponent().IsHarmlessEnemy = true; ((OnDeathBehavior)MetalCubeGuy.GetComponent()).deathType = (DeathType)1; AttackBehaviorBase obj4 = MetalCubeGuy.GetComponent().AttackBehaviors[0]; ((ZeldaChargeBehavior)((obj4 is ZeldaChargeBehavior) ? obj4 : null)).primeAnim = null; MetalCubeGuy.gameObject.AddComponent(); MetalCubeGuy.GetComponent().PostAwakenDelay = 0f; MetalCubeGuy.GetComponent().InstantFirstTick = true; } if (Object.op_Implicit((Object)(object)SkusketHead)) { SkusketHead.GetComponent().DiesOnCollison = true; } CandleGuy = ((Component)EnemyDatabase.GetOrLoadByGuid("eeb33c3a5a8e4eaaaaf39a743e8767bc")).gameObject; if (Object.op_Implicit((Object)(object)CandleGuy)) { CandleGuy.AddComponent(); } WallMimic = ((Component)EnemyDatabase.GetOrLoadByGuid("479556d05c7c44f3b6abb3b2067fc778")).gameObject; if (Object.op_Implicit((Object)(object)WallMimic)) { Object.Destroy((Object)(object)WallMimic.GetComponent()); WallMimic.AddComponent(); } List enemyReplacementTiers = GameManager.Instance.EnemyReplacementTiers; if (enemyReplacementTiers != null && enemyReplacementTiers.Count > 0) { foreach (AGDEnemyReplacementTier item2 in enemyReplacementTiers) { if (item2.RoomCantContain == null) { item2.RoomCantContain = new List(); } item2.RoomCantContain.Add(MetalCubeGuy.GetComponent().EnemyGuid); } } List list4 = new List(); foreach (WeightedRoom element30 in CustomRoomTableSecretGlitchFloor.includedRooms.elements) { if (!((Object)(object)element30.room != (Object)null) || element30.room.FullCellData == null) { continue; } PrototypeDungeonRoomCellData[] fullCellData = element30.room.FullCellData; for (int i = 0; i < fullCellData.Length; i++) { if ((int)fullCellData[i].state == 4) { list4.Add(element30); } } } if (list4.Count > 0) { foreach (WeightedRoom item3 in list4) { CustomRoomTableSecretGlitchFloor.includedRooms.elements.Remove(item3); } list4.Clear(); } List list5 = new List(); foreach (WeightedRoom element31 in winchesterroomtable.includedRooms.elements) { list5.Add(element31.room); } if (list5.Count > 0) { foreach (PrototypeDungeonRoom item4 in list5) { item4.associatedMinimapIcon = ExpandObjectDatabase.WinchesterMinimapIcon; } } RatTrapPlacable = ScriptableObject.CreateInstance(); ((Object)RatTrapPlacable).name = "Rat Trap Placable"; RatTrapPlacable.width = 1; RatTrapPlacable.height = 1; RatTrapPlacable.isPassable = true; RatTrapPlacable.roomSequential = false; RatTrapPlacable.respectsEncounterableDifferentiator = false; RatTrapPlacable.UsePrefabTransformOffset = false; RatTrapPlacable.MarkSpawnedItemsAsRatIgnored = false; RatTrapPlacable.DebugThisPlaceable = false; RatTrapPlacable.IsAnnexTable = false; RatTrapPlacable.variantTiers = new List { new DungeonPlaceableVariant { percentChance = 1f, unitOffset = Vector2.zero, nonDatabasePlaceable = MouseTrap1, enemyPlaceableGuid = string.Empty, pickupObjectPlaceableId = -1, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] }, new DungeonPlaceableVariant { percentChance = 1f, unitOffset = Vector2.zero, nonDatabasePlaceable = MouseTrap2, enemyPlaceableGuid = string.Empty, pickupObjectPlaceableId = -1, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] }, new DungeonPlaceableVariant { percentChance = 1f, unitOffset = Vector2.zero, nonDatabasePlaceable = MouseTrap3, enemyPlaceableGuid = string.Empty, pickupObjectPlaceableId = -1, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] } }; DoppelgunnerMirror = expandSharedAssets1.LoadAsset("DoppelgunnerMirror"); SpriteSerializer.AddSpriteToObject(DoppelgunnerMirror, ExpandEnemyDatabase.GungeoneerMimicCollection, "PlayerMimicMirror_Base", (PerpendicularState)0); List spriteNameList7 = new List { "PlayerMimicMirror_MimicFadeIn_01", "PlayerMimicMirror_MimicFadeIn_02", "PlayerMimicMirror_MimicFadeIn_03", "PlayerMimicMirror_MimicFadeIn_04", "PlayerMimicMirror_MimicFadeIn_05", "PlayerMimicMirror_MimicFadeIn_06", "PlayerMimicMirror_MimicFadeIn_07", "PlayerMimicMirror_MimicFadeIn_08", "PlayerMimicMirror_MimicFadeIn_09", "PlayerMimicMirror_MimicFadeIn_10" }; List spriteNameList8 = new List { "PlayerMimicMirror_MimicCrack_01", "PlayerMimicMirror_MimicCrack_02", "PlayerMimicMirror_MimicCrack_03", "PlayerMimicMirror_MimicCrack_04", "PlayerMimicMirror_MimicCrack_05" }; List spriteNameList9 = new List { "PlayerMimicMirror_ShatterDebris_01", "PlayerMimicMirror_ShatterDebris_02", "PlayerMimicMirror_ShatterDebris_03", "PlayerMimicMirror_ShatterDebris_04", "PlayerMimicMirror_ShatterDebris_05", "PlayerMimicMirror_ShatterDebris_06", "PlayerMimicMirror_ShatterDebris_07", "PlayerMimicMirror_ShatterDebris_08", "PlayerMimicMirror_ShatterDebris_09", "PlayerMimicMirror_ShatterDebris_10" }; ExpandUtility.GenerateSpriteAnimator(DoppelgunnerMirror, null, 0, 0f, AnimateDuringBossIntros: true, AlwaysIgnoreTimeScale: true, ignoreTimeScale: true); ExpandUtility.AddAnimation(DoppelgunnerMirror.GetComponent(), ExpandEnemyDatabase.GungeoneerMimicCollection.GetComponent(), spriteNameList7, "PlayerMimicFadeIn", (WrapMode)2, 8); ExpandUtility.AddAnimation(DoppelgunnerMirror.GetComponent(), ExpandEnemyDatabase.GungeoneerMimicCollection.GetComponent(), spriteNameList8, "MirrorGlassCrack", (WrapMode)2, 6); DoppelgunnerMirrorFX = expandSharedAssets1.LoadAsset("DoppelgunnerMirrorFX"); ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(DoppelgunnerMirrorFX, ExpandEnemyDatabase.GungeoneerMimicCollection, "PlayerMimicMirror_ShatterDebris_01", (PerpendicularState)0)).HeightOffGround = 3.5f; ExpandUtility.GenerateSpriteAnimator(DoppelgunnerMirrorFX, null, 0, 0f, AnimateDuringBossIntros: true, AlwaysIgnoreTimeScale: true, ignoreTimeScale: true); ExpandUtility.AddAnimation(DoppelgunnerMirrorFX.GetComponent(), ExpandEnemyDatabase.GungeoneerMimicCollection.GetComponent(), spriteNameList9, "PlayerMimicShatter", (WrapMode)2, 12); RoomCorruptionAmbience = expandSharedAssets1.LoadAsset("RoomCorruptionAmbience_Placable"); RoomCorruptionAmbience.AddComponent(); EXAlarmMushroom = expandSharedAssets1.LoadAsset("EX Alarm Mushroom"); ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(EXAlarmMushroom, EXTrapCollection, "alarm_mushroom2_idle_001", (PerpendicularState)0)).HeightOffGround = -1f; List spriteNameList10 = new List { "alarm_mushroom2_idle_001", "alarm_mushroom2_idle_002", "alarm_mushroom2_idle_003", "alarm_mushroom2_idle_004", "alarm_mushroom2_idle_005" }; List spriteNameList11 = new List { "alarm_mushroom2_alarm_001", "alarm_mushroom2_alarm_002", "alarm_mushroom2_alarm_003", "alarm_mushroom2_alarm_004", "alarm_mushroom2_alarm_005", "alarm_mushroom2_alarm_006" }; List spriteNameList12 = new List { "alarm_mushroom2_break_001", "alarm_mushroom2_break_002", "alarm_mushroom2_break_003", "alarm_mushroom2_break_004" }; ExpandUtility.GenerateSpriteAnimator(EXAlarmMushroom, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true, IsFrameBlendedAnimation: false, 0f, 8f); tk2dSpriteAnimator component4 = EXAlarmMushroom.GetComponent(); ExpandUtility.AddAnimation(component4, EXTrapCollection.GetComponent(), spriteNameList10, "alarm_mushroom_idle", (WrapMode)7, 8, 0, 1f, 2f); ExpandUtility.AddAnimation(component4, EXTrapCollection.GetComponent(), spriteNameList11, "alarm_mushroom_alarm", (WrapMode)0, 8); ExpandUtility.AddAnimation(component4, EXTrapCollection.GetComponent(), spriteNameList12, "alarm_mushroom_break", (WrapMode)2, 8); ExpandUtility.GenerateOrAddToRigidBody(EXAlarmMushroom, (CollisionLayer)16, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: true, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(7, 10), (IntVector2?)new IntVector2(2, 7)); ExpandAlarmMushroomPlacable expandAlarmMushroomPlacable = EXAlarmMushroom.AddComponent(); expandAlarmMushroomPlacable.TriggerVFX = braveResources.LoadAsset("EmergencyCrate").GetComponent().landingTargetSprite; tk2dSprite component5 = ((Component)ExpandObjectDatabase.Plunger.transform.Find("TNT_Plunger_Shadow")).gameObject.GetComponent(); GameObject gameObject19 = ((Component)EXAlarmMushroom.transform.Find("Shadow")).gameObject; tk2dSprite val8 = gameObject19.AddComponent(); tk2dSpriteCollectionData val9 = gameObject19.AddComponent(); ExpandUtility.DuplicateComponent(val9, ((tk2dBaseSprite)component5).Collection); ((BraveBehaviour)val8).renderer.material = new Material(sharedAssets.LoadAsset("Chest_Collection").GetComponent().materials[2]); ((BraveBehaviour)val8).renderer.material.mainTexture = ((tk2dBaseSprite)component5).Collection.spriteDefinitions[148].material.mainTexture; ((BraveBehaviour)val8).renderer.materials = (Material[])(object)new Material[1] { ((BraveBehaviour)val8).renderer.material }; val9.spriteDefinitions[125].material = ((BraveBehaviour)val8).renderer.material; ((tk2dBaseSprite)val8).SetSprite(val9, "alarm_mushroom2_shadow_001"); ((tk2dBaseSprite)val8).CachedPerpState = (PerpendicularState)2; ((tk2dBaseSprite)val8).HeightOffGround = -1.7f; component5 = null; expandAlarmMushroomPlacable.EnemySpawnPlacableOverride = ScriptableObject.CreateInstance(); expandAlarmMushroomPlacable.EnemySpawnPlacableOverride.width = 1; expandAlarmMushroomPlacable.EnemySpawnPlacableOverride.height = 1; expandAlarmMushroomPlacable.EnemySpawnPlacableOverride.isPassable = true; expandAlarmMushroomPlacable.EnemySpawnPlacableOverride.roomSequential = false; expandAlarmMushroomPlacable.EnemySpawnPlacableOverride.respectsEncounterableDifferentiator = false; expandAlarmMushroomPlacable.EnemySpawnPlacableOverride.UsePrefabTransformOffset = false; expandAlarmMushroomPlacable.EnemySpawnPlacableOverride.MarkSpawnedItemsAsRatIgnored = false; expandAlarmMushroomPlacable.EnemySpawnPlacableOverride.DebugThisPlaceable = false; expandAlarmMushroomPlacable.EnemySpawnPlacableOverride.IsAnnexTable = false; expandAlarmMushroomPlacable.EnemySpawnPlacableOverride.variantTiers = new List { new DungeonPlaceableVariant { percentChance = 50f, percentChanceMultiplier = 1f, unitOffset = Vector2.zero, nonDatabasePlaceable = null, enemyPlaceableGuid = "01972dee89fc4404a5c408d50007dad5", pickupObjectPlaceableId = -1, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] }, new DungeonPlaceableVariant { percentChance = 25f, percentChanceMultiplier = 1f, unitOffset = Vector2.zero, nonDatabasePlaceable = null, enemyPlaceableGuid = "f905765488874846b7ff257ff81d6d0c", pickupObjectPlaceableId = -1, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] }, new DungeonPlaceableVariant { percentChance = 25f, percentChanceMultiplier = 1f, unitOffset = Vector2.zero, nonDatabasePlaceable = null, enemyPlaceableGuid = "70216cae6c1346309d86d4a0b4603045", pickupObjectPlaceableId = -1, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] }, new DungeonPlaceableVariant { percentChance = 25f, percentChanceMultiplier = 1f, unitOffset = Vector2.zero, nonDatabasePlaceable = null, enemyPlaceableGuid = "db35531e66ce41cbb81d507a34366dfe", pickupObjectPlaceableId = -1, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] }, new DungeonPlaceableVariant { percentChance = 50f, percentChanceMultiplier = 1f, unitOffset = Vector2.zero, nonDatabasePlaceable = null, enemyPlaceableGuid = "4d37ce3d666b4ddda8039929225b7ede", pickupObjectPlaceableId = -1, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] }, new DungeonPlaceableVariant { percentChance = 60f, percentChanceMultiplier = 1f, unitOffset = Vector2.zero, nonDatabasePlaceable = null, enemyPlaceableGuid = "3cadf10c489b461f9fb8814abc1a09c1", pickupObjectPlaceableId = -1, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] }, new DungeonPlaceableVariant { percentChance = 30f, percentChanceMultiplier = 1f, unitOffset = Vector2.zero, nonDatabasePlaceable = null, enemyPlaceableGuid = "df7fb62405dc4697b7721862c7b6b3cd", pickupObjectPlaceableId = -1, forceBlackPhantom = false, addDebrisObject = false, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], materialRequirements = (DungeonPlaceableRoomMaterialRequirement[])(object)new DungeonPlaceableRoomMaterialRequirement[0] } }; EXSawBladeTrap_4x4Zone = expandSharedAssets1.LoadAsset("EX SawBlade PlacableObject"); EXSawBladeTrap_4x4Zone.AddComponent(); ExpandBootlegRoomPlaceable.BuildPrefab(expandSharedAssets1); EX_GlitchPortal = expandSharedAssets1.LoadAsset("EX_GlitchPortal"); GameObject val10 = BraveResources.Load("Global Prefabs/VFX_ParadoxPortal", ".prefab"); if (Object.op_Implicit((Object)(object)val10)) { MeshRenderer component6 = EX_GlitchPortal.GetComponent(); object obj5; if (val10 == null) { obj5 = null; } else { MeshRenderer component7 = val10.GetComponent(); obj5 = ((component7 != null) ? ((Renderer)component7).material : null); } if (Object.op_Implicit((Object)obj5)) { ((Renderer)component6).material = new Material(((Renderer)val10.GetComponent()).material); ((Renderer)component6).material.SetColor("_EmissionColor", new Color(1f, 1f, 1f, 1f)); ((Renderer)component6).material.SetTexture("_PortalTex", (Texture)(object)expandSharedAssets1.LoadAsset("EXPortal_Gungeon")); } } ForceToSortingLayer obj6 = val10.AddComponent(); obj6.sortingLayer = (GungeonSortingLayer)1; obj6.targetSortingOrder = -1; EX_GlitchPortal.AddComponent(); val10 = null; RickRollChestObject = expandSharedAssets1.LoadAsset("Expand_RickRollChest"); if (Object.op_Implicit((Object)(object)((Component)ExpandObjectDatabase.ChestRed.transform.Find("Shadow")).gameObject)) { ExpandUtility.DuplicateSprite(((Component)RickRollChestObject.transform.Find("Expand_RickRollChestShadow")).gameObject.AddComponent(), ((Component)ExpandObjectDatabase.ChestRed.transform.Find("Shadow")).gameObject.GetComponent()); } ExpandUtility.DuplicateSprite(RickRollChestObject.AddComponent(), ExpandObjectDatabase.ChestRed.GetComponent()); tk2dSpriteAnimator obj7 = RickRollChestObject.AddComponent(); obj7.Library = ExpandObjectDatabase.ChestRed.GetComponent().Library; obj7.DefaultClipId = 8; obj7.AdditionalCameraVisibilityRadius = 0f; obj7.AlwaysIgnoreTimeScale = false; obj7.ForceSetEveryFrame = false; obj7.playAutomatically = false; obj7.IsFrameBlendedAnimation = false; obj7.clipTime = 0f; obj7.deferNextStartClip = false; ExpandUtility.DuplicateRigidBody(RickRollChestObject.AddComponent(), ExpandObjectDatabase.ChestRed.GetComponent()); MajorBreakable obj8 = RickRollChestObject.AddComponent(); obj8.HitPoints = 40f; obj8.DamageReduction = 0f; obj8.MinHits = 0; obj8.EnemyDamageOverride = -1; obj8.ImmuneToBeastMode = false; obj8.ScaleWithEnemyHealth = false; obj8.OnlyExplosions = false; obj8.IgnoreExplosions = false; obj8.GameActorMotionBreaks = false; obj8.PlayerRollingBreaks = false; obj8.spawnShards = true; obj8.distributeShards = false; obj8.shardClusters = (ShardCluster[])(object)new ShardCluster[0]; obj8.minShardPercentSpeed = 0.05f; obj8.maxShardPercentSpeed = 0.3f; obj8.shardBreakStyle = (BreakStyle)0; obj8.usesTemporaryZeroHitPointsState = true; obj8.spriteNameToUseAtZeroHP = "chest_redgold_break_001"; obj8.destroyedOnBreak = false; obj8.childrenToDestroy = new List(0); obj8.playsAnimationOnNotBroken = false; obj8.notBreakAnimation = string.Empty; obj8.handlesOwnBreakAnimation = false; obj8.breakAnimation = string.Empty; obj8.handlesOwnPrebreakFrames = false; obj8.prebreakFrames = (BreakFrame[])(object)new BreakFrame[0]; obj8.damageVfx = new VFXPool { type = (VFXPoolType)0, effects = (VFXComplex[])(object)new VFXComplex[0] }; obj8.damageVfxMinTimeBetween = 0.2f; obj8.breakVfx = new VFXPool { type = (VFXPoolType)0, effects = (VFXComplex[])(object)new VFXComplex[0] }; obj8.breakVfxParent = null; obj8.delayDamageVfx = false; obj8.SpawnItemOnBreak = true; obj8.ItemIdToSpawnOnBreak = GlobalItemIds.Junk; obj8.HandlePathBlocking = false; List spriteNameList13 = new List { "RickRoll_RiseUp_01", "RickRoll_RiseUp_02", "RickRoll_RiseUp_03", "RickRoll_RiseUp_04", "RickRoll_RiseUp_05", "RickRoll_RiseUp_06", "RickRoll_RiseUp_07", "RickRoll_RiseUp_08", "RickRoll_RiseUp_09", "RickRoll_RiseUp_10", "RickRoll_RiseUp_11", "RickRoll_RiseUp_12" }; List spriteNameList14 = new List { "RickRoll_01", "RickRoll_02", "RickRoll_03", "RickRoll_04", "RickRoll_05", "RickRoll_06", "RickRoll_07", "RickRoll_08", "RickRoll_09", "RickRoll_10", "RickRoll_11", "RickRoll_12", "RickRoll_13", "RickRoll_14", "RickRoll_15", "RickRoll_16", "RickRoll_17", "RickRoll_18", "RickRoll_19", "RickRoll_20", "RickRoll_21", "RickRoll_22", "RickRoll_23", "RickRoll_24", "RickRoll_25", "RickRoll_26", "RickRoll_27", "RickRoll_28" }; new List { "music_switch_idle_off_001", "music_switch_activate_001", "music_switch_activate_002", "music_switch_activate_002_reverse", "music_switch_activate_003", "music_switch_activate_004", "music_switch_activate_005" }; List spriteNameList15 = new List { "music_switch_activate_001", "music_switch_activate_002", "music_switch_activate_003", "music_switch_activate_004", "music_switch_activate_005", "music_switch_idle_off_001" }; List spriteNameList16 = new List { "music_switch_activate_005", "music_switch_activate_004", "music_switch_activate_003", "music_switch_activate_002_reverse", "music_switch_activate_001", "music_switch_idle_on_001" }; RickRollAnimationObject = expandSharedAssets1.LoadAsset("Expand_RickRollAnimation"); SpriteSerializer.AddSpriteToObject(RickRollAnimationObject, EXTrapCollection, "RickRoll_RiseUp_01", (PerpendicularState)0); ExpandUtility.GenerateSpriteAnimator(RickRollAnimationObject); ExpandUtility.AddAnimation(RickRollAnimationObject.GetComponent(), EXTrapCollection.GetComponent(), spriteNameList13, "RickRollAnimation_Rise", (WrapMode)2, 12); ExpandUtility.AddAnimation(RickRollAnimationObject.GetComponent(), EXTrapCollection.GetComponent(), spriteNameList14, "RickRollAnimation", (WrapMode)0, 12); ExpandFakeChest expandFakeChest = RickRollChestObject.AddComponent(); expandFakeChest.RickRollAnimationObject = RickRollAnimationObject; expandFakeChest.MinimapIconPrefab = ExpandObjectDatabase.ChestRed.GetComponent().MinimapIconPrefab; expandFakeChest.breakAnimName = ExpandObjectDatabase.ChestRed.GetComponent().breakAnimName; expandFakeChest.openAnimName = ExpandObjectDatabase.ChestRed.GetComponent().openAnimName; RickRollMusicSwitchObject = expandSharedAssets1.LoadAsset("ExpandRickRoll_MusicSwitch"); RickRollMusicSwitchObject.layer = LayerMask.NameToLayer("FG_Critical"); SpriteSerializer.AddSpriteToObject(RickRollMusicSwitchObject, EXTrapCollection, "music_switch_idle_on_001", (PerpendicularState)0); ExpandUtility.GenerateSpriteAnimator(RickRollMusicSwitchObject); ExpandUtility.AddAnimation(RickRollMusicSwitchObject.GetComponent(), EXTrapCollection.GetComponent(), spriteNameList16, "RickRollSwitch_TurnOn", (WrapMode)2, 12); ExpandUtility.AddAnimation(RickRollMusicSwitchObject.GetComponent(), EXTrapCollection.GetComponent(), spriteNameList15, "RickRollSwitch_TurnOff", (WrapMode)2, 12); ETGModConsole.ModdedShrines.Add("EX:RickRollChest", RickRollChestObject); RickRollMusicSwitchObject.AddComponent().chestType = ExpandFakeChest.ChestType.MusicSwitch; List spriteNameList17 = new List { "enemy_chest_open_001", "enemy_chest_open_002", "enemy_chest_open_003", "enemy_chest_open_004", "enemy_chest_open_005", "enemy_chest_open_006", "enemy_chest_open_007", "enemy_chest_open_008", "enemy_chest_open_009", "enemy_chest_open_010", "enemy_chest_open_011", "enemy_chest_open_012", "enemy_chest_open_013", "enemy_chest_open_014" }; List spriteNameList18 = new List { "enemy_chest_appear_001", "enemy_chest_appear_002", "enemy_chest_appear_003", "enemy_chest_appear_004", "enemy_chest_appear_005" }; List spriteNameList19 = new List { "enemy_chest_break001", "enemy_chest_break002", "enemy_chest_break003", "enemy_chest_break004" }; List spriteNameList20 = new List { "enemy_chest_knock_001", "enemy_chest_knock_002", "enemy_chest_knock_003", "enemy_chest_knock_004", "enemy_chest_knock_005" }; GameObject chestBrownTwoItems = ExpandObjectDatabase.ChestBrownTwoItems; SurpriseChestObject = expandSharedAssets1.LoadAsset("Expand_SurpriseChest"); if (Object.op_Implicit((Object)(object)((Component)chestBrownTwoItems.transform.Find("Shadow")).gameObject)) { ExpandUtility.DuplicateSprite(((Component)SurpriseChestObject.transform.Find("Shadow")).gameObject.AddComponent(), ((Component)chestBrownTwoItems.transform.Find("Shadow")).gameObject.GetComponent()); } tk2dSprite attachParent = SpriteSerializer.AddSpriteToObject(SurpriseChestObject, EXChestCollection, "enemy_chest_idle_001", (PerpendicularState)1, -1f); ExpandUtility.GenerateSpriteAnimator(SurpriseChestObject); tk2dSpriteAnimator component8 = SurpriseChestObject.GetComponent(); ExpandUtility.AddAnimation(component8, EXChestCollection, spriteNameList18, "enemy_chest_appear", (WrapMode)2, 11); ExpandUtility.AddAnimation(component8, EXChestCollection, spriteNameList17, "enemy_chest_open", (WrapMode)2, 14); ExpandUtility.AddAnimation(component8, EXChestCollection, spriteNameList19, "enemy_chest_break", (WrapMode)2, 10); ExpandUtility.AddAnimation(component8, EXChestCollection, spriteNameList20, "enemy_chest_knock", (WrapMode)7, 12, 0, 1f, 2f); component8.Library.GetClipByName("enemy_chest_appear").frames[0].eventAudio = "Play_OBJ_smallchest_spawn_01"; component8.Library.GetClipByName("enemy_chest_appear").frames[0].triggerEvent = true; component8.Library.GetClipByName("enemy_chest_break").frames[0].eventAudio = "Play_OBJ_barrel_break_01"; component8.Library.GetClipByName("enemy_chest_break").frames[0].triggerEvent = true; component8.Library.GetClipByName("enemy_chest_knock").frames[1].eventAudio = "Play_OBJ_chest_shake_01"; component8.Library.GetClipByName("enemy_chest_knock").frames[1].eventInfo = "enemychestvfx"; component8.Library.GetClipByName("enemy_chest_knock").frames[1].triggerEvent = true; SurpriseChestObject.AddComponent(); ExpandUtility.GenerateOrAddToRigidBody(SurpriseChestObject, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: true, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(25, 14), (IntVector2?)new IntVector2(3, 0)); MajorBreakable obj9 = SurpriseChestObject.AddComponent(); obj9.HitPoints = 40f; obj9.DamageReduction = 0f; obj9.MinHits = 0; obj9.EnemyDamageOverride = -1; obj9.ImmuneToBeastMode = false; obj9.ScaleWithEnemyHealth = false; obj9.OnlyExplosions = false; obj9.IgnoreExplosions = false; obj9.GameActorMotionBreaks = false; obj9.PlayerRollingBreaks = false; obj9.spawnShards = true; obj9.distributeShards = false; obj9.shardClusters = (ShardCluster[])(object)new ShardCluster[0]; obj9.minShardPercentSpeed = 0.05f; obj9.maxShardPercentSpeed = 0.3f; obj9.shardBreakStyle = (BreakStyle)0; obj9.usesTemporaryZeroHitPointsState = true; obj9.overrideSpriteNameToUseAtZeroHP = "enemy_chest_break001"; obj9.destroyedOnBreak = false; obj9.childrenToDestroy = new List(0); obj9.playsAnimationOnNotBroken = false; obj9.notBreakAnimation = string.Empty; obj9.handlesOwnBreakAnimation = false; obj9.breakAnimation = string.Empty; obj9.handlesOwnPrebreakFrames = false; obj9.prebreakFrames = (BreakFrame[])(object)new BreakFrame[0]; obj9.damageVfx = new VFXPool { type = (VFXPoolType)0, effects = (VFXComplex[])(object)new VFXComplex[0] }; obj9.damageVfxMinTimeBetween = 0.2f; obj9.breakVfx = new VFXPool { type = (VFXPoolType)0, effects = (VFXComplex[])(object)new VFXComplex[0] }; obj9.breakVfxParent = null; obj9.delayDamageVfx = false; obj9.SpawnItemOnBreak = true; obj9.ItemIdToSpawnOnBreak = GlobalItemIds.Junk; obj9.HandlePathBlocking = false; GameObject gameObject20 = ((Component)SurpriseChestObject.transform.Find("PoofCloud")).gameObject; tk2dSprite obj10 = gameObject20.AddComponent(); ((tk2dBaseSprite)obj10).SetSprite(((tk2dBaseSprite)ExpandObjectDatabase.ChestBrownTwoItems.GetComponent()).Collection, "cloud_woodchest_appear_001"); ((tk2dBaseSprite)obj10).attachParent = (tk2dBaseSprite)(object)attachParent; ((tk2dBaseSprite)obj10).HeightOffGround = 1f; tk2dSpriteAnimator obj11 = ExpandUtility.DuplicateSpriteAnimator(gameObject20, ExpandObjectDatabase.ChestBrownTwoItems.GetComponent()); obj11.DefaultClipId = 15; obj11.playAutomatically = true; SpriteAnimatorKiller obj12 = gameObject20.AddComponent(); obj12.onlyDisable = true; obj12.deparentOnStart = false; obj12.childObjectToDisable = new List(0); obj12.hasChildAnimators = false; obj12.deparentAllChildren = false; obj12.disableRendererOnDelay = false; obj12.delayDestructionTime = 0f; obj12.fadeTime = 0f; TimedObjectKiller obj13 = gameObject20.AddComponent(); obj13.lifeTime = 1f; obj13.m_poolType = (PoolType)0; GameObject gameObject21 = ((Component)SurpriseChestObject.transform.Find("GroundHit")).gameObject; tk2dSprite obj14 = gameObject21.AddComponent(); ((tk2dBaseSprite)obj14).SetSprite(((tk2dBaseSprite)ExpandObjectDatabase.ChestBrownTwoItems.GetComponent()).Collection, "low_chest_dustland_001"); ((tk2dBaseSprite)obj14).attachParent = (tk2dBaseSprite)(object)attachParent; ((tk2dBaseSprite)obj14).HeightOffGround = 1f; tk2dSpriteAnimator obj15 = ExpandUtility.DuplicateSpriteAnimator(gameObject21, ExpandObjectDatabase.ChestBrownTwoItems.GetComponent()); obj15.DefaultClipId = 20; obj15.playAutomatically = true; SpriteAnimatorKiller obj16 = gameObject21.AddComponent(); obj16.onlyDisable = false; obj16.deparentOnStart = false; obj16.childObjectToDisable = new List(0); obj16.hasChildAnimators = false; obj16.deparentAllChildren = false; obj16.disableRendererOnDelay = false; obj16.delayDestructionTime = 0f; obj16.fadeTime = 0f; SimpleLightIntensityCurve obj17 = ((Component)gameObject20.transform.Find("Point Light")).gameObject.AddComponent(); obj17.Duration = 1f; obj17.MinIntensity = 0f; obj17.MaxIntensity = 1.1f; AnimationCurve val11 = new AnimationCurve(); val11.preWrapMode = (WrapMode)0; val11.postWrapMode = (WrapMode)0; AnimationCurve obj18 = val11; Keyframe[] array2 = new Keyframe[3]; Keyframe val12 = default(Keyframe); ((Keyframe)(ref val12)).time = 0f; ((Keyframe)(ref val12)).value = 0f; ((Keyframe)(ref val12)).inTangent = 0f; ((Keyframe)(ref val12)).outTangent = 0f; array2[0] = val12; val12 = default(Keyframe); ((Keyframe)(ref val12)).time = 0.119112f; ((Keyframe)(ref val12)).value = 1f; ((Keyframe)(ref val12)).inTangent = 15.147778f; ((Keyframe)(ref val12)).outTangent = -0.6802f; array2[1] = val12; val12 = default(Keyframe); ((Keyframe)(ref val12)).time = 1f; ((Keyframe)(ref val12)).value = 0f; ((Keyframe)(ref val12)).inTangent = 0f; ((Keyframe)(ref val12)).outTangent = 0f; array2[2] = val12; obj18.keys = (Keyframe[])(object)array2; obj17.Curve = val11; ExpandFakeChest expandFakeChest2 = SurpriseChestObject.AddComponent(); expandFakeChest2.chestType = ExpandFakeChest.ChestType.SurpriseChest; expandFakeChest2.MinimapIconPrefab = chestBrownTwoItems.GetComponent().MinimapIconPrefab; expandFakeChest2.breakAnimName = "enemy_chest_break"; expandFakeChest2.openAnimName = "enemy_chest_open"; expandFakeChest2.VFX_GroundHit = gameObject21; expandFakeChest2.VFX_PreSpawn = gameObject20; ETGModConsole.ModdedShrines.Add("EX:SurpriseChest", SurpriseChestObject); FakePastChest = expandSharedAssets1.LoadAsset("Expand_FakePastChest"); ExpandUtility.DuplicateSprite(FakePastChest.AddComponent(), ExpandObjectDatabase.EndTimesChest.GetComponent()); ExpandUtility.DuplicateSprite(((Component)FakePastChest.transform.Find("G_Lid")).gameObject.AddComponent(), ((Component)ExpandObjectDatabase.EndTimesChest.transform.Find("G_Lid")).gameObject.GetComponent()); ExpandUtility.DuplicateSprite(((Component)FakePastChest.transform.Find("G_Shadow")).gameObject.AddComponent(), ((Component)ExpandObjectDatabase.EndTimesChest.transform.Find("G_Shadow")).gameObject.GetComponent()); ExpandUtility.DuplicateSprite(((Component)FakePastChest.transform.Find("G_Poof")).gameObject.AddComponent(), ((Component)ExpandObjectDatabase.EndTimesChest.transform.Find("G_Poof")).gameObject.GetComponent()); ExpandUtility.DuplicateSprite(((Component)FakePastChest.transform.Find("G_Light")).gameObject.AddComponent(), ((Component)ExpandObjectDatabase.EndTimesChest.transform.Find("G_Light")).gameObject.GetComponent()); ((BraveBehaviour)((Component)FakePastChest.transform.Find("G_Light")).gameObject.GetComponent()).renderer.enabled = false; ((tk2dBaseSprite)((Component)FakePastChest.transform.Find("G_Shadow")).gameObject.GetComponent()).usesOverrideMaterial = true; ((BraveBehaviour)((Component)FakePastChest.transform.Find("G_Shadow")).gameObject.GetComponent()).renderer.material.shader = ((BraveBehaviour)((Component)((Component)GameManager.Instance.RewardManager.A_Chest).gameObject.transform.Find("Shadow")).gameObject.GetComponent()).renderer.material.shader; ExpandUtility.DuplicateSpriteAnimator(FakePastChest.AddComponent(), ExpandObjectDatabase.EndTimesChest.GetComponent()); ExpandUtility.DuplicateSpriteAnimator(((Component)FakePastChest.transform.Find("G_Lid")).gameObject.AddComponent(), ((Component)ExpandObjectDatabase.EndTimesChest.transform.Find("G_Lid")).gameObject.GetComponent()); ExpandUtility.DuplicateSpriteAnimator(((Component)FakePastChest.transform.Find("G_Shadow")).gameObject.AddComponent(), ((Component)ExpandObjectDatabase.EndTimesChest.transform.Find("G_Shadow")).gameObject.GetComponent()); ExpandUtility.DuplicateSpriteAnimator(((Component)FakePastChest.transform.Find("G_Poof")).gameObject.AddComponent(), ((Component)ExpandObjectDatabase.EndTimesChest.transform.Find("G_Poof")).gameObject.GetComponent()); ExpandUtility.DuplicateSpriteAnimator(((Component)FakePastChest.transform.Find("G_Light")).gameObject.AddComponent(), ((Component)ExpandObjectDatabase.EndTimesChest.transform.Find("G_Light")).gameObject.GetComponent()); ExpandUtility.DuplicateRigidBody(FakePastChest.AddComponent(), ExpandObjectDatabase.EndTimesChest.GetComponent()); FakePastChest.AddComponent(); ETGModConsole.ModdedShrines.Add("EX:FakePastChest", FakePastChest); ExpandThunderstormPlaceable = expandSharedAssets1.LoadAsset("ExpandThunderStorm"); ExpandThunderstormPlaceable.AddComponent(); Door_Horizontal_Jungle = Object.Instantiate(orLoadByName8.doorObjects.variantTiers[0].nonDatabasePlaceable); Door_Horizontal_Jungle.SetActive(false); Door_Vertical_Jungle = Object.Instantiate(orLoadByName8.doorObjects.variantTiers[1].nonDatabasePlaceable); Door_Vertical_Jungle.SetActive(false); DungeonDoorController component9 = Door_Horizontal_Jungle.GetComponent(); component9.sealAnimationName = "jungle_blocker_horizontal_down"; component9.unsealAnimationName = "jungle_blocker_horizontal_up"; component9.doorModules[0].openAnimationName = "jungle_door_east_top_open"; component9.doorModules[0].closeAnimationName = "jungle_door_east_top_close"; component9.doorModules[1].openAnimationName = "jungle_door_east_bottom_open"; component9.doorModules[1].closeAnimationName = "jungle_door_east_bottom_close"; ((BraveBehaviour)((Component)((Component)component9).gameObject.transform.Find("DoorTop")).gameObject.GetComponent()).sprite.SetSprite("jungle_door_horizontal_top_001"); ((BraveBehaviour)((Component)((Component)component9).gameObject.transform.Find("DoorBottom")).gameObject.GetComponent()).sprite.SetSprite("jungle_door_horizontal_bottom_001"); DungeonDoorController component10 = Door_Vertical_Jungle.GetComponent(); component10.sealAnimationName = "jungle_blocker_vertical_down"; component10.unsealAnimationName = "jungle_blocker_vertical_up"; component10.playerNearSealedAnimationName = "jungle_blocker_headshake"; component10.doorModules[0].openAnimationName = "jungle_door_north_left_open"; component10.doorModules[0].closeAnimationName = "jungle_door_north_left_close"; component10.doorModules[1].openAnimationName = "jungle_door_north_right_open"; component10.doorModules[1].closeAnimationName = "jungle_door_north_right_close"; ((BraveBehaviour)((Component)((Component)component10).gameObject.transform.Find("DoorLeft")).gameObject.GetComponent()).sprite.SetSprite("jungle_door_north_left_001"); ((BraveBehaviour)((Component)((Component)component10).gameObject.transform.Find("DoorRight")).gameObject.GetComponent()).sprite.SetSprite("jungle_door_north_right_001"); Jungle_Doors = ExpandUtility.DuplicateDungoenPlaceable(orLoadByName8.doorObjects); Jungle_Doors.variantTiers[0].nonDatabasePlaceable = Door_Vertical_Jungle; Jungle_Doors.variantTiers[1].nonDatabasePlaceable = Door_Horizontal_Jungle; FakePrefab.MarkAsFakePrefab(Door_Horizontal_Jungle); FakePrefab.MarkAsFakePrefab(Door_Vertical_Jungle); Object.DontDestroyOnLoad((Object)(object)Door_Horizontal_Jungle); Object.DontDestroyOnLoad((Object)(object)Door_Vertical_Jungle); DoorOneWay_Vertical_Jungle = Object.Instantiate(orLoadByName3.oneWayDoorObjects.variantTiers[0].nonDatabasePlaceable); GameObject gameObject22 = ((Component)DoorOneWay_Vertical_Jungle.GetComponent().sealAnimators[0]).gameObject; GameObject gameObject23 = ((Component)gameObject22.transform.Find("Door")).gameObject; ((tk2dBaseSprite)gameObject22.GetComponent()).SetSprite("jungel_one_way_blocker_vertical_bottom_001"); ((tk2dBaseSprite)gameObject23.GetComponent()).SetSprite("jungel_one_way_blocker_vertical_top_001"); Transform transform = gameObject23.transform; transform.localPosition -= new Vector3(0f, 0.1f); ((tk2dBaseSprite)gameObject23.GetComponent()).HeightOffGround = 2f; ((tk2dBaseSprite)gameObject23.GetComponent()).UpdateZDepthLater(); DoorOneWay_Vertical_Jungle.SetActive(false); DoorOneWay_Horizontal_Jungle = Object.Instantiate(orLoadByName3.oneWayDoorObjects.variantTiers[1].nonDatabasePlaceable); GameObject gameObject24 = ((Component)DoorOneWay_Horizontal_Jungle.GetComponent().sealAnimators[0]).gameObject; GameObject gameObject25 = ((Component)gameObject24.transform.Find("Door")).gameObject; ((tk2dBaseSprite)gameObject24.GetComponent()).SetSprite("jungel_one_way_blocker_horizontal_bottom_001"); ((tk2dBaseSprite)gameObject25.GetComponent()).SetSprite("jungel_one_way_blocker_horizontal_top_001"); Transform transform2 = gameObject25.transform; transform2.localPosition -= new Vector3(0f, 0.25f); ((tk2dBaseSprite)gameObject25.GetComponent()).HeightOffGround = 2f; ((tk2dBaseSprite)gameObject25.GetComponent()).UpdateZDepthLater(); DoorOneWay_Horizontal_Jungle.SetActive(false); FakePrefab.MarkAsFakePrefab(DoorOneWay_Vertical_Jungle); FakePrefab.MarkAsFakePrefab(DoorOneWay_Horizontal_Jungle); Object.DontDestroyOnLoad((Object)(object)DoorOneWay_Vertical_Jungle); Object.DontDestroyOnLoad((Object)(object)DoorOneWay_Horizontal_Jungle); Jungle_OneWayDoors = ExpandUtility.DuplicateDungoenPlaceable(orLoadByName2.oneWayDoorObjects); Jungle_OneWayDoors.variantTiers[0].nonDatabasePlaceable = DoorOneWay_Vertical_Jungle; Jungle_OneWayDoors.variantTiers[1].nonDatabasePlaceable = DoorOneWay_Horizontal_Jungle; DoorOneWay_Vertical_Office = Object.Instantiate(orLoadByName3.oneWayDoorObjects.variantTiers[0].nonDatabasePlaceable); GameObject gameObject26 = ((Component)DoorOneWay_Vertical_Office.GetComponent().sealAnimators[0]).gameObject; GameObject gameObject27 = ((Component)gameObject26.transform.Find("Door")).gameObject; ((tk2dBaseSprite)gameObject26.GetComponent()).SetSprite(EXOfficeCollection.GetComponent(), "office_one_way_blocker_vertical_bottom_001"); ((tk2dBaseSprite)gameObject26.GetComponent()).usesOverrideMaterial = true; ((BraveBehaviour)gameObject26.GetComponent()).renderer.material.shader = ((BraveBehaviour)gameObject24.GetComponent()).renderer.material.shader; ((tk2dBaseSprite)gameObject27.GetComponent()).SetSprite(EXOfficeCollection.GetComponent(), "office_one_way_blocker_vertical_top_001"); Transform transform3 = gameObject27.transform; transform3.localPosition -= new Vector3(0f, 0.1f); ((tk2dBaseSprite)gameObject27.GetComponent()).HeightOffGround = 2f; ((tk2dBaseSprite)gameObject27.GetComponent()).UpdateZDepthLater(); DoorOneWay_Vertical_Office.SetActive(false); DoorOneWay_Horizontal_Office = Object.Instantiate(orLoadByName3.oneWayDoorObjects.variantTiers[1].nonDatabasePlaceable); GameObject gameObject28 = ((Component)DoorOneWay_Horizontal_Office.GetComponent().sealAnimators[0]).gameObject; GameObject gameObject29 = ((Component)gameObject28.transform.Find("Door")).gameObject; ((tk2dBaseSprite)gameObject28.GetComponent()).SetSprite(EXOfficeCollection.GetComponent(), "office_one_way_blocker_horizontal_bottom_001"); ((tk2dBaseSprite)gameObject29.GetComponent()).SetSprite(EXOfficeCollection.GetComponent(), "office_one_way_blocker_horizontal_top_001"); Transform transform4 = gameObject29.transform; transform4.localPosition -= new Vector3(0f, 0.25f); ((tk2dBaseSprite)gameObject29.GetComponent()).HeightOffGround = 2f; ((tk2dBaseSprite)gameObject29.GetComponent()).UpdateZDepthLater(); DoorOneWay_Horizontal_Office.SetActive(false); DoorOneWay_Vertical_Backrooms = Object.Instantiate(orLoadByName3.oneWayDoorObjects.variantTiers[0].nonDatabasePlaceable); GameObject gameObject30 = ((Component)DoorOneWay_Vertical_Backrooms.GetComponent().sealAnimators[0]).gameObject; GameObject gameObject31 = ((Component)gameObject30.transform.Find("Door")).gameObject; ((tk2dBaseSprite)gameObject30.GetComponent()).SetSprite(EXBackroomsCollection.GetComponent(), "backrooms_one_way_blocker_vertical_bottom_001"); ((tk2dBaseSprite)gameObject30.GetComponent()).usesOverrideMaterial = true; ((BraveBehaviour)gameObject30.GetComponent()).renderer.material.shader = ((BraveBehaviour)gameObject24.GetComponent()).renderer.material.shader; ((tk2dBaseSprite)gameObject31.GetComponent()).SetSprite(EXOfficeCollection.GetComponent(), "office_one_way_blocker_vertical_top_001"); Transform transform5 = gameObject31.transform; transform5.localPosition -= new Vector3(0f, 0.1f); ((tk2dBaseSprite)gameObject31.GetComponent()).HeightOffGround = 2f; ((tk2dBaseSprite)gameObject31.GetComponent()).UpdateZDepthLater(); DoorOneWay_Vertical_Backrooms.SetActive(false); FakePrefab.MarkAsFakePrefab(DoorOneWay_Vertical_Office); FakePrefab.MarkAsFakePrefab(DoorOneWay_Horizontal_Office); FakePrefab.MarkAsFakePrefab(DoorOneWay_Vertical_Backrooms); Object.DontDestroyOnLoad((Object)(object)DoorOneWay_Vertical_Office); Object.DontDestroyOnLoad((Object)(object)DoorOneWay_Horizontal_Office); Object.DontDestroyOnLoad((Object)(object)DoorOneWay_Vertical_Backrooms); Office_OneWayDoors = ExpandUtility.DuplicateDungoenPlaceable(orLoadByName2.oneWayDoorObjects); Office_OneWayDoors.variantTiers[0].nonDatabasePlaceable = DoorOneWay_Vertical_Office; Office_OneWayDoors.variantTiers[1].nonDatabasePlaceable = DoorOneWay_Horizontal_Office; Backrooms_OneWayDoors = ExpandUtility.DuplicateDungoenPlaceable(orLoadByName2.oneWayDoorObjects); Backrooms_OneWayDoors.variantTiers[0].nonDatabasePlaceable = DoorOneWay_Vertical_Backrooms; Backrooms_OneWayDoors.variantTiers[1].nonDatabasePlaceable = DoorOneWay_Horizontal_Office; Jungle_LargeTree = expandSharedAssets1.LoadAsset("ExpandJungle_Tree"); ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(Jungle_LargeTree, EXJungleCollection, "Jungle_Tree_Large", (PerpendicularState)1)).HeightOffGround = -8f; tk2dSprite obj19 = SpriteSerializer.AddSpriteToObject(((Component)Jungle_LargeTree.transform.Find("shadow")).gameObject, EXJungleCollection, "Jungle_Tree_Large_Shadow", (PerpendicularState)0); ((tk2dBaseSprite)obj19).usesOverrideMaterial = true; ((BraveBehaviour)obj19).renderer.material.shader = ((BraveBehaviour)((Component)((Component)GameManager.Instance.RewardManager.A_Chest).gameObject.transform.Find("Shadow")).gameObject.GetComponent()).renderer.material.shader; ((tk2dBaseSprite)obj19).HeightOffGround = -1.7f; ExpandUtility.GenerateOrAddToRigidBody(Jungle_LargeTree, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(23, 20), (IntVector2?)new IntVector2(84, 39)); ExpandUtility.GenerateOrAddToRigidBody(Jungle_LargeTree, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(10, 20), (IntVector2?)new IntVector2(74, 39)); ExpandUtility.GenerateOrAddToRigidBody(Jungle_LargeTree, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(8, 20), (IntVector2?)new IntVector2(107, 39)); ExpandUtility.GenerateOrAddToRigidBody(Jungle_LargeTree, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(41, 40), (IntVector2?)new IntVector2(74, 59)); ExpandUtility.GenerateOrAddToRigidBody(Jungle_LargeTree, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(41, 48), (IntVector2?)new IntVector2(74, 59)); ExpandUtility.GenerateOrAddToRigidBody(Jungle_LargeTree, (CollisionLayer)9, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(41, 51), (IntVector2?)new IntVector2(74, 48)); ExpandJungleTreeController expandJungleTreeController = Jungle_LargeTree.AddComponent(); Jungle_LargeTreeTopFrame = expandSharedAssets1.LoadAsset("Jungle Tree Frame"); ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(Jungle_LargeTreeTopFrame, EXJungleCollection, "Jungle_Tree_Large_Frame", (PerpendicularState)1)).HeightOffGround = 3f; expandJungleTreeController.JungleTreeTopFrame = Jungle_LargeTreeTopFrame; EXJungleTree_MinimapIcon = expandSharedAssets1.LoadAsset("EXJungle_TreeMinimapIcon"); SpriteSerializer.AddSpriteToObject(EXJungleTree_MinimapIcon, EXJungleCollection, "JungleTree_MinimapIcon", (PerpendicularState)0); EXJungleCrest_MinimapIcon = expandSharedAssets1.LoadAsset("EXJungleCrest_MinimapIcon"); SpriteSerializer.AddSpriteToObject(EXJungleCrest_MinimapIcon, EXJungleCollection, "junglecrest_minimapicon", (PerpendicularState)0); Jungle_ExitLadder = expandSharedAssets1.LoadAsset("ExpandJungle_ExitLadder"); SpriteSerializer.AddSpriteToObject(Jungle_ExitLadder, EXJungleCollection, "Jungle_ExitLadder", (PerpendicularState)0); Jungle_ExitLadder.AddComponent(); Jungle_ExitLadder_Destination = expandSharedAssets1.LoadAsset("ExpandJungle_ExitLadder_Destination"); ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(Jungle_ExitLadder_Destination, EXJungleCollection, "Jungle_ExitLadder_Destination", (PerpendicularState)0)).HeightOffGround = -4f; Jungle_ExitLadder_Destination.AddComponent(); Jungle_ExitLadder_Hole = expandSharedAssets1.LoadAsset("ExpandJungle_ExitLadder_Hole"); ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(Jungle_ExitLadder_Hole, EXJungleCollection, "Jungle_ExitLadder_Destination_Hole", (PerpendicularState)2)).HeightOffGround = -1.7f; GameObjectExtensions.SetLayerRecursively(Jungle_ExitLadder_Hole, LayerMask.NameToLayer("BG_Critical")); ExpandUtility.GenerateOrAddToRigidBody(Jungle_ExitLadder_Hole, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(30, 30), (IntVector2?)IntVector2.One); Jungle_BlobLostSign = expandSharedAssets1.LoadAsset("Expand_JungleSign"); ExpandUtility.BuildNewCustomSign(Jungle_BlobLostSign, Teleporter_Info_Sign, "Lost Blob Note", "This poor fella got lost on his way home."); Jungle_ItemStump = expandSharedAssets1.LoadAsset("ExpandJungle_ItemStump"); SpriteSerializer.AddSpriteToObject(Jungle_ItemStump, EXJungleCollection, "Jungle_TreeStump", (PerpendicularState)0, -1f); ExpandUtility.GenerateOrAddToRigidBody(Jungle_ItemStump, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(3, 2), collisionLayer: (CollisionLayer)5, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(26, 24)); ExpandUtility.GenerateOrAddToRigidBody(Jungle_ItemStump, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(3, 2), collisionLayer: (CollisionLayer)9, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(26, 24)); Jungle_ItemStump.AddComponent().ItemID = WoodenCrest.WoodCrestID; ExpandJungleTree_Shard_01 = expandSharedAssets1.LoadAsset("ExpandJungleTree_Shard_01"); ExpandJungleTree_Shard_02 = expandSharedAssets1.LoadAsset("ExpandJungleTree_Shard_02"); ExpandJungleTree_Shard_03 = expandSharedAssets1.LoadAsset("ExpandJungleTree_Shard_03"); SpriteSerializer.AddSpriteToObject(ExpandJungleTree_Shard_01, EXJungleCollection, "Jungle_Tree_Debris_01", (PerpendicularState)2, -1f); SpriteSerializer.AddSpriteToObject(ExpandJungleTree_Shard_02, EXJungleCollection, "Jungle_Tree_Debris_02", (PerpendicularState)2, -1f); SpriteSerializer.AddSpriteToObject(ExpandJungleTree_Shard_03, EXJungleCollection, "Jungle_Tree_Debris_03", (PerpendicularState)2, -1f); ExpandJungleTree_Shard_01.AddComponent(); ExpandJungleTree_Shard_02.AddComponent(); ExpandJungleTree_Shard_03.AddComponent(); DebrisObject component11 = ExpandJungleTree_Shard_01.GetComponent(); ((EphemeralObject)component11).Priority = (EphemeralPriority)3; component11.audioEventName = string.Empty; component11.playAnimationOnTrigger = false; component11.usesDirectionalFallAnimations = false; component11.directionalAnimationData = new DebrisDirectionalAnimationInfo { fallUp = string.Empty, fallRight = string.Empty, fallDown = string.Empty, fallLeft = string.Empty }; component11.breaksOnFall = true; component11.breakOnFallChance = 1f; component11.changesCollisionLayer = false; component11.groundedCollisionLayer = (CollisionLayer)5; component11.followupBehavior = (DebrisFollowupAction)0; component11.collisionStopsBullets = false; component11.animatePitFall = false; component11.pitFallSplash = false; component11.inertialMass = 1f; component11.motionMultiplier = 1f; component11.canRotate = true; component11.angularVelocity = 1080f; component11.angularVelocityVariance = 0f; component11.bounceCount = 1; component11.additionalBounceEnglish = 0f; component11.decayOnBounce = 0.5f; component11.killTranslationOnBounce = false; component11.usesLifespan = false; component11.lifespanMin = 1f; component11.lifespanMax = 1f; component11.shouldUseSRBMotion = false; component11.placementOptions = new DebrisPlacementOptions { canBeRotated = false, canBeFlippedHorizontally = false, canBeFlippedVertically = false }; component11.DoesGoopOnRest = false; component11.GoopRadius = 1f; component11.additionalHeightBoost = 0f; component11.AssignFinalWorldDepth(-1.5f); DebrisObject component12 = ExpandJungleTree_Shard_02.GetComponent(); ((EphemeralObject)component12).Priority = (EphemeralPriority)3; component12.audioEventName = string.Empty; component12.playAnimationOnTrigger = false; component12.usesDirectionalFallAnimations = false; component12.directionalAnimationData = new DebrisDirectionalAnimationInfo { fallUp = string.Empty, fallRight = string.Empty, fallDown = string.Empty, fallLeft = string.Empty }; component12.breaksOnFall = true; component12.breakOnFallChance = 1f; component12.changesCollisionLayer = false; component12.groundedCollisionLayer = (CollisionLayer)5; component12.followupBehavior = (DebrisFollowupAction)0; component12.collisionStopsBullets = false; component12.animatePitFall = false; component12.pitFallSplash = false; component12.inertialMass = 1f; component12.motionMultiplier = 1f; component12.canRotate = true; component12.angularVelocity = 1080f; component12.angularVelocityVariance = 0f; component12.bounceCount = 1; component12.additionalBounceEnglish = 0f; component12.decayOnBounce = 0.5f; component12.killTranslationOnBounce = false; component12.usesLifespan = false; component12.lifespanMin = 1f; component12.lifespanMax = 1f; component12.shouldUseSRBMotion = false; component12.placementOptions = new DebrisPlacementOptions { canBeRotated = false, canBeFlippedHorizontally = false, canBeFlippedVertically = false }; component12.DoesGoopOnRest = false; component12.GoopRadius = 1f; component12.additionalHeightBoost = 0f; component12.AssignFinalWorldDepth(-1.5f); DebrisObject component13 = ExpandJungleTree_Shard_03.GetComponent(); ((EphemeralObject)component13).Priority = (EphemeralPriority)3; component13.audioEventName = string.Empty; component13.playAnimationOnTrigger = false; component13.usesDirectionalFallAnimations = false; component13.directionalAnimationData = new DebrisDirectionalAnimationInfo { fallUp = string.Empty, fallRight = string.Empty, fallDown = string.Empty, fallLeft = string.Empty }; component13.breaksOnFall = true; component13.breakOnFallChance = 1f; component13.changesCollisionLayer = false; component13.groundedCollisionLayer = (CollisionLayer)5; component13.followupBehavior = (DebrisFollowupAction)0; component13.collisionStopsBullets = false; component13.animatePitFall = false; component13.pitFallSplash = false; component13.inertialMass = 1f; component13.motionMultiplier = 1f; component13.canRotate = true; component13.angularVelocity = 1080f; component13.angularVelocityVariance = 0f; component13.bounceCount = 1; component13.additionalBounceEnglish = 0f; component13.decayOnBounce = 0.5f; component13.killTranslationOnBounce = false; component13.usesLifespan = false; component13.lifespanMin = 1f; component13.lifespanMax = 1f; component13.shouldUseSRBMotion = false; component13.placementOptions = new DebrisPlacementOptions { canBeRotated = false, canBeFlippedHorizontally = false, canBeFlippedVertically = false }; component13.DoesGoopOnRest = false; component13.GoopRadius = 1f; component13.additionalHeightBoost = 0f; component13.AssignFinalWorldDepth(-1.5f); ExpandJungleTreeMedium_Stump = expandSharedAssets1.LoadAsset("ExpandJungleTreeMedium_Stump"); ExpandJungleTreeSmall_Stump = expandSharedAssets1.LoadAsset("ExpandJungleTreeSmall_Stump"); SpriteSerializer.AddSpriteToObject(((Component)ExpandJungleTreeMedium_Stump.transform.Find("stump")).gameObject, EXJungleCollection, "Jungle_Tree_Medium_Stump", (PerpendicularState)2, -1.65f); SpriteSerializer.AddSpriteToObject(((Component)ExpandJungleTreeSmall_Stump.transform.Find("stump")).gameObject, EXJungleCollection, "Jungle_Tree_Medium_Stump", (PerpendicularState)2, -1.65f); GameObject gameObject32 = ((Component)ExpandJungleTreeMedium_Stump.transform.Find("shadow")).gameObject; GameObject gameObject33 = ((Component)ExpandJungleTreeSmall_Stump.transform.Find("shadow")).gameObject; tk2dSprite obj20 = SpriteSerializer.AddSpriteToObject(gameObject32, EXJungleCollection, "Jungle_Tree_Medium_Stump_Shadow", (PerpendicularState)2, -1.7f); ((tk2dBaseSprite)obj20).usesOverrideMaterial = true; ((BraveBehaviour)obj20).renderer.material.shader = ((BraveBehaviour)((Component)((Component)GameManager.Instance.RewardManager.A_Chest).gameObject.transform.Find("Shadow")).gameObject.GetComponent()).renderer.material.shader; tk2dSprite obj21 = SpriteSerializer.AddSpriteToObject(gameObject33, EXJungleCollection, "Jungle_Tree_Medium_Stump_Shadow", (PerpendicularState)2, -1.7f); ((tk2dBaseSprite)obj21).usesOverrideMaterial = true; ((BraveBehaviour)obj21).renderer.material.shader = ((BraveBehaviour)((Component)((Component)GameManager.Instance.RewardManager.A_Chest).gameObject.transform.Find("Shadow")).gameObject.GetComponent()).renderer.material.shader; ExpandJungleTree_Medium = expandSharedAssets1.LoadAsset("ExpandJungleTree_Medium"); SpriteSerializer.AddSpriteToObject(ExpandJungleTree_Medium, EXJungleCollection, "Jungle_Tree_Medium", (PerpendicularState)0, -1f); tk2dSprite obj22 = SpriteSerializer.AddSpriteToObject(((Component)ExpandJungleTree_Medium.transform.Find("shadow")).gameObject, EXJungleCollection, "Jungle_Tree_Medium_Shadow", (PerpendicularState)2, -1.7f); ((tk2dBaseSprite)obj22).usesOverrideMaterial = true; ((BraveBehaviour)obj22).renderer.material.shader = ((BraveBehaviour)((Component)((Component)GameManager.Instance.RewardManager.A_Chest).gameObject.transform.Find("Shadow")).gameObject.GetComponent()).renderer.material.shader; ExpandJungleTree_Small = expandSharedAssets1.LoadAsset("ExpandJungleTree_Small"); SpriteSerializer.AddSpriteToObject(ExpandJungleTree_Small, EXJungleCollection, "Jungle_Tree_Small", (PerpendicularState)0, -1f); tk2dSprite obj23 = SpriteSerializer.AddSpriteToObject(((Component)ExpandJungleTree_Small.transform.Find("shadow")).gameObject, EXJungleCollection, "Jungle_Tree_Small_Shadow", (PerpendicularState)2, -1.7f); ((tk2dBaseSprite)obj23).usesOverrideMaterial = true; ((BraveBehaviour)obj23).renderer.material.shader = ((BraveBehaviour)((Component)((Component)GameManager.Instance.RewardManager.A_Chest).gameObject.transform.Find("Shadow")).gameObject.GetComponent()).renderer.material.shader; ExpandUtility.GenerateOrAddToRigidBody(ExpandJungleTree_Medium, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(17, 2), collisionLayer: (CollisionLayer)5, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(12, 10)); ExpandUtility.GenerateOrAddToRigidBody(ExpandJungleTree_Medium, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(17, 12), collisionLayer: (CollisionLayer)6, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(12, 23)); ExpandUtility.GenerateOrAddToRigidBody(ExpandJungleTree_Small, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(9, 2), collisionLayer: (CollisionLayer)5, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(13, 8)); ExpandUtility.GenerateOrAddToRigidBody(ExpandJungleTree_Small, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(9, 10), collisionLayer: (CollisionLayer)6, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(13, 13)); MajorBreakable val13 = ExpandJungleTree_Medium.AddComponent(); val13.HitPoints = 25f; val13.MinHits = 2; val13.EnemyDamageOverride = -1; val13.ImmuneToBeastMode = false; val13.ScaleWithEnemyHealth = false; val13.OnlyExplosions = false; val13.IgnoreExplosions = false; val13.GameActorMotionBreaks = false; val13.PlayerRollingBreaks = false; val13.spawnShards = true; val13.distributeShards = true; ShardCluster[] array3 = new ShardCluster[3]; ShardCluster val14 = new ShardCluster(); val14.minFromCluster = 2; val14.maxFromCluster = 4; val14.forceMultiplier = 1f; val14.rotationMultiplier = 1f; val14.forceAxialMultiplier = Vector3.one; val14.clusterObjects = (DebrisObject[])(object)new DebrisObject[4] { ((Component)ExpandObjectDatabase.Bush.variantTiers[0].nonDatabasePlaceable.transform.Find("default bush")).gameObject.GetComponent().shardClusters[0].clusterObjects[0], component11, component12, component13 }; array3[0] = val14; val14 = new ShardCluster(); val14.minFromCluster = 3; val14.maxFromCluster = 6; val14.forceMultiplier = 1f; val14.rotationMultiplier = 1f; val14.forceAxialMultiplier = Vector3.one; val14.clusterObjects = (DebrisObject[])(object)new DebrisObject[1] { ((Component)ExpandObjectDatabase.Bush.variantTiers[0].nonDatabasePlaceable.transform.Find("default bush")).gameObject.GetComponent().shardClusters[0].clusterObjects[0] }; array3[1] = val14; val14 = new ShardCluster(); val14.minFromCluster = 3; val14.maxFromCluster = 6; val14.forceMultiplier = 1f; val14.forceAxialMultiplier = Vector3.one; val14.rotationMultiplier = 1f; val14.clusterObjects = (DebrisObject[])(object)new DebrisObject[1] { ((Component)ExpandObjectDatabase.Bush.variantTiers[0].nonDatabasePlaceable.transform.Find("default bush")).gameObject.GetComponent().shardClusters[1].clusterObjects[0] }; array3[2] = val14; val13.shardClusters = (ShardCluster[])(object)array3; val13.minShardPercentSpeed = 0.01f; val13.maxShardPercentSpeed = 0.03f; val13.shardBreakStyle = (BreakStyle)1; val13.usesTemporaryZeroHitPointsState = false; val13.spriteNameToUseAtZeroHP = string.Empty; val13.destroyedOnBreak = true; val13.childrenToDestroy = new List(0); val13.playsAnimationOnNotBroken = false; val13.notBreakAnimation = string.Empty; val13.handlesOwnBreakAnimation = false; val13.breakAnimation = string.Empty; val13.handlesOwnPrebreakFrames = false; val13.prebreakFrames = (BreakFrame[])(object)new BreakFrame[0]; val13.damageVfx = new VFXPool { type = (VFXPoolType)0, effects = (VFXComplex[])(object)new VFXComplex[0] }; val13.damageVfxMinTimeBetween = 0.2f; VFXPool val15 = new VFXPool(); val15.type = (VFXPoolType)4; VFXPool obj24 = val15; VFXComplex[] array4 = new VFXComplex[1]; VFXComplex val16 = new VFXComplex(); val16.effects = (VFXObject[])(object)new VFXObject[2] { new VFXObject { effect = ExpandJungleTreeMedium_Stump, alignment = (VFXAlignment)0, attached = true, destructible = false, orphaned = true, persistsOnDeath = true, usesZHeight = true, zHeight = -1f }, new VFXObject { effect = sharedAssets.LoadAsset("VFX_Big_Dust_Poof"), alignment = (VFXAlignment)0, attached = false, destructible = false, orphaned = true, persistsOnDeath = false, usesZHeight = false, zHeight = 1f } }; array4[0] = val16; obj24.effects = (VFXComplex[])(object)array4; val13.breakVfx = val15; val13.delayDamageVfx = false; val13.SpawnItemOnBreak = false; val13.HandlePathBlocking = true; MajorBreakable val17 = ExpandJungleTree_Small.AddComponent(); val17.HitPoints = 15f; val17.MinHits = 2; val17.EnemyDamageOverride = -1; val17.ImmuneToBeastMode = false; val17.ScaleWithEnemyHealth = false; val17.OnlyExplosions = false; val17.IgnoreExplosions = false; val17.GameActorMotionBreaks = false; val17.PlayerRollingBreaks = false; val17.spawnShards = true; val17.distributeShards = true; ShardCluster[] array5 = new ShardCluster[3]; val14 = new ShardCluster(); val14.minFromCluster = 1; val14.maxFromCluster = 3; val14.forceMultiplier = 1f; val14.rotationMultiplier = 1f; val14.forceAxialMultiplier = Vector3.one; val14.clusterObjects = (DebrisObject[])(object)new DebrisObject[4] { ((Component)ExpandObjectDatabase.Bush.variantTiers[0].nonDatabasePlaceable.transform.Find("default bush")).gameObject.GetComponent().shardClusters[0].clusterObjects[0], component11, component12, component13 }; array5[0] = val14; val14 = new ShardCluster(); val14.minFromCluster = 2; val14.maxFromCluster = 5; val14.forceMultiplier = 1f; val14.rotationMultiplier = 1f; val14.forceAxialMultiplier = Vector3.one; val14.clusterObjects = (DebrisObject[])(object)new DebrisObject[1] { ((Component)ExpandObjectDatabase.Bush.variantTiers[0].nonDatabasePlaceable.transform.Find("default bush")).gameObject.GetComponent().shardClusters[0].clusterObjects[0] }; array5[1] = val14; val14 = new ShardCluster(); val14.minFromCluster = 2; val14.maxFromCluster = 5; val14.forceMultiplier = 1f; val14.forceAxialMultiplier = Vector3.one; val14.rotationMultiplier = 1f; val14.clusterObjects = (DebrisObject[])(object)new DebrisObject[1] { ((Component)ExpandObjectDatabase.Bush.variantTiers[0].nonDatabasePlaceable.transform.Find("default bush")).gameObject.GetComponent().shardClusters[1].clusterObjects[0] }; array5[2] = val14; val17.shardClusters = (ShardCluster[])(object)array5; val17.minShardPercentSpeed = 0.01f; val17.maxShardPercentSpeed = 0.03f; val17.shardBreakStyle = (BreakStyle)1; val17.usesTemporaryZeroHitPointsState = false; val17.spriteNameToUseAtZeroHP = string.Empty; val17.destroyedOnBreak = true; val17.childrenToDestroy = new List(0); val17.playsAnimationOnNotBroken = false; val17.notBreakAnimation = string.Empty; val17.handlesOwnBreakAnimation = false; val17.breakAnimation = string.Empty; val17.handlesOwnPrebreakFrames = false; val17.prebreakFrames = (BreakFrame[])(object)new BreakFrame[0]; val17.damageVfx = new VFXPool { type = (VFXPoolType)0, effects = (VFXComplex[])(object)new VFXComplex[0] }; val17.damageVfxMinTimeBetween = 0.2f; val15 = new VFXPool(); val15.type = (VFXPoolType)4; VFXPool obj25 = val15; VFXComplex[] array6 = new VFXComplex[1]; val16 = new VFXComplex(); val16.effects = (VFXObject[])(object)new VFXObject[2] { new VFXObject { effect = ExpandJungleTreeSmall_Stump, alignment = (VFXAlignment)0, attached = true, destructible = false, orphaned = true, persistsOnDeath = true, usesZHeight = true, zHeight = -1f }, new VFXObject { effect = sharedAssets.LoadAsset("VFX_Big_Dust_Poof"), alignment = (VFXAlignment)0, attached = false, destructible = false, orphaned = true, persistsOnDeath = false, usesZHeight = false, zHeight = 1f } }; array6[0] = val16; obj25.effects = (VFXComplex[])(object)array6; val17.breakVfx = val15; val17.delayDamageVfx = false; val17.SpawnItemOnBreak = false; val17.HandlePathBlocking = true; ExpandJungleTree_Small.AddComponent(); ExpandJungleTree_Medium.AddComponent(); Door_Horizontal_Belly = Object.Instantiate(orLoadByName10.doorObjects.variantTiers[0].nonDatabasePlaceable); Door_Vertical_Belly = Object.Instantiate(orLoadByName10.doorObjects.variantTiers[1].nonDatabasePlaceable); Belly_DoorAnimations = sharedAssets2.LoadAsset("MonstroNakatomiWest_Door_Animation"); clips = Belly_DoorAnimations.GetComponent().clips; foreach (tk2dSpriteAnimationClip val18 in clips) { if ((val18.name == "monstro_door_horizontall_top_open") | (val18.name == "monstro_door_horizontall_bottom_open") | (val18.name == "monstro_door_vertical_left_open") | (val18.name == "monstro_door_vertical_right_open")) { val18.frames[0].eventAudio = "Play_EX_BellyDoor_Open"; val18.frames[0].triggerEvent = true; } if ((val18.name == "monstro_door_horizontal_top_close") | (val18.name == "monstro_door_horizontal_bottom_close") | (val18.name == "monstro_door_vertical_left_close") | (val18.name == "monstro_door_vertical_right_close")) { val18.frames[0].eventAudio = "Play_EX_BellyDoor_Close"; val18.frames[0].triggerEvent = true; } if ((val18.name == "monstro_blocker_horizontal_down") | (val18.name == "monstro_blocker_vertical_down")) { val18.frames[0].eventAudio = "Play_EX_BellyDoor_Seal"; val18.frames[0].triggerEvent = true; } if ((val18.name == "monstro_blocker_horizontal_up") | (val18.name == "monstro_blocker_vertical_up")) { val18.frames[0].eventAudio = "Play_EX_BellyDoor_Unseal"; val18.frames[0].triggerEvent = true; } } Belly_Shipwreck_Left = expandSharedAssets1.LoadAsset("EXShipwreck_Left"); Belly_Shipwreck_Right = expandSharedAssets1.LoadAsset("EXShipwreck_Right"); SpriteSerializer.AddSpriteToObject(Belly_Shipwreck_Left, EXLargeMonsterCollection, "Shipwreck_Left", (PerpendicularState)0); SpriteSerializer.AddSpriteToObject(Belly_Shipwreck_Right, EXLargeMonsterCollection, "Shipwreck_Right", (PerpendicularState)0); ((tk2dBaseSprite)Belly_Shipwreck_Left.GetComponent()).HeightOffGround = -8f; ((tk2dBaseSprite)Belly_Shipwreck_Right.GetComponent()).HeightOffGround = -8f; DungeonDoorController component14 = Door_Horizontal_Belly.GetComponent(); component14.sealAnimationName = "monstro_blocker_horizontal_down"; component14.unsealAnimationName = "monstro_blocker_horizontal_up"; component14.playerNearSealedAnimationName = string.Empty; component14.doorModules[0].openAnimationName = "monstro_door_horizontall_top_open"; component14.doorModules[0].closeAnimationName = "monstro_door_horizontal_top_close"; component14.doorModules[0].horizontalFlips = false; component14.doorModules[1].openAnimationName = "monstro_door_horizontall_bottom_open"; component14.doorModules[1].closeAnimationName = "monstro_door_horizontal_bottom_close"; component14.doorModules[1].horizontalFlips = false; component14.doorModules[1].openDepth = 1f; component14.doorModules[1].closedDepth = 1f; ((Component)component14).gameObject.transform.Find("BarsLeft").localPosition = new Vector3(0.375f, 0.75f, 1.5f); ((Component)component14).gameObject.transform.Find("BarsRight").localPosition = new Vector3(1.0625f, 0.75f, 1.5f); ((Component)component14).gameObject.transform.Find("DoorTop").localPosition = new Vector3(0.375f, -0.4375f, 4.8125f); ((Component)component14).gameObject.transform.Find("DoorBottom").localPosition = new Vector3(0.375f, -0.4375f, 1.8125f); ((Component)component14).gameObject.transform.Find("AO_Wall_Left").localPosition = new Vector3(1.0625f, 2.0625f, 3.0625f); ((Component)component14).gameObject.transform.Find("AO_Wall_Right").localPosition = new Vector3(-0.5625f, 2.0625f, 3.0625f); ((Component)component14).gameObject.transform.Find("AO_Floor_Left").localPosition = new Vector3(-0.5625f, 1.0625f, 2.0625f); ((Component)component14).gameObject.transform.Find("AO_Floor_Right").localPosition = new Vector3(1.0625f, 1.0625f, 2.0625f); ((BraveBehaviour)((Component)((Component)component14).gameObject.transform.Find("DoorTop")).gameObject.GetComponent()).sprite.SetSprite("monstro_door_horizontal_top_001"); ((BraveBehaviour)((Component)((Component)component14).gameObject.transform.Find("DoorBottom")).gameObject.GetComponent()).sprite.SetSprite("monstro_door_horizontal_bottom_001"); Object.Destroy((Object)(object)((Component)Door_Horizontal_Belly.gameObject.transform.Find("BarsLeft")).gameObject.GetComponent()); Object.Destroy((Object)(object)((Component)Door_Horizontal_Belly.gameObject.transform.Find("BarsRight")).gameObject.GetComponent()); DungeonDoorController component15 = Door_Vertical_Belly.GetComponent(); component15.sealAnimationName = "monstro_blocker_vertical_down"; component15.unsealAnimationName = "monstro_blocker_vertical_up"; component15.playerNearSealedAnimationName = "monstro_blocker_headshake"; component15.doorModules[0].openAnimationName = "monstro_door_vertical_left_open"; component15.doorModules[0].closeAnimationName = "monstro_door_vertical_left_close"; component15.doorModules[0].openDepth = -1.25f; component15.doorModules[0].closedDepth = -2.25f; component15.doorModules[1].openAnimationName = "monstro_door_vertical_right_open"; component15.doorModules[1].closeAnimationName = "monstro_door_vertical_right_close"; component15.doorModules[1].openDepth = -1.25f; component15.doorModules[1].closedDepth = -2.25f; ((BraveBehaviour)((Component)((Component)component15).gameObject.transform.Find("DoorLeft")).gameObject.GetComponent()).sprite.SetSprite("monstro_door_vertical_open_left_001"); ((BraveBehaviour)((Component)((Component)component15).gameObject.transform.Find("DoorRight")).gameObject.GetComponent()).sprite.SetSprite("monstro_door_vertical_open_right_001"); tk2dSpriteAnimation val19 = ((Component)Door_Horizontal_Belly.gameObject.transform.Find("BarsLeft")).gameObject.AddComponent(); tk2dSpriteAnimation val20 = ((Component)Door_Horizontal_Belly.gameObject.transform.Find("BarsRight")).gameObject.AddComponent(); val19.clips = component15.sealAnimators[0].Library.clips; val20.clips = component15.sealAnimators[0].Library.clips; tk2dSpriteAnimator val21 = ((Component)Door_Horizontal_Belly.gameObject.transform.Find("BarsLeft")).gameObject.AddComponent(); val21.Library = val19; val21.DefaultClipId = 1; val21.AdditionalCameraVisibilityRadius = 0f; val21.AnimateDuringBossIntros = false; val21.ForceSetEveryFrame = false; val21.playAutomatically = false; val21.IsFrameBlendedAnimation = false; val21.clipTime = 0f; val21.deferNextStartClip = false; tk2dSpriteAnimator val22 = ((Component)Door_Horizontal_Belly.gameObject.transform.Find("BarsRight")).gameObject.AddComponent(); val22.Library = val20; val22.DefaultClipId = 1; val22.AdditionalCameraVisibilityRadius = 0f; val22.AnimateDuringBossIntros = false; val22.ForceSetEveryFrame = false; val22.playAutomatically = false; val22.IsFrameBlendedAnimation = false; val22.clipTime = 0f; val22.deferNextStartClip = false; component14.sealAnimators = (tk2dSpriteAnimator[])(object)new tk2dSpriteAnimator[2] { val21, val22 }; Door_Horizontal_Belly.SetActive(false); Door_Vertical_Belly.SetActive(false); Belly_Doors = ExpandUtility.DuplicateDungoenPlaceable(orLoadByName10.doorObjects); Belly_Doors.variantTiers[0].nonDatabasePlaceable = Door_Vertical_Belly; Belly_Doors.variantTiers[1].nonDatabasePlaceable = Door_Horizontal_Belly; FakePrefab.MarkAsFakePrefab(Door_Vertical_Belly); FakePrefab.MarkAsFakePrefab(Door_Horizontal_Belly); Object.DontDestroyOnLoad((Object)(object)Door_Vertical_Belly); Object.DontDestroyOnLoad((Object)(object)Door_Horizontal_Belly); West_PuzzleSetupPlacable = expandSharedAssets1.LoadAsset("EXWest_PuzzleSetupPlacable"); West_PuzzleSetupPlacable.AddComponent(); EXOldWestWarp = expandSharedAssets1.LoadAsset("EXOldWestWarp"); ExpandUtility.GenerateOrAddToRigidBody(EXOldWestWarp, (CollisionLayer)16, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: true, replaceExistingColliders: false, UsesPixelsAsUnitSize: false, (IntVector2?)new IntVector2(32, 28), (IntVector2?)null); EXOldWestWarp.AddComponent().warpType = ExpandWarpManager.WarpType.OldWestFloorWarp; Door_Horizontal_West = Object.Instantiate(orLoadByName10.doorObjects.variantTiers[0].nonDatabasePlaceable); Door_Vertical_West = Object.Instantiate(orLoadByName10.doorObjects.variantTiers[1].nonDatabasePlaceable); DungeonDoorController component16 = Door_Horizontal_West.GetComponent(); typeof(DungeonDoorController).GetField("doorClosesAfterEveryOpen", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(component16, true); component16.sealAnimationName = "west_blocker_horizontal_down"; component16.unsealAnimationName = "west_blocker_horizontal_up"; component16.playerNearSealedAnimationName = string.Empty; component16.doorModules[0].openAnimationName = "west_door_east_top_open"; component16.doorModules[0].closeAnimationName = "west_door_east_top_close"; component16.doorModules[0].horizontalFlips = true; component16.doorModules[0].openPerpendicular = true; component16.doorModules[1].openDepth = -1f; component16.doorModules[1].closedDepth = -1f; component16.doorModules[1].openAnimationName = "west_door_east_bottom_open"; component16.doorModules[1].closeAnimationName = "west_door_east_bottom_close"; component16.doorModules[1].horizontalFlips = true; component16.doorModules[1].openPerpendicular = true; component16.doorModules[1].openDepth = -1f; component16.doorModules[1].closedDepth = -1f; ((Component)component16).gameObject.transform.Find("BarsLeft").localPosition = new Vector3(0.375f, 0.5625f, -0.0625f); ((Component)component16).gameObject.transform.Find("BarsRight").localPosition = new Vector3(0.625f, 0.5625f, 0.3125f); ((Component)component16).gameObject.transform.Find("DoorTop").localPosition = new Vector3(0.4375f, -0.5f, 3f); ((Component)component16).gameObject.transform.Find("DoorBottom").localPosition = new Vector3(0.4375f, -0.4375f, 0.4375f); ((Component)component16).gameObject.transform.Find("AO_Wall_Left").localPosition = new Vector3(0.5625f, 2.0625f, 3.0625f); ((Component)component16).gameObject.transform.Find("AO_Wall_Right").localPosition = new Vector3(-0.5625f, 2.0625f, 3.0625f); ((Component)component16).gameObject.transform.Find("AO_Floor_Left").localPosition = new Vector3(-0.755f, 1.0625f, 2.0625f); ((Component)component16).gameObject.transform.Find("AO_Floor_Right").localPosition = new Vector3(0.655f, 1.0625f, 2.0625f); ((BraveBehaviour)((Component)((Component)component16).gameObject.transform.Find("DoorTop")).gameObject.GetComponent()).sprite.SetSprite("west_door_horizontal_top_001"); ((BraveBehaviour)((Component)((Component)component16).gameObject.transform.Find("DoorBottom")).gameObject.GetComponent()).sprite.SetSprite("west_door_horizontal_bottom_001"); Object.Destroy((Object)(object)((Component)Door_Horizontal_West.gameObject.transform.Find("BarsLeft")).gameObject.GetComponent()); Object.Destroy((Object)(object)((Component)Door_Horizontal_West.gameObject.transform.Find("BarsRight")).gameObject.GetComponent()); DungeonDoorController component17 = Door_Vertical_West.GetComponent(); typeof(DungeonDoorController).GetField("doorClosesAfterEveryOpen", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(component17, true); component17.sealAnimationName = "west_blocker_vertical_down"; component17.unsealAnimationName = "west_blocker_vertical_up"; component17.playerNearSealedAnimationName = string.Empty; component17.doorModules[0].openAnimationName = "west_door_north_left_open"; component17.doorModules[0].closeAnimationName = "west_door_north_left_close"; component17.doorModules[0].openDepth = -1.25f; component17.doorModules[0].closedDepth = -2.25f; component17.doorModules[0].openPerpendicular = true; component17.doorModules[0].horizontalFlips = true; component17.doorModules[1].openAnimationName = "west_door_north_right_open"; component17.doorModules[1].closeAnimationName = "west_door_north_right_close"; component17.doorModules[1].openDepth = -1.25f; component17.doorModules[1].closedDepth = -2.25f; component17.doorModules[0].openPerpendicular = true; component17.doorModules[0].horizontalFlips = true; ((BraveBehaviour)((Component)((Component)component17).gameObject.transform.Find("DoorLeft")).gameObject.GetComponent()).sprite.SetSprite("west_door_north_left_001"); ((BraveBehaviour)((Component)((Component)component17).gameObject.transform.Find("DoorRight")).gameObject.GetComponent()).sprite.SetSprite("west_door_north_right_001"); tk2dSpriteAnimation val23 = ((Component)Door_Horizontal_West.gameObject.transform.Find("BarsLeft")).gameObject.AddComponent(); tk2dSpriteAnimation val24 = ((Component)Door_Horizontal_West.gameObject.transform.Find("BarsRight")).gameObject.AddComponent(); val23.clips = component17.sealAnimators[0].Library.clips; val24.clips = component17.sealAnimators[0].Library.clips; tk2dSpriteAnimator val25 = ((Component)Door_Horizontal_West.gameObject.transform.Find("BarsLeft")).gameObject.AddComponent(); val25.Library = val23; val25.DefaultClipId = 36; val25.AdditionalCameraVisibilityRadius = 0f; val25.AnimateDuringBossIntros = false; val25.ForceSetEveryFrame = false; val25.playAutomatically = false; val25.IsFrameBlendedAnimation = false; val25.clipTime = 0f; val25.deferNextStartClip = false; tk2dSpriteAnimator val26 = ((Component)Door_Horizontal_West.gameObject.transform.Find("BarsRight")).gameObject.AddComponent(); val26.Library = val24; val26.DefaultClipId = 37; val26.AdditionalCameraVisibilityRadius = 0f; val26.AnimateDuringBossIntros = false; val26.ForceSetEveryFrame = false; val26.playAutomatically = false; val26.IsFrameBlendedAnimation = false; val26.clipTime = 0f; val26.deferNextStartClip = false; component16.sealAnimators = (tk2dSpriteAnimator[])(object)new tk2dSpriteAnimator[2] { val25, val26 }; Door_Horizontal_West.SetActive(false); Door_Vertical_West.SetActive(false); West_Doors = Object.Instantiate(orLoadByName10.doorObjects); West_Doors.variantTiers[0].nonDatabasePlaceable = Door_Vertical_West; West_Doors.variantTiers[1].nonDatabasePlaceable = Door_Horizontal_West; FakePrefab.MarkAsFakePrefab(Door_Vertical_West); FakePrefab.MarkAsFakePrefab(Door_Horizontal_West); Object.DontDestroyOnLoad((Object)(object)Door_Vertical_West); Object.DontDestroyOnLoad((Object)(object)Door_Horizontal_West); tk2dSprite component18 = sharedAssets.LoadAsset("Sarcophagus_ShotgunBook").GetComponent(); Sarcophagus_ShotgunBook_Kaliber = expandSharedAssets1.LoadAsset("Sarcophagus_ShotgunBook_Kaliber"); Sarcophagus_ShotgunMace_Kaliber = expandSharedAssets1.LoadAsset("Sarcophagus_ShotgunMace_Kaliber"); Sarcophagus_BulletSword_Kaliber = expandSharedAssets1.LoadAsset("Sarcophagus_BulletSword_Kaliber"); Sarcophagus_BulletShield_Kaliber = expandSharedAssets1.LoadAsset("Sarcophagus_BulletShield_Kaliber"); tk2dSprite val27 = Sarcophagus_ShotgunBook_Kaliber.AddComponent(); tk2dSprite val28 = Sarcophagus_ShotgunMace_Kaliber.AddComponent(); tk2dSprite val29 = Sarcophagus_BulletSword_Kaliber.AddComponent(); tk2dSprite val30 = Sarcophagus_BulletShield_Kaliber.AddComponent(); tk2dSprite val31 = ((Component)Sarcophagus_ShotgunBook_Kaliber.transform.Find("Shadow")).gameObject.AddComponent(); tk2dSprite val32 = ((Component)Sarcophagus_ShotgunMace_Kaliber.transform.Find("Shadow")).gameObject.AddComponent(); tk2dSprite val33 = ((Component)Sarcophagus_BulletSword_Kaliber.transform.Find("Shadow")).gameObject.AddComponent(); tk2dSprite obj26 = ((Component)Sarcophagus_BulletShield_Kaliber.transform.Find("Shadow")).gameObject.AddComponent(); ((tk2dBaseSprite)val27).SetSprite(((tk2dBaseSprite)component18).Collection, "sarco_shotbook_kaliber_001"); ((tk2dBaseSprite)val28).SetSprite(((tk2dBaseSprite)component18).Collection, "sarco_shotmace_kaliber_001"); ((tk2dBaseSprite)val29).SetSprite(((tk2dBaseSprite)component18).Collection, "sarco_bullsword_kaliber_001"); ((tk2dBaseSprite)val30).SetSprite(((tk2dBaseSprite)component18).Collection, "sarco_bullshield_kaliber_001"); ((tk2dBaseSprite)val31).SetSprite(((tk2dBaseSprite)component18).Collection, "sarco_shadow_001"); ((tk2dBaseSprite)val32).SetSprite(((tk2dBaseSprite)component18).Collection, "sarco_shadow_001"); ((tk2dBaseSprite)val33).SetSprite(((tk2dBaseSprite)component18).Collection, "sarco_shadow_001"); ((tk2dBaseSprite)obj26).SetSprite(((tk2dBaseSprite)component18).Collection, "sarco_shadow_001"); ((tk2dBaseSprite)val31).CachedPerpState = (PerpendicularState)2; ((tk2dBaseSprite)val32).CachedPerpState = (PerpendicularState)2; ((tk2dBaseSprite)val33).CachedPerpState = (PerpendicularState)2; ((tk2dBaseSprite)obj26).CachedPerpState = (PerpendicularState)2; ((tk2dBaseSprite)val27).HeightOffGround = -1f; ((tk2dBaseSprite)val28).HeightOffGround = -1f; ((tk2dBaseSprite)val29).HeightOffGround = -1f; ((tk2dBaseSprite)val30).HeightOffGround = -1f; ((tk2dBaseSprite)val31).HeightOffGround = -1.7f; ((tk2dBaseSprite)val32).HeightOffGround = -1.7f; ((tk2dBaseSprite)val33).HeightOffGround = -1.7f; ((tk2dBaseSprite)obj26).HeightOffGround = -1.7f; SpeculativeRigidbody targetRigidBody = Sarcophagus_ShotgunBook_Kaliber.AddComponent(); SpeculativeRigidbody targetRigidBody2 = Sarcophagus_ShotgunMace_Kaliber.AddComponent(); SpeculativeRigidbody targetRigidBody3 = Sarcophagus_BulletSword_Kaliber.AddComponent(); SpeculativeRigidbody targetRigidBody4 = Sarcophagus_BulletShield_Kaliber.AddComponent(); ExpandUtility.DuplicateRigidBody(targetRigidBody, ((Component)component18).gameObject.GetComponent()); ExpandUtility.DuplicateRigidBody(targetRigidBody2, ((Component)component18).gameObject.GetComponent()); ExpandUtility.DuplicateRigidBody(targetRigidBody3, ((Component)component18).gameObject.GetComponent()); ExpandUtility.DuplicateRigidBody(targetRigidBody4, ((Component)component18).gameObject.GetComponent()); PlacedBlockerConfigurable obj27 = Sarcophagus_ShotgunBook_Kaliber.AddComponent(); PlacedBlockerConfigurable val34 = Sarcophagus_ShotgunMace_Kaliber.AddComponent(); PlacedBlockerConfigurable val35 = Sarcophagus_BulletSword_Kaliber.AddComponent(); PlacedBlockerConfigurable val36 = Sarcophagus_BulletShield_Kaliber.AddComponent(); obj27.colliderSelection = (ColliderSelection)0; obj27.SpecifyPixelCollider = true; obj27.SpecifiedPixelCollider = 1; val34.colliderSelection = (ColliderSelection)0; val34.SpecifyPixelCollider = true; val34.SpecifiedPixelCollider = 1; val35.colliderSelection = (ColliderSelection)0; val35.SpecifyPixelCollider = true; val35.SpecifiedPixelCollider = 1; val36.colliderSelection = (ColliderSelection)0; val36.SpecifyPixelCollider = true; val36.SpecifiedPixelCollider = 1; DungeonPlaceableBehaviour obj28 = Sarcophagus_ShotgunBook_Kaliber.AddComponent(); DungeonPlaceableBehaviour val37 = Sarcophagus_ShotgunMace_Kaliber.AddComponent(); DungeonPlaceableBehaviour val38 = Sarcophagus_BulletSword_Kaliber.AddComponent(); DungeonPlaceableBehaviour val39 = Sarcophagus_BulletShield_Kaliber.AddComponent(); obj28.placeableWidth = 3; obj28.placeableHeight = 3; obj28.difficulty = (PlaceableDifficulty)0; obj28.isPassable = false; val37.placeableWidth = 3; val37.placeableHeight = 3; val37.difficulty = (PlaceableDifficulty)0; val37.isPassable = false; val38.placeableWidth = 3; val38.placeableHeight = 3; val38.difficulty = (PlaceableDifficulty)0; val38.isPassable = false; val39.placeableWidth = 3; val39.placeableHeight = 3; val39.difficulty = (PlaceableDifficulty)0; val39.isPassable = false; component18 = null; Sarco_WoodShieldPedestal = expandSharedAssets1.LoadAsset("ExpandSarco_Pedestal"); SpriteSerializer.AddSpriteToObject(Sarco_WoodShieldPedestal, EXMonsterCollection, "PedestalRuins", (PerpendicularState)0); ExpandUtility.GenerateOrAddToRigidBody(Sarco_WoodShieldPedestal, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(0, 3), collisionLayer: (CollisionLayer)5, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(26, 23)); ExpandUtility.GenerateOrAddToRigidBody(Sarco_WoodShieldPedestal, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(0, 3), collisionLayer: (CollisionLayer)9, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(26, 23)); ExpandUtility.GenerateOrAddToRigidBody(Sarco_WoodShieldPedestal, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(1, 5), collisionLayer: (CollisionLayer)6, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(24, 21)); Sarco_WoodShieldPedestal.AddComponent().ItemID = WoodenCrest.WoodCrestID; Sarco_Door = expandSharedAssets1.LoadAsset("ExpandSarco_Door"); Sarco_Door.layer = LayerMask.NameToLayer("FG_Critical"); tk2dSprite val40 = Sarco_Door.AddComponent(); ((tk2dBaseSprite)val40).SetSprite(sharedAssets.LoadAsset("Environment_Gungeon_Collection").GetComponent(), "sarco_door_001"); ((tk2dBaseSprite)val40).HeightOffGround = -1f; tk2dSpriteAnimation val41 = Sarco_Door.AddComponent(); val41.clips = (tk2dSpriteAnimationClip[])(object)new tk2dSpriteAnimationClip[0]; List spriteNameList21 = new List { "sarco_door_open_001", "sarco_door_open_002", "sarco_door_open_003", "sarco_door_open_004", "sarco_door_open_005", "sarco_door_open_006" }; ExpandUtility.AddAnimation(val41, ((tk2dBaseSprite)val40).Collection, spriteNameList21, "Sarco_Door_Open", (WrapMode)2, 6); ExpandUtility.GenerateSpriteAnimator(Sarco_Door, val41); ExpandUtility.GenerateOrAddToRigidBody(Sarco_Door, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(10, 3), collisionLayer: (CollisionLayer)5, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(32, 28)); ExpandUtility.GenerateOrAddToRigidBody(Sarco_Door, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(10, 12), collisionLayer: (CollisionLayer)6, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(32, 28)); ExpandUtility.GenerateOrAddToRigidBody(Sarco_Door, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(0, 3), collisionLayer: (CollisionLayer)5, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(10, 28)); ExpandUtility.GenerateOrAddToRigidBody(Sarco_Door, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(42, 3), collisionLayer: (CollisionLayer)5, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(10, 28)); ExpandUtility.GenerateOrAddToRigidBody(Sarco_Door, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(0, 31), collisionLayer: (CollisionLayer)5, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(52, 12)); ExpandUtility.GenerateOrAddToRigidBody(Sarco_Door, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(0, 3), collisionLayer: (CollisionLayer)5, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(10, 28)); ExpandUtility.GenerateOrAddToRigidBody(Sarco_Door, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(0, 12), collisionLayer: (CollisionLayer)6, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(10, 28)); ExpandUtility.GenerateOrAddToRigidBody(Sarco_Door, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(42, 12), collisionLayer: (CollisionLayer)6, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(10, 28)); ExpandUtility.GenerateOrAddToRigidBody(Sarco_Door, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(0, 40), collisionLayer: (CollisionLayer)6, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(52, 5)); ExpandUtility.GenerateOrAddToRigidBody(Sarco_Door, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(0, 3), collisionLayer: (CollisionLayer)9, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(52, 42)); Sarco_Floor = expandSharedAssets1.LoadAsset("ExpandSarco_Floor"); ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(Sarco_Floor, EXLargeMonsterCollection, "Belly_GungeonMonsterRoomFloor", (PerpendicularState)2)).HeightOffGround = -1.7f; Sarco_MonsterObject = expandSharedAssets1.LoadAsset("ExpandSarco_Monster"); SpriteSerializer.AddSpriteToObject(Sarco_MonsterObject, EXLargeMonsterCollection, "Belly_Monster_Move_001", (PerpendicularState)0); List spriteNameList22 = new List { "Belly_Monster_Move_001", "Belly_Monster_Move_002", "Belly_Monster_Move_003", "Belly_Monster_Move_004", "Belly_Monster_Move_005", "Belly_Monster_Move_006", "Belly_Monster_Move_007", "Belly_Monster_Move_008", "Belly_Monster_Move_009", "Belly_Monster_Move_010", "Belly_Monster_Move_011", "Belly_Monster_Move_012" }; ExpandUtility.GenerateSpriteAnimator(Sarco_MonsterObject); ExpandUtility.AddAnimation(Sarco_MonsterObject.GetComponent(), EXLargeMonsterCollection.GetComponent(), spriteNameList22, "MonsterChase", (WrapMode)0, 10); SpeculativeRigidbody obj29 = ExpandUtility.GenerateOrAddToRigidBody(Sarco_MonsterObject, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: false, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(57, 0), collisionLayer: (CollisionLayer)5, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(243, 1024)); ExpandUtility.GenerateOrAddToRigidBody(Sarco_MonsterObject, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: false, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(57, 0), collisionLayer: (CollisionLayer)6, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(243, 1024)); ExpandUtility.GenerateOrAddToRigidBody(Sarco_MonsterObject, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: false, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(57, 0), collisionLayer: (CollisionLayer)9, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(243, 1024)); obj29.MaxVelocity = new Vector2(-1.5f, 0f); obj29.CanBePushed = false; Sarco_MonsterObject.GetComponent().Library.clips[0].frames[6].eventInfo = "slam"; Sarco_MonsterObject.GetComponent().Library.clips[0].frames[6].triggerEvent = true; Sarco_MonsterObject.AddComponent().ImpactVFXObjects = (GameObject[])(object)new GameObject[3] { sharedAssets.LoadAsset("VFX_Dust_Explosion"), sharedAssets.LoadAsset("VFX_Tombstone_Impact"), sharedAssets.LoadAsset("VFX_Big_Dust_Poof") }; Sarco_Skeleton = expandSharedAssets1.LoadAsset("ExpandDeadSkeleton"); Sarco_Skeleton.AddComponent(); tk2dSprite component19 = Sarco_Skeleton.GetComponent(); ((tk2dBaseSprite)component19).SetSprite(sharedAssets.LoadAsset("EnvironmentCollection 4").GetComponent(), "skeleton_floor_001"); ((tk2dBaseSprite)component19).HeightOffGround = -2f; Belly_ExitWarp = expandSharedAssets1.LoadAsset("ExpandBelly_ExitWarp"); Belly_ExitWarp.layer = LayerMask.NameToLayer("FG_Critical"); SpriteSerializer.AddSpriteToObject(Belly_ExitWarp, EXMonsterCollection, "Belly_Void", (PerpendicularState)0); ExpandUtility.GenerateOrAddToRigidBody(Belly_ExitWarp, (CollisionLayer)16, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: true, replaceExistingColliders: false, UsesPixelsAsUnitSize: false, (IntVector2?)new IntVector2(2, 2), (IntVector2?)null); Belly_ExitWarp.AddComponent().warpType = ExpandWarpManager.WarpType.FloorWarp; Belly_ExitRoomIcon = expandSharedAssets1.LoadAsset("BellyExitRoomIcon"); SpriteSerializer.AddSpriteToObject(Belly_ExitRoomIcon, EXMonsterCollection, "Belly_ExitRoomIcon", (PerpendicularState)0); Belly_PitVFX1 = expandSharedAssets1.LoadAsset("Belly_PitVFX1"); ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(Belly_PitVFX1, EXMonsterCollection, "Belly_PitVFX1_01", (PerpendicularState)0)).HeightOffGround = -4f; new List { "Belly_PitVFX1_02", "Belly_PitVFX1_03", "Belly_PitVFX1_04", "Belly_PitVFX1_05", "Belly_PitVFX1_06", "Belly_PitVFX1_07" }; List spriteNameList23 = new List { "Belly_PitVFX1_01", "Belly_PitVFX1_02", "Belly_PitVFX1_03", "Belly_PitVFX1_04", "Belly_PitVFX1_05", "Belly_PitVFX1_06", "Belly_PitVFX1_07" }; ExpandUtility.GenerateSpriteAnimator(Belly_PitVFX1, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true); ExpandUtility.AddAnimation(Belly_PitVFX1.GetComponent(), EXMonsterCollection.GetComponent(), spriteNameList23, "bubbleup", (WrapMode)2, 8); SpriteAnimatorKiller obj30 = Belly_PitVFX1.AddComponent(); obj30.onlyDisable = true; obj30.deparentOnStart = false; obj30.childObjectToDisable = new List(0); obj30.hasChildAnimators = false; obj30.deparentAllChildren = false; obj30.delayDestructionTime = 0f; obj30.fadeTime = 0f; Belly_PitVFX2 = expandSharedAssets1.LoadAsset("Belly_PitVFX2"); tk2dSprite val42 = SpriteSerializer.AddSpriteToObject(Belly_PitVFX2, EXMonsterCollection, "Belly_PitVFX2_01", (PerpendicularState)0); ((tk2dBaseSprite)val42).HeightOffGround = -4f; List spriteNameList24 = new List { "Belly_PitVFX2_01", "Belly_PitVFX2_02", "Belly_PitVFX2_03", "Belly_PitVFX2_04", "Belly_PitVFX2_05", "Belly_PitVFX2_06" }; ExpandUtility.GenerateSpriteAnimator(Belly_PitVFX2, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true); tk2dSpriteAnimator component20 = Belly_PitVFX2.GetComponent(); ExpandUtility.AddAnimation(component20, ((tk2dBaseSprite)val42).Collection, spriteNameList24, "splash", (WrapMode)2, 10); component20.Library.clips[0].frames[0].eventInfo = "splash"; component20.Library.clips[0].frames[0].triggerEvent = true; SpriteAnimatorKiller obj31 = Belly_PitVFX2.AddComponent(); obj31.onlyDisable = true; obj31.deparentOnStart = false; obj31.childObjectToDisable = new List(0); obj31.hasChildAnimators = false; obj31.deparentAllChildren = false; obj31.delayDestructionTime = 0f; obj31.fadeTime = 0f; Belly_PitVFX2.AddComponent().animationAudioEvents = (ActorAudioEvent[])(object)new ActorAudioEvent[1] { new ActorAudioEvent { eventTag = "splash", eventName = "Play_ENV_water_splash_01" } }; Belly_PitVFX3 = expandSharedAssets1.LoadAsset("Belly_PitVFX3"); ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(Belly_PitVFX3, EXMonsterCollection, "Belly_PitVFX3_01", (PerpendicularState)0)).HeightOffGround = -4f; List spriteNameList25 = new List { "Belly_PitVFX3_01", "Belly_PitVFX3_02", "Belly_PitVFX3_03", "Belly_PitVFX3_04", "Belly_PitVFX3_05", "Belly_PitVFX3_06", "Belly_PitVFX3_07" }; ExpandUtility.GenerateSpriteAnimator(Belly_PitVFX3, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true); ExpandUtility.AddAnimation(Belly_PitVFX3.GetComponent(), EXMonsterCollection.GetComponent(), spriteNameList25, "bubbleup", (WrapMode)2, 8); SpriteAnimatorKiller obj32 = Belly_PitVFX3.AddComponent(); obj32.onlyDisable = true; obj32.deparentOnStart = false; obj32.childObjectToDisable = new List(0); obj32.hasChildAnimators = false; obj32.deparentAllChildren = false; obj32.delayDestructionTime = 0f; obj32.fadeTime = 0f; JungleLight = Object.Instantiate(sharedAssets.LoadAsset("Castle Light")); ((Object)JungleLight).name = "Jungle Light"; GameObject gameObject34 = ((Component)JungleLight.transform.Find("Shadow Render Settings")).gameObject; Light component21 = ((Component)JungleLight.transform.Find("Point light")).gameObject.GetComponent(); component21.color = new Color(0.849914f, 0.958546f, 0.963235f, 1f); component21.intensity = 1.6f; component21.range = 11f; gameObject34.GetComponent().validColors = (Color[])(object)new Color[1] { new Color(0.678309f, 0.744067f, 0.75f, 1f) }; JungleLight.SetActive(false); FakePrefab.MarkAsFakePrefab(JungleLight); Object.DontDestroyOnLoad((Object)(object)JungleLight); BellyLight = Object.Instantiate(orLoadByName5.roomMaterialDefinitions[0].lightPrefabs.elements[0].rawGameObject); ((Object)BellyLight).name = "Belly Light"; GameObject gameObject35 = ((Component)BellyLight.transform.Find("Shadow Render Settings")).gameObject; Light component22 = ((Component)BellyLight.transform.Find("Point light")).gameObject.GetComponent(); component22.type = (LightType)2; component22.color = new Color(0.963235f, 0.95542f, 0.849914f, 1f); component22.spotAngle = 30f; component22.range = 11f; component22.intensity = 1.6f; component22.cookieSize = 10f; component22.shadowResolution = (LightShadowResolution)(-1); component22.shadowCustomResolution = -1; component22.shadowStrength = 1f; component22.shadowBias = 0.05f; component22.shadowNormalBias = 0.4f; component22.shadowNearPlane = 0.2f; component22.renderMode = (LightRenderMode)0; component22.bounceIntensity = 1f; gameObject35.GetComponent().validColors = (Color[])(object)new Color[1] { new Color(0.516305f, 0.544118f, 0.472102f, 1f) }; BellyLight.SetActive(false); FakePrefab.MarkAsFakePrefab(BellyLight); Object.DontDestroyOnLoad((Object)(object)BellyLight); WestLight = Object.Instantiate(orLoadByName5.roomMaterialDefinitions[0].lightPrefabs.elements[0].rawGameObject); ((Object)WestLight).name = "Belly Light"; GameObject gameObject36 = ((Component)WestLight.transform.Find("Shadow Render Settings")).gameObject; Light component23 = ((Component)WestLight.transform.Find("Point light")).gameObject.GetComponent(); component23.type = (LightType)2; component23.color = new Color(0.878568f, 0.949484f, 0.955882f, 1f); component23.spotAngle = 30f; component23.intensity = 2f; component23.range = 14f; component23.cookieSize = 10f; component23.shadowResolution = (LightShadowResolution)(-1); component23.shadowCustomResolution = -1; component23.shadowStrength = 1f; component23.shadowBias = 0.05f; component23.shadowNormalBias = 0.4f; component23.shadowNearPlane = 0.2f; component23.renderMode = (LightRenderMode)0; component23.bounceIntensity = 1f; gameObject36.GetComponent().validColors = (Color[])(object)new Color[1] { new Color(0.509516f, 0.556783f, 0.558824f, 1f) }; WestLight.SetActive(false); FakePrefab.MarkAsFakePrefab(WestLight); Object.DontDestroyOnLoad((Object)(object)WestLight); PhobosLight = Object.Instantiate(orLoadByName5.roomMaterialDefinitions[0].lightPrefabs.elements[0].rawGameObject); ((Object)PhobosLight).name = "Phobos Light"; GameObject gameObject37 = ((Component)PhobosLight.transform.Find("Shadow Render Settings")).gameObject; Light component24 = ((Component)PhobosLight.transform.Find("Point light")).gameObject.GetComponent(); component24.type = (LightType)2; component24.color = new Color(0.849914f, 0.958546f, 0.963235f, 1f); component24.intensity = 1.6f; component24.range = 11f; component24.spotAngle = 30f; component24.cookieSize = 10f; component24.shadowResolution = (LightShadowResolution)(-1); component24.shadowCustomResolution = -1; component24.shadowStrength = 1f; component24.shadowBias = 0.05f; component24.shadowNormalBias = 0.4f; component24.shadowNearPlane = 0.2f; component24.renderMode = (LightRenderMode)0; component24.bounceIntensity = 1f; gameObject37.GetComponent().validColors = (Color[])(object)new Color[1] { new Color(0.678309f, 0.744067f, 0.75f, 1f) }; PhobosLight.SetActive(false); FakePrefab.MarkAsFakePrefab(PhobosLight); Object.DontDestroyOnLoad((Object)(object)PhobosLight); CactusShard1 = expandSharedAssets1.LoadAsset("ExpandCactus_Shard_001"); CactusShard1.AddComponent(); CactusShard1.AddComponent(); ((tk2dBaseSprite)CactusShard1.GetComponent()).Collection = sharedAssets2.LoadAsset("Environment_Gunpowder_Mine_Animation").GetComponent().clips[10].frames[0].spriteCollection; ((tk2dBaseSprite)CactusShard1.GetComponent()).SetSprite("cactus_shard_001"); DebrisObject component25 = CactusShard1.GetComponent(); ((EphemeralObject)component25).Priority = (EphemeralPriority)3; component25.audioEventName = string.Empty; component25.playAnimationOnTrigger = false; component25.usesDirectionalFallAnimations = false; component25.directionalAnimationData = new DebrisDirectionalAnimationInfo { fallUp = string.Empty, fallRight = string.Empty, fallDown = string.Empty, fallLeft = string.Empty }; component25.breaksOnFall = true; component25.breakOnFallChance = 1f; component25.changesCollisionLayer = false; component25.groundedCollisionLayer = (CollisionLayer)5; component25.followupBehavior = (DebrisFollowupAction)0; component25.collisionStopsBullets = false; component25.animatePitFall = false; component25.pitFallSplash = false; component25.inertialMass = 1f; component25.motionMultiplier = 1f; component25.canRotate = true; component25.angularVelocity = 1080f; component25.angularVelocityVariance = 0f; component25.bounceCount = 1; component25.additionalBounceEnglish = 0f; component25.decayOnBounce = 0.5f; component25.killTranslationOnBounce = false; component25.usesLifespan = false; component25.lifespanMin = 1f; component25.lifespanMax = 1f; component25.shouldUseSRBMotion = false; component25.placementOptions = new DebrisPlacementOptions { canBeRotated = false, canBeFlippedHorizontally = false, canBeFlippedVertically = false }; component25.DoesGoopOnRest = false; component25.GoopRadius = 1f; component25.additionalHeightBoost = 0f; component25.AssignFinalWorldDepth(-1.5f); CactusShard2 = expandSharedAssets1.LoadAsset("ExpandCactus_Shard_002"); CactusShard2.AddComponent(); CactusShard2.AddComponent(); ((tk2dBaseSprite)CactusShard2.GetComponent()).Collection = sharedAssets2.LoadAsset("Environment_Gunpowder_Mine_Animation").GetComponent().clips[10].frames[0].spriteCollection; ((tk2dBaseSprite)CactusShard2.GetComponent()).SetSprite("cactus_shard_002"); DebrisObject component26 = CactusShard2.GetComponent(); ((EphemeralObject)component26).Priority = (EphemeralPriority)3; component26.audioEventName = string.Empty; component26.playAnimationOnTrigger = false; component26.usesDirectionalFallAnimations = false; component26.directionalAnimationData = new DebrisDirectionalAnimationInfo { fallUp = string.Empty, fallRight = string.Empty, fallDown = string.Empty, fallLeft = string.Empty }; component26.breaksOnFall = true; component26.breakOnFallChance = 1f; component26.changesCollisionLayer = false; component26.groundedCollisionLayer = (CollisionLayer)5; component26.followupBehavior = (DebrisFollowupAction)0; component26.collisionStopsBullets = false; component26.animatePitFall = false; component26.pitFallSplash = false; component26.inertialMass = 1f; component26.motionMultiplier = 1f; component26.canRotate = true; component26.angularVelocity = 1080f; component26.angularVelocityVariance = 0f; component26.bounceCount = 1; component26.additionalBounceEnglish = 0f; component26.decayOnBounce = 0.5f; component26.killTranslationOnBounce = false; component26.usesLifespan = false; component26.lifespanMin = 1f; component26.lifespanMax = 1f; component26.shouldUseSRBMotion = false; component26.placementOptions = new DebrisPlacementOptions { canBeRotated = false, canBeFlippedHorizontally = false, canBeFlippedVertically = false }; component26.DoesGoopOnRest = false; component26.GoopRadius = 1f; component26.additionalHeightBoost = 0f; component26.AssignFinalWorldDepth(-1.5f); Cactus_A = expandSharedAssets1.LoadAsset("ExpandCactus_A"); tk2dSprite obj33 = Cactus_A.AddComponent(); ((tk2dBaseSprite)obj33).Collection = sharedAssets2.LoadAsset("Environment_Gunpowder_Mine_Animation").GetComponent().clips[10].frames[0].spriteCollection; ((tk2dBaseSprite)obj33).SetSprite("cactus_A_idle_001"); tk2dSpriteAnimator obj34 = Cactus_A.AddComponent(); obj34.Library = sharedAssets2.LoadAsset("Environment_Gunpowder_Mine_Animation").GetComponent(); obj34.DefaultClipId = 10; obj34.AdditionalCameraVisibilityRadius = 0f; obj34.AnimateDuringBossIntros = false; obj34.ForceSetEveryFrame = false; obj34.playAutomatically = false; obj34.IsFrameBlendedAnimation = false; obj34.clipTime = 0f; obj34.deferNextStartClip = false; ExpandUtility.GenerateOrAddToRigidBody(Cactus_A, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(1, -3), collisionLayer: (CollisionLayer)5, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(6, 6)); ExpandUtility.GenerateOrAddToRigidBody(Cactus_A, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(2, 3), collisionLayer: (CollisionLayer)6, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(4, 12)); MajorBreakable val43 = Cactus_A.AddComponent(); val43.HitPoints = 25f; val43.MinHits = 2; val43.EnemyDamageOverride = -1; val43.ImmuneToBeastMode = false; val43.ScaleWithEnemyHealth = false; val43.OnlyExplosions = false; val43.IgnoreExplosions = false; val43.GameActorMotionBreaks = false; val43.PlayerRollingBreaks = false; val43.spawnShards = true; val43.distributeShards = false; ShardCluster[] array7 = new ShardCluster[1]; val14 = new ShardCluster(); val14.minFromCluster = 3; val14.maxFromCluster = 6; val14.forceMultiplier = 1f; val14.forceAxialMultiplier = Vector3.one; val14.clusterObjects = (DebrisObject[])(object)new DebrisObject[2] { component25, component26 }; array7[0] = val14; val43.shardClusters = (ShardCluster[])(object)array7; val43.minShardPercentSpeed = 0.05f; val43.maxShardPercentSpeed = 0.3f; val43.shardBreakStyle = (BreakStyle)0; val43.usesTemporaryZeroHitPointsState = false; val43.spriteNameToUseAtZeroHP = string.Empty; val43.destroyedOnBreak = true; val43.childrenToDestroy = new List(0); val43.playsAnimationOnNotBroken = true; val43.notBreakAnimation = "cactus_A_wobble"; val43.handlesOwnBreakAnimation = false; val43.breakAnimation = string.Empty; val43.handlesOwnPrebreakFrames = false; val43.prebreakFrames = (BreakFrame[])(object)new BreakFrame[0]; val43.damageVfx = new VFXPool { type = (VFXPoolType)0, effects = (VFXComplex[])(object)new VFXComplex[0] }; val43.damageVfxMinTimeBetween = 0.2f; val43.breakVfx = new VFXPool { type = (VFXPoolType)0, effects = (VFXComplex[])(object)new VFXComplex[0] }; val43.delayDamageVfx = false; val43.SpawnItemOnBreak = false; val43.HandlePathBlocking = true; Cactus_B = expandSharedAssets1.LoadAsset("ExpandCactus_B"); tk2dSprite obj35 = Cactus_B.AddComponent(); ((tk2dBaseSprite)obj35).Collection = sharedAssets2.LoadAsset("Environment_Gunpowder_Mine_Animation").GetComponent().clips[10].frames[0].spriteCollection; ((tk2dBaseSprite)obj35).SetSprite("catcus_B_idle_001"); tk2dSpriteAnimator obj36 = Cactus_B.AddComponent(); obj36.Library = sharedAssets2.LoadAsset("Environment_Gunpowder_Mine_Animation").GetComponent(); obj36.DefaultClipId = 11; obj36.AdditionalCameraVisibilityRadius = 0f; obj36.AnimateDuringBossIntros = false; obj36.ForceSetEveryFrame = false; obj36.playAutomatically = false; obj36.IsFrameBlendedAnimation = false; obj36.clipTime = 0f; obj36.deferNextStartClip = false; ExpandUtility.GenerateOrAddToRigidBody(Cactus_B, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(2, -3), collisionLayer: (CollisionLayer)5, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(10, 5)); ExpandUtility.GenerateOrAddToRigidBody(Cactus_B, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(3, 3), collisionLayer: (CollisionLayer)6, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(8, 14)); MajorBreakable val44 = Cactus_B.AddComponent(); val44.HitPoints = 25f; val44.MinHits = 2; val44.EnemyDamageOverride = -1; val44.ImmuneToBeastMode = false; val44.ScaleWithEnemyHealth = false; val44.OnlyExplosions = false; val44.IgnoreExplosions = false; val44.GameActorMotionBreaks = false; val44.PlayerRollingBreaks = false; val44.spawnShards = true; val44.distributeShards = false; ShardCluster[] array8 = new ShardCluster[1]; val14 = new ShardCluster(); val14.minFromCluster = 3; val14.maxFromCluster = 6; val14.forceMultiplier = 1f; val14.forceAxialMultiplier = Vector3.one; val14.clusterObjects = (DebrisObject[])(object)new DebrisObject[2] { component25, component26 }; array8[0] = val14; val44.shardClusters = (ShardCluster[])(object)array8; val44.minShardPercentSpeed = 0.05f; val44.maxShardPercentSpeed = 0.3f; val44.shardBreakStyle = (BreakStyle)0; val44.usesTemporaryZeroHitPointsState = false; val44.spriteNameToUseAtZeroHP = string.Empty; val44.destroyedOnBreak = true; val44.childrenToDestroy = new List(0); val44.playsAnimationOnNotBroken = true; val44.notBreakAnimation = "cactus_B_wobble"; val44.handlesOwnBreakAnimation = false; val44.breakAnimation = string.Empty; val44.handlesOwnPrebreakFrames = false; val44.prebreakFrames = (BreakFrame[])(object)new BreakFrame[0]; val44.damageVfx = new VFXPool { type = (VFXPoolType)0, effects = (VFXComplex[])(object)new VFXComplex[0] }; val44.damageVfxMinTimeBetween = 0.2f; val44.breakVfx = new VFXPool { type = (VFXPoolType)0, effects = (VFXComplex[])(object)new VFXComplex[0] }; val44.delayDamageVfx = false; val44.SpawnItemOnBreak = false; val44.HandlePathBlocking = true; ExpandSpawnItemOnBreak expandSpawnItemOnBreak = Cactus_A.AddComponent(); ExpandSpawnItemOnBreak expandSpawnItemOnBreak2 = Cactus_B.AddComponent(); expandSpawnItemOnBreak.AllowedTilesets = new List(); expandSpawnItemOnBreak2.AllowedTilesets = new List(); expandSpawnItemOnBreak.BannedRoomCategories = new List(); expandSpawnItemOnBreak2.BannedRoomCategories = new List(); expandSpawnItemOnBreak.SpawnItemOnBreak = false; expandSpawnItemOnBreak2.SpawnItemOnBreak = false; CorruptionBombRewardPedestal = expandSharedAssets1.LoadAsset("EXReward_Pedestal_CorruptionBomb"); ExpandUtility.DuplicateComponent(CorruptionBombRewardPedestal.AddComponent(), RewardPedestalPrefab.GetComponent()); tk2dSprite obj37 = ((Component)CorruptionBombRewardPedestal.transform.Find("shadow")).gameObject.AddComponent(); ExpandUtility.DuplicateComponent(obj37, ((Component)RewardPedestalPrefab.transform.Find("Pedestal_Shadow")).gameObject.GetComponent()); ((tk2dBaseSprite)obj37).SetSprite("pedestal_gun_shadow_002"); ExpandUtility.DuplicateComponent(CorruptionBombRewardPedestal.AddComponent(), RewardPedestalPrefab.GetComponent()); BlankRewardPedestal = expandSharedAssets1.LoadAsset("EXReward_Pedestal_Blank"); ExpandUtility.DuplicateComponent(BlankRewardPedestal.AddComponent(), RewardPedestalPrefab.GetComponent()); tk2dSprite obj38 = ((Component)BlankRewardPedestal.transform.Find("shadow")).gameObject.AddComponent(); ExpandUtility.DuplicateComponent(obj38, ((Component)RewardPedestalPrefab.transform.Find("Pedestal_Shadow")).gameObject.GetComponent()); ((tk2dBaseSprite)obj38).SetSprite("pedestal_gun_shadow_002"); ExpandUtility.DuplicateComponent(BlankRewardPedestal.AddComponent(), RewardPedestalPrefab.GetComponent()); RatKeyRewardPedestal = expandSharedAssets1.LoadAsset("EXReward_Pedestal_RatKey"); ExpandUtility.DuplicateComponent(RatKeyRewardPedestal.AddComponent(), RewardPedestalPrefab.GetComponent()); tk2dSprite obj39 = ((Component)RatKeyRewardPedestal.transform.Find("shadow")).gameObject.AddComponent(); ExpandUtility.DuplicateComponent(obj39, ((Component)RewardPedestalPrefab.transform.Find("Pedestal_Shadow")).gameObject.GetComponent()); ((tk2dBaseSprite)obj39).SetSprite("pedestal_gun_shadow_002"); ExpandUtility.DuplicateComponent(RatKeyRewardPedestal.AddComponent(), RewardPedestalPrefab.GetComponent()); ExpandRewardPedestal expandRewardPedestal = CorruptionBombRewardPedestal.AddComponent(); expandRewardPedestal.spawnTransform = CorruptionBombRewardPedestal.transform.Find("Reward_Spawn"); expandRewardPedestal.ItemID = CorruptionBomb.CorruptionBombPickupID; BlankRewardPedestal.AddComponent().spawnTransform = BlankRewardPedestal.transform.Find("Reward_Spawn"); ExpandRewardPedestal expandRewardPedestal2 = RatKeyRewardPedestal.AddComponent(); expandRewardPedestal2.spawnTransform = RatKeyRewardPedestal.transform.Find("Reward_Spawn"); expandRewardPedestal2.ItemID = 727; EXSpaceFloor_50x50 = expandSharedAssets1.LoadAsset("EXSpaceFloor_50x50"); EXSpaceFloorPitBorder_50x50 = expandSharedAssets1.LoadAsset("EXSpaceFloorPitBorder_50x50"); tk2dSprite val45 = SpriteSerializer.AddSpriteToObject(EXSpaceFloor_50x50, EXTrapCollection, "RainbowRoad", (PerpendicularState)2); tk2dSprite obj40 = SpriteSerializer.AddSpriteToObject(EXSpaceFloorPitBorder_50x50, EXTrapCollection, "RainbowRoad_PitBorders", (PerpendicularState)2); ((tk2dBaseSprite)val45).HeightOffGround = -1.72f; ((tk2dBaseSprite)obj40).HeightOffGround = -1.6f; ((BraveBehaviour)val45).renderer.material = new Material(ShaderCache.Acquire("Brave/Internal/RainbowChestShader")); ((BraveBehaviour)val45).renderer.material.mainTexture = (Texture)(object)expandSharedAssets1.LoadAsset("RainbowRoad"); ((tk2dBaseSprite)val45).usesOverrideMaterial = true; EXSpaceFloor_50x50.AddComponent(); EX_Parachute = expandSharedAssets1.LoadAsset("EX_Parachute"); SpriteSerializer.AddSpriteToObject(EX_Parachute, EXParadropCollection, "EX_Parachute", (PerpendicularState)0); List list6 = new List { "EX_Parachute_Open_01", "EX_Parachute_Open_02", "EX_Parachute_Open_03", "EX_Parachute_Open_04", "EX_Parachute_Open_05" }; List list7 = new List { "EX_Parachute_Land", "EX_Parachute_Land_Blank" }; list6.Add("EX_Parachute"); list7 = new List { "EX_Parachute_Land", "EX_Parachute_Land_Blank", "EX_Parachute_Land", "EX_Parachute_Land_Blank", "EX_Parachute_Land", "EX_Parachute_Land_Blank" }; ExpandUtility.GenerateSpriteAnimator(EX_Parachute); ExpandUtility.AddAnimation(EX_Parachute.GetComponent(), EXParadropCollection.GetComponent(), list6, "ParachuteDeploy", (WrapMode)2, 10); ExpandUtility.AddAnimation(EX_Parachute.GetComponent(), EXParadropCollection.GetComponent(), list7, "ParachuteLanded", (WrapMode)2, 10); EX_ParadropAnchor = ExpandAssets.LoadAsset("EX_ParadropAnchor"); EX_ExplodyBarrelDummy = expandSharedAssets1.LoadAsset("EX_ExplodyBarrelDummy"); SpriteSerializer.AddSpriteToObject(EX_ExplodyBarrelDummy, EXParadropCollection, "EX_ExplodyBarrel", (PerpendicularState)0); ExpandUtility.GenerateSpriteAnimator(EX_ExplodyBarrelDummy, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: false, IsFrameBlendedAnimation: false, 0f, 5f); ExpandUtility.AddAnimation(EX_ExplodyBarrelDummy.GetComponent(), EXParadropCollection.GetComponent(), new List { "EX_ExplodyBarrel", "EX_ExplodyBarrel_Explode" }, "explode", (WrapMode)2, 6); SpeculativeRigidbody obj41 = ExpandUtility.GenerateOrAddToRigidBody(EX_ExplodyBarrelDummy, (CollisionLayer)3, (PixelColliderGeneration)1); obj41.PixelColliders.Clear(); obj41.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)3, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 6, ManualOffsetY = 1, ManualWidth = 14, ManualHeight = 16, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); obj41.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)2, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 6, ManualOffsetY = 1, ManualWidth = 14, ManualHeight = 20, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); EX_ItemDropper = expandSharedAssets1.LoadAsset("EX_ItemParadrop"); ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(EX_ItemDropper, EXParadropCollection, "EX_Paradrop_Crate_Idle", (PerpendicularState)0)).HeightOffGround = -1f; ExpandUtility.GenerateOrAddToRigidBody(EX_ItemDropper, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: false, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(16, 18), (IntVector2?)new IntVector2(10, 0)); new List { "EX_Paradrop_Crate_Land_001", "EX_Paradrop_Crate_Land_002", "EX_Paradrop_Crate_Land_003", "EX_Paradrop_Crate_Land_004", "EX_Paradrop_Crate_Land_005", "EX_Paradrop_Crate_Land_006", "EX_Paradrop_Crate_Land_Blank" }; List spriteNameList26 = new List { "EX_Paradrop_Crate_Land_001", "EX_Paradrop_Crate_Land_002", "EX_Paradrop_Crate_Land_003", "EX_Paradrop_Crate_Land_004", "EX_Paradrop_Crate_Land_005", "EX_Paradrop_Crate_Land_006", "EX_Paradrop_Crate_Land_005", "EX_Paradrop_Crate_Land_005", "EX_Paradrop_Crate_Land_005", "EX_Paradrop_Crate_Land_005", "EX_Paradrop_Crate_Land_Blank", "EX_Paradrop_Crate_Land_Blank", "EX_Paradrop_Crate_Land_005", "EX_Paradrop_Crate_Land_005", "EX_Paradrop_Crate_Land_Blank", "EX_Paradrop_Crate_Land_Blank", "EX_Paradrop_Crate_Land_005", "EX_Paradrop_Crate_Land_005", "EX_Paradrop_Crate_Land_Blank", "EX_Paradrop_Crate_Land_Blank", "EX_Paradrop_Crate_Land_005", "EX_Paradrop_Crate_Land_005", "EX_Paradrop_Crate_Land_Blank", "EX_Paradrop_Crate_Land_Blank" }; ExpandUtility.GenerateSpriteAnimator(EX_ItemDropper); ExpandUtility.AddAnimation(EX_ItemDropper.GetComponent(), EXParadropCollection.GetComponent(), spriteNameList26, "bustopen", (WrapMode)2, 12); tk2dSpriteAnimator component27 = EX_ItemDropper.GetComponent(); component27.Library.clips[0].frames[0].eventAudio = "Play_OBJ_supplycrate_open_01"; component27.Library.clips[0].frames[0].triggerEvent = true; ExpandParadropController expandParadropController = EX_ItemDropper.AddComponent(); expandParadropController.StartsIntheAir = true; expandParadropController.IsItemCrate = true; expandParadropController.UseLandingVFX = true; expandParadropController.DropHeightHorizontalOffset = 8f; EX_Chest_West = expandSharedAssets1.LoadAsset("EX_Chest_West"); tk2dSprite val46 = SpriteSerializer.AddSpriteToObject(EX_Chest_West, EXChestCollection, "chest_west_idle_001", (PerpendicularState)0); ((tk2dBaseSprite)val46).SetSprite(EXChestCollection.GetComponent(), "chest_west_idle_001"); ((tk2dBaseSprite)val46).HeightOffGround = -1f; List spriteNameList27 = new List { "chest_west_open_001", "chest_west_open_002", "chest_west_open_003", "chest_west_open_004", "chest_west_open_005", "chest_west_open_006", "chest_west_open_007", "chest_west_open_008", "chest_west_open_009", "chest_west_open_010" }; List spriteNameList28 = new List { "chest_west_appear_001", "chest_west_appear_002", "chest_west_appear_003", "chest_west_appear_004", "chest_west_appear_004", "chest_west_appear_004", "chest_west_appear_004", "chest_west_appear_005", "chest_west_appear_006" }; List spriteNameList29 = new List { "chest_west_break_001", "chest_west_break_002", "chest_west_break_003", "chest_west_break_004" }; ExpandUtility.GenerateSpriteAnimator(EX_Chest_West); tk2dSpriteAnimator component28 = EX_Chest_West.GetComponent(); ExpandUtility.AddAnimation(component28, EXChestCollection.GetComponent(), spriteNameList28, "west_chest_appear", (WrapMode)2, 9); component28.Library.clips[0].frames[0].eventAudio = "Play_OBJ_smallchest_spawn_01"; component28.Library.clips[0].frames[0].triggerEvent = true; ExpandUtility.AddAnimation(component28, EXChestCollection.GetComponent(), spriteNameList27, "west_chest_open", (WrapMode)2, 12); ExpandUtility.AddAnimation(component28, EXChestCollection.GetComponent(), spriteNameList29, "west_chest_break", (WrapMode)2, 10); component28.Library.clips[2].frames[0].eventAudio = "Play_OBJ_barrel_break_01"; component28.Library.clips[2].frames[0].triggerEvent = true; ExpandUtility.GenerateOrAddToRigidBody(EX_Chest_West, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: true, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(27, 16), (IntVector2?)new IntVector2(2, 2)); GameObject gameObject38 = ((Component)EX_Chest_West.transform.Find("PoofCloud")).gameObject; tk2dSprite obj42 = gameObject38.AddComponent(); ((tk2dBaseSprite)obj42).SetSprite(((tk2dBaseSprite)ExpandObjectDatabase.ChestBrownTwoItems.GetComponent()).Collection, "cloud_woodchest_appear_001"); ((tk2dBaseSprite)obj42).attachParent = (tk2dBaseSprite)(object)val46; ((tk2dBaseSprite)obj42).HeightOffGround = 1f; tk2dSpriteAnimator obj43 = ExpandUtility.DuplicateSpriteAnimator(gameObject38, ExpandObjectDatabase.ChestBrownTwoItems.GetComponent()); obj43.DefaultClipId = 15; obj43.playAutomatically = true; SpriteAnimatorKiller obj44 = gameObject38.AddComponent(); obj44.onlyDisable = true; obj44.deparentOnStart = false; obj44.childObjectToDisable = new List(0); obj44.hasChildAnimators = false; obj44.deparentAllChildren = false; obj44.disableRendererOnDelay = false; obj44.delayDestructionTime = 0f; obj44.fadeTime = 0f; TimedObjectKiller obj45 = gameObject38.AddComponent(); obj45.lifeTime = 1f; obj45.m_poolType = (PoolType)0; GameObject gameObject39 = ((Component)EX_Chest_West.transform.Find("GroundHit")).gameObject; tk2dSprite obj46 = gameObject39.AddComponent(); ((tk2dBaseSprite)obj46).SetSprite(((tk2dBaseSprite)ExpandObjectDatabase.ChestBrownTwoItems.GetComponent()).Collection, "low_chest_dustland_001"); ((tk2dBaseSprite)obj46).attachParent = (tk2dBaseSprite)(object)val46; ((tk2dBaseSprite)obj46).HeightOffGround = 1f; tk2dSpriteAnimator obj47 = ExpandUtility.DuplicateSpriteAnimator(gameObject39, ExpandObjectDatabase.ChestBrownTwoItems.GetComponent()); obj47.DefaultClipId = 20; obj47.playAutomatically = true; SpriteAnimatorKiller obj48 = gameObject39.AddComponent(); obj48.onlyDisable = false; obj48.deparentOnStart = false; obj48.childObjectToDisable = new List(0); obj48.hasChildAnimators = false; obj48.deparentAllChildren = false; obj48.disableRendererOnDelay = false; obj48.delayDestructionTime = 0f; obj48.fadeTime = 0f; SimpleLightIntensityCurve obj49 = ((Component)gameObject38.transform.Find("Point Light")).gameObject.AddComponent(); obj49.Duration = 1f; obj49.MinIntensity = 0f; obj49.MaxIntensity = 1.1f; val11 = new AnimationCurve(); val11.preWrapMode = (WrapMode)0; val11.postWrapMode = (WrapMode)0; AnimationCurve obj50 = val11; Keyframe[] array9 = new Keyframe[3]; val12 = default(Keyframe); ((Keyframe)(ref val12)).time = 0f; ((Keyframe)(ref val12)).value = 0f; ((Keyframe)(ref val12)).inTangent = 0f; ((Keyframe)(ref val12)).outTangent = 0f; array9[0] = val12; val12 = default(Keyframe); ((Keyframe)(ref val12)).time = 0.119112f; ((Keyframe)(ref val12)).value = 1f; ((Keyframe)(ref val12)).inTangent = 15.147778f; ((Keyframe)(ref val12)).outTangent = -0.6802f; array9[1] = val12; val12 = default(Keyframe); ((Keyframe)(ref val12)).time = 1f; ((Keyframe)(ref val12)).value = 0f; ((Keyframe)(ref val12)).inTangent = 0f; ((Keyframe)(ref val12)).outTangent = 0f; array9[2] = val12; obj50.keys = (Keyframe[])(object)array9; obj49.Curve = val11; tk2dSprite obj51 = ((Component)EX_Chest_West.transform.Find("Shadow")).gameObject.AddComponent(); ((tk2dBaseSprite)obj51).SetSprite(((tk2dBaseSprite)ExpandObjectDatabase.ChestBrownTwoItems.GetComponent()).Collection, "low_chest_shadow_001"); ((tk2dBaseSprite)obj51).HeightOffGround = -2f; GameObject gameObject40 = ((Component)EX_Chest_West.transform.Find("Lock")).gameObject; ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(gameObject40, EXChestCollection, "west_lock_idle_001", (PerpendicularState)0)).HeightOffGround = -0.5f; List spriteNameList30 = new List { "west_lock_idle_001", "west_lock_open_001", "west_lock_open_002", "west_lock_open_003", "west_lock_open_004", "west_lock_open_005", "west_lock_open_006", "west_lock_open_007" }; List spriteNameList31 = new List { "west_lock_idle_001", "west_lock_nokey_001", "west_lock_idle_001", "west_lock_nokey_002", "west_lock_idle_001", "west_lock_nokey_001", "west_lock_idle_001", "west_lock_nokey_002", "west_lock_idle_001", "west_lock_nokey_001", "west_lock_idle_001" }; List spriteNameList32 = new List { "west_lock_broke_001" }; ExpandUtility.GenerateSpriteAnimator(gameObject40); tk2dSpriteAnimator component29 = gameObject40.GetComponent(); ExpandUtility.AddAnimation(component29, EXChestCollection.GetComponent(), spriteNameList30, "west_lock_open", (WrapMode)2, 12); component29.Library.clips[0].frames[0].eventAudio = "Play_OBJ_chest_unlock_01"; component29.Library.clips[0].frames[0].triggerEvent = true; ExpandUtility.AddAnimation(component29, EXChestCollection.GetComponent(), spriteNameList31, "west_lock_nokey", (WrapMode)2, 12); component29.Library.clips[1].frames[0].eventAudio = "Play_OBJ_lock_jiggle_01"; component29.Library.clips[1].frames[0].triggerEvent = true; ExpandUtility.AddAnimation(component29, EXChestCollection.GetComponent(), spriteNameList32, "west_lock_break", (WrapMode)2, 12); component29.Library.clips[2].frames[0].eventAudio = "Play_WPN_gun_empty_01"; component29.Library.clips[2].frames[0].triggerEvent = true; Chest val47 = EX_Chest_West.AddComponent(); ((DungeonPlaceableBehaviour)val47).placeableWidth = 3; ((DungeonPlaceableBehaviour)val47).placeableHeight = 1; ((DungeonPlaceableBehaviour)val47).difficulty = (PlaceableDifficulty)0; ((DungeonPlaceableBehaviour)val47).isPassable = true; val47.ChestIdentifier = (SpecialChestIdentifier)0; val47.ChestType = (GeneralChestType)2; val47.forceContentIds = new List(0); val47.lootTable = ExpandObjectDatabase.ChestRed.GetComponent().lootTable; val47.breakertronNothingChance = 0.1f; val47.breakertronLootTable = ExpandObjectDatabase.ChestRed.GetComponent().breakertronLootTable; val47.prefersDungeonProcContents = true; val47.pickedUp = false; val47.spawnAnimName = "west_chest_appear"; val47.openAnimName = "west_chest_open"; val47.breakAnimName = "west_chest_break"; val47.overrideJunkId = -1; val47.VFX_PreSpawn = gameObject38; val47.VFX_GroundHit = gameObject39; val47.groundHitDelay = 0.73f; val47.spawnTransform = EX_Chest_West.transform.Find("SpawnTransform"); val11 = new AnimationCurve(); AnimationCurve obj52 = val11; Keyframe[] array10 = new Keyframe[2]; val12 = default(Keyframe); ((Keyframe)(ref val12)).time = 0f; ((Keyframe)(ref val12)).value = 0f; ((Keyframe)(ref val12)).inTangent = 3.562501f; ((Keyframe)(ref val12)).outTangent = 3.562501f; array10[0] = val12; val12 = default(Keyframe); ((Keyframe)(ref val12)).time = 1f; ((Keyframe)(ref val12)).value = 1.0125f; ((Keyframe)(ref val12)).inTangent = 0.09381f; ((Keyframe)(ref val12)).outTangent = 0.09381f; array10[1] = val12; obj52.keys = (Keyframe[])(object)array10; val11.preWrapMode = (WrapMode)0; val11.postWrapMode = (WrapMode)0; val47.spawnCurve = val11; val47.LockAnimator = component29; val47.LockOpenAnim = "west_lock_open"; val47.LockBreakAnim = "west_lock_break"; val47.LockNoKeyAnim = "west_lock_nokey"; val47.SubAnimators = (tk2dSpriteAnimator[])(object)new tk2dSpriteAnimator[0]; val47.IsLocked = true; val47.IsSealed = false; val47.IsOpen = false; val47.IsBroken = false; val47.AlwaysBroadcastsOpenEvent = false; val47.IsRainbowChest = false; val47.IsMirrorChest = false; val47.MimicGuid = string.Empty; val47.mimicOffset = IntVector2.Zero; val47.preMimicIdleAnim = string.Empty; val47.preMimicIdleAnimDelay = 3f; val47.overrideMimicChance = 0f; val47.MinimapIconPrefab = ExpandObjectDatabase.ChestRed.GetComponent().MinimapIconPrefab; MajorBreakable val48 = EX_Chest_West.AddComponent(); JsonUtility.FromJsonOverwrite(JsonUtility.ToJson((object)ExpandObjectDatabase.ChestBrownTwoItems.GetComponent()), (object)val48); val48.spriteNameToUseAtZeroHP = "chest_west_break_001"; ETGModConsole.ModdedChests.Add("EX:West", val47); EX_RedBalloon = expandSharedAssets1.LoadAsset("EX_RedBalloon"); ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(EX_RedBalloon, EXBalloonCollection, "redballoon_idle_001", (PerpendicularState)0)).HeightOffGround = 1f; EX_RedBalloon.AddComponent(); EX_GreenBalloon = expandSharedAssets1.LoadAsset("EX_GreenBalloon"); ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(EX_GreenBalloon, EXBalloonCollection, "greenballoon_idle_001", (PerpendicularState)0)).HeightOffGround = 2f; EX_GreenBalloon.AddComponent(); EX_BlueBalloon = expandSharedAssets1.LoadAsset("EX_BlueBalloon"); ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(EX_BlueBalloon, EXBalloonCollection, "blueballoon_idle_001", (PerpendicularState)0)).HeightOffGround = 1.25f; EX_BlueBalloon.AddComponent(); EX_PinkBalloon = expandSharedAssets1.LoadAsset("EX_PinkBalloon"); ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(EX_PinkBalloon, EXBalloonCollection, "pinkballoon_idle_001", (PerpendicularState)0)).HeightOffGround = 1.3f; EX_PinkBalloon.AddComponent(); EX_YellowBalloon = expandSharedAssets1.LoadAsset("EX_YellowBalloon"); ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(EX_YellowBalloon, EXBalloonCollection, "yellowballoon_idle_001", (PerpendicularState)0)).HeightOffGround = 1.45f; EX_YellowBalloon.AddComponent(); List spriteNameList33 = new List { "redballoon_pop_001", "redballoon_pop_002", "redballoon_pop_003" }; List spriteNameList34 = new List { "blueballoon_pop_001", "blueballoon_pop_002", "blueballoon_pop_003" }; List spriteNameList35 = new List { "greenballoon_pop_001", "greenballoon_pop_002", "greenballoon_pop_003" }; List spriteNameList36 = new List { "pinkballoon_pop_001", "pinkballoon_pop_002", "pinkballoon_pop_003" }; List spriteNameList37 = new List { "yellowballoon_pop_001", "yellowballoon_pop_002", "yellowballoon_pop_003" }; ExpandUtility.GenerateSpriteAnimator(EX_RedBalloon); ExpandUtility.GenerateSpriteAnimator(EX_BlueBalloon); ExpandUtility.GenerateSpriteAnimator(EX_GreenBalloon); ExpandUtility.GenerateSpriteAnimator(EX_PinkBalloon); ExpandUtility.GenerateSpriteAnimator(EX_YellowBalloon); ExpandUtility.AddAnimation(EX_RedBalloon.GetComponent(), EXBalloonCollection.GetComponent(), spriteNameList33, "pop", (WrapMode)2, 12); ExpandUtility.AddAnimation(EX_BlueBalloon.GetComponent(), EXBalloonCollection.GetComponent(), spriteNameList34, "pop", (WrapMode)2, 12); ExpandUtility.AddAnimation(EX_GreenBalloon.GetComponent(), EXBalloonCollection.GetComponent(), spriteNameList35, "pop", (WrapMode)2, 12); ExpandUtility.AddAnimation(EX_PinkBalloon.GetComponent(), EXBalloonCollection.GetComponent(), spriteNameList36, "pop", (WrapMode)2, 12); ExpandUtility.AddAnimation(EX_YellowBalloon.GetComponent(), EXBalloonCollection.GetComponent(), spriteNameList37, "pop", (WrapMode)2, 12); EXSpace_Grass_01 = expandSharedAssets1.LoadAsset("EXSpace_Grass_01"); tk2dSprite obj53 = SpriteSerializer.AddSpriteToObject(EXSpace_Grass_01, EXSpaceCollection, "spacegrass_01", (PerpendicularState)0); ((tk2dBaseSprite)obj53).HeightOffGround = -1f; ((tk2dBaseSprite)obj53).usesOverrideMaterial = true; ((BraveBehaviour)obj53).renderer.material.shader = ((BraveBehaviour)((Component)((Component)GameManager.Instance.RewardManager.A_Chest).gameObject.transform.Find("Shadow")).gameObject.GetComponent()).renderer.material.shader; EXSpace_Grass_02 = expandSharedAssets1.LoadAsset("EXSpace_Grass_02"); tk2dSprite obj54 = SpriteSerializer.AddSpriteToObject(EXSpace_Grass_02, EXSpaceCollection, "spacegrass_02", (PerpendicularState)0); ((tk2dBaseSprite)obj54).HeightOffGround = -1f; ((tk2dBaseSprite)obj54).usesOverrideMaterial = true; ((BraveBehaviour)obj54).renderer.material.shader = ((BraveBehaviour)((Component)((Component)GameManager.Instance.RewardManager.A_Chest).gameObject.transform.Find("Shadow")).gameObject.GetComponent()).renderer.material.shader; EXSpace_Grass_03 = expandSharedAssets1.LoadAsset("EXSpace_Grass_03"); tk2dSprite obj55 = SpriteSerializer.AddSpriteToObject(EXSpace_Grass_03, EXSpaceCollection, "spacegrass_03", (PerpendicularState)0); ((tk2dBaseSprite)obj55).HeightOffGround = -1f; ((tk2dBaseSprite)obj55).usesOverrideMaterial = true; ((BraveBehaviour)obj55).renderer.material.shader = ((BraveBehaviour)((Component)((Component)GameManager.Instance.RewardManager.A_Chest).gameObject.transform.Find("Shadow")).gameObject.GetComponent()).renderer.material.shader; EXSpace_Grass_04 = expandSharedAssets1.LoadAsset("EXSpace_Grass_04"); tk2dSprite obj56 = SpriteSerializer.AddSpriteToObject(EXSpace_Grass_04, EXSpaceCollection, "spacegrass_04", (PerpendicularState)0); ((tk2dBaseSprite)obj56).HeightOffGround = -1f; ((tk2dBaseSprite)obj56).usesOverrideMaterial = true; ((BraveBehaviour)obj56).renderer.material.shader = ((BraveBehaviour)((Component)((Component)GameManager.Instance.RewardManager.A_Chest).gameObject.transform.Find("Shadow")).gameObject.GetComponent()).renderer.material.shader; ChallengeManagerObject = braveResources.LoadAsset("_ChallengeManager"); ChallengeMegaManagerObject = braveResources.LoadAsset("_ChallengeMegaManager"); ChallengeManager component30 = ChallengeManagerObject.GetComponent(); ChallengeManager component31 = ChallengeMegaManagerObject.GetComponent(); RatsRevengChallenge = ((Component)component30.PossibleChallenges[8].challenge).GetComponent(); RatsRevengChallenge.FlameTrap = RatTrapPlacable; Challenge_BlobulinAmmo = ((Component)component30.PossibleChallenges[1].challenge).gameObject; Challenge_BlobulinAmmo.AddComponent(); ExpandBlobulinRancherChallengeComponent component32 = Challenge_BlobulinAmmo.GetComponent(); BlobulinAmmoChallengeModifier component33 = Challenge_BlobulinAmmo.GetComponent(); ((ChallengeModifier)component32).DisplayName = ((ChallengeModifier)component33).DisplayName; ((ChallengeModifier)component32).AlternateLanguageDisplayName = ((ChallengeModifier)component33).AtlasSpriteName; ((ChallengeModifier)component32).AtlasSpriteName = ((ChallengeModifier)component33).AtlasSpriteName; ((ChallengeModifier)component32).ValidInBossChambers = ((ChallengeModifier)component33).ValidInBossChambers; ((ChallengeModifier)component32).MutuallyExclusive = ((ChallengeModifier)component33).MutuallyExclusive; component32.CooldownBetweenSpawns = component33.CooldownBetweenSpawns; component32.SafeRadius = component33.SafeRadius; component32.SpawnTargetGuid = component33.SpawnTargetGuid; Object.Destroy((Object)(object)Challenge_BlobulinAmmo.GetComponent()); component30.PossibleChallenges[1].challenge = (ChallengeModifier)(object)Challenge_BlobulinAmmo.GetComponent(); component31.PossibleChallenges[1].challenge = (ChallengeModifier)(object)Challenge_BlobulinAmmo.GetComponent(); Challenge_BooRoom = ((Component)component30.PossibleChallenges[2].challenge).gameObject; Challenge_BooRoom.AddComponent(); BooRoomChallengeModifier component34 = Challenge_BooRoom.GetComponent(); ExpandBooRoomChallengeComponent component35 = Challenge_BooRoom.GetComponent(); ((ChallengeModifier)component35).DisplayName = ((ChallengeModifier)component34).DisplayName; ((ChallengeModifier)component35).AlternateLanguageDisplayName = ((ChallengeModifier)component34).AtlasSpriteName; ((ChallengeModifier)component35).AtlasSpriteName = ((ChallengeModifier)component34).AtlasSpriteName; ((ChallengeModifier)component35).ValidInBossChambers = ((ChallengeModifier)component34).ValidInBossChambers; ((ChallengeModifier)component35).MutuallyExclusive = ((ChallengeModifier)component34).MutuallyExclusive; component35.ConeAngle = component34.ConeAngle; component35.DarknessEffectShader = component34.DarknessEffectShader; Object.Destroy((Object)(object)Challenge_BooRoom.GetComponent()); component30.PossibleChallenges[2].challenge = (ChallengeModifier)(object)Challenge_BooRoom.GetComponent(); component31.PossibleChallenges[2].challenge = (ChallengeModifier)(object)Challenge_BooRoom.GetComponent(); Challenge_ZoneControl = ((Component)component30.PossibleChallenges[21].challenge).gameObject; Challenge_ZoneControl.AddComponent(); ZoneControlChallengeModifier component36 = Challenge_ZoneControl.GetComponent(); ExpandZoneControlChallengeComponent component37 = Challenge_ZoneControl.GetComponent(); ((ChallengeModifier)component37).DisplayName = ((ChallengeModifier)component36).DisplayName; ((ChallengeModifier)component37).AlternateLanguageDisplayName = ((ChallengeModifier)component36).AtlasSpriteName; ((ChallengeModifier)component37).AtlasSpriteName = ((ChallengeModifier)component36).AtlasSpriteName; ((ChallengeModifier)component37).ValidInBossChambers = ((ChallengeModifier)component36).ValidInBossChambers; ((ChallengeModifier)component37).MutuallyExclusive = ((ChallengeModifier)component36).MutuallyExclusive; component37.BoxPlaceable = component36.BoxPlaceable; component37.AuraRadius = component36.AuraRadius; component37.WinTimer = component36.WinTimer; component37.DecayScale = component36.DecayScale; component37.MinBoxes = component36.MinBoxes; component37.ExtraBoxAboveArea = component36.ExtraBoxAboveArea; component37.ExtraBoxEveryArea = component36.ExtraBoxEveryArea; Object.Destroy((Object)(object)Challenge_ZoneControl.GetComponent()); component30.PossibleChallenges[21].challenge = (ChallengeModifier)(object)Challenge_ZoneControl.GetComponent(); component31.PossibleChallenges[21].challenge = (ChallengeModifier)(object)Challenge_ZoneControl.GetComponent(); Challenge_ChaosMode = expandSharedAssets1.LoadAsset("ExpandChallenge_ChaosMode"); Challenge_ChaosMode.AddComponent(); ((ChallengeModifier)Challenge_ChaosMode.GetComponent()).MutuallyExclusive = new List { component31.PossibleChallenges[3].challenge, component31.PossibleChallenges[4].challenge, component31.PossibleChallenges[10].challenge }; component30.PossibleChallenges.Add(new ChallengeDataEntry { Annotation = "Apache Thunder's Chaos Mode in a room!", challenge = (ChallengeModifier)(object)Challenge_ChaosMode.GetComponent(), excludedTilesets = (ValidTilesets)0, tilesetsWithCustomValues = new List(0), CustomValues = new List(0) }); component31.PossibleChallenges.Add(new ChallengeDataEntry { Annotation = "Apache Thunder's Chaos Mode in a room!", challenge = (ChallengeModifier)(object)Challenge_ChaosMode.GetComponent(), excludedTilesets = (ValidTilesets)0, tilesetsWithCustomValues = new List(0), CustomValues = new List(0) }); Challenge_TripleTrouble = expandSharedAssets1.LoadAsset("ExpandChallenge_TripleTrouble"); Challenge_TripleTrouble.AddComponent(); Challenge_KingsMen = expandSharedAssets1.LoadAsset("ExpandChallenge_KingsMen"); Challenge_KingsMen.AddComponent(); List bossChallenges = component30.BossChallenges; BossChallengeData val49 = new BossChallengeData(); val49.Annotation = "Trigger Twin Triple Trouble!"; val49.BossGuids = new string[2] { "ea40fcc863d34b0088f490f4e57f8913", "c00390483f394a849c36143eb878998f" }; val49.Modifiers = (ChallengeModifier[])(object)new ChallengeModifier[1] { Challenge_TripleTrouble.GetComponent() }; val49.NumToSelect = 1; bossChallenges.Add(val49); List bossChallenges2 = component31.BossChallenges; val49 = new BossChallengeData(); val49.Annotation = "Trigger Twin Triple Trouble!"; val49.BossGuids = new string[2] { "ea40fcc863d34b0088f490f4e57f8913", "c00390483f394a849c36143eb878998f" }; val49.Modifiers = (ChallengeModifier[])(object)new ChallengeModifier[1] { Challenge_TripleTrouble.GetComponent() }; val49.NumToSelect = 1; bossChallenges2.Add(val49); List bossChallenges3 = component30.BossChallenges; val49 = new BossChallengeData(); val49.Annotation = "All the King's Men"; val49.BossGuids = new string[2] { "ffca09398635467da3b1f4a54bcfda80", "5729c8b5ffa7415bb3d01205663a33ef" }; val49.Modifiers = (ChallengeModifier[])(object)new ChallengeModifier[1] { Challenge_KingsMen.GetComponent() }; val49.NumToSelect = 1; bossChallenges3.Add(val49); List bossChallenges4 = component31.BossChallenges; val49 = new BossChallengeData(); val49.Annotation = "All the King's Men"; val49.BossGuids = new string[2] { "ffca09398635467da3b1f4a54bcfda80", "5729c8b5ffa7415bb3d01205663a33ef" }; val49.Modifiers = (ChallengeModifier[])(object)new ChallengeModifier[1] { Challenge_KingsMen.GetComponent() }; val49.NumToSelect = 1; bossChallenges4.Add(val49); winchesterrooms = list5.ToArray(); ExpandSecretDoorPrefabs.InitPrefabs(expandSharedAssets1); PickupObject byId = PickupObjectDatabase.GetById(647); ChamberGun = ((Component)((byId is Gun) ? byId : null)).gameObject; if (Object.op_Implicit((Object)(object)ChamberGun.gameObject.GetComponent())) { Object.Destroy((Object)(object)ChamberGun.gameObject.GetComponent()); ChamberGun.gameObject.AddComponent(); } EXFoyerWarpDoor = expandSharedAssets1.LoadAsset("EXFoyerWarpDoor"); ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(EXFoyerWarpDoor, EXFoyerCollection, "foyerdoor_open_01", (PerpendicularState)0)).HeightOffGround = -2.25f; tk2dSpriteAnimator targetAnimator = ExpandUtility.GenerateSpriteAnimator(EXFoyerWarpDoor); List spriteNameList38 = new List { "foyerdoor_open_01", "foyerdoor_open_02", "foyerdoor_open_03", "foyerdoor_open_04", "foyerdoor_open_05", "foyerdoor_open_06", "foyerdoor_open_07", "foyerdoor_open_08", "foyerdoor_open_09", "foyerdoor_open_10", "foyerdoor_open_11", "foyerdoor_open_12", "foyerdoor_open_13" }; List spriteNameList39 = new List { "foyerdoor_open_13", "foyerdoor_open_12", "foyerdoor_open_11", "foyerdoor_open_10", "foyerdoor_open_09", "foyerdoor_open_08", "foyerdoor_open_07", "foyerdoor_open_06", "foyerdoor_open_05", "foyerdoor_open_04", "foyerdoor_open_03", "foyerdoor_open_02", "foyerdoor_open_01" }; ExpandUtility.AddAnimation(targetAnimator, EXFoyerCollection.GetComponent(), spriteNameList38, "open", (WrapMode)2, 12); ExpandUtility.AddAnimation(targetAnimator, EXFoyerCollection.GetComponent(), spriteNameList39, "close", (WrapMode)2, 12); ExpandUtility.GenerateOrAddToRigidBody(EXFoyerWarpDoor, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(17, 24), (IntVector2?)null); ExpandUtility.GenerateOrAddToRigidBody(EXFoyerWarpDoor, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(17, 24), (IntVector2?)new IntVector2(48, 0)); ExpandUtility.GenerateOrAddToRigidBody(EXFoyerWarpDoor, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(16, 8), (IntVector2?)new IntVector2(0, 24)); ExpandUtility.GenerateOrAddToRigidBody(EXFoyerWarpDoor, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(16, 8), (IntVector2?)new IntVector2(48, 24)); ExpandUtility.GenerateOrAddToRigidBody(EXFoyerWarpDoor, (CollisionLayer)16, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(31, 13), (IntVector2?)new IntVector2(17, 18)); EXFoyerWarpDoor.GetComponent().HasTriggerCollisions = true; EXFoyerWarpDoor.GetComponent().PixelColliders[4].IsTrigger = true; EXFoyerWarpDoor.GetComponent().PixelColliders[0].Enabled = false; EXFoyerWarpDoor.GetComponent().PixelColliders[1].Enabled = false; EXFoyerWarpDoor.GetComponent().PixelColliders[2].Enabled = false; EXFoyerWarpDoor.GetComponent().PixelColliders[3].Enabled = false; EXFoyerWarpDoor.GetComponent().PixelColliders[4].Enabled = false; EXFoyerTrigger = expandSharedAssets1.LoadAsset("EXFoyerTrigger"); ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(EXFoyerTrigger, EXFoyerCollection, "floortrigger_idle_01", (PerpendicularState)2)).HeightOffGround = -1.74f; EXCasinoHub = expandSharedAssets1.LoadAsset("EXCasino_Hub"); EXPunchoutArcadeCoin = expandSharedAssets1.LoadAsset("EXPunchoutArcadeCoin"); EXCasino_HatRack = expandSharedAssets1.LoadAsset("EXCasino_HatRack"); EXCasino_Litter_Cans = expandSharedAssets1.LoadAsset("EXCasino_Litter_Cans"); EXCasino_Litter_Paper = expandSharedAssets1.LoadAsset("EXCasino_Litter_Paper"); GameObject gameObject41 = ((Component)EXCasinoHub.transform.Find("Room_Prefab")).gameObject; GameObject gameObject42 = ((Component)gameObject41.transform.Find("casino_hub_floor")).gameObject; GameObject gameObject43 = ((Component)gameObject41.transform.Find("casino_hub_backwall")).gameObject; GameObject gameObject44 = ((Component)gameObject41.transform.Find("casino_hub_border")).gameObject; GameObject gameObject45 = ((Component)EXCasinoHub.transform.Find("casino_poker_table_01")).gameObject; GameObject gameObject46 = ((Component)EXCasinoHub.transform.Find("casino_poker_table_02")).gameObject; GameObject gameObject47 = ((Component)gameObject45.transform.Find("tableprops")).gameObject; GameObject gameObject48 = ((Component)gameObject46.transform.Find("tableprops")).gameObject; GameObject gameObject49 = ((Component)gameObject45.transform.Find("shadow")).gameObject; GameObject gameObject50 = ((Component)gameObject46.transform.Find("shadow")).gameObject; GameObject gameObject51 = ((Component)EXCasinoHub.transform.Find("casino_carpet_01")).gameObject; GameObject gameObject52 = ((Component)EXCasinoHub.transform.Find("casino_carpet_02")).gameObject; SpriteSerializer.AddSpriteToObject(EXPunchoutArcadeCoin, EXFoyerCollection, "punchout_coin_left", (PerpendicularState)0); ExpandUtility.DuplicateComponent(EXPunchoutArcadeCoin.AddComponent(), MetalGearRatPrefab.GetComponent().PunchoutMinigamePrefab.GetComponent().Opponent.DroppedItemPrefab.GetComponent()); ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(gameObject42, EXFoyerCollection, "casino_hub_floor_001", (PerpendicularState)2)).HeightOffGround = -1.75f; ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(gameObject43, EXFoyerCollection, "casino_hub_backwall_001", (PerpendicularState)0)).HeightOffGround = -1.73f; ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(gameObject44, EXFoyerCollection, "casino_hub_border_001", (PerpendicularState)2)).HeightOffGround = 4f; tk2dSprite val50 = SpriteSerializer.AddSpriteToObject(gameObject51, EXFoyerCollection, "casino_carpet_001", (PerpendicularState)2); tk2dSprite obj57 = SpriteSerializer.AddSpriteToObject(gameObject52, EXFoyerCollection, "casino_carpet_001", (PerpendicularState)2); ((tk2dBaseSprite)val50).HeightOffGround = -1.74f; ((tk2dBaseSprite)obj57).HeightOffGround = -1.74f; tk2dSprite val51 = SpriteSerializer.AddSpriteToObject(gameObject45, EXFoyerCollection, "casino_poker_table_001", (PerpendicularState)2); tk2dSprite val52 = SpriteSerializer.AddSpriteToObject(gameObject46, EXFoyerCollection, "casino_poker_table_001", (PerpendicularState)2); tk2dSprite val53 = SpriteSerializer.AddSpriteToObject(gameObject47, EXFoyerCollection, "casino_poker_table_props_002", (PerpendicularState)2); tk2dSprite val54 = SpriteSerializer.AddSpriteToObject(gameObject48, EXFoyerCollection, "casino_poker_table_props_001", (PerpendicularState)2); tk2dSprite val55 = SpriteSerializer.AddSpriteToObject(gameObject49, EXFoyerCollection, "casino_poker_table_shadow", (PerpendicularState)2); tk2dSprite obj58 = SpriteSerializer.AddSpriteToObject(gameObject50, EXFoyerCollection, "casino_poker_table_shadow", (PerpendicularState)2); ((tk2dBaseSprite)val51).HeightOffGround = 0f; ((tk2dBaseSprite)val52).HeightOffGround = 0f; ((tk2dBaseSprite)val53).HeightOffGround = 0.2f; ((tk2dBaseSprite)val54).HeightOffGround = 0.2f; ((tk2dBaseSprite)val55).HeightOffGround = -1.73f; ((tk2dBaseSprite)obj58).HeightOffGround = -1.73f; ((tk2dBaseSprite)val55).usesOverrideMaterial = true; ((tk2dBaseSprite)obj58).usesOverrideMaterial = true; ((BraveBehaviour)val55).renderer.material.shader = ((BraveBehaviour)((Component)((Component)GameManager.Instance.RewardManager.A_Chest).gameObject.transform.Find("Shadow")).gameObject.GetComponent()).renderer.material.shader; ((BraveBehaviour)obj58).renderer.material.shader = ((BraveBehaviour)val55).renderer.material.shader; tk2dSprite val56 = SpriteSerializer.AddSpriteToObject(EXCasino_HatRack, EXFoyerCollection, "casino_hatrack_001", (PerpendicularState)0); tk2dSprite val57 = SpriteSerializer.AddSpriteToObject(EXCasino_Litter_Cans, EXFoyerCollection, "casino_litter_cans_001", (PerpendicularState)2); tk2dSprite obj59 = SpriteSerializer.AddSpriteToObject(EXCasino_Litter_Paper, EXFoyerCollection, "casino_litter_paper_001", (PerpendicularState)2); ((tk2dBaseSprite)val56).HeightOffGround = -1.25f; ((tk2dBaseSprite)val57).HeightOffGround = -1.7f; ((tk2dBaseSprite)obj59).HeightOffGround = -1.7f; ((tk2dBaseSprite)val56).usesOverrideMaterial = true; ((BraveBehaviour)val56).renderer.material.shader = ((BraveBehaviour)((Component)((Component)GameManager.Instance.RewardManager.A_Chest).gameObject.transform.Find("Shadow")).gameObject.GetComponent()).renderer.material.shader; ((tk2dBaseSprite)val57).usesOverrideMaterial = true; ((BraveBehaviour)val57).renderer.material.shader = ((BraveBehaviour)((Component)((Component)GameManager.Instance.RewardManager.A_Chest).gameObject.transform.Find("Shadow")).gameObject.GetComponent()).renderer.material.shader; ((tk2dBaseSprite)obj59).usesOverrideMaterial = true; ((BraveBehaviour)obj59).renderer.material.shader = ((BraveBehaviour)((Component)((Component)GameManager.Instance.RewardManager.A_Chest).gameObject.transform.Find("Shadow")).gameObject.GetComponent()).renderer.material.shader; ExpandUtility.GenerateOrAddToRigidBody(EXCasinoHub, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(16, 304), (IntVector2?)new IntVector2(-10, -32)); ExpandUtility.GenerateOrAddToRigidBody(EXCasinoHub, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(16, 304), (IntVector2?)new IntVector2(262, -32)); ExpandUtility.GenerateOrAddToRigidBody(EXCasinoHub, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(111, 48), (IntVector2?)new IntVector2(151, -32)); ExpandUtility.GenerateOrAddToRigidBody(EXCasinoHub, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(111, 48), (IntVector2?)new IntVector2(6, -32)); ExpandUtility.GenerateOrAddToRigidBody(EXCasinoHub, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(256, 16), (IntVector2?)new IntVector2(6, 256)); ExpandUtility.GenerateOrAddToRigidBody(EXCasino_HatRack, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(12, 13), (IntVector2?)new IntVector2(5, 2)); ExpandUtility.GenerateOrAddToRigidBody(EXCasino_HatRack, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(12, 9), (IntVector2?)new IntVector2(5, 15)); ExpandUtility.GenerateOrAddToRigidBody(gameObject45, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(41, 45), (IntVector2?)new IntVector2(2, 0)); ExpandUtility.GenerateOrAddToRigidBody(gameObject46, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(41, 45), (IntVector2?)new IntVector2(2, 0)); GameObject gameObject53 = ((Component)EXCasinoHub.transform.Find("casinogame_punchout")).gameObject; ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(gameObject53, EXFoyerCollection, "cabinet_covered_001", (PerpendicularState)0)).HeightOffGround = -1.65f; tk2dSprite obj60 = SpriteSerializer.AddSpriteToObject(((Component)gameObject53.transform.Find("shadow")).gameObject, EXFoyerCollection, "cabinet_shadow_001", (PerpendicularState)2); ((tk2dBaseSprite)obj60).HeightOffGround = -1.7f; ((tk2dBaseSprite)obj60).usesOverrideMaterial = true; ((BraveBehaviour)obj60).renderer.material.shader = ((BraveBehaviour)((Component)((Component)GameManager.Instance.RewardManager.A_Chest).gameObject.transform.Find("Shadow")).gameObject.GetComponent()).renderer.material.shader; ExpandUtility.GenerateOrAddToRigidBody(gameObject53, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(27, 15), (IntVector2?)new IntVector2(4, 0)); ExpandUtility.GenerateOrAddToRigidBody(gameObject53, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(23, 9), (IntVector2?)new IntVector2(6, 15)); List spriteNameList40 = new List { "cabinet_idle_001", "cabinet_idle_002", "cabinet_idle_003", "cabinet_idle_004", "cabinet_idle_005", "cabinet_idle_006", "cabinet_idle_007", "cabinet_idle_008", "cabinet_idle_009", "cabinet_idle_010", "cabinet_idle_011", "cabinet_idle_012" }; List spriteNameList41 = new List { "cabinet_sleep_001", "cabinet_sleep_002", "cabinet_sleep_003", "cabinet_sleep_004", "cabinet_sleep_005", "cabinet_sleep_006", "cabinet_sleep_007", "cabinet_sleep_008", "cabinet_sleep_009", "cabinet_sleep_010", "cabinet_sleep_011", "cabinet_sleep_012", "cabinet_sleep_013", "cabinet_sleep_014" }; List spriteNameList42 = new List { "cabinet_interact_001", "cabinet_interact_002", "cabinet_interact_003", "cabinet_interact_004" }; List spriteNameList43 = new List { "cabinet_fight_001", "cabinet_fight_002", "cabinet_fight_003", "cabinet_fight_004", "cabinet_fight_005", "cabinet_fight_006", "cabinet_fight_007", "cabinet_fight_008", "cabinet_fight_009", "cabinet_fight_010", "cabinet_fight_011", "cabinet_fight_012", "cabinet_fight_013", "cabinet_fight_014" }; List spriteNameList44 = new List { "cabinet_fight_014", "cabinet_fight_014" }; tk2dSpriteAnimator targetAnimator2 = ExpandUtility.GenerateSpriteAnimator(gameObject53, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true); ExpandUtility.AddAnimation(targetAnimator2, EXFoyerCollection.GetComponent(), spriteNameList40, "idle", (WrapMode)0, 10); ExpandUtility.AddAnimation(targetAnimator2, EXFoyerCollection.GetComponent(), spriteNameList42, "interact", (WrapMode)2, 6); ExpandUtility.AddAnimation(targetAnimator2, EXFoyerCollection.GetComponent(), spriteNameList43, "fight", (WrapMode)2, 10); ExpandUtility.AddAnimation(targetAnimator2, EXFoyerCollection.GetComponent(), spriteNameList44, "idle2", (WrapMode)0, 1); ExpandUtility.AddAnimation(targetAnimator2, EXFoyerCollection.GetComponent(), spriteNameList41, "sleep", (WrapMode)0, 10); EXArcadeGame_Prop = expandSharedAssets1.LoadAsset("EXArcadeGame_Prop"); GameObject gameObject54 = ((Component)EXArcadeGame_Prop.transform.Find("shadow")).gameObject; tk2dSprite val58 = SpriteSerializer.AddSpriteToObject(EXArcadeGame_Prop, EXFoyerCollection, "cabinet_decorative_001", (PerpendicularState)0); tk2dSprite obj61 = SpriteSerializer.AddSpriteToObject(gameObject54, EXFoyerCollection, "cabinet_shadow_001", (PerpendicularState)2); ((tk2dBaseSprite)val58).HeightOffGround = -1.65f; ((tk2dBaseSprite)obj61).HeightOffGround = -1.7f; ((tk2dBaseSprite)obj61).usesOverrideMaterial = true; ((BraveBehaviour)obj61).renderer.material.shader = ((BraveBehaviour)((Component)((Component)GameManager.Instance.RewardManager.A_Chest).gameObject.transform.Find("Shadow")).gameObject.GetComponent()).renderer.material.shader; ExpandUtility.GenerateOrAddToRigidBody(EXArcadeGame_Prop, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(27, 15), (IntVector2?)new IntVector2(4, 0)); ExpandUtility.GenerateOrAddToRigidBody(EXArcadeGame_Prop, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(23, 9), (IntVector2?)new IntVector2(6, 15)); EXArcadeGame_Prop_Depressed = expandSharedAssets1.LoadAsset("EXArcadeGame_Prop_Depressed"); GameObject gameObject55 = ((Component)EXArcadeGame_Prop.transform.Find("shadow")).gameObject; tk2dSprite val59 = SpriteSerializer.AddSpriteToObject(EXArcadeGame_Prop_Depressed, EXFoyerCollection, "cabinet_decorative_001", (PerpendicularState)0); tk2dSprite obj62 = SpriteSerializer.AddSpriteToObject(gameObject55, EXFoyerCollection, "cabinet_shadow_001", (PerpendicularState)2); ((tk2dBaseSprite)val59).HeightOffGround = -1.65f; ((tk2dBaseSprite)obj62).HeightOffGround = -1.7f; ((tk2dBaseSprite)obj62).usesOverrideMaterial = true; ((BraveBehaviour)obj62).renderer.material.shader = ((BraveBehaviour)((Component)((Component)GameManager.Instance.RewardManager.A_Chest).gameObject.transform.Find("Shadow")).gameObject.GetComponent()).renderer.material.shader; ExpandUtility.GenerateOrAddToRigidBody(EXArcadeGame_Prop_Depressed, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(27, 15), (IntVector2?)new IntVector2(4, 0)); ExpandUtility.GenerateOrAddToRigidBody(EXArcadeGame_Prop_Depressed, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(23, 9), (IntVector2?)new IntVector2(6, 15)); List spriteNameList45 = new List { "depressedcabinet_blink_001", "depressedcabinet_blink_002", "depressedcabinet_blink_003" }; List spriteNameList46 = new List { "depressedcabinet_idle_001", "depressedcabinet_idle_001" }; List spriteNameList47 = new List { "depressedcabinet_sigh_001", "depressedcabinet_sigh_002", "depressedcabinet_sigh_003", "depressedcabinet_sigh_004", "depressedcabinet_sigh_005", "depressedcabinet_sigh_006", "depressedcabinet_sigh_007" }; tk2dSpriteAnimator targetAnimator3 = ExpandUtility.GenerateSpriteAnimator(EXArcadeGame_Prop_Depressed, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true); ExpandUtility.AddAnimation(targetAnimator3, EXFoyerCollection.GetComponent(), spriteNameList46, "idle", (WrapMode)0, 1); ExpandUtility.AddAnimation(targetAnimator3, EXFoyerCollection.GetComponent(), spriteNameList45, "blink", (WrapMode)2, 8); ExpandUtility.AddAnimation(targetAnimator3, EXFoyerCollection.GetComponent(), spriteNameList47, "sigh", (WrapMode)2, 10); GameObject gameObject56 = ((Component)EXCasinoHub.transform.Find("casinogame_gunball")).gameObject; ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(gameObject56, EXFoyerCollection, "gunball_idle_001", (PerpendicularState)0)).HeightOffGround = -1.6f; tk2dSprite obj63 = SpriteSerializer.AddSpriteToObject(((Component)gameObject56.transform.Find("shadow")).gameObject, EXFoyerCollection, "gunball_shadow_001", (PerpendicularState)2); ((tk2dBaseSprite)obj63).HeightOffGround = -1.7f; ((tk2dBaseSprite)obj63).usesOverrideMaterial = true; ((BraveBehaviour)obj63).renderer.material.shader = ((BraveBehaviour)((Component)((Component)GameManager.Instance.RewardManager.A_Chest).gameObject.transform.Find("Shadow")).gameObject.GetComponent()).renderer.material.shader; ExpandUtility.GenerateOrAddToRigidBody(gameObject56, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(27, 17), (IntVector2?)new IntVector2(2, 0)); ExpandUtility.GenerateOrAddToRigidBody(gameObject56, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(27, 13), (IntVector2?)new IntVector2(2, 17)); List spriteNameList48 = new List { "gunball_idle_001", "gunball_idle_002", "gunball_idle_003", "gunball_idle_004" }; List spriteNameList49 = new List { "gunball_interact_001", "gunball_interact_002", "gunball_interact_003", "gunball_interact_004", "gunball_interact_005", "gunball_interact_006" }; List spriteNameList50 = new List { "gunball_use_001", "gunball_use_002", "gunball_use_003", "gunball_use_004", "gunball_use_005", "gunball_use_006", "gunball_use_007", "gunball_use_008", "gunball_use_009", "gunball_use_010", "gunball_use_011", "gunball_use_012", "gunball_use_013", "gunball_use_014", "gunball_use_015", "gunball_use_016", "gunball_use_017", "gunball_use_018", "gunball_use_019", "gunball_use_020", "gunball_use_021", "gunball_use_022", "gunball_use_023", "gunball_use_024", "gunball_use_025", "gunball_use_026", "gunball_use_027", "gunball_use_028" }; tk2dSpriteAnimator targetAnimator4 = ExpandUtility.GenerateSpriteAnimator(gameObject56, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true); ExpandUtility.AddAnimation(targetAnimator4, EXFoyerCollection.GetComponent(), spriteNameList48, "idle", (WrapMode)0, 10); ExpandUtility.AddAnimation(targetAnimator4, EXFoyerCollection.GetComponent(), spriteNameList49, "interact", (WrapMode)2, 6); tk2dSpriteAnimationClip obj64 = ExpandUtility.AddAnimation(targetAnimator4, EXFoyerCollection.GetComponent(), spriteNameList50, "spin", (WrapMode)2, 10); obj64.frames[23].triggerEvent = true; obj64.frames[23].eventInfo = "itempop"; EXRatDoor_4xLocks = expandSharedAssets1.LoadAsset("EXRatJailDoor4x"); ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(EXRatDoor_4xLocks, ((tk2dBaseSprite)((Component)orLoadByName5.PatternSettings.flows[0].AllNodes[13].overrideExactRoom.placedObjects[1].nonenemyBehaviour).gameObject.GetComponent()).Collection, ((tk2dBaseSprite)((Component)orLoadByName5.PatternSettings.flows[0].AllNodes[13].overrideExactRoom.placedObjects[1].nonenemyBehaviour).gameObject.GetComponent()).spriteId, (PerpendicularState)1)).HeightOffGround = -1.5f; ExpandUtility.GenerateSpriteAnimator(EXRatDoor_4xLocks, ((Component)orLoadByName5.PatternSettings.flows[0].AllNodes[13].overrideExactRoom.placedObjects[1].nonenemyBehaviour).gameObject.GetComponent().Library, 143); SpeculativeRigidbody obj65 = EXRatDoor_4xLocks.AddComponent(); ExpandUtility.DuplicateComponent(obj65, ((Component)orLoadByName5.PatternSettings.flows[0].AllNodes[13].overrideExactRoom.placedObjects[1].nonenemyBehaviour).gameObject.GetComponent()); obj65.PixelColliders = new List(); ExpandUtility.GenerateOrAddToRigidBody(EXRatDoor_4xLocks, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: true, CollideWithOthers: true, CanBeCarried: false, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 16), (IntVector2?)IntVector2.Zero); ExpandUtility.GenerateOrAddToRigidBody(EXRatDoor_4xLocks, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: true, CollideWithOthers: true, CanBeCarried: false, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 16), (IntVector2?)new IntVector2(0, 16)); for (int l = 0; l < 4; l++) { GameObject gameObject57 = ((Component)EXRatDoor_4xLocks.transform.Find("Lock" + l)).gameObject; tk2dSprite val60 = SpriteSerializer.AddSpriteToObject(gameObject57, ((tk2dBaseSprite)((Component)((Component)orLoadByName5.PatternSettings.flows[0].AllNodes[13].overrideExactRoom.placedObjects[1].nonenemyBehaviour).gameObject.transform.Find("Lock")).gameObject.GetComponent()).Collection, ((tk2dBaseSprite)((Component)((Component)orLoadByName5.PatternSettings.flows[0].AllNodes[13].overrideExactRoom.placedObjects[1].nonenemyBehaviour).gameObject.transform.Find("Lock")).gameObject.GetComponent()).spriteId, (PerpendicularState)1); if (l == 0 || l == 2) { ((tk2dBaseSprite)val60).HeightOffGround = 1f; } else { ((tk2dBaseSprite)val60).HeightOffGround = -1.5f; } ExpandUtility.GenerateSpriteAnimator(gameObject57, ((Component)((Component)orLoadByName5.PatternSettings.flows[0].AllNodes[13].overrideExactRoom.placedObjects[1].nonenemyBehaviour).gameObject.transform.Find("Lock")).gameObject.GetComponent().Library, 53, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true); } EXVoidController = expandSharedAssets1.LoadAsset("EXVoidController"); EXVoidRoomAmbience = expandSharedAssets1.LoadAsset("EXVoidRoomAmbience"); EXDangerRoomIcon = expandSharedAssets1.LoadAsset("EXDangerRoomIcon"); SpriteSerializer.AddSpriteToObject(EXDangerRoomIcon, EXBackroomsCollection, "Danger_MinimapIcon", (PerpendicularState)2); EXBackroomsWWIcon = expandSharedAssets1.LoadAsset("EXBackroomsWWIcon"); SpriteSerializer.AddSpriteToObject(EXBackroomsWWIcon, EXBackroomsCollection, "WarpWing_MinimapIcon", (PerpendicularState)2); EXWarpDoor_Backrooms = expandSharedAssets1.LoadAsset("WarpDoor_Backrooms"); SpriteSerializer.AddSpriteToObject(EXWarpDoor_Backrooms, EXBackroomsCollection, "backrooms_warp_wing_001", (PerpendicularState)1, -1f); ExpandUtility.GenerateOrAddToRigidBody(EXWarpDoor_Backrooms, (CollisionLayer)16, (PixelColliderGeneration)0, collideWithTileMap: true, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: true, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(32, 32), (IntVector2?)new IntVector2(9, 2)); ExpandUtility.GenerateOrAddToRigidBody(EXWarpDoor_Backrooms, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: true, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(8, 32), (IntVector2?)new IntVector2(1, 0)); ExpandUtility.GenerateOrAddToRigidBody(EXWarpDoor_Backrooms, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: true, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(8, 32), (IntVector2?)new IntVector2(41, 0)); WarpPointHandler obj66 = EXWarpDoor_Backrooms.AddComponent(); obj66.warpTarget = (WarpTargetType)0; obj66.OnlyReceiver = false; obj66.OptionalCover = null; obj66.AdditionalSpawnOffset = Vector2.zero; PlacedWallDecorator obj67 = EXWarpDoor_Backrooms.AddComponent(); obj67.wallClearanceXStart = 0; obj67.wallClearanceYStart = -2; obj67.wallClearanceWidth = 3; obj67.wallClearanceHeight = 5; obj67.ignoreWallDrawing = false; obj67.ignoresBorders = false; EXBackRoomsCarpetStain_Small = expandSharedAssets1.LoadAsset("EXBackRoomsCarpetStain_Small"); ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(EXBackRoomsCarpetStain_Small, EXBackroomsCollection, "CarpetStain_01", (PerpendicularState)2)).HeightOffGround = -1.7f; EXBackRoomsCarpetStain_Small.AddComponent().SpriteList = ExpandLists.EXSmallStainList; EXBackRoomsCarpetStain_Medium = expandSharedAssets1.LoadAsset("EXBackRoomsCarpetStain_Medium"); ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(EXBackRoomsCarpetStain_Medium, EXBackroomsCollection, "CarpetStainMedium_01", (PerpendicularState)2)).HeightOffGround = -1.7f; EXBackRoomsCarpetStain_Medium.AddComponent().SpriteList = ExpandLists.EXMediumStainList; EXBackRoomsCarpetStain_Large = expandSharedAssets1.LoadAsset("EXBackRoomsCarpetStain_Large"); ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(EXBackRoomsCarpetStain_Large, EXBackroomsCollection, "CarpetStainLarge_01", (PerpendicularState)2)).HeightOffGround = -1.7f; EXBackRoomsCarpetStain_Large.AddComponent().SpriteList = ExpandLists.EXLargeStainList; EXEntitySpawner = expandSharedAssets1.LoadAsset("EXEntitySpawner"); GameObject gameObject58 = ((Component)EXEntitySpawner.transform.Find("carpetstain")).gameObject; ((tk2dBaseSprite)SpriteSerializer.AddSpriteToObject(gameObject58, EXBackroomsCollection, "CarpetStainMedium_01", (PerpendicularState)2)).HeightOffGround = -1.7f; gameObject58.AddComponent().SpriteList = ExpandLists.EXMediumStainList; EXBacteriaGoop = ExpandUtility.DuplicateGoop(sharedAssets.LoadAsset("Poison Goop"), "Bacteria Goop"); ((GameActorEffect)EXBacteriaGoop.SpeedModifierEffect).AppliesTint = true; ((GameActorEffect)EXBacteriaGoop.SpeedModifierEffect).AppliesDeathTint = true; ((GameActorEffect)EXBacteriaGoop.SpeedModifierEffect).TintColor = new Color(0f, 0f, 0f, 1f); ((GameActorEffect)EXBacteriaGoop.SpeedModifierEffect).DeathTintColor = new Color(0f, 0f, 0f, 1f); ((GameActorEffect)EXBacteriaGoop.HealthModifierEffect).AppliesTint = false; ((GameActorEffect)EXBacteriaGoop.HealthModifierEffect).AppliesDeathTint = false; ((GameActorEffect)EXBacteriaGoop.HealthModifierEffect).AffectsEnemies = false; EXBacteriaGoop.usesAmbientGoopFX = false; EXBacteriaGoop.usesAcidAudio = false; EXBacteriaGoop.ambientGoopFX = new VFXPool { type = (VFXPoolType)0, effects = (VFXComplex[])(object)new VFXComplex[0] }; EXBacteriaGoop.usesWaterVfx = false; EXBacteriaGoop.usesOverrideOpaqueness = true; EXBacteriaGoop.overrideOpaqueness = 0.75f; EXBacteriaGoop.baseColor32 = Color32.op_Implicit(new Color(0.45f, 0.45f, 0.45f, 1f)); EXBacteriaGoop.fadeColor32 = Color32.op_Implicit(new Color(0.45f, 0.45f, 0.45f, 0.5f)); EXBacteriaGoop.fireColor32 = Color32.op_Implicit(new Color(0.45f, 0.45f, 0.45f, 1f)); EXBacteriaGoop.worldTexture = BacterialGoopWorldTexture; EXBacteriaGoop.usesWorldTextureByDefault = true; EXBacteriaGoop.lifespan = 12f; EXBacteriaGoop.AppliesSpeedModifierContinuously = true; ((GameActorEffect)EXBacteriaGoop.SpeedModifierEffect).AffectsEnemies = false; ((GameActorEffect)EXBacteriaGoop.SpeedModifierEffect).AffectsPlayers = true; ((GameActorEffect)EXBacteriaGoop.SpeedModifierEffect).effectIdentifier = "bacteria goop speed"; ((GameActorEffect)EXBacteriaGoop.SpeedModifierEffect).duration = 0.1f; EXBacteriaGoop.SpeedModifierEffect.OnlyAffectPlayerWhenGrounded = true; EXPoisbulordGrate = expandSharedAssets1.LoadAsset("PoisbulordGrate"); ExpandUtility.DuplicateComponent(EXPoisbulordGrate.AddComponent(), ExpandObjectDatabase.BlobulordGrate.GetComponent()); DungeonPlaceableBehaviour obj68 = EXPoisbulordGrate.AddComponent(); obj68.placeableWidth = 6; obj68.placeableHeight = 5; obj68.difficulty = (PlaceableDifficulty)0; obj68.isPassable = true; tk2dSprite obj69 = SpriteSerializer.AddSpriteToObject(((Component)EXPoisbulordGrate.transform.Find("frame")).gameObject, EXFutureCollection, "poisbulord_sewer_grateframe_001", (PerpendicularState)2, -1f); ExpandUtility.AddAnimation(spriteNameList: new List { "poisbulord_sewer_grateframe_001", "poisbulord_sewer_grateframe_002", "poisbulord_sewer_grateframe_003", "poisbulord_sewer_grateframe_004", "poisbulord_sewer_grateframe_004", "poisbulord_sewer_grateframe_004", "poisbulord_sewer_grateframe_004", "poisbulord_sewer_grateframe_004", "poisbulord_sewer_grateframe_003", "poisbulord_sewer_grateframe_002", "poisbulord_sewer_grateframe_001" }, targetAnimator: ExpandUtility.GenerateSpriteAnimator(((Component)obj69).gameObject, null, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: true), collection: EXFutureCollection, clipName: "flash", wrapMode: (WrapMode)7, frameRate: 10, loopStart: 0, minFidgetDuration: 1f, maxFidgetDuration: 2f); ((Component)EXPoisbulordGrate.transform.Find("frame")).gameObject.AddComponent().Colors = new List { new Color(1f, 0f, 0f, 0f), new Color(0f, 1f, 0f, 1f), new Color(0f, 0f, 1f, 1f), new Color(0f, 1f, 1f, 1f), new Color(1f, 1f, 0f, 1f), new Color(1f, 0.5f, 0f, 1f) }; Ooze_Tank = expandSharedAssets1.LoadAsset("Ooze Tank"); GameObject gameObject59 = ((Component)Ooze_Tank.transform.Find("shadow").Find("Shadow")).gameObject; tk2dSprite obj70 = Ooze_Tank.AddComponent(); ExpandUtility.DuplicateComponent(obj70, ((Component)ExpandObjectDatabase.Tech_Machine_Wall).gameObject.GetComponent()); ((tk2dBaseSprite)obj70).CachedPerpState = (PerpendicularState)1; ((tk2dBaseSprite)obj70).SetSprite("ooze_tank_idle_001"); ((tk2dBaseSprite)obj70).HeightOffGround = -1f; ExpandUtility.DuplicateComponent(Ooze_Tank.AddComponent(), ((Component)ExpandObjectDatabase.Tech_Machine_Wall).gameObject.GetComponent()); Ooze_Tank.GetComponent().playAutomatically = false; ExpandUtility.DuplicateComponent(Ooze_Tank.AddComponent(), ExpandObjectDatabase.YellowDrum.GetComponent()); MinorBreakable obj71 = Ooze_Tank.AddComponent(); ExpandUtility.DuplicateComponent(obj71, ExpandObjectDatabase.YellowDrum.GetComponent()); obj71.breakAnimName = "ooze_tank_green_burst"; ExpandUtility.DuplicateComponent(Ooze_Tank.AddComponent(), ExpandObjectDatabase.YellowDrum.GetComponent()); ExpandUtility.DuplicateComponent(Ooze_Tank.AddComponent(), ExpandObjectDatabase.YellowDrum.GetComponent()); KickableObject component38 = Ooze_Tank.GetComponent(); component38.RollingBreakAnim = "ooze_tank_green_burst"; component38.rollAnimations[0] = "ooze_tank_green_roll_up"; component38.rollAnimations[1] = "ooze_tank_green_roll_right"; component38.rollAnimations[2] = "ooze_tank_green_roll_down"; component38.rollAnimations[3] = "ooze_tank_green_roll_left"; component38.impactAnimations[0] = "ooze_tank_green_roll_up_burst"; component38.impactAnimations[1] = "ooze_tank_green_roll_side_burst"; component38.impactAnimations[2] = "ooze_tank_green_roll_up_burst"; component38.impactAnimations[3] = "ooze_tank_green_roll_side_burst"; tk2dSpriteAttachPoint obj72 = Ooze_Tank.AddComponent(); obj72.attachPoints = new List { Ooze_Tank.transform.Find("shadow") }; obj72.deactivateUnusedAttachPoints = false; obj72.disableEmissionOnUnusedParticleSystems = false; obj72.ignorePosition = false; obj72.ignoreScale = false; obj72.ignoreRotation = false; obj72.centerUnusedAttachPoints = false; Ooze_Tank.AddComponent().animationAudioEvents = (ActorAudioEvent[])(object)new ActorAudioEvent[1] { new ActorAudioEvent { eventTag = "break", eventName = "Play_Obj_barrel_break_01" } }; AutoAimTarget obj73 = Ooze_Tank.AddComponent(); obj73.ForceUseTransform = false; obj73.IgnoreForSuperAutoAim = false; obj73.MinDistForSuperAutoAim = 5f; Ooze_Tank.AddComponent(); tk2dSprite obj74 = gameObject59.AddComponent(); ExpandUtility.DuplicateComponent(obj74, ((Component)ExpandObjectDatabase.Tech_Machine_Wall).gameObject.GetComponent()); ((tk2dBaseSprite)obj74).CachedPerpState = (PerpendicularState)2; ((tk2dBaseSprite)obj74).SetSprite("ooze_tank_idle_shadow_001"); ((tk2dBaseSprite)obj74).HeightOffGround = -1f; ((tk2dBaseSprite)obj74).usesOverrideMaterial = true; ((BraveBehaviour)obj74).renderer.material.shader = ((BraveBehaviour)((Component)ExpandObjectDatabase.YellowDrum.transform.Find("shadow").Find("Shadow")).gameObject.GetComponent()).renderer.material.shader; SpaceShip_PressurePlate = expandSharedAssets1.LoadAsset("Spaceship_PressurePlate"); Monstro_PressurePlate = expandSharedAssets1.LoadAsset("Monstro_PressurePlate"); ExpandUtility.DuplicateComponent(SpaceShip_PressurePlate.AddComponent(), orLoadByName10.oneWayDoorPressurePlate.GetComponent()); ExpandUtility.DuplicateComponent(Monstro_PressurePlate.AddComponent(), orLoadByName10.oneWayDoorPressurePlate.GetComponent()); ExpandUtility.DuplicateComponent(SpaceShip_PressurePlate.AddComponent(), orLoadByName10.oneWayDoorPressurePlate.GetComponent()); ExpandUtility.DuplicateComponent(Monstro_PressurePlate.AddComponent(), orLoadByName10.oneWayDoorPressurePlate.GetComponent()); ExpandUtility.DuplicateComponent(SpaceShip_PressurePlate.AddComponent(), orLoadByName10.oneWayDoorPressurePlate.GetComponent()); ExpandUtility.DuplicateComponent(Monstro_PressurePlate.AddComponent(), orLoadByName10.oneWayDoorPressurePlate.GetComponent()); ((tk2dBaseSprite)SpaceShip_PressurePlate.GetComponent()).SetSprite("spaceship_floor_switch_001"); ((tk2dBaseSprite)Monstro_PressurePlate.GetComponent()).SetSprite("monstro_floor_switch_001"); SpaceShip_PressurePlate.GetComponent().DefaultClipId = ExpandUtility.GetIDFromClip("future_plate_depress", SpaceShip_PressurePlate.GetComponent()); Monstro_PressurePlate.GetComponent().DefaultClipId = ExpandUtility.GetIDFromClip("monstro_plate_depress", Monstro_PressurePlate.GetComponent()); PressurePlate val61 = SpaceShip_PressurePlate.AddComponent(); PressurePlate obj75 = Monstro_PressurePlate.AddComponent(); val61.PlayersCanTrigger = true; obj75.PlayersCanTrigger = true; val61.EnemiesCanTrigger = false; obj75.EnemiesCanTrigger = false; val61.ArbitraryObjectsCanTrigger = false; obj75.ArbitraryObjectsCanTrigger = false; val61.CanUnpress = false; obj75.CanUnpress = false; val61.depressAnimationName = "future_plate_depress"; obj75.depressAnimationName = "monstro_plate_depress"; val61.unpressAnimationName = "future_plate_unpress"; obj75.unpressAnimationName = "monstro_plate_unpress"; EXFuture_SignPost = expandSharedAssets1.LoadAsset("EXFuture_Sign"); SpriteSerializer.AddSpriteToObject(EXFuture_SignPost, EXFutureCollection, "Future_Sign_001", (PerpendicularState)1, -1.4f); tk2dSprite obj76 = SpriteSerializer.AddSpriteToObject(((Component)EXFuture_SignPost.transform.Find("Shadow")).gameObject, EXFutureCollection, "Future_Sign_Shadow", (PerpendicularState)2, -1.7f); ((tk2dBaseSprite)obj76).usesOverrideMaterial = true; ((BraveBehaviour)obj76).renderer.material.shader = ((BraveBehaviour)((Component)((Component)GameManager.Instance.RewardManager.A_Chest).gameObject.transform.Find("Shadow")).gameObject.GetComponent()).renderer.material.shader; List spriteNameList52 = new List { "Future_Sign_001", "Future_Sign_002", "Future_Sign_003", "Future_Sign_004", "Future_Sign_005", "Future_Sign_006", "Future_Sign_003", "Future_Sign_008", "Future_Sign_001", "Future_Sign_002", "Future_Sign_003", "Future_Sign_004", "Future_Sign_005", "Future_Sign_006", "Future_Sign_003", "Future_Sign_008", "Future_Sign_001", "Future_Sign_002", "Future_Sign_003", "Future_Sign_004", "Future_Sign_005", "Future_Sign_006", "Future_Sign_003", "Future_Sign_008", "Future_Sign_005" }; List spriteNameList53 = new List { "Past_Sign_001", "Future_Sign_002", "Future_Sign_003", "Future_Sign_004", "Past_Sign_005", "Future_Sign_006", "Future_Sign_003", "Future_Sign_008", "Past_Sign_001", "Future_Sign_002", "Future_Sign_003", "Future_Sign_004", "Past_Sign_005", "Future_Sign_006", "Future_Sign_003", "Future_Sign_008", "Past_Sign_001", "Future_Sign_002", "Future_Sign_003", "Future_Sign_004", "Past_Sign_005", "Future_Sign_006", "Future_Sign_003", "Future_Sign_008", "Past_Sign_005" }; tk2dSpriteAnimator targetAnimator5 = ExpandUtility.GenerateSpriteAnimator(EXFuture_SignPost.gameObject); ExpandUtility.AddAnimation(targetAnimator5, EXFutureCollection, spriteNameList52, "spin_future", (WrapMode)2, 12); ExpandUtility.AddAnimation(targetAnimator5, EXFutureCollection, spriteNameList53, "spin_past", (WrapMode)2, 12); ExpandUtility.GenerateOrAddToRigidBody(EXFuture_SignPost, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(10, 19), (IntVector2?)new IntVector2(11, 3)); ExpandSignPostController expandSignPostController = EXFuture_SignPost.AddComponent(); EXSignPost_MinimapIcon = expandSharedAssets1.LoadAsset("EXSignPost_MinimapIcon"); SpriteSerializer.AddSpriteToObject(EXSignPost_MinimapIcon, EXFutureCollection, "SignPost_MinimapIcon", (PerpendicularState)2, 0f); expandSignPostController.MinimapIcon = EXSignPost_MinimapIcon; val7 = null; orLoadByName = null; orLoadByName2 = null; orLoadByName3 = null; orLoadByName4 = null; orLoadByName5 = null; orLoadByName6 = null; orLoadByName7 = null; orLoadByName8 = null; orLoadByName9 = null; orLoadByName10 = null; } } public class ExpandEnemyCorruptor { private static ExpandEnemyCorruptor m_instance; public GameObject GrenadeGuyPrefab; public GameObject IceCubeGuyPrefab; public GameObject KeybulletManPrefab; public GameObject ChanceBulletManPrefab; public GameObject SunburstPrefab; public GameObject CultistPrefab; public GameObject GhostPrefab; public GameObject BulletManPrefab; public GameObject ArrowheadManPrefab; public GameObject BulletRifleManPrefab; public GameObject AshBulletManPrefab; public GameObject AshBulletShotgunManPrefab; public GameObject BulletCardinalPrefab; public GameObject BulletMachineGunManPrefab; public GameObject BulletManDevilPrefab; public GameObject BulletManShroomedPrefab; public GameObject BulletSkeletonHelmetPrefab; public GameObject BulletShotgunManSawedOffPrefab; public GameObject BulletShotgunManMutantPrefab; public GameObject BulletManMutantPrefab; public GameObject BulletShotgrubManPrefab; public GameObject BulletManBandanaPrefa; public GameObject FloatingEyePrefab; public GameObject BulletManBandanaPrefab; public GameObject BulletManKaliberPrefab; public GameObject BulletShotgunManCowboyPrefab; public GameObject ChickenPrefab; public GameObject SnakePrefab; public GameObject[] RatPrefabs; public GameObject AngryBookPrefab; public GameObject AngryBookBluePrefab; public GameObject AngryBookGreenPrefab; public GameObject GunNutPrefab; public GameObject GunNutSpectrePrefab; public GameObject GunNutChainPrefab; public GameObject LeadWizardBluePrefab; public GameObject BirdPrefab; public GameObject BulletSharkPrefab; public GameObject NecromancerPrefab; public GameObject BombsheePrefab; public GameObject JamromancerPrefab; public GameObject BullatGiantPrefab; public GameObject BlizzbulonPrefab; public GameObject BlobulonPrefab; public GameObject PoisbulonPrefab; public GameObject PhaseSpiderPrefab; public GameObject WizardRedPrefab; public GameObject WizardYellowPrefab; public GameObject WizardBluePrefab; public GameObject PowderSkullBlackPrefab; public GameObject BulletShotgunManRedPrefab; public GameObject BulletShotgunManBluePrefab; public GameObject BulletRifleProfessionalPrefab; public GameObject BulletManEyepatchPrefab; public GameObject BulletBrosSmileyPrefab; public GameObject BulletBrosShadesPrefab; public GameObject ResourcefulRatBossPrefab; public GameObject GatlingGullPrefab; public GameObject ManfredsRivalPrefab; public GameObject BeholsterPrefab; public GameObject BossDoorMimicPrefab; public GameObject HighPriestPrefab; public GameObject CopPrefab; public GameObject CopAndroidPrefab; public GameObject SuperSpaceTurtlePrefab; public GameObject CursedSuperSpaceTurtlePrefab; public GameObject PayDayShootPrefab; public GameObject R2G2Prefab; public GameObject PortableTurretPrefab; public GameObject BabyGoodMimicPrefab; public GameObject BabyShelletonPrefab; public GameObject DogPrefab; public GameObject WolfPrefab; public GameObject SerJunkanPrefab; public GameObject CaterpillarPrefab; public GameObject RaccoonPrefab; public GameObject TurkeyPrefab; public GameObject BlankyPrefab; public GameObject BulletKingsToadieObject; public GameObject TinyBlobulordObject; public GameObject LordOfTheJammedPrefab; public GameObject KillPillarsPrefab; public static ExpandEnemyCorruptor Instance { get { if (m_instance == null) { m_instance = new ExpandEnemyCorruptor(); } return m_instance; } } public ExpandEnemyCorruptor() { GrenadeGuyPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("4d37ce3d666b4ddda8039929225b7ede")).gameObject; IceCubeGuyPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("f155fd2759764f4a9217db29dd21b7eb")).gameObject; KeybulletManPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("699cd24270af4cd183d671090d8323a1")).gameObject; ChanceBulletManPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("a446c626b56d4166915a4e29869737fd")).gameObject; SunburstPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("ffdc8680bdaa487f8f31995539f74265")).gameObject; CultistPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("57255ed50ee24794b7aac1ac3cfb8a95")).gameObject; GhostPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("4db03291a12144d69fe940d5a01de376")).gameObject; BulletManPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("01972dee89fc4404a5c408d50007dad5")).gameObject; ArrowheadManPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("05891b158cd542b1a5f3df30fb67a7ff")).gameObject; BulletRifleManPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("31a3ea0c54a745e182e22ea54844a82d")).gameObject; AshBulletManPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("1a78cfb776f54641b832e92c44021cf2")).gameObject; AshBulletShotgunManPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("1bd8e49f93614e76b140077ff2e33f2b")).gameObject; BulletCardinalPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("8bb5578fba374e8aae8e10b754e61d62")).gameObject; BulletMachineGunManPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("db35531e66ce41cbb81d507a34366dfe")).gameObject; BulletManDevilPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("5f3abc2d561b4b9c9e72b879c6f10c7e")).gameObject; BulletManShroomedPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("e5cffcfabfae489da61062ea20539887")).gameObject; BulletSkeletonHelmetPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("95ec774b5a75467a9ab05fa230c0c143")).gameObject; BulletShotgunManSawedOffPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("2752019b770f473193b08b4005dc781f")).gameObject; BulletShotgunManMutantPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("7f665bd7151347e298e4d366f8818284")).gameObject; BulletManMutantPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("d4a9836f8ab14f3fadd0f597438b1f1f")).gameObject; BulletShotgrubManPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("044a9f39712f456597b9762893fbc19c")).gameObject; BulletManBandanaPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("88b6b6a93d4b4234a67844ef4728382c")).gameObject; FloatingEyePrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("7b0b1b6d9ce7405b86b75ce648025dd6")).gameObject; ChickenPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("76bc43539fc24648bff4568c75c686d1")).gameObject; SnakePrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("1386da0f42fb4bcabc5be8feb16a7c38")).gameObject; AngryBookPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("c0ff3744760c4a2eb0bb52ac162056e6")).gameObject; AngryBookBluePrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("6f22935656c54ccfb89fca30ad663a64")).gameObject; AngryBookGreenPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("a400523e535f41ac80a43ff6b06dc0bf")).gameObject; GunNutPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("ec8ea75b557d4e7b8ceeaacdf6f8238c")).gameObject; GunNutSpectrePrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("383175a55879441d90933b5c4e60cf6f")).gameObject; GunNutChainPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("463d16121f884984abe759de38418e48")).gameObject; LeadWizardBluePrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("c50a862d19fc4d30baeba54795e8cb93")).gameObject; BirdPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("ed37fa13e0fa4fcf8239643957c51293")).gameObject; BulletSharkPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("72d2f44431da43b8a3bae7d8a114a46d")).gameObject; NecromancerPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("b1540990a4f1480bbcb3bea70d67f60d")).gameObject; BombsheePrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("19b420dec96d4e9ea4aebc3398c0ba7a")).gameObject; JamromancerPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("8b4a938cdbc64e64822e841e482ba3d2")).gameObject; BullatGiantPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("1a4872dafdb34fd29fe8ac90bd2cea67")).gameObject; BlizzbulonPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("022d7c822bc146b58fe3b0287568aaa2")).gameObject; BlobulonPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("0239c0680f9f467dbe5c4aab7dd1eca6")).gameObject; PoisbulonPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("e61cab252cfb435db9172adc96ded75f")).gameObject; PhaseSpiderPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("98ca70157c364750a60f5e0084f9d3e2")).gameObject; WizardRedPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("c4fba8def15e47b297865b18e36cbef8")).gameObject; WizardYellowPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("206405acad4d4c33aac6717d184dc8d4")).gameObject; WizardBluePrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("9b2cf2949a894599917d4d391a0b7394")).gameObject; PowderSkullBlackPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("1cec0cdf383e42b19920787798353e46")).gameObject; BulletManKaliberPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("f020570a42164e2699dcf57cac8a495c")).gameObject; BulletShotgunManCowboyPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("ddf12a4881eb43cfba04f36dd6377abb")).gameObject; BulletRifleProfessionalPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("c5b11bfc065d417b9c4d03a5e385fe2c")).gameObject; BulletManEyepatchPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("70216cae6c1346309d86d4a0b4603045")).gameObject; BulletBrosSmileyPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("ea40fcc863d34b0088f490f4e57f8913")).gameObject; BulletBrosShadesPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("c00390483f394a849c36143eb878998f")).gameObject; ResourcefulRatBossPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("6868795625bd46f3ae3e4377adce288b")).gameObject; GatlingGullPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("ec6b674e0acd4553b47ee94493d66422")).gameObject; ManfredsRivalPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("bb73eeeb9e584fbeaf35877ec176de28")).gameObject; BeholsterPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("4b992de5b4274168a8878ef9bf7ea36b")).gameObject; BossDoorMimicPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("9189f46c47564ed588b9108965f975c9")).gameObject; HighPriestPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("6c43fddfd401456c916089fdd1c99b1c")).gameObject; CopPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("705e9081261446039e1ed9ff16905d04")).gameObject; CopAndroidPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("640238ba85dd4e94b3d6f68888e6ecb8")).gameObject; SuperSpaceTurtlePrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("3a077fa5872d462196bb9a3cb1af02a3")).gameObject; CursedSuperSpaceTurtlePrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("9216803e9c894002a4b931d7ea9c6bdf")).gameObject; PayDayShootPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("2976522ec560460c889d11bb54fbe758")).gameObject; R2G2Prefab = ((Component)EnemyDatabase.GetOrLoadByGuid("1ccdace06ebd42dc984d46cb1f0db6cf")).gameObject; PortableTurretPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("998807b57e454f00a63d67883fcf90d6")).gameObject; BabyGoodMimicPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("e456b66ed3664a4cb590eab3a8ff3814")).gameObject; DogPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("c07ef60ae32b404f99e294a6f9acba75")).gameObject; WolfPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("ededff1deaf3430eaf8321d0c6b2bd80")).gameObject; SerJunkanPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("c6c8e59d0f5d41969c74e802c9d67d07")).gameObject; CaterpillarPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("d375913a61d1465f8e4ffcf4894e4427")).gameObject; RaccoonPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("e9fa6544000942a79ad05b6e4afb62db")).gameObject; TurkeyPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("6f9c28403d3248c188c391f5e40774c5")).gameObject; BlankyPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("5695e8ffa77c4d099b4d9bd9536ff35e")).gameObject; BabyShelletonPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("3f40178e10dc4094a1565cd4fdc4af56")).gameObject; BulletKingsToadieObject = ((Component)EnemyDatabase.GetOrLoadByGuid("d4dd2b2bbda64cc9bcec534b4e920518")).gameObject; TinyBlobulordObject = ((Component)EnemyDatabase.GetOrLoadByGuid("d1c9781fdac54d9e8498ed89210a0238")).gameObject; LordOfTheJammedPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("0d3f7c641557426fbac8596b61c9fb45")).gameObject; RatPrefabs = (GameObject[])(object)new GameObject[2] { ((Component)EnemyDatabase.GetOrLoadByGuid("6ad1cafc268f4214a101dca7af61bc91")).gameObject, ((Component)EnemyDatabase.GetOrLoadByGuid("14ea47ff46b54bb4a98f91ffcffb656d")).gameObject }; KillPillarsPrefab = ((Component)EnemyDatabase.GetOrLoadByGuid("3f11bbbc439c4086a180eb0fb9990cb4")).gameObject; } public static void CorruptExistingEnemy(AIActor aiActor, bool overrideGUIDCheck = false) { //IL_0099: Unknown result type (might be due to invalid IL or missing references) if (string.IsNullOrEmpty(aiActor.EnemyGuid) || aiActor.GetActorName().ToLower().StartsWith("glitched") || ((Object)aiActor).name.ToLower().StartsWith("glitched") || (Object)(object)((Component)aiActor).gameObject.GetComponent() != (Object)null) { return; } if ((aiActor.EnemyGuid == "0239c0680f9f467dbe5c4aab7dd1eca6") | (aiActor.EnemyGuid == "e61cab252cfb435db9172adc96ded75f")) { SpawnEnemyOnDeath component = ((Component)aiActor).gameObject.GetComponent(); if (component.maxSpawnCount != 3) { component.enemyGuidsToSpawn = ExpandLists.SpawnEnemyOnDeathGUIDList; component.enemySelection = (EnemySelection)20; component.minSpawnCount = 2; component.maxSpawnCount = 3; } } else if (aiActor.EnemyGuid == "1a4872dafdb34fd29fe8ac90bd2cea67") { ((Component)aiActor).gameObject.GetComponent().enemyGuidsToSpawn = ExpandLists.SpawnEnemyOnDeathGUIDList; } else if (overrideGUIDCheck) { ((Component)aiActor).gameObject.AddComponent(); } } public static void StunCorruptedEnemiesInRoom(RoomHandler targetRoom, float StunDuration) { List activeEnemies = targetRoom.GetActiveEnemies((ActiveEnemyType)0); if ((activeEnemies == null) | (activeEnemies.Count == 0)) { return; } for (int i = 0; i < activeEnemies.Count; i++) { if (activeEnemies[i].IsNormalEnemy && Object.op_Implicit((Object)(object)((BraveBehaviour)activeEnemies[i]).healthHaver) && !((BraveBehaviour)activeEnemies[i]).healthHaver.IsBoss && (((Object)activeEnemies[i]).name.ToLower().StartsWith("glitched") | activeEnemies[i].GetActorName().ToLower().StartsWith("glitched"))) { StunCorruptedEnemy(activeEnemies[i], StunDuration); } } } protected static void StunCorruptedEnemy(AIActor target, float StunDuration) { if (Object.op_Implicit((Object)(object)target) && Object.op_Implicit((Object)(object)((BraveBehaviour)target).behaviorSpeculator)) { ((BraveBehaviour)target).behaviorSpeculator.Stun(StunDuration, true); } } public AIActor GenerateGlitchedActorPrefab(GameObject TargetEnemyObject, GameObject SourceEnemy, bool ExplodesOnDeath = false, bool spawnsGlitchedObjectOnDeath = false, Action SpecificEnemyMods = null) { //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_02dc: Unknown result type (might be due to invalid IL or missing references) //IL_02e1: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Unknown result type (might be due to invalid IL or missing references) //IL_0305: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)TargetEnemyObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Target Actor Prefab to spawn is null!", false); } return null; } if ((Object)(object)SourceEnemy == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source Actor Prefab is null!", false); } return null; } AIActor component = SourceEnemy.GetComponent(); AIActor component2 = TargetEnemyObject.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); } if (component2.EnemyGuid != component.EnemyGuid) { AddOrReplaceAIActorConfig(component2, component); component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)null, false); ((BraveBehaviour)component2).healthHaver.minimumHealth = ((BraveBehaviour)component).healthHaver.minimumHealth; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.PreventAllDamage = false; component2.IsNormalEnemy = true; ((GameActor)component2).ImmuneToAllEffects = false; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; } component2.HitByEnemyBullets = BraveUtility.RandomBool(); ((GameActor)component2).OverrideDisplayName = "Corrupted " + ((GameActor)component).ActorName; ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.CanTargetEnemies = false; component2.CanTargetPlayers = true; component2.EnemyId = Random.Range(10000, 99999); component2.EnemyGuid = Guid.NewGuid().ToString(); if (component2.EnemyGuid == component.EnemyGuid) { if (((Component)((BraveBehaviour)component2).sprite).GetComponentsInChildren(true) != null) { tk2dBaseSprite[] componentsInChildren = ((Component)((BraveBehaviour)component2).sprite).GetComponentsInChildren(true); foreach (tk2dBaseSprite sprite in componentsInChildren) { ExpandShaders.Instance.ApplyGlitchShader(sprite); } } } else if ((Object)(object)((BraveBehaviour)component2).sprite != (Object)null) { ExpandShaders.Instance.ApplySuperGlitchShader(((BraveBehaviour)component2).sprite, component); } if (ExplodesOnDeath) { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); } if (spawnsGlitchedObjectOnDeath) { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); } SpecificEnemyMods?.Invoke(component2); return component2; } public void SpawnGlitchedSuperReaper(RoomHandler targetRoom, IntVector2 SpawnLocation, bool isCursed = false) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) GameObject val = DungeonPlaceableUtility.InstantiateDungeonPlaceable(LordOfTheJammedPrefab, targetRoom, SpawnLocation, true, (AwakenAnimationType)1, true); if ((Object)(object)val == (Object)null) { return; } AIActor component = val.GetComponent(); if (!((Object)(object)component == (Object)null)) { Object.Destroy((Object)(object)((Component)component).gameObject.GetComponentInChildren(true)); ((Component)component).gameObject.AddComponent(); if (isCursed) { ((Component)component).gameObject.GetComponent().becomesBlackPhantom = true; } component.EnemyId = 6666; component.EnemyGuid = Guid.NewGuid().ToString(); ((GameActor)component).ActorName = "Corrupted " + component.GetActorName(); ((Object)component).name = "Corrupted " + ((Object)component).name; component.CanTargetEnemies = false; component.CanTargetPlayers = true; component.IgnoreForRoomClear = false; ((BraveBehaviour)component).encounterTrackable.journalData.PrimaryDisplayName = "Glitched Lord of the Jammed"; ((BraveBehaviour)component).encounterTrackable.journalData.NotificationPanelDescription = "Glitched Lord of the Jammed"; component.ConfigureOnPlacement(targetRoom); } } public GameObject SpawnRandomGlitchEnemy(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_04ba: Unknown result type (might be due to invalid IL or missing references) //IL_04bc: 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_0047: 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_005c: 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_0071: 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_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0099: 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_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: 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_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0105: 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_011b: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0131: 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) //IL_0147: 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_015d: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) //IL_0189: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_01b3: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01e1: Unknown result type (might be due to invalid IL or missing references) //IL_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_01f7: Unknown result type (might be due to invalid IL or missing references) //IL_020b: Unknown result type (might be due to invalid IL or missing references) //IL_020d: 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_0223: Unknown result type (might be due to invalid IL or missing references) //IL_0237: 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_024d: Unknown result type (might be due to invalid IL or missing references) //IL_024f: Unknown result type (might be due to invalid IL or missing references) //IL_0263: Unknown result type (might be due to invalid IL or missing references) //IL_0265: Unknown result type (might be due to invalid IL or missing references) //IL_0279: Unknown result type (might be due to invalid IL or missing references) //IL_027b: Unknown result type (might be due to invalid IL or missing references) //IL_028f: Unknown result type (might be due to invalid IL or missing references) //IL_0291: 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_02a7: Unknown result type (might be due to invalid IL or missing references) //IL_02bb: Unknown result type (might be due to invalid IL or missing references) //IL_02bd: Unknown result type (might be due to invalid IL or missing references) //IL_02d1: Unknown result type (might be due to invalid IL or missing references) //IL_02d3: 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_02e9: Unknown result type (might be due to invalid IL or missing references) //IL_02fd: 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_0313: 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_032b: Unknown result type (might be due to invalid IL or missing references) //IL_033f: Unknown result type (might be due to invalid IL or missing references) //IL_0341: Unknown result type (might be due to invalid IL or missing references) //IL_0355: Unknown result type (might be due to invalid IL or missing references) //IL_0357: Unknown result type (might be due to invalid IL or missing references) //IL_036b: Unknown result type (might be due to invalid IL or missing references) //IL_036d: Unknown result type (might be due to invalid IL or missing references) //IL_0381: Unknown result type (might be due to invalid IL or missing references) //IL_0383: Unknown result type (might be due to invalid IL or missing references) //IL_0397: Unknown result type (might be due to invalid IL or missing references) //IL_0399: Unknown result type (might be due to invalid IL or missing references) //IL_03ad: 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_03c3: 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) //IL_03d9: Unknown result type (might be due to invalid IL or missing references) //IL_03db: Unknown result type (might be due to invalid IL or missing references) //IL_03ef: Unknown result type (might be due to invalid IL or missing references) //IL_03f1: Unknown result type (might be due to invalid IL or missing references) //IL_0405: Unknown result type (might be due to invalid IL or missing references) //IL_0407: Unknown result type (might be due to invalid IL or missing references) //IL_041b: Unknown result type (might be due to invalid IL or missing references) //IL_041d: Unknown result type (might be due to invalid IL or missing references) //IL_0431: Unknown result type (might be due to invalid IL or missing references) //IL_0433: Unknown result type (might be due to invalid IL or missing references) //IL_0448: Unknown result type (might be due to invalid IL or missing references) //IL_044a: Unknown result type (might be due to invalid IL or missing references) //IL_045f: Unknown result type (might be due to invalid IL or missing references) //IL_0461: Unknown result type (might be due to invalid IL or missing references) //IL_0472: Unknown result type (might be due to invalid IL or missing references) //IL_0474: Unknown result type (might be due to invalid IL or missing references) //IL_0485: Unknown result type (might be due to invalid IL or missing references) //IL_0487: Unknown result type (might be due to invalid IL or missing references) //IL_0498: Unknown result type (might be due to invalid IL or missing references) //IL_049a: Unknown result type (might be due to invalid IL or missing references) //IL_04ab: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) int num = 52; List list = new List(); for (int i = 0; i < num; i++) { list.Add(i); } list = BraveUtility.Shuffle(list); int num2 = BraveUtility.RandomElement(list); GameObject val = null; try { if (Random.value <= 0.85f) { switch (num2) { case 0: val = SpawnGlitchedBulletKin(CurrentRoom, position, autoEngage, awakenAnimType); break; case 1: val = SpawnGlitchedCultist(CurrentRoom, position, autoEngage, awakenAnimType); break; case 2: val = SpawnGlitchedGhost(CurrentRoom, position, autoEngage, awakenAnimType); break; case 3: val = SpawnGlitchedArrowheadKin(CurrentRoom, position, autoEngage, awakenAnimType); break; case 4: val = SpawnGlitchedSniperKin(CurrentRoom, position, autoEngage, awakenAnimType); break; case 5: val = SpawnGlitchedAshBulletKin(CurrentRoom, position, autoEngage, awakenAnimType); break; case 6: val = SpawnGlitchedAshShotGunKin(CurrentRoom, position, autoEngage, awakenAnimType); break; case 7: val = SpawnGlitchedCardinalBulletKin(CurrentRoom, position, autoEngage, awakenAnimType); break; case 8: val = SpawnGlitchedBulletMachineGunMan(CurrentRoom, position, autoEngage, awakenAnimType); break; case 9: val = SpawnGlitchedBulletManDevil(CurrentRoom, position, autoEngage, awakenAnimType); break; case 10: val = SpawnGlitchedBulletManShroomed(CurrentRoom, position, autoEngage, awakenAnimType); break; case 11: val = SpawnGlitchedBulletSkeletonHelmet(CurrentRoom, position, autoEngage, awakenAnimType); break; case 12: val = SpawnGlitchedVeteranShotGunKin(CurrentRoom, position, autoEngage, awakenAnimType); break; case 13: val = SpawnGlitchedMutantShotGunKin(CurrentRoom, position, autoEngage, awakenAnimType); break; case 14: val = SpawnGlitchedMutantBulletKin(CurrentRoom, position, autoEngage, awakenAnimType); break; case 15: val = SpawnGlitchedShotGrubKin(CurrentRoom, position, autoEngage, awakenAnimType); break; case 16: val = SpawnGlitchedWizardRed(CurrentRoom, position, autoEngage, awakenAnimType); break; case 17: val = SpawnGlitchedWizardYellow(CurrentRoom, position, autoEngage, awakenAnimType); break; case 18: val = SpawnGlitchedWizardBlue(CurrentRoom, position, autoEngage, awakenAnimType); break; case 19: val = SpawnGlitchedWizardBlue(CurrentRoom, position, autoEngage, awakenAnimType); break; case 20: val = SpawnGlitchedChicken(CurrentRoom, position, autoEngage, awakenAnimType); break; case 21: val = SpawnGlitchedBird(CurrentRoom, position, autoEngage, awakenAnimType); break; case 22: val = SpawnGlitchedBulletShark(CurrentRoom, position, autoEngage, awakenAnimType); break; case 23: val = SpawnGlitchedBlueLeadWizard(CurrentRoom, position, autoEngage, awakenAnimType); break; case 24: val = SpawnGlitchedNecromancer(CurrentRoom, position, autoEngage, awakenAnimType); break; case 25: val = SpawnGlitchedJamromancer(CurrentRoom, position, autoEngage, awakenAnimType); break; case 26: val = SpawnGlitchedAngryBook(CurrentRoom, position, autoEngage, awakenAnimType); break; case 27: val = SpawnGlitchedBullatGiant(CurrentRoom, position, autoEngage, awakenAnimType); break; case 28: val = SpawnGlitchedResourcefulRat(CurrentRoom, position, autoEngage, awakenAnimType); break; case 29: val = SpawnGlitchedBlockner(CurrentRoom, position, autoEngage, awakenAnimType); break; case 30: val = SpawnGlitchedBandanaBulletKin(CurrentRoom, position, autoEngage, awakenAnimType); break; case 31: val = SpawnGlitchedAngryBook(CurrentRoom, position, autoEngage, awakenAnimType); break; case 32: val = SpawnGlitchedBeadie(CurrentRoom, position, autoEngage, awakenAnimType); break; case 33: val = SpawnGlitchedSnake(CurrentRoom, position, autoEngage, awakenAnimType); break; case 34: val = SpawnGlitchedCop(CurrentRoom, position, autoEngage, awakenAnimType); break; case 35: val = SpawnGlitchedCopAndroid(CurrentRoom, position, autoEngage, awakenAnimType); break; case 36: val = SpawnGlitchedSpaceTurtle(CurrentRoom, position, autoEngage, awakenAnimType); break; case 37: val = SpawnGlitchedCursedSpaceTurtle(CurrentRoom, position, autoEngage, awakenAnimType); break; case 38: val = SpawnGlitchedPayDayShotGunGuy(CurrentRoom, position, autoEngage, awakenAnimType); break; case 39: val = SpawnGlitchedR2G2(CurrentRoom, position, autoEngage, awakenAnimType); break; case 40: val = SpawnGlitchedPortableTurret(CurrentRoom, position, autoEngage, awakenAnimType); break; case 41: val = SpawnGlitchedBabyMimic(CurrentRoom, position, autoEngage, awakenAnimType); break; case 42: val = SpawnGlitchedDog(CurrentRoom, position, autoEngage, awakenAnimType); break; case 43: val = SpawnGlitchedWolf(CurrentRoom, position, autoEngage, awakenAnimType); break; case 44: val = SpawnGlitchedSerJunkan(CurrentRoom, position, autoEngage, awakenAnimType); break; case 45: val = SpawnGlitchedCaterpillar(CurrentRoom, position, autoEngage, awakenAnimType); break; case 46: val = SpawnGlitchedRaccoon(CurrentRoom, position, autoEngage, awakenAnimType); break; case 47: val = SpawnGlitchedTurkey(CurrentRoom, position, autoEngage, awakenAnimType); break; case 48: val = SpawnGlitchedBlizzbulon(CurrentRoom, position, autoEngage, awakenAnimType); break; case 49: val = SpawnGlitchedRandomBlob(CurrentRoom, position, autoEngage, awakenAnimType); break; case 50: val = SpawnGlitchedBlanky(CurrentRoom, position, autoEngage, awakenAnimType); break; case 51: val = SpawnGlitchedBabyShelleton(CurrentRoom, position, autoEngage, awakenAnimType); break; case 52: val = SpawnGlitchedPlayerAsEnemy(CurrentRoom, position, autoEngage, awakenAnimType); break; } } else { try { val = SpawnGlitchedBigEnemy(CurrentRoom, position, autoEngage, awakenAnimType); } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] WARNING: Exception while attempting to spawn glitched big enemy!", false); } Debug.Log((object)"WARNING: Exception while attempting to spawn glitched big enemy!"); Debug.LogException(ex); } } } catch (Exception ex2) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] WARNING: Exception while attempting to spawn glitched enemy with ID: " + num2), false); } Debug.Log((object)("WARNING: Exception while attempting to spawn glitched enemy with ID: " + num2)); Debug.LogException(ex2); } if (Object.op_Implicit((Object)(object)val)) { val.transform.SetParent(CurrentRoom.hierarchyParent, true); if (Object.op_Implicit((Object)(object)val.GetComponent())) { CurrentRoom.RegisterEnemy(val.GetComponent()); } } return val; } public GameObject SpawnRandomGlitchBoss(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0035: 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_0047: 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_0059: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) int num = Random.Range(0, 6); GameObject val = null; if (num == 0) { val = SpawnGlitchedBulletBros(CurrentRoom, position, autoEngage, awakenAnimType); } else if (num == 1) { val = SpawnGlitchedGatlingGull(CurrentRoom, position, autoEngage, awakenAnimType); } else if (num == 2) { val = SpawnGlitchedBeholster(CurrentRoom, position, autoEngage, awakenAnimType); } else if (num == 3) { val = SpawnGlitchedBossDoorMimic(CurrentRoom, position, autoEngage, awakenAnimType); } else if (num == 4) { val = SpawnGlitchedHighPriest(CurrentRoom, position, autoEngage, awakenAnimType); } else if (num >= 5) { val = SpawnGlitchedKillPillar(CurrentRoom, position, autoEngage, awakenAnimType); } if (Object.op_Implicit((Object)(object)val)) { val.transform.SetParent(CurrentRoom.hierarchyParent, true); if (Object.op_Implicit((Object)(object)val.GetComponent())) { CurrentRoom.RegisterEnemy(val.GetComponent()); } } return val; } public void AddOrReplaceAIActorConfig(AIActor target, AIActor source, bool isResourcefulRat = false) { //IL_08ac: Unknown result type (might be due to invalid IL or missing references) //IL_0551: Unknown result type (might be due to invalid IL or missing references) //IL_0558: Expected O, but got Unknown //IL_0592: Unknown result type (might be due to invalid IL or missing references) //IL_05b3: Unknown result type (might be due to invalid IL or missing references) //IL_05d4: Unknown result type (might be due to invalid IL or missing references) //IL_0317: Unknown result type (might be due to invalid IL or missing references) //IL_031c: Unknown result type (might be due to invalid IL or missing references) //IL_092f: Unknown result type (might be due to invalid IL or missing references) //IL_069e: Unknown result type (might be due to invalid IL or missing references) //IL_06a3: Unknown result type (might be due to invalid IL or missing references) //IL_06af: Unknown result type (might be due to invalid IL or missing references) //IL_06b4: Unknown result type (might be due to invalid IL or missing references) //IL_090b: Unknown result type (might be due to invalid IL or missing references) //IL_09dd: Unknown result type (might be due to invalid IL or missing references) //IL_09e2: Unknown result type (might be due to invalid IL or missing references) //IL_09ef: Unknown result type (might be due to invalid IL or missing references) //IL_09fe: Expected O, but got Unknown //IL_0a21: Unknown result type (might be due to invalid IL or missing references) //IL_0a26: Unknown result type (might be due to invalid IL or missing references) //IL_0a81: Unknown result type (might be due to invalid IL or missing references) if ((((Object)(object)target == (Object)null) | ((Object)(object)source == (Object)null)) || target.EnemyGuid == source.EnemyGuid) { return; } try { if ((Object)(object)((BraveBehaviour)target).behaviorSpeculator != (Object)null && (Object)(object)((BraveBehaviour)source).behaviorSpeculator != (Object)null) { ((BraveBehaviour)target).behaviorSpeculator.OtherBehaviors = ((BraveBehaviour)source).behaviorSpeculator.OtherBehaviors; ((BraveBehaviour)target).behaviorSpeculator.TargetBehaviors = ((BraveBehaviour)source).behaviorSpeculator.TargetBehaviors; ((BraveBehaviour)target).behaviorSpeculator.OverrideBehaviors = ((BraveBehaviour)source).behaviorSpeculator.OverrideBehaviors; ((BraveBehaviour)target).behaviorSpeculator.AttackBehaviors = ((BraveBehaviour)source).behaviorSpeculator.AttackBehaviors; ((BraveBehaviour)target).behaviorSpeculator.MovementBehaviors = ((BraveBehaviour)source).behaviorSpeculator.MovementBehaviors; if (((BraveBehaviour)target).behaviorSpeculator.MovementBehaviors != null && ((BraveBehaviour)target).behaviorSpeculator.MovementBehaviors.Count > 0) { for (int i = 0; i < ((BraveBehaviour)target).behaviorSpeculator.MovementBehaviors.Count; i++) { if ((object)((object)((BraveBehaviour)target).behaviorSpeculator.MovementBehaviors[i]).GetType() == typeof(TakeCoverBehavior)) { ((BraveBehaviour)target).behaviorSpeculator.MovementBehaviors.Remove(((BraveBehaviour)target).behaviorSpeculator.MovementBehaviors[i]); } } } if (((BraveBehaviour)target).behaviorSpeculator.OverrideBehaviors != null && ((BraveBehaviour)target).behaviorSpeculator.OverrideBehaviors.Count > 0) { for (int j = 0; j < ((BraveBehaviour)target).behaviorSpeculator.OverrideBehaviors.Count; j++) { if ((object)((object)((BraveBehaviour)target).behaviorSpeculator.OverrideBehaviors[j]).GetType() == typeof(RedBarrelAwareness)) { ((BraveBehaviour)target).behaviorSpeculator.OverrideBehaviors.Remove(((BraveBehaviour)target).behaviorSpeculator.OverrideBehaviors[j]); } } } ((BraveBehaviour)target).behaviorSpeculator.AttackCooldown = ((BraveBehaviour)source).behaviorSpeculator.AttackCooldown; ((BraveBehaviour)target).behaviorSpeculator.CooldownScale = ((BraveBehaviour)source).behaviorSpeculator.CooldownScale; ((BraveBehaviour)target).behaviorSpeculator.FleePlayerData = ((BraveBehaviour)source).behaviorSpeculator.FleePlayerData; ((BraveBehaviour)target).behaviorSpeculator.GlobalCooldown = ((BraveBehaviour)source).behaviorSpeculator.GlobalCooldown; ((BraveBehaviour)target).behaviorSpeculator.ImmuneToStun = ((BraveBehaviour)source).behaviorSpeculator.ImmuneToStun; ((BraveBehaviour)target).behaviorSpeculator.InstantFirstTick = ((BraveBehaviour)source).behaviorSpeculator.InstantFirstTick; ((BraveBehaviour)target).behaviorSpeculator.LocalTimeScale = ((BraveBehaviour)source).behaviorSpeculator.LocalTimeScale; ((BraveBehaviour)((BraveBehaviour)target).behaviorSpeculator).majorBreakable = ((BraveBehaviour)((BraveBehaviour)source).behaviorSpeculator).majorBreakable; ((BraveBehaviour)target).behaviorSpeculator.PlayerTarget = ((BraveBehaviour)source).behaviorSpeculator.PlayerTarget; ((BraveBehaviour)target).behaviorSpeculator.PostAwakenDelay = ((BraveBehaviour)source).behaviorSpeculator.PostAwakenDelay; ((BraveBehaviour)target).behaviorSpeculator.PreventMovement = ((BraveBehaviour)source).behaviorSpeculator.PreventMovement; ((BraveBehaviour)target).behaviorSpeculator.RemoveDelayOnReinforce = ((BraveBehaviour)source).behaviorSpeculator.RemoveDelayOnReinforce; ((BraveBehaviour)target).behaviorSpeculator.SkipTimingDifferentiator = ((BraveBehaviour)source).behaviorSpeculator.SkipTimingDifferentiator; ((BraveBehaviour)target).behaviorSpeculator.StartingFacingDirection = ((BraveBehaviour)source).behaviorSpeculator.StartingFacingDirection; ((BraveBehaviour)target).behaviorSpeculator.TickInterval = ((BraveBehaviour)source).behaviorSpeculator.TickInterval; ((BraveBehaviour)((BraveBehaviour)source).behaviorSpeculator).specRigidbody = ((BraveBehaviour)((BraveBehaviour)source).behaviorSpeculator).specRigidbody; target.PathableTiles = source.PathableTiles; } } catch (Exception) { } try { if ((Object)(object)((BraveBehaviour)source).bulletBank != (Object)null) { if (!isResourcefulRat) { if ((Object)(object)((BraveBehaviour)target).bulletBank != (Object)null) { Object.Destroy((Object)(object)((BraveBehaviour)target).bulletBank); } ((Component)target).gameObject.AddComponent(); } AIBulletBank component = ((Component)target).gameObject.GetComponent(); if (((Object)((BraveBehaviour)source).bulletBank).name != null) { ((Object)component).name = ((Object)((BraveBehaviour)source).bulletBank).name; } component.Bullets = ((BraveBehaviour)source).bulletBank.Bullets; component.useDefaultBulletIfMissing = ((BraveBehaviour)source).bulletBank.useDefaultBulletIfMissing; component.transforms = ((BraveBehaviour)source).bulletBank.transforms; ((Behaviour)component).enabled = ((Behaviour)((BraveBehaviour)source).bulletBank).enabled; } } catch (Exception) { } try { if ((Object)(object)((Component)source).GetComponent() != (Object)null) { if (!isResourcefulRat) { if ((Object)(object)((BraveBehaviour)target).aiShooter != (Object)null) { Object.Destroy((Object)(object)((Component)target).GetComponent()); } ((Component)target).gameObject.AddComponent(); } AIShooter component2 = ((Component)target).gameObject.GetComponent(); if (((Object)((BraveBehaviour)source).aiShooter).name != null) { ((Object)component2).name = ((Object)((BraveBehaviour)source).aiShooter).name; } component2.volley = ((BraveBehaviour)source).aiShooter.volley; component2.volleyShootPosition = ((BraveBehaviour)source).aiShooter.volleyShootPosition; component2.volleyShellCasing = ((BraveBehaviour)source).aiShooter.volleyShellCasing; component2.volleyShellTransform = ((BraveBehaviour)source).aiShooter.volleyShellTransform; component2.volleyShootVfx = ((BraveBehaviour)source).aiShooter.volleyShootVfx; component2.usesOctantShootVFX = ((BraveBehaviour)source).aiShooter.usesOctantShootVFX; component2.bulletName = ((BraveBehaviour)source).aiShooter.bulletName; component2.customShootCooldownPeriod = ((BraveBehaviour)source).aiShooter.customShootCooldownPeriod; component2.doesScreenShake = ((BraveBehaviour)source).aiShooter.doesScreenShake; component2.rampBullets = ((BraveBehaviour)source).aiShooter.rampBullets; component2.rampStartHeight = ((BraveBehaviour)source).aiShooter.rampStartHeight; component2.rampTime = ((BraveBehaviour)source).aiShooter.rampTime; component2.bulletScriptAttachPoint = ((BraveBehaviour)source).aiShooter.bulletScriptAttachPoint; component2.BackupAimInMoveDirection = ((BraveBehaviour)source).aiShooter.BackupAimInMoveDirection; component2.equippedGunId = ((BraveBehaviour)source).aiShooter.equippedGunId; if ((Object)(object)((BraveBehaviour)source).aiShooter.gunAttachPoint != (Object)null) { GameObject val = new GameObject("GunAttachPoint"); component2.gunAttachPoint = val.transform; component2.gunAttachPoint.parent = ((Component)target).gameObject.transform; val.transform.localPosition = ((Component)((BraveBehaviour)source).aiShooter.gunAttachPoint).transform.localPosition; val.transform.localRotation = ((Component)((BraveBehaviour)source).aiShooter.gunAttachPoint).transform.localRotation; val.transform.localScale = ((Component)((BraveBehaviour)source).aiShooter.gunAttachPoint).transform.localScale; } if (((BraveBehaviour)source).aiShooter.Inventory != null) { component2.Inventory.ForceNoGun = ((BraveBehaviour)source).aiShooter.Inventory.ForceNoGun; component2.Inventory.GunChangeForgiveness = ((BraveBehaviour)source).aiShooter.Inventory.GunChangeForgiveness; component2.Inventory.GunLocked = ((BraveBehaviour)source).aiShooter.Inventory.GunLocked; component2.Inventory.maxGuns = ((BraveBehaviour)source).aiShooter.Inventory.maxGuns; component2.Inventory.m_gunClassOverrides = ((BraveBehaviour)source).aiShooter.Inventory.m_gunClassOverrides; component2.GunAngle = ((BraveBehaviour)source).aiShooter.GunAngle; component2.shouldUseGunReload = ((BraveBehaviour)source).aiShooter.shouldUseGunReload; component2.overallGunAttachOffset = ((BraveBehaviour)source).aiShooter.overallGunAttachOffset; component2.flippedGunAttachOffset = ((BraveBehaviour)source).aiShooter.flippedGunAttachOffset; component2.handObject = ((BraveBehaviour)source).aiShooter.handObject; component2.AllowTwoHands = ((BraveBehaviour)source).aiShooter.AllowTwoHands; component2.ForceGunOnTop = ((BraveBehaviour)source).aiShooter.ForceGunOnTop; component2.IsReallyBigBoy = ((BraveBehaviour)source).aiShooter.IsReallyBigBoy; component2.gunAttachPoint = ((BraveBehaviour)source).aiShooter.gunAttachPoint; } } if (source.EnemyGuid == "4db03291a12144d69fe940d5a01de376" && (Object)(object)((Component)source).gameObject.GetComponent() != (Object)null) { bool flag = false; if ((Object)(object)((Component)target).gameObject.GetComponent() == (Object)null) { ((Component)target).gameObject.AddComponent(); flag = true; } tk2dSpriteAnimation component3 = ((Component)source).gameObject.GetComponent(); tk2dSpriteAnimation component4 = ((Component)target).gameObject.GetComponent(); if (flag | (component4.clips == null) | (component4.clips.Length == 0)) { if (((Object)component3).name != null) { ((Object)component4).name = ((Object)component3).name; } component4.clips = (tk2dSpriteAnimationClip[])(object)new tk2dSpriteAnimationClip[2] { component3.clips[13], component3.clips[14] }; } else { List list = new List(); for (int k = 0; k < component4.clips.Length; k++) { list.Add(component4.clips[k]); } if (list.Count > 0) { list.Add(component3.clips[13]); list.Add(component3.clips[14]); component4.clips = list.ToArray(); } else { component4.clips = (tk2dSpriteAnimationClip[])(object)new tk2dSpriteAnimationClip[2] { component3.clips[13], component3.clips[14] }; } } } if (target.EnemyGuid == "1386da0f42fb4bcabc5be8feb16a7c38" && (Object)(object)((Component)target).gameObject.GetComponentInChildren() != (Object)null) { SpeculativeRigidbody component5 = ((Component)target).gameObject.GetComponent(); component5.PixelColliders[0].CollisionLayer = (CollisionLayer)3; component5.PixelColliders[1].Enabled = true; if (source.EnemyGuid != "d1c9781fdac54d9e8498ed89210a0238") { target.IgnoreForRoomClear = false; target.DiesOnCollison = false; if (Random.value < 0.2f) { ((Component)((BraveBehaviour)target).healthHaver).gameObject.AddComponent(); ((OnDeathBehavior)((Component)((BraveBehaviour)target).healthHaver).GetComponent()).deathType = (DeathType)1; } } else { ((Component)((BraveBehaviour)target).healthHaver).gameObject.AddComponent(); ((OnDeathBehavior)((Component)((BraveBehaviour)target).healthHaver).GetComponent()).deathType = (DeathType)1; target.AlwaysShowOffscreenArrow = true; target.DiesOnCollison = true; } ((BraveBehaviour)target).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)target).behaviorSpeculator).RegenerateCache(); } if (Object.op_Implicit((Object)(object)((Component)source).gameObject.GetComponent())) { ExpandUtility.DuplicateComponent(((Component)target).gameObject.AddComponent(), ((Component)source).gameObject.GetComponent()); } if (((BraveBehaviour)source).aiAnimator.OtherVFX == null || ((BraveBehaviour)source).aiAnimator.OtherVFX.Count <= 0) { return; } ((BraveBehaviour)target).aiAnimator.OtherVFX = new List(); foreach (NamedVFXPool item in ((BraveBehaviour)source).aiAnimator.OtherVFX) { NamedVFXPool val2 = new NamedVFXPool { name = item.name, vfxPool = item.vfxPool }; if (Object.op_Implicit((Object)(object)item.anchorTransform)) { GameObject val3 = Object.Instantiate(((Component)item.anchorTransform).gameObject, ((BraveBehaviour)target).transform.position, Quaternion.identity); ((Object)val3).name.Replace("(Clone)", string.Empty); ((Object)val3).name.Replace("(clone)", string.Empty); val3.transform.SetParent(((BraveBehaviour)target).transform, false); val3.transform.localPosition = item.anchorTransform.localPosition; val2.anchorTransform = val3.transform; } ((BraveBehaviour)target).aiAnimator.OtherVFX.Add(val2); } } catch (Exception) { } } public GameObject SpawnGlitchedBulletKin(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_031a: Unknown result type (might be due to invalid IL or missing references) //IL_04ac: Unknown result type (might be due to invalid IL or missing references) //IL_04b1: Unknown result type (might be due to invalid IL or missing references) //IL_0589: Unknown result type (might be due to invalid IL or missing references) //IL_058b: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(BulletManPrefab); List list = new List(); List list2 = new List(); list.Clear(); list2.Clear(); list.Add(GhostPrefab); list.Add(CultistPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(JamromancerPrefab); list.Add(NecromancerPrefab); list.Add(LeadWizardBluePrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2.Add(SunburstPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 601; component2.EnemyGuid = "f0000000000000000000000000000001"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedCultist(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_030e: Unknown result type (might be due to invalid IL or missing references) //IL_04a0: Unknown result type (might be due to invalid IL or missing references) //IL_04a5: Unknown result type (might be due to invalid IL or missing references) //IL_04ca: Unknown result type (might be due to invalid IL or missing references) //IL_04cf: Unknown result type (might be due to invalid IL or missing references) //IL_0599: Unknown result type (might be due to invalid IL or missing references) //IL_059b: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(CultistPrefab); List list = new List(); List list2 = new List(); list.Clear(); list2.Clear(); list.Add(BulletManPrefab); list.Add(GhostPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(JamromancerPrefab); list.Add(NecromancerPrefab); list.Add(LeadWizardBluePrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 602; component2.EnemyGuid = "f0000000000000000000000000000002"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedGhost(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_0302: Unknown result type (might be due to invalid IL or missing references) //IL_0494: Unknown result type (might be due to invalid IL or missing references) //IL_0499: Unknown result type (might be due to invalid IL or missing references) //IL_04be: Unknown result type (might be due to invalid IL or missing references) //IL_04c3: Unknown result type (might be due to invalid IL or missing references) //IL_058d: Unknown result type (might be due to invalid IL or missing references) //IL_058f: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(GhostPrefab); List list = new List(); List list2 = new List(); list.Clear(); list2.Clear(); list.Add(CultistPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(JamromancerPrefab); list.Add(NecromancerPrefab); list.Add(LeadWizardBluePrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 603; component2.EnemyGuid = "f0000000000000000000000000000003"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedArrowheadKin(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_030e: Unknown result type (might be due to invalid IL or missing references) //IL_04a0: Unknown result type (might be due to invalid IL or missing references) //IL_04a5: Unknown result type (might be due to invalid IL or missing references) //IL_04ca: Unknown result type (might be due to invalid IL or missing references) //IL_04cf: Unknown result type (might be due to invalid IL or missing references) //IL_0599: Unknown result type (might be due to invalid IL or missing references) //IL_059b: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(ArrowheadManPrefab); List list = new List(); List list2 = new List(); list.Clear(); list2.Clear(); list.Add(BulletManPrefab); list.Add(CultistPrefab); list.Add(GhostPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(JamromancerPrefab); list.Add(NecromancerPrefab); list.Add(LeadWizardBluePrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 604; component2.EnemyGuid = "f0000000000000000000000000000004"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedSniperKin(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_02ae: Unknown result type (might be due to invalid IL or missing references) //IL_0440: Unknown result type (might be due to invalid IL or missing references) //IL_0445: Unknown result type (might be due to invalid IL or missing references) //IL_046a: Unknown result type (might be due to invalid IL or missing references) //IL_046f: Unknown result type (might be due to invalid IL or missing references) //IL_0539: Unknown result type (might be due to invalid IL or missing references) //IL_053b: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(BulletRifleManPrefab); List list = new List(); List list2 = new List(); list.Clear(); list2.Clear(); list.Add(BulletManPrefab); list.Add(ArrowheadManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(FloatingEyePrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 605; component2.EnemyGuid = "f0000000000000000000000000000005"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedAshBulletKin(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_030e: Unknown result type (might be due to invalid IL or missing references) //IL_04a0: Unknown result type (might be due to invalid IL or missing references) //IL_04a5: Unknown result type (might be due to invalid IL or missing references) //IL_04ca: Unknown result type (might be due to invalid IL or missing references) //IL_04cf: Unknown result type (might be due to invalid IL or missing references) //IL_0599: Unknown result type (might be due to invalid IL or missing references) //IL_059b: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(AshBulletManPrefab); List list = new List(); List list2 = new List(); list.Clear(); list2.Clear(); list.Add(BulletManPrefab); list.Add(CultistPrefab); list.Add(GhostPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(JamromancerPrefab); list.Add(NecromancerPrefab); list.Add(LeadWizardBluePrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 606; component2.EnemyGuid = "f0000000000000000000000000000006"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedAshShotGunKin(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_0302: Unknown result type (might be due to invalid IL or missing references) //IL_0494: Unknown result type (might be due to invalid IL or missing references) //IL_0499: Unknown result type (might be due to invalid IL or missing references) //IL_04be: Unknown result type (might be due to invalid IL or missing references) //IL_04c3: Unknown result type (might be due to invalid IL or missing references) //IL_058d: Unknown result type (might be due to invalid IL or missing references) //IL_058f: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(AshBulletShotgunManPrefab); List list = new List(); List list2 = new List(); list.Clear(); list2.Clear(); list.Add(CultistPrefab); list.Add(GhostPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(JamromancerPrefab); list.Add(NecromancerPrefab); list.Add(LeadWizardBluePrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 607; component2.EnemyGuid = "f0000000000000000000000000000007"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedCardinalBulletKin(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_030e: Unknown result type (might be due to invalid IL or missing references) //IL_04a0: Unknown result type (might be due to invalid IL or missing references) //IL_04a5: Unknown result type (might be due to invalid IL or missing references) //IL_04ca: Unknown result type (might be due to invalid IL or missing references) //IL_04cf: Unknown result type (might be due to invalid IL or missing references) //IL_0599: Unknown result type (might be due to invalid IL or missing references) //IL_059b: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(BulletCardinalPrefab); List list = new List(); List list2 = new List(); list.Clear(); list2.Clear(); list.Add(CultistPrefab); list.Add(GhostPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(JamromancerPrefab); list.Add(NecromancerPrefab); list.Add(LeadWizardBluePrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 608; component2.EnemyGuid = "f0000000000000000000000000000008"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedBulletMachineGunMan(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_0302: Unknown result type (might be due to invalid IL or missing references) //IL_0494: Unknown result type (might be due to invalid IL or missing references) //IL_0499: Unknown result type (might be due to invalid IL or missing references) //IL_04be: Unknown result type (might be due to invalid IL or missing references) //IL_04c3: Unknown result type (might be due to invalid IL or missing references) //IL_058d: Unknown result type (might be due to invalid IL or missing references) //IL_058f: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(BulletMachineGunManPrefab); List list = new List(); List list2 = new List(); list.Clear(); list2.Clear(); list.Add(CultistPrefab); list.Add(GhostPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(JamromancerPrefab); list.Add(NecromancerPrefab); list.Add(LeadWizardBluePrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 609; component2.EnemyGuid = "f0000000000000000000000000000009"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedBulletManDevil(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_031a: Unknown result type (might be due to invalid IL or missing references) //IL_0494: Unknown result type (might be due to invalid IL or missing references) //IL_0499: Unknown result type (might be due to invalid IL or missing references) //IL_04be: Unknown result type (might be due to invalid IL or missing references) //IL_04c3: Unknown result type (might be due to invalid IL or missing references) //IL_058d: Unknown result type (might be due to invalid IL or missing references) //IL_058f: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(BulletManDevilPrefab); List list = new List(); List list2 = new List(); list.Clear(); list2.Clear(); list.Add(BulletManPrefab); list.Add(CultistPrefab); list.Add(GhostPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(JamromancerPrefab); list.Add(NecromancerPrefab); list.Add(LeadWizardBluePrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 610; component2.EnemyGuid = "f0000000000000000000000000000010"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedBulletManShroomed(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_02f6: Unknown result type (might be due to invalid IL or missing references) //IL_0488: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_04b2: Unknown result type (might be due to invalid IL or missing references) //IL_04b7: Unknown result type (might be due to invalid IL or missing references) //IL_0559: Unknown result type (might be due to invalid IL or missing references) //IL_055b: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(BulletManShroomedPrefab); List list = new List(); List list2 = new List(); list.Clear(); list2.Clear(); list.Add(BulletManPrefab); list.Add(CultistPrefab); list.Add(GhostPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(JamromancerPrefab); list.Add(NecromancerPrefab); list.Add(LeadWizardBluePrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 611; component2.EnemyGuid = "f0000000000000000000000000000011"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedBulletSkeletonHelmet(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_02f6: Unknown result type (might be due to invalid IL or missing references) //IL_0488: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_04b2: Unknown result type (might be due to invalid IL or missing references) //IL_04b7: Unknown result type (might be due to invalid IL or missing references) //IL_0581: Unknown result type (might be due to invalid IL or missing references) //IL_0583: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(BulletSkeletonHelmetPrefab); List list = new List(); List list2 = new List(); list.Clear(); list2.Clear(); list.Add(BulletManPrefab); list.Add(CultistPrefab); list.Add(GhostPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(JamromancerPrefab); list.Add(NecromancerPrefab); list.Add(LeadWizardBluePrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 612; component2.EnemyGuid = "f0000000000000000000000000000012"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedVeteranShotGunKin(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_02ea: Unknown result type (might be due to invalid IL or missing references) //IL_047c: Unknown result type (might be due to invalid IL or missing references) //IL_0481: Unknown result type (might be due to invalid IL or missing references) //IL_04a6: Unknown result type (might be due to invalid IL or missing references) //IL_04ab: Unknown result type (might be due to invalid IL or missing references) //IL_0575: Unknown result type (might be due to invalid IL or missing references) //IL_0577: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(BulletShotgunManSawedOffPrefab); List list = new List(); List list2 = new List(); list.Clear(); list2.Clear(); list.Add(CultistPrefab); list.Add(GhostPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(JamromancerPrefab); list.Add(NecromancerPrefab); list.Add(LeadWizardBluePrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 613; component2.EnemyGuid = "f0000000000000000000000000000013"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedMutantShotGunKin(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_02f6: Unknown result type (might be due to invalid IL or missing references) //IL_0488: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_04b2: Unknown result type (might be due to invalid IL or missing references) //IL_04b7: Unknown result type (might be due to invalid IL or missing references) //IL_0581: Unknown result type (might be due to invalid IL or missing references) //IL_0583: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(BulletShotgunManMutantPrefab); List list = new List(); List list2 = new List(); list.Clear(); list2.Clear(); list.Add(BulletManPrefab); list.Add(CultistPrefab); list.Add(GhostPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(JamromancerPrefab); list.Add(NecromancerPrefab); list.Add(LeadWizardBluePrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 614; component2.EnemyGuid = "f0000000000000000000000000000014"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedMutantBulletKin(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_0302: Unknown result type (might be due to invalid IL or missing references) //IL_0494: Unknown result type (might be due to invalid IL or missing references) //IL_0499: Unknown result type (might be due to invalid IL or missing references) //IL_04be: Unknown result type (might be due to invalid IL or missing references) //IL_04c3: Unknown result type (might be due to invalid IL or missing references) //IL_058d: Unknown result type (might be due to invalid IL or missing references) //IL_058f: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(BulletManMutantPrefab); List list = new List(); List list2 = new List(); list.Clear(); list2.Clear(); list.Add(BulletManPrefab); list.Add(CultistPrefab); list.Add(GhostPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(JamromancerPrefab); list.Add(NecromancerPrefab); list.Add(LeadWizardBluePrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 615; component2.EnemyGuid = "f0000000000000000000000000000015"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedShotGrubKin(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_02f6: Unknown result type (might be due to invalid IL or missing references) //IL_0488: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_04b2: Unknown result type (might be due to invalid IL or missing references) //IL_04b7: Unknown result type (might be due to invalid IL or missing references) //IL_0581: Unknown result type (might be due to invalid IL or missing references) //IL_0583: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(BulletShotgrubManPrefab); List list = new List(); List list2 = new List(); list.Clear(); list2.Clear(); list.Add(BulletManPrefab); list.Add(CultistPrefab); list.Add(GhostPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(JamromancerPrefab); list.Add(NecromancerPrefab); list.Add(LeadWizardBluePrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 615; component2.EnemyGuid = "f0000000000000000000000000000015"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedBird(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_028c: Unknown result type (might be due to invalid IL or missing references) //IL_03ec: Unknown result type (might be due to invalid IL or missing references) //IL_03f1: Unknown result type (might be due to invalid IL or missing references) //IL_0410: Unknown result type (might be due to invalid IL or missing references) //IL_0415: Unknown result type (might be due to invalid IL or missing references) //IL_04cc: Unknown result type (might be due to invalid IL or missing references) //IL_04ce: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(BirdPrefab); GameObject gameObject = BraveUtility.RandomElement(BraveUtility.Shuffle(new List { GhostPrefab, CultistPrefab, ArrowheadManPrefab, BulletRifleManPrefab, AshBulletManPrefab, AshBulletShotgunManPrefab, BulletMachineGunManPrefab, BulletManDevilPrefab, BulletManShroomedPrefab, BulletSkeletonHelmetPrefab, BulletShotgunManSawedOffPrefab, BulletShotgunManMutantPrefab, BulletManKaliberPrefab, BulletShotgunManCowboyPrefab, BulletShotgrubManPrefab, BulletManBandanaPrefab, FloatingEyePrefab, IceCubeGuyPrefab, GrenadeGuyPrefab })).gameObject; if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 620; component2.EnemyGuid = "f0000000000000000000000000000020"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedBulletShark(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_02bc: Unknown result type (might be due to invalid IL or missing references) //IL_041c: Unknown result type (might be due to invalid IL or missing references) //IL_0421: Unknown result type (might be due to invalid IL or missing references) //IL_0440: Unknown result type (might be due to invalid IL or missing references) //IL_0445: Unknown result type (might be due to invalid IL or missing references) //IL_04fc: Unknown result type (might be due to invalid IL or missing references) //IL_04fe: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(BulletSharkPrefab); GameObject gameObject = BraveUtility.RandomElement(BraveUtility.Shuffle(new List { GhostPrefab, CultistPrefab, ArrowheadManPrefab, BulletRifleManPrefab, AshBulletManPrefab, AshBulletShotgunManPrefab, BulletMachineGunManPrefab, BulletManDevilPrefab, BulletManShroomedPrefab, BulletSkeletonHelmetPrefab, BulletShotgunManSawedOffPrefab, BulletShotgunManMutantPrefab, BulletManKaliberPrefab, BulletShotgunManCowboyPrefab, BulletShotgrubManPrefab, BulletManBandanaPrefab, FloatingEyePrefab, JamromancerPrefab, NecromancerPrefab, LeadWizardBluePrefab, IceCubeGuyPrefab, GrenadeGuyPrefab })).gameObject; if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 621; component2.EnemyGuid = "f0000000000000000000000000000021"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedBlueLeadWizard(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_023d: Unknown result type (might be due to invalid IL or missing references) //IL_039d: Unknown result type (might be due to invalid IL or missing references) //IL_03a2: Unknown result type (might be due to invalid IL or missing references) //IL_03c1: Unknown result type (might be due to invalid IL or missing references) //IL_03c6: Unknown result type (might be due to invalid IL or missing references) //IL_047d: Unknown result type (might be due to invalid IL or missing references) //IL_047f: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(LeadWizardBluePrefab); List list = new List(); list.Clear(); list.Add(AshBulletShotgunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(IceCubeGuyPrefab); list.Add(GrenadeGuyPrefab); GameObject gameObject = BraveUtility.RandomElement(BraveUtility.Shuffle(list)).gameObject; if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); Object.Destroy((Object)(object)((Component)component2).GetComponent()); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 619; component2.EnemyGuid = "f0000000000000000000000000000019"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedNecromancer(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_02a3: Unknown result type (might be due to invalid IL or missing references) //IL_0403: Unknown result type (might be due to invalid IL or missing references) //IL_0408: Unknown result type (might be due to invalid IL or missing references) //IL_0427: Unknown result type (might be due to invalid IL or missing references) //IL_042c: Unknown result type (might be due to invalid IL or missing references) //IL_04e3: Unknown result type (might be due to invalid IL or missing references) //IL_04e5: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(NecromancerPrefab); GameObject gameObject = BraveUtility.RandomElement(BraveUtility.Shuffle(new List { GhostPrefab, CultistPrefab, ArrowheadManPrefab, BulletRifleManPrefab, AshBulletManPrefab, AshBulletShotgunManPrefab, BulletMachineGunManPrefab, BulletManDevilPrefab, BulletManShroomedPrefab, BulletSkeletonHelmetPrefab, BulletShotgunManSawedOffPrefab, BulletShotgunManMutantPrefab, BulletManKaliberPrefab, BulletShotgunManCowboyPrefab, BulletShotgrubManPrefab, BulletManBandanaPrefab, FloatingEyePrefab, IceCubeGuyPrefab, GrenadeGuyPrefab })).gameObject; if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); Object.Destroy((Object)(object)((Component)component2).GetComponent()); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 621; component2.EnemyGuid = "f0000000000000000000000000000021"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedJamromancer(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_02a3: Unknown result type (might be due to invalid IL or missing references) //IL_0403: Unknown result type (might be due to invalid IL or missing references) //IL_0408: Unknown result type (might be due to invalid IL or missing references) //IL_0427: Unknown result type (might be due to invalid IL or missing references) //IL_042c: Unknown result type (might be due to invalid IL or missing references) //IL_04e3: Unknown result type (might be due to invalid IL or missing references) //IL_04e5: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(JamromancerPrefab); GameObject gameObject = BraveUtility.RandomElement(BraveUtility.Shuffle(new List { GhostPrefab, CultistPrefab, ArrowheadManPrefab, BulletRifleManPrefab, AshBulletManPrefab, AshBulletShotgunManPrefab, BulletMachineGunManPrefab, BulletManDevilPrefab, BulletManShroomedPrefab, BulletSkeletonHelmetPrefab, BulletShotgunManSawedOffPrefab, BulletShotgunManMutantPrefab, BulletManKaliberPrefab, BulletShotgunManCowboyPrefab, BulletShotgrubManPrefab, BulletManBandanaPrefab, FloatingEyePrefab, IceCubeGuyPrefab, GrenadeGuyPrefab })).gameObject; if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); Object.Destroy((Object)(object)((Component)component2).GetComponent()); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 624; component2.EnemyGuid = "f0000000000000000000000000000024"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedWizardRed(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_0298: Unknown result type (might be due to invalid IL or missing references) //IL_03f8: Unknown result type (might be due to invalid IL or missing references) //IL_03fd: Unknown result type (might be due to invalid IL or missing references) //IL_041c: Unknown result type (might be due to invalid IL or missing references) //IL_0421: Unknown result type (might be due to invalid IL or missing references) //IL_04d8: Unknown result type (might be due to invalid IL or missing references) //IL_04da: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(WizardRedPrefab); GameObject gameObject = BraveUtility.RandomElement(BraveUtility.Shuffle(new List { GhostPrefab, CultistPrefab, ArrowheadManPrefab, BulletRifleManPrefab, AshBulletManPrefab, AshBulletShotgunManPrefab, BulletMachineGunManPrefab, BulletManDevilPrefab, BulletManShroomedPrefab, BulletSkeletonHelmetPrefab, BulletShotgunManSawedOffPrefab, BulletShotgunManMutantPrefab, BulletManKaliberPrefab, BulletShotgunManCowboyPrefab, BulletShotgrubManPrefab, BulletManBandanaPrefab, FloatingEyePrefab, IceCubeGuyPrefab, GrenadeGuyPrefab })).gameObject; if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 626; component2.EnemyGuid = "f0000000000000000000000000000026"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedWizardYellow(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_0298: Unknown result type (might be due to invalid IL or missing references) //IL_03f8: Unknown result type (might be due to invalid IL or missing references) //IL_03fd: Unknown result type (might be due to invalid IL or missing references) //IL_041c: Unknown result type (might be due to invalid IL or missing references) //IL_0421: Unknown result type (might be due to invalid IL or missing references) //IL_04d8: Unknown result type (might be due to invalid IL or missing references) //IL_04da: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(WizardYellowPrefab); GameObject gameObject = BraveUtility.RandomElement(BraveUtility.Shuffle(new List { GhostPrefab, CultistPrefab, ArrowheadManPrefab, BulletRifleManPrefab, AshBulletManPrefab, AshBulletShotgunManPrefab, BulletMachineGunManPrefab, BulletManDevilPrefab, BulletManShroomedPrefab, BulletSkeletonHelmetPrefab, BulletShotgunManSawedOffPrefab, BulletShotgunManMutantPrefab, BulletManKaliberPrefab, BulletShotgunManCowboyPrefab, BulletShotgrubManPrefab, BulletManBandanaPrefab, FloatingEyePrefab, IceCubeGuyPrefab, GrenadeGuyPrefab })).gameObject; if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 627; component2.EnemyGuid = "f0000000000000000000000000000027"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedWizardBlue(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_0298: Unknown result type (might be due to invalid IL or missing references) //IL_03f8: Unknown result type (might be due to invalid IL or missing references) //IL_03fd: Unknown result type (might be due to invalid IL or missing references) //IL_041c: Unknown result type (might be due to invalid IL or missing references) //IL_0421: Unknown result type (might be due to invalid IL or missing references) //IL_04d8: Unknown result type (might be due to invalid IL or missing references) //IL_04da: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(WizardBluePrefab); GameObject gameObject = BraveUtility.RandomElement(BraveUtility.Shuffle(new List { GhostPrefab, CultistPrefab, ArrowheadManPrefab, BulletRifleManPrefab, AshBulletManPrefab, AshBulletShotgunManPrefab, BulletMachineGunManPrefab, BulletManDevilPrefab, BulletManShroomedPrefab, BulletSkeletonHelmetPrefab, BulletShotgunManSawedOffPrefab, BulletShotgunManMutantPrefab, BulletManKaliberPrefab, BulletShotgunManCowboyPrefab, BulletShotgrubManPrefab, BulletManBandanaPrefab, FloatingEyePrefab, IceCubeGuyPrefab, GrenadeGuyPrefab })).gameObject; if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 628; component2.EnemyGuid = "f0000000000000000000000000000028"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedSunburst(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_029e: Unknown result type (might be due to invalid IL or missing references) //IL_0417: Unknown result type (might be due to invalid IL or missing references) //IL_041c: Unknown result type (might be due to invalid IL or missing references) //IL_043b: Unknown result type (might be due to invalid IL or missing references) //IL_0440: Unknown result type (might be due to invalid IL or missing references) //IL_04f7: Unknown result type (might be due to invalid IL or missing references) //IL_04f9: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(SunburstPrefab); List list = new List(); list.Clear(); list.Add(GhostPrefab); list.Add(CultistPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list.Add(IceCubeGuyPrefab); list.Add(GrenadeGuyPrefab); GameObject gameObject = BraveUtility.RandomElement(BraveUtility.Shuffle(list)).gameObject; if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 629; component2.EnemyGuid = "f0000000000000000000000000000029"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { component2.DiesOnCollison = true; } component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedBullatGiant(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_02a8: Unknown result type (might be due to invalid IL or missing references) //IL_0408: Unknown result type (might be due to invalid IL or missing references) //IL_040d: Unknown result type (might be due to invalid IL or missing references) //IL_042c: Unknown result type (might be due to invalid IL or missing references) //IL_0431: Unknown result type (might be due to invalid IL or missing references) //IL_04e8: Unknown result type (might be due to invalid IL or missing references) //IL_04ea: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(BullatGiantPrefab); GameObject gameObject = BraveUtility.RandomElement(BraveUtility.Shuffle(new List { GhostPrefab, CultistPrefab, ArrowheadManPrefab, BulletRifleManPrefab, AshBulletManPrefab, AshBulletShotgunManPrefab, BulletMachineGunManPrefab, BulletManDevilPrefab, BulletManShroomedPrefab, BulletSkeletonHelmetPrefab, BulletShotgunManSawedOffPrefab, BulletShotgunManMutantPrefab, BulletManKaliberPrefab, BulletShotgunManCowboyPrefab, BulletShotgrubManPrefab, BulletManBandanaPrefab, FloatingEyePrefab, IceCubeGuyPrefab, GrenadeGuyPrefab })).gameObject; if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } ((Component)component2).GetComponent().enemyGuidsToSpawn = ExpandLists.SpawnEnemyOnDeathGUIDList; component2.EnemyId = 630; component2.EnemyGuid = "f0000000000000000000000000000030"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedResourcefulRat(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_0010: 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_0367: Unknown result type (might be due to invalid IL or missing references) //IL_03ae: Unknown result type (might be due to invalid IL or missing references) //IL_04e0: Unknown result type (might be due to invalid IL or missing references) //IL_04e5: Unknown result type (might be due to invalid IL or missing references) //IL_050a: Unknown result type (might be due to invalid IL or missing references) //IL_050f: Unknown result type (might be due to invalid IL or missing references) GameObject val = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)EnemyDatabase.GetOrLoadByGuid("6868795625bd46f3ae3e4377adce288b")).gameObject, CurrentRoom, position, true, awakenAnimType, autoEngage); if ((Object)(object)val == (Object)null) { return null; } List list = new List(); List list2 = new List(); list.Add(GhostPrefab); list.Add(CultistPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list.Add(JamromancerPrefab); list.Add(NecromancerPrefab); list.Add(LeadWizardBluePrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component, isResourcefulRat: true); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 1002; component2.EnemyGuid = "ff000000000000000000000000001002"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); ((BraveBehaviour)component2).healthHaver.bossHealthBar = (BossBarType)0; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)null, false); component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); ExpandSpawnGlitchObjectOnDeath component3 = ((Component)((BraveBehaviour)component2).healthHaver).gameObject.GetComponent(); component3.spawnRatCorpse = true; component3.ratCorpseSpawnsItemOnExplosion = BraveUtility.RandomBool(); component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)1; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; ((GameActor)component2).StealthDeath = true; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component4 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component4, component); component2.ConfigureOnPlacement(CurrentRoom); return val; } public GameObject SpawnGlitchedBlockner(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_0347: Unknown result type (might be due to invalid IL or missing references) //IL_03d6: Unknown result type (might be due to invalid IL or missing references) //IL_0520: Unknown result type (might be due to invalid IL or missing references) //IL_0525: Unknown result type (might be due to invalid IL or missing references) //IL_054a: Unknown result type (might be due to invalid IL or missing references) //IL_054f: Unknown result type (might be due to invalid IL or missing references) //IL_05f1: Unknown result type (might be due to invalid IL or missing references) //IL_05f3: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(ManfredsRivalPrefab); if ((Object)(object)val == (Object)null) { return null; } List list = new List(); List list2 = new List(); list.Add(GhostPrefab); list.Add(CultistPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list.Add(JamromancerPrefab); list.Add(NecromancerPrefab); list.Add(LeadWizardBluePrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 1004; component2.EnemyGuid = "ff000000000000000000000000001004"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); ((BraveBehaviour)component2).healthHaver.bossHealthBar = (BossBarType)0; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)null, false); ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedBandanaBulletKin(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_02f6: Unknown result type (might be due to invalid IL or missing references) //IL_0488: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_04b2: Unknown result type (might be due to invalid IL or missing references) //IL_04b7: Unknown result type (might be due to invalid IL or missing references) //IL_0581: Unknown result type (might be due to invalid IL or missing references) //IL_0583: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(BulletManBandanaPrefab); List list = new List(); List list2 = new List(); list.Clear(); list2.Clear(); list.Add(GhostPrefab); list.Add(CultistPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(JamromancerPrefab); list.Add(NecromancerPrefab); list.Add(LeadWizardBluePrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 600; component2.EnemyGuid = "f0000000000000000000000000000000"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedAngryBook(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_0352: Unknown result type (might be due to invalid IL or missing references) //IL_04e4: Unknown result type (might be due to invalid IL or missing references) //IL_04e9: Unknown result type (might be due to invalid IL or missing references) //IL_050e: Unknown result type (might be due to invalid IL or missing references) //IL_0513: Unknown result type (might be due to invalid IL or missing references) //IL_05dd: Unknown result type (might be due to invalid IL or missing references) //IL_05df: Unknown result type (might be due to invalid IL or missing references) List list = new List(); List list2 = new List(); list.Add(AngryBookPrefab); list.Add(AngryBookBluePrefab); list.Add(AngryBookGreenPrefab); list = BraveUtility.Shuffle(list); list2.Add(GhostPrefab); list2.Add(CultistPrefab); list2.Add(ArrowheadManPrefab); list2.Add(BulletRifleManPrefab); list2.Add(AshBulletManPrefab); list2.Add(AshBulletShotgunManPrefab); list2.Add(BulletMachineGunManPrefab); list2.Add(BulletManDevilPrefab); list2.Add(BulletManShroomedPrefab); list2.Add(BulletSkeletonHelmetPrefab); list2.Add(BulletShotgunManSawedOffPrefab); list2.Add(BulletShotgunManMutantPrefab); list2.Add(BulletManKaliberPrefab); list2.Add(BulletShotgunManCowboyPrefab); list2.Add(BulletShotgrubManPrefab); list2.Add(BulletManBandanaPrefab); list2.Add(FloatingEyePrefab); list2.Add(JamromancerPrefab); list2.Add(NecromancerPrefab); list2.Add(LeadWizardBluePrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); GameObject val = Object.Instantiate(BraveUtility.RandomElement(list)); GameObject gameObject = BraveUtility.RandomElement(list2).gameObject; if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede" && component.EnemyGuid != "19b420dec96d4e9ea4aebc3398c0ba7a") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f && component.EnemyGuid != "19b420dec96d4e9ea4aebc3398c0ba7a") { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = Random.Range(900, 1000); component2.EnemyGuid = "f0ff000000000000000000000000f" + Random.Range(100, 999); ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedBeadie(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_0300: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_0497: Unknown result type (might be due to invalid IL or missing references) //IL_04bc: Unknown result type (might be due to invalid IL or missing references) //IL_04c1: Unknown result type (might be due to invalid IL or missing references) //IL_058b: Unknown result type (might be due to invalid IL or missing references) //IL_058d: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(FloatingEyePrefab); List list = new List(); List list2 = new List(); list.Add(BulletManPrefab); list.Add(GhostPrefab); list.Add(CultistPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 641; component2.EnemyGuid = "f0000000000000000000000000000041"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedChicken(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_03d3: Unknown result type (might be due to invalid IL or missing references) //IL_052b: Unknown result type (might be due to invalid IL or missing references) //IL_0530: Unknown result type (might be due to invalid IL or missing references) //IL_054f: Unknown result type (might be due to invalid IL or missing references) //IL_0554: Unknown result type (might be due to invalid IL or missing references) //IL_020a: Unknown result type (might be due to invalid IL or missing references) //IL_0663: Unknown result type (might be due to invalid IL or missing references) //IL_0665: Unknown result type (might be due to invalid IL or missing references) //IL_023a: Unknown result type (might be due to invalid IL or missing references) List list = BraveUtility.Shuffle(new List { GhostPrefab, CultistPrefab, ArrowheadManPrefab, BulletRifleManPrefab, AshBulletManPrefab, AshBulletShotgunManPrefab, BulletMachineGunManPrefab, BulletManDevilPrefab, BulletManShroomedPrefab, BulletSkeletonHelmetPrefab, BulletShotgunManSawedOffPrefab, BulletShotgunManMutantPrefab, BulletManKaliberPrefab, BulletShotgunManCowboyPrefab, BulletShotgrubManPrefab, BulletManBandanaPrefab, FloatingEyePrefab, WolfPrefab, TinyBlobulordObject, BulletKingsToadieObject }); GameObject val = Object.Instantiate(ChickenPrefab); GameObject gameObject = BraveUtility.RandomElement(list).gameObject; if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if ((Object)(object)gameObject != (Object)(object)TinyBlobulordObject) { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } else if (Random.value <= 0.2f) { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } SpeculativeRigidbody component3 = ((Component)component2).gameObject.GetComponent(); component3.PrimaryPixelCollider.Enabled = true; component3.HitboxPixelCollider.Enabled = true; component3.CollideWithTileMap = true; component3.PixelColliders.Add(((BraveBehaviour)component).specRigidbody.GroundPixelCollider); component3.GroundPixelCollider.Enabled = true; component3.ForceRegenerate((bool?)true, (bool?)true); ((BraveBehaviour)component3).RegenerateCache(); Object.Destroy((Object)(object)((Component)component2).GetComponent()); ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.AlwaysShowOffscreenArrow = true; ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)0f, false); ((BraveBehaviour)component2).healthHaver.minimumHealth = ((BraveBehaviour)component).healthHaver.minimumHealth; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.PreventAllDamage = false; component2.IsNormalEnemy = true; ((GameActor)component2).ImmuneToAllEffects = false; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; component2.EnemyId = Random.Range(700, 2000); component2.EnemyGuid = "f0000000000000000000000000000050"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; if ((Object)(object)gameObject == (Object)(object)WolfPrefab) { component2.DiesOnCollison = false; } component2.IgnoreForRoomClear = true; component2.CanTargetEnemies = false; component2.CanTargetPlayers = true; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; if (component.EnemyGuid == "4db03291a12144d69fe940d5a01de376") { component2.EnemySwitchState = component.EnemySwitchState; } float glitchInterval = Random.Range(0.02f, 0.06f); float dispProbability = Random.Range(0.1f, 0.16f); float dispIntensity = Random.Range(0.1f, 0.4f); float colorProbability = Random.Range(0.05f, 0.2f); float colorIntensity = Random.Range(0.1f, 0.25f); if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component4 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplyGlitchShader(component4, usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedSnake(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_02de: Unknown result type (might be due to invalid IL or missing references) //IL_041a: Unknown result type (might be due to invalid IL or missing references) //IL_041f: Unknown result type (might be due to invalid IL or missing references) //IL_043e: Unknown result type (might be due to invalid IL or missing references) //IL_0443: Unknown result type (might be due to invalid IL or missing references) //IL_0540: Unknown result type (might be due to invalid IL or missing references) //IL_0542: Unknown result type (might be due to invalid IL or missing references) List list = BraveUtility.Shuffle(new List { BulletManPrefab, GhostPrefab, CultistPrefab, ArrowheadManPrefab, BulletRifleManPrefab, AshBulletManPrefab, AshBulletShotgunManPrefab, BulletMachineGunManPrefab, BulletManDevilPrefab, BulletManShroomedPrefab, BulletSkeletonHelmetPrefab, BulletShotgunManSawedOffPrefab, BulletShotgunManMutantPrefab, BulletManKaliberPrefab, BulletShotgunManCowboyPrefab, BulletShotgrubManPrefab, BulletManBandanaPrefab, FloatingEyePrefab, GrenadeGuyPrefab, TinyBlobulordObject, BulletKingsToadieObject }); GameObject val = Object.Instantiate(SnakePrefab); GameObject val2 = BraveUtility.RandomElement(list); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)0f, false); ((BraveBehaviour)component2).healthHaver.minimumHealth = ((BraveBehaviour)component).healthHaver.minimumHealth; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.PreventAllDamage = false; component2.IsNormalEnemy = true; ((GameActor)component2).ImmuneToAllEffects = false; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; component2.EnemyId = Random.Range(700, 2000); component2.EnemyGuid = "f0000000000000000000000000000051"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.CanTargetEnemies = false; component2.CanTargetPlayers = true; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; float glitchInterval = Random.Range(0.02f, 0.06f); float dispProbability = Random.Range(0.1f, 0.16f); float dispIntensity = Random.Range(0.1f, 0.4f); float colorProbability = Random.Range(0.05f, 0.2f); float colorIntensity = Random.Range(0.1f, 0.25f); if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplyGlitchShader(component3, usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedBlizzbulon(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_0298: Unknown result type (might be due to invalid IL or missing references) //IL_03f8: Unknown result type (might be due to invalid IL or missing references) //IL_03fd: Unknown result type (might be due to invalid IL or missing references) //IL_041c: Unknown result type (might be due to invalid IL or missing references) //IL_0421: Unknown result type (might be due to invalid IL or missing references) //IL_04d8: Unknown result type (might be due to invalid IL or missing references) //IL_04da: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(BlizzbulonPrefab); GameObject gameObject = BraveUtility.RandomElement(BraveUtility.Shuffle(new List { GhostPrefab, CultistPrefab, ArrowheadManPrefab, BulletRifleManPrefab, AshBulletManPrefab, AshBulletShotgunManPrefab, BulletMachineGunManPrefab, BulletManDevilPrefab, BulletManShroomedPrefab, BulletSkeletonHelmetPrefab, BulletShotgunManSawedOffPrefab, BulletShotgunManMutantPrefab, BulletManKaliberPrefab, BulletShotgunManCowboyPrefab, BulletShotgrubManPrefab, BulletManBandanaPrefab, FloatingEyePrefab, IceCubeGuyPrefab, GrenadeGuyPrefab })).gameObject; if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 652; component2.EnemyGuid = "f0000000000000000000000000000052"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedRandomBlob(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_0273: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Unknown result type (might be due to invalid IL or missing references) //IL_046e: Unknown result type (might be due to invalid IL or missing references) //IL_0473: Unknown result type (might be due to invalid IL or missing references) //IL_0495: Unknown result type (might be due to invalid IL or missing references) //IL_049a: Unknown result type (might be due to invalid IL or missing references) //IL_05a2: Unknown result type (might be due to invalid IL or missing references) //IL_05a4: Unknown result type (might be due to invalid IL or missing references) GameObject val = BlobulonPrefab; if (BraveUtility.RandomBool()) { val = PoisbulonPrefab; } GameObject val2 = Object.Instantiate(val); GameObject gameObject = BraveUtility.RandomElement(new List { GhostPrefab, CultistPrefab, ArrowheadManPrefab, BulletRifleManPrefab, AshBulletManPrefab, AshBulletShotgunManPrefab, BulletMachineGunManPrefab, BulletManDevilPrefab, BulletManShroomedPrefab, BulletSkeletonHelmetPrefab, BulletShotgunManSawedOffPrefab, BulletShotgunManMutantPrefab, BulletManKaliberPrefab, BulletShotgunManCowboyPrefab, BulletShotgrubManPrefab, BulletManBandanaPrefab, FloatingEyePrefab, JamromancerPrefab, NecromancerPrefab, LeadWizardBluePrefab, GrenadeGuyPrefab }).gameObject; if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val2.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } SpawnEnemyOnDeath component3 = ((Component)component2).GetComponent(); component3.enemyGuidsToSpawn = ExpandLists.SpawnEnemyOnDeathGUIDList; component3.enemySelection = (EnemySelection)20; component3.minSpawnCount = 2; component3.maxSpawnCount = 3; component2.EnemyId = 653; component2.EnemyGuid = "f0000000000000000000000000000053"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; float glitchInterval = Random.Range(0.02f, 0.06f); float dispProbability = Random.Range(0.1f, 0.16f); float dispIntensity = Random.Range(0.1f, 0.4f); float colorProbability = Random.Range(0.05f, 0.2f); float colorIntensity = Random.Range(0.1f, 0.25f); tk2dBaseSprite component4 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); if ((Object)(object)gameObject == (Object)(object)BlobulonPrefab) { ExpandShaders.Instance.ApplyGlitchShader(component4, usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); } else { ExpandShaders.Instance.ApplySuperGlitchShader(component4, component, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); } GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val2); return result; } public GameObject SpawnGlitchedRat(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_02ba: Unknown result type (might be due to invalid IL or missing references) //IL_0370: Unknown result type (might be due to invalid IL or missing references) //IL_04b6: Unknown result type (might be due to invalid IL or missing references) //IL_04bb: Unknown result type (might be due to invalid IL or missing references) //IL_04da: Unknown result type (might be due to invalid IL or missing references) //IL_04df: Unknown result type (might be due to invalid IL or missing references) //IL_05dc: Unknown result type (might be due to invalid IL or missing references) //IL_05de: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Unknown result type (might be due to invalid IL or missing references) List obj = new List { GhostPrefab, ArrowheadManPrefab, BulletRifleManPrefab, AshBulletManPrefab, AshBulletShotgunManPrefab, BulletMachineGunManPrefab, BulletManDevilPrefab, BulletManShroomedPrefab, BulletSkeletonHelmetPrefab, BulletShotgunManSawedOffPrefab, BulletShotgunManMutantPrefab, BulletManKaliberPrefab, BulletShotgunManCowboyPrefab, BulletShotgrubManPrefab, BulletManBandanaPrefab, FloatingEyePrefab, WolfPrefab }; GameObject val = Object.Instantiate(BraveUtility.RandomElement(RatPrefabs)); GameObject gameObject = BraveUtility.RandomElement(obj).gameObject; if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } SpeculativeRigidbody component3 = ((Component)component2).gameObject.GetComponent(); component3.PrimaryPixelCollider.Enabled = true; component3.HitboxPixelCollider.Enabled = true; component3.CollideWithTileMap = true; component3.ClearFrameSpecificCollisionExceptions(); component3.ClearSpecificCollisionExceptions(); component3.RemoveCollisionLayerIgnoreOverride(CollisionMask.LayerToMask((CollisionLayer)0, (CollisionLayer)1)); component3.ForceRegenerate((bool?)true, (bool?)true); ((BraveBehaviour)component3).RegenerateCache(); ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = component.State; component2.AlwaysShowOffscreenArrow = true; ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)null, false); ((BraveBehaviour)component2).healthHaver.minimumHealth = ((BraveBehaviour)component).healthHaver.minimumHealth; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.PreventAllDamage = false; component2.IsNormalEnemy = true; component2.IsWorthShootingAt = true; ((GameActor)component2).ImmuneToAllEffects = false; component2.IsHarmlessEnemy = false; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; component2.EnemyId = Random.Range(800, 2000); component2.EnemyGuid = Guid.NewGuid().ToString(); ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.IgnoreForRoomClear = false; component2.CanTargetEnemies = false; component2.CanTargetPlayers = true; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; float glitchInterval = Random.Range(0.02f, 0.06f); float dispProbability = Random.Range(0.1f, 0.16f); float dispIntensity = Random.Range(0.1f, 0.4f); float colorProbability = Random.Range(0.05f, 0.2f); float colorIntensity = Random.Range(0.1f, 0.25f); if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component4 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplyGlitchShader(component4, usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedBigEnemy(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_03b6: Unknown result type (might be due to invalid IL or missing references) //IL_052f: Unknown result type (might be due to invalid IL or missing references) //IL_0534: Unknown result type (might be due to invalid IL or missing references) //IL_0556: Unknown result type (might be due to invalid IL or missing references) //IL_055b: Unknown result type (might be due to invalid IL or missing references) //IL_0619: Unknown result type (might be due to invalid IL or missing references) //IL_061b: Unknown result type (might be due to invalid IL or missing references) List list = new List(); List list2 = new List(); list.Add(PhaseSpiderPrefab); list.Add(BombsheePrefab); list.Add(GunNutPrefab); list.Add(GunNutSpectrePrefab); list.Add(GunNutChainPrefab); GameObject val = Object.Instantiate(BraveUtility.RandomElement(list), Vector2Extensions.ToVector3ZUp(new Vector2(0f, 0f), 1f), Quaternion.identity); if (((Object)(object)val == (Object)(object)GunNutSpectrePrefab) | ((Object)(object)val == (Object)(object)GunNutChainPrefab) | ((Object)(object)val == (Object)(object)BombsheePrefab)) { list2.Add(GhostPrefab); list2.Add(CultistPrefab); list2.Add(ArrowheadManPrefab); list2.Add(BulletRifleManPrefab); list2.Add(AshBulletManPrefab); list2.Add(AshBulletShotgunManPrefab); list2.Add(BulletMachineGunManPrefab); list2.Add(BulletManDevilPrefab); list2.Add(BulletManShroomedPrefab); list2.Add(BulletSkeletonHelmetPrefab); list2.Add(BulletShotgunManSawedOffPrefab); list2.Add(BulletShotgunManMutantPrefab); list2.Add(BulletManKaliberPrefab); list2.Add(BulletShotgunManCowboyPrefab); list2.Add(BulletShotgrubManPrefab); list2.Add(BulletManBandanaPrefab); list2.Add(FloatingEyePrefab); list2.Add(GrenadeGuyPrefab); } else { list2.Add(GrenadeGuyPrefab); } GameObject gameObject = BraveUtility.RandomElement(list2).gameObject; if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede" && component2.EnemyGuid != "19b420dec96d4e9ea4aebc3398c0ba7a") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f && component2.EnemyGuid != "19b420dec96d4e9ea4aebc3398c0ba7a") { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } if (Random.value <= 0.1f) { ((Component)component2).gameObject.AddComponent(); } if ((Object)(object)((Component)component2).gameObject.GetComponentInChildren() != (Object)null) { Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponentInChildren()); } component2.EnemyId = Random.Range(700, 800); component2.EnemyGuid = "ff000000000000000000000000000" + Random.Range(100, 999); ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = 0.5f; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (((Object)(object)gameObject == (Object)(object)BulletKingsToadieObject) | ((Object)(object)gameObject == (Object)(object)WolfPrefab)) { component2.DiesOnCollison = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedCop(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_05ac: Unknown result type (might be due to invalid IL or missing references) //IL_05b1: Unknown result type (might be due to invalid IL or missing references) //IL_05d6: Unknown result type (might be due to invalid IL or missing references) //IL_05db: Unknown result type (might be due to invalid IL or missing references) //IL_06a5: Unknown result type (might be due to invalid IL or missing references) //IL_06a7: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Unknown result type (might be due to invalid IL or missing references) //IL_0330: Unknown result type (might be due to invalid IL or missing references) //IL_0362: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(CopPrefab); List list = new List(); List list2 = new List(); list.Add(GhostPrefab); list.Add(CultistPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.HasBeenEngaged = false; try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } else { if (Random.value <= 0.2f) { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); } ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } SpeculativeRigidbody component3 = ((Component)component2).gameObject.GetComponent(); component3.PrimaryPixelCollider.Enabled = true; component3.HitboxPixelCollider.Enabled = true; component3.ClearFrameSpecificCollisionExceptions(); component3.ClearSpecificCollisionExceptions(); component3.RemoveCollisionLayerIgnoreOverride(CollisionMask.LayerToMask((CollisionLayer)0, (CollisionLayer)1)); Object.Destroy((Object)(object)((Component)component2).GetComponent()); if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)0f, false); ((BraveBehaviour)component2).healthHaver.minimumHealth = ((BraveBehaviour)component).healthHaver.minimumHealth; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.PreventAllDamage = false; component2.IsNormalEnemy = true; ((GameActor)component2).ImmuneToAllEffects = false; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; component2.EnemyId = 900; component2.EnemyGuid = "a0000000000000000000000000000000"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.IgnoreForRoomClear = false; component2.CanTargetEnemies = false; component2.CanTargetPlayers = true; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component4 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component4, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedCopAndroid(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_05ac: Unknown result type (might be due to invalid IL or missing references) //IL_05b1: Unknown result type (might be due to invalid IL or missing references) //IL_05d6: Unknown result type (might be due to invalid IL or missing references) //IL_05db: Unknown result type (might be due to invalid IL or missing references) //IL_06a5: Unknown result type (might be due to invalid IL or missing references) //IL_06a7: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Unknown result type (might be due to invalid IL or missing references) //IL_0330: Unknown result type (might be due to invalid IL or missing references) //IL_0362: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(CopAndroidPrefab); List list = new List(); List list2 = new List(); list.Add(GhostPrefab); list.Add(CultistPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.HasBeenEngaged = false; try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } else { if (Random.value <= 0.2f) { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); } ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } SpeculativeRigidbody component3 = ((Component)component2).gameObject.GetComponent(); component3.PrimaryPixelCollider.Enabled = true; component3.HitboxPixelCollider.Enabled = true; component3.ClearFrameSpecificCollisionExceptions(); component3.ClearSpecificCollisionExceptions(); component3.RemoveCollisionLayerIgnoreOverride(CollisionMask.LayerToMask((CollisionLayer)0, (CollisionLayer)1)); Object.Destroy((Object)(object)((Component)component2).GetComponent()); if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)0f, false); ((BraveBehaviour)component2).healthHaver.minimumHealth = ((BraveBehaviour)component).healthHaver.minimumHealth; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.PreventAllDamage = false; component2.IsNormalEnemy = true; ((GameActor)component2).ImmuneToAllEffects = false; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; component2.EnemyId = 902; component2.EnemyGuid = "a0000000000000000000000000000002"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.IgnoreForRoomClear = false; component2.CanTargetEnemies = false; component2.CanTargetPlayers = true; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component4 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component4, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedSpaceTurtle(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_05c4: Unknown result type (might be due to invalid IL or missing references) //IL_05c9: Unknown result type (might be due to invalid IL or missing references) //IL_05ee: Unknown result type (might be due to invalid IL or missing references) //IL_05f3: Unknown result type (might be due to invalid IL or missing references) //IL_0702: Unknown result type (might be due to invalid IL or missing references) //IL_0704: Unknown result type (might be due to invalid IL or missing references) //IL_0230: Unknown result type (might be due to invalid IL or missing references) //IL_0348: Unknown result type (might be due to invalid IL or missing references) //IL_037a: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(SuperSpaceTurtlePrefab); List list = new List(); List list2 = new List(); list.Clear(); list2.Clear(); list.Add(BulletManPrefab); list.Add(GhostPrefab); list.Add(CultistPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.HasBeenEngaged = false; try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } else { if (Random.value <= 0.2f) { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); } ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } SpeculativeRigidbody component3 = ((Component)component2).gameObject.GetComponent(); component3.PrimaryPixelCollider.Enabled = true; component3.HitboxPixelCollider.Enabled = true; component3.ClearFrameSpecificCollisionExceptions(); component3.ClearSpecificCollisionExceptions(); component3.RemoveCollisionLayerIgnoreOverride(CollisionMask.LayerToMask((CollisionLayer)0, (CollisionLayer)1)); Object.Destroy((Object)(object)((Component)component2).GetComponent()); if (Random.value <= 0.25f) { ((Component)component2).gameObject.AddComponent(); } ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)0f, false); ((BraveBehaviour)component2).healthHaver.minimumHealth = ((BraveBehaviour)component).healthHaver.minimumHealth; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.PreventAllDamage = false; component2.IsNormalEnemy = true; ((GameActor)component2).ImmuneToAllEffects = false; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; component2.EnemyId = 901; component2.EnemyGuid = "a0000000000000000000000000000001"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.IgnoreForRoomClear = false; component2.CanTargetEnemies = false; component2.CanTargetPlayers = true; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; float glitchInterval = Random.Range(0.02f, 0.06f); float dispProbability = Random.Range(0.1f, 0.16f); float dispIntensity = Random.Range(0.1f, 0.4f); float colorProbability = Random.Range(0.05f, 0.2f); float colorIntensity = Random.Range(0.1f, 0.25f); if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component4 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplyGlitchShader(component4, usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedCursedSpaceTurtle(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_05c7: Unknown result type (might be due to invalid IL or missing references) //IL_05cc: Unknown result type (might be due to invalid IL or missing references) //IL_05f1: Unknown result type (might be due to invalid IL or missing references) //IL_05f6: Unknown result type (might be due to invalid IL or missing references) //IL_06db: Unknown result type (might be due to invalid IL or missing references) //IL_06dd: Unknown result type (might be due to invalid IL or missing references) //IL_0230: Unknown result type (might be due to invalid IL or missing references) //IL_0348: Unknown result type (might be due to invalid IL or missing references) //IL_037a: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(CursedSuperSpaceTurtlePrefab); List list = new List(); List list2 = new List(); list.Clear(); list2.Clear(); list.Add(BulletManPrefab); list.Add(GhostPrefab); list.Add(CultistPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.HasBeenEngaged = false; try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } else { if (Random.value <= 0.2f) { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); } ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } if (BraveUtility.RandomBool()) { ((Component)component2).gameObject.AddComponent(); } SpeculativeRigidbody component3 = ((Component)component2).gameObject.GetComponent(); component3.PrimaryPixelCollider.Enabled = true; component3.HitboxPixelCollider.Enabled = true; component3.ClearFrameSpecificCollisionExceptions(); component3.ClearSpecificCollisionExceptions(); component3.RemoveCollisionLayerIgnoreOverride(CollisionMask.LayerToMask((CollisionLayer)0, (CollisionLayer)1)); Object.Destroy((Object)(object)((Component)component2).GetComponent()); ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)0f, false); ((BraveBehaviour)component2).healthHaver.minimumHealth = ((BraveBehaviour)component).healthHaver.minimumHealth; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.PreventAllDamage = false; component2.IsNormalEnemy = true; ((GameActor)component2).ImmuneToAllEffects = false; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; component2.EnemyId = 903; component2.EnemyGuid = "a0000000000000000000000000000003"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ForceBlackPhantomParticles = true; component2.IgnoreForRoomClear = false; component2.CanTargetEnemies = false; component2.CanTargetPlayers = true; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; Random.Range(0.02f, 0.06f); Random.Range(0.1f, 0.16f); Random.Range(0.1f, 0.4f); Random.Range(0.05f, 0.2f); Random.Range(0.1f, 0.25f); if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); component2.BecomeBlackPhantom(); return result; } public GameObject SpawnGlitchedPayDayShotGunGuy(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_021f: Unknown result type (might be due to invalid IL or missing references) //IL_05a0: Unknown result type (might be due to invalid IL or missing references) //IL_05a5: Unknown result type (might be due to invalid IL or missing references) //IL_05c7: Unknown result type (might be due to invalid IL or missing references) //IL_05cc: Unknown result type (might be due to invalid IL or missing references) //IL_068e: Unknown result type (might be due to invalid IL or missing references) //IL_0690: Unknown result type (might be due to invalid IL or missing references) //IL_032b: 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) GameObject val = Object.Instantiate(PayDayShootPrefab); List list = new List(); List list2 = new List(); list.Clear(); list2.Clear(); list.Add(BulletManPrefab); list.Add(GhostPrefab); list.Add(CultistPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(JamromancerPrefab); list.Add(LeadWizardBluePrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list.Add(IceCubeGuyPrefab); list.Add(GrenadeGuyPrefab); list = BraveUtility.Shuffle(list); GameObject gameObject = BraveUtility.RandomElement(list).gameObject; if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.HasBeenEngaged = false; try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } else { if (Random.value <= 0.2f) { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); } ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } SpeculativeRigidbody component3 = ((Component)component2).gameObject.GetComponent(); component3.PrimaryPixelCollider.Enabled = true; component3.HitboxPixelCollider.Enabled = true; component3.ClearFrameSpecificCollisionExceptions(); component3.ClearSpecificCollisionExceptions(); component3.RemoveCollisionLayerIgnoreOverride(CollisionMask.LayerToMask((CollisionLayer)0, (CollisionLayer)1)); Object.Destroy((Object)(object)((Component)component2).GetComponent()); Object.Destroy((Object)(object)((Component)component2).GetComponent()); if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)0f, false); ((BraveBehaviour)component2).healthHaver.minimumHealth = ((BraveBehaviour)component).healthHaver.minimumHealth; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.PreventAllDamage = false; component2.IsNormalEnemy = true; ((GameActor)component2).ImmuneToAllEffects = false; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; component2.EnemyId = 904; component2.EnemyGuid = "a0000000000000000000000000000004"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.IgnoreForRoomClear = false; component2.CanTargetEnemies = false; component2.CanTargetPlayers = true; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component4 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component4, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedR2G2(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_05c4: Unknown result type (might be due to invalid IL or missing references) //IL_05c9: Unknown result type (might be due to invalid IL or missing references) //IL_05ee: Unknown result type (might be due to invalid IL or missing references) //IL_05f3: Unknown result type (might be due to invalid IL or missing references) //IL_0702: Unknown result type (might be due to invalid IL or missing references) //IL_0704: Unknown result type (might be due to invalid IL or missing references) //IL_0230: Unknown result type (might be due to invalid IL or missing references) //IL_0348: Unknown result type (might be due to invalid IL or missing references) //IL_037a: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(R2G2Prefab); List list = new List(); List list2 = new List(); list.Add(GhostPrefab); list.Add(CultistPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list.Add(NecromancerPrefab); list.Add(LeadWizardBluePrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.HasBeenEngaged = false; try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } else { if (Random.value <= 0.2f) { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); } ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } SpeculativeRigidbody component3 = ((Component)component2).gameObject.GetComponent(); component3.PrimaryPixelCollider.Enabled = true; component3.HitboxPixelCollider.Enabled = true; component3.ClearFrameSpecificCollisionExceptions(); component3.ClearSpecificCollisionExceptions(); component3.RemoveCollisionLayerIgnoreOverride(CollisionMask.LayerToMask((CollisionLayer)0, (CollisionLayer)1)); Object.Destroy((Object)(object)((Component)component2).GetComponent()); if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)0f, false); ((BraveBehaviour)component2).healthHaver.minimumHealth = ((BraveBehaviour)component).healthHaver.minimumHealth; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.PreventAllDamage = false; component2.IsNormalEnemy = true; ((GameActor)component2).ImmuneToAllEffects = false; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; component2.EnemyId = 905; component2.EnemyGuid = "a0000000000000000000000000000005"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.IgnoreForRoomClear = false; component2.CanTargetEnemies = false; component2.CanTargetPlayers = true; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; float glitchInterval = Random.Range(0.02f, 0.06f); float dispProbability = Random.Range(0.1f, 0.16f); float dispIntensity = Random.Range(0.1f, 0.4f); float colorProbability = Random.Range(0.05f, 0.2f); float colorIntensity = Random.Range(0.1f, 0.25f); if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component4 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplyGlitchShader(component4, usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedPortableTurret(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_024f: Unknown result type (might be due to invalid IL or missing references) //IL_03c9: Unknown result type (might be due to invalid IL or missing references) //IL_03ce: Unknown result type (might be due to invalid IL or missing references) //IL_03e8: Unknown result type (might be due to invalid IL or missing references) //IL_04aa: Unknown result type (might be due to invalid IL or missing references) //IL_04af: Unknown result type (might be due to invalid IL or missing references) //IL_04ce: Unknown result type (might be due to invalid IL or missing references) //IL_04d3: Unknown result type (might be due to invalid IL or missing references) //IL_05a0: Unknown result type (might be due to invalid IL or missing references) //IL_05a2: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) List list = BraveUtility.Shuffle(new List { ArrowheadManPrefab, BulletRifleManPrefab, AshBulletManPrefab, AshBulletShotgunManPrefab, BulletMachineGunManPrefab, BulletManDevilPrefab, BulletManShroomedPrefab, BulletSkeletonHelmetPrefab, BulletShotgunManSawedOffPrefab, BulletShotgunManMutantPrefab, BulletManKaliberPrefab, BulletShotgunManCowboyPrefab, BulletShotgrubManPrefab, BulletManBandanaPrefab }); GameObject val = Object.Instantiate(PortableTurretPrefab); GameObject gameObject = BraveUtility.RandomElement(list).gameObject; if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { Object.Destroy((Object)(object)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()); ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } SpeculativeRigidbody component3 = ((Component)component2).gameObject.GetComponent(); component3.PrimaryPixelCollider.Enabled = true; component3.HitboxPixelCollider.Enabled = true; component3.ClearFrameSpecificCollisionExceptions(); component3.ClearSpecificCollisionExceptions(); component3.RemoveCollisionLayerIgnoreOverride(CollisionMask.LayerToMask((CollisionLayer)0, (CollisionLayer)1)); Object.Destroy((Object)(object)((Component)component2).GetComponent()); Object.Destroy((Object)(object)((Component)component2).GetComponent()); component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.HasBeenEngaged = false; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.PreventAllDamage = false; component2.IsNormalEnemy = true; ((GameActor)component2).ImmuneToAllEffects = false; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; component2.EnemyId = 906; component2.EnemyGuid = "a0000000000000000000000000000006"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.BehaviorVelocity = component.BehaviorVelocity; ((BraveBehaviour)component2).healthHaver.ApplyDamage(80f, new Vector2(1f, 1f), "TrimHPCount", (CoreDamageTypes)0, (DamageCategory)0, true, (PixelCollider)null, true); component2.HitByEnemyBullets = true; component2.CanTargetPlayers = true; component2.CanTargetEnemies = false; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; float glitchInterval = Random.Range(0.02f, 0.06f); float dispProbability = Random.Range(0.1f, 0.16f); float dispIntensity = Random.Range(0.1f, 0.4f); float colorProbability = Random.Range(0.05f, 0.2f); float colorIntensity = Random.Range(0.1f, 0.25f); tk2dBaseSprite component4 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplyGlitchShader(component4, usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedBabyMimic(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_0528: Unknown result type (might be due to invalid IL or missing references) //IL_052d: Unknown result type (might be due to invalid IL or missing references) //IL_054c: Unknown result type (might be due to invalid IL or missing references) //IL_0551: Unknown result type (might be due to invalid IL or missing references) //IL_064e: Unknown result type (might be due to invalid IL or missing references) //IL_0650: Unknown result type (might be due to invalid IL or missing references) //IL_02eb: Unknown result type (might be due to invalid IL or missing references) //IL_031b: Unknown result type (might be due to invalid IL or missing references) List list = new List(); list.Clear(); list.Add(GhostPrefab); list.Add(CultistPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list.Add(IceCubeGuyPrefab); list.Add(GrenadeGuyPrefab); List list2 = BraveUtility.Shuffle(list); GameObject val = Object.Instantiate(BabyGoodMimicPrefab); GameObject gameObject = BraveUtility.RandomElement(list2).gameObject; if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.HasBeenEngaged = false; component2.AlwaysShowOffscreenArrow = true; AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } else { if (Random.value <= 0.2f) { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); } ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } SpeculativeRigidbody specRigidbody = ((BraveBehaviour)component2).specRigidbody; specRigidbody.PrimaryPixelCollider.Enabled = true; specRigidbody.HitboxPixelCollider.Enabled = true; specRigidbody.ClearFrameSpecificCollisionExceptions(); specRigidbody.ClearSpecificCollisionExceptions(); specRigidbody.RemoveCollisionLayerIgnoreOverride(CollisionMask.LayerToMask((CollisionLayer)0, (CollisionLayer)1)); Object.Destroy((Object)(object)((Component)component2).GetComponent()); if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)0f, false); ((BraveBehaviour)component2).healthHaver.minimumHealth = ((BraveBehaviour)component).healthHaver.minimumHealth; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.PreventAllDamage = false; component2.IsNormalEnemy = true; ((GameActor)component2).ImmuneToAllEffects = false; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; component2.EnemyId = 907; component2.EnemyGuid = "a0000000000000000000000000000007"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.IgnoreForRoomClear = false; component2.CanTargetEnemies = false; component2.CanTargetPlayers = true; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } float glitchInterval = Random.Range(0.02f, 0.06f); float dispProbability = Random.Range(0.1f, 0.16f); float dispIntensity = Random.Range(0.1f, 0.4f); float colorProbability = Random.Range(0.05f, 0.2f); float colorIntensity = Random.Range(0.1f, 0.25f); tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplyGlitchShader(component3, usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedDog(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_0522: Unknown result type (might be due to invalid IL or missing references) //IL_0527: Unknown result type (might be due to invalid IL or missing references) //IL_0546: Unknown result type (might be due to invalid IL or missing references) //IL_054b: Unknown result type (might be due to invalid IL or missing references) //IL_0648: Unknown result type (might be due to invalid IL or missing references) //IL_064a: Unknown result type (might be due to invalid IL or missing references) //IL_02de: Unknown result type (might be due to invalid IL or missing references) //IL_030e: Unknown result type (might be due to invalid IL or missing references) List list = BraveUtility.Shuffle(new List { GhostPrefab, CultistPrefab, ArrowheadManPrefab, BulletRifleManPrefab, AshBulletManPrefab, AshBulletShotgunManPrefab, BulletMachineGunManPrefab, BulletManDevilPrefab, BulletManShroomedPrefab, BulletSkeletonHelmetPrefab, BulletShotgunManSawedOffPrefab, BulletShotgunManMutantPrefab, BulletManKaliberPrefab, BulletShotgunManCowboyPrefab, BulletShotgrubManPrefab, BulletManBandanaPrefab, FloatingEyePrefab, IceCubeGuyPrefab, GrenadeGuyPrefab }); GameObject val = Object.Instantiate(DogPrefab); GameObject gameObject = BraveUtility.RandomElement(list).gameObject; if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.HasBeenEngaged = false; AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } else { if (Random.value <= 0.2f) { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); } ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } SpeculativeRigidbody specRigidbody = ((BraveBehaviour)component2).specRigidbody; specRigidbody.PrimaryPixelCollider.Enabled = true; specRigidbody.HitboxPixelCollider.Enabled = true; specRigidbody.ClearFrameSpecificCollisionExceptions(); specRigidbody.ClearSpecificCollisionExceptions(); specRigidbody.RemoveCollisionLayerIgnoreOverride(CollisionMask.LayerToMask((CollisionLayer)0, (CollisionLayer)1)); Object.Destroy((Object)(object)((Component)component2).GetComponent()); if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)0f, false); ((BraveBehaviour)component2).healthHaver.minimumHealth = ((BraveBehaviour)component).healthHaver.minimumHealth; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.PreventAllDamage = false; component2.IsNormalEnemy = true; ((GameActor)component2).ImmuneToAllEffects = false; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; component2.EnemyId = 908; component2.EnemyGuid = "a0000000000000000000000000000008"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.AlwaysShowOffscreenArrow = true; component2.IgnoreForRoomClear = false; component2.CanTargetEnemies = false; component2.CanTargetPlayers = true; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } float glitchInterval = Random.Range(0.02f, 0.06f); float dispProbability = Random.Range(0.1f, 0.16f); float dispIntensity = Random.Range(0.1f, 0.4f); float colorProbability = Random.Range(0.05f, 0.2f); float colorIntensity = Random.Range(0.1f, 0.25f); tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplyGlitchShader(component3, usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedWolf(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_01f0: Unknown result type (might be due to invalid IL or missing references) //IL_053a: Unknown result type (might be due to invalid IL or missing references) //IL_053f: Unknown result type (might be due to invalid IL or missing references) //IL_055e: Unknown result type (might be due to invalid IL or missing references) //IL_0563: Unknown result type (might be due to invalid IL or missing references) //IL_02f6: Unknown result type (might be due to invalid IL or missing references) //IL_0326: Unknown result type (might be due to invalid IL or missing references) //IL_0696: Unknown result type (might be due to invalid IL or missing references) //IL_0698: Unknown result type (might be due to invalid IL or missing references) List list = BraveUtility.Shuffle(new List { GhostPrefab, CultistPrefab, ArrowheadManPrefab, BulletRifleManPrefab, AshBulletManPrefab, AshBulletShotgunManPrefab, BulletMachineGunManPrefab, BulletManDevilPrefab, BulletManShroomedPrefab, BulletSkeletonHelmetPrefab, BulletShotgunManSawedOffPrefab, BulletShotgunManMutantPrefab, BulletManKaliberPrefab, BulletShotgunManCowboyPrefab, BulletShotgrubManPrefab, BulletManBandanaPrefab, FloatingEyePrefab, LeadWizardBluePrefab, BulletKingsToadieObject, IceCubeGuyPrefab, GrenadeGuyPrefab }); GameObject val = Object.Instantiate(WolfPrefab); GameObject gameObject = BraveUtility.RandomElement(list).gameObject; if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.HasBeenEngaged = false; AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } else { if (Random.value <= 0.2f) { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); } ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } SpeculativeRigidbody specRigidbody = ((BraveBehaviour)component2).specRigidbody; specRigidbody.PrimaryPixelCollider.Enabled = true; specRigidbody.HitboxPixelCollider.Enabled = true; specRigidbody.ClearFrameSpecificCollisionExceptions(); specRigidbody.ClearSpecificCollisionExceptions(); specRigidbody.RemoveCollisionLayerIgnoreOverride(CollisionMask.LayerToMask((CollisionLayer)0, (CollisionLayer)1)); Object.Destroy((Object)(object)((Component)component2).GetComponent()); if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)0f, false); ((BraveBehaviour)component2).healthHaver.minimumHealth = ((BraveBehaviour)component).healthHaver.minimumHealth; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.PreventAllDamage = false; component2.IsNormalEnemy = true; ((GameActor)component2).ImmuneToAllEffects = false; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; component2.EnemyId = 909; component2.EnemyGuid = "a0000000000000000000000000000009"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.AlwaysShowOffscreenArrow = true; component2.IgnoreForRoomClear = false; component2.CanTargetEnemies = false; component2.CanTargetPlayers = true; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); if ((Object)(object)gameObject != (Object)(object)WolfPrefab) { ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); } else { float glitchInterval = Random.Range(0.02f, 0.06f); float dispProbability = Random.Range(0.1f, 0.16f); float dispIntensity = Random.Range(0.1f, 0.4f); float colorProbability = Random.Range(0.05f, 0.2f); float colorIntensity = Random.Range(0.1f, 0.25f); ExpandShaders.Instance.ApplyGlitchShader(component3, usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); } GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedSerJunkan(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_025a: Unknown result type (might be due to invalid IL or missing references) //IL_038e: Unknown result type (might be due to invalid IL or missing references) //IL_06a9: Unknown result type (might be due to invalid IL or missing references) //IL_05ee: Unknown result type (might be due to invalid IL or missing references) //IL_03d2: Unknown result type (might be due to invalid IL or missing references) //IL_0d5b: Unknown result type (might be due to invalid IL or missing references) //IL_0d60: Unknown result type (might be due to invalid IL or missing references) //IL_0d85: Unknown result type (might be due to invalid IL or missing references) //IL_0d8a: Unknown result type (might be due to invalid IL or missing references) //IL_0eb2: Unknown result type (might be due to invalid IL or missing references) //IL_0eb4: Unknown result type (might be due to invalid IL or missing references) List list = new List(); list.Clear(); list.Add(SerJunkanPrefab); list.Add(GhostPrefab); list.Add(CultistPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list.Add(GrenadeGuyPrefab); List list2 = BraveUtility.Shuffle(list); GameObject val = Object.Instantiate(SerJunkanPrefab); GameObject gameObject = BraveUtility.RandomElement(list2).gameObject; if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } bool flag = false; int num = 0; if ((Object)(object)gameObject != (Object)(object)SerJunkanPrefab) { num = Random.Range(0, 6); } if ((double)Random.value <= 0.15 && (Object)(object)gameObject == (Object)(object)SerJunkanPrefab) { flag = true; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); try { if ((Object)(object)gameObject == (Object)(object)SerJunkanPrefab && flag && !((BraveBehaviour)component2).gameActor.IsFlying) { ((BraveBehaviour)component2).gameActor.SetIsFlying(true, "angel", false, true); } } catch (Exception) { } if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.HasBeenEngaged = false; AddOrReplaceAIActorConfig(component2, component); if ((Object)(object)val != (Object)(object)SerJunkanPrefab) { try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } else if ((Random.value <= 0.2f) | ((Object)(object)gameObject == (Object)(object)SerJunkanPrefab)) { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } Object.Destroy((Object)(object)((Component)component2).GetComponent()); Object.Destroy((Object)(object)((Component)component2).GetComponent()); } else { try { if ((Object)(object)((BraveBehaviour)component).aiShooter != (Object)null) { ((Component)component2).GetComponent(); _ = ((BraveBehaviour)component).bulletBank; ((BraveBehaviour)component2).bulletBank.Bullets = ((BraveBehaviour)component).bulletBank.Bullets; ((BraveBehaviour)component2).bulletBank.useDefaultBulletIfMissing = true; if ((Object)(object)((BraveBehaviour)component2).aiShooter == (Object)null) { ((Component)component2).gameObject.AddComponent(); } } } catch (Exception) { } Object.Destroy((Object)(object)((Component)component2).GetComponent()); } SpeculativeRigidbody specRigidbody = ((BraveBehaviour)component2).specRigidbody; specRigidbody.PrimaryPixelCollider.Enabled = true; specRigidbody.HitboxPixelCollider.Enabled = true; specRigidbody.ClearFrameSpecificCollisionExceptions(); specRigidbody.ClearSpecificCollisionExceptions(); specRigidbody.RemoveCollisionLayerIgnoreOverride(CollisionMask.LayerToMask((CollisionLayer)0, (CollisionLayer)1)); ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)0f, false); ((BraveBehaviour)component2).healthHaver.minimumHealth = ((BraveBehaviour)component).healthHaver.minimumHealth; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.PreventAllDamage = false; component2.IsNormalEnemy = true; ((GameActor)component2).ImmuneToAllEffects = false; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; component2.EnemyId = 911; component2.EnemyGuid = "a0000000000000000000000000000011"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.AlwaysShowOffscreenArrow = true; if ((Object)(object)gameObject == (Object)(object)SerJunkanPrefab) { SackKnightController component3 = ((Component)component2).GetComponent(); AIAnimator component4 = ((Component)component2).GetComponent(); if (flag) { component3.CurrentForm = (SackKnightPhase)7; component4.IdleAnimation.AnimNames[0] = "junk_a_idle_right"; component4.IdleAnimation.AnimNames[1] = "junk_a_idle_left"; component4.MoveAnimation.AnimNames[0] = "junk_a_idle_right"; component4.MoveAnimation.AnimNames[1] = "junk_a_idle_left"; component4.TalkAnimation.AnimNames[0] = "junk_a_talk_right"; component4.TalkAnimation.AnimNames[1] = "junk_a_talk_left"; component4.OtherAnimations[0].anim.AnimNames[0] = "junk_a_attack_right"; component4.OtherAnimations[0].anim.AnimNames[1] = "junk_a_attack_left"; } else { component3.CurrentForm = (SackKnightPhase)5; component4.IdleAnimation.AnimNames[0] = "junk_shspc_idle_right"; component4.IdleAnimation.AnimNames[1] = "junk_shspc_idle_left"; component4.MoveAnimation.AnimNames[0] = "junk_shspc_move_right"; component4.MoveAnimation.AnimNames[1] = "junk_shspc_move_left"; component4.TalkAnimation.AnimNames[0] = "junk_shspc_talk_right"; component4.TalkAnimation.AnimNames[1] = "junk_shspc_talk_left"; component4.OtherAnimations[0].anim.AnimNames[0] = "junk_shspc_attack_right"; component4.OtherAnimations[0].anim.AnimNames[1] = "junk_shspc_attack_left"; } } else { AIAnimator component5 = ((Component)component2).GetComponent(); if (num == 1) { component5.IdleAnimation.AnimNames[0] = "junk_h_idle_right"; component5.IdleAnimation.AnimNames[1] = "junk_h_idle_left"; component5.MoveAnimation.AnimNames[0] = "junk_h_move_right"; component5.MoveAnimation.AnimNames[1] = "junk_h_move_left"; component5.TalkAnimation.AnimNames[0] = "junk_h_talk_right"; component5.TalkAnimation.AnimNames[1] = "junk_h_talk_left"; component5.OtherAnimations[0].anim.AnimNames[0] = "junk_h_attack_right"; component5.OtherAnimations[0].anim.AnimNames[1] = "junk_h_attack_left"; } if (num == 2) { component5.IdleAnimation.AnimNames[0] = "junk_sh_idle_right"; component5.IdleAnimation.AnimNames[1] = "junk_sh_idle_left"; component5.MoveAnimation.AnimNames[0] = "junk_sh_move_right"; component5.MoveAnimation.AnimNames[1] = "junk_sh_move_left"; component5.TalkAnimation.AnimNames[0] = "junk_sh_talk_right"; component5.TalkAnimation.AnimNames[1] = "junk_sh_talk_left"; component5.OtherAnimations[0].anim.AnimNames[0] = "junk_sh_attack_right"; component5.OtherAnimations[0].anim.AnimNames[1] = "junk_sh_attack_left"; } if (num == 3) { component5.IdleAnimation.AnimNames[0] = "junk_shs_idle_right"; component5.IdleAnimation.AnimNames[1] = "junk_shs_idle_left"; component5.MoveAnimation.AnimNames[0] = "junk_shs_move_right"; component5.MoveAnimation.AnimNames[1] = "junk_shs_move_left"; component5.TalkAnimation.AnimNames[0] = "junk_shs_talk_right"; component5.TalkAnimation.AnimNames[1] = "junk_shs_talk_left"; component5.OtherAnimations[0].anim.AnimNames[0] = "junk_shs_attack_right"; component5.OtherAnimations[0].anim.AnimNames[1] = "junk_shs_attack_left"; } if (num == 4) { component5.IdleAnimation.AnimNames[0] = "junk_shsp_idle_right"; component5.IdleAnimation.AnimNames[1] = "junk_shsp_idle_left"; component5.MoveAnimation.AnimNames[0] = "junk_shsp_move_right"; component5.MoveAnimation.AnimNames[1] = "junk_shsp_move_left"; component5.TalkAnimation.AnimNames[0] = "junk_shsp_talk_right"; component5.TalkAnimation.AnimNames[1] = "junk_shsp_talk_left"; component5.OtherAnimations[0].anim.AnimNames[0] = "junk_shsp_attack_right"; component5.OtherAnimations[0].anim.AnimNames[1] = "junk_shsp_attack_left"; } if (num == 5) { component5.IdleAnimation.AnimNames[0] = "junk_shspcg_idle_right"; component5.IdleAnimation.AnimNames[1] = "junk_shspcg_idle_left"; component5.MoveAnimation.AnimNames[0] = "junk_shspcg_move_right"; component5.MoveAnimation.AnimNames[1] = "junk_shspcg_move_left"; component5.TalkAnimation.AnimNames[0] = "junk_shspcg_talk_right"; component5.TalkAnimation.AnimNames[1] = "junk_shspcg_talk_left"; component5.OtherAnimations[0].anim.AnimNames[0] = "junk_shspcg_attack_right"; component5.OtherAnimations[0].anim.AnimNames[1] = "junk_shspcg_attack_left"; } if (num > 5) { SpeculativeRigidbody component6 = ((Component)component2).GetComponent(); component6.PixelColliders[0].ManualOffsetX = 30; component6.PixelColliders[0].ManualOffsetY = 3; component6.PixelColliders[0].ManualWidth = 17; component6.PixelColliders[0].ManualHeight = 16; component6.PixelColliders[1].ManualOffsetX = 30; component6.PixelColliders[1].ManualOffsetY = 3; component6.PixelColliders[1].ManualWidth = 17; component6.PixelColliders[1].ManualHeight = 28; component6.PixelColliders[0].Regenerate(((BraveBehaviour)component2).transform, true, true); component6.PixelColliders[1].Regenerate(((BraveBehaviour)component2).transform, true, true); component6.Reinitialize(); component5.IdleAnimation.AnimNames[0] = "junk_g_idle_right"; component5.IdleAnimation.AnimNames[1] = "junk_g_idle_left"; component5.MoveAnimation.AnimNames[0] = "junk_g_move_right"; component5.MoveAnimation.AnimNames[1] = "junk_g_move_left"; component5.TalkAnimation.AnimNames[0] = "junk_g_talk_right"; component5.TalkAnimation.AnimNames[1] = "junk_g_talk_left"; component5.OtherAnimations[0].anim.AnimNames[0] = "junk_g_sword_right"; component5.OtherAnimations[0].anim.AnimNames[1] = "junk_g_sword_left"; } } if (Random.value <= 0.3f) { ((Component)component2).gameObject.AddComponent(); } component2.IgnoreForRoomClear = false; component2.CanTargetEnemies = false; component2.CanTargetPlayers = true; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; ((BraveBehaviour)component2).aiActor.CorpseObject = ((BraveBehaviour)component).aiActor.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; tk2dBaseSprite component7 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); if ((Object)(object)gameObject != (Object)(object)SerJunkanPrefab) { ExpandShaders.Instance.ApplySuperGlitchShader(component7, component); } else { float glitchInterval = Random.Range(0.02f, 0.06f); float dispProbability = Random.Range(0.1f, 0.16f); float dispIntensity = Random.Range(0.1f, 0.4f); float colorProbability = Random.Range(0.05f, 0.2f); float colorIntensity = Random.Range(0.1f, 0.25f); ExpandShaders.Instance.ApplyGlitchShader(component7, usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); } GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedCaterpillar(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_049c: Unknown result type (might be due to invalid IL or missing references) //IL_04b6: Unknown result type (might be due to invalid IL or missing references) //IL_04bb: Unknown result type (might be due to invalid IL or missing references) //IL_056c: Unknown result type (might be due to invalid IL or missing references) //IL_0571: Unknown result type (might be due to invalid IL or missing references) //IL_02de: Unknown result type (might be due to invalid IL or missing references) //IL_066e: Unknown result type (might be due to invalid IL or missing references) //IL_0670: Unknown result type (might be due to invalid IL or missing references) //IL_030e: Unknown result type (might be due to invalid IL or missing references) List list = BraveUtility.Shuffle(new List { GhostPrefab, CultistPrefab, ArrowheadManPrefab, BulletRifleManPrefab, AshBulletManPrefab, AshBulletShotgunManPrefab, BulletMachineGunManPrefab, BulletManDevilPrefab, BulletManShroomedPrefab, BulletSkeletonHelmetPrefab, BulletShotgunManSawedOffPrefab, BulletShotgunManMutantPrefab, BulletManKaliberPrefab, BulletShotgunManCowboyPrefab, BulletShotgrubManPrefab, BulletManBandanaPrefab, FloatingEyePrefab, IceCubeGuyPrefab, GrenadeGuyPrefab }); GameObject val = Object.Instantiate(CaterpillarPrefab); GameObject gameObject = BraveUtility.RandomElement(list).gameObject; if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.HasBeenEngaged = false; AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } else { if (Random.value <= 0.2f) { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); } ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } SpeculativeRigidbody specRigidbody = ((BraveBehaviour)component2).specRigidbody; specRigidbody.PrimaryPixelCollider.Enabled = true; specRigidbody.HitboxPixelCollider.Enabled = true; specRigidbody.ClearFrameSpecificCollisionExceptions(); specRigidbody.ClearSpecificCollisionExceptions(); specRigidbody.RemoveCollisionLayerIgnoreOverride(CollisionMask.LayerToMask((CollisionLayer)0, (CollisionLayer)1)); Object.Destroy((Object)(object)((Component)component2).GetComponent()); ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)0f, false); ((BraveBehaviour)component2).healthHaver.minimumHealth = ((BraveBehaviour)component).healthHaver.minimumHealth; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.PreventAllDamage = false; component2.IsNormalEnemy = true; ((GameActor)component2).ImmuneToAllEffects = false; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; component2.EnemyId = 912; component2.EnemyGuid = "a0000000000000000000000000000012"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.AlwaysShowOffscreenArrow = true; if ((Object)(object)gameObject == (Object)(object)CaterpillarPrefab) { component2.CollisionDamage = 0f; component2.DiesOnCollison = true; } else { component2.CollisionDamage = component.CollisionDamage; component2.EnemyScale = new Vector2(1.5f, 1.5f); component2.procedurallyOutlined = false; } component2.IgnoreForRoomClear = true; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.CanTargetEnemies = false; component2.CanTargetPlayers = true; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } float glitchInterval = Random.Range(0.02f, 0.06f); float dispProbability = Random.Range(0.1f, 0.16f); float dispIntensity = Random.Range(0.1f, 0.4f); float colorProbability = Random.Range(0.05f, 0.2f); float colorIntensity = Random.Range(0.1f, 0.25f); tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplyGlitchShader(component3, usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedRaccoon(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1, bool isNonGlitchedVersion = false) { //IL_01ff: Unknown result type (might be due to invalid IL or missing references) //IL_059c: Unknown result type (might be due to invalid IL or missing references) //IL_05a1: Unknown result type (might be due to invalid IL or missing references) //IL_05c3: Unknown result type (might be due to invalid IL or missing references) //IL_05c8: 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_065a: Unknown result type (might be due to invalid IL or missing references) //IL_065c: Unknown result type (might be due to invalid IL or missing references) List list = new List(); list.Add(GhostPrefab); list.Add(CultistPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list.Add(BulletKingsToadieObject); list.Add(TinyBlobulordObject); list.Add(GrenadeGuyPrefab); list = BraveUtility.Shuffle(list); GameObject val = Object.Instantiate(RaccoonPrefab); GameObject val2 = ((!isNonGlitchedVersion) ? BraveUtility.RandomElement(list).gameObject : TinyBlobulordObject.gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.HasBeenEngaged = false; AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid != "4d37ce3d666b4ddda8039929225b7ede") { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } SpeculativeRigidbody component3 = ((Component)component2).gameObject.GetComponent(); component3.PrimaryPixelCollider.Enabled = true; component3.HitboxPixelCollider.Enabled = true; component3.ClearFrameSpecificCollisionExceptions(); component3.ClearSpecificCollisionExceptions(); component3.RemoveCollisionLayerIgnoreOverride(CollisionMask.LayerToMask((CollisionLayer)0, (CollisionLayer)1)); Object.Destroy((Object)(object)((Component)component2).GetComponent()); if (!isNonGlitchedVersion && Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)0f, false); ((BraveBehaviour)component2).healthHaver.minimumHealth = ((BraveBehaviour)component).healthHaver.minimumHealth; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.PreventAllDamage = false; component2.IsNormalEnemy = true; ((GameActor)component2).ImmuneToAllEffects = false; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; component2.EnemyId = 913; component2.EnemyGuid = "a0000000000000000000000000000013"; if (isNonGlitchedVersion) { ((GameActor)component2).OverrideDisplayName = "Junk Raccoon"; ((GameActor)component2).ActorName = "Junk Raccoon"; ((Object)component2).name = "Junk Raccoon"; } else { ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; } component2.AlwaysShowOffscreenArrow = true; if (component.EnemyGuid != "4d37ce3d666b4ddda8039929225b7ede") { component2.DiesOnCollison = true; } component2.IgnoreForRoomClear = false; component2.CanTargetEnemies = false; component2.CanTargetPlayers = true; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; if (!isNonGlitchedVersion) { component2.HitByEnemyBullets = true; } component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (!isNonGlitchedVersion) { tk2dBaseSprite component4 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplyGlitchShader(component4); } GameObject val3 = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); if (isNonGlitchedVersion) { tk2dSpriteCollectionData val4 = ExpandUtility.BuildSpriteCollection(((tk2dBaseSprite)TurkeyPrefab.GetComponent()).Collection, ExpandEnemyDatabase.ModifiedCompanionsAtlas); if (Object.op_Implicit((Object)(object)((Component)val4).gameObject)) { ((Component)val4).gameObject.transform.SetParent(val3.transform); } ExpandUtility.ApplyCustomTexture(val3.GetComponent(), null, null, val4); } Object.Destroy((Object)(object)val); return val3; } public GameObject SpawnGlitchedTurkey(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1, bool isNonGlitchedVersion = false) { //IL_01f3: Unknown result type (might be due to invalid IL or missing references) //IL_02e9: Unknown result type (might be due to invalid IL or missing references) //IL_05e6: Unknown result type (might be due to invalid IL or missing references) //IL_05eb: Unknown result type (might be due to invalid IL or missing references) //IL_060d: Unknown result type (might be due to invalid IL or missing references) //IL_0612: Unknown result type (might be due to invalid IL or missing references) //IL_0367: Unknown result type (might be due to invalid IL or missing references) //IL_06ea: Unknown result type (might be due to invalid IL or missing references) //IL_06ec: Unknown result type (might be due to invalid IL or missing references) List list = new List(); list.Add(GhostPrefab); list.Add(CultistPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list.Add(TinyBlobulordObject); list.Add(BulletKingsToadieObject); list = BraveUtility.Shuffle(list); GameObject val = Object.Instantiate(TurkeyPrefab); GameObject val2 = ((!isNonGlitchedVersion) ? BraveUtility.RandomElement(list).gameObject : TinyBlobulordObject.gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.HasBeenEngaged = false; component2.AlwaysShowOffscreenArrow = true; AddOrReplaceAIActorConfig(component2, component); if (isNonGlitchedVersion) { new GameObject("ModifiedSpriteCollection_Turkey"); tk2dSpriteCollectionData val3 = ExpandUtility.BuildSpriteCollection(((tk2dBaseSprite)TurkeyPrefab.GetComponent()).Collection, ExpandEnemyDatabase.ModifiedCompanionsAtlas); if (Object.op_Implicit((Object)(object)((Component)val3).gameObject)) { ((Component)val3).gameObject.transform.SetParent(((Component)component2).gameObject.transform); } ExpandUtility.ApplyCustomTexture(component2, null, null, val3); } try { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } SpeculativeRigidbody component3 = ((Component)component2).gameObject.GetComponent(); component3.PrimaryPixelCollider.Enabled = true; component3.HitboxPixelCollider.Enabled = true; component3.ClearFrameSpecificCollisionExceptions(); component3.ClearSpecificCollisionExceptions(); component3.RemoveCollisionLayerIgnoreOverride(CollisionMask.LayerToMask((CollisionLayer)0, (CollisionLayer)1)); Object.Destroy((Object)(object)((Component)component2).GetComponent()); if (!isNonGlitchedVersion && Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)0f, false); ((BraveBehaviour)component2).healthHaver.minimumHealth = ((BraveBehaviour)component).healthHaver.minimumHealth; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.PreventAllDamage = false; component2.IsNormalEnemy = true; ((GameActor)component2).ImmuneToAllEffects = false; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; component2.EnemyId = 914; component2.EnemyGuid = "a0000000000000000000000000000014"; if (isNonGlitchedVersion) { ((GameActor)component2).OverrideDisplayName = "Junk Turkey"; ((GameActor)component2).ActorName = "Junk Turkey"; ((Object)component2).name = "Junk Turkey"; } else { ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; } if (component.EnemyGuid != "4d37ce3d666b4ddda8039929225b7ede") { component2.DiesOnCollison = true; } component2.IgnoreForRoomClear = false; component2.CanTargetEnemies = false; component2.CanTargetPlayers = true; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; if (!isNonGlitchedVersion) { component2.HitByEnemyBullets = true; } component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; float glitchInterval = Random.Range(0.02f, 0.06f); float dispProbability = Random.Range(0.1f, 0.16f); float dispIntensity = Random.Range(0.1f, 0.4f); float colorProbability = Random.Range(0.05f, 0.2f); float colorIntensity = Random.Range(0.1f, 0.25f); if (!isNonGlitchedVersion) { tk2dBaseSprite component4 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplyGlitchShader(component4, usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); } GameObject val4 = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); if (isNonGlitchedVersion) { tk2dSpriteCollectionData val5 = ExpandUtility.BuildSpriteCollection(((tk2dBaseSprite)TurkeyPrefab.GetComponent()).Collection, ExpandEnemyDatabase.ModifiedCompanionsAtlas); if (Object.op_Implicit((Object)(object)((Component)val5).gameObject)) { ((Component)val5).gameObject.transform.SetParent(val4.transform); } ExpandUtility.ApplyCustomTexture(val4.GetComponent(), null, null, val5); } Object.Destroy((Object)(object)val); return val4; } public GameObject SpawnGlitchedBlanky(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_02d3: Unknown result type (might be due to invalid IL or missing references) //IL_04fe: Unknown result type (might be due to invalid IL or missing references) //IL_0503: Unknown result type (might be due to invalid IL or missing references) //IL_0522: Unknown result type (might be due to invalid IL or missing references) //IL_0527: Unknown result type (might be due to invalid IL or missing references) //IL_05ef: Unknown result type (might be due to invalid IL or missing references) //IL_05f1: Unknown result type (might be due to invalid IL or missing references) List list = BraveUtility.Shuffle(new List { GhostPrefab, CultistPrefab, ArrowheadManPrefab, BulletRifleManPrefab, AshBulletManPrefab, AshBulletShotgunManPrefab, BulletMachineGunManPrefab, BulletManDevilPrefab, BulletManShroomedPrefab, BulletSkeletonHelmetPrefab, BulletShotgunManSawedOffPrefab, BulletShotgunManMutantPrefab, BulletManKaliberPrefab, BulletShotgunManCowboyPrefab, BulletShotgrubManPrefab, BulletManBandanaPrefab, FloatingEyePrefab, TinyBlobulordObject, BulletKingsToadieObject }); GameObject val = Object.Instantiate(BlankyPrefab); GameObject gameObject = BraveUtility.RandomElement(list).gameObject; if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.HasBeenEngaged = false; component2.AlwaysShowOffscreenArrow = true; AddOrReplaceAIActorConfig(component2, component); try { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } SpeculativeRigidbody component3 = ((Component)component2).gameObject.GetComponent(); component3.PrimaryPixelCollider.Enabled = true; component3.HitboxPixelCollider.Enabled = true; component3.ClearFrameSpecificCollisionExceptions(); component3.ClearSpecificCollisionExceptions(); component3.RemoveCollisionLayerIgnoreOverride(CollisionMask.LayerToMask((CollisionLayer)0, (CollisionLayer)1)); Object.Destroy((Object)(object)((Component)component2).GetComponent()); if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)0f, false); ((BraveBehaviour)component2).healthHaver.minimumHealth = ((BraveBehaviour)component).healthHaver.minimumHealth; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.PreventAllDamage = false; component2.IsNormalEnemy = true; ((GameActor)component2).ImmuneToAllEffects = false; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; component2.EnemyId = 915; component2.EnemyGuid = "a0000000000000000000000000000015"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; if (component.EnemyGuid != "4d37ce3d666b4ddda8039929225b7ede") { component2.DiesOnCollison = true; } component2.IgnoreForRoomClear = false; component2.CanTargetEnemies = false; component2.CanTargetPlayers = true; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.HitByEnemyBullets = true; component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; float glitchInterval = Random.Range(0.02f, 0.06f); float dispProbability = Random.Range(0.1f, 0.16f); float dispIntensity = Random.Range(0.1f, 0.4f); float colorProbability = Random.Range(0.05f, 0.2f); float colorIntensity = Random.Range(0.1f, 0.25f); tk2dBaseSprite component4 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplyGlitchShader(component4, usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedBabyShelleton(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_053e: Unknown result type (might be due to invalid IL or missing references) //IL_0543: Unknown result type (might be due to invalid IL or missing references) //IL_0562: Unknown result type (might be due to invalid IL or missing references) //IL_0567: Unknown result type (might be due to invalid IL or missing references) //IL_0664: Unknown result type (might be due to invalid IL or missing references) //IL_0666: Unknown result type (might be due to invalid IL or missing references) //IL_02eb: Unknown result type (might be due to invalid IL or missing references) //IL_031b: Unknown result type (might be due to invalid IL or missing references) List list = new List(); list.Clear(); list.Add(GhostPrefab); list.Add(CultistPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list.Add(IceCubeGuyPrefab); list.Add(GrenadeGuyPrefab); List list2 = BraveUtility.Shuffle(list); GameObject val = Object.Instantiate(BabyShelletonPrefab); GameObject gameObject = BraveUtility.RandomElement(list2).gameObject; if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.HasBeenEngaged = false; component2.AlwaysShowOffscreenArrow = true; AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } else { if (Random.value <= 0.2f) { ((Component)((BraveBehaviour)component2).healthHaver).gameObject.AddComponent(); } ((OnDeathBehavior)((Component)((BraveBehaviour)component2).healthHaver).GetComponent()).deathType = (DeathType)1; } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } SpeculativeRigidbody specRigidbody = ((BraveBehaviour)component2).specRigidbody; specRigidbody.PrimaryPixelCollider.Enabled = true; specRigidbody.HitboxPixelCollider.Enabled = true; specRigidbody.ClearFrameSpecificCollisionExceptions(); specRigidbody.ClearSpecificCollisionExceptions(); specRigidbody.RemoveCollisionLayerIgnoreOverride(CollisionMask.LayerToMask((CollisionLayer)0, (CollisionLayer)1)); Object.Destroy((Object)(object)((Component)component2).GetComponent()); Object.Destroy((Object)(object)((Component)component2).GetComponent()); Object.Destroy((Object)(object)((Component)component2).GetComponent()); if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)0f, false); ((BraveBehaviour)component2).healthHaver.minimumHealth = ((BraveBehaviour)component).healthHaver.minimumHealth; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.PreventAllDamage = false; component2.IsNormalEnemy = true; ((GameActor)component2).ImmuneToAllEffects = false; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; component2.EnemyId = 907; component2.EnemyGuid = "a0000000000000000000000000000007"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.IgnoreForRoomClear = false; component2.CanTargetEnemies = false; component2.CanTargetPlayers = true; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } float glitchInterval = Random.Range(0.02f, 0.06f); float dispProbability = Random.Range(0.1f, 0.16f); float dispIntensity = Random.Range(0.1f, 0.4f); float colorProbability = Random.Range(0.05f, 0.2f); float colorIntensity = Random.Range(0.1f, 0.25f); tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplyGlitchShader(component3, usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedBulletBros(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_0351: Unknown result type (might be due to invalid IL or missing references) //IL_03b0: Unknown result type (might be due to invalid IL or missing references) //IL_054a: Unknown result type (might be due to invalid IL or missing references) //IL_054f: Unknown result type (might be due to invalid IL or missing references) //IL_0574: Unknown result type (might be due to invalid IL or missing references) //IL_0579: Unknown result type (might be due to invalid IL or missing references) //IL_0643: Unknown result type (might be due to invalid IL or missing references) //IL_0645: Unknown result type (might be due to invalid IL or missing references) GameObject val = ((!BraveUtility.RandomBool()) ? Object.Instantiate(BulletBrosShadesPrefab) : Object.Instantiate(BulletBrosSmileyPrefab)); if ((Object)(object)val == (Object)null) { return null; } List list = new List(); List list2 = new List(); list.Clear(); list2.Clear(); list.Add(CultistPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(JamromancerPrefab); list.Add(LeadWizardBluePrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } if (Random.value <= 0.1f) { ((Component)component2).gameObject.AddComponent(); } component2.EnemyId = 1001; component2.EnemyGuid = "ff000000000000000000000000001001"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); ((BraveBehaviour)component2).healthHaver.bossHealthBar = (BossBarType)0; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)null, false); ((BraveBehaviour)component2).healthHaver.minimumHealth = ((BraveBehaviour)component).healthHaver.minimumHealth; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.HasBeenEngaged = false; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedGatlingGull(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_0328: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_053a: Unknown result type (might be due to invalid IL or missing references) //IL_053f: Unknown result type (might be due to invalid IL or missing references) //IL_0564: Unknown result type (might be due to invalid IL or missing references) //IL_0569: Unknown result type (might be due to invalid IL or missing references) //IL_0633: Unknown result type (might be due to invalid IL or missing references) //IL_0635: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(GatlingGullPrefab); if ((Object)(object)val == (Object)null) { return null; } List list = new List(); List list2 = new List(); list.Add(CultistPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(JamromancerPrefab); list.Add(LeadWizardBluePrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list2.Add(IceCubeGuyPrefab); list2.Add(GrenadeGuyPrefab); list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : BraveUtility.RandomElement(list2).gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 1003; component2.EnemyGuid = "ff000000000000000000000000001003"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); ((BraveBehaviour)component2).healthHaver.bossHealthBar = (BossBarType)0; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)null, false); ((BraveBehaviour)component2).healthHaver.minimumHealth = ((BraveBehaviour)component).healthHaver.minimumHealth; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.HasBeenEngaged = false; if (Random.value <= 0.1f) { ((Component)component2).gameObject.AddComponent(); } component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedBeholster(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_0322: 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_04ff: Unknown result type (might be due to invalid IL or missing references) //IL_0504: Unknown result type (might be due to invalid IL or missing references) //IL_0526: Unknown result type (might be due to invalid IL or missing references) //IL_052b: Unknown result type (might be due to invalid IL or missing references) //IL_05ed: Unknown result type (might be due to invalid IL or missing references) //IL_05ef: Unknown result type (might be due to invalid IL or missing references) List list = new List(); list.Add(CultistPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list.Add(JamromancerPrefab); list.Add(LeadWizardBluePrefab); list.Add(IceCubeGuyPrefab); list.Add(GrenadeGuyPrefab); list = BraveUtility.Shuffle(list); GameObject val = Object.Instantiate(BeholsterPrefab); GameObject gameObject = BraveUtility.RandomElement(list).gameObject; if ((Object)(object)val == (Object)null) { return null; } if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } } catch (Exception) { } if (Random.value <= 0.1f) { ((Component)component2).gameObject.AddComponent(); } component2.EnemyId = 1005; component2.EnemyGuid = "ff000000000000000000000000001005"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); ((BraveBehaviour)component2).healthHaver.bossHealthBar = (BossBarType)0; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)null, false); ((BraveBehaviour)component2).healthHaver.minimumHealth = ((BraveBehaviour)component).healthHaver.minimumHealth; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.HasBeenEngaged = false; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; if (component.EnemyGuid == "f155fd2759764f4a9217db29dd21b7eb") { ((Component)component2).gameObject.AddComponent(); component2.IgnoreForRoomClear = true; } tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedBossDoorMimic(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_023d: 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) //IL_041a: Unknown result type (might be due to invalid IL or missing references) //IL_041f: Unknown result type (might be due to invalid IL or missing references) //IL_0441: Unknown result type (might be due to invalid IL or missing references) //IL_0446: Unknown result type (might be due to invalid IL or missing references) //IL_04e1: Unknown result type (might be due to invalid IL or missing references) //IL_04e3: Unknown result type (might be due to invalid IL or missing references) List list = new List(); list.Add(JamromancerPrefab); list.Add(LeadWizardBluePrefab); list.Add(GrenadeGuyPrefab); list = BraveUtility.Shuffle(list); GameObject val = Object.Instantiate(BossDoorMimicPrefab); GameObject gameObject = BraveUtility.RandomElement(list).gameObject; if ((Object)(object)val == (Object)null) { return null; } if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } if (Random.value <= 0.1f) { ((Component)component2).gameObject.AddComponent(); } component2.EnemyId = 1007; component2.EnemyGuid = "ff000000000000000000000000001007"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); ((BraveBehaviour)component2).healthHaver.bossHealthBar = (BossBarType)0; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)null, false); ((BraveBehaviour)component2).healthHaver.minimumHealth = ((BraveBehaviour)component).healthHaver.minimumHealth; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.HasBeenEngaged = false; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedHighPriest(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_022c: Unknown result type (might be due to invalid IL or missing references) //IL_0287: Unknown result type (might be due to invalid IL or missing references) //IL_0409: Unknown result type (might be due to invalid IL or missing references) //IL_040e: Unknown result type (might be due to invalid IL or missing references) //IL_0430: Unknown result type (might be due to invalid IL or missing references) //IL_0435: Unknown result type (might be due to invalid IL or missing references) //IL_04d0: Unknown result type (might be due to invalid IL or missing references) //IL_04d2: Unknown result type (might be due to invalid IL or missing references) List list = new List(); list.Add(JamromancerPrefab); list.Add(LeadWizardBluePrefab); list.Add(GrenadeGuyPrefab); list = BraveUtility.Shuffle(list); GameObject val = Object.Instantiate(HighPriestPrefab); GameObject gameObject = BraveUtility.RandomElement(list).gameObject; if ((Object)(object)val == (Object)null) { return null; } if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } if (Random.value <= 0.1f) { ((Component)component2).gameObject.AddComponent(); } component2.EnemyId = 1008; component2.EnemyGuid = "ff000000000000000000000000001008"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); ((BraveBehaviour)component2).healthHaver.bossHealthBar = (BossBarType)0; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)null, false); ((BraveBehaviour)component2).healthHaver.minimumHealth = ((BraveBehaviour)component).healthHaver.minimumHealth; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.HasBeenEngaged = false; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedKillPillar(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_029d: Unknown result type (might be due to invalid IL or missing references) //IL_02f8: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04b2: Unknown result type (might be due to invalid IL or missing references) //IL_04d4: Unknown result type (might be due to invalid IL or missing references) //IL_04d9: Unknown result type (might be due to invalid IL or missing references) //IL_05e3: Unknown result type (might be due to invalid IL or missing references) //IL_05e5: Unknown result type (might be due to invalid IL or missing references) List list = new List(); list.Add(CultistPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list.Add(JamromancerPrefab); list.Add(LeadWizardBluePrefab); list.Add(GrenadeGuyPrefab); list = BraveUtility.Shuffle(list); GameObject val = Object.Instantiate(BossDoorMimicPrefab); GameObject gameObject = BraveUtility.RandomElement(list).gameObject; if ((Object)(object)val == (Object)null) { return null; } if ((Object)(object)gameObject == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = gameObject.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { ((Component)component2).gameObject.AddComponent(); component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } if (Random.value <= 0.1f) { ((Component)component2).gameObject.AddComponent(); } component2.EnemyId = 1009; component2.EnemyGuid = "ff000000000000000000000000001009"; ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; ((BraveBehaviour)component2).healthHaver.bossHealthBar = (BossBarType)0; ((BraveBehaviour)component2).healthHaver.OnlyAllowSpecialBossDamage = false; ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(((BraveBehaviour)component).healthHaver.GetCurrentHealth(), (float?)null, false); ((BraveBehaviour)component2).healthHaver.minimumHealth = ((BraveBehaviour)component).healthHaver.minimumHealth; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.HasBeenEngaged = false; Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); Object.Destroy((Object)(object)((Component)component2).gameObject.GetComponent()); component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.OnEngagedVFX = component.OnEngagedVFX; component2.OnEngagedVFXAnchor = component.OnEngagedVFXAnchor; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; tk2dBaseSprite component3 = ((Component)((BraveBehaviour)component2).sprite).GetComponent(); AIActor component4 = ((Component)KillPillarsPrefab.GetComponent().realPrefab.GetComponent().allStatues[Random.Range(0, 3)]).gameObject.GetComponent(); ExpandUtility.ApplyCustomTexture(component2, null, null, ((BraveBehaviour)component4).sprite.Collection); ((BraveBehaviour)component2).specRigidbody.PixelColliders = ((BraveBehaviour)component4).specRigidbody.PixelColliders; ((BraveBehaviour)component2).specRigidbody.RegenerateColliders = true; ExpandShaders.Instance.ApplySuperGlitchShader(component3, component); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedObjectAsEnemy(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_0433: Unknown result type (might be due to invalid IL or missing references) //IL_0438: Unknown result type (might be due to invalid IL or missing references) //IL_05cf: Unknown result type (might be due to invalid IL or missing references) //IL_05d4: Unknown result type (might be due to invalid IL or missing references) //IL_06f2: Unknown result type (might be due to invalid IL or missing references) //IL_06fc: Unknown result type (might be due to invalid IL or missing references) //IL_070f: Unknown result type (might be due to invalid IL or missing references) //IL_0714: Unknown result type (might be due to invalid IL or missing references) //IL_0741: Unknown result type (might be due to invalid IL or missing references) //IL_0743: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate(BulletManPrefab); List list = new List(); list.Clear(); list.Add(CultistPrefab); list.Add(ArrowheadManPrefab); list.Add(BulletRifleManPrefab); list.Add(AshBulletManPrefab); list.Add(AshBulletShotgunManPrefab); list.Add(BulletMachineGunManPrefab); list.Add(BulletManDevilPrefab); list.Add(BulletManShroomedPrefab); list.Add(BulletSkeletonHelmetPrefab); list.Add(BulletShotgunManSawedOffPrefab); list.Add(BulletShotgunManMutantPrefab); list.Add(BulletManKaliberPrefab); list.Add(BulletShotgunManCowboyPrefab); list.Add(BulletShotgrubManPrefab); list.Add(BulletManBandanaPrefab); list.Add(FloatingEyePrefab); list = BraveUtility.Shuffle(list); GameObject val2 = ((!(Random.value <= 0.2f)) ? BraveUtility.RandomElement(list).gameObject : GrenadeGuyPrefab.gameObject); if ((Object)(object)val2 == (Object)null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } AIActor component = val2.GetComponent(); AIActor component2 = val.GetComponent(); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } AddOrReplaceAIActorConfig(component2, component); try { if (component.EnemyGuid == "4d37ce3d666b4ddda8039929225b7ede") { ((Component)component2).gameObject.AddComponent(); } else if (Random.value <= 0.2f) { ((Component)component2).gameObject.AddComponent(); } component2.BehaviorOverridesVelocity = component.BehaviorOverridesVelocity; ((BraveBehaviour)component2).behaviorSpeculator.RefreshBehaviors(); ((BraveBehaviour)((BraveBehaviour)component2).behaviorSpeculator).RegenerateCache(); } catch (Exception) { } component2.EnemyId = 9900; component2.EnemyGuid = Guid.NewGuid().ToString(); ((GameActor)component2).OverrideDisplayName = "Corrupted " + component.GetActorName(); ((GameActor)component2).ActorName = "Corrupted " + component2.GetActorName(); ((Object)component2).name = "Corrupted " + ((Object)component2).name; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.KnockbackVelocity = component.KnockbackVelocity; component2.PreventDeathKnockback = component.PreventDeathKnockback; component2.IsWorthShootingAt = component.IsWorthShootingAt; component2.CollisionKnockbackStrength = component.CollisionKnockbackStrength; component2.EnemyCollisionKnockbackStrengthOverride = component.EnemyCollisionKnockbackStrengthOverride; ((BraveBehaviour)component2).healthHaver.spawnBulletScript = ((BraveBehaviour)component).healthHaver.spawnBulletScript; ((BraveBehaviour)component2).healthHaver.SuppressDeathSounds = ((BraveBehaviour)component).healthHaver.SuppressDeathSounds; ((BraveBehaviour)component2).healthHaver.ManualDeathHandling = ((BraveBehaviour)component).healthHaver.ManualDeathHandling; ((BraveBehaviour)component2).healthHaver.deathEffect = ((BraveBehaviour)component).healthHaver.deathEffect; ((BraveBehaviour)component2).healthHaver.noCorpseWhenBulletScriptDeath = ((BraveBehaviour)component).healthHaver.noCorpseWhenBulletScriptDeath; ((GameActor)component2).StealthDeath = ((GameActor)component).StealthDeath; component2.SpeculatorDelayTime = component.SpeculatorDelayTime; component2.State = (ActorState)0; component2.IgnoreForRoomClear = false; component2.OnHandleRewards = component.OnHandleRewards; component2.CustomChestTable = component.CustomChestTable; component2.CustomLootTable = component.CustomLootTable; component2.CustomLootTableMinDrops = component.CustomLootTableMinDrops; component2.SpawnLootAtRewardChestPos = component.SpawnLootAtRewardChestPos; component2.ManualKnockbackHandling = component.ManualKnockbackHandling; component2.BaseMovementSpeed = component.BaseMovementSpeed; component2.MovementSpeed = component.MovementSpeed; component2.OnCorpseVFX = component.OnCorpseVFX; component2.CollisionVFX = component.CollisionVFX; component2.CollisionSetsPlayerOnFire = component.CollisionSetsPlayerOnFire; component2.CollisionDamage = component.CollisionDamage; component2.CollisionDamageTypes = component.CollisionDamageTypes; component2.NonActorCollisionVFX = component.NonActorCollisionVFX; component2.TryDodgeBullets = component.TryDodgeBullets; component2.AvoidRadius = component.AvoidRadius; component2.CorpseObject = component.CorpseObject; component2.HitByEnemyBullets = BraveUtility.RandomBool(); component2.PreventFallingInPitsEver = component.PreventFallingInPitsEver; component2.UseMovementAudio = component.UseMovementAudio; component2.EnemySwitchState = component.EnemySwitchState; ((Component)((BraveBehaviour)component2).sprite).GetComponent(); List list2 = new List { ExpandObjectDatabase.NPCEvilMuncher.GetComponent(), ExpandObjectDatabase.NPCGunMuncher.GetComponent(), ExpandObjectDatabase.NPCOldMan.GetComponent(), ExpandObjectDatabase.NPCTonic.GetComponent(), ExpandObjectDatabase.NPCTruthKnower.GetComponent(), ExpandObjectDatabase.NPCCursola.GetComponent() }; List list3 = new List { ExpandObjectDatabase.ConvictPastCrowdNPC_01.GetComponent(), ExpandObjectDatabase.PlayerCorpse.GetComponent(), ExpandObjectDatabase.TimefallCorpse.GetComponent(), ExpandPrefabs.Teleporter_Info_Sign.GetComponent(), ExpandPrefabs.PlayerLostRatNote.GetComponent(), ExpandObjectDatabase.LockedDoor.GetComponent(), ExpandPrefabs.MouseTrap1.GetComponent() }; bool flag = false; TalkDoerLite val3 = BraveUtility.RandomElement(list2); tk2dBaseSprite val4 = ((Component)val3).GetComponent(); if (Random.value <= 0.2f) { val4 = BraveUtility.RandomElement(list3); flag = true; } ExpandUtility.ApplyCustomTexture(component2, null, null, val4.Collection); IntVector2 one = IntVector2.One; if (flag) { if (((Object)val4).name.StartsWith("Dancer") | ((Object)(object)val4 == (Object)(object)list3[3])) { ((IntVector2)(ref one))..ctor(3, 4); } else if ((Object)(object)val4 == (Object)(object)list3[1]) { ((IntVector2)(ref one))..ctor(1, 2); } else if ((Object)(object)val4 == (Object)(object)list3[2]) { ((IntVector2)(ref one))..ctor(1, 1); } else if ((Object)(object)val4 == (Object)(object)list3[5]) { ((IntVector2)(ref one))..ctor(3, 2); } } else if (((Object)(object)val3 == (Object)(object)list2[0]) | ((Object)(object)val3 == (Object)(object)list2[1])) { ((IntVector2)(ref one))..ctor(3, 2); } else if (((Object)(object)val3 == (Object)(object)list2[2]) | ((Object)(object)val3 == (Object)(object)list2[4]) | ((Object)(object)val3 == (Object)(object)list2[5])) { ((IntVector2)(ref one))..ctor(2, 2); } else if ((Object)(object)val3 == (Object)(object)list2[3]) { ((IntVector2)(ref one))..ctor(2, 3); } IntVector2 dimensions = default(IntVector2); ((IntVector2)(ref dimensions))..ctor(one.x * 16, one.y * 16); ((BraveBehaviour)component2).specRigidbody = ExpandUtility.GenerateNewEnemyRigidBody(component2, IntVector2.Zero, dimensions); Object.Destroy((Object)(object)((BraveBehaviour)component2).aiAnimator); ((BraveBehaviour)component2).specRigidbody.RegenerateColliders = true; GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); return result; } public GameObject SpawnGlitchedPlayerAsEnemy(RoomHandler CurrentRoom, IntVector2 position, bool autoEngage = false, AwakenAnimationType awakenAnimType = 1) { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Expected O, but got Unknown //IL_05af: Unknown result type (might be due to invalid IL or missing references) //IL_05b6: Invalid comparison between Unknown and I4 //IL_03b8: Unknown result type (might be due to invalid IL or missing references) //IL_03c6: Unknown result type (might be due to invalid IL or missing references) //IL_03ed: Unknown result type (might be due to invalid IL or missing references) //IL_03f9: Unknown result type (might be due to invalid IL or missing references) //IL_0400: Expected O, but got Unknown //IL_0403: Unknown result type (might be due to invalid IL or missing references) //IL_044c: Unknown result type (might be due to invalid IL or missing references) //IL_0453: Expected O, but got Unknown //IL_0456: Unknown result type (might be due to invalid IL or missing references) //IL_04a8: Unknown result type (might be due to invalid IL or missing references) //IL_04af: Expected O, but got Unknown //IL_04bd: Unknown result type (might be due to invalid IL or missing references) //IL_04c4: Expected O, but got Unknown //IL_04c7: Unknown result type (might be due to invalid IL or missing references) //IL_0512: Unknown result type (might be due to invalid IL or missing references) //IL_0519: Expected O, but got Unknown //IL_0527: Unknown result type (might be due to invalid IL or missing references) //IL_052e: Expected O, but got Unknown //IL_0531: Unknown result type (might be due to invalid IL or missing references) //IL_098b: Unknown result type (might be due to invalid IL or missing references) //IL_098d: Unknown result type (might be due to invalid IL or missing references) PlayerController primaryPlayer = GameManager.Instance.PrimaryPlayer; AIActor component = CultistPrefab.GetComponent(); GameObject corpseObject = null; GameObject val = new GameObject("Corrupted Player Mimic") { layer = 28 }; tk2dSprite obj = val.AddComponent(); tk2dBaseSprite sprite = ((BraveBehaviour)primaryPlayer).sprite; ExpandUtility.DuplicateSprite(obj, (tk2dSprite)(object)((sprite is tk2dSprite) ? sprite : null)); ((tk2dBaseSprite)obj).FlipX = false; ExpandUtility.GenerateAIActorTemplate(val, out corpseObject, "Corrupted Player Mimic", Guid.NewGuid().ToString(), null, ((Component)primaryPlayer.gunAttachPoint).gameObject, null, 38, null, RigidBodyCollidesWithTileMap: true, RigidBodyCollidesWithOthers: true, RigidBodyCanBeCarried: true, RigidBodyCanBePushed: false, isFakePrefab: false, instantiateCorpseObject: false, component.CorpseObject); AIActor component2 = val.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Source object for random donor enemy is null!", false); } return null; } if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("Spawning '" + ((GameActor)component2).ActorName + "' with GUID: " + component2.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy spawned has it's behaviors replaced with the enemy: '" + ((GameActor)component).ActorName + "' with GUID: " + component.EnemyGuid + " ."), false); ETGModConsole.Log((object)("The enemy was spawned in the following room: '" + CurrentRoom.GetRoomName()), false); } ((GameActor)component2).DoDustUps = true; ((GameActor)component2).DustUpInterval = 0.4f; component2.MovementSpeed = 3.5f; component2.EnemySwitchState = "Gun Cultist"; List list = new List(); tk2dSpriteAnimationClip[] clips = ((BraveBehaviour)primaryPlayer).spriteAnimator.Library.clips; foreach (tk2dSpriteAnimationClip val2 in clips) { if (val2 != null && !string.IsNullOrEmpty(val2.name)) { if (val2.name.ToLower() == "idle") { list.Add(val2); } else if (val2.name.ToLower() == "idle_backward") { list.Add(val2); } else if (val2.name.ToLower() == "dodge") { list.Add(val2); } else if (val2.name.ToLower() == "dodge_bw") { list.Add(val2); } else if (val2.name.ToLower() == "run_down") { list.Add(val2); } else if (val2.name.ToLower() == "run_up") { list.Add(val2); } else if (val2.name.ToLower() == "death") { list.Add(val2); } else if (val2.name.ToLower() == "death_bw") { list.Add(val2); } else if (val2.name.ToLower() == "pitfall") { list.Add(val2); } else if (val2.name.ToLower() == "pitfall_down") { list.Add(val2); } } } if (!Object.op_Implicit((Object)(object)((BraveBehaviour)component2).spriteAnimator.Library)) { ((BraveBehaviour)component2).spriteAnimator.Library = val.AddComponent(); } if (list.Count > 0) { ((BraveBehaviour)component2).spriteAnimator.Library.clips = list.ToArray(); } ((BraveBehaviour)component2).spriteAnimator.DefaultClipId = 0; ((BraveBehaviour)component2).spriteAnimator.playAutomatically = true; if (Object.op_Implicit((Object)(object)((BraveBehaviour)component2).aiAnimator)) { ((BraveBehaviour)component2).aiAnimator.facingType = (FacingType)1; ((BraveBehaviour)component2).aiAnimator.directionalType = (DirectionalType)10; ((BraveBehaviour)component2).aiAnimator.faceSouthWhenStopped = false; ((BraveBehaviour)component2).aiAnimator.faceTargetWhenStopped = true; ((BraveBehaviour)component2).aiAnimator.HitType = (HitStateType)0; AIAnimator aiAnimator = ((BraveBehaviour)component2).aiAnimator; DirectionalAnimation val3 = new DirectionalAnimation(); val3.Type = (DirectionType)3; val3.Prefix = "idle"; val3.AnimNames = new string[2] { "idle_backward", "idle" }; val3.Flipped = (FlipType[])(object)new FlipType[2]; aiAnimator.IdleAnimation = val3; AIAnimator aiAnimator2 = ((BraveBehaviour)component2).aiAnimator; val3 = new DirectionalAnimation(); val3.Type = (DirectionType)3; val3.Prefix = "run"; val3.AnimNames = new string[2] { "run_up", "run_down" }; val3.Flipped = (FlipType[])(object)new FlipType[2]; aiAnimator2.MoveAnimation = val3; AIAnimator aiAnimator3 = ((BraveBehaviour)component2).aiAnimator; List list2 = new List(); NamedDirectionalAnimation val4 = new NamedDirectionalAnimation(); val4.name = "dodgeroll"; NamedDirectionalAnimation obj2 = val4; val3 = new DirectionalAnimation(); val3.Type = (DirectionType)3; val3.Prefix = "dodge"; val3.AnimNames = new string[2] { "dodge_bw", "dodge" }; val3.Flipped = (FlipType[])(object)new FlipType[2]; obj2.anim = val3; list2.Add(val4); val4 = new NamedDirectionalAnimation(); val4.name = "pitfall"; NamedDirectionalAnimation obj3 = val4; val3 = new DirectionalAnimation(); val3.Type = (DirectionType)3; val3.Prefix = "pitfall"; val3.AnimNames = new string[2] { "pitfall", "pitfall_down" }; val3.Flipped = (FlipType[])(object)new FlipType[2]; obj3.anim = val3; list2.Add(val4); aiAnimator3.OtherAnimations = list2; } ((BraveBehaviour)component2).healthHaver.SetHealthMaximum(80f, (float?)null, false); ((BraveBehaviour)component2).healthHaver.ForceSetCurrentHealth(80f); if ((int)primaryPlayer.characterIdentity == 9) { ExpandShaders.ApplyParadoxPlayerShader(((BraveBehaviour)component2).sprite); } BehaviorSpeculator val5 = val.AddComponent(); val5.OverrideBehaviors = new List(); val5.TargetBehaviors = new List(); val5.MovementBehaviors = new List(); val5.AttackBehaviors = new List(); val5.OtherBehaviors = new List(); if (((BraveBehaviour)component).behaviorSpeculator.OverrideBehaviors.Count > 0) { foreach (OverrideBehaviorBase overrideBehavior in ((Component)component).gameObject.GetComponent().OverrideBehaviors) { val5.OverrideBehaviors.Add(overrideBehavior); } } if (((BraveBehaviour)component).behaviorSpeculator.TargetBehaviors.Count > 0) { foreach (TargetBehaviorBase targetBehavior in ((Component)component).gameObject.GetComponent().TargetBehaviors) { val5.TargetBehaviors.Add(targetBehavior); } } if (((BraveBehaviour)component).behaviorSpeculator.MovementBehaviors.Count > 0) { foreach (MovementBehaviorBase movementBehavior in ((Component)component).gameObject.GetComponent().MovementBehaviors) { val5.MovementBehaviors.Add(movementBehavior); } } if (((BraveBehaviour)component).behaviorSpeculator.AttackBehaviors.Count > 0) { foreach (AttackBehaviorBase attackBehavior in ((Component)component).gameObject.GetComponent().AttackBehaviors) { val5.AttackBehaviors.Add(attackBehavior); } } if (((BraveBehaviour)component).behaviorSpeculator.OtherBehaviors.Count > 0) { foreach (BehaviorBase otherBehavior in ((Component)component).gameObject.GetComponent().OtherBehaviors) { val5.OtherBehaviors.Add(otherBehavior); } } val5.InstantFirstTick = ((BraveBehaviour)component).behaviorSpeculator.InstantFirstTick; val5.TickInterval = ((BraveBehaviour)component).behaviorSpeculator.TickInterval; val5.PostAwakenDelay = ((BraveBehaviour)component).behaviorSpeculator.PostAwakenDelay; val5.RemoveDelayOnReinforce = ((BraveBehaviour)component).behaviorSpeculator.RemoveDelayOnReinforce; val5.OverrideStartingFacingDirection = ((BraveBehaviour)component).behaviorSpeculator.OverrideStartingFacingDirection; val5.StartingFacingDirection = ((BraveBehaviour)component).behaviorSpeculator.StartingFacingDirection; val5.SkipTimingDifferentiator = ((BraveBehaviour)component).behaviorSpeculator.SkipTimingDifferentiator; ISerializedObject val6 = (ISerializedObject)(object)val5; val6.SerializedObjectReferences = new List(); val6.SerializedStateKeys = new List(); val6.SerializedStateValues = new List(); List serializedObjectReferences = ((ISerializedObject)((BraveBehaviour)component).behaviorSpeculator).SerializedObjectReferences; List serializedStateKeys = ((ISerializedObject)((BraveBehaviour)component).behaviorSpeculator).SerializedStateKeys; List serializedStateValues = ((ISerializedObject)((BraveBehaviour)component).behaviorSpeculator).SerializedStateValues; if (serializedObjectReferences != null && serializedObjectReferences.Count > 0) { foreach (Object item in serializedObjectReferences) { val6.SerializedObjectReferences.Add(item); } } if (serializedStateKeys != null && serializedStateKeys.Count > 0) { foreach (string item2 in serializedStateKeys) { val6.SerializedStateKeys.Add(item2); } } if (serializedStateValues != null && serializedStateValues.Count > 0) { foreach (string item3 in serializedStateValues) { val6.SerializedStateValues.Add(item3); } } ((BraveBehaviour)val5).RegenerateCache(); GameObject result = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)component2).gameObject, CurrentRoom, position, false, awakenAnimType, autoEngage); Object.Destroy((Object)(object)val); component = null; return result; } } public static class ExpandLists { public static readonly List InvalidGraphicsModes = new List { (GraphicsDeviceType)8, (GraphicsDeviceType)11, (GraphicsDeviceType)21 }; public static List CompanionItems = new List(); public static List EXBowlerNotes_RatPunchout = new List { "Doesn't look like this rat stole this from a {wb}Rainbow Chest{w}.\n\nNo {wb}RAAAAAIIIINBOW{w}, no item!\n\n{wb}-Bowler{w}", "Rats are GROOOOOOSS!\n\n{wb}-Bowler{w}" }; public static List EXBowlerNotes_GungeoneerMimic = new List { "Doesn't look like this Mimiclay item came from a {wb}RAAAAAIIIINBOW{w} Chest.\n\nNo {wb}RAAAAAIIIINBOW{w}, no item!\n\n{wb}-Bowler{w}", "It doesn't matter if you had to fight yourself!\n\nNo {wb}RAAAAAIIIINBOW{w}, no item!\n\n{wb}-Bowler{w}" }; public static List EXBowlerNotes_OldWestBros = new List { "Did this fancy gun come from a {wb}RAAAAAIIIINBOW{w} Chest? I don't think so!\n\nNo {wb}RAAAAAIIIINBOW{w}, no item!\n\n{wb}-Bowler{w}", "This town ain't big enough for the two of us! ... by two us I mean this item you could have gotten.\n\nOnly room in this town for {wb}RAAAAAIIIINBOWS{w}!\n\n-Bowler" }; public static readonly List EXFutureCollection = new List { "poisbulord_sewer_grateframe_001", "poisbulord_sewer_grateframe_002", "poisbulord_sewer_grateframe_003", "poisbulord_sewer_grateframe_004", "Future_Sign_001", "Future_Sign_002", "Future_Sign_003", "Future_Sign_004", "Future_Sign_005", "Future_Sign_006", "Future_Sign_007", "Future_Sign_008", "Past_Sign_001", "Past_Sign_005", "Future_Sign_Shadow", "SignPost_MinimapIcon" }; public static readonly List EXChestCollection = new List { "chest_west_appear_001", "chest_west_appear_002", "chest_west_appear_003", "chest_west_appear_004", "chest_west_appear_005", "chest_west_appear_006", "chest_west_break_001", "chest_west_break_002", "chest_west_break_003", "chest_west_break_004", "chest_west_idle_001", "chest_west_open_001", "chest_west_open_002", "chest_west_open_003", "chest_west_open_004", "chest_west_open_005", "chest_west_open_006", "chest_west_open_007", "chest_west_open_008", "chest_west_open_009", "chest_west_open_010", "chest_west_shadow", "west_lock_broke_001", "west_lock_idle_001", "west_lock_nokey_001", "west_lock_nokey_002", "west_lock_open_001", "west_lock_open_002", "west_lock_open_003", "west_lock_open_004", "west_lock_open_005", "west_lock_open_006", "west_lock_open_007", "enemy_chest_appear_001", "enemy_chest_appear_002", "enemy_chest_appear_003", "enemy_chest_appear_004", "enemy_chest_appear_005", "enemy_chest_break001", "enemy_chest_break002", "enemy_chest_break003", "enemy_chest_break004", "enemy_chest_idle_001", "enemy_chest_knock_001", "enemy_chest_knock_002", "enemy_chest_knock_003", "enemy_chest_knock_004", "enemy_chest_knock_005", "enemy_chest_open_001", "enemy_chest_open_002", "enemy_chest_open_003", "enemy_chest_open_004", "enemy_chest_open_005", "enemy_chest_open_006", "enemy_chest_open_007", "enemy_chest_open_008", "enemy_chest_open_009", "enemy_chest_open_010", "enemy_chest_open_011", "enemy_chest_open_012", "enemy_chest_open_013", "enemy_chest_open_014" }; public static readonly List EXSecretDoorCollection = new List { "EXSecretDoor_Background", "EXSecretBackroomsDoor_Background", "EXSecretDoor_Open_00", "EXSecretDoor_Open_01", "EXSecretDoor_Open_02", "EXSecretDoor_Open_03", "EXSecretDoor_Open_04", "EXSecretDoor_Open_05", "EXSecretDoor_Open_06", "EXSecretDoor_Open_07", "EXSecretBackroomsDoor_Open_00", "EXSecretBackroomsDoor_Open_01", "EXSecretBackroomsDoor_Open_02", "EXSecretBackroomsDoor_Open_03", "EXSecretBackroomsDoor_Open_04", "EXSecretBackroomsDoor_Open_05", "EXSecretBackroomsDoor_Open_06", "EXSecretBackroomsDoor_Open_07", "EXSecretDoor_Frame_Bottom", "EXSecretDoor_Frame_NoDecal_Top", "EXSecretDoor_Frame_Top", "EXSecretBackroomsDoor_Frame_Bottom", "EXSecretBackroomsDoor_Frame_Top", "EXSecretDoor_Light_Green", "EXSecretDoor_Light_Red", "EXSecretBackroomsDoor_Light_Green", "EXSecretBackroomsDoor_Light_Red", "EXSecretDoor_MinimapIcon", "EXSecretBackroomsDoor_MinimapIcon", "west_biglock_001", "west_biglock_open_001", "west_biglock_open_002", "west_biglock_open_003", "west_biglock_open_004", "west_biglock_open_005", "west_biglock_open_006", "west_biglock_open_007", "west_biglock_open_008", "west_biglock_open_009", "west_biglock_open_010", "west_biglock_open_011", "west_biglock_open_012", "west_biglock_open_013" }; public static readonly List EXGungeoneerMimicCollection = new List { "PlayerMimicMirror_Base", "PlayerMimicMirror_Broken", "PlayerMimicMirror_MimicCrack_01", "PlayerMimicMirror_MimicCrack_02", "PlayerMimicMirror_MimicCrack_03", "PlayerMimicMirror_MimicCrack_04", "PlayerMimicMirror_MimicCrack_05", "PlayerMimicMirror_MimicFadeIn_01", "PlayerMimicMirror_MimicFadeIn_02", "PlayerMimicMirror_MimicFadeIn_03", "PlayerMimicMirror_MimicFadeIn_04", "PlayerMimicMirror_MimicFadeIn_05", "PlayerMimicMirror_MimicFadeIn_06", "PlayerMimicMirror_MimicFadeIn_07", "PlayerMimicMirror_MimicFadeIn_08", "PlayerMimicMirror_MimicFadeIn_09", "PlayerMimicMirror_MimicFadeIn_10", "PlayerMimicMirror_ShatterDebris_01", "PlayerMimicMirror_ShatterDebris_02", "PlayerMimicMirror_ShatterDebris_03", "PlayerMimicMirror_ShatterDebris_04", "PlayerMimicMirror_ShatterDebris_05", "PlayerMimicMirror_ShatterDebris_06", "PlayerMimicMirror_ShatterDebris_07", "PlayerMimicMirror_ShatterDebris_08", "PlayerMimicMirror_ShatterDebris_09", "PlayerMimicMirror_ShatterDebris_10" }; public static readonly List EXFoyerCollection = new List { "casino_hub_floor_001", "casino_hub_backwall_001", "casino_hub_border_001", "casino_carpet_001", "floortrigger_idle_01", "floortrigger_active_01", "foyerdoor_field_01", "foyerdoor_open_01", "foyerdoor_open_02", "foyerdoor_open_03", "foyerdoor_open_04", "foyerdoor_open_05", "foyerdoor_open_06", "foyerdoor_open_07", "foyerdoor_open_08", "foyerdoor_open_09", "foyerdoor_open_10", "foyerdoor_open_11", "foyerdoor_open_12", "foyerdoor_open_13", "casino_poker_table_shadow", "casino_poker_table_001", "casino_poker_table_props_001", "casino_poker_table_props_002", "casino_hatrack_001", "casino_litter_paper_001", "casino_litter_cans_001", "cabinet_covered_001", "cabinet_decorative_001", "cabinet_idle_001", "cabinet_idle_002", "cabinet_idle_003", "cabinet_idle_004", "cabinet_idle_005", "cabinet_idle_006", "cabinet_idle_007", "cabinet_idle_008", "cabinet_idle_009", "cabinet_idle_010", "cabinet_idle_011", "cabinet_idle_012", "cabinet_interact_001", "cabinet_interact_002", "cabinet_interact_003", "cabinet_interact_004", "cabinet_sleep_001", "cabinet_sleep_002", "cabinet_sleep_003", "cabinet_sleep_004", "cabinet_sleep_005", "cabinet_sleep_006", "cabinet_sleep_007", "cabinet_sleep_008", "cabinet_sleep_009", "cabinet_sleep_010", "cabinet_sleep_011", "cabinet_sleep_012", "cabinet_sleep_013", "cabinet_sleep_014", "cabinet_fight_001", "cabinet_fight_002", "cabinet_fight_003", "cabinet_fight_004", "cabinet_fight_005", "cabinet_fight_006", "cabinet_fight_007", "cabinet_fight_008", "cabinet_fight_009", "cabinet_fight_010", "cabinet_fight_011", "cabinet_fight_012", "cabinet_fight_013", "cabinet_fight_014", "cabinet_shadow_001", "punchout_coin_left", "punchout_coin_right", "depressedcabinet_blink_001", "depressedcabinet_blink_002", "depressedcabinet_blink_003", "depressedcabinet_idle_001", "depressedcabinet_sigh_001", "depressedcabinet_sigh_002", "depressedcabinet_sigh_003", "depressedcabinet_sigh_004", "depressedcabinet_sigh_005", "depressedcabinet_sigh_006", "depressedcabinet_sigh_007", "gunball_idle_001", "gunball_idle_002", "gunball_idle_003", "gunball_idle_004", "gunball_interact_001", "gunball_interact_002", "gunball_interact_003", "gunball_interact_004", "gunball_interact_005", "gunball_interact_006", "gunball_use_001", "gunball_use_002", "gunball_use_003", "gunball_use_004", "gunball_use_005", "gunball_use_006", "gunball_use_007", "gunball_use_008", "gunball_use_009", "gunball_use_010", "gunball_use_011", "gunball_use_012", "gunball_use_013", "gunball_use_014", "gunball_use_015", "gunball_use_016", "gunball_use_017", "gunball_use_018", "gunball_use_019", "gunball_use_020", "gunball_use_021", "gunball_use_022", "gunball_use_023", "gunball_use_024", "gunball_use_025", "gunball_use_026", "gunball_use_027", "gunball_use_028", "gunball_empty_001", "gunball_shadow_001" }; public static readonly List EXItemCollection = new List { "babygoodhammer", "babygoodhammer_spawn_00", "babygoodhammer_spawn_01", "babygoodhammer_spawn_02", "babygoodhammer_spawn_03", "babygoodhammer_spawn_04", "babygoodhammer_spawn_05", "babygoodhammer_spawn_06", "babygoodhammer_spawn_07", "babygoodhammer_spawn_08", "babygoodhammer_spawn_09", "babygoodhammer_spawn_10", "babygoodhammer_spawn_11", "babygoodhammer_spawn_12", "babygoodhammer_spawn_13", "babygoodhammer_spawn_14", "babygoodhammer_spawn_15", "babygoodhammer_spawn_16", "babygoodhammer_spawn_17", "babygoodhammer_spawn_18", "babygoodhammer_spawn_19", "babygoodhammer_spawn_20", "babygoodhammer_spawn_21", "babygoodhammer_spawn_22", "babygoodhammer_spawn_23", "babygoodhammer_spawn_24", "babygoodhammer_spawn_25", "babysitter", "corrupted_poopsack_01", "corrupted_poopsack_02", "corrupted_poopsack_03", "corrupted_poopsack_04", "corrupted_poopsack_05", "corrupted_poopsack_06", "corrupted_poopsack_07", "corrupted_poopsack_08", "corrupted_poopsack_09", "corrupted_poopsack_10", "corruptionbomb", "corruptionbomb_minimapicon", "corruptionbomb_spin_01", "corruptionbomb_spin_02", "corruptionbomb_spin_03", "corruptionbomb_spin_04", "corruptionbomb_spin_05", "corruptionbomb_spin_06", "corruptionbomb_spin_07", "corruptionbomb_spin_08", "corruptionbomb_spin_09", "corruptionbomb_spin_10", "cronenbergbullets", "cursedbrick", "ex_mimiclay", "glitchround", "junglecrest", "plunger_fire_001", "plunger_fire_002", "plunger_fire_003", "plunger_fire_004", "plunger_fire_005", "plunger_fire_006", "PowBlock", "PowBlock_Idle_01", "PowBlock_Idle_02", "PowBlock_Idle_03", "PowBlock_Idle_04", "PowBlock_Idle_05", "PowBlock_Idle_06", "PowBlock_Idle_07", "PowBlock_Idle_08", "PowBlock_Idle_09", "PowBlock_Idle_10", "PowBlock_Idle_11", "PowBlock_Idle_12", "PowBlock_Idle_13", "PowBlock_Idle_14", "PowBlock_Used", "rockslide", "SonicBox_Broken_01", "SonicBox_Idle_01", "SonicBox_Idle_02", "SonicBox_Idle_03", "SonicRing_Idle_01", "SonicRing_Idle_02", "SonicRing_Idle_03", "SonicRing_Idle_04", "SonicRing_Idle_05", "SonicRing_Idle_06", "SonicRing_Idle_07", "SonicRing_Idle_08", "SonicRing_Idle_09", "SonicRing_Idle_10", "SonicRing_Idle_11", "SonicRing_Idle_12", "SonicRing_Idle_13", "SonicRing_Idle_14", "SonicRing_Idle_15", "tabletech_assassin", "theleadkey", "thethirdeye", "clownbullets", "portable_elevator_pushed", "portable_elevator", "portableship", "portableship_alt", "portableship_shadow", "clownfriend", "west_key_001", "west_key_minimap", "hatty_001", "hatty_002", "hatty_003", "hatty_004", "hatty_005", "hatty_006", "hatty_item", "hatty_item_active_blue", "hatty_item_active_red", "hatty_hammertarget_001" }; public static readonly List ClownkinCollection = new List { "clownkin_death_back_south_001", "clownkin_death_back_south_002", "clownkin_death_back_south_003", "clownkin_death_back_south_004", "clownkin_death_front_north_001", "clownkin_death_front_north_002", "clownkin_death_front_north_003", "clownkin_death_front_north_004", "clownkin_death_left_back_001", "clownkin_death_left_back_002", "clownkin_death_left_back_003", "clownkin_death_left_back_004", "clownkin_death_left_back_005", "clownkin_death_left_front_001", "clownkin_death_left_front_002", "clownkin_death_left_front_003", "clownkin_death_left_front_004", "clownkin_death_left_front_005", "clownkin_death_left_side_001", "clownkin_death_left_side_002", "clownkin_death_left_side_003", "clownkin_death_left_side_004", "clownkin_death_right_back_001", "clownkin_death_right_back_002", "clownkin_death_right_back_003", "clownkin_death_right_back_004", "clownkin_death_right_back_005", "clownkin_death_right_front_001", "clownkin_death_right_front_002", "clownkin_death_right_front_003", "clownkin_death_right_front_004", "clownkin_death_right_front_005", "clownkin_death_right_side_001", "clownkin_death_right_side_002", "clownkin_death_right_side_003", "clownkin_death_right_side_004", "clownkin_die_left_001", "clownkin_die_left_002", "clownkin_die_left_back_001", "clownkin_die_left_back_002", "clownkin_die_right_001", "clownkin_die_right_002", "clownkin_die_right_back_001", "clownkin_die_right_back_002", "clownkin_hit_back_left_001", "clownkin_hit_back_right_001", "clownkin_hit_left_001", "clownkin_hit_right_001", "clownkin_idle_back_001", "clownkin_idle_back_002", "clownkin_idle_left_001", "clownkin_idle_left_002", "clownkin_idle_right_001", "clownkin_idle_right_002", "clownkin_pitfall_001", "clownkin_pitfall_002", "clownkin_pitfall_003", "clownkin_pitfall_004", "clownkin_pitfall_005", "clownkin_run_left_001", "clownkin_run_left_002", "clownkin_run_left_003", "clownkin_run_left_004", "clownkin_run_left_005", "clownkin_run_left_006", "clownkin_run_left_back_001", "clownkin_run_left_back_002", "clownkin_run_left_back_003", "clownkin_run_left_back_004", "clownkin_run_left_back_005", "clownkin_run_left_back_006", "clownkin_run_right_001", "clownkin_run_right_002", "clownkin_run_right_003", "clownkin_run_right_004", "clownkin_run_right_005", "clownkin_run_right_006", "clownkin_run_right_back_001", "clownkin_run_right_back_002", "clownkin_run_right_back_003", "clownkin_run_right_back_004", "clownkin_run_right_back_005", "clownkin_run_right_back_006", "clownkin_spawn_001", "clownkin_spawn_002", "clownkin_spawn_003", "clownkin_wig", "clownkin_wig_grounded" }; public static readonly List EXEntityCollection = new List { "entity_idle_back_001", "entity_idle_back_002", "entity_idle_back_003", "entity_idle_back_004", "entity_idle_front_001", "entity_idle_front_002", "entity_idle_front_003", "entity_idle_front_004", "entity_run_back_left_001", "entity_run_back_left_002", "entity_run_back_left_003", "entity_run_back_left_004", "entity_run_back_left_005", "entity_run_back_left_006", "entity_run_back_right_001", "entity_run_back_right_002", "entity_run_back_right_003", "entity_run_back_right_004", "entity_run_back_right_005", "entity_run_back_right_006", "entity_run_left_001", "entity_run_left_002", "entity_run_left_003", "entity_run_left_004", "entity_run_left_005", "entity_run_left_006", "entity_run_right_001", "entity_run_right_002", "entity_run_right_003", "entity_run_right_004", "entity_run_right_005", "entity_run_right_006", "entity_spawn_001", "entity_spawn_002", "entity_spawn_003", "entity_spawn_004", "entity_spawn_005", "entity_spawn_006", "entity_spawn_007", "entity_spawn_008", "entity_spawn_009", "entity_spawn_010", "entity_spawn_011", "entity_spawn_012", "entity_spawn_013", "entity_spawn_014", "entity_spawn_015", "entity_spawn_016", "entity_spawn_017", "entity_spawn_018", "entity_spawn_019", "entity_spawn_020", "entity_spawn_021", "entity_spawn_022", "entity_spawn_023", "entity_spawn_024", "entity_spawn_025", "entity_spawn_026", "entity_spawn_027", "entity_spawn_028", "entity_spawn_029" }; public static readonly List EXBackroomsCollection = new List { "backrooms_one_way_blocker_vertical_bottom_001", "backrooms_warp_wing_001", "Danger_MinimapIcon", "WarpWing_MinimapIcon", "CarpetStainLarge_01", "CarpetStainLarge_02", "CarpetStainLarge_03", "CarpetStainMedium_01", "CarpetStainMedium_02", "CarpetStainMedium_03", "CarpetStainMedium_04", "CarpetStainMedium_05", "CarpetStainMedium_06", "CarpetStain_01", "CarpetStain_02", "CarpetStain_03", "CarpetStain_04", "CarpetStain_05", "CarpetStain_06", "CarpetStain_07", "CarpetStain_08", "CarpetStain_09", "CarpetStain_10", "CarpetStain_11", "CarpetStain_12", "CarpetStain_13", "CarpetStain_14", "CarpetStain_15", "CarpetStain_16", "CarpetStain_17", "CarpetStain_18", "CarpetStain_19", "CarpetStain_20" }; public static readonly List EXBalloonCollection = new List { "blueballoon_idle_001", "blueballoon_pop_001", "blueballoon_pop_002", "blueballoon_pop_003", "greenballoon_idle_001", "greenballoon_pop_001", "greenballoon_pop_002", "greenballoon_pop_003", "pinkballoon_pop_003", "pinkballoon_idle_001", "pinkballoon_pop_001", "pinkballoon_pop_002", "redballoon_idle_001", "redballoon_pop_001", "redballoon_pop_002", "redballoon_pop_003", "yellowballoon_idle_001", "yellowballoon_pop_001", "yellowballoon_pop_002", "yellowballoon_pop_003" }; public static readonly List EXPortableElevatorCollection = new List { "portable_elevator_interiorfloor", "portable_elevator_floor", "portable_elevator_floor_border", "portable_elevator_floor_alt", "portable_elevator_floor_broken", "portable_elevator_floor_broken_alt", "portable_elevator_reticle_red", "portable_elevator_reticle_green", "portable_elevator_arrive_01", "portable_elevator_arrive_02", "portable_elevator_arrive_03", "portable_elevator_arrive_04", "portable_elevator_open_01", "portable_elevator_open_02", "portable_elevator_open_03", "portable_elevator_open_04", "portable_elevator_open_05", "portable_elevator_depart_01", "portable_elevator_depart_02", "portable_elevator_depart_03", "portable_elevator_depart_04", "portable_elevator_depart_05", "portable_elevator_depart_06", "portable_elevator_depart_07", "portable_elevator_depart_08", "portable_elevator_depart_09", "portable_elevator_depart_10", "portable_elevator_depart_11" }; public static readonly List EXJungleCollection = new List { "Jungle_Tree_Large", "Jungle_Tree_Large_Frame", "Jungle_Tree_Large_Open", "Jungle_Tree_Large_Shadow", "JungleTree_MinimapIcon", "junglecrest_minimapicon.png", "Jungle_TreeStump", "Jungle_ExitLadder", "Jungle_ExitLadder_Destination", "Jungle_ExitLadder_Destination_Hole", "Jungle_Tree_Medium", "Jungle_Tree_Medium_Stump", "Jungle_Tree_Medium_Stump_Shadow", "Jungle_Tree_Small", "Jungle_Tree_Small_Shadow", "Jungle_Tree_Medium_Shadow", "Jungle_Tree_Debris_03", "Jungle_Tree_Debris_02", "Jungle_Tree_Debris_01" }; public static readonly List EXOfficeCollection = new List { "office_one_way_blocker_vertical_top_001", "office_one_way_blocker_vertical_bottom_001", "office_one_way_blocker_horizontal_bottom_001", "office_one_way_blocker_horizontal_top_001" }; public static readonly List EXSpaceCollection = new List { "spacegrass_01", "spacegrass_02", "spacegrass_03", "spacegrass_04" }; public static readonly List EXTrapCollection = new List { "RickRoll_RiseUp_01", "RickRoll_RiseUp_02", "RickRoll_RiseUp_03", "RickRoll_RiseUp_04", "RickRoll_RiseUp_05", "RickRoll_RiseUp_06", "RickRoll_RiseUp_07", "RickRoll_RiseUp_08", "RickRoll_RiseUp_09", "RickRoll_RiseUp_10", "RickRoll_RiseUp_11", "RickRoll_RiseUp_12", "RickRoll_01", "RickRoll_02", "RickRoll_03", "RickRoll_04", "RickRoll_05", "RickRoll_06", "RickRoll_07", "RickRoll_08", "RickRoll_09", "RickRoll_10", "RickRoll_11", "RickRoll_12", "RickRoll_13", "RickRoll_14", "RickRoll_15", "RickRoll_16", "RickRoll_17", "RickRoll_18", "RickRoll_19", "RickRoll_20", "RickRoll_21", "RickRoll_22", "RickRoll_23", "RickRoll_24", "RickRoll_25", "RickRoll_26", "RickRoll_27", "RickRoll_28", "RainbowRoad", "RainbowRoad_PitBorders", "EX_Trap_Apache_01", "EX_Trap_Apache_02", "music_switch_idle_on_001", "music_switch_idle_off_001", "music_switch_activate_001", "music_switch_activate_002", "music_switch_activate_002_reverse", "music_switch_activate_003", "music_switch_activate_004", "music_switch_activate_005", "alarm_mushroom2_alarm_001", "alarm_mushroom2_alarm_002", "alarm_mushroom2_alarm_003", "alarm_mushroom2_alarm_004", "alarm_mushroom2_alarm_005", "alarm_mushroom2_alarm_006", "alarm_mushroom2_break_001", "alarm_mushroom2_break_002", "alarm_mushroom2_break_003", "alarm_mushroom2_break_004", "alarm_mushroom2_dead_001", "alarm_mushroom2_idle_001", "alarm_mushroom2_idle_002", "alarm_mushroom2_idle_003", "alarm_mushroom2_idle_004", "alarm_mushroom2_idle_005", "alarm_mushroom2_shadow_001" }; public static readonly List EXSmallStainList = new List { "CarpetStain_01", "CarpetStain_02", "CarpetStain_03", "CarpetStain_04", "CarpetStain_05", "CarpetStain_06", "CarpetStain_07", "CarpetStain_08", "CarpetStain_09", "CarpetStain_10", "CarpetStain_11", "CarpetStain_12", "CarpetStain_13", "CarpetStain_14", "CarpetStain_15", "CarpetStain_16", "CarpetStain_17", "CarpetStain_18", "CarpetStain_19", "CarpetStain_20" }; public static readonly List EXMediumStainList = new List { "CarpetStainMedium_01", "CarpetStainMedium_02", "CarpetStainMedium_03", "CarpetStainMedium_04", "CarpetStainMedium_05", "CarpetStainMedium_06" }; public static readonly List EXLargeStainList = new List { "CarpetStainLarge_01", "CarpetStainLarge_02", "CarpetStainLarge_03" }; public static readonly List RatChestItems = new List { 626, 662, 663, 667 }; public static readonly List OverrideFallIntoPitsList = new List { "ed37fa13e0fa4fcf8239643957c51293", "6b7ef9e5d05b4f96b04f05ef4a0d1b18", "98fdf153a4dd4d51bf0bafe43f3c77ff", "2feb50a6a40f4f50982e89fd276f6f15", "2d4f8b5404614e7d8b235006acde427a", "b4666cb6ef4f4b038ba8924fd8adf38f", "7ec3e8146f634c559a7d58b19191cd43", "4db03291a12144d69fe940d5a01de376", "b70cbd875fea498aa7fd14b970248920", "72d2f44431da43b8a3bae7d8a114a46d", "c182a5cb704d460d9d099a47af49c913", "9b4fb8a2a60a457f90dcf285d34143ac", "48d74b9c65f44b888a94f9e093554977", "c5a0fd2774b64287bf11127ca59dd8b4", "b67ffe82c66742d1985e5888fd8e6a03", "d9632631a18849539333a92332895ebd", "1898f6fe1ee0408e886aaf05c23cc216", "abd816b0bcbf4035b95837ca931169df", "07d06d2b23cc48fe9f95454c839cb361", "ccf6d241dad64d989cbcaca2a8477f01", "864ea5a6a9324efc95a0dd2407f42810", "1bc2a07ef87741be90c37096910843ab", "88f037c3f93b4362a040a87b30770407", "0d3f7c641557426fbac8596b61c9fb45", "d4f4405e0ff34ab483966fd177f2ece3", "534f1159e7cf4f6aa00aeea92459065e", "981d358ffc69419bac918ca1bdf0c7f7", "4b21a913e8c54056bc05cafecf9da880", "78e0951b097b46d89356f004dda27c42", "216fd3dfb9da439d9bd7ba53e1c76462", "c07ef60ae32b404f99e294a6f9acba75", "7bd9c670f35b4b8d84280f52a5cc47f6", "705e9081261446039e1ed9ff16905d04", "998807b57e454f00a63d67883fcf90d6", "11a14dbd807e432985a89f69b5f9b31e", "640238ba85dd4e94b3d6f68888e6ecb8", "6f9c28403d3248c188c391f5e40774c5", "3a077fa5872d462196bb9a3cb1af02a3", "1ccdace06ebd42dc984d46cb1f0db6cf", "fe51c83b41ce4a46b42f54ab5f31e6d0", "ededff1deaf3430eaf8321d0c6b2bd80", "d375913a61d1465f8e4ffcf4894e4427", "5695e8ffa77c4d099b4d9bd9536ff35e", "c6c8e59d0f5d41969c74e802c9d67d07", "86237c6482754cd29819c239403a2de7", "ad35abc5a3bf451581c3530417d89f2c", "e9fa6544000942a79ad05b6e4afb62db", "ebf2314289ff4a4ead7ea7ef363a0a2e", "ab4a779d6e8f429baafa4bf9e5dca3a9", "9216803e9c894002a4b931d7ea9c6bdf", "cc9c41aa8c194e17b44ac45f993dd212", "45f5291a60724067bd3ccde50f65ac22", "41ab10778daf4d3692e2bc4b370ab037", "2976522ec560460c889d11bb54fbe758", "e456b66ed3664a4cb590eab3a8ff3814", "3f40178e10dc4094a1565cd4fdc4af56" }; public static readonly List DontDieOnCollisionWhenTinyGUIDList = new List { "76bc43539fc24648bff4568c75c686d1", "c07ef60ae32b404f99e294a6f9acba75", "7bd9c670f35b4b8d84280f52a5cc47f6", "705e9081261446039e1ed9ff16905d04", "998807b57e454f00a63d67883fcf90d6", "11a14dbd807e432985a89f69b5f9b31e", "640238ba85dd4e94b3d6f68888e6ecb8", "6f9c28403d3248c188c391f5e40774c5", "3a077fa5872d462196bb9a3cb1af02a3", "1ccdace06ebd42dc984d46cb1f0db6cf", "fe51c83b41ce4a46b42f54ab5f31e6d0", "ededff1deaf3430eaf8321d0c6b2bd80", "d375913a61d1465f8e4ffcf4894e4427", "5695e8ffa77c4d099b4d9bd9536ff35e", "c6c8e59d0f5d41969c74e802c9d67d07", "86237c6482754cd29819c239403a2de7", "ad35abc5a3bf451581c3530417d89f2c", "e9fa6544000942a79ad05b6e4afb62db", "ebf2314289ff4a4ead7ea7ef363a0a2e", "ab4a779d6e8f429baafa4bf9e5dca3a9", "9216803e9c894002a4b931d7ea9c6bdf", "cc9c41aa8c194e17b44ac45f993dd212", "45f5291a60724067bd3ccde50f65ac22", "41ab10778daf4d3692e2bc4b370ab037", "2976522ec560460c889d11bb54fbe758", "e456b66ed3664a4cb590eab3a8ff3814" }; public static readonly List BannedEnemyGUIDList = new List { "3f11bbbc439c4086a180eb0fb9990cb4", "6c43fddfd401456c916089fdd1c99b1c", "1b5810fafbec445d89921a4efb4e42b7", "4b992de5b4274168a8878ef9bf7ea36b", "ec6b674e0acd4553b47ee94493d66422", "fa76c8cfdf1c4a88b55173666b4bc7fb", "df7fb62405dc4697b7721862c7b6b3cd", "f3b04a067a65492f8b279130323b41f0", "ffca09398635467da3b1f4a54bcfda80", "5729c8b5ffa7415bb3d01205663a33ef", "465da2bb086a4a88a803f79fe3a27677", "5e0af7f7d9de4755a68d2fd3bbc15df4", "6868795625bd46f3ae3e4377adce288b", "4d164ba3f62648809a4a82c90fc22cae", "05b8afe0b6cc4fffa9dc6036fa24c8ec", "2e6223e42e574775b56c6349921f42cb", "39de9bd6a863451a97906d949c103538", "8d441ad4e9924d91b6070d5b3438d066", "ce2d2a0dced0444fb751b262ec6af08a", "cd88c3ce60c442e9aa5b3904d31652bc", "68a238ed6a82467ea85474c595c49c6e", "7c5d5f09911e49b78ae644d2b50ff3bf", "dc3cd41623d447aeba77c77c99598426", "8b913eea3d174184be1af362d441910d", "b98b10fca77d469e80fb45f3c5badec5", "78eca975263d4482a4bfa4c07b32e252", "8b0dd96e2fe74ec7bebc1bc689c0008a", "2ccaa1b7ae10457396a1796decda9cf6", "39dca963ae2b4688b016089d926308ab", "db97e486ef02425280129e1e27c33118", "ba928393c8ed47819c2c5f593100a5bc", "2b6854c0849b4b8fb98eb15519d7db1c", "9215d1a221904c7386b481a171e52859", "226fd90be3a64958a5b13cb0a4f43e97", "df4e9fedb8764b5a876517431ca67b86", "1f290ea06a4c416cabc52d6b3cf47266", "c4cf0620f71c4678bb8d77929fd4feff", "3cadf10c489b461f9fb8814abc1a09c1", "21dd14e5ca2a4a388adab5b11b69a1e1", "1bc2a07ef87741be90c37096910843ab", "57255ed50ee24794b7aac1ac3cfb8a95", "4db03291a12144d69fe940d5a01de376", "206405acad4d4c33aac6717d184dc8d4", "c4fba8def15e47b297865b18e36cbef8", "56fb939a434140308b8f257f0f447829", "9b2cf2949a894599917d4d391a0b7394", "43426a2e39584871b287ac31df04b544", "699cd24270af4cd183d671090d8323a1", "a446c626b56d4166915a4e29869737fd", "22fc2c2c45fb47cf9fb5f7b043a70122", "42be66373a3d4d89b91a35c9ff8adfec", "b8103805af174924b578c98e95313074", "3e98ccecf7334ff2800188c417e67c15", "ffdc8680bdaa487f8f31995539f74265", "d8a445ea4d944cc1b55a40f22821ae69", "c2f902b7cbe745efb3db4399927eab34", "98ca70157c364750a60f5e0084f9d3e2", "14ea47ff46b54bb4a98f91ffcffb656d", "6ad1cafc268f4214a101dca7af61bc91", "479556d05c7c44f3b6abb3b2067fc778", "796a7ed4ad804984859088fc91672c7f", "475c20c1fd474dfbad54954e7cba29c1", "45192ff6d6cb43ed8f1a874ab6bef316", "eeb33c3a5a8e4eaaaaf39a743e8767bc", "56f5a0f2c1fc4bc78875aea617ee31ac", "2feb50a6a40f4f50982e89fd276f6f15", "2d4f8b5404614e7d8b235006acde427a", "b4666cb6ef4f4b038ba8924fd8adf38f", "7ec3e8146f634c559a7d58b19191cd43", "af84951206324e349e1f13f9b7b60c1a", "e667fdd01f1e43349c03a18e5b79e579", "41ba74c517534f02a62f2e2028395c58", "ac986dabc5a24adab11d48a4bccf4cb1", "3f6d6b0c4a7c4690807435c7b37c35a5", "cd4a4b7f612a4ba9a720b9f97c52f38c", "98ea2fe181ab4323ab6e9981955a9bca", "d5a7b95774cd41f080e517bea07bf495", "88f037c3f93b4362a040a87b30770407", "1386da0f42fb4bcabc5be8feb16a7c38", "566ecca5f3b04945ac6ce1f26dedbf4f", "f155fd2759764f4a9217db29dd21b7eb", "33b212b856b74ff09252bf4f2e8b8c57", "3f2026dc3712490289c4658a2ba4a24b", "2ebf8ef6728648089babb507dec4edb7", "d8d651e3484f471ba8a2daa4bf535ce6", "abfb454340294a0992f4173d6e5898a8", "d8fd592b184b4ac9a3be217bc70912a2", "6450d20137994881aff0ddd13e3d40c8", "ac9d345575444c9a8d11b799e8719be0", "705e9081261446039e1ed9ff16905d04", "640238ba85dd4e94b3d6f68888e6ecb8", "3a077fa5872d462196bb9a3cb1af02a3", "1ccdace06ebd42dc984d46cb1f0db6cf", "fe51c83b41ce4a46b42f54ab5f31e6d0", "ededff1deaf3430eaf8321d0c6b2bd80", "d375913a61d1465f8e4ffcf4894e4427", "5695e8ffa77c4d099b4d9bd9536ff35e", "c6c8e59d0f5d41969c74e802c9d67d07", "86237c6482754cd29819c239403a2de7", "ad35abc5a3bf451581c3530417d89f2c", "e9fa6544000942a79ad05b6e4afb62db", "ebf2314289ff4a4ead7ea7ef363a0a2e", "ab4a779d6e8f429baafa4bf9e5dca3a9", "9216803e9c894002a4b931d7ea9c6bdf", "cc9c41aa8c194e17b44ac45f993dd212", "45f5291a60724067bd3ccde50f65ac22", "41ab10778daf4d3692e2bc4b370ab037", "2976522ec560460c889d11bb54fbe758", "e456b66ed3664a4cb590eab3a8ff3814", "3f40178e10dc4094a1565cd4fdc4af56" }; public static readonly string[] blobsAndCritters = new string[16] { "0239c0680f9f467dbe5c4aab7dd1eca6", "042edb1dfb614dc385d5ad1b010f2ee3", "42be66373a3d4d89b91a35c9ff8adfec", "e61cab252cfb435db9172adc96ded75f", "fe3fe59d867347839824d5d9ae87f244", "b8103805af174924b578c98e95313074", "1a4872dafdb34fd29fe8ac90bd2cea67", "6ad1cafc268f4214a101dca7af61bc91", "14ea47ff46b54bb4a98f91ffcffb656d", "76bc43539fc24648bff4568c75c686d1", "1386da0f42fb4bcabc5be8feb16a7c38", "95ea1a31fc9e4415a5f271b9aedf9b15", "42432592685e47c9941e339879379d3a", "4254a93fc3c84c0dbe0a8f0dddf48a5a", "8b43a5c59b854eb780f9ab669ec26b7a", "d1c9781fdac54d9e8498ed89210a0238" }; public static readonly string[] DontGlitchMeList = new string[3] { "c0260c286c8d4538a697c5bf24976ccf", "45192ff6d6cb43ed8f1a874ab6bef316", "ba928393c8ed47819c2c5f593100a5bc" }; public static string[] ValidSourceEnemyGUIDList = new string[17] { "01972dee89fc4404a5c408d50007dad5", "57255ed50ee24794b7aac1ac3cfb8a95", "4db03291a12144d69fe940d5a01de376", "05891b158cd542b1a5f3df30fb67a7ff", "31a3ea0c54a745e182e22ea54844a82d", "c5b11bfc065d417b9c4d03a5e385fe2c", "1a78cfb776f54641b832e92c44021cf2", "1bd8e49f93614e76b140077ff2e33f2b", "8bb5578fba374e8aae8e10b754e61d62", "db35531e66ce41cbb81d507a34366dfe", "5f3abc2d561b4b9c9e72b879c6f10c7e", "e5cffcfabfae489da61062ea20539887", "95ec774b5a75467a9ab05fa230c0c143", "2752019b770f473193b08b4005dc781f", "7f665bd7151347e298e4d366f8818284", "d4a9836f8ab14f3fadd0f597438b1f1f", "044a9f39712f456597b9762893fbc19c" }; public static readonly string SafeEnemyGUIDList = "eeb33c3a5a8e4eaaaaf39a743e8767bc"; public static readonly string[] SpawnEnemyOnDeathGUIDList = new string[22] { "6ad1cafc268f4214a101dca7af61bc91", "14ea47ff46b54bb4a98f91ffcffb656d", "76bc43539fc24648bff4568c75c686d1", "1386da0f42fb4bcabc5be8feb16a7c38", "8b43a5c59b854eb780f9ab669ec26b7a", "d1c9781fdac54d9e8498ed89210a0238", "95ea1a31fc9e4415a5f271b9aedf9b15", "42432592685e47c9941e339879379d3a", "4254a93fc3c84c0dbe0a8f0dddf48a5a", "042edb1dfb614dc385d5ad1b010f2ee3", "fe3fe59d867347839824d5d9ae87f244", "01972dee89fc4404a5c408d50007dad5", "70216cae6c1346309d86d4a0b4603045", "d4a9836f8ab14f3fadd0f597438b1f1f", "d4dd2b2bbda64cc9bcec534b4e920518", "05891b158cd542b1a5f3df30fb67a7ff", "699cd24270af4cd183d671090d8323a1", "022d7c822bc146b58fe3b0287568aaa2", "7ec3e8146f634c559a7d58b19191cd43", "b4666cb6ef4f4b038ba8924fd8adf38f", "2feb50a6a40f4f50982e89fd276f6f15", "2d4f8b5404614e7d8b235006acde427a" }; public static readonly string[] ReplacementEnemyGUIDList = new string[36] { "01972dee89fc4404a5c408d50007dad5", "05891b158cd542b1a5f3df30fb67a7ff", "4d37ce3d666b4ddda8039929225b7ede", "8bb5578fba374e8aae8e10b754e61d62", "f905765488874846b7ff257ff81d6d0c", "37340393f97f41b2822bc02d14654172", "5f3abc2d561b4b9c9e72b879c6f10c7e", "f38686671d524feda75261e469f30e0b", "1bd8e49f93614e76b140077ff2e33f2b", "1a78cfb776f54641b832e92c44021cf2", "2752019b770f473193b08b4005dc781f", "70216cae6c1346309d86d4a0b4603045", "d4dd2b2bbda64cc9bcec534b4e920518", "a9cc6a4e9b3d46ea871e70a03c9f77d4", "6b7ef9e5d05b4f96b04f05ef4a0d1b18", "98fdf153a4dd4d51bf0bafe43f3c77ff", "be0683affb0e41bbb699cb7125fdded6", "8b43a5c59b854eb780f9ab669ec26b7a", "d1c9781fdac54d9e8498ed89210a0238", "76bc43539fc24648bff4568c75c686d1", "226fd90be3a64958a5b13cb0a4f43e97", "df4e9fedb8764b5a876517431ca67b86", "1f290ea06a4c416cabc52d6b3cf47266", "c4cf0620f71c4678bb8d77929fd4feff", "6f818f482a5c47fd8f38cce101f6566c", "143be8c9bbb84e3fb3ab98bcd4cf5e5b", "06f5623a351c4f28bc8c6cda56004b80", "ff4f54ce606e4604bf8d467c1279be3e", "39e6f47a16ab4c86bec4b12984aece4c", "f020570a42164e2699dcf57cac8a495c", "37de0df92697431baa47894a075ba7e9", "5861e5a077244905a8c25c2b7b4d6ebb", "906d71ccc1934c02a6f4ff2e9c07c9ec", "9eba44a0ea6c4ea386ff02286dd0e6bd", "2b6854c0849b4b8fb98eb15519d7db1c", "05cb719e0178478685dc610f8b3e8bfc" }; public static readonly List PotCritterGUIDList = new List { "6ad1cafc268f4214a101dca7af61bc91", "14ea47ff46b54bb4a98f91ffcffb656d", "76bc43539fc24648bff4568c75c686d1", "1386da0f42fb4bcabc5be8feb16a7c38", "95ea1a31fc9e4415a5f271b9aedf9b15", "42432592685e47c9941e339879379d3a", "4254a93fc3c84c0dbe0a8f0dddf48a5a" }; public static readonly string BulletKinEnemyGUID = "01972dee89fc4404a5c408d50007dad5"; public static readonly string LeadMaidenEnemyGUID = "cd4a4b7f612a4ba9a720b9f97c52f38c"; public static readonly string tombstonerEnemyGUID = "cf27dd464a504a428d87a8b2560ad40a"; public static readonly string poisbuloidEnemyGUID = "fe3fe59d867347839824d5d9ae87f244"; public static readonly string skusketHeadEnemyGUID = "c2f902b7cbe745efb3db4399927eab34"; public static readonly string fungunEnemyGUID = "f905765488874846b7ff257ff81d6d0c"; public static readonly string snakeGUID = "1386da0f42fb4bcabc5be8feb16a7c38"; public static readonly List CastleWallIDs = new List { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 73, 74, 75, 76, 80, 81, 82, 83, 95, 96, 97, 98, 176, 332, 333, 334, 354, 355, 356 }; public static readonly List CastleFloorIDs = new List { 90, 91, 92, 110, 111, 112, 113, 114, 115, 116, 129, 130, 132, 133, 134, 135, 136, 137, 138, 201, 274, 296, 297, 318, 319, 340, 341, 362, 363, 370, 384, 385, 386, 387, 406, 407, 408, 409, 412, 414, 415, 416, 428, 429, 430, 431, 434, 436, 438, 450, 451, 452, 453, 454, 455, 456, 458, 459, 460, 472, 473, 474, 475, 476, 477, 478, 494, 496, 497, 498, 516, 517, 518, 519, 520, 538, 539, 540, 560, 561, 562, 582 }; public static readonly List CastleMiscIDs = new List { 107, 118, 119, 120, 121, 122, 140, 142, 143, 144, 151, 162, 163, 164, 185, 186, 187, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 220, 224, 226, 227, 228, 229, 231, 232, 233, 246, 247, 248, 249, 250, 251, 252, 253, 254, 266, 267, 286, 287, 291, 292, 293, 294, 308, 309, 310, 311, 313, 314, 315, 316, 330, 331, 335, 336, 352, 353, 357, 358, 374, 375, 376, 377, 379, 380, 381, 382, 396, 397, 398, 399, 401, 402, 403, 404, 418, 419, 420, 421, 423, 424, 425, 426, 440, 441, 442, 443, 445, 446, 447, 448, 462, 464, 465, 466, 467, 469, 470, 471, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 528, 533, 550, 555, 572, 577, 594, 599 }; public static readonly List GungeonWallIDs = new List { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 128, 129, 130, 146, 155, 156, 157, 304, 333, 334, 335, 340, 355, 356, 357, 362 }; public static readonly List GungeonFloorIDs = new List { 73, 76, 77, 82, 83, 90, 91, 93, 95, 113, 122, 123, 124, 125, 126 }; public static readonly List GungeonMiscIDs = new List { 57, 58, 59, 60, 61, 66, 67, 68, 69, 70, 71, 72, 74, 79, 80, 81, 88, 89, 92, 94, 96, 98, 99, 101, 102, 103, 104, 105, 106, 110, 111, 112, 114, 115, 116, 117, 118, 119, 120, 121, 127, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 144, 145, 147, 148, 149, 150, 151, 152, 154, 158, 161, 162, 163, 166, 167, 168, 169, 170, 171, 172, 173, 174, 176, 177, 178, 179, 185, 186, 187, 193, 194, 195, 196, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 222, 223, 224, 225, 226, 227, 228, 229, 231, 232, 233, 234, 235, 236, 237, 238, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 256, 257, 258, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 281, 286, 287, 288, 289, 290, 292, 293, 294, 295, 298, 299, 303, 308, 309, 310, 311, 312, 313, 314, 317, 320, 321, 325, 326, 330, 331, 332, 336, 337, 338, 341, 342, 343, 347, 348, 352, 353, 354, 358, 359, 360, 363, 364, 365, 369, 370, 374, 375, 376, 377, 378, 379, 380, 381, 382, 386, 387, 388, 389, 391, 392, 393, 394, 396, 397, 398, 399, 400, 401, 402, 404, 408, 409, 410, 411, 413, 414, 415, 416, 418, 419, 420, 421, 422, 423, 424, 425, 426, 430, 431, 432, 433, 435, 436, 437, 438, 440, 441, 442, 443, 444, 445, 446, 447, 452, 453, 454, 455, 457, 458, 459, 460, 462, 463, 464, 465, 466, 467, 468, 469, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 496, 497, 498, 499, 500, 501, 503, 504, 505, 506, 507, 508, 509, 510, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 540, 545, 546, 547, 550, 562, 567, 568, 569, 572, 573, 584, 589, 594, 606, 628 }; public static readonly List MinesWallIDs = new List { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 150, 151, 172, 173, 203, 213, 246, 247, 248, 249, 250, 259, 260, 268, 270, 271, 272, 290, 291, 292, 332, 333, 334, 335, 354, 355, 356, 357, 413, 414 }; public static readonly List MinesFloorIDs = new List { 80, 81, 82, 83, 84, 88, 89, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 102, 103, 104, 105, 106, 108, 109, 110, 111, 112, 114, 115, 116, 117, 120, 121, 122, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 154, 155, 176, 177, 198, 253, 254, 255, 256, 257, 258, 261, 262, 263, 264, 269, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 303, 304, 305, 306, 307, 312, 313, 314, 315, 316, 320, 321, 324, 325, 326, 327, 328, 330, 331, 337, 338, 342, 343, 345, 346, 347, 348, 349, 350, 351, 352, 353, 359, 360, 364, 365, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 381, 382, 383, 384, 386, 387, 388, 389, 391, 393, 394, 395, 396, 397, 398, 399, 403, 404, 405, 406, 408, 409, 410, 411, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 435, 436, 444, 445, 446, 457, 458, 479, 480, 501, 502, 503, 504, 523, 524, 525, 526, 545, 546, 547, 548, 567, 568, 569, 570, 589, 590, 592, 593, 611, 612, 613, 614, 615, 633, 634, 635, 636, 637, 655, 656, 657, 677, 678, 679, 699 }; public static readonly List MinesMiscIDs = new List { 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 156, 157, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 200, 201, 202, 204, 205, 206, 207, 209, 210, 211, 212, 214, 215, 216, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 234, 235, 236, 237, 238, 244, 245, 266, 267, 286, 287, 288, 289, 293, 294, 298, 299, 308, 309, 310, 311, 425, 426, 427, 428, 430, 431, 432, 433, 437, 438, 439, 440, 441, 442, 443, 447, 448, 449, 450, 452, 453, 454, 455, 459, 460, 461, 462, 463, 465, 466, 467, 468, 469, 470, 472, 473, 474, 475, 477, 478, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 494, 495, 496, 497, 499, 500, 506, 507, 508, 509, 510, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 528, 529, 535, 536, 540, 541, 550, 557, 562, 572, 579, 584, 594, 601, 606 }; public static readonly List HollowsWallIDs = new List { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 102, 103, 127, 128, 149, 150, 151, 152, 332, 333, 354, 355, 382, 383 }; public static List HollowsFloorIDs = new List { 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 80, 81, 82, 83, 84, 85, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 104, 105, 106, 107, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 129, 130, 132, 133, 134, 135, 136, 137, 138, 139, 141, 142, 143, 144, 145, 146, 147, 148, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 213, 214, 215, 216, 217, 218, 219, 222, 223, 224, 225, 226, 227, 228, 229, 235, 236, 237, 238, 239, 240, 241, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 257, 258, 259, 260, 261, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 279, 280, 281, 282, 283, 284, 286, 288, 289, 290, 291, 292, 298, 301, 302, 303, 305, 306, 307, 320, 321, 327, 328, 329, 342, 343, 349, 350, 351, 364, 365, 371, 372, 373, 386, 387, 395, 408, 409, 410, 411, 417, 430, 431, 432, 433, 452, 453, 454, 455, 474, 475, 476, 477, 496, 497, 498, 499, 500, 518, 519, 520, 521, 522, 540, 541, 542, 548, 549, 562, 570, 571, 584, 591, 592, 593, 606, 613, 614, 615 }; public static readonly List HollowsMiscIDs = new List { 188, 189, 190, 210, 212, 232, 233, 234, 294, 295, 309, 314, 315, 316, 317, 325, 326, 331, 336, 337, 338, 339, 347, 348, 353, 358, 359, 360, 361, 369, 370, 375, 380, 381, 391, 392, 396, 397, 398, 399, 402, 403, 404, 405, 413, 414, 415, 416, 418, 419, 420, 421, 424, 425, 426, 427, 435, 436, 437, 438, 440, 441, 442, 443, 446, 447, 448, 449, 457, 458, 459, 460, 462, 463, 464, 465, 468, 469, 470, 471, 479, 480, 481, 482, 484, 490, 491, 492, 493, 494, 501, 502, 503, 504, 505, 506, 512, 513, 514, 515, 516, 523, 524, 525, 526, 527, 528, 534, 535, 536, 545, 546, 547, 550, 556, 557, 567, 568, 572, 578, 589, 594, 600, 611, 622, 633 }; public static readonly List ForgeWallIDs = new List { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55 }; public static readonly List ForgeFloorIDs = new List { 56, 57, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 78, 79, 80, 88, 89, 90, 91, 92, 93, 94, 100, 101, 102, 103, 104, 105, 106, 110, 111, 112, 113, 114, 115, 120, 121, 122, 123, 124, 125, 126, 127, 128, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 171, 172, 173, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 193, 194, 195, 200, 201, 202, 203, 204, 213, 222, 223, 224, 225, 226, 244, 245, 246, 247, 248, 280, 281, 282, 283, 284, 286, 287, 288, 289, 296, 301, 302, 303, 304, 305, 306, 318, 319, 323, 324, 340, 341, 345, 346, 362, 363, 367, 368, 384, 385, 389, 390, 406, 407, 408, 409, 411, 412, 413, 414, 428, 429, 430, 431, 433, 434, 435, 436, 450, 451, 452, 453, 455, 456, 457, 458, 472, 473, 474, 475, 477, 478, 479, 480, 494, 495, 497, 498, 499, 500, 502, 503, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 560, 565, 582, 587, 604, 609 }; public static readonly List ForgeMiscIDs = new List { 215, 216, 217, 218, 219, 237, 239, 240, 241, 259, 260, 261, 262, 263, 308, 309, 313, 314, 330, 331, 335, 336, 352, 353, 357, 358, 374, 375, 379, 380, 396, 397, 398, 399, 401, 402, 403, 404, 418, 419, 420, 421, 423, 424, 425, 426, 440, 441, 442, 443, 445, 446, 447, 448, 462, 463, 464, 465, 467, 468, 469, 470, 484, 485, 487, 488, 489, 490, 492, 493, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 550, 555, 572, 577, 594, 599, 616, 621 }; public static readonly List SewerWallIDs = new List { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 44, 45, 46, 47, 48, 49, 50, 51, 52, 333, 334, 335, 355, 356, 357, 380, 381 }; public static readonly List SewerFloorIDs = new List { 53, 54, 55, 66, 67, 68, 69, 70, 88, 89, 90, 91, 95, 110, 111, 112, 114, 115, 116, 117, 119, 120, 121, 124, 125, 126, 127, 128, 136, 137, 138, 139, 141, 142, 143, 146, 147, 148, 149, 150, 163, 164, 165, 168, 169, 170, 171, 172, 177, 179, 180, 181, 182, 185, 186, 187, 188, 189, 199, 200, 201, 202, 203, 204, 207, 208, 209, 210, 211, 221, 222, 223, 224, 225, 229, 230, 231, 232, 233, 244, 245, 246, 247, 264 }; public static readonly List SewerMiscIDs = new List { 286, 287, 288, 298, 299, 308, 309, 310, 320, 321, 330, 331, 332, 342, 343, 352, 353, 354, 364, 365, 374, 375, 376, 377, 386, 387, 388, 389, 396, 397, 398, 399, 408, 409, 410, 411, 418, 419, 420, 421, 430, 431, 432, 433, 440, 441, 442, 443, 452, 453, 454, 455, 462, 463, 465, 466, 474, 475, 477, 478, 484, 485, 486, 487, 488, 496, 497, 498, 499, 500, 506, 507, 508, 509, 510, 518, 519, 520, 521, 522, 528, 540, 550, 562, 572, 584, 594 }; public static readonly List AbbeyWallIDs = new List { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 333, 334, 335, 355, 356, 357 }; public static readonly List AbbeyFloorIDs = new List { 58, 59, 60, 88, 89, 90, 91, 92, 93, 94, 110, 111, 112, 113, 115, 116, 124, 125, 126, 127, 132, 133, 134, 137, 138, 146, 147, 148, 149, 155, 156, 168, 169, 170, 171, 176, 177, 178, 179, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 231, 232, 233, 234, 235, 236, 237, 238, 242, 243, 244, 245, 246, 247, 248, 251, 252, 253, 256, 257, 258, 259, 260, 264, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 312, 313, 314, 317, 318, 319, 320, 321, 322, 323, 324, 339, 340, 341, 361, 362, 363 }; public static readonly List AbbeyMiscIDs = new List { 286, 287, 288, 308, 309, 310, 330, 331, 352, 353, 374, 375, 376, 377, 396, 397, 398, 399, 418, 419, 420, 421, 440, 441, 442, 443, 445, 446, 462, 463, 465, 466, 484, 485, 486, 487, 488, 489, 490, 506, 507, 508, 509, 510, 511, 512, 528, 529, 530, 531, 550, 551, 552, 553, 572, 594 }; public static readonly List RatDenWallIDs = new List { 55, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 44, 45, 46, 48, 49, 50, 52, 53, 54 }; public static readonly List RatDenFloorIDs = new List { 47, 51, 56, 66, 67, 68, 69, 70, 71, 72, 73, 74, 89, 90, 91, 92, 93, 94, 95, 96, 111, 112, 113, 114, 115, 116, 133, 134, 135, 136, 137, 138, 155, 156, 157, 158, 159, 160, 176, 198, 201, 202, 203, 204, 205, 206, 223, 224, 226, 227, 228, 246, 247, 248, 249, 250, 264 }; public static readonly List RatDenMiscIDs = new List { 286, 287, 288, 289, 290, 292, 308, 309, 310, 311, 312, 313, 314, 315 }; public static readonly List Nakatomi_OfficeWallIDs = new List { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59 }; public static readonly List Nakatomi_OfficeFloorIDs = new List { 66, 67, 68, 69, 70, 71, 72, 73, 74, 79, 81, 82, 83, 84, 85, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 103, 104, 105, 106, 107, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 160, 161, 164, 165, 166, 167, 168, 177, 178, 179, 180, 182, 183, 186, 187, 188, 189, 190, 198, 199, 200, 201, 202, 208, 209, 210, 230, 231, 232, 233, 252, 253, 254, 255, 256, 274, 275, 276, 277, 278 }; public static readonly List Nakatomi_OfficeMiscIDs = new List { 60, 220, 221, 242, 243, 264, 265, 286, 287, 308, 309, 310, 311, 330, 331, 332, 333, 352, 353, 354, 355, 374, 375, 376, 377, 396, 397, 399, 400, 418, 419, 420, 421, 422, 440, 441, 442, 443, 444, 462, 484, 506, 528 }; public static readonly List Nakatomi_FutureWallIDs = new List { 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 332, 333, 378, 379, 400, 401 }; public static readonly List Nakatomi_FutureFloorIDs = new List { 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 88, 91, 92, 93, 94, 96, 98, 99, 113, 114, 135, 136, 154, 155, 156, 177, 199, 221, 264 }; public static readonly List Nakatomi_FutureMiscIDs = new List { 286, 287, 288, 289, 290, 291, 298, 299, 300, 301, 308, 309, 310, 311, 312, 313, 320, 321, 322, 323, 330, 331, 342, 343, 352, 353, 364, 365, 374, 375, 376, 377, 386, 387, 388, 389, 396, 397, 398, 399, 408, 409, 410, 411, 418, 419, 420, 421, 430, 431, 432, 433, 440, 441, 442, 443, 452, 453, 454, 455, 462, 463, 465, 466, 474, 475, 477, 478, 484, 485, 486, 487, 488, 496, 497, 498, 499, 500, 506, 507, 508, 509, 510, 518, 519, 520, 521, 522, 528, 540, 550, 562, 572, 584, 594 }; public static readonly List BulletHell_WallIDs = new List { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 398, 399, 404, 405, 420, 421 }; public static readonly List BulletHell_FloorIDs = new List { 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 106, 107, 108, 109, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 128, 129, 130, 131, 132, 133, 134, 141, 142, 143, 144, 145, 146, 152, 153, 154, 155, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 174, 175, 176, 177, 178, 179, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 194, 195, 198, 199, 200, 201, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 216, 217, 218, 219, 220, 221, 222, 223, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 238, 239, 240, 241, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 260, 261, 262, 263, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 282, 283, 284, 285, 287, 288, 291, 292, 293, 296, 297, 298, 299, 304, 305, 306, 307, 309, 310, 318, 319, 330, 346 }; public static readonly List BulletHell_MiscIDs = new List { 352, 353, 357, 358, 360, 361, 363, 364, 368, 369, 374, 375, 379, 380, 382, 383, 385, 386, 390, 391, 396, 397, 401, 402, 407, 408, 412, 413, 418, 419, 423, 424, 429, 430, 434, 435, 440, 441, 442, 443, 445, 446, 447, 448, 451, 452, 453, 454, 456, 457, 458, 459, 462, 463, 464, 465, 467, 468, 469, 470, 473, 474, 475, 476, 478, 479, 480, 481, 484, 485, 486, 487, 489, 490, 491, 492, 495, 496, 497, 498, 500, 501, 502, 503, 506, 507, 508, 509, 511, 512, 513, 514, 517, 518, 519, 520, 522, 523, 524, 525, 528, 529, 531, 532, 533, 534, 536, 537, 539, 540, 542, 543, 544, 545, 547, 548, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 594, 599, 605, 610, 616, 621, 627, 632, 638, 643, 649, 654, 660, 665, 671 }; public static readonly List AllowedMimicBossWeapons = new List { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 47, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 76, 79, 80, 81, 82, 83, 84, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 99, 100, 121, 123, 124, 125, 126, 128, 129, 130, 142, 143, 145, 146, 149, 150, 151, 152, 154, 156, 157, 175, 176, 177, 178, 179, 180, 181, 182, 183, 186, 196, 197, 198, 199, 200, 202, 207, 208, 210, 221, 223, 227, 229, 230, 231, 251, 274, 275, 292, 296, 299, 327, 328, 329, 330, 331, 332, 334, 335, 336, 338, 339, 340, 341, 345, 346, 347, 355, 358, 359, 360, 363, 365, 366, 369, 370, 372, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 387, 393, 394, 395, 401, 402, 404, 406, 413, 444, 445, 464, 475, 476, 477, 478, 479, 482, 483, 484, 486, 497, 501, 503, 504, 505, 506, 507, 508, 510, 511, 512, 514, 516, 519, 535, 537, 539, 540, 541, 542, 543, 545, 546, 550, 551, 562, 563, 566, 576, 577, 594, 597, 599, 601, 602, 603, 604, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 626, 647, 648, 649, 651, 652, 657, 658, 659, 660, 668, 670, 671, 672, 673, 674, 675, 676, 677, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 690, 691, 692, 693, 694, 695, 696, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 713, 714, 715, 716, 718, 719, 720, 721, 722, 723, 724, 725, 726, 732, 733, 734, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 806, 807, 808, 809, 810, 811, 812, 816, 819, 823 }; public static readonly Dictionary> SpriteCollections = new Dictionary> { ["EXChestCollection"] = EXChestCollection, ["EXTrapCollection"] = EXTrapCollection, ["EXSpaceCollection"] = EXSpaceCollection, ["EXOfficeCollection"] = EXOfficeCollection, ["EXJungleCollection"] = EXJungleCollection, ["EXPortableElevatorCollection"] = EXPortableElevatorCollection, ["EXBalloonCollection"] = EXBalloonCollection, ["EXItemCollection"] = EXItemCollection, ["ClownkinCollection"] = ClownkinCollection, ["EntityCollection"] = EXEntityCollection, ["EXFoyerCollection"] = EXFoyerCollection, ["GungeoneerMimicCollection"] = EXGungeoneerMimicCollection, ["EXSecretDoorCollection"] = EXSecretDoorCollection, ["EXBackroomsCollection"] = EXBackroomsCollection, ["EXFutureCollection"] = EXFutureCollection }; } public class ExpandObjectDatabase { public static GameObject VFXKatanaBullets; public static GameObject VFXLeadMaidenMove; public static GameObject YellowDrum; public static GameObject RedDrum; public static GameObject WaterDrum; public static GameObject OilDrum; public static GameObject IceBomb; public static GameObject TableHorizontal; public static GameObject TableVertical; public static GameObject TableHorizontalStone; public static GameObject TableVerticalStone; public static GameObject NPCOldMan; public static GameObject NPCSynergrace; public static GameObject NPCTonic; public static GameObject NPCCursola; public static GameObject NPCGunMuncher; public static GameObject NPCEvilMuncher; public static GameObject NPCMonsterManuel; public static GameObject NPCVampire; public static GameObject NPCGuardLeft; public static GameObject NPCGuardRight; public static GameObject NPCTruthKnower; public static GameObject NPCHeartDispenser; public static GameObject AmygdalaNorth; public static GameObject AmygdalaSouth; public static GameObject AmygdalaWest; public static GameObject AmygdalaEast; public static GameObject SpaceFog; public static GameObject LockedDoor; public static GameObject LockedJailDoor; public static GameObject SpikeTrap; public static GameObject FlameTrap; public static GameObject FakeTrap; public static GameObject PlayerCorpse; public static GameObject TimefallCorpse; public static GameObject ThoughtBubble; public static GameObject HangingPot; public static GameObject DoorsVertical; public static GameObject DoorsHorizontal; public static GameObject BigDoorsHorizontal; public static GameObject BigDoorsVertical; public static GameObject RatTrapDoorIcon; public static GameObject CultistBaldBowBackLeft; public static GameObject CultistBaldBowBackRight; public static GameObject CultistBaldBowBack; public static GameObject CultistBaldBowLeft; public static GameObject CultistHoodBowBack; public static GameObject CultistHoodBowLeft; public static GameObject CultistHoodBowRight; public static GameObject ForgeHammer; public static GameObject ChestBrownTwoItems; public static GameObject ChestTruth; public static GameObject ChestBlue; public static GameObject ChestRed; public static GameObject ChestBlack; public static GameObject ChestRat; public static GameObject ChestMirror; public static GameObject ConvictPastCrowdNPC_01; public static GameObject ConvictPastCrowdNPC_02; public static GameObject ConvictPastCrowdNPC_03; public static GameObject ConvictPastCrowdNPC_04; public static GameObject ConvictPastCrowdNPC_05; public static GameObject ConvictPastCrowdNPC_06; public static GameObject ConvictPastCrowdNPC_07; public static GameObject ConvictPastCrowdNPC_08; public static GameObject ConvictPastCrowdNPC_09; public static GameObject ConvictPastCrowdNPC_10; public static GameObject ConvictPastCrowdNPC_11; public static GameObject ConvictPastCrowdNPC_12; public static GameObject ConvictPastCrowdNPC_13; public static GameObject ConvictPastCrowdNPC_14; public static GameObject ConvictPastCrowdNPC_15; public static GameObject ConvictPastCrowdNPC_16; public static GameObject[] ConvictPastDancers; public static GameObject DoorsVertical_Catacombs; public static GameObject DoorsHorizontal_Catacombs; public static GameObject FoldingTable; public static GameObject WinchesterMinimapIcon; public static GameObject CrushDoor_Horizontal; public static GameObject CrushDoor_Vertical; public static GameObject Mines_Cave_In; public static GameObject Plunger; public static GameObject GatlingGullNest; public static GameObject BabyDragunNPC; public static GameObject GungeonLightStone; public static GameObject GungeonLightPurple; public static GameObject Sconce_Light; public static GameObject Sconce_Light_Side; public static GameObject DefaultTorch; public static GameObject DefaultTorchSide; public static GameObject EndTimes; public static GameObject EndTimesChest; public static GameObject TableHorizontalSteel; public static GameObject TableVerticalSteel; public static GameObject KitchenChair_Front; public static GameObject KitchenChair_Left; public static GameObject KitchenChair_Right; public static GameObject KitchenCounter; public static GameObject ToiletStall_Front; public static GameObject ToiletStall_Left; public static GameObject ToiletStall_Right; public static GameObject Toilet_Wall; public static GameObject Toilet_Left; public static GameObject Toilet_Right; public static GameObject GlassWall_Side; public static GameObject GlassWall_Front; public static GameObject BossOfficeDesk; public static GameObject SlipperySign; public static GameObject GungeonSewersExit; public static GameObject BlobulordGrate; public static DungeonPlaceable ExplodyBarrel; public static DungeonPlaceable CoffinVertical; public static DungeonPlaceable CoffinHorizontal; public static DungeonPlaceable Brazier; public static DungeonPlaceable CursedPot; public static DungeonPlaceable Sarcophogus; public static DungeonPlaceable GodRays; public static DungeonPlaceable SpecialTraps; public static DungeonPlaceable PitTrap; public static DungeonPlaceable Bush; public static DungeonPlaceable BushFlowers; public static DungeonPlaceable WoodenBarrel; public static DungeonPlaceable WrithingBulletman; public static DungeonPlaceable GungeonLockedDoors; public static DungeonPlaceable IronWoodDoors; public static DungeonPlaceable ForgeHammerPlacable_TracksPlayer; public static DungeonPlaceable Treasure_Dais_Stone_Carpet; public static DungeonPlaceableBehaviour TechWallLong; public static DungeonPlaceableBehaviour TechWallTall; public static DungeonPlaceableBehaviour MetalPipe; public static DungeonPlaceableBehaviour MarineMachine; public static DungeonPlaceableBehaviour Tech_Machine_Wall; public static DungeonPlaceableBehaviour Techno_Jail_Floor; public static DungeonPlaceableBehaviour Techno_Jail_Alien; public static DungeonPlaceableBehaviour Techno_Jail_Leever; public static DungeonPlaceableBehaviour Techno_Jail_Spider; public static DungeonPlaceableBehaviour Techno_Floor_Placable; public static DungeonPlaceableBehaviour Metal_Crate; public static DungeonPlaceableBehaviour Alien_Tank; public static void InitObjectDatabase() { Dungeon orLoadByName = DungeonDatabase.GetOrLoadByName("finalscenario_convict"); Dungeon orLoadByName2 = DungeonDatabase.GetOrLoadByName("Base_Nakatomi"); Dungeon orLoadByName3 = DungeonDatabase.GetOrLoadByName("base_catacombs"); Dungeon orLoadByName4 = DungeonDatabase.GetOrLoadByName("base_sewer"); Dungeon orLoadByName5 = DungeonDatabase.GetOrLoadByName("base_forge"); Dungeon orLoadByName6 = DungeonDatabase.GetOrLoadByName("base_gungeon"); Dungeon orLoadByName7 = DungeonDatabase.GetOrLoadByName("base_castle"); VFXKatanaBullets = ((Component)PickupObjectDatabase.GetById(822)).gameObject.GetComponent().LinearChainExplosionData.effect; VFXLeadMaidenMove = ((BraveBehaviour)ExpandEnemyDatabase.GetOfficialEnemyByGuid("cd4a4b7f612a4ba9a720b9f97c52f38c")).aiAnimator.OtherVFX[1].vfxPool.effects[0].effects[0].effect; YellowDrum = ExpandAssets.LoadOfficialAsset("Yellow Drum", ExpandAssets.AssetSource.SharedAuto2); RedDrum = ExpandAssets.LoadOfficialAsset("Red Drum", ExpandAssets.AssetSource.SharedAuto1); WaterDrum = ExpandAssets.LoadOfficialAsset("Blue Drum", ExpandAssets.AssetSource.SharedAuto2); OilDrum = ExpandAssets.LoadOfficialAsset("Purple Drum", ExpandAssets.AssetSource.SharedAuto2); IceBomb = ExpandAssets.LoadOfficialAsset("Ice Cube Bomb", ExpandAssets.AssetSource.SharedAuto2); TableHorizontal = ExpandAssets.LoadOfficialAsset("Table_Horizontal", ExpandAssets.AssetSource.SharedAuto1); TableVertical = ExpandAssets.LoadOfficialAsset("Table_Vertical", ExpandAssets.AssetSource.SharedAuto1); TableHorizontalStone = ExpandAssets.LoadOfficialAsset("Table_Horizontal_Stone", ExpandAssets.AssetSource.SharedAuto1); TableVerticalStone = ExpandAssets.LoadOfficialAsset("Table_Vertical_Stone", ExpandAssets.AssetSource.SharedAuto1); NPCOldMan = ExpandAssets.LoadOfficialAsset("NPC_Old_Man", ExpandAssets.AssetSource.SharedAuto1); NPCSynergrace = ExpandAssets.LoadOfficialAsset("NPC_Synergrace", ExpandAssets.AssetSource.SharedAuto1); NPCTonic = ExpandAssets.LoadOfficialAsset("NPC_Tonic", ExpandAssets.AssetSource.SharedAuto1); NPCCursola = ExpandAssets.LoadOfficialAsset("NPC_Curse_Jailed", ExpandAssets.AssetSource.SharedAuto2); NPCGunMuncher = ExpandAssets.LoadOfficialAsset("NPC_GunberMuncher", ExpandAssets.AssetSource.SharedAuto2); NPCEvilMuncher = ExpandAssets.LoadOfficialAsset("NPC_GunberMuncher_Evil", ExpandAssets.AssetSource.SharedAuto1); NPCMonsterManuel = ExpandAssets.LoadOfficialAsset("NPC_Monster_Manuel", ExpandAssets.AssetSource.SharedAuto1); NPCVampire = ExpandAssets.LoadOfficialAsset("NPC_Vampire", ExpandAssets.AssetSource.SharedAuto2); NPCGuardLeft = ExpandAssets.LoadOfficialAsset("NPC_Guardian_Left", ExpandAssets.AssetSource.SharedAuto2); NPCGuardRight = ExpandAssets.LoadOfficialAsset("NPC_Guardian_Right", ExpandAssets.AssetSource.SharedAuto2); NPCTruthKnower = ExpandAssets.LoadOfficialAsset("NPC_Truth_Knower", ExpandAssets.AssetSource.SharedAuto1); NPCHeartDispenser = ExpandAssets.LoadOfficialAsset("HeartDispenser", ExpandAssets.AssetSource.SharedAuto2); AmygdalaNorth = ExpandAssets.LoadOfficialAsset("Amygdala_North", ExpandAssets.AssetSource.BraveResources); AmygdalaSouth = ExpandAssets.LoadOfficialAsset("Amygdala_South", ExpandAssets.AssetSource.BraveResources); AmygdalaWest = ExpandAssets.LoadOfficialAsset("Amygdala_West", ExpandAssets.AssetSource.BraveResources); AmygdalaEast = ExpandAssets.LoadOfficialAsset("Amygdala_East", ExpandAssets.AssetSource.BraveResources); SpaceFog = ExpandAssets.LoadOfficialAsset("Space Fog", ExpandAssets.AssetSource.BraveResources); LockedDoor = ExpandAssets.LoadOfficialAsset("SimpleLockedDoor", ExpandAssets.AssetSource.SharedAuto2); LockedJailDoor = ExpandAssets.LoadOfficialAsset("JailDoor", ExpandAssets.AssetSource.SharedAuto2); SpikeTrap = ExpandAssets.LoadOfficialAsset("trap_spike_gungeon_2x2", ExpandAssets.AssetSource.SharedAuto1); FlameTrap = ExpandAssets.LoadOfficialAsset("trap_flame_poofy_gungeon_1x1", ExpandAssets.AssetSource.SharedAuto2); FakeTrap = ExpandAssets.LoadOfficialAsset("trap_pit_gungeon_trigger_2x2", ExpandAssets.AssetSource.SharedAuto1); PlayerCorpse = ExpandAssets.LoadOfficialAsset("PlayerCorpse", ExpandAssets.AssetSource.BraveResources); TimefallCorpse = ExpandAssets.LoadOfficialAsset("TimefallCorpse", ExpandAssets.AssetSource.BraveResources); ThoughtBubble = ExpandAssets.LoadOfficialAsset("ThoughtBubble", ExpandAssets.AssetSource.BraveResources); HangingPot = ExpandAssets.LoadOfficialAsset("Hanging_Pot", ExpandAssets.AssetSource.SharedAuto1); DoorsVertical = ExpandAssets.LoadOfficialAsset("GungeonShopDoor_Vertical", ExpandAssets.AssetSource.SharedAuto2); DoorsHorizontal = ExpandAssets.LoadOfficialAsset("GungeonShopDoor_Horizontal", ExpandAssets.AssetSource.SharedAuto2); DoorsHorizontal_Catacombs = orLoadByName3.doorObjects.variantTiers[0].nonDatabasePlaceable; DoorsVertical_Catacombs = orLoadByName3.doorObjects.variantTiers[1].nonDatabasePlaceable; BigDoorsHorizontal = ExpandAssets.LoadOfficialAsset("IronWoodDoor_Horizontal_Gungeon", ExpandAssets.AssetSource.SharedAuto2); BigDoorsVertical = ExpandAssets.LoadOfficialAsset("IronWoodDoor_Vertical_Gungeon", ExpandAssets.AssetSource.SharedAuto2); RatTrapDoorIcon = ExpandAssets.LoadOfficialAsset("RatTrapdoorMinimapIcon", ExpandAssets.AssetSource.BraveResources); CultistBaldBowBackLeft = ExpandAssets.LoadOfficialAsset("CultistBaldBowBackLeft_cutout", ExpandAssets.AssetSource.SharedAuto2); CultistBaldBowBackRight = ExpandAssets.LoadOfficialAsset("CultistBaldBowBackRight_cutout", ExpandAssets.AssetSource.SharedAuto2); CultistBaldBowBack = ExpandAssets.LoadOfficialAsset("CultistBaldBowBack_cutout", ExpandAssets.AssetSource.SharedAuto2); CultistBaldBowLeft = ExpandAssets.LoadOfficialAsset("CultistBaldBowLeft_cutout", ExpandAssets.AssetSource.SharedAuto2); CultistHoodBowBack = ExpandAssets.LoadOfficialAsset("CultistHoodBowBack_cutout", ExpandAssets.AssetSource.SharedAuto2); CultistHoodBowLeft = ExpandAssets.LoadOfficialAsset("CultistHoodBowLeft_cutout", ExpandAssets.AssetSource.SharedAuto2); CultistHoodBowRight = ExpandAssets.LoadOfficialAsset("CultistHoodBowRight_cutout", ExpandAssets.AssetSource.SharedAuto2); ForgeHammer = ExpandAssets.LoadOfficialAsset("Forge_Hammer", ExpandAssets.AssetSource.SharedAuto1); ChestBrownTwoItems = ExpandAssets.LoadOfficialAsset("Chest_Wood_Two_Items", ExpandAssets.AssetSource.SharedAuto1); ChestTruth = ExpandAssets.LoadOfficialAsset("TruthChest", ExpandAssets.AssetSource.SharedAuto1); ChestBlue = (ChestTruth = ExpandAssets.LoadOfficialAsset("Chest_Silver", ExpandAssets.AssetSource.SharedAuto1)); ChestRed = (ChestTruth = ExpandAssets.LoadOfficialAsset("Chest_Red", ExpandAssets.AssetSource.SharedAuto1)); ChestBlack = (ChestTruth = ExpandAssets.LoadOfficialAsset("Chest_Black", ExpandAssets.AssetSource.SharedAuto1)); ChestRat = ExpandAssets.LoadOfficialAsset("Chest_Rat", ExpandAssets.AssetSource.SharedAuto1); ChestMirror = ExpandAssets.LoadOfficialAsset("Shrine_Mirror", ExpandAssets.AssetSource.SharedAuto1); WinchesterMinimapIcon = ExpandAssets.LoadOfficialAsset("minimap_winchester_icon", ExpandAssets.AssetSource.SharedAuto1); GatlingGullNest = ExpandAssets.LoadOfficialAsset("gatlinggullnest", ExpandAssets.AssetSource.SharedAuto1); BabyDragunNPC = ExpandAssets.LoadOfficialAsset("BabyDragunJail", ExpandAssets.AssetSource.SharedAuto2); GungeonLightStone = ExpandAssets.LoadOfficialAsset("Gungeon Light (Stone)", ExpandAssets.AssetSource.SharedAuto1); GungeonLightPurple = ExpandAssets.LoadOfficialAsset("Gungeon Light (Purple)", ExpandAssets.AssetSource.SharedAuto1); Sconce_Light = ExpandAssets.LoadOfficialAsset("Sconce_Light", ExpandAssets.AssetSource.SharedAuto1); Sconce_Light_Side = ExpandAssets.LoadOfficialAsset("Sconce_Light_Side", ExpandAssets.AssetSource.SharedAuto1); DefaultTorch = ExpandAssets.LoadOfficialAsset("DefaultTorch", ExpandAssets.AssetSource.SharedAuto1); DefaultTorchSide = ExpandAssets.LoadOfficialAsset("DefaultTorchSide", ExpandAssets.AssetSource.SharedAuto1); EndTimes = ExpandAssets.LoadOfficialAsset("EndTimes", ExpandAssets.AssetSource.BraveResources); EndTimesChest = ((Component)((Component)orLoadByName5.PatternSettings.flows[0].AllNodes[12].overrideExactRoom.placedObjects[0].nonenemyBehaviour).gameObject.transform.Find("EndTimes_Xform").Find("G_CacheOfTheAmmulich")).gameObject; GungeonSewersExit = ((Component)orLoadByName7.PatternSettings.flows[0].sharedInjectionData[1].InjectionData[0].exactRoom.placedObjects[0].nonenemyBehaviour).gameObject; BlobulordGrate = ExpandAssets.LoadOfficialAsset("BlobulordGrate", ExpandAssets.AssetSource.SharedAuto1); foreach (WeightedRoom element in orLoadByName4.PatternSettings.flows[0].fallbackRoomTable.includedRooms.elements) { if ((Object)(object)element.room != (Object)null && !string.IsNullOrEmpty(((Object)element.room).name) && ((Object)element.room).name.ToLower().StartsWith("sewer_trash_compactor_001")) { CrushDoor_Horizontal = ((Component)element.room.placedObjects[0].nonenemyBehaviour).gameObject; } } foreach (WeightedRoom element2 in orLoadByName5.PatternSettings.flows[0].fallbackRoomTable.includedRooms.elements) { if ((Object)(object)element2.room != (Object)null && !string.IsNullOrEmpty(((Object)element2.room).name) && ((Object)element2.room).name.ToLower().StartsWith("forge_normal_cubulead_03")) { CrushDoor_Vertical = ((Component)element2.room.placedObjects[0].nonenemyBehaviour).gameObject; } } ExplodyBarrel = ExpandAssets.LoadOfficialAsset("ExplodyBarrel_Maybe", ExpandAssets.AssetSource.SharedAuto2); CoffinVertical = ExpandAssets.LoadOfficialAsset("Vertical Coffin", ExpandAssets.AssetSource.SharedAuto2); CoffinHorizontal = ExpandAssets.LoadOfficialAsset("Horizontal Coffin", ExpandAssets.AssetSource.SharedAuto2); Brazier = ExpandAssets.LoadOfficialAsset("Brazier", ExpandAssets.AssetSource.SharedAuto1); CursedPot = ExpandAssets.LoadOfficialAsset("Curse Pot", ExpandAssets.AssetSource.SharedAuto1); Sarcophogus = ExpandAssets.LoadOfficialAsset("Sarcophogus", ExpandAssets.AssetSource.SharedAuto1); GodRays = ExpandAssets.LoadOfficialAsset("Godrays_placeable", ExpandAssets.AssetSource.SharedAuto1); SpecialTraps = ExpandAssets.LoadOfficialAsset("RobotDaveTraps", ExpandAssets.AssetSource.BraveResources); PitTrap = ExpandAssets.LoadOfficialAsset("Pit Trap", ExpandAssets.AssetSource.SharedAuto2); Bush = ExpandAssets.LoadOfficialAsset("Bush", ExpandAssets.AssetSource.SharedAuto2); BushFlowers = ExpandAssets.LoadOfficialAsset("Bush Flowers", ExpandAssets.AssetSource.SharedAuto2); WoodenBarrel = ExpandAssets.LoadOfficialAsset("Barrel_collection", ExpandAssets.AssetSource.SharedAuto1); WrithingBulletman = ExpandAssets.LoadOfficialAsset("Writhing Bulletman", ExpandAssets.AssetSource.SharedAuto2); GungeonLockedDoors = orLoadByName6.lockedDoorObjects; IronWoodDoors = ExpandAssets.LoadOfficialAsset("DoorTest", ExpandAssets.AssetSource.SharedAuto2); ForgeHammerPlacable_TracksPlayer = ExpandAssets.LoadOfficialAsset("Hammer", ExpandAssets.AssetSource.SharedAuto1); Treasure_Dais_Stone_Carpet = ExpandAssets.LoadOfficialAsset("Treasure_Dais_Stone_Carpet", ExpandAssets.AssetSource.SharedAuto2); NightclubCrowdController crowdController = ((Component)orLoadByName.PatternSettings.flows[0].AllNodes[0].overrideExactRoom.placedObjects[0].nonenemyBehaviour).gameObject.GetComponent().crowdController; ConvictPastCrowdNPC_01 = ((Component)crowdController.Dancers[0]).gameObject; ConvictPastCrowdNPC_02 = ((Component)crowdController.Dancers[1]).gameObject; ConvictPastCrowdNPC_03 = ((Component)crowdController.Dancers[2]).gameObject; ConvictPastCrowdNPC_04 = ((Component)crowdController.Dancers[3]).gameObject; ConvictPastCrowdNPC_05 = ((Component)crowdController.Dancers[4]).gameObject; ConvictPastCrowdNPC_06 = ((Component)crowdController.Dancers[5]).gameObject; ConvictPastCrowdNPC_07 = ((Component)crowdController.Dancers[6]).gameObject; ConvictPastCrowdNPC_08 = ((Component)crowdController.Dancers[7]).gameObject; ConvictPastCrowdNPC_09 = ((Component)crowdController.Dancers[8]).gameObject; ConvictPastCrowdNPC_10 = ((Component)crowdController.Dancers[9]).gameObject; ConvictPastCrowdNPC_11 = ((Component)crowdController.Dancers[10]).gameObject; ConvictPastCrowdNPC_12 = ((Component)crowdController.Dancers[11]).gameObject; ConvictPastCrowdNPC_13 = ((Component)crowdController.Dancers[12]).gameObject; ConvictPastCrowdNPC_14 = ((Component)crowdController.Dancers[13]).gameObject; ConvictPastCrowdNPC_15 = ((Component)crowdController.Dancers[14]).gameObject; ConvictPastCrowdNPC_16 = ((Component)crowdController.Dancers[15]).gameObject; ConvictPastDancers = (GameObject[])(object)new GameObject[16] { ConvictPastCrowdNPC_01, ConvictPastCrowdNPC_02, ConvictPastCrowdNPC_03, ConvictPastCrowdNPC_04, ConvictPastCrowdNPC_05, ConvictPastCrowdNPC_06, ConvictPastCrowdNPC_07, ConvictPastCrowdNPC_08, ConvictPastCrowdNPC_09, ConvictPastCrowdNPC_10, ConvictPastCrowdNPC_11, ConvictPastCrowdNPC_12, ConvictPastCrowdNPC_13, ConvictPastCrowdNPC_14, ConvictPastCrowdNPC_15, ConvictPastCrowdNPC_16 }; Mines_Cave_In = ExpandAssets.LoadOfficialAsset("Mines_Cave_In", ExpandAssets.AssetSource.SharedAuto2); Plunger = Mines_Cave_In.GetComponent().triggerObjectPrefab; FoldingTable = ((Component)((Component)PickupObjectDatabase.GetById(644)).GetComponent().TableToSpawn).gameObject; TableVerticalSteel = ((Component)orLoadByName2.PatternSettings.flows[0].AllNodes[4].overrideExactRoom.placedObjects[5].nonenemyBehaviour).gameObject; TableHorizontalSteel = ((Component)orLoadByName2.PatternSettings.flows[0].AllNodes[4].overrideExactRoom.placedObjects[6].nonenemyBehaviour).gameObject; KitchenChair_Front = ((Component)orLoadByName2.PatternSettings.flows[0].AllNodes[4].overrideExactRoom.placedObjects[2].nonenemyBehaviour).gameObject; KitchenChair_Left = ((Component)orLoadByName2.PatternSettings.flows[0].AllNodes[4].overrideExactRoom.placedObjects[8].nonenemyBehaviour).gameObject; KitchenChair_Right = ((Component)orLoadByName2.PatternSettings.flows[0].AllNodes[4].overrideExactRoom.placedObjects[12].nonenemyBehaviour).gameObject; KitchenCounter = ((Component)orLoadByName2.PatternSettings.flows[0].AllNodes[4].overrideExactRoom.placedObjects[16].nonenemyBehaviour).gameObject; ToiletStall_Front = ((Component)orLoadByName2.PatternSettings.flows[0].AllNodes[6].overrideExactRoom.placedObjects[0].nonenemyBehaviour).gameObject; ToiletStall_Left = ((Component)orLoadByName2.PatternSettings.flows[0].AllNodes[6].overrideExactRoom.placedObjects[6].nonenemyBehaviour).gameObject; ToiletStall_Right = ((Component)orLoadByName2.PatternSettings.flows[0].AllNodes[6].overrideExactRoom.placedObjects[9].nonenemyBehaviour).gameObject; Toilet_Wall = ((Component)orLoadByName2.PatternSettings.flows[0].AllNodes[6].overrideExactRoom.placedObjects[2].nonenemyBehaviour).gameObject; Toilet_Left = ((Component)orLoadByName2.PatternSettings.flows[0].AllNodes[6].overrideExactRoom.placedObjects[7].nonenemyBehaviour).gameObject; Toilet_Right = ((Component)orLoadByName2.PatternSettings.flows[0].AllNodes[6].overrideExactRoom.placedObjects[10].nonenemyBehaviour).gameObject; GlassWall_Side = ((Component)orLoadByName2.PatternSettings.flows[0].AllNodes[7].overrideExactRoom.placedObjects[0].nonenemyBehaviour).gameObject; GlassWall_Front = ((Component)orLoadByName2.PatternSettings.flows[0].AllNodes[7].overrideExactRoom.placedObjects[6].nonenemyBehaviour).gameObject; BossOfficeDesk = ((Component)orLoadByName2.PatternSettings.flows[0].AllNodes[8].overrideExactRoom.placedObjects[0].nonenemyBehaviour).gameObject; SlipperySign = ((Component)orLoadByName2.PatternSettings.flows[0].AllNodes[0].overrideExactRoom.placedObjects[3].nonenemyBehaviour).gameObject; TechWallLong = orLoadByName2.PatternSettings.flows[0].AllNodes[11].overrideExactRoom.placedObjects[0].nonenemyBehaviour; TechWallTall = orLoadByName2.PatternSettings.flows[0].AllNodes[11].overrideExactRoom.placedObjects[7].nonenemyBehaviour; MetalPipe = orLoadByName2.PatternSettings.flows[0].AllNodes[11].overrideExactRoom.placedObjects[8].nonenemyBehaviour; MarineMachine = orLoadByName2.PatternSettings.flows[0].AllNodes[11].overrideExactRoom.placedObjects[13].nonenemyBehaviour; Tech_Machine_Wall = orLoadByName2.PatternSettings.flows[0].AllNodes[10].overrideExactRoom.placedObjects[6].nonenemyBehaviour; Techno_Jail_Floor = orLoadByName2.PatternSettings.flows[0].AllNodes[10].overrideExactRoom.placedObjects[0].nonenemyBehaviour; Techno_Jail_Alien = orLoadByName2.PatternSettings.flows[0].AllNodes[10].overrideExactRoom.placedObjects[4].nonenemyBehaviour; Techno_Jail_Leever = orLoadByName2.PatternSettings.flows[0].AllNodes[10].overrideExactRoom.placedObjects[13].nonenemyBehaviour; Techno_Jail_Spider = orLoadByName2.PatternSettings.flows[0].AllNodes[10].overrideExactRoom.placedObjects[14].nonenemyBehaviour; Metal_Crate = orLoadByName2.PatternSettings.flows[0].AllNodes[10].overrideExactRoom.placedObjects[10].nonenemyBehaviour; Alien_Tank = orLoadByName2.PatternSettings.flows[0].AllNodes[13].overrideExactRoom.placedObjects[9].nonenemyBehaviour; Techno_Floor_Placable = orLoadByName2.PatternSettings.flows[0].AllNodes[13].overrideExactRoom.placedObjects[29].nonenemyBehaviour; orLoadByName2 = null; orLoadByName = null; orLoadByName4 = null; orLoadByName5 = null; orLoadByName6 = null; orLoadByName7 = null; } public static IntVector2 GetRandomAvailableCellForPlacable(Dungeon dungeon, RoomHandler currentRoom, List validCellsCached, bool useCachedList, bool allowPlacingOverPits = false, int gridSnap = 1) { //IL_0c44: Unknown result type (might be due to invalid IL or missing references) //IL_0c07: Unknown result type (might be due to invalid IL or missing references) //IL_0c0c: Unknown result type (might be due to invalid IL or missing references) //IL_0c0e: Unknown result type (might be due to invalid IL or missing references) //IL_0c10: Unknown result type (might be due to invalid IL or missing references) //IL_0c29: Unknown result type (might be due to invalid IL or missing references) //IL_0c31: Unknown result type (might be due to invalid IL or missing references) //IL_0c39: Unknown result type (might be due to invalid IL or missing references) //IL_0c3e: Unknown result type (might be due to invalid IL or missing references) //IL_0c1b: Unknown result type (might be due to invalid IL or missing references) //IL_050f: Unknown result type (might be due to invalid IL or missing references) //IL_0bbf: Unknown result type (might be due to invalid IL or missing references) if (!useCachedList || validCellsCached == null) { validCellsCached = new List(); } if (validCellsCached.Count <= 0) { for (int i = -1; i <= currentRoom.area.dimensions.x; i++) { for (int j = -1; j <= currentRoom.area.dimensions.y; j++) { int num = currentRoom.area.basePosition.x + i; int num2 = currentRoom.area.basePosition.y + j; if (num % gridSnap != 0 || num2 % gridSnap != 0) { continue; } if (allowPlacingOverPits) { if (!dungeon.data.isWall(num - 2, num2 + 2) && !dungeon.data.isWall(num - 1, num2 + 2) && !dungeon.data.isWall(num, num2 + 2) && !dungeon.data.isWall(num + 1, num2 + 2) && !dungeon.data.isWall(num + 2, num2 + 2) && !dungeon.data.isWall(num - 2, num2 + 1) && !dungeon.data.isWall(num - 1, num2 + 1) && !dungeon.data.isWall(num, num2 + 1) && !dungeon.data.isWall(num + 1, num2 + 1) && !dungeon.data.isWall(num + 2, num2 + 1) && !dungeon.data.isWall(num - 2, num2) && !dungeon.data.isWall(num - 1, num2) && !dungeon.data.isWall(num, num2) && !dungeon.data.isWall(num + 1, num2) && !dungeon.data.isWall(num + 2, num2) && !dungeon.data.isWall(num - 2, num2 - 1) && !dungeon.data.isWall(num - 1, num2 - 1) && !dungeon.data.isWall(num, num2 - 1) && !dungeon.data.isWall(num + 1, num2 - 1) && !dungeon.data.isWall(num + 2, num2 - 1) && !dungeon.data.isWall(num - 2, num2 - 2) && !dungeon.data.isWall(num - 1, num2 - 2) && !dungeon.data.isWall(num, num2 - 2) && !dungeon.data.isWall(num + 1, num2 - 2) && !dungeon.data.isWall(num + 2, num2 - 2) && !dungeon.data[num - 2, num2 + 2].isOccupied && !dungeon.data[num - 1, num2 + 2].isOccupied && !dungeon.data[num, num2 + 2].isOccupied && !dungeon.data[num + 1, num2 + 2].isOccupied && !dungeon.data[num + 2, num2 + 2].isOccupied && !dungeon.data[num - 2, num2 + 1].isOccupied && !dungeon.data[num - 1, num2 + 1].isOccupied && !dungeon.data[num, num2 + 1].isOccupied && !dungeon.data[num + 1, num2 + 1].isOccupied && !dungeon.data[num + 2, num2 + 1].isOccupied && !dungeon.data[num - 2, num2].isOccupied && !dungeon.data[num - 1, num2].isOccupied && !dungeon.data[num, num2].isOccupied && !dungeon.data[num + 1, num2].isOccupied && !dungeon.data[num + 2, num2].isOccupied && !dungeon.data[num - 2, num2 - 1].isOccupied && !dungeon.data[num - 1, num2 - 1].isOccupied && !dungeon.data[num, num2 - 1].isOccupied && !dungeon.data[num + 1, num2 - 1].isOccupied && !dungeon.data[num + 2, num2 - 1].isOccupied && !dungeon.data[num - 2, num2 - 2].isOccupied && !dungeon.data[num - 1, num2 - 2].isOccupied && !dungeon.data[num, num2 - 2].isOccupied && !dungeon.data[num + 1, num2 - 2].isOccupied && !dungeon.data[num + 2, num2 - 2].isOccupied) { validCellsCached.Add(new IntVector2(num, num2)); } } else if (!dungeon.data.isWall(num - 2, num2 + 2) && !dungeon.data.isWall(num - 1, num2 + 2) && !dungeon.data.isWall(num, num2 + 2) && !dungeon.data.isWall(num + 1, num2 + 2) && !dungeon.data.isWall(num + 2, num2 + 2) && !dungeon.data.isWall(num - 2, num2 + 1) && !dungeon.data.isWall(num - 1, num2 + 1) && !dungeon.data.isWall(num, num2 + 1) && !dungeon.data.isWall(num + 1, num2 + 1) && !dungeon.data.isWall(num + 2, num2 + 1) && !dungeon.data.isWall(num - 2, num2) && !dungeon.data.isWall(num - 1, num2) && !dungeon.data.isWall(num, num2) && !dungeon.data.isWall(num + 1, num2) && !dungeon.data.isWall(num + 2, num2) && !dungeon.data.isWall(num - 2, num2 - 1) && !dungeon.data.isWall(num - 1, num2 - 1) && !dungeon.data.isWall(num, num2 - 1) && !dungeon.data.isWall(num + 1, num2 - 1) && !dungeon.data.isWall(num + 2, num2 - 1) && !dungeon.data.isWall(num - 2, num2 - 2) && !dungeon.data.isWall(num - 1, num2 - 2) && !dungeon.data.isWall(num, num2 - 2) && !dungeon.data.isWall(num + 1, num2 - 2) && !dungeon.data.isWall(num + 2, num2 - 2) && !dungeon.data[num - 2, num2 + 2].isOccupied && !dungeon.data[num - 1, num2 + 2].isOccupied && !dungeon.data[num, num2 + 2].isOccupied && !dungeon.data[num + 1, num2 + 2].isOccupied && !dungeon.data[num + 2, num2 + 2].isOccupied && !dungeon.data[num - 2, num2 + 1].isOccupied && !dungeon.data[num - 1, num2 + 1].isOccupied && !dungeon.data[num, num2 + 1].isOccupied && !dungeon.data[num + 1, num2 + 1].isOccupied && !dungeon.data[num + 2, num2 + 1].isOccupied && !dungeon.data[num - 2, num2].isOccupied && !dungeon.data[num - 1, num2].isOccupied && !dungeon.data[num, num2].isOccupied && !dungeon.data[num + 1, num2].isOccupied && !dungeon.data[num + 2, num2].isOccupied && !dungeon.data[num - 2, num2 - 1].isOccupied && !dungeon.data[num - 1, num2 - 1].isOccupied && !dungeon.data[num, num2 - 1].isOccupied && !dungeon.data[num + 1, num2 - 1].isOccupied && !dungeon.data[num + 2, num2 - 1].isOccupied && !dungeon.data[num - 2, num2 - 2].isOccupied && !dungeon.data[num - 1, num2 - 2].isOccupied && !dungeon.data[num, num2 - 2].isOccupied && !dungeon.data[num + 1, num2 - 2].isOccupied && !dungeon.data[num + 2, num2 - 2].isOccupied && !dungeon.data.isPit(num - 2, num2 + 2) && !dungeon.data.isPit(num - 1, num2 + 2) && !dungeon.data.isPit(num, num2 + 2) && !dungeon.data.isPit(num + 1, num2 + 2) && !dungeon.data.isPit(num + 2, num2 + 2) && !dungeon.data.isPit(num - 2, num2 + 1) && !dungeon.data.isPit(num - 1, num2 + 1) && !dungeon.data.isPit(num, num2 + 1) && !dungeon.data.isPit(num + 1, num2 + 1) && !dungeon.data.isPit(num + 2, num2 + 1) && !dungeon.data.isPit(num - 2, num2) && !dungeon.data.isPit(num - 1, num2) && !dungeon.data.isPit(num, num2) && !dungeon.data.isPit(num + 1, num2) && !dungeon.data.isPit(num + 2, num2) && !dungeon.data.isPit(num - 2, num2 - 1) && !dungeon.data.isPit(num - 1, num2 - 1) && !dungeon.data.isPit(num, num2 - 1) && !dungeon.data.isPit(num + 1, num2 - 1) && !dungeon.data.isPit(num + 2, num2 - 1) && !dungeon.data.isPit(num - 2, num2 - 2) && !dungeon.data.isPit(num - 1, num2 - 2) && !dungeon.data.isPit(num, num2 - 2) && !dungeon.data.isPit(num + 1, num2 - 2) && !dungeon.data.isPit(num + 2, num2 - 2)) { validCellsCached.Add(new IntVector2(num, num2)); } } } } if (validCellsCached.Count > 0) { IntVector2 val = BraveUtility.RandomElement(validCellsCached); IntVector2 val2 = val; if (useCachedList) { dungeon.data[val2].isOccupied = true; } validCellsCached.Remove(val); return val - currentRoom.area.basePosition; } return IntVector2.Zero; } public static IntVector2 GetRandomAvailableCellForNPC(Dungeon dungeon, RoomHandler currentRoom, List validCellsCached, bool useCachedList) { //IL_0af9: Unknown result type (might be due to invalid IL or missing references) //IL_0abf: Unknown result type (might be due to invalid IL or missing references) //IL_0ac4: Unknown result type (might be due to invalid IL or missing references) //IL_0ac6: Unknown result type (might be due to invalid IL or missing references) //IL_0ac8: Unknown result type (might be due to invalid IL or missing references) //IL_0ad0: Unknown result type (might be due to invalid IL or missing references) //IL_0ade: Unknown result type (might be due to invalid IL or missing references) //IL_0ae6: Unknown result type (might be due to invalid IL or missing references) //IL_0aee: Unknown result type (might be due to invalid IL or missing references) //IL_0af3: Unknown result type (might be due to invalid IL or missing references) //IL_0a77: Unknown result type (might be due to invalid IL or missing references) if (!useCachedList || validCellsCached == null) { validCellsCached = new List(); validCellsCached.Clear(); } if (validCellsCached.Count <= 0) { for (int i = -1; i <= currentRoom.area.dimensions.x; i++) { for (int j = -1; j <= currentRoom.area.dimensions.y; j++) { int num = currentRoom.area.basePosition.x + i; int num2 = currentRoom.area.basePosition.y + j; if (!dungeon.data.isWall(num - 3, num2 + 3) && !dungeon.data.isWall(num - 2, num2 + 3) && !dungeon.data.isWall(num - 1, num2 + 3) && !dungeon.data.isWall(num, num2 + 3) && !dungeon.data.isWall(num + 1, num2 + 3) && !dungeon.data.isWall(num + 2, num2 + 3) && !dungeon.data.isWall(num + 3, num2 + 3) && !dungeon.data.isWall(num - 3, num2 + 2) && !dungeon.data.isWall(num - 2, num2 + 2) && !dungeon.data.isWall(num - 1, num2 + 2) && !dungeon.data.isWall(num, num2 + 2) && !dungeon.data.isWall(num + 1, num2 + 2) && !dungeon.data.isWall(num + 2, num2 + 2) && !dungeon.data.isWall(num + 3, num2 + 2) && !dungeon.data.isWall(num - 3, num2 + 1) && !dungeon.data.isWall(num - 2, num2 + 1) && !dungeon.data.isWall(num - 1, num2 + 1) && !dungeon.data.isWall(num, num2 + 1) && !dungeon.data.isWall(num + 1, num2 + 1) && !dungeon.data.isWall(num + 2, num2 + 1) && !dungeon.data.isWall(num + 3, num2 + 1) && !dungeon.data.isWall(num - 3, num2) && !dungeon.data.isWall(num - 2, num2) && !dungeon.data.isWall(num - 1, num2) && !dungeon.data.isWall(num, num2) && !dungeon.data.isWall(num + 1, num2) && !dungeon.data.isWall(num + 2, num2) && !dungeon.data.isWall(num + 3, num2) && !dungeon.data.isWall(num - 3, num2 - 1) && !dungeon.data.isWall(num - 2, num2 - 1) && !dungeon.data.isWall(num - 1, num2 - 1) && !dungeon.data.isWall(num, num2 - 1) && !dungeon.data.isWall(num + 1, num2 - 1) && !dungeon.data.isWall(num + 2, num2 - 1) && !dungeon.data.isWall(num + 3, num2 - 1) && !dungeon.data.isWall(num - 3, num2 - 2) && !dungeon.data.isWall(num - 2, num2 - 2) && !dungeon.data.isWall(num - 1, num2 - 2) && !dungeon.data.isWall(num, num2 - 2) && !dungeon.data.isWall(num + 1, num2 - 2) && !dungeon.data.isWall(num + 2, num2 - 2) && !dungeon.data.isWall(num + 3, num2 - 2) && !dungeon.data.isPit(num - 3, num2 + 3) && !dungeon.data.isPit(num - 2, num2 + 3) && !dungeon.data.isPit(num - 1, num2 + 3) && !dungeon.data.isPit(num, num2 + 3) && !dungeon.data.isPit(num + 1, num2 + 3) && !dungeon.data.isPit(num + 2, num2 + 3) && !dungeon.data.isPit(num + 3, num2 + 3) && !dungeon.data.isPit(num - 3, num2 + 2) && !dungeon.data.isPit(num - 2, num2 + 2) && !dungeon.data.isPit(num - 1, num2 + 2) && !dungeon.data.isPit(num, num2 + 2) && !dungeon.data.isPit(num + 1, num2 + 2) && !dungeon.data.isPit(num + 2, num2 + 2) && !dungeon.data.isPit(num + 3, num2 + 2) && !dungeon.data.isPit(num - 3, num2 + 1) && !dungeon.data.isPit(num - 2, num2 + 1) && !dungeon.data.isPit(num - 1, num2 + 1) && !dungeon.data.isPit(num, num2 + 1) && !dungeon.data.isPit(num + 1, num2 + 1) && !dungeon.data.isPit(num + 2, num2 + 1) && !dungeon.data.isPit(num + 3, num2 + 1) && !dungeon.data.isPit(num - 3, num2) && !dungeon.data.isPit(num - 2, num2) && !dungeon.data.isPit(num - 1, num2) && !dungeon.data.isPit(num, num2) && !dungeon.data.isPit(num + 1, num2) && !dungeon.data.isPit(num + 2, num2) && !dungeon.data.isPit(num + 3, num2) && !dungeon.data.isPit(num - 3, num2 - 1) && !dungeon.data.isPit(num - 2, num2 - 1) && !dungeon.data.isPit(num - 1, num2 - 1) && !dungeon.data.isPit(num, num2 - 1) && !dungeon.data.isPit(num + 1, num2 - 1) && !dungeon.data.isPit(num + 2, num2 - 1) && !dungeon.data.isPit(num + 3, num2 - 1) && !dungeon.data.isPit(num - 3, num2 - 2) && !dungeon.data.isPit(num - 2, num2 - 2) && !dungeon.data.isPit(num - 1, num2 - 2) && !dungeon.data.isPit(num, num2 - 2) && !dungeon.data.isPit(num + 1, num2 - 2) && !dungeon.data.isPit(num + 2, num2 - 2) && !dungeon.data.isPit(num + 3, num2 - 2) && !dungeon.data.isPit(num - 3, num2 - 3) && !dungeon.data.isPit(num - 2, num2 - 3) && !dungeon.data.isPit(num - 1, num2 - 3) && !dungeon.data.isPit(num, num2 - 3) && !dungeon.data.isPit(num + 1, num2 - 3) && !dungeon.data.isPit(num + 2, num2 - 3) && !dungeon.data.isPit(num + 3, num2 - 3) && !dungeon.data[num - 2, num2 + 2].isOccupied && !dungeon.data[num - 1, num2 + 2].isOccupied && !dungeon.data[num, num2 + 2].isOccupied && !dungeon.data[num + 1, num2 + 2].isOccupied && !dungeon.data[num + 2, num2 + 2].isOccupied && !dungeon.data[num - 2, num2 + 1].isOccupied && !dungeon.data[num - 1, num2 + 1].isOccupied && !dungeon.data[num, num2 + 1].isOccupied && !dungeon.data[num + 1, num2 + 1].isOccupied && !dungeon.data[num + 2, num2 + 1].isOccupied && !dungeon.data[num - 2, num2].isOccupied && !dungeon.data[num - 1, num2].isOccupied && !dungeon.data[num, num2].isOccupied && !dungeon.data[num + 1, num2].isOccupied && !dungeon.data[num + 2, num2].isOccupied && !dungeon.data[num - 2, num2 - 1].isOccupied && !dungeon.data[num - 1, num2 - 1].isOccupied && !dungeon.data[num, num2 - 1].isOccupied && !dungeon.data[num + 1, num2 - 1].isOccupied && !dungeon.data[num + 2, num2 - 1].isOccupied && !dungeon.data[num - 2, num2 - 2].isOccupied && !dungeon.data[num - 1, num2 - 2].isOccupied && !dungeon.data[num, num2 - 2].isOccupied && !dungeon.data[num + 1, num2 - 2].isOccupied && !dungeon.data[num + 2, num2 - 2].isOccupied) { validCellsCached.Add(new IntVector2(num, num2)); } } } } if (validCellsCached.Count > 0) { IntVector2 val = BraveUtility.RandomElement(validCellsCached); IntVector2 val2 = val; dungeon.data[val2].isOccupied = true; validCellsCached.Remove(val); return val - currentRoom.area.basePosition; } return IntVector2.Zero; } public static IntVector2 GetRandomAvailableCellForChest(Dungeon dungeon, RoomHandler currentRoom, List validCellsCached) { //IL_0503: Unknown result type (might be due to invalid IL or missing references) //IL_04dd: Unknown result type (might be due to invalid IL or missing references) //IL_04e2: Unknown result type (might be due to invalid IL or missing references) //IL_04ea: Unknown result type (might be due to invalid IL or missing references) //IL_04f8: Unknown result type (might be due to invalid IL or missing references) //IL_0500: Unknown result type (might be due to invalid IL or missing references) //IL_0495: Unknown result type (might be due to invalid IL or missing references) if (validCellsCached == null) { validCellsCached = new List(); validCellsCached.Clear(); } if (validCellsCached.Count <= 0) { for (int i = -1; i <= currentRoom.area.dimensions.x; i++) { for (int j = -1; j <= currentRoom.area.dimensions.y; j++) { int num = currentRoom.area.basePosition.x + i; int num2 = currentRoom.area.basePosition.y + j; if (!dungeon.data.isWall(num - 2, num2 + 2) && !dungeon.data.isWall(num - 1, num2 + 2) && !dungeon.data.isWall(num, num2 + 2) && !dungeon.data.isWall(num + 1, num2 + 2) && !dungeon.data.isWall(num + 2, num2 + 2) && !dungeon.data.isWall(num - 2, num2 + 1) && !dungeon.data.isWall(num - 1, num2 + 1) && !dungeon.data.isWall(num, num2 + 1) && !dungeon.data.isWall(num + 1, num2 + 1) && !dungeon.data.isWall(num + 2, num2 + 1) && !dungeon.data.isWall(num - 2, num2) && !dungeon.data.isWall(num - 1, num2) && !dungeon.data.isWall(num, num2) && !dungeon.data.isWall(num + 1, num2) && !dungeon.data.isWall(num + 2, num2) && !dungeon.data.isWall(num - 2, num2 - 1) && !dungeon.data.isWall(num - 1, num2 - 1) && !dungeon.data.isWall(num, num2 - 1) && !dungeon.data.isWall(num + 1, num2 - 1) && !dungeon.data.isWall(num + 2, num2 - 1) && !dungeon.data.isWall(num - 2, num2 - 2) && !dungeon.data.isWall(num - 1, num2 - 2) && !dungeon.data.isWall(num, num2 - 2) && !dungeon.data.isWall(num + 1, num2 - 2) && !dungeon.data.isWall(num + 2, num2 - 2) && !dungeon.data.isPit(num - 1, num2 + 1) && !dungeon.data.isPit(num, num2 + 1) && !dungeon.data.isPit(num + 1, num2 + 1) && !dungeon.data.isPit(num - 1, num2) && !dungeon.data.isPit(num, num2) && !dungeon.data.isPit(num + 1, num2) && !dungeon.data.isPit(num - 1, num2 - 1) && !dungeon.data.isPit(num, num2 - 1) && !dungeon.data.isPit(num + 1, num2 - 1) && !dungeon.data[num - 1, num2 + 2].isOccupied && !dungeon.data[num, num2 + 2].isOccupied && !dungeon.data[num + 1, num2 + 2].isOccupied && !dungeon.data[num - 1, num2 + 1].isOccupied && !dungeon.data[num, num2 + 1].isOccupied && !dungeon.data[num + 1, num2 + 1].isOccupied && !dungeon.data[num - 1, num2].isOccupied && !dungeon.data[num, num2].isOccupied && !dungeon.data[num + 1, num2].isOccupied && !dungeon.data[num - 1, num2 - 1].isOccupied && !dungeon.data[num, num2 - 1].isOccupied && !dungeon.data[num + 1, num2 - 1].isOccupied && !dungeon.data[num - 1, num2 - 2].isOccupied && !dungeon.data[num, num2 - 2].isOccupied && !dungeon.data[num + 1, num2 - 2].isOccupied) { validCellsCached.Add(new IntVector2(num, num2)); } } } } if (validCellsCached.Count > 0) { IntVector2 val = BraveUtility.RandomElement(validCellsCached); dungeon.data[val].isOccupied = true; validCellsCached.Remove(val); return val; } return IntVector2.Zero; } } public class ExpandRoomPrefabs { public static PrototypeDungeonRoom ForgeHammerTestRoom; public static PrototypeDungeonRoom Giant_Elevator_Room; public static PrototypeDungeonRoom Utiliroom; public static PrototypeDungeonRoom Utiliroom_SpecialPit; public static PrototypeDungeonRoom Utiliroom_Pitfall; public static PrototypeDungeonRoom SecretRewardRoom; public static PrototypeDungeonRoom SecretBossRoom; public static PrototypeDungeonRoom FakeBossRoom; public static PrototypeDungeonRoom SecretExitRoom; public static PrototypeDungeonRoom PuzzleRoom1; public static PrototypeDungeonRoom PuzzleRoom2; public static PrototypeDungeonRoom PuzzleRoom3; public static PrototypeDungeonRoom CreepyGlitchRoom; public static PrototypeDungeonRoom CreepyGlitchRoom_Entrance; public static PrototypeDungeonRoom GungeoneerMimicBossRoom; public static PrototypeDungeonRoom GungeoneerMimicBossFoyerRoom; public static PrototypeDungeonRoom Expand_Explode; public static PrototypeDungeonRoom Expand_C_Hub; public static PrototypeDungeonRoom Expand_C_Gap; public static PrototypeDungeonRoom Expand_ChainGap; public static PrototypeDungeonRoom Expand_Challange1; public static PrototypeDungeonRoom Expand_Pit_Line; public static PrototypeDungeonRoom Expand_Singer_Gap; public static PrototypeDungeonRoom Expand_Flying_Gap; public static PrototypeDungeonRoom Expand_Battle; public static PrototypeDungeonRoom Expand_Cross; public static PrototypeDungeonRoom Expand_Blocks; public static PrototypeDungeonRoom Expand_Blocks_Pits; public static PrototypeDungeonRoom Expand_Wall_Pit; public static PrototypeDungeonRoom Expand_Gate_Cross; public static PrototypeDungeonRoom Expand_Passage; public static PrototypeDungeonRoom Expand_Pit_Jump; public static PrototypeDungeonRoom Expand_Pit_Passage; public static PrototypeDungeonRoom Expand_R_Blocks; public static PrototypeDungeonRoom Expand_Small_Passage; public static PrototypeDungeonRoom Expand_Box; public static PrototypeDungeonRoom Expand_Steps; public static PrototypeDungeonRoom Expand_Apache_Hub; public static PrototypeDungeonRoom Expand_Box_Hub; public static PrototypeDungeonRoom Expand_Enclose_Hub; public static PrototypeDungeonRoom Expand_Keep_TreeRoom; public static PrototypeDungeonRoom Expand_Keep_TreeRoom2; public static PrototypeDungeonRoom Expand_Keep_TreeRoom3; public static PrototypeDungeonRoom Expand_Keep_TreeRoom4; public static PrototypeDungeonRoom Expand_Keep_JungleElevatorRoom; public static PrototypeDungeonRoom Expand_Keep_JungleElevatorRoom2; public static PrototypeDungeonRoom Expand_ExitRoom_NewElevator; public static PrototypeDungeonRoom Expand_Crosshairs; public static PrototypeDungeonRoom Expand_Basic; public static PrototypeDungeonRoom Expand_JumpInThePit; public static PrototypeDungeonRoom Expand_LongSpikeTrap; public static PrototypeDungeonRoom Expand_SpikeTrap; public static PrototypeDungeonRoom Expand_ThinRoom; public static PrototypeDungeonRoom Expand_SniperRoom; public static PrototypeDungeonRoom Expand_TableRoom; public static PrototypeDungeonRoom Expand_GoopTroop; public static PrototypeDungeonRoom Expand_HopScotch; public static PrototypeDungeonRoom Expand_Pit; public static PrototypeDungeonRoom Expand_Singer; public static PrototypeDungeonRoom Expand_TableRoom2; public static PrototypeDungeonRoom Expand_OilRoom; public static PrototypeDungeonRoom Expand_Walkway; public static PrototypeDungeonRoom Expand_SpiderMaze; public static PrototypeDungeonRoom Expand_BlobRoom; public static PrototypeDungeonRoom Expand_HellInACell; public static PrototypeDungeonRoom Expand_IceIsNice; public static PrototypeDungeonRoom Expand_IceScotch; public static PrototypeDungeonRoom Expand_MrPresident; public static PrototypeDungeonRoom Expand_SawRoom; public static PrototypeDungeonRoom Expand_Agony; public static PrototypeDungeonRoom Expand_ice1; public static PrototypeDungeonRoom Expand_Ice2; public static PrototypeDungeonRoom Expand_Ice3; public static PrototypeDungeonRoom Expand_Ice4; public static PrototypeDungeonRoom Expand_LargeMany; public static PrototypeDungeonRoom Expand_Roundabout; public static PrototypeDungeonRoom Expand_Shells; public static PrototypeDungeonRoom Expand_Spooky; public static PrototypeDungeonRoom Expand_Undead1; public static PrototypeDungeonRoom Expand_Undead2; public static PrototypeDungeonRoom Expand_Undead3; public static PrototypeDungeonRoom Expand_Undead4; public static PrototypeDungeonRoom Expand_Arena; public static PrototypeDungeonRoom Expand_CaptainCrunch; public static PrototypeDungeonRoom Expand_CorridorOfDoom; public static PrototypeDungeonRoom Expand_FireRoom; public static PrototypeDungeonRoom Expand_Pits; public static PrototypeDungeonRoom Expand_SkullRoom; public static PrototypeDungeonRoom Expand_TableRoomAgain; public static PrototypeDungeonRoom Expand_4wave; public static PrototypeDungeonRoom Expand_Spiralbomb; public static PrototypeDungeonRoom Expand_Bat; public static PrototypeDungeonRoom Expand_Batsmall; public static PrototypeDungeonRoom Expand_BIRDS; public static PrototypeDungeonRoom Expand_Blobs; public static PrototypeDungeonRoom Expand_BoogalooFailure2; public static PrototypeDungeonRoom Expand_Chess; public static PrototypeDungeonRoom Expand_Cornerpits; public static PrototypeDungeonRoom Expand_Enclosed; public static PrototypeDungeonRoom Expand_Funky; public static PrototypeDungeonRoom Expand_Gapsniper; public static PrototypeDungeonRoom Expand_Hallway; public static PrototypeDungeonRoom Expand_HUB_1wave; public static PrototypeDungeonRoom Expand_Islands; public static PrototypeDungeonRoom Expand_Long; public static PrototypeDungeonRoom Expand_Mushroom; public static PrototypeDungeonRoom Expand_Mutant; public static PrototypeDungeonRoom Expand_Oddshroom; public static PrototypeDungeonRoom Expand_Pitzag; public static PrototypeDungeonRoom Expand_Shotgun; public static PrototypeDungeonRoom Expand_Smallcentral; public static PrototypeDungeonRoom ThwompCrossingVertical; public static PrototypeDungeonRoom ThwompCrossingHorizontal; public static PrototypeDungeonRoom Expand_Apache_FieldOfSaws; public static PrototypeDungeonRoom Expand_Apache_TheCrushZone; public static PrototypeDungeonRoom Expand_Apache_SpikeAndPits; public static PrototypeDungeonRoom Expand_Apache_PitTraps; public static PrototypeDungeonRoom Expand_Apache_RickRollChest; public static PrototypeDungeonRoom Expand_Apache_SurpriseChest; public static PrototypeDungeonRoom Expand_Apache_RainbowRoom; public static PrototypeDungeonRoom Expand_FakePastChest; public static PrototypeDungeonRoom Expand_TinySecret; public static PrototypeDungeonRoom Expand_TinySecretEmpty; public static PrototypeDungeonRoom Expand_GlitchedSecret; public static PrototypeDungeonRoom Expand_SecretElevatorEntranceRoom; public static PrototypeDungeonRoom Expand_RickRollSecret; public static PrototypeDungeonRoom SecretExitRoom2; public static PrototypeDungeonRoom SecretRatEntranceRoom; public static PrototypeDungeonRoom Expand_SecretElevatorDestinationRoom; public static PrototypeDungeonRoom Expand_BootlegRoom; public static PrototypeDungeonRoom Bunny_Special4ShrineRoom; public static PrototypeDungeonRoom Expand_Secret_Brother10; public static PrototypeDungeonRoom Expand_Secret_Brother9; public static PrototypeDungeonRoom Expand_Secret_Brother8; public static PrototypeDungeonRoom Expand_Secret_Brother7; public static PrototypeDungeonRoom Expand_Secret_Brother6; public static PrototypeDungeonRoom Expand_Secret_Brother5; public static PrototypeDungeonRoom Expand_Secret_Brother4; public static PrototypeDungeonRoom Expand_Secret_Brother3; public static PrototypeDungeonRoom Expand_Secret_Brother2; public static PrototypeDungeonRoom Expand_Secret_Brother1; public static PrototypeDungeonRoom Expand_Secret_Witch10; public static PrototypeDungeonRoom Expand_Secret_Witch9; public static PrototypeDungeonRoom Expand_Secret_Witch8; public static PrototypeDungeonRoom Expand_Secret_Witch7; public static PrototypeDungeonRoom Expand_Secret_Witch6; public static PrototypeDungeonRoom Expand_Secret_Witch5; public static PrototypeDungeonRoom Expand_Secret_Witch4; public static PrototypeDungeonRoom Expand_Secret_Witch3; public static PrototypeDungeonRoom Expand_Secret_Witch2; public static PrototypeDungeonRoom Expand_Secret_Witch1; public static PrototypeDungeonRoom Expand_Secret_Pickups; public static PrototypeDungeonRoom Expand_Secret_Owl10; public static PrototypeDungeonRoom Expand_Secret_Owl9; public static PrototypeDungeonRoom Expand_Secret_Owl8; public static PrototypeDungeonRoom Expand_Secret_Owl7; public static PrototypeDungeonRoom Expand_Secret_Owl6; public static PrototypeDungeonRoom Expand_Secret_Owl5; public static PrototypeDungeonRoom Expand_Secret_Owl4; public static PrototypeDungeonRoom Expand_Secret_Owl3; public static PrototypeDungeonRoom Expand_Secret_Owl2; public static PrototypeDungeonRoom Expand_Secret_Owl1; public static PrototypeDungeonRoom Expand_Secret_Oldman10; public static PrototypeDungeonRoom Expand_Secret_Oldman9; public static PrototypeDungeonRoom Expand_Secret_Oldman8; public static PrototypeDungeonRoom Expand_Secret_Oldman7; public static PrototypeDungeonRoom Expand_Secret_Oldman6; public static PrototypeDungeonRoom Expand_Secret_Oldman5; public static PrototypeDungeonRoom Expand_Secret_Oldman4; public static PrototypeDungeonRoom Expand_Secret_Oldman3; public static PrototypeDungeonRoom Expand_Secret_Oldman2; public static PrototypeDungeonRoom Expand_Secret_Oldman1; public static PrototypeDungeonRoom Secret_Expand_reto; public static PrototypeDungeonRoom Secret_Expand_Achievement_The_Password; public static PrototypeDungeonRoom B_Expand_demon_onehand; public static PrototypeDungeonRoom B_Expand_Achievement_Rage_Mode; public static PrototypeDungeonRoom B_Expand_Achievement_Jammed; public static PrototypeDungeonRoom PMO_Expand_Achievement_Demolition_Man; public static PrototypeDungeonRoom PMO_Expand_Achievement_Beep; public static PrototypeDungeonRoom PMHFOA_Expand_Achievement_Gun_Game; public static PrototypeDungeonRoom PMH_Expand_Kyle; public static PrototypeDungeonRoom PMH_Expand_Achievement_ReArmed; public static PrototypeDungeonRoom PMH_Expand_Achievement_Dat_Plat; public static PrototypeDungeonRoom PM_Expand_bubblebuddy; public static PrototypeDungeonRoom PM_Expand_Achievement_Squad_Captain; public static PrototypeDungeonRoom PM_Expand_Achievement_Reverence_for_the_Dead; public static PrototypeDungeonRoom PM_Expand_Achievement_Patron; public static PrototypeDungeonRoom PM_Expand_Achievement_Castle_Crasher; public static PrototypeDungeonRoom PM_Expand_Achievement_Case_Closed; public static PrototypeDungeonRoom P_Expand_MasterRound2; public static PrototypeDungeonRoom P_Expand_beholdter; public static PrototypeDungeonRoom O_Expand_Achievement_Sworn_Gun; public static PrototypeDungeonRoom O_Expand_Achievement_Pit_Lord; public static PrototypeDungeonRoom MHF_Expand_Achievement_Great_Hall; public static PrototypeDungeonRoom MH_Expand_TheSellCreep; public static PrototypeDungeonRoom MH_Expand_Achievement_Trickshot; public static PrototypeDungeonRoom MH_Expand_Achievement_Lead_God; public static PrototypeDungeonRoom MH_Expand_Achievement_Going_Down; public static PrototypeDungeonRoom MH_Expand_Achievement_Challenger; public static PrototypeDungeonRoom MFA_Expand_bigshotgun; public static PrototypeDungeonRoom MA_Expand_Achievement_Dungeon_Diver; public static PrototypeDungeonRoom MA_Expand_Achievement_Double_Jeopardy; public static PrototypeDungeonRoom M_Expand_Retrashed; public static PrototypeDungeonRoom M_Expand_ratkey; public static PrototypeDungeonRoom M_Expand_MasterRound3; public static PrototypeDungeonRoom M_Expand_ArcaneGunpowder; public static PrototypeDungeonRoom M_Expand_AK; public static PrototypeDungeonRoom M_Expand_Achievement_Rider; public static PrototypeDungeonRoom M_Expand_Achievement_Resourceful; public static PrototypeDungeonRoom M_Expand_Achievement_Mine_Master; public static PrototypeDungeonRoom KPMHFAO_Expand_Achievement_Woodsie_Lord; public static PrototypeDungeonRoom KPMHFAO_Expand_Achievement_Wingman; public static PrototypeDungeonRoom KPM_Expand_Achievement_Last_Stop; public static PrototypeDungeonRoom KP_Expand_hegemony; public static PrototypeDungeonRoom KP_Expand_Achievement_Not_Just_A_Box; public static PrototypeDungeonRoom KP_Expand_Achievement_Historian; public static PrototypeDungeonRoom K_Expand_Prime_Primer; public static PrototypeDungeonRoom K_Expand_MasterRound1; public static PrototypeDungeonRoom K_Expand_bonk; public static PrototypeDungeonRoom K_Expand_BigBird; public static PrototypeDungeonRoom K_Expand_Achievement_Money_Pit; public static PrototypeDungeonRoom K_Expand_Achievement_Hedge_Slinger; public static PrototypeDungeonRoom K_Expand_Achievement_Gungeon_Acolyte; public static PrototypeDungeonRoom K_Expand_Achievement_Biggest_Wallet; public static PrototypeDungeonRoom HFAB_Expand_Achievement_Forger; public static PrototypeDungeonRoom HF_Expand_Achievement_Weird_Tale; public static PrototypeDungeonRoom HF_Expand_Achievement_Cartographers_Assistant; public static PrototypeDungeonRoom HB_Expand_Achievement_Hollowed_Out; public static PrototypeDungeonRoom H_Expand_Planar_Lead; public static PrototypeDungeonRoom H_Expand_MasterRound4; public static PrototypeDungeonRoom H_Expand_Highpriest; public static PrototypeDungeonRoom H_Expand_Achievement_SledgeDog; public static PrototypeDungeonRoom H_Expand_Achievement_Exorcist; public static PrototypeDungeonRoom FB_Expand_Achievement_Time_Paradox; public static PrototypeDungeonRoom FB_Expand_Achievement_Lion_Leap; public static PrototypeDungeonRoom FB_Expand_Achievement_Gunsmith; public static PrototypeDungeonRoom FB_Expand_Achievement_Gungeon_Master; public static PrototypeDungeonRoom FB_Expand_Achievement_Day_Ruiner; public static PrototypeDungeonRoom F_Expand_Obsidian_Shell_Casing; public static PrototypeDungeonRoom F_Expand_MasterRound5; public static PrototypeDungeonRoom F_Expand_dragun; public static PrototypeDungeonRoom F_Expand_Achievement_Terminated; public static PrototypeDungeonRoom F_Expand_Achievement_Slayer; public static PrototypeDungeonRoom F_Expand_Achievement_I_Knew_Someone_Would_Do_It; public static PrototypeDungeonRoom F_Expand_Achievement_Advanced_Slayer; public static PrototypeDungeonRoom Expand_Proper_Regular1; public static PrototypeDungeonRoom Expand_Proper_Regular2; public static PrototypeDungeonRoom Expand_Proper_Regular3; public static PrototypeDungeonRoom Expand_Proper_Regular4; public static PrototypeDungeonRoom Expand_Proper_Regular5; public static PrototypeDungeonRoom Expand_Proper_Regular6; public static PrototypeDungeonRoom Expand_Proper_Regular7; public static PrototypeDungeonRoom Expand_Proper_Regular8; public static PrototypeDungeonRoom Expand_Proper_Regular9; public static PrototypeDungeonRoom Expand_Proper_Regular10; public static PrototypeDungeonRoom Expand_Proper_Regular11; public static PrototypeDungeonRoom Expand_Proper_Regular12; public static PrototypeDungeonRoom Expand_Proper_Regular13; public static PrototypeDungeonRoom Expand_Proper_Regular14; public static PrototypeDungeonRoom Expand_Proper_Regular15; public static PrototypeDungeonRoom Expand_Proper_Regular16; public static PrototypeDungeonRoom Expand_Proper_Regular17; public static PrototypeDungeonRoom Expand_Proper_Regular18; public static PrototypeDungeonRoom Expand_Proper_Regular19; public static PrototypeDungeonRoom Expand_Proper_Regular20; public static PrototypeDungeonRoom Expand_Proper_Regular21; public static PrototypeDungeonRoom Expand_Proper_Regular22; public static PrototypeDungeonRoom Expand_Proper_Regular23; public static PrototypeDungeonRoom Expand_Proper_Regular24; public static PrototypeDungeonRoom Expand_Proper_Regular25; public static PrototypeDungeonRoom Expand_Proper_Regular26; public static PrototypeDungeonRoom Expand_Proper_Regular27; public static PrototypeDungeonRoom Expand_Proper_Regular28; public static PrototypeDungeonRoom Expand_Proper_Regular29; public static PrototypeDungeonRoom Expand_Proper_Regular31; public static PrototypeDungeonRoom Expand_Proper_Regular32; public static PrototypeDungeonRoom Expand_Proper_Regular33; public static PrototypeDungeonRoom Expand_Proper_Regular34; public static PrototypeDungeonRoom Expand_Proper_Regular35; public static PrototypeDungeonRoom Expand_Proper_Regular36; public static PrototypeDungeonRoom Expand_Proper_Regular37; public static PrototypeDungeonRoom Expand_Proper_Regular38; public static PrototypeDungeonRoom Expand_Proper_Regular39; public static PrototypeDungeonRoom Expand_Proper_Regular40; public static PrototypeDungeonRoom Expand_Proper_Regular41; public static PrototypeDungeonRoom Expand_Proper_Regular42; public static PrototypeDungeonRoom Expand_Proper_Regular43; public static PrototypeDungeonRoom Expand_Proper_Regular44; public static PrototypeDungeonRoom Expand_Proper_Regular45; public static PrototypeDungeonRoom Expand_Proper_Regular46; public static PrototypeDungeonRoom Expand_Proper_Regular47; public static PrototypeDungeonRoom Expand_Proper_Regular48; public static PrototypeDungeonRoom Expand_Proper_Regular49; public static PrototypeDungeonRoom Expand_Proper_Regular50; public static PrototypeDungeonRoom Expand_Proper_Speshul_Regular30; public static PrototypeDungeonRoom Expand_Mines_Regular1; public static PrototypeDungeonRoom Expand_Mines_Regular2; public static PrototypeDungeonRoom Expand_Mines_Regular3; public static PrototypeDungeonRoom Expand_Mines_Regular4; public static PrototypeDungeonRoom Expand_Mines_Regular5; public static PrototypeDungeonRoom Expand_Mines_Regular6; public static PrototypeDungeonRoom Expand_Mines_Regular7; public static PrototypeDungeonRoom Expand_Mines_Regular8; public static PrototypeDungeonRoom Expand_Mines_Regular9; public static PrototypeDungeonRoom Expand_Mines_Regular10; public static PrototypeDungeonRoom Expand_Mines_Regular11; public static PrototypeDungeonRoom Expand_Mines_Regular12; public static PrototypeDungeonRoom Expand_Mines_Regular13; public static PrototypeDungeonRoom Expand_Mines_Regular14; public static PrototypeDungeonRoom Expand_Mines_Regular15; public static PrototypeDungeonRoom Expand_Mines_Regular16; public static PrototypeDungeonRoom Expand_Mines_Regular17; public static PrototypeDungeonRoom Expand_Mines_Regular18; public static PrototypeDungeonRoom Expand_Mines_Regular19; public static PrototypeDungeonRoom Expand_Mines_Regular20; public static PrototypeDungeonRoom Expand_Mines_Regular21; public static PrototypeDungeonRoom Expand_Mines_Regular22; public static PrototypeDungeonRoom Expand_Mines_Regular23; public static PrototypeDungeonRoom Expand_Mines_Regular24; public static PrototypeDungeonRoom Expand_Mines_Regular25; public static PrototypeDungeonRoom Expand_Mines_Regular26; public static PrototypeDungeonRoom Expand_Mines_Regular27; public static PrototypeDungeonRoom Expand_Mines_Regular28; public static PrototypeDungeonRoom Expand_Mines_Regular29; public static PrototypeDungeonRoom Expand_Mines_Regular30; public static PrototypeDungeonRoom Expand_Mines_Regular31; public static PrototypeDungeonRoom Expand_Mines_Regular32; public static PrototypeDungeonRoom Expand_Mines_Regular33; public static PrototypeDungeonRoom Expand_Mines_Regular34; public static PrototypeDungeonRoom Expand_Mines_Regular35; public static PrototypeDungeonRoom Expand_Mines_Regular36; public static PrototypeDungeonRoom Expand_Mines_Regular37; public static PrototypeDungeonRoom Expand_Mines_Regular38; public static PrototypeDungeonRoom Expand_Mines_Regular39; public static PrototypeDungeonRoom Expand_Mines_Regular40; public static PrototypeDungeonRoom Expand_Mines_Regular41; public static PrototypeDungeonRoom Expand_Mines_Regular42; public static PrototypeDungeonRoom Expand_Mines_Regular43; public static PrototypeDungeonRoom Expand_Mines_Regular44; public static PrototypeDungeonRoom Expand_Mines_Regular45; public static PrototypeDungeonRoom Expand_Mines_Regular46; public static PrototypeDungeonRoom Expand_Mines_Regular47; public static PrototypeDungeonRoom Expand_Mines_Regular48; public static PrototypeDungeonRoom Expand_Mines_Regular49; public static PrototypeDungeonRoom Expand_Mines_Regular50; public static PrototypeDungeonRoom Expand_Keep_Spiral; public static PrototypeDungeonRoom Expand_Jungle_Entrance; public static PrototypeDungeonRoom Expand_Jungle_OldCrest; public static PrototypeDungeonRoom Expand_Jungle_Exit; public static PrototypeDungeonRoom Expand_Jungle_SecretDragun; public static PrototypeDungeonRoom Expand_Jungle_Boss; public static PrototypeDungeonRoom Expand_Jungle_RewardRoom; public static PrototypeDungeonRoom[] Expand_Jungle_Rooms; public static List Expand_Jungle_RoomList; public static List Expand_Belly_RoomList; public static List Expand_BulletHell_RoomList; public static List Expand_West_CanyonRoomList; public static List Expand_West_TinyCanyonRoomList; public static List Expand_West_Interior1RoomList; public static PrototypeDungeonRoom[] Expand_Backrooms_Rooms; public static PrototypeDungeonRoom[] Expand_Backrooms_WarpWings; public static List Expand_BackRooms_RoomList; public static List Expand_BackRooms_WarpWingList; public static PrototypeDungeonRoom[] Expand_Future_Rooms; public static PrototypeDungeonRoom[] Expand_Future_BossFoyers; public static PrototypeDungeonRoom Expand_Future_EntranceRoom_01; public static PrototypeDungeonRoom Expand_Future_EntranceRoom_02; public static PrototypeDungeonRoom Expand_Future_EntranceRoom_03; public static PrototypeDungeonRoom Expand_Future_CrestRoom; public static PrototypeDungeonRoom Expand_Future_BossRoom; public static PrototypeDungeonRoom Expand_Future_RewardRoom; public static PrototypeDungeonRoom Expand_Future_ShopRoom; public static PrototypeDungeonRoom Expand_Future_ExitRoom; public static PrototypeDungeonRoom Expand_Belly_Entrance; public static PrototypeDungeonRoom Expand_Belly_BossRoom; public static PrototypeDungeonRoom Expand_Belly_Connector_01; public static PrototypeDungeonRoom Expand_Belly_Connector_02; public static PrototypeDungeonRoom Expand_Belly_Connector_03; public static PrototypeDungeonRoom Expand_Belly_Connector_04; public static PrototypeDungeonRoom Expand_Belly_Connector_05; public static PrototypeDungeonRoom Expand_Belly_Connector_06; public static PrototypeDungeonRoom Expand_Belly_Shrine; public static PrototypeDungeonRoom Expand_Belly_ExitHub; public static PrototypeDungeonRoom Expand_Belly_RealExit; public static PrototypeDungeonRoom Expand_Belly_Reward; public static PrototypeDungeonRoom[] Expand_West_CanyonRooms; public static PrototypeDungeonRoom[] Expand_West_TinyCanyonRooms; public static PrototypeDungeonRoom[] Expand_West_Interior1Rooms; public static PrototypeDungeonRoom Expand_West_Entrance; public static PrototypeDungeonRoom Expand_West_SecretWarp; public static PrototypeDungeonRoom Expand_West_SecretHub; public static PrototypeDungeonRoom Expand_West_SecretHub2; public static PrototypeDungeonRoom Expand_West_SecretShopWarp; public static PrototypeDungeonRoom Expand_West_SecretKeyShop; public static PrototypeDungeonRoom Expand_West_ChestRoom; public static PrototypeDungeonRoom Expand_West_BlankPedestalRoom; public static PrototypeDungeonRoom Expand_West_RatKeyPedestalRoom; public static PrototypeDungeonRoom Expand_West_SecretRatKeyPedestalRoom; public static PrototypeDungeonRoom Expand_West_ShrineRoom; public static PrototypeDungeonRoom Expand_West_WestBrosBossRoom; public static PrototypeDungeonRoom Expand_BackRooms_Entrance; public static PrototypeDungeonRoom Expand_BackRooms_Entrance2; public static PrototypeDungeonRoom Expand_BackRooms_Entrance3; public static PrototypeDungeonRoom Expand_BackRooms_Entrance_WarpWing; public static PrototypeDungeonRoom Expand_BackRooms_Exit; public static PrototypeDungeonRoom Expand_FutureSignPostRoom; public static PrototypeDungeonRoom[] Expand_Belly_Rooms; public static PrototypeDungeonRoom Expand_Gungeon_BellyEntranceRoom; public static PrototypeDungeonRoom Expand_Gungeon_HiddenMonsterRoom; public static PrototypeDungeonRoom[] Expand_BulletHell_Rooms; public static WeightedRoom GenerateWeightedRoom(PrototypeDungeonRoom Room, float Weight = 1f, bool LimitedCopies = true, int MaxCopies = 1, DungeonPrerequisite[] AdditionalPrerequisites = null) { //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_0023: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_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_0041: Expected O, but got Unknown if ((Object)(object)Room == (Object)null) { return null; } if (AdditionalPrerequisites == null) { AdditionalPrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; } return new WeightedRoom { room = Room, weight = Weight, limitedCopies = LimitedCopies, maxCopies = MaxCopies, additionalPrerequisites = AdditionalPrerequisites }; } public static void InitCustomRooms(AssetBundle expandSharedAssets1, AssetBundle sharedAssets, AssetBundle sharedAssets2, AssetBundle braveResources, AssetBundle EnemiesBundle) { //IL_1902: Unknown result type (might be due to invalid IL or missing references) //IL_193a: Unknown result type (might be due to invalid IL or missing references) //IL_1c55: Unknown result type (might be due to invalid IL or missing references) //IL_1f3c: Unknown result type (might be due to invalid IL or missing references) //IL_1f64: Unknown result type (might be due to invalid IL or missing references) //IL_1f8c: Unknown result type (might be due to invalid IL or missing references) //IL_1fb4: Unknown result type (might be due to invalid IL or missing references) //IL_1fdc: Unknown result type (might be due to invalid IL or missing references) //IL_2004: Unknown result type (might be due to invalid IL or missing references) //IL_202c: Unknown result type (might be due to invalid IL or missing references) //IL_2054: Unknown result type (might be due to invalid IL or missing references) //IL_207c: Unknown result type (might be due to invalid IL or missing references) //IL_20a4: Unknown result type (might be due to invalid IL or missing references) //IL_20cc: Unknown result type (might be due to invalid IL or missing references) //IL_20f4: Unknown result type (might be due to invalid IL or missing references) //IL_214f: Unknown result type (might be due to invalid IL or missing references) //IL_215e: Unknown result type (might be due to invalid IL or missing references) //IL_2163: Unknown result type (might be due to invalid IL or missing references) //IL_2206: Unknown result type (might be due to invalid IL or missing references) //IL_2230: Unknown result type (might be due to invalid IL or missing references) //IL_258e: Unknown result type (might be due to invalid IL or missing references) //IL_27c1: Unknown result type (might be due to invalid IL or missing references) //IL_281f: Unknown result type (might be due to invalid IL or missing references) //IL_2849: Unknown result type (might be due to invalid IL or missing references) //IL_28a8: Unknown result type (might be due to invalid IL or missing references) //IL_28d2: Unknown result type (might be due to invalid IL or missing references) //IL_28fa: Unknown result type (might be due to invalid IL or missing references) //IL_2922: Unknown result type (might be due to invalid IL or missing references) //IL_294a: Unknown result type (might be due to invalid IL or missing references) //IL_2999: Unknown result type (might be due to invalid IL or missing references) //IL_29e6: Unknown result type (might be due to invalid IL or missing references) //IL_2a23: Unknown result type (might be due to invalid IL or missing references) //IL_2a6f: Unknown result type (might be due to invalid IL or missing references) //IL_2ac5: Unknown result type (might be due to invalid IL or missing references) //IL_2ad0: Unknown result type (might be due to invalid IL or missing references) //IL_2adb: Unknown result type (might be due to invalid IL or missing references) //IL_2ae6: Unknown result type (might be due to invalid IL or missing references) //IL_2af1: Unknown result type (might be due to invalid IL or missing references) //IL_2b03: Unknown result type (might be due to invalid IL or missing references) //IL_2b0d: Expected O, but got Unknown //IL_2b10: Unknown result type (might be due to invalid IL or missing references) //IL_2b1a: Expected O, but got Unknown //IL_2b52: Unknown result type (might be due to invalid IL or missing references) //IL_2b57: Unknown result type (might be due to invalid IL or missing references) //IL_2b66: Unknown result type (might be due to invalid IL or missing references) //IL_2b96: Unknown result type (might be due to invalid IL or missing references) //IL_2bc3: Unknown result type (might be due to invalid IL or missing references) //IL_2be3: Unknown result type (might be due to invalid IL or missing references) //IL_2c59: Unknown result type (might be due to invalid IL or missing references) //IL_2cda: Unknown result type (might be due to invalid IL or missing references) //IL_2d5b: Unknown result type (might be due to invalid IL or missing references) //IL_2ddc: Unknown result type (might be due to invalid IL or missing references) //IL_2e28: Unknown result type (might be due to invalid IL or missing references) //IL_2e74: Unknown result type (might be due to invalid IL or missing references) //IL_2ec0: Unknown result type (might be due to invalid IL or missing references) //IL_2f0c: Unknown result type (might be due to invalid IL or missing references) //IL_2f58: Unknown result type (might be due to invalid IL or missing references) //IL_2fa4: Unknown result type (might be due to invalid IL or missing references) //IL_2ff0: Unknown result type (might be due to invalid IL or missing references) //IL_303c: Unknown result type (might be due to invalid IL or missing references) //IL_3088: Unknown result type (might be due to invalid IL or missing references) //IL_30b0: Unknown result type (might be due to invalid IL or missing references) //IL_30d8: Unknown result type (might be due to invalid IL or missing references) //IL_3100: Unknown result type (might be due to invalid IL or missing references) //IL_3128: Unknown result type (might be due to invalid IL or missing references) //IL_3152: Unknown result type (might be due to invalid IL or missing references) //IL_31b8: Unknown result type (might be due to invalid IL or missing references) //IL_3205: Unknown result type (might be due to invalid IL or missing references) //IL_3253: Unknown result type (might be due to invalid IL or missing references) //IL_329f: Unknown result type (might be due to invalid IL or missing references) //IL_32eb: Unknown result type (might be due to invalid IL or missing references) //IL_3337: Unknown result type (might be due to invalid IL or missing references) //IL_3383: Unknown result type (might be due to invalid IL or missing references) //IL_33cf: Unknown result type (might be due to invalid IL or missing references) //IL_341b: Unknown result type (might be due to invalid IL or missing references) //IL_3467: Unknown result type (might be due to invalid IL or missing references) //IL_34b3: Unknown result type (might be due to invalid IL or missing references) //IL_3509: Unknown result type (might be due to invalid IL or missing references) //IL_3514: Unknown result type (might be due to invalid IL or missing references) //IL_351f: Unknown result type (might be due to invalid IL or missing references) //IL_352a: Unknown result type (might be due to invalid IL or missing references) //IL_3535: Unknown result type (might be due to invalid IL or missing references) //IL_3547: Unknown result type (might be due to invalid IL or missing references) //IL_3551: Expected O, but got Unknown //IL_3554: Unknown result type (might be due to invalid IL or missing references) //IL_355e: Expected O, but got Unknown //IL_358b: Unknown result type (might be due to invalid IL or missing references) //IL_3590: Unknown result type (might be due to invalid IL or missing references) //IL_35a3: Unknown result type (might be due to invalid IL or missing references) //IL_35aa: Expected O, but got Unknown //IL_35b5: Unknown result type (might be due to invalid IL or missing references) //IL_35ba: Unknown result type (might be due to invalid IL or missing references) //IL_35c5: Unknown result type (might be due to invalid IL or missing references) //IL_35d0: Unknown result type (might be due to invalid IL or missing references) //IL_35d5: Unknown result type (might be due to invalid IL or missing references) //IL_35da: Unknown result type (might be due to invalid IL or missing references) //IL_35e1: Unknown result type (might be due to invalid IL or missing references) //IL_35e8: Unknown result type (might be due to invalid IL or missing references) //IL_35ef: Unknown result type (might be due to invalid IL or missing references) //IL_35fb: Unknown result type (might be due to invalid IL or missing references) //IL_3607: Unknown result type (might be due to invalid IL or missing references) //IL_3613: Unknown result type (might be due to invalid IL or missing references) //IL_361f: Expected O, but got Unknown //IL_3621: Unknown result type (might be due to invalid IL or missing references) //IL_3626: Unknown result type (might be due to invalid IL or missing references) //IL_3631: Unknown result type (might be due to invalid IL or missing references) //IL_363c: Unknown result type (might be due to invalid IL or missing references) //IL_3641: Unknown result type (might be due to invalid IL or missing references) //IL_3646: Unknown result type (might be due to invalid IL or missing references) //IL_364d: Unknown result type (might be due to invalid IL or missing references) //IL_3654: Unknown result type (might be due to invalid IL or missing references) //IL_365b: Unknown result type (might be due to invalid IL or missing references) //IL_3667: Unknown result type (might be due to invalid IL or missing references) //IL_3673: Unknown result type (might be due to invalid IL or missing references) //IL_367f: Unknown result type (might be due to invalid IL or missing references) //IL_368b: Expected O, but got Unknown //IL_368d: Unknown result type (might be due to invalid IL or missing references) //IL_3692: Unknown result type (might be due to invalid IL or missing references) //IL_369d: Unknown result type (might be due to invalid IL or missing references) //IL_36a8: Unknown result type (might be due to invalid IL or missing references) //IL_36ad: Unknown result type (might be due to invalid IL or missing references) //IL_36b2: Unknown result type (might be due to invalid IL or missing references) //IL_36b9: Unknown result type (might be due to invalid IL or missing references) //IL_36c0: Unknown result type (might be due to invalid IL or missing references) //IL_36c7: Unknown result type (might be due to invalid IL or missing references) //IL_36d3: Unknown result type (might be due to invalid IL or missing references) //IL_36df: Unknown result type (might be due to invalid IL or missing references) //IL_36eb: Unknown result type (might be due to invalid IL or missing references) //IL_36f7: Expected O, but got Unknown //IL_36f9: Unknown result type (might be due to invalid IL or missing references) //IL_36fe: Unknown result type (might be due to invalid IL or missing references) //IL_3709: Unknown result type (might be due to invalid IL or missing references) //IL_3714: Unknown result type (might be due to invalid IL or missing references) //IL_3719: Unknown result type (might be due to invalid IL or missing references) //IL_371e: Unknown result type (might be due to invalid IL or missing references) //IL_3725: Unknown result type (might be due to invalid IL or missing references) //IL_372c: Unknown result type (might be due to invalid IL or missing references) //IL_3733: Unknown result type (might be due to invalid IL or missing references) //IL_373f: Unknown result type (might be due to invalid IL or missing references) //IL_374b: Unknown result type (might be due to invalid IL or missing references) //IL_3757: Unknown result type (might be due to invalid IL or missing references) //IL_3763: Expected O, but got Unknown //IL_3765: Unknown result type (might be due to invalid IL or missing references) //IL_376a: Unknown result type (might be due to invalid IL or missing references) //IL_3775: Unknown result type (might be due to invalid IL or missing references) //IL_3780: Unknown result type (might be due to invalid IL or missing references) //IL_3785: Unknown result type (might be due to invalid IL or missing references) //IL_378a: Unknown result type (might be due to invalid IL or missing references) //IL_3791: Unknown result type (might be due to invalid IL or missing references) //IL_3798: Unknown result type (might be due to invalid IL or missing references) //IL_379f: Unknown result type (might be due to invalid IL or missing references) //IL_37ab: Unknown result type (might be due to invalid IL or missing references) //IL_37b7: Unknown result type (might be due to invalid IL or missing references) //IL_37c3: Unknown result type (might be due to invalid IL or missing references) //IL_37cf: Expected O, but got Unknown //IL_37d1: Unknown result type (might be due to invalid IL or missing references) //IL_37d6: Unknown result type (might be due to invalid IL or missing references) //IL_37e1: Unknown result type (might be due to invalid IL or missing references) //IL_37ec: Unknown result type (might be due to invalid IL or missing references) //IL_37f1: Unknown result type (might be due to invalid IL or missing references) //IL_37f6: Unknown result type (might be due to invalid IL or missing references) //IL_37fd: Unknown result type (might be due to invalid IL or missing references) //IL_3804: Unknown result type (might be due to invalid IL or missing references) //IL_380b: Unknown result type (might be due to invalid IL or missing references) //IL_3817: Unknown result type (might be due to invalid IL or missing references) //IL_3823: Unknown result type (might be due to invalid IL or missing references) //IL_382f: Unknown result type (might be due to invalid IL or missing references) //IL_383b: Expected O, but got Unknown //IL_3854: Unknown result type (might be due to invalid IL or missing references) //IL_3869: Unknown result type (might be due to invalid IL or missing references) //IL_387e: Unknown result type (might be due to invalid IL or missing references) //IL_3893: Unknown result type (might be due to invalid IL or missing references) //IL_38a8: Unknown result type (might be due to invalid IL or missing references) //IL_38bd: Unknown result type (might be due to invalid IL or missing references) //IL_38fc: Unknown result type (might be due to invalid IL or missing references) //IL_3932: Unknown result type (might be due to invalid IL or missing references) //IL_396e: Unknown result type (might be due to invalid IL or missing references) //IL_3978: Expected O, but got Unknown //IL_397c: Unknown result type (might be due to invalid IL or missing references) //IL_3986: Expected O, but got Unknown //IL_3990: Unknown result type (might be due to invalid IL or missing references) //IL_39dc: Unknown result type (might be due to invalid IL or missing references) //IL_3a28: Unknown result type (might be due to invalid IL or missing references) //IL_3a52: Unknown result type (might be due to invalid IL or missing references) //IL_3a7c: Unknown result type (might be due to invalid IL or missing references) //IL_3aa6: Unknown result type (might be due to invalid IL or missing references) //IL_3ad0: Unknown result type (might be due to invalid IL or missing references) //IL_3afa: Unknown result type (might be due to invalid IL or missing references) //IL_3b24: Unknown result type (might be due to invalid IL or missing references) //IL_3cc9: Unknown result type (might be due to invalid IL or missing references) //IL_3d15: Unknown result type (might be due to invalid IL or missing references) //IL_3d61: Unknown result type (might be due to invalid IL or missing references) //IL_3dad: Unknown result type (might be due to invalid IL or missing references) //IL_3e0a: Unknown result type (might be due to invalid IL or missing references) //IL_3e14: Expected O, but got Unknown //IL_3e17: Unknown result type (might be due to invalid IL or missing references) //IL_3e21: Expected O, but got Unknown //IL_3e4b: Unknown result type (might be due to invalid IL or missing references) //IL_3e73: Unknown result type (might be due to invalid IL or missing references) //IL_3e9b: Unknown result type (might be due to invalid IL or missing references) //IL_3ec3: Unknown result type (might be due to invalid IL or missing references) //IL_3eeb: Unknown result type (might be due to invalid IL or missing references) //IL_3f15: Unknown result type (might be due to invalid IL or missing references) //IL_3f35: Unknown result type (might be due to invalid IL or missing references) //IL_3fdd: Unknown result type (might be due to invalid IL or missing references) //IL_402e: Unknown result type (might be due to invalid IL or missing references) //IL_4069: Unknown result type (might be due to invalid IL or missing references) //IL_40a4: Unknown result type (might be due to invalid IL or missing references) //IL_450d: Unknown result type (might be due to invalid IL or missing references) //IL_4512: Unknown result type (might be due to invalid IL or missing references) //IL_4548: Unknown result type (might be due to invalid IL or missing references) //IL_4566: Unknown result type (might be due to invalid IL or missing references) //IL_4631: Unknown result type (might be due to invalid IL or missing references) //IL_4659: Unknown result type (might be due to invalid IL or missing references) //IL_4681: Unknown result type (might be due to invalid IL or missing references) //IL_45a2: Unknown result type (might be due to invalid IL or missing references) //IL_45d1: Unknown result type (might be due to invalid IL or missing references) //IL_4600: Unknown result type (might be due to invalid IL or missing references) //IL_469a: Unknown result type (might be due to invalid IL or missing references) //IL_469f: Unknown result type (might be due to invalid IL or missing references) //IL_46a6: Expected O, but got Unknown //IL_46a9: Unknown result type (might be due to invalid IL or missing references) //IL_46c5: Unknown result type (might be due to invalid IL or missing references) //IL_46d3: Unknown result type (might be due to invalid IL or missing references) //IL_46e2: Unknown result type (might be due to invalid IL or missing references) //IL_46f0: Unknown result type (might be due to invalid IL or missing references) //IL_46fe: Unknown result type (might be due to invalid IL or missing references) //IL_470c: Unknown result type (might be due to invalid IL or missing references) //IL_471c: Unknown result type (might be due to invalid IL or missing references) //IL_472a: Unknown result type (might be due to invalid IL or missing references) //IL_473b: Unknown result type (might be due to invalid IL or missing references) //IL_4740: Unknown result type (might be due to invalid IL or missing references) //IL_4747: Expected O, but got Unknown //IL_474a: Unknown result type (might be due to invalid IL or missing references) //IL_4766: Unknown result type (might be due to invalid IL or missing references) //IL_4774: Unknown result type (might be due to invalid IL or missing references) //IL_4784: Unknown result type (might be due to invalid IL or missing references) //IL_4792: Unknown result type (might be due to invalid IL or missing references) //IL_47e4: Unknown result type (might be due to invalid IL or missing references) //IL_488b: Unknown result type (might be due to invalid IL or missing references) //IL_48e5: Unknown result type (might be due to invalid IL or missing references) //IL_495e: Unknown result type (might be due to invalid IL or missing references) //IL_49d7: Unknown result type (might be due to invalid IL or missing references) //IL_4a50: Unknown result type (might be due to invalid IL or missing references) //IL_4aba: Unknown result type (might be due to invalid IL or missing references) //IL_4ae2: Unknown result type (might be due to invalid IL or missing references) //IL_4b2a: Unknown result type (might be due to invalid IL or missing references) //IL_4b52: Unknown result type (might be due to invalid IL or missing references) //IL_4b7c: Unknown result type (might be due to invalid IL or missing references) //IL_4bcb: Unknown result type (might be due to invalid IL or missing references) //IL_4c4a: Unknown result type (might be due to invalid IL or missing references) //IL_4c55: Unknown result type (might be due to invalid IL or missing references) //IL_4c60: Unknown result type (might be due to invalid IL or missing references) //IL_4c6b: Unknown result type (might be due to invalid IL or missing references) //IL_4c76: Unknown result type (might be due to invalid IL or missing references) //IL_4c80: Unknown result type (might be due to invalid IL or missing references) //IL_4c85: Unknown result type (might be due to invalid IL or missing references) //IL_4c95: Expected O, but got Unknown //IL_4ce7: Unknown result type (might be due to invalid IL or missing references) //IL_4d58: Unknown result type (might be due to invalid IL or missing references) //IL_4d5d: Unknown result type (might be due to invalid IL or missing references) //IL_4d72: Unknown result type (might be due to invalid IL or missing references) //IL_4d77: Unknown result type (might be due to invalid IL or missing references) //IL_4d7e: Unknown result type (might be due to invalid IL or missing references) //IL_4d8a: Expected O, but got Unknown //IL_4de4: Unknown result type (might be due to invalid IL or missing references) //IL_4de9: Unknown result type (might be due to invalid IL or missing references) //IL_4e29: Unknown result type (might be due to invalid IL or missing references) //IL_4e49: Unknown result type (might be due to invalid IL or missing references) //IL_4e69: Unknown result type (might be due to invalid IL or missing references) //IL_4e89: Unknown result type (might be due to invalid IL or missing references) //IL_4e9f: Unknown result type (might be due to invalid IL or missing references) //IL_4f2a: Unknown result type (might be due to invalid IL or missing references) //IL_4f35: Unknown result type (might be due to invalid IL or missing references) //IL_4f40: Unknown result type (might be due to invalid IL or missing references) //IL_4f4b: Unknown result type (might be due to invalid IL or missing references) //IL_4f56: Unknown result type (might be due to invalid IL or missing references) //IL_4f60: Unknown result type (might be due to invalid IL or missing references) //IL_4f65: Unknown result type (might be due to invalid IL or missing references) //IL_4f75: Expected O, but got Unknown //IL_4fc7: Unknown result type (might be due to invalid IL or missing references) //IL_5038: Unknown result type (might be due to invalid IL or missing references) //IL_503d: Unknown result type (might be due to invalid IL or missing references) //IL_5052: Unknown result type (might be due to invalid IL or missing references) //IL_5057: Unknown result type (might be due to invalid IL or missing references) //IL_505e: Unknown result type (might be due to invalid IL or missing references) //IL_506a: Expected O, but got Unknown //IL_50c4: Unknown result type (might be due to invalid IL or missing references) //IL_50c9: Unknown result type (might be due to invalid IL or missing references) //IL_5109: Unknown result type (might be due to invalid IL or missing references) //IL_5129: Unknown result type (might be due to invalid IL or missing references) //IL_5149: Unknown result type (might be due to invalid IL or missing references) //IL_5169: Unknown result type (might be due to invalid IL or missing references) //IL_517f: Unknown result type (might be due to invalid IL or missing references) //IL_520a: Unknown result type (might be due to invalid IL or missing references) //IL_5215: Unknown result type (might be due to invalid IL or missing references) //IL_5220: Unknown result type (might be due to invalid IL or missing references) //IL_522b: Unknown result type (might be due to invalid IL or missing references) //IL_5236: Unknown result type (might be due to invalid IL or missing references) //IL_5240: Unknown result type (might be due to invalid IL or missing references) //IL_5245: Unknown result type (might be due to invalid IL or missing references) //IL_5255: Expected O, but got Unknown //IL_52a7: Unknown result type (might be due to invalid IL or missing references) //IL_5318: Unknown result type (might be due to invalid IL or missing references) //IL_531d: Unknown result type (might be due to invalid IL or missing references) //IL_5332: Unknown result type (might be due to invalid IL or missing references) //IL_5337: Unknown result type (might be due to invalid IL or missing references) //IL_533e: Unknown result type (might be due to invalid IL or missing references) //IL_534a: Expected O, but got Unknown //IL_53a4: Unknown result type (might be due to invalid IL or missing references) //IL_53a9: Unknown result type (might be due to invalid IL or missing references) //IL_53e9: Unknown result type (might be due to invalid IL or missing references) //IL_5409: Unknown result type (might be due to invalid IL or missing references) //IL_5429: Unknown result type (might be due to invalid IL or missing references) //IL_5449: Unknown result type (might be due to invalid IL or missing references) //IL_545f: Unknown result type (might be due to invalid IL or missing references) //IL_55a6: Unknown result type (might be due to invalid IL or missing references) //IL_55b1: Unknown result type (might be due to invalid IL or missing references) //IL_55bc: Unknown result type (might be due to invalid IL or missing references) //IL_55c7: Unknown result type (might be due to invalid IL or missing references) //IL_55d2: Unknown result type (might be due to invalid IL or missing references) //IL_55dc: Unknown result type (might be due to invalid IL or missing references) //IL_55e1: Unknown result type (might be due to invalid IL or missing references) //IL_55f1: Expected O, but got Unknown //IL_563a: Unknown result type (might be due to invalid IL or missing references) //IL_5644: Expected O, but got Unknown //IL_5647: Unknown result type (might be due to invalid IL or missing references) //IL_5651: Expected O, but got Unknown //IL_565c: Unknown result type (might be due to invalid IL or missing references) //IL_56cd: Unknown result type (might be due to invalid IL or missing references) //IL_56d2: Unknown result type (might be due to invalid IL or missing references) //IL_56e7: Unknown result type (might be due to invalid IL or missing references) //IL_56ec: Unknown result type (might be due to invalid IL or missing references) //IL_56f3: Unknown result type (might be due to invalid IL or missing references) //IL_56ff: Expected O, but got Unknown //IL_575d: Unknown result type (might be due to invalid IL or missing references) //IL_5762: Unknown result type (might be due to invalid IL or missing references) //IL_5798: Unknown result type (might be due to invalid IL or missing references) //IL_579f: Expected O, but got Unknown //IL_57aa: Unknown result type (might be due to invalid IL or missing references) //IL_57af: Unknown result type (might be due to invalid IL or missing references) //IL_57ba: Unknown result type (might be due to invalid IL or missing references) //IL_57c5: Unknown result type (might be due to invalid IL or missing references) //IL_57ca: Unknown result type (might be due to invalid IL or missing references) //IL_57cf: Unknown result type (might be due to invalid IL or missing references) //IL_57d6: Unknown result type (might be due to invalid IL or missing references) //IL_57dd: Unknown result type (might be due to invalid IL or missing references) //IL_57e4: Unknown result type (might be due to invalid IL or missing references) //IL_57f0: Unknown result type (might be due to invalid IL or missing references) //IL_57fc: Unknown result type (might be due to invalid IL or missing references) //IL_5808: Unknown result type (might be due to invalid IL or missing references) //IL_5814: Expected O, but got Unknown //IL_5816: Unknown result type (might be due to invalid IL or missing references) //IL_581b: Unknown result type (might be due to invalid IL or missing references) //IL_5826: Unknown result type (might be due to invalid IL or missing references) //IL_5831: Unknown result type (might be due to invalid IL or missing references) //IL_5836: Unknown result type (might be due to invalid IL or missing references) //IL_583b: Unknown result type (might be due to invalid IL or missing references) //IL_5842: Unknown result type (might be due to invalid IL or missing references) //IL_5849: Unknown result type (might be due to invalid IL or missing references) //IL_5850: Unknown result type (might be due to invalid IL or missing references) //IL_585c: Unknown result type (might be due to invalid IL or missing references) //IL_5868: Unknown result type (might be due to invalid IL or missing references) //IL_5874: Unknown result type (might be due to invalid IL or missing references) //IL_5880: Expected O, but got Unknown //IL_5882: Unknown result type (might be due to invalid IL or missing references) //IL_5887: Unknown result type (might be due to invalid IL or missing references) //IL_5892: Unknown result type (might be due to invalid IL or missing references) //IL_589d: Unknown result type (might be due to invalid IL or missing references) //IL_58a2: Unknown result type (might be due to invalid IL or missing references) //IL_58a7: Unknown result type (might be due to invalid IL or missing references) //IL_58ae: Unknown result type (might be due to invalid IL or missing references) //IL_58b5: Unknown result type (might be due to invalid IL or missing references) //IL_58bc: Unknown result type (might be due to invalid IL or missing references) //IL_58c8: Unknown result type (might be due to invalid IL or missing references) //IL_58d4: Unknown result type (might be due to invalid IL or missing references) //IL_58e0: Unknown result type (might be due to invalid IL or missing references) //IL_58ec: Expected O, but got Unknown //IL_58ee: Unknown result type (might be due to invalid IL or missing references) //IL_58f3: Unknown result type (might be due to invalid IL or missing references) //IL_58fe: Unknown result type (might be due to invalid IL or missing references) //IL_5909: Unknown result type (might be due to invalid IL or missing references) //IL_590e: Unknown result type (might be due to invalid IL or missing references) //IL_5913: Unknown result type (might be due to invalid IL or missing references) //IL_591a: Unknown result type (might be due to invalid IL or missing references) //IL_5921: Unknown result type (might be due to invalid IL or missing references) //IL_5928: Unknown result type (might be due to invalid IL or missing references) //IL_5934: Unknown result type (might be due to invalid IL or missing references) //IL_5940: Unknown result type (might be due to invalid IL or missing references) //IL_594c: Unknown result type (might be due to invalid IL or missing references) //IL_5958: Expected O, but got Unknown //IL_595a: Unknown result type (might be due to invalid IL or missing references) //IL_595f: Unknown result type (might be due to invalid IL or missing references) //IL_596a: Unknown result type (might be due to invalid IL or missing references) //IL_5975: Unknown result type (might be due to invalid IL or missing references) //IL_597a: Unknown result type (might be due to invalid IL or missing references) //IL_597f: Unknown result type (might be due to invalid IL or missing references) //IL_5986: Unknown result type (might be due to invalid IL or missing references) //IL_598d: Unknown result type (might be due to invalid IL or missing references) //IL_5994: Unknown result type (might be due to invalid IL or missing references) //IL_59a0: Unknown result type (might be due to invalid IL or missing references) //IL_59ac: Unknown result type (might be due to invalid IL or missing references) //IL_59b8: Unknown result type (might be due to invalid IL or missing references) //IL_59c4: Expected O, but got Unknown //IL_59dd: Unknown result type (might be due to invalid IL or missing references) //IL_59f2: Unknown result type (might be due to invalid IL or missing references) //IL_5a07: Unknown result type (might be due to invalid IL or missing references) //IL_5a1c: Unknown result type (might be due to invalid IL or missing references) //IL_5a31: Unknown result type (might be due to invalid IL or missing references) //IL_5a70: Unknown result type (might be due to invalid IL or missing references) //IL_5a92: Unknown result type (might be due to invalid IL or missing references) //IL_5a99: Expected O, but got Unknown //IL_5aa4: Unknown result type (might be due to invalid IL or missing references) //IL_5aa9: Unknown result type (might be due to invalid IL or missing references) //IL_5ab4: Unknown result type (might be due to invalid IL or missing references) //IL_5abf: Unknown result type (might be due to invalid IL or missing references) //IL_5ac4: Unknown result type (might be due to invalid IL or missing references) //IL_5ac9: Unknown result type (might be due to invalid IL or missing references) //IL_5ad0: Unknown result type (might be due to invalid IL or missing references) //IL_5ad7: Unknown result type (might be due to invalid IL or missing references) //IL_5ade: Unknown result type (might be due to invalid IL or missing references) //IL_5aea: Unknown result type (might be due to invalid IL or missing references) //IL_5af6: Unknown result type (might be due to invalid IL or missing references) //IL_5b02: Unknown result type (might be due to invalid IL or missing references) //IL_5b0e: Expected O, but got Unknown //IL_5b10: Unknown result type (might be due to invalid IL or missing references) //IL_5b15: Unknown result type (might be due to invalid IL or missing references) //IL_5b20: Unknown result type (might be due to invalid IL or missing references) //IL_5b2b: Unknown result type (might be due to invalid IL or missing references) //IL_5b30: Unknown result type (might be due to invalid IL or missing references) //IL_5b35: Unknown result type (might be due to invalid IL or missing references) //IL_5b3c: Unknown result type (might be due to invalid IL or missing references) //IL_5b43: Unknown result type (might be due to invalid IL or missing references) //IL_5b4a: Unknown result type (might be due to invalid IL or missing references) //IL_5b56: Unknown result type (might be due to invalid IL or missing references) //IL_5b62: Unknown result type (might be due to invalid IL or missing references) //IL_5b6e: Unknown result type (might be due to invalid IL or missing references) //IL_5b7a: Expected O, but got Unknown //IL_5b7c: Unknown result type (might be due to invalid IL or missing references) //IL_5b81: Unknown result type (might be due to invalid IL or missing references) //IL_5b8c: Unknown result type (might be due to invalid IL or missing references) //IL_5b97: Unknown result type (might be due to invalid IL or missing references) //IL_5b9c: Unknown result type (might be due to invalid IL or missing references) //IL_5ba1: Unknown result type (might be due to invalid IL or missing references) //IL_5ba8: Unknown result type (might be due to invalid IL or missing references) //IL_5baf: Unknown result type (might be due to invalid IL or missing references) //IL_5bb6: Unknown result type (might be due to invalid IL or missing references) //IL_5bc2: Unknown result type (might be due to invalid IL or missing references) //IL_5bce: Unknown result type (might be due to invalid IL or missing references) //IL_5bda: Unknown result type (might be due to invalid IL or missing references) //IL_5be6: Expected O, but got Unknown //IL_5be8: Unknown result type (might be due to invalid IL or missing references) //IL_5bed: Unknown result type (might be due to invalid IL or missing references) //IL_5bf8: Unknown result type (might be due to invalid IL or missing references) //IL_5c03: Unknown result type (might be due to invalid IL or missing references) //IL_5c08: Unknown result type (might be due to invalid IL or missing references) //IL_5c0d: Unknown result type (might be due to invalid IL or missing references) //IL_5c14: Unknown result type (might be due to invalid IL or missing references) //IL_5c1b: Unknown result type (might be due to invalid IL or missing references) //IL_5c22: Unknown result type (might be due to invalid IL or missing references) //IL_5c2e: Unknown result type (might be due to invalid IL or missing references) //IL_5c3a: Unknown result type (might be due to invalid IL or missing references) //IL_5c46: Unknown result type (might be due to invalid IL or missing references) //IL_5c52: Expected O, but got Unknown //IL_5c54: Unknown result type (might be due to invalid IL or missing references) //IL_5c59: Unknown result type (might be due to invalid IL or missing references) //IL_5c64: Unknown result type (might be due to invalid IL or missing references) //IL_5c6f: Unknown result type (might be due to invalid IL or missing references) //IL_5c74: Unknown result type (might be due to invalid IL or missing references) //IL_5c79: Unknown result type (might be due to invalid IL or missing references) //IL_5c80: Unknown result type (might be due to invalid IL or missing references) //IL_5c87: Unknown result type (might be due to invalid IL or missing references) //IL_5c8e: Unknown result type (might be due to invalid IL or missing references) //IL_5c9a: Unknown result type (might be due to invalid IL or missing references) //IL_5ca6: Unknown result type (might be due to invalid IL or missing references) //IL_5cb2: Unknown result type (might be due to invalid IL or missing references) //IL_5cbe: Expected O, but got Unknown //IL_5cd7: Unknown result type (might be due to invalid IL or missing references) //IL_5cec: Unknown result type (might be due to invalid IL or missing references) //IL_5d01: Unknown result type (might be due to invalid IL or missing references) //IL_5d16: Unknown result type (might be due to invalid IL or missing references) //IL_5d2b: Unknown result type (might be due to invalid IL or missing references) //IL_5d6a: Unknown result type (might be due to invalid IL or missing references) //IL_5db4: Unknown result type (might be due to invalid IL or missing references) //IL_5dd4: Unknown result type (might be due to invalid IL or missing references) //IL_5df4: Unknown result type (might be due to invalid IL or missing references) //IL_5e14: Unknown result type (might be due to invalid IL or missing references) //IL_5e34: Unknown result type (might be due to invalid IL or missing references) //IL_5e5e: Unknown result type (might be due to invalid IL or missing references) //IL_5e88: Unknown result type (might be due to invalid IL or missing references) //IL_5f15: Unknown result type (might be due to invalid IL or missing references) //IL_5f20: Unknown result type (might be due to invalid IL or missing references) //IL_5f2b: Unknown result type (might be due to invalid IL or missing references) //IL_5f36: Unknown result type (might be due to invalid IL or missing references) //IL_5f41: Unknown result type (might be due to invalid IL or missing references) //IL_5f4b: Unknown result type (might be due to invalid IL or missing references) //IL_5f50: Unknown result type (might be due to invalid IL or missing references) //IL_5f60: Expected O, but got Unknown //IL_5fa9: Unknown result type (might be due to invalid IL or missing references) //IL_5fb3: Expected O, but got Unknown //IL_5fb6: Unknown result type (might be due to invalid IL or missing references) //IL_5fc0: Expected O, but got Unknown //IL_5fcb: Unknown result type (might be due to invalid IL or missing references) //IL_603c: Unknown result type (might be due to invalid IL or missing references) //IL_6041: Unknown result type (might be due to invalid IL or missing references) //IL_6056: Unknown result type (might be due to invalid IL or missing references) //IL_605b: Unknown result type (might be due to invalid IL or missing references) //IL_6062: Unknown result type (might be due to invalid IL or missing references) //IL_606e: Expected O, but got Unknown //IL_60cc: Unknown result type (might be due to invalid IL or missing references) //IL_60d1: Unknown result type (might be due to invalid IL or missing references) //IL_611c: Unknown result type (might be due to invalid IL or missing references) //IL_613c: Unknown result type (might be due to invalid IL or missing references) //IL_615c: Unknown result type (might be due to invalid IL or missing references) //IL_617c: Unknown result type (might be due to invalid IL or missing references) //IL_619c: Unknown result type (might be due to invalid IL or missing references) //IL_61c7: Unknown result type (might be due to invalid IL or missing references) //IL_61ef: Unknown result type (might be due to invalid IL or missing references) //IL_6219: Unknown result type (might be due to invalid IL or missing references) //IL_6243: Unknown result type (might be due to invalid IL or missing references) //IL_626d: Unknown result type (might be due to invalid IL or missing references) //IL_62fa: Unknown result type (might be due to invalid IL or missing references) //IL_6305: Unknown result type (might be due to invalid IL or missing references) //IL_6310: Unknown result type (might be due to invalid IL or missing references) //IL_631b: Unknown result type (might be due to invalid IL or missing references) //IL_6326: Unknown result type (might be due to invalid IL or missing references) //IL_6330: Unknown result type (might be due to invalid IL or missing references) //IL_6335: Unknown result type (might be due to invalid IL or missing references) //IL_6345: Expected O, but got Unknown //IL_638e: Unknown result type (might be due to invalid IL or missing references) //IL_6398: Expected O, but got Unknown //IL_639b: Unknown result type (might be due to invalid IL or missing references) //IL_63a5: Expected O, but got Unknown //IL_63b0: Unknown result type (might be due to invalid IL or missing references) //IL_6421: Unknown result type (might be due to invalid IL or missing references) //IL_6426: Unknown result type (might be due to invalid IL or missing references) //IL_643b: Unknown result type (might be due to invalid IL or missing references) //IL_6440: Unknown result type (might be due to invalid IL or missing references) //IL_6447: Unknown result type (might be due to invalid IL or missing references) //IL_6453: Expected O, but got Unknown //IL_64b1: Unknown result type (might be due to invalid IL or missing references) //IL_64b6: Unknown result type (might be due to invalid IL or missing references) //IL_6501: Unknown result type (might be due to invalid IL or missing references) //IL_6521: Unknown result type (might be due to invalid IL or missing references) //IL_6541: Unknown result type (might be due to invalid IL or missing references) //IL_6561: Unknown result type (might be due to invalid IL or missing references) //IL_6581: Unknown result type (might be due to invalid IL or missing references) //IL_65a1: Unknown result type (might be due to invalid IL or missing references) //IL_65c1: Unknown result type (might be due to invalid IL or missing references) //IL_65e1: Unknown result type (might be due to invalid IL or missing references) //IL_6601: Unknown result type (might be due to invalid IL or missing references) //IL_6621: Unknown result type (might be due to invalid IL or missing references) //IL_6641: Unknown result type (might be due to invalid IL or missing references) //IL_6661: Unknown result type (might be due to invalid IL or missing references) //IL_6681: Unknown result type (might be due to invalid IL or missing references) //IL_66a1: Unknown result type (might be due to invalid IL or missing references) //IL_66c1: Unknown result type (might be due to invalid IL or missing references) //IL_66e1: Unknown result type (might be due to invalid IL or missing references) //IL_6701: Unknown result type (might be due to invalid IL or missing references) //IL_6721: Unknown result type (might be due to invalid IL or missing references) //IL_6741: Unknown result type (might be due to invalid IL or missing references) //IL_6761: Unknown result type (might be due to invalid IL or missing references) //IL_6781: Unknown result type (might be due to invalid IL or missing references) //IL_67a1: Unknown result type (might be due to invalid IL or missing references) //IL_67c1: Unknown result type (might be due to invalid IL or missing references) //IL_67e1: Unknown result type (might be due to invalid IL or missing references) //IL_6801: Unknown result type (might be due to invalid IL or missing references) //IL_6821: Unknown result type (might be due to invalid IL or missing references) //IL_6841: Unknown result type (might be due to invalid IL or missing references) //IL_6861: Unknown result type (might be due to invalid IL or missing references) //IL_6881: Unknown result type (might be due to invalid IL or missing references) //IL_68a1: Unknown result type (might be due to invalid IL or missing references) //IL_68c1: Unknown result type (might be due to invalid IL or missing references) //IL_68e1: Unknown result type (might be due to invalid IL or missing references) //IL_6901: Unknown result type (might be due to invalid IL or missing references) //IL_6921: Unknown result type (might be due to invalid IL or missing references) //IL_6941: Unknown result type (might be due to invalid IL or missing references) //IL_6961: Unknown result type (might be due to invalid IL or missing references) //IL_6981: Unknown result type (might be due to invalid IL or missing references) //IL_69a1: Unknown result type (might be due to invalid IL or missing references) //IL_69c1: Unknown result type (might be due to invalid IL or missing references) //IL_69e1: Unknown result type (might be due to invalid IL or missing references) //IL_6a01: Unknown result type (might be due to invalid IL or missing references) //IL_6a21: Unknown result type (might be due to invalid IL or missing references) //IL_6a41: Unknown result type (might be due to invalid IL or missing references) //IL_6a61: Unknown result type (might be due to invalid IL or missing references) //IL_6a81: Unknown result type (might be due to invalid IL or missing references) //IL_6aab: Unknown result type (might be due to invalid IL or missing references) //IL_6ada: Unknown result type (might be due to invalid IL or missing references) //IL_6b02: Unknown result type (might be due to invalid IL or missing references) //IL_6b2a: Unknown result type (might be due to invalid IL or missing references) //IL_6b52: Unknown result type (might be due to invalid IL or missing references) //IL_6b7a: Unknown result type (might be due to invalid IL or missing references) //IL_6ba2: Unknown result type (might be due to invalid IL or missing references) //IL_6bca: Unknown result type (might be due to invalid IL or missing references) //IL_6bf2: Unknown result type (might be due to invalid IL or missing references) //IL_6c1a: Unknown result type (might be due to invalid IL or missing references) //IL_6c42: Unknown result type (might be due to invalid IL or missing references) //IL_6c6a: Unknown result type (might be due to invalid IL or missing references) //IL_6c92: Unknown result type (might be due to invalid IL or missing references) //IL_6cba: Unknown result type (might be due to invalid IL or missing references) //IL_6ce2: Unknown result type (might be due to invalid IL or missing references) //IL_6d0a: Unknown result type (might be due to invalid IL or missing references) //IL_6d32: Unknown result type (might be due to invalid IL or missing references) //IL_6d5a: Unknown result type (might be due to invalid IL or missing references) //IL_6d82: Unknown result type (might be due to invalid IL or missing references) //IL_6daa: Unknown result type (might be due to invalid IL or missing references) //IL_6dd2: Unknown result type (might be due to invalid IL or missing references) //IL_6dfa: Unknown result type (might be due to invalid IL or missing references) //IL_6e22: Unknown result type (might be due to invalid IL or missing references) //IL_6e4a: Unknown result type (might be due to invalid IL or missing references) //IL_6e72: Unknown result type (might be due to invalid IL or missing references) //IL_6e9a: Unknown result type (might be due to invalid IL or missing references) //IL_6ec4: Unknown result type (might be due to invalid IL or missing references) //IL_6eee: Unknown result type (might be due to invalid IL or missing references) //IL_6f18: Unknown result type (might be due to invalid IL or missing references) //IL_6f42: Unknown result type (might be due to invalid IL or missing references) //IL_6f6c: Unknown result type (might be due to invalid IL or missing references) //IL_6f96: Unknown result type (might be due to invalid IL or missing references) //IL_6fc0: Unknown result type (might be due to invalid IL or missing references) //IL_6fea: Unknown result type (might be due to invalid IL or missing references) //IL_7014: Unknown result type (might be due to invalid IL or missing references) //IL_703e: Unknown result type (might be due to invalid IL or missing references) //IL_7068: Unknown result type (might be due to invalid IL or missing references) //IL_7092: Unknown result type (might be due to invalid IL or missing references) //IL_70bc: Unknown result type (might be due to invalid IL or missing references) //IL_70e6: Unknown result type (might be due to invalid IL or missing references) //IL_7110: Unknown result type (might be due to invalid IL or missing references) //IL_713a: Unknown result type (might be due to invalid IL or missing references) //IL_7164: Unknown result type (might be due to invalid IL or missing references) //IL_718e: Unknown result type (might be due to invalid IL or missing references) //IL_71b8: Unknown result type (might be due to invalid IL or missing references) //IL_71e2: Unknown result type (might be due to invalid IL or missing references) //IL_720a: Unknown result type (might be due to invalid IL or missing references) //IL_7232: Unknown result type (might be due to invalid IL or missing references) //IL_725c: Unknown result type (might be due to invalid IL or missing references) //IL_7286: Unknown result type (might be due to invalid IL or missing references) //IL_72b0: Unknown result type (might be due to invalid IL or missing references) //IL_72da: Unknown result type (might be due to invalid IL or missing references) //IL_7304: Unknown result type (might be due to invalid IL or missing references) //IL_737a: Unknown result type (might be due to invalid IL or missing references) //IL_7385: Unknown result type (might be due to invalid IL or missing references) //IL_7390: Unknown result type (might be due to invalid IL or missing references) //IL_739b: Unknown result type (might be due to invalid IL or missing references) //IL_73a6: Unknown result type (might be due to invalid IL or missing references) //IL_73b0: Unknown result type (might be due to invalid IL or missing references) //IL_73b5: Unknown result type (might be due to invalid IL or missing references) //IL_73c5: Expected O, but got Unknown //IL_7417: Unknown result type (might be due to invalid IL or missing references) //IL_7488: Unknown result type (might be due to invalid IL or missing references) //IL_748d: Unknown result type (might be due to invalid IL or missing references) //IL_74a2: Unknown result type (might be due to invalid IL or missing references) //IL_74a7: Unknown result type (might be due to invalid IL or missing references) //IL_74ae: Unknown result type (might be due to invalid IL or missing references) //IL_74ba: Expected O, but got Unknown //IL_7514: Unknown result type (might be due to invalid IL or missing references) //IL_7519: Unknown result type (might be due to invalid IL or missing references) //IL_7543: Unknown result type (might be due to invalid IL or missing references) //IL_7563: Unknown result type (might be due to invalid IL or missing references) //IL_7583: Unknown result type (might be due to invalid IL or missing references) //IL_75a3: Unknown result type (might be due to invalid IL or missing references) //IL_7626: Unknown result type (might be due to invalid IL or missing references) //IL_7631: Unknown result type (might be due to invalid IL or missing references) //IL_763c: Unknown result type (might be due to invalid IL or missing references) //IL_7647: Unknown result type (might be due to invalid IL or missing references) //IL_7652: Unknown result type (might be due to invalid IL or missing references) //IL_765c: Unknown result type (might be due to invalid IL or missing references) //IL_7661: Unknown result type (might be due to invalid IL or missing references) //IL_7671: Expected O, but got Unknown //IL_76c3: Unknown result type (might be due to invalid IL or missing references) //IL_7734: Unknown result type (might be due to invalid IL or missing references) //IL_7739: Unknown result type (might be due to invalid IL or missing references) //IL_774e: Unknown result type (might be due to invalid IL or missing references) //IL_7753: Unknown result type (might be due to invalid IL or missing references) //IL_775a: Unknown result type (might be due to invalid IL or missing references) //IL_7766: Expected O, but got Unknown //IL_77c2: Unknown result type (might be due to invalid IL or missing references) //IL_77c7: Unknown result type (might be due to invalid IL or missing references) //IL_780c: Unknown result type (might be due to invalid IL or missing references) //IL_782c: Unknown result type (might be due to invalid IL or missing references) //IL_78b4: Unknown result type (might be due to invalid IL or missing references) //IL_78bf: Unknown result type (might be due to invalid IL or missing references) //IL_78ca: Unknown result type (might be due to invalid IL or missing references) //IL_78d5: Unknown result type (might be due to invalid IL or missing references) //IL_78e0: Unknown result type (might be due to invalid IL or missing references) //IL_78ea: Unknown result type (might be due to invalid IL or missing references) //IL_78ef: Unknown result type (might be due to invalid IL or missing references) //IL_78ff: Expected O, but got Unknown //IL_7951: Unknown result type (might be due to invalid IL or missing references) //IL_79c2: Unknown result type (might be due to invalid IL or missing references) //IL_79c7: Unknown result type (might be due to invalid IL or missing references) //IL_79dc: Unknown result type (might be due to invalid IL or missing references) //IL_79e1: Unknown result type (might be due to invalid IL or missing references) //IL_79e8: Unknown result type (might be due to invalid IL or missing references) //IL_79f4: Expected O, but got Unknown //IL_7a4e: Unknown result type (might be due to invalid IL or missing references) //IL_7a53: Unknown result type (might be due to invalid IL or missing references) //IL_7a7d: Unknown result type (might be due to invalid IL or missing references) //IL_7a9d: Unknown result type (might be due to invalid IL or missing references) //IL_7abd: Unknown result type (might be due to invalid IL or missing references) //IL_7add: Unknown result type (might be due to invalid IL or missing references) //IL_7b65: Unknown result type (might be due to invalid IL or missing references) //IL_7b70: Unknown result type (might be due to invalid IL or missing references) //IL_7b7b: Unknown result type (might be due to invalid IL or missing references) //IL_7b86: Unknown result type (might be due to invalid IL or missing references) //IL_7b91: Unknown result type (might be due to invalid IL or missing references) //IL_7b9b: Unknown result type (might be due to invalid IL or missing references) //IL_7ba0: Unknown result type (might be due to invalid IL or missing references) //IL_7bb0: Expected O, but got Unknown //IL_7c02: Unknown result type (might be due to invalid IL or missing references) //IL_7c73: Unknown result type (might be due to invalid IL or missing references) //IL_7c78: Unknown result type (might be due to invalid IL or missing references) //IL_7c8d: Unknown result type (might be due to invalid IL or missing references) //IL_7c92: Unknown result type (might be due to invalid IL or missing references) //IL_7c99: Unknown result type (might be due to invalid IL or missing references) //IL_7ca5: Expected O, but got Unknown //IL_7d01: Unknown result type (might be due to invalid IL or missing references) //IL_7d06: Unknown result type (might be due to invalid IL or missing references) //IL_7d48: Unknown result type (might be due to invalid IL or missing references) //IL_7d68: Unknown result type (might be due to invalid IL or missing references) //IL_7d88: Unknown result type (might be due to invalid IL or missing references) //IL_7da8: Unknown result type (might be due to invalid IL or missing references) //IL_7dc8: Unknown result type (might be due to invalid IL or missing references) //IL_7de8: Unknown result type (might be due to invalid IL or missing references) //IL_7e08: Unknown result type (might be due to invalid IL or missing references) //IL_7e28: Unknown result type (might be due to invalid IL or missing references) //IL_7e48: Unknown result type (might be due to invalid IL or missing references) //IL_7e94: Unknown result type (might be due to invalid IL or missing references) //IL_7ebc: Unknown result type (might be due to invalid IL or missing references) //IL_7ee4: Unknown result type (might be due to invalid IL or missing references) //IL_7f30: Unknown result type (might be due to invalid IL or missing references) //IL_7f7c: Unknown result type (might be due to invalid IL or missing references) //IL_7fa4: Unknown result type (might be due to invalid IL or missing references) //IL_7fc2: Unknown result type (might be due to invalid IL or missing references) //IL_8052: Unknown result type (might be due to invalid IL or missing references) //IL_805d: Unknown result type (might be due to invalid IL or missing references) //IL_8068: Unknown result type (might be due to invalid IL or missing references) //IL_8073: Unknown result type (might be due to invalid IL or missing references) //IL_807e: Unknown result type (might be due to invalid IL or missing references) //IL_8088: Unknown result type (might be due to invalid IL or missing references) //IL_808d: Unknown result type (might be due to invalid IL or missing references) //IL_809d: Expected O, but got Unknown //IL_80e6: Unknown result type (might be due to invalid IL or missing references) //IL_80f0: Expected O, but got Unknown //IL_80f3: Unknown result type (might be due to invalid IL or missing references) //IL_80fd: Expected O, but got Unknown //IL_8108: Unknown result type (might be due to invalid IL or missing references) //IL_8179: Unknown result type (might be due to invalid IL or missing references) //IL_817e: Unknown result type (might be due to invalid IL or missing references) //IL_8193: Unknown result type (might be due to invalid IL or missing references) //IL_8198: Unknown result type (might be due to invalid IL or missing references) //IL_819f: Unknown result type (might be due to invalid IL or missing references) //IL_81ab: Expected O, but got Unknown //IL_8209: Unknown result type (might be due to invalid IL or missing references) //IL_820e: Unknown result type (might be due to invalid IL or missing references) //IL_8259: Unknown result type (might be due to invalid IL or missing references) //IL_8279: Unknown result type (might be due to invalid IL or missing references) //IL_828f: Unknown result type (might be due to invalid IL or missing references) //IL_831a: Unknown result type (might be due to invalid IL or missing references) //IL_8325: Unknown result type (might be due to invalid IL or missing references) //IL_8330: Unknown result type (might be due to invalid IL or missing references) //IL_833b: Unknown result type (might be due to invalid IL or missing references) //IL_8346: Unknown result type (might be due to invalid IL or missing references) //IL_8350: Unknown result type (might be due to invalid IL or missing references) //IL_8355: Unknown result type (might be due to invalid IL or missing references) //IL_8365: Expected O, but got Unknown //IL_83b7: Unknown result type (might be due to invalid IL or missing references) //IL_8428: Unknown result type (might be due to invalid IL or missing references) //IL_842d: Unknown result type (might be due to invalid IL or missing references) //IL_8442: Unknown result type (might be due to invalid IL or missing references) //IL_8447: Unknown result type (might be due to invalid IL or missing references) //IL_844e: Unknown result type (might be due to invalid IL or missing references) //IL_845a: Expected O, but got Unknown //IL_84b4: Unknown result type (might be due to invalid IL or missing references) //IL_84b9: Unknown result type (might be due to invalid IL or missing references) //IL_850e: Unknown result type (might be due to invalid IL or missing references) //IL_852e: Unknown result type (might be due to invalid IL or missing references) //IL_854e: Unknown result type (might be due to invalid IL or missing references) //IL_856e: Unknown result type (might be due to invalid IL or missing references) //IL_8598: Unknown result type (might be due to invalid IL or missing references) //IL_85e4: Unknown result type (might be due to invalid IL or missing references) //IL_8698: Unknown result type (might be due to invalid IL or missing references) //IL_86a3: Unknown result type (might be due to invalid IL or missing references) //IL_86ae: Unknown result type (might be due to invalid IL or missing references) //IL_86b9: Unknown result type (might be due to invalid IL or missing references) //IL_86c4: Unknown result type (might be due to invalid IL or missing references) //IL_86ce: Unknown result type (might be due to invalid IL or missing references) //IL_86d3: Unknown result type (might be due to invalid IL or missing references) //IL_86e3: Expected O, but got Unknown //IL_8735: Unknown result type (might be due to invalid IL or missing references) //IL_87a6: Unknown result type (might be due to invalid IL or missing references) //IL_87ab: Unknown result type (might be due to invalid IL or missing references) //IL_87c0: Unknown result type (might be due to invalid IL or missing references) //IL_87c5: Unknown result type (might be due to invalid IL or missing references) //IL_87cc: Unknown result type (might be due to invalid IL or missing references) //IL_87d8: Expected O, but got Unknown //IL_8834: Unknown result type (might be due to invalid IL or missing references) //IL_8839: Unknown result type (might be due to invalid IL or missing references) //IL_8865: Unknown result type (might be due to invalid IL or missing references) //IL_8885: Unknown result type (might be due to invalid IL or missing references) //IL_88a5: Unknown result type (might be due to invalid IL or missing references) //IL_88cf: Unknown result type (might be due to invalid IL or missing references) //IL_88f9: Unknown result type (might be due to invalid IL or missing references) //IL_8923: Unknown result type (might be due to invalid IL or missing references) //IL_89b5: Unknown result type (might be due to invalid IL or missing references) //IL_89c0: Unknown result type (might be due to invalid IL or missing references) //IL_89cb: Unknown result type (might be due to invalid IL or missing references) //IL_89d6: Unknown result type (might be due to invalid IL or missing references) //IL_89e1: Unknown result type (might be due to invalid IL or missing references) //IL_89eb: Unknown result type (might be due to invalid IL or missing references) //IL_89f0: Unknown result type (might be due to invalid IL or missing references) //IL_8a00: Expected O, but got Unknown //IL_8a52: Unknown result type (might be due to invalid IL or missing references) //IL_8ac3: Unknown result type (might be due to invalid IL or missing references) //IL_8ac8: Unknown result type (might be due to invalid IL or missing references) //IL_8add: Unknown result type (might be due to invalid IL or missing references) //IL_8ae2: Unknown result type (might be due to invalid IL or missing references) //IL_8ae9: Unknown result type (might be due to invalid IL or missing references) //IL_8af5: Expected O, but got Unknown //IL_8b52: Unknown result type (might be due to invalid IL or missing references) //IL_8b57: Unknown result type (might be due to invalid IL or missing references) //IL_8b83: Unknown result type (might be due to invalid IL or missing references) //IL_8ba3: Unknown result type (might be due to invalid IL or missing references) //IL_8bc3: Unknown result type (might be due to invalid IL or missing references) //IL_8bed: Unknown result type (might be due to invalid IL or missing references) //IL_8c17: Unknown result type (might be due to invalid IL or missing references) //IL_8c41: Unknown result type (might be due to invalid IL or missing references) //IL_8ce3: Unknown result type (might be due to invalid IL or missing references) //IL_8d7e: Unknown result type (might be due to invalid IL or missing references) //IL_8e07: Unknown result type (might be due to invalid IL or missing references) //IL_8e12: Unknown result type (might be due to invalid IL or missing references) //IL_8e1d: Unknown result type (might be due to invalid IL or missing references) //IL_8e28: Unknown result type (might be due to invalid IL or missing references) //IL_8e33: Unknown result type (might be due to invalid IL or missing references) //IL_8e3d: Unknown result type (might be due to invalid IL or missing references) //IL_8e42: Unknown result type (might be due to invalid IL or missing references) //IL_8e52: Expected O, but got Unknown //IL_8eba: Unknown result type (might be due to invalid IL or missing references) //IL_8ec4: Expected O, but got Unknown //IL_8ec7: Unknown result type (might be due to invalid IL or missing references) //IL_8ed1: Expected O, but got Unknown //IL_8edc: Unknown result type (might be due to invalid IL or missing references) //IL_8f4d: Unknown result type (might be due to invalid IL or missing references) //IL_8f52: Unknown result type (might be due to invalid IL or missing references) //IL_8f67: Unknown result type (might be due to invalid IL or missing references) //IL_8f6c: Unknown result type (might be due to invalid IL or missing references) //IL_8f73: Unknown result type (might be due to invalid IL or missing references) //IL_8f7f: Expected O, but got Unknown //IL_8fdb: Unknown result type (might be due to invalid IL or missing references) //IL_8fe0: Unknown result type (might be due to invalid IL or missing references) //IL_9017: Unknown result type (might be due to invalid IL or missing references) //IL_9037: Unknown result type (might be due to invalid IL or missing references) //IL_904d: Unknown result type (might be due to invalid IL or missing references) //IL_90dd: Unknown result type (might be due to invalid IL or missing references) //IL_90e8: Unknown result type (might be due to invalid IL or missing references) //IL_90f3: Unknown result type (might be due to invalid IL or missing references) //IL_90fe: Unknown result type (might be due to invalid IL or missing references) //IL_9109: Unknown result type (might be due to invalid IL or missing references) //IL_9113: Unknown result type (might be due to invalid IL or missing references) //IL_9118: Unknown result type (might be due to invalid IL or missing references) //IL_9128: Expected O, but got Unknown //IL_9171: Unknown result type (might be due to invalid IL or missing references) //IL_917b: Expected O, but got Unknown //IL_917e: Unknown result type (might be due to invalid IL or missing references) //IL_9188: Expected O, but got Unknown //IL_9193: Unknown result type (might be due to invalid IL or missing references) //IL_9204: Unknown result type (might be due to invalid IL or missing references) //IL_9209: Unknown result type (might be due to invalid IL or missing references) //IL_921e: Unknown result type (might be due to invalid IL or missing references) //IL_9223: Unknown result type (might be due to invalid IL or missing references) //IL_922a: Unknown result type (might be due to invalid IL or missing references) //IL_9236: Expected O, but got Unknown //IL_9294: Unknown result type (might be due to invalid IL or missing references) //IL_9299: Unknown result type (might be due to invalid IL or missing references) //IL_92d9: Unknown result type (might be due to invalid IL or missing references) //IL_92f9: Unknown result type (might be due to invalid IL or missing references) //IL_9319: Unknown result type (might be due to invalid IL or missing references) //IL_9339: Unknown result type (might be due to invalid IL or missing references) //IL_93cb: Unknown result type (might be due to invalid IL or missing references) //IL_93d6: Unknown result type (might be due to invalid IL or missing references) //IL_93e1: Unknown result type (might be due to invalid IL or missing references) //IL_93ec: Unknown result type (might be due to invalid IL or missing references) //IL_93f7: Unknown result type (might be due to invalid IL or missing references) //IL_9401: Unknown result type (might be due to invalid IL or missing references) //IL_9406: Unknown result type (might be due to invalid IL or missing references) //IL_9416: Expected O, but got Unknown //IL_9468: Unknown result type (might be due to invalid IL or missing references) //IL_94d9: Unknown result type (might be due to invalid IL or missing references) //IL_94de: Unknown result type (might be due to invalid IL or missing references) //IL_94f3: Unknown result type (might be due to invalid IL or missing references) //IL_94f8: Unknown result type (might be due to invalid IL or missing references) //IL_94ff: Unknown result type (might be due to invalid IL or missing references) //IL_950b: Expected O, but got Unknown //IL_9567: Unknown result type (might be due to invalid IL or missing references) //IL_956c: Unknown result type (might be due to invalid IL or missing references) //IL_9597: Unknown result type (might be due to invalid IL or missing references) //IL_95e5: Unknown result type (might be due to invalid IL or missing references) //IL_9694: Unknown result type (might be due to invalid IL or missing references) //IL_969f: Unknown result type (might be due to invalid IL or missing references) //IL_96aa: Unknown result type (might be due to invalid IL or missing references) //IL_96b5: Unknown result type (might be due to invalid IL or missing references) //IL_96c0: Unknown result type (might be due to invalid IL or missing references) //IL_96ca: Unknown result type (might be due to invalid IL or missing references) //IL_96cf: Unknown result type (might be due to invalid IL or missing references) //IL_96df: Expected O, but got Unknown //IL_9728: Unknown result type (might be due to invalid IL or missing references) //IL_9732: Expected O, but got Unknown //IL_9735: Unknown result type (might be due to invalid IL or missing references) //IL_973f: Expected O, but got Unknown //IL_974a: Unknown result type (might be due to invalid IL or missing references) //IL_97bb: Unknown result type (might be due to invalid IL or missing references) //IL_97c0: Unknown result type (might be due to invalid IL or missing references) //IL_97d5: Unknown result type (might be due to invalid IL or missing references) //IL_97da: Unknown result type (might be due to invalid IL or missing references) //IL_97e1: Unknown result type (might be due to invalid IL or missing references) //IL_97ed: Expected O, but got Unknown //IL_984b: Unknown result type (might be due to invalid IL or missing references) //IL_9850: Unknown result type (might be due to invalid IL or missing references) //IL_989b: Unknown result type (might be due to invalid IL or missing references) //IL_98bb: Unknown result type (might be due to invalid IL or missing references) //IL_98db: Unknown result type (might be due to invalid IL or missing references) //IL_996d: Unknown result type (might be due to invalid IL or missing references) //IL_9978: Unknown result type (might be due to invalid IL or missing references) //IL_9983: Unknown result type (might be due to invalid IL or missing references) //IL_998e: Unknown result type (might be due to invalid IL or missing references) //IL_9999: Unknown result type (might be due to invalid IL or missing references) //IL_99a3: Unknown result type (might be due to invalid IL or missing references) //IL_99a8: Unknown result type (might be due to invalid IL or missing references) //IL_99b8: Expected O, but got Unknown //IL_9a01: Unknown result type (might be due to invalid IL or missing references) //IL_9a0b: Expected O, but got Unknown //IL_9a0e: Unknown result type (might be due to invalid IL or missing references) //IL_9a18: Expected O, but got Unknown //IL_9a23: Unknown result type (might be due to invalid IL or missing references) //IL_9a94: Unknown result type (might be due to invalid IL or missing references) //IL_9a99: Unknown result type (might be due to invalid IL or missing references) //IL_9aae: Unknown result type (might be due to invalid IL or missing references) //IL_9ab3: Unknown result type (might be due to invalid IL or missing references) //IL_9aba: Unknown result type (might be due to invalid IL or missing references) //IL_9ac6: Expected O, but got Unknown //IL_9b23: Unknown result type (might be due to invalid IL or missing references) //IL_9b28: Unknown result type (might be due to invalid IL or missing references) //IL_9b53: Unknown result type (might be due to invalid IL or missing references) //IL_9b5a: Expected O, but got Unknown //IL_9b65: Unknown result type (might be due to invalid IL or missing references) //IL_9b6a: Unknown result type (might be due to invalid IL or missing references) //IL_9b75: Unknown result type (might be due to invalid IL or missing references) //IL_9b80: Unknown result type (might be due to invalid IL or missing references) //IL_9b85: Unknown result type (might be due to invalid IL or missing references) //IL_9b8a: Unknown result type (might be due to invalid IL or missing references) //IL_9b91: Unknown result type (might be due to invalid IL or missing references) //IL_9b98: Unknown result type (might be due to invalid IL or missing references) //IL_9b9f: Unknown result type (might be due to invalid IL or missing references) //IL_9bab: Unknown result type (might be due to invalid IL or missing references) //IL_9bb7: Unknown result type (might be due to invalid IL or missing references) //IL_9bc3: Unknown result type (might be due to invalid IL or missing references) //IL_9bcf: Expected O, but got Unknown //IL_9bd1: Unknown result type (might be due to invalid IL or missing references) //IL_9bd6: Unknown result type (might be due to invalid IL or missing references) //IL_9be1: Unknown result type (might be due to invalid IL or missing references) //IL_9bec: Unknown result type (might be due to invalid IL or missing references) //IL_9bf1: Unknown result type (might be due to invalid IL or missing references) //IL_9bf6: Unknown result type (might be due to invalid IL or missing references) //IL_9bfd: Unknown result type (might be due to invalid IL or missing references) //IL_9c04: Unknown result type (might be due to invalid IL or missing references) //IL_9c0b: Unknown result type (might be due to invalid IL or missing references) //IL_9c17: Unknown result type (might be due to invalid IL or missing references) //IL_9c23: Unknown result type (might be due to invalid IL or missing references) //IL_9c2f: Unknown result type (might be due to invalid IL or missing references) //IL_9c3b: Expected O, but got Unknown //IL_9c3d: Unknown result type (might be due to invalid IL or missing references) //IL_9c42: Unknown result type (might be due to invalid IL or missing references) //IL_9c4d: Unknown result type (might be due to invalid IL or missing references) //IL_9c58: Unknown result type (might be due to invalid IL or missing references) //IL_9c5d: Unknown result type (might be due to invalid IL or missing references) //IL_9c62: Unknown result type (might be due to invalid IL or missing references) //IL_9c69: Unknown result type (might be due to invalid IL or missing references) //IL_9c70: Unknown result type (might be due to invalid IL or missing references) //IL_9c77: Unknown result type (might be due to invalid IL or missing references) //IL_9c83: Unknown result type (might be due to invalid IL or missing references) //IL_9c8f: Unknown result type (might be due to invalid IL or missing references) //IL_9c9b: Unknown result type (might be due to invalid IL or missing references) //IL_9ca7: Expected O, but got Unknown //IL_9cc0: Unknown result type (might be due to invalid IL or missing references) //IL_9cd5: Unknown result type (might be due to invalid IL or missing references) //IL_9cea: Unknown result type (might be due to invalid IL or missing references) //IL_9d28: Unknown result type (might be due to invalid IL or missing references) //IL_9d5e: Unknown result type (might be due to invalid IL or missing references) //IL_9d7e: Unknown result type (might be due to invalid IL or missing references) //IL_9d9e: Unknown result type (might be due to invalid IL or missing references) //IL_9dbe: Unknown result type (might be due to invalid IL or missing references) //IL_9dde: Unknown result type (might be due to invalid IL or missing references) //IL_9e08: Unknown result type (might be due to invalid IL or missing references) //IL_9e32: Unknown result type (might be due to invalid IL or missing references) //IL_9e7e: Unknown result type (might be due to invalid IL or missing references) //IL_9eca: Unknown result type (might be due to invalid IL or missing references) //IL_9ef4: Unknown result type (might be due to invalid IL or missing references) //IL_9f1e: Unknown result type (might be due to invalid IL or missing references) //IL_9fb0: Unknown result type (might be due to invalid IL or missing references) //IL_9fbb: Unknown result type (might be due to invalid IL or missing references) //IL_9fc6: Unknown result type (might be due to invalid IL or missing references) //IL_9fd1: Unknown result type (might be due to invalid IL or missing references) //IL_9fdc: Unknown result type (might be due to invalid IL or missing references) //IL_9fe6: Unknown result type (might be due to invalid IL or missing references) //IL_9feb: Unknown result type (might be due to invalid IL or missing references) //IL_9ffb: Expected O, but got Unknown //IL_a044: Unknown result type (might be due to invalid IL or missing references) //IL_a04e: Expected O, but got Unknown //IL_a051: Unknown result type (might be due to invalid IL or missing references) //IL_a05b: Expected O, but got Unknown //IL_a066: Unknown result type (might be due to invalid IL or missing references) //IL_a0d7: Unknown result type (might be due to invalid IL or missing references) //IL_a0dc: Unknown result type (might be due to invalid IL or missing references) //IL_a0f1: Unknown result type (might be due to invalid IL or missing references) //IL_a0f6: Unknown result type (might be due to invalid IL or missing references) //IL_a0fd: Unknown result type (might be due to invalid IL or missing references) //IL_a109: Expected O, but got Unknown //IL_a167: Unknown result type (might be due to invalid IL or missing references) //IL_a16c: Unknown result type (might be due to invalid IL or missing references) //IL_a197: Unknown result type (might be due to invalid IL or missing references) //IL_a19e: Expected O, but got Unknown //IL_a1a9: Unknown result type (might be due to invalid IL or missing references) //IL_a1ae: Unknown result type (might be due to invalid IL or missing references) //IL_a1b9: Unknown result type (might be due to invalid IL or missing references) //IL_a1c4: Unknown result type (might be due to invalid IL or missing references) //IL_a1c9: Unknown result type (might be due to invalid IL or missing references) //IL_a1ce: Unknown result type (might be due to invalid IL or missing references) //IL_a1d5: Unknown result type (might be due to invalid IL or missing references) //IL_a1dc: Unknown result type (might be due to invalid IL or missing references) //IL_a1e3: Unknown result type (might be due to invalid IL or missing references) //IL_a1ef: Unknown result type (might be due to invalid IL or missing references) //IL_a1fb: Unknown result type (might be due to invalid IL or missing references) //IL_a207: Unknown result type (might be due to invalid IL or missing references) //IL_a213: Expected O, but got Unknown //IL_a215: Unknown result type (might be due to invalid IL or missing references) //IL_a21a: Unknown result type (might be due to invalid IL or missing references) //IL_a225: Unknown result type (might be due to invalid IL or missing references) //IL_a230: Unknown result type (might be due to invalid IL or missing references) //IL_a235: Unknown result type (might be due to invalid IL or missing references) //IL_a23a: Unknown result type (might be due to invalid IL or missing references) //IL_a241: Unknown result type (might be due to invalid IL or missing references) //IL_a248: Unknown result type (might be due to invalid IL or missing references) //IL_a24f: Unknown result type (might be due to invalid IL or missing references) //IL_a25b: Unknown result type (might be due to invalid IL or missing references) //IL_a267: Unknown result type (might be due to invalid IL or missing references) //IL_a273: Unknown result type (might be due to invalid IL or missing references) //IL_a27f: Expected O, but got Unknown //IL_a281: Unknown result type (might be due to invalid IL or missing references) //IL_a286: Unknown result type (might be due to invalid IL or missing references) //IL_a291: Unknown result type (might be due to invalid IL or missing references) //IL_a29c: Unknown result type (might be due to invalid IL or missing references) //IL_a2a1: Unknown result type (might be due to invalid IL or missing references) //IL_a2a6: Unknown result type (might be due to invalid IL or missing references) //IL_a2ad: Unknown result type (might be due to invalid IL or missing references) //IL_a2b4: Unknown result type (might be due to invalid IL or missing references) //IL_a2bb: Unknown result type (might be due to invalid IL or missing references) //IL_a2c7: Unknown result type (might be due to invalid IL or missing references) //IL_a2d3: Unknown result type (might be due to invalid IL or missing references) //IL_a2df: Unknown result type (might be due to invalid IL or missing references) //IL_a2eb: Expected O, but got Unknown //IL_a2ed: Unknown result type (might be due to invalid IL or missing references) //IL_a2f2: Unknown result type (might be due to invalid IL or missing references) //IL_a2fd: Unknown result type (might be due to invalid IL or missing references) //IL_a308: Unknown result type (might be due to invalid IL or missing references) //IL_a30d: Unknown result type (might be due to invalid IL or missing references) //IL_a312: Unknown result type (might be due to invalid IL or missing references) //IL_a319: Unknown result type (might be due to invalid IL or missing references) //IL_a320: Unknown result type (might be due to invalid IL or missing references) //IL_a327: Unknown result type (might be due to invalid IL or missing references) //IL_a333: Unknown result type (might be due to invalid IL or missing references) //IL_a33f: Unknown result type (might be due to invalid IL or missing references) //IL_a34b: Unknown result type (might be due to invalid IL or missing references) //IL_a357: Expected O, but got Unknown //IL_a370: Unknown result type (might be due to invalid IL or missing references) //IL_a385: Unknown result type (might be due to invalid IL or missing references) //IL_a39a: Unknown result type (might be due to invalid IL or missing references) //IL_a3af: Unknown result type (might be due to invalid IL or missing references) //IL_a3ed: Unknown result type (might be due to invalid IL or missing references) //IL_a423: Unknown result type (might be due to invalid IL or missing references) //IL_a443: Unknown result type (might be due to invalid IL or missing references) //IL_a463: Unknown result type (might be due to invalid IL or missing references) //IL_a483: Unknown result type (might be due to invalid IL or missing references) //IL_a4a3: Unknown result type (might be due to invalid IL or missing references) //IL_a4c3: Unknown result type (might be due to invalid IL or missing references) //IL_a4e3: Unknown result type (might be due to invalid IL or missing references) //IL_a512: Unknown result type (might be due to invalid IL or missing references) //IL_a53c: Unknown result type (might be due to invalid IL or missing references) //IL_a566: Unknown result type (might be due to invalid IL or missing references) //IL_a590: Unknown result type (might be due to invalid IL or missing references) //IL_a622: Unknown result type (might be due to invalid IL or missing references) //IL_a62d: Unknown result type (might be due to invalid IL or missing references) //IL_a638: Unknown result type (might be due to invalid IL or missing references) //IL_a643: Unknown result type (might be due to invalid IL or missing references) //IL_a64e: Unknown result type (might be due to invalid IL or missing references) //IL_a658: Unknown result type (might be due to invalid IL or missing references) //IL_a65d: Unknown result type (might be due to invalid IL or missing references) //IL_a66d: Expected O, but got Unknown //IL_a6b6: Unknown result type (might be due to invalid IL or missing references) //IL_a6c0: Expected O, but got Unknown //IL_a6c3: Unknown result type (might be due to invalid IL or missing references) //IL_a6cd: Expected O, but got Unknown //IL_a6d8: Unknown result type (might be due to invalid IL or missing references) //IL_a749: Unknown result type (might be due to invalid IL or missing references) //IL_a74e: Unknown result type (might be due to invalid IL or missing references) //IL_a763: Unknown result type (might be due to invalid IL or missing references) //IL_a768: Unknown result type (might be due to invalid IL or missing references) //IL_a76f: Unknown result type (might be due to invalid IL or missing references) //IL_a77b: Expected O, but got Unknown //IL_a7d9: Unknown result type (might be due to invalid IL or missing references) //IL_a7de: Unknown result type (might be due to invalid IL or missing references) //IL_a809: Unknown result type (might be due to invalid IL or missing references) //IL_a810: Expected O, but got Unknown //IL_a81b: Unknown result type (might be due to invalid IL or missing references) //IL_a820: Unknown result type (might be due to invalid IL or missing references) //IL_a82b: Unknown result type (might be due to invalid IL or missing references) //IL_a836: Unknown result type (might be due to invalid IL or missing references) //IL_a83b: Unknown result type (might be due to invalid IL or missing references) //IL_a840: Unknown result type (might be due to invalid IL or missing references) //IL_a847: Unknown result type (might be due to invalid IL or missing references) //IL_a84e: Unknown result type (might be due to invalid IL or missing references) //IL_a855: Unknown result type (might be due to invalid IL or missing references) //IL_a861: Unknown result type (might be due to invalid IL or missing references) //IL_a86d: Unknown result type (might be due to invalid IL or missing references) //IL_a879: Unknown result type (might be due to invalid IL or missing references) //IL_a885: Expected O, but got Unknown //IL_a887: Unknown result type (might be due to invalid IL or missing references) //IL_a88c: Unknown result type (might be due to invalid IL or missing references) //IL_a897: Unknown result type (might be due to invalid IL or missing references) //IL_a8a2: Unknown result type (might be due to invalid IL or missing references) //IL_a8a7: Unknown result type (might be due to invalid IL or missing references) //IL_a8ac: Unknown result type (might be due to invalid IL or missing references) //IL_a8b3: Unknown result type (might be due to invalid IL or missing references) //IL_a8ba: Unknown result type (might be due to invalid IL or missing references) //IL_a8c1: Unknown result type (might be due to invalid IL or missing references) //IL_a8cd: Unknown result type (might be due to invalid IL or missing references) //IL_a8d9: Unknown result type (might be due to invalid IL or missing references) //IL_a8e5: Unknown result type (might be due to invalid IL or missing references) //IL_a8f1: Expected O, but got Unknown //IL_a90a: Unknown result type (might be due to invalid IL or missing references) //IL_a91f: Unknown result type (might be due to invalid IL or missing references) //IL_a95d: Unknown result type (might be due to invalid IL or missing references) //IL_a97f: Unknown result type (might be due to invalid IL or missing references) //IL_a986: Expected O, but got Unknown //IL_a991: Unknown result type (might be due to invalid IL or missing references) //IL_a996: Unknown result type (might be due to invalid IL or missing references) //IL_a9a1: Unknown result type (might be due to invalid IL or missing references) //IL_a9ac: Unknown result type (might be due to invalid IL or missing references) //IL_a9b1: Unknown result type (might be due to invalid IL or missing references) //IL_a9b6: Unknown result type (might be due to invalid IL or missing references) //IL_a9bd: Unknown result type (might be due to invalid IL or missing references) //IL_a9c4: Unknown result type (might be due to invalid IL or missing references) //IL_a9cb: Unknown result type (might be due to invalid IL or missing references) //IL_a9d7: Unknown result type (might be due to invalid IL or missing references) //IL_a9e3: Unknown result type (might be due to invalid IL or missing references) //IL_a9ef: Unknown result type (might be due to invalid IL or missing references) //IL_a9fb: Expected O, but got Unknown //IL_a9fd: Unknown result type (might be due to invalid IL or missing references) //IL_aa02: Unknown result type (might be due to invalid IL or missing references) //IL_aa0d: Unknown result type (might be due to invalid IL or missing references) //IL_aa18: Unknown result type (might be due to invalid IL or missing references) //IL_aa1d: Unknown result type (might be due to invalid IL or missing references) //IL_aa22: Unknown result type (might be due to invalid IL or missing references) //IL_aa29: Unknown result type (might be due to invalid IL or missing references) //IL_aa30: Unknown result type (might be due to invalid IL or missing references) //IL_aa37: Unknown result type (might be due to invalid IL or missing references) //IL_aa43: Unknown result type (might be due to invalid IL or missing references) //IL_aa4f: Unknown result type (might be due to invalid IL or missing references) //IL_aa5b: Unknown result type (might be due to invalid IL or missing references) //IL_aa67: Expected O, but got Unknown //IL_aa80: Unknown result type (might be due to invalid IL or missing references) //IL_aa95: Unknown result type (might be due to invalid IL or missing references) //IL_aad3: Unknown result type (might be due to invalid IL or missing references) //IL_ab09: Unknown result type (might be due to invalid IL or missing references) //IL_ab29: Unknown result type (might be due to invalid IL or missing references) //IL_ab49: Unknown result type (might be due to invalid IL or missing references) //IL_ab69: Unknown result type (might be due to invalid IL or missing references) //IL_ab89: Unknown result type (might be due to invalid IL or missing references) //IL_aba9: Unknown result type (might be due to invalid IL or missing references) //IL_abd3: Unknown result type (might be due to invalid IL or missing references) //IL_abfd: Unknown result type (might be due to invalid IL or missing references) //IL_ac27: Unknown result type (might be due to invalid IL or missing references) //IL_ac51: Unknown result type (might be due to invalid IL or missing references) //IL_ac7b: Unknown result type (might be due to invalid IL or missing references) //IL_ad0d: Unknown result type (might be due to invalid IL or missing references) //IL_ad18: Unknown result type (might be due to invalid IL or missing references) //IL_ad23: Unknown result type (might be due to invalid IL or missing references) //IL_ad2e: Unknown result type (might be due to invalid IL or missing references) //IL_ad39: Unknown result type (might be due to invalid IL or missing references) //IL_ad43: Unknown result type (might be due to invalid IL or missing references) //IL_ad48: Unknown result type (might be due to invalid IL or missing references) //IL_ad58: Expected O, but got Unknown //IL_ada1: Unknown result type (might be due to invalid IL or missing references) //IL_adab: Expected O, but got Unknown //IL_adae: Unknown result type (might be due to invalid IL or missing references) //IL_adb8: Expected O, but got Unknown //IL_adc3: Unknown result type (might be due to invalid IL or missing references) //IL_ae34: Unknown result type (might be due to invalid IL or missing references) //IL_ae39: Unknown result type (might be due to invalid IL or missing references) //IL_ae4e: Unknown result type (might be due to invalid IL or missing references) //IL_ae53: Unknown result type (might be due to invalid IL or missing references) //IL_ae5a: Unknown result type (might be due to invalid IL or missing references) //IL_ae66: Expected O, but got Unknown //IL_aec4: Unknown result type (might be due to invalid IL or missing references) //IL_aec9: Unknown result type (might be due to invalid IL or missing references) //IL_af05: Unknown result type (might be due to invalid IL or missing references) //IL_af25: Unknown result type (might be due to invalid IL or missing references) //IL_af45: Unknown result type (might be due to invalid IL or missing references) //IL_af65: Unknown result type (might be due to invalid IL or missing references) //IL_af85: Unknown result type (might be due to invalid IL or missing references) //IL_afaf: Unknown result type (might be due to invalid IL or missing references) //IL_afd9: Unknown result type (might be due to invalid IL or missing references) //IL_b003: Unknown result type (might be due to invalid IL or missing references) //IL_b02d: Unknown result type (might be due to invalid IL or missing references) //IL_b079: Unknown result type (might be due to invalid IL or missing references) //IL_b0c5: Unknown result type (might be due to invalid IL or missing references) //IL_b111: Unknown result type (might be due to invalid IL or missing references) //IL_b15d: Unknown result type (might be due to invalid IL or missing references) //IL_b1a9: Unknown result type (might be due to invalid IL or missing references) //IL_b1f5: Unknown result type (might be due to invalid IL or missing references) //IL_b241: Unknown result type (might be due to invalid IL or missing references) //IL_b28d: Unknown result type (might be due to invalid IL or missing references) //IL_b2b7: Unknown result type (might be due to invalid IL or missing references) //IL_b349: Unknown result type (might be due to invalid IL or missing references) //IL_b354: Unknown result type (might be due to invalid IL or missing references) //IL_b35f: Unknown result type (might be due to invalid IL or missing references) //IL_b36a: Unknown result type (might be due to invalid IL or missing references) //IL_b375: Unknown result type (might be due to invalid IL or missing references) //IL_b37f: Unknown result type (might be due to invalid IL or missing references) //IL_b384: Unknown result type (might be due to invalid IL or missing references) //IL_b394: Expected O, but got Unknown //IL_b3dd: Unknown result type (might be due to invalid IL or missing references) //IL_b3e7: Expected O, but got Unknown //IL_b3ea: Unknown result type (might be due to invalid IL or missing references) //IL_b3f4: Expected O, but got Unknown //IL_b3ff: Unknown result type (might be due to invalid IL or missing references) //IL_b470: Unknown result type (might be due to invalid IL or missing references) //IL_b475: Unknown result type (might be due to invalid IL or missing references) //IL_b48a: Unknown result type (might be due to invalid IL or missing references) //IL_b48f: Unknown result type (might be due to invalid IL or missing references) //IL_b496: Unknown result type (might be due to invalid IL or missing references) //IL_b4a2: Expected O, but got Unknown //IL_b4ff: Unknown result type (might be due to invalid IL or missing references) //IL_b504: Unknown result type (might be due to invalid IL or missing references) //IL_b52f: Unknown result type (might be due to invalid IL or missing references) //IL_b536: Expected O, but got Unknown //IL_b541: Unknown result type (might be due to invalid IL or missing references) //IL_b546: Unknown result type (might be due to invalid IL or missing references) //IL_b551: Unknown result type (might be due to invalid IL or missing references) //IL_b55c: Unknown result type (might be due to invalid IL or missing references) //IL_b561: Unknown result type (might be due to invalid IL or missing references) //IL_b566: Unknown result type (might be due to invalid IL or missing references) //IL_b56d: Unknown result type (might be due to invalid IL or missing references) //IL_b574: Unknown result type (might be due to invalid IL or missing references) //IL_b57b: Unknown result type (might be due to invalid IL or missing references) //IL_b587: Unknown result type (might be due to invalid IL or missing references) //IL_b593: Unknown result type (might be due to invalid IL or missing references) //IL_b59f: Unknown result type (might be due to invalid IL or missing references) //IL_b5ab: Expected O, but got Unknown //IL_b5ad: Unknown result type (might be due to invalid IL or missing references) //IL_b5b2: Unknown result type (might be due to invalid IL or missing references) //IL_b5bd: Unknown result type (might be due to invalid IL or missing references) //IL_b5c8: Unknown result type (might be due to invalid IL or missing references) //IL_b5cd: Unknown result type (might be due to invalid IL or missing references) //IL_b5d2: Unknown result type (might be due to invalid IL or missing references) //IL_b5d9: Unknown result type (might be due to invalid IL or missing references) //IL_b5e0: Unknown result type (might be due to invalid IL or missing references) //IL_b5e7: Unknown result type (might be due to invalid IL or missing references) //IL_b5f3: Unknown result type (might be due to invalid IL or missing references) //IL_b5ff: Unknown result type (might be due to invalid IL or missing references) //IL_b60b: Unknown result type (might be due to invalid IL or missing references) //IL_b617: Expected O, but got Unknown //IL_b630: Unknown result type (might be due to invalid IL or missing references) //IL_b645: Unknown result type (might be due to invalid IL or missing references) //IL_b684: Unknown result type (might be due to invalid IL or missing references) //IL_b6ba: Unknown result type (might be due to invalid IL or missing references) //IL_b6da: Unknown result type (might be due to invalid IL or missing references) //IL_b6fa: Unknown result type (might be due to invalid IL or missing references) //IL_b724: Unknown result type (might be due to invalid IL or missing references) //IL_b74e: Unknown result type (might be due to invalid IL or missing references) //IL_b7e0: Unknown result type (might be due to invalid IL or missing references) //IL_b7eb: Unknown result type (might be due to invalid IL or missing references) //IL_b7f6: Unknown result type (might be due to invalid IL or missing references) //IL_b801: Unknown result type (might be due to invalid IL or missing references) //IL_b80c: Unknown result type (might be due to invalid IL or missing references) //IL_b816: Unknown result type (might be due to invalid IL or missing references) //IL_b81b: Unknown result type (might be due to invalid IL or missing references) //IL_b82b: Expected O, but got Unknown //IL_b874: Unknown result type (might be due to invalid IL or missing references) //IL_b87e: Expected O, but got Unknown //IL_b881: Unknown result type (might be due to invalid IL or missing references) //IL_b88b: Expected O, but got Unknown //IL_b896: Unknown result type (might be due to invalid IL or missing references) //IL_b907: Unknown result type (might be due to invalid IL or missing references) //IL_b90c: Unknown result type (might be due to invalid IL or missing references) //IL_b921: Unknown result type (might be due to invalid IL or missing references) //IL_b926: Unknown result type (might be due to invalid IL or missing references) //IL_b92d: Unknown result type (might be due to invalid IL or missing references) //IL_b939: Expected O, but got Unknown //IL_b996: Unknown result type (might be due to invalid IL or missing references) //IL_b99b: Unknown result type (might be due to invalid IL or missing references) //IL_b9d7: Unknown result type (might be due to invalid IL or missing references) //IL_b9f7: Unknown result type (might be due to invalid IL or missing references) //IL_ba17: Unknown result type (might be due to invalid IL or missing references) //IL_ba37: Unknown result type (might be due to invalid IL or missing references) //IL_ba57: Unknown result type (might be due to invalid IL or missing references) //IL_ba81: Unknown result type (might be due to invalid IL or missing references) //IL_baab: Unknown result type (might be due to invalid IL or missing references) //IL_bad5: Unknown result type (might be due to invalid IL or missing references) //IL_baff: Unknown result type (might be due to invalid IL or missing references) //IL_bb91: Unknown result type (might be due to invalid IL or missing references) //IL_bb9c: Unknown result type (might be due to invalid IL or missing references) //IL_bba7: Unknown result type (might be due to invalid IL or missing references) //IL_bbb2: Unknown result type (might be due to invalid IL or missing references) //IL_bbbd: Unknown result type (might be due to invalid IL or missing references) //IL_bbc7: Unknown result type (might be due to invalid IL or missing references) //IL_bbcc: Unknown result type (might be due to invalid IL or missing references) //IL_bbdc: Expected O, but got Unknown //IL_bc25: Unknown result type (might be due to invalid IL or missing references) //IL_bc2f: Expected O, but got Unknown //IL_bc32: Unknown result type (might be due to invalid IL or missing references) //IL_bc3c: Expected O, but got Unknown //IL_bc47: Unknown result type (might be due to invalid IL or missing references) //IL_bcb8: Unknown result type (might be due to invalid IL or missing references) //IL_bcbd: Unknown result type (might be due to invalid IL or missing references) //IL_bcd2: Unknown result type (might be due to invalid IL or missing references) //IL_bcd7: Unknown result type (might be due to invalid IL or missing references) //IL_bcde: Unknown result type (might be due to invalid IL or missing references) //IL_bcea: Expected O, but got Unknown //IL_bd46: Unknown result type (might be due to invalid IL or missing references) //IL_bd4b: Unknown result type (might be due to invalid IL or missing references) //IL_bd76: Unknown result type (might be due to invalid IL or missing references) //IL_bd7d: Expected O, but got Unknown //IL_bd88: Unknown result type (might be due to invalid IL or missing references) //IL_bd8d: Unknown result type (might be due to invalid IL or missing references) //IL_bd98: Unknown result type (might be due to invalid IL or missing references) //IL_bda3: Unknown result type (might be due to invalid IL or missing references) //IL_bda8: Unknown result type (might be due to invalid IL or missing references) //IL_bdad: Unknown result type (might be due to invalid IL or missing references) //IL_bdb4: Unknown result type (might be due to invalid IL or missing references) //IL_bdbb: Unknown result type (might be due to invalid IL or missing references) //IL_bdc2: Unknown result type (might be due to invalid IL or missing references) //IL_bdce: Unknown result type (might be due to invalid IL or missing references) //IL_bdda: Unknown result type (might be due to invalid IL or missing references) //IL_bde6: Unknown result type (might be due to invalid IL or missing references) //IL_bdf2: Expected O, but got Unknown //IL_bdf4: Unknown result type (might be due to invalid IL or missing references) //IL_bdf9: Unknown result type (might be due to invalid IL or missing references) //IL_be04: Unknown result type (might be due to invalid IL or missing references) //IL_be0f: Unknown result type (might be due to invalid IL or missing references) //IL_be14: Unknown result type (might be due to invalid IL or missing references) //IL_be19: Unknown result type (might be due to invalid IL or missing references) //IL_be20: Unknown result type (might be due to invalid IL or missing references) //IL_be27: Unknown result type (might be due to invalid IL or missing references) //IL_be2e: Unknown result type (might be due to invalid IL or missing references) //IL_be3a: Unknown result type (might be due to invalid IL or missing references) //IL_be46: Unknown result type (might be due to invalid IL or missing references) //IL_be52: Unknown result type (might be due to invalid IL or missing references) //IL_be5e: Expected O, but got Unknown //IL_be60: Unknown result type (might be due to invalid IL or missing references) //IL_be65: Unknown result type (might be due to invalid IL or missing references) //IL_be70: Unknown result type (might be due to invalid IL or missing references) //IL_be7b: Unknown result type (might be due to invalid IL or missing references) //IL_be80: Unknown result type (might be due to invalid IL or missing references) //IL_be85: Unknown result type (might be due to invalid IL or missing references) //IL_be8c: Unknown result type (might be due to invalid IL or missing references) //IL_be93: Unknown result type (might be due to invalid IL or missing references) //IL_be9a: Unknown result type (might be due to invalid IL or missing references) //IL_bea6: Unknown result type (might be due to invalid IL or missing references) //IL_beb2: Unknown result type (might be due to invalid IL or missing references) //IL_bebe: Unknown result type (might be due to invalid IL or missing references) //IL_beca: Expected O, but got Unknown //IL_bee3: Unknown result type (might be due to invalid IL or missing references) //IL_bef8: Unknown result type (might be due to invalid IL or missing references) //IL_bf0d: Unknown result type (might be due to invalid IL or missing references) //IL_bf4b: Unknown result type (might be due to invalid IL or missing references) //IL_bf81: Unknown result type (might be due to invalid IL or missing references) //IL_bfa1: Unknown result type (might be due to invalid IL or missing references) //IL_bfc1: Unknown result type (might be due to invalid IL or missing references) //IL_bfe1: Unknown result type (might be due to invalid IL or missing references) //IL_c00b: Unknown result type (might be due to invalid IL or missing references) //IL_c035: Unknown result type (might be due to invalid IL or missing references) //IL_c05f: Unknown result type (might be due to invalid IL or missing references) //IL_c089: Unknown result type (might be due to invalid IL or missing references) //IL_c0b3: Unknown result type (might be due to invalid IL or missing references) //IL_c0dd: Unknown result type (might be due to invalid IL or missing references) //IL_c16f: Unknown result type (might be due to invalid IL or missing references) //IL_c17a: Unknown result type (might be due to invalid IL or missing references) //IL_c185: Unknown result type (might be due to invalid IL or missing references) //IL_c190: Unknown result type (might be due to invalid IL or missing references) //IL_c19b: Unknown result type (might be due to invalid IL or missing references) //IL_c1a5: Unknown result type (might be due to invalid IL or missing references) //IL_c1aa: Unknown result type (might be due to invalid IL or missing references) //IL_c1ba: Expected O, but got Unknown //IL_c203: Unknown result type (might be due to invalid IL or missing references) //IL_c20d: Expected O, but got Unknown //IL_c210: Unknown result type (might be due to invalid IL or missing references) //IL_c21a: Expected O, but got Unknown //IL_c225: Unknown result type (might be due to invalid IL or missing references) //IL_c296: Unknown result type (might be due to invalid IL or missing references) //IL_c29b: Unknown result type (might be due to invalid IL or missing references) //IL_c2b0: Unknown result type (might be due to invalid IL or missing references) //IL_c2b5: Unknown result type (might be due to invalid IL or missing references) //IL_c2bc: Unknown result type (might be due to invalid IL or missing references) //IL_c2c8: Expected O, but got Unknown //IL_c326: Unknown result type (might be due to invalid IL or missing references) //IL_c32b: Unknown result type (might be due to invalid IL or missing references) //IL_c356: Unknown result type (might be due to invalid IL or missing references) //IL_c35d: Expected O, but got Unknown //IL_c368: Unknown result type (might be due to invalid IL or missing references) //IL_c36d: Unknown result type (might be due to invalid IL or missing references) //IL_c378: Unknown result type (might be due to invalid IL or missing references) //IL_c383: Unknown result type (might be due to invalid IL or missing references) //IL_c388: Unknown result type (might be due to invalid IL or missing references) //IL_c38d: Unknown result type (might be due to invalid IL or missing references) //IL_c394: Unknown result type (might be due to invalid IL or missing references) //IL_c39b: Unknown result type (might be due to invalid IL or missing references) //IL_c3a2: Unknown result type (might be due to invalid IL or missing references) //IL_c3ae: Unknown result type (might be due to invalid IL or missing references) //IL_c3ba: Unknown result type (might be due to invalid IL or missing references) //IL_c3c6: Unknown result type (might be due to invalid IL or missing references) //IL_c3d2: Expected O, but got Unknown //IL_c3d4: Unknown result type (might be due to invalid IL or missing references) //IL_c3d9: Unknown result type (might be due to invalid IL or missing references) //IL_c3e4: Unknown result type (might be due to invalid IL or missing references) //IL_c3ef: Unknown result type (might be due to invalid IL or missing references) //IL_c3f4: Unknown result type (might be due to invalid IL or missing references) //IL_c3f9: Unknown result type (might be due to invalid IL or missing references) //IL_c400: Unknown result type (might be due to invalid IL or missing references) //IL_c407: Unknown result type (might be due to invalid IL or missing references) //IL_c40e: Unknown result type (might be due to invalid IL or missing references) //IL_c41a: Unknown result type (might be due to invalid IL or missing references) //IL_c426: Unknown result type (might be due to invalid IL or missing references) //IL_c432: Unknown result type (might be due to invalid IL or missing references) //IL_c43e: Expected O, but got Unknown //IL_c457: Unknown result type (might be due to invalid IL or missing references) //IL_c46c: Unknown result type (might be due to invalid IL or missing references) //IL_c4aa: Unknown result type (might be due to invalid IL or missing references) //IL_c4e0: Unknown result type (might be due to invalid IL or missing references) //IL_c500: Unknown result type (might be due to invalid IL or missing references) //IL_c520: Unknown result type (might be due to invalid IL or missing references) //IL_c540: Unknown result type (might be due to invalid IL or missing references) //IL_c560: Unknown result type (might be due to invalid IL or missing references) //IL_c580: Unknown result type (might be due to invalid IL or missing references) //IL_c5cc: Unknown result type (might be due to invalid IL or missing references) //IL_c618: Unknown result type (might be due to invalid IL or missing references) //IL_c664: Unknown result type (might be due to invalid IL or missing references) //IL_c68e: Unknown result type (might be due to invalid IL or missing references) //IL_c6b8: Unknown result type (might be due to invalid IL or missing references) //IL_c6e2: Unknown result type (might be due to invalid IL or missing references) //IL_c70c: Unknown result type (might be due to invalid IL or missing references) //IL_c79e: Unknown result type (might be due to invalid IL or missing references) //IL_c7a9: Unknown result type (might be due to invalid IL or missing references) //IL_c7b4: Unknown result type (might be due to invalid IL or missing references) //IL_c7bf: Unknown result type (might be due to invalid IL or missing references) //IL_c7ca: Unknown result type (might be due to invalid IL or missing references) //IL_c7d4: Unknown result type (might be due to invalid IL or missing references) //IL_c7d9: Unknown result type (might be due to invalid IL or missing references) //IL_c7e9: Expected O, but got Unknown //IL_c832: Unknown result type (might be due to invalid IL or missing references) //IL_c83c: Expected O, but got Unknown //IL_c83f: Unknown result type (might be due to invalid IL or missing references) //IL_c849: Expected O, but got Unknown //IL_c854: Unknown result type (might be due to invalid IL or missing references) //IL_c8c5: Unknown result type (might be due to invalid IL or missing references) //IL_c8ca: Unknown result type (might be due to invalid IL or missing references) //IL_c8df: Unknown result type (might be due to invalid IL or missing references) //IL_c8e4: Unknown result type (might be due to invalid IL or missing references) //IL_c8eb: Unknown result type (might be due to invalid IL or missing references) //IL_c8f7: Expected O, but got Unknown //IL_c955: Unknown result type (might be due to invalid IL or missing references) //IL_c95a: Unknown result type (might be due to invalid IL or missing references) //IL_c985: Unknown result type (might be due to invalid IL or missing references) //IL_c98c: Expected O, but got Unknown //IL_c997: Unknown result type (might be due to invalid IL or missing references) //IL_c99c: Unknown result type (might be due to invalid IL or missing references) //IL_c9a7: Unknown result type (might be due to invalid IL or missing references) //IL_c9b2: Unknown result type (might be due to invalid IL or missing references) //IL_c9b7: Unknown result type (might be due to invalid IL or missing references) //IL_c9bc: Unknown result type (might be due to invalid IL or missing references) //IL_c9c3: Unknown result type (might be due to invalid IL or missing references) //IL_c9ca: Unknown result type (might be due to invalid IL or missing references) //IL_c9d1: Unknown result type (might be due to invalid IL or missing references) //IL_c9dd: Unknown result type (might be due to invalid IL or missing references) //IL_c9e9: Unknown result type (might be due to invalid IL or missing references) //IL_c9f5: Unknown result type (might be due to invalid IL or missing references) //IL_ca01: Expected O, but got Unknown //IL_ca03: Unknown result type (might be due to invalid IL or missing references) //IL_ca08: Unknown result type (might be due to invalid IL or missing references) //IL_ca13: Unknown result type (might be due to invalid IL or missing references) //IL_ca1e: Unknown result type (might be due to invalid IL or missing references) //IL_ca23: Unknown result type (might be due to invalid IL or missing references) //IL_ca28: Unknown result type (might be due to invalid IL or missing references) //IL_ca2f: Unknown result type (might be due to invalid IL or missing references) //IL_ca36: Unknown result type (might be due to invalid IL or missing references) //IL_ca3d: Unknown result type (might be due to invalid IL or missing references) //IL_ca49: Unknown result type (might be due to invalid IL or missing references) //IL_ca55: Unknown result type (might be due to invalid IL or missing references) //IL_ca61: Unknown result type (might be due to invalid IL or missing references) //IL_ca6d: Expected O, but got Unknown //IL_ca6f: Unknown result type (might be due to invalid IL or missing references) //IL_ca74: Unknown result type (might be due to invalid IL or missing references) //IL_ca7f: Unknown result type (might be due to invalid IL or missing references) //IL_ca8a: Unknown result type (might be due to invalid IL or missing references) //IL_ca8f: Unknown result type (might be due to invalid IL or missing references) //IL_ca94: Unknown result type (might be due to invalid IL or missing references) //IL_ca9b: Unknown result type (might be due to invalid IL or missing references) //IL_caa2: Unknown result type (might be due to invalid IL or missing references) //IL_caa9: Unknown result type (might be due to invalid IL or missing references) //IL_cab5: Unknown result type (might be due to invalid IL or missing references) //IL_cac1: Unknown result type (might be due to invalid IL or missing references) //IL_cacd: Unknown result type (might be due to invalid IL or missing references) //IL_cad9: Expected O, but got Unknown //IL_cadb: Unknown result type (might be due to invalid IL or missing references) //IL_cae0: Unknown result type (might be due to invalid IL or missing references) //IL_caeb: Unknown result type (might be due to invalid IL or missing references) //IL_caf6: Unknown result type (might be due to invalid IL or missing references) //IL_cafb: Unknown result type (might be due to invalid IL or missing references) //IL_cb00: Unknown result type (might be due to invalid IL or missing references) //IL_cb07: Unknown result type (might be due to invalid IL or missing references) //IL_cb0e: Unknown result type (might be due to invalid IL or missing references) //IL_cb15: Unknown result type (might be due to invalid IL or missing references) //IL_cb21: Unknown result type (might be due to invalid IL or missing references) //IL_cb2d: Unknown result type (might be due to invalid IL or missing references) //IL_cb39: Unknown result type (might be due to invalid IL or missing references) //IL_cb45: Expected O, but got Unknown //IL_cb47: Unknown result type (might be due to invalid IL or missing references) //IL_cb4c: Unknown result type (might be due to invalid IL or missing references) //IL_cb57: Unknown result type (might be due to invalid IL or missing references) //IL_cb62: Unknown result type (might be due to invalid IL or missing references) //IL_cb67: Unknown result type (might be due to invalid IL or missing references) //IL_cb6c: Unknown result type (might be due to invalid IL or missing references) //IL_cb73: Unknown result type (might be due to invalid IL or missing references) //IL_cb7a: Unknown result type (might be due to invalid IL or missing references) //IL_cb81: Unknown result type (might be due to invalid IL or missing references) //IL_cb8d: Unknown result type (might be due to invalid IL or missing references) //IL_cb99: Unknown result type (might be due to invalid IL or missing references) //IL_cba5: Unknown result type (might be due to invalid IL or missing references) //IL_cbb1: Expected O, but got Unknown //IL_cbca: Unknown result type (might be due to invalid IL or missing references) //IL_cbdf: Unknown result type (might be due to invalid IL or missing references) //IL_cbf4: Unknown result type (might be due to invalid IL or missing references) //IL_cc09: Unknown result type (might be due to invalid IL or missing references) //IL_cc1e: Unknown result type (might be due to invalid IL or missing references) //IL_cc5c: Unknown result type (might be due to invalid IL or missing references) //IL_cc7e: Unknown result type (might be due to invalid IL or missing references) //IL_cc85: Expected O, but got Unknown //IL_cc90: Unknown result type (might be due to invalid IL or missing references) //IL_cc95: Unknown result type (might be due to invalid IL or missing references) //IL_cca0: Unknown result type (might be due to invalid IL or missing references) //IL_ccab: Unknown result type (might be due to invalid IL or missing references) //IL_ccb0: Unknown result type (might be due to invalid IL or missing references) //IL_ccb5: Unknown result type (might be due to invalid IL or missing references) //IL_ccbc: Unknown result type (might be due to invalid IL or missing references) //IL_ccc3: Unknown result type (might be due to invalid IL or missing references) //IL_ccca: Unknown result type (might be due to invalid IL or missing references) //IL_ccd6: Unknown result type (might be due to invalid IL or missing references) //IL_cce2: Unknown result type (might be due to invalid IL or missing references) //IL_ccee: Unknown result type (might be due to invalid IL or missing references) //IL_ccfa: Expected O, but got Unknown //IL_ccfc: Unknown result type (might be due to invalid IL or missing references) //IL_cd01: Unknown result type (might be due to invalid IL or missing references) //IL_cd0c: Unknown result type (might be due to invalid IL or missing references) //IL_cd17: Unknown result type (might be due to invalid IL or missing references) //IL_cd1c: Unknown result type (might be due to invalid IL or missing references) //IL_cd21: Unknown result type (might be due to invalid IL or missing references) //IL_cd28: Unknown result type (might be due to invalid IL or missing references) //IL_cd2f: Unknown result type (might be due to invalid IL or missing references) //IL_cd36: Unknown result type (might be due to invalid IL or missing references) //IL_cd42: Unknown result type (might be due to invalid IL or missing references) //IL_cd4e: Unknown result type (might be due to invalid IL or missing references) //IL_cd5a: Unknown result type (might be due to invalid IL or missing references) //IL_cd66: Expected O, but got Unknown //IL_cd68: Unknown result type (might be due to invalid IL or missing references) //IL_cd6d: Unknown result type (might be due to invalid IL or missing references) //IL_cd78: Unknown result type (might be due to invalid IL or missing references) //IL_cd83: Unknown result type (might be due to invalid IL or missing references) //IL_cd88: Unknown result type (might be due to invalid IL or missing references) //IL_cd8d: Unknown result type (might be due to invalid IL or missing references) //IL_cd94: Unknown result type (might be due to invalid IL or missing references) //IL_cd9b: Unknown result type (might be due to invalid IL or missing references) //IL_cda2: Unknown result type (might be due to invalid IL or missing references) //IL_cdae: Unknown result type (might be due to invalid IL or missing references) //IL_cdba: Unknown result type (might be due to invalid IL or missing references) //IL_cdc6: Unknown result type (might be due to invalid IL or missing references) //IL_cdd2: Expected O, but got Unknown //IL_cdd4: Unknown result type (might be due to invalid IL or missing references) //IL_cdd9: Unknown result type (might be due to invalid IL or missing references) //IL_cde4: Unknown result type (might be due to invalid IL or missing references) //IL_cdef: Unknown result type (might be due to invalid IL or missing references) //IL_cdf4: Unknown result type (might be due to invalid IL or missing references) //IL_cdf9: Unknown result type (might be due to invalid IL or missing references) //IL_ce00: Unknown result type (might be due to invalid IL or missing references) //IL_ce07: Unknown result type (might be due to invalid IL or missing references) //IL_ce0e: Unknown result type (might be due to invalid IL or missing references) //IL_ce1a: Unknown result type (might be due to invalid IL or missing references) //IL_ce26: Unknown result type (might be due to invalid IL or missing references) //IL_ce32: Unknown result type (might be due to invalid IL or missing references) //IL_ce3e: Expected O, but got Unknown //IL_ce57: Unknown result type (might be due to invalid IL or missing references) //IL_ce6c: Unknown result type (might be due to invalid IL or missing references) //IL_ce81: Unknown result type (might be due to invalid IL or missing references) //IL_ce96: Unknown result type (might be due to invalid IL or missing references) //IL_ced4: Unknown result type (might be due to invalid IL or missing references) //IL_cef6: Unknown result type (might be due to invalid IL or missing references) //IL_cefd: Expected O, but got Unknown //IL_cf08: Unknown result type (might be due to invalid IL or missing references) //IL_cf0d: Unknown result type (might be due to invalid IL or missing references) //IL_cf18: Unknown result type (might be due to invalid IL or missing references) //IL_cf23: Unknown result type (might be due to invalid IL or missing references) //IL_cf28: Unknown result type (might be due to invalid IL or missing references) //IL_cf2d: Unknown result type (might be due to invalid IL or missing references) //IL_cf34: Unknown result type (might be due to invalid IL or missing references) //IL_cf3b: Unknown result type (might be due to invalid IL or missing references) //IL_cf42: Unknown result type (might be due to invalid IL or missing references) //IL_cf4e: Unknown result type (might be due to invalid IL or missing references) //IL_cf5a: Unknown result type (might be due to invalid IL or missing references) //IL_cf66: Unknown result type (might be due to invalid IL or missing references) //IL_cf72: Expected O, but got Unknown //IL_cf74: Unknown result type (might be due to invalid IL or missing references) //IL_cf79: Unknown result type (might be due to invalid IL or missing references) //IL_cf84: Unknown result type (might be due to invalid IL or missing references) //IL_cf8f: Unknown result type (might be due to invalid IL or missing references) //IL_cf94: Unknown result type (might be due to invalid IL or missing references) //IL_cf99: Unknown result type (might be due to invalid IL or missing references) //IL_cfa0: Unknown result type (might be due to invalid IL or missing references) //IL_cfa7: Unknown result type (might be due to invalid IL or missing references) //IL_cfae: Unknown result type (might be due to invalid IL or missing references) //IL_cfba: Unknown result type (might be due to invalid IL or missing references) //IL_cfc6: Unknown result type (might be due to invalid IL or missing references) //IL_cfd2: Unknown result type (might be due to invalid IL or missing references) //IL_cfde: Expected O, but got Unknown //IL_cfe0: Unknown result type (might be due to invalid IL or missing references) //IL_cfe5: Unknown result type (might be due to invalid IL or missing references) //IL_cff0: Unknown result type (might be due to invalid IL or missing references) //IL_cffb: Unknown result type (might be due to invalid IL or missing references) //IL_d000: Unknown result type (might be due to invalid IL or missing references) //IL_d005: Unknown result type (might be due to invalid IL or missing references) //IL_d00c: Unknown result type (might be due to invalid IL or missing references) //IL_d013: Unknown result type (might be due to invalid IL or missing references) //IL_d01a: Unknown result type (might be due to invalid IL or missing references) //IL_d026: Unknown result type (might be due to invalid IL or missing references) //IL_d032: Unknown result type (might be due to invalid IL or missing references) //IL_d03e: Unknown result type (might be due to invalid IL or missing references) //IL_d04a: Expected O, but got Unknown //IL_d04c: Unknown result type (might be due to invalid IL or missing references) //IL_d051: Unknown result type (might be due to invalid IL or missing references) //IL_d05c: Unknown result type (might be due to invalid IL or missing references) //IL_d067: Unknown result type (might be due to invalid IL or missing references) //IL_d06c: Unknown result type (might be due to invalid IL or missing references) //IL_d071: Unknown result type (might be due to invalid IL or missing references) //IL_d078: Unknown result type (might be due to invalid IL or missing references) //IL_d07f: Unknown result type (might be due to invalid IL or missing references) //IL_d086: Unknown result type (might be due to invalid IL or missing references) //IL_d092: Unknown result type (might be due to invalid IL or missing references) //IL_d09e: Unknown result type (might be due to invalid IL or missing references) //IL_d0aa: Unknown result type (might be due to invalid IL or missing references) //IL_d0b6: Expected O, but got Unknown //IL_d0b8: Unknown result type (might be due to invalid IL or missing references) //IL_d0bd: Unknown result type (might be due to invalid IL or missing references) //IL_d0c8: Unknown result type (might be due to invalid IL or missing references) //IL_d0d3: Unknown result type (might be due to invalid IL or missing references) //IL_d0d8: Unknown result type (might be due to invalid IL or missing references) //IL_d0dd: Unknown result type (might be due to invalid IL or missing references) //IL_d0e4: Unknown result type (might be due to invalid IL or missing references) //IL_d0eb: Unknown result type (might be due to invalid IL or missing references) //IL_d0f2: Unknown result type (might be due to invalid IL or missing references) //IL_d0fe: Unknown result type (might be due to invalid IL or missing references) //IL_d10a: Unknown result type (might be due to invalid IL or missing references) //IL_d116: Unknown result type (might be due to invalid IL or missing references) //IL_d122: Expected O, but got Unknown //IL_d124: Unknown result type (might be due to invalid IL or missing references) //IL_d129: Unknown result type (might be due to invalid IL or missing references) //IL_d134: Unknown result type (might be due to invalid IL or missing references) //IL_d13f: Unknown result type (might be due to invalid IL or missing references) //IL_d144: Unknown result type (might be due to invalid IL or missing references) //IL_d149: Unknown result type (might be due to invalid IL or missing references) //IL_d150: Unknown result type (might be due to invalid IL or missing references) //IL_d157: Unknown result type (might be due to invalid IL or missing references) //IL_d15e: Unknown result type (might be due to invalid IL or missing references) //IL_d16a: Unknown result type (might be due to invalid IL or missing references) //IL_d176: Unknown result type (might be due to invalid IL or missing references) //IL_d182: Unknown result type (might be due to invalid IL or missing references) //IL_d18e: Expected O, but got Unknown //IL_d1a7: Unknown result type (might be due to invalid IL or missing references) //IL_d1bc: Unknown result type (might be due to invalid IL or missing references) //IL_d1d1: Unknown result type (might be due to invalid IL or missing references) //IL_d1e6: Unknown result type (might be due to invalid IL or missing references) //IL_d1fb: Unknown result type (might be due to invalid IL or missing references) //IL_d210: Unknown result type (might be due to invalid IL or missing references) //IL_d24e: Unknown result type (might be due to invalid IL or missing references) //IL_d270: Unknown result type (might be due to invalid IL or missing references) //IL_d277: Expected O, but got Unknown //IL_d282: Unknown result type (might be due to invalid IL or missing references) //IL_d287: Unknown result type (might be due to invalid IL or missing references) //IL_d292: Unknown result type (might be due to invalid IL or missing references) //IL_d29d: Unknown result type (might be due to invalid IL or missing references) //IL_d2a2: Unknown result type (might be due to invalid IL or missing references) //IL_d2a7: Unknown result type (might be due to invalid IL or missing references) //IL_d2ae: Unknown result type (might be due to invalid IL or missing references) //IL_d2b5: Unknown result type (might be due to invalid IL or missing references) //IL_d2bc: Unknown result type (might be due to invalid IL or missing references) //IL_d2c8: Unknown result type (might be due to invalid IL or missing references) //IL_d2d4: Unknown result type (might be due to invalid IL or missing references) //IL_d2e0: Unknown result type (might be due to invalid IL or missing references) //IL_d2ec: Expected O, but got Unknown //IL_d2ee: Unknown result type (might be due to invalid IL or missing references) //IL_d2f3: Unknown result type (might be due to invalid IL or missing references) //IL_d2fe: Unknown result type (might be due to invalid IL or missing references) //IL_d309: Unknown result type (might be due to invalid IL or missing references) //IL_d30e: Unknown result type (might be due to invalid IL or missing references) //IL_d313: Unknown result type (might be due to invalid IL or missing references) //IL_d31a: Unknown result type (might be due to invalid IL or missing references) //IL_d321: Unknown result type (might be due to invalid IL or missing references) //IL_d328: Unknown result type (might be due to invalid IL or missing references) //IL_d334: Unknown result type (might be due to invalid IL or missing references) //IL_d340: Unknown result type (might be due to invalid IL or missing references) //IL_d34c: Unknown result type (might be due to invalid IL or missing references) //IL_d358: Expected O, but got Unknown //IL_d371: Unknown result type (might be due to invalid IL or missing references) //IL_d386: Unknown result type (might be due to invalid IL or missing references) //IL_d3c4: Unknown result type (might be due to invalid IL or missing references) //IL_d3fa: Unknown result type (might be due to invalid IL or missing references) //IL_d41a: Unknown result type (might be due to invalid IL or missing references) //IL_d43a: Unknown result type (might be due to invalid IL or missing references) //IL_d45a: Unknown result type (might be due to invalid IL or missing references) //IL_d47a: Unknown result type (might be due to invalid IL or missing references) //IL_d49a: Unknown result type (might be due to invalid IL or missing references) //IL_d4ba: Unknown result type (might be due to invalid IL or missing references) //IL_d4da: Unknown result type (might be due to invalid IL or missing references) //IL_d4fa: Unknown result type (might be due to invalid IL or missing references) //IL_d529: Unknown result type (might be due to invalid IL or missing references) //IL_d553: Unknown result type (might be due to invalid IL or missing references) //IL_d57d: Unknown result type (might be due to invalid IL or missing references) //IL_d5a7: Unknown result type (might be due to invalid IL or missing references) //IL_d5d1: Unknown result type (might be due to invalid IL or missing references) //IL_d65e: Unknown result type (might be due to invalid IL or missing references) //IL_d669: Unknown result type (might be due to invalid IL or missing references) //IL_d674: Unknown result type (might be due to invalid IL or missing references) //IL_d67f: Unknown result type (might be due to invalid IL or missing references) //IL_d68a: Unknown result type (might be due to invalid IL or missing references) //IL_d694: Unknown result type (might be due to invalid IL or missing references) //IL_d699: Unknown result type (might be due to invalid IL or missing references) //IL_d6a9: Expected O, but got Unknown //IL_d6f2: Unknown result type (might be due to invalid IL or missing references) //IL_d6fc: Expected O, but got Unknown //IL_d6ff: Unknown result type (might be due to invalid IL or missing references) //IL_d709: Expected O, but got Unknown //IL_d714: Unknown result type (might be due to invalid IL or missing references) //IL_d785: Unknown result type (might be due to invalid IL or missing references) //IL_d78a: Unknown result type (might be due to invalid IL or missing references) //IL_d79f: Unknown result type (might be due to invalid IL or missing references) //IL_d7a4: Unknown result type (might be due to invalid IL or missing references) //IL_d7ab: Unknown result type (might be due to invalid IL or missing references) //IL_d7b7: Expected O, but got Unknown //IL_d814: Unknown result type (might be due to invalid IL or missing references) //IL_d819: Unknown result type (might be due to invalid IL or missing references) //IL_d84f: Unknown result type (might be due to invalid IL or missing references) //IL_d856: Expected O, but got Unknown //IL_d861: Unknown result type (might be due to invalid IL or missing references) //IL_d866: Unknown result type (might be due to invalid IL or missing references) //IL_d871: Unknown result type (might be due to invalid IL or missing references) //IL_d87c: Unknown result type (might be due to invalid IL or missing references) //IL_d881: Unknown result type (might be due to invalid IL or missing references) //IL_d886: Unknown result type (might be due to invalid IL or missing references) //IL_d88d: Unknown result type (might be due to invalid IL or missing references) //IL_d894: Unknown result type (might be due to invalid IL or missing references) //IL_d89b: Unknown result type (might be due to invalid IL or missing references) //IL_d8a7: Unknown result type (might be due to invalid IL or missing references) //IL_d8b3: Unknown result type (might be due to invalid IL or missing references) //IL_d8bf: Unknown result type (might be due to invalid IL or missing references) //IL_d8cb: Expected O, but got Unknown //IL_d8cd: Unknown result type (might be due to invalid IL or missing references) //IL_d8d2: Unknown result type (might be due to invalid IL or missing references) //IL_d8dd: Unknown result type (might be due to invalid IL or missing references) //IL_d8e8: Unknown result type (might be due to invalid IL or missing references) //IL_d8ed: Unknown result type (might be due to invalid IL or missing references) //IL_d8f2: Unknown result type (might be due to invalid IL or missing references) //IL_d8f9: Unknown result type (might be due to invalid IL or missing references) //IL_d900: Unknown result type (might be due to invalid IL or missing references) //IL_d907: Unknown result type (might be due to invalid IL or missing references) //IL_d913: Unknown result type (might be due to invalid IL or missing references) //IL_d91f: Unknown result type (might be due to invalid IL or missing references) //IL_d92b: Unknown result type (might be due to invalid IL or missing references) //IL_d937: Expected O, but got Unknown //IL_d939: Unknown result type (might be due to invalid IL or missing references) //IL_d93e: Unknown result type (might be due to invalid IL or missing references) //IL_d949: Unknown result type (might be due to invalid IL or missing references) //IL_d954: Unknown result type (might be due to invalid IL or missing references) //IL_d959: Unknown result type (might be due to invalid IL or missing references) //IL_d95e: Unknown result type (might be due to invalid IL or missing references) //IL_d965: Unknown result type (might be due to invalid IL or missing references) //IL_d96c: Unknown result type (might be due to invalid IL or missing references) //IL_d973: Unknown result type (might be due to invalid IL or missing references) //IL_d97f: Unknown result type (might be due to invalid IL or missing references) //IL_d98b: Unknown result type (might be due to invalid IL or missing references) //IL_d997: Unknown result type (might be due to invalid IL or missing references) //IL_d9a3: Expected O, but got Unknown //IL_d9a5: Unknown result type (might be due to invalid IL or missing references) //IL_d9aa: Unknown result type (might be due to invalid IL or missing references) //IL_d9b5: Unknown result type (might be due to invalid IL or missing references) //IL_d9c0: Unknown result type (might be due to invalid IL or missing references) //IL_d9c5: Unknown result type (might be due to invalid IL or missing references) //IL_d9ca: Unknown result type (might be due to invalid IL or missing references) //IL_d9d1: Unknown result type (might be due to invalid IL or missing references) //IL_d9d8: Unknown result type (might be due to invalid IL or missing references) //IL_d9df: Unknown result type (might be due to invalid IL or missing references) //IL_d9eb: Unknown result type (might be due to invalid IL or missing references) //IL_d9f7: Unknown result type (might be due to invalid IL or missing references) //IL_da03: Unknown result type (might be due to invalid IL or missing references) //IL_da0f: Expected O, but got Unknown //IL_da28: Unknown result type (might be due to invalid IL or missing references) //IL_da3d: Unknown result type (might be due to invalid IL or missing references) //IL_da52: Unknown result type (might be due to invalid IL or missing references) //IL_da67: Unknown result type (might be due to invalid IL or missing references) //IL_daa5: Unknown result type (might be due to invalid IL or missing references) //IL_dac7: Unknown result type (might be due to invalid IL or missing references) //IL_dace: Expected O, but got Unknown //IL_dad9: Unknown result type (might be due to invalid IL or missing references) //IL_dade: Unknown result type (might be due to invalid IL or missing references) //IL_dae9: Unknown result type (might be due to invalid IL or missing references) //IL_daf4: Unknown result type (might be due to invalid IL or missing references) //IL_daf9: Unknown result type (might be due to invalid IL or missing references) //IL_dafe: Unknown result type (might be due to invalid IL or missing references) //IL_db05: Unknown result type (might be due to invalid IL or missing references) //IL_db0c: Unknown result type (might be due to invalid IL or missing references) //IL_db13: Unknown result type (might be due to invalid IL or missing references) //IL_db1f: Unknown result type (might be due to invalid IL or missing references) //IL_db2b: Unknown result type (might be due to invalid IL or missing references) //IL_db37: Unknown result type (might be due to invalid IL or missing references) //IL_db43: Expected O, but got Unknown //IL_db45: Unknown result type (might be due to invalid IL or missing references) //IL_db4a: Unknown result type (might be due to invalid IL or missing references) //IL_db55: Unknown result type (might be due to invalid IL or missing references) //IL_db60: Unknown result type (might be due to invalid IL or missing references) //IL_db65: Unknown result type (might be due to invalid IL or missing references) //IL_db6a: Unknown result type (might be due to invalid IL or missing references) //IL_db71: Unknown result type (might be due to invalid IL or missing references) //IL_db78: Unknown result type (might be due to invalid IL or missing references) //IL_db7f: Unknown result type (might be due to invalid IL or missing references) //IL_db8b: Unknown result type (might be due to invalid IL or missing references) //IL_db97: Unknown result type (might be due to invalid IL or missing references) //IL_dba3: Unknown result type (might be due to invalid IL or missing references) //IL_dbaf: Expected O, but got Unknown //IL_dbc8: Unknown result type (might be due to invalid IL or missing references) //IL_dbdd: Unknown result type (might be due to invalid IL or missing references) //IL_dc1b: Unknown result type (might be due to invalid IL or missing references) //IL_dc51: Unknown result type (might be due to invalid IL or missing references) //IL_dc71: Unknown result type (might be due to invalid IL or missing references) //IL_dc91: Unknown result type (might be due to invalid IL or missing references) //IL_dcb1: Unknown result type (might be due to invalid IL or missing references) //IL_dcd1: Unknown result type (might be due to invalid IL or missing references) //IL_dcfb: Unknown result type (might be due to invalid IL or missing references) //IL_dd25: Unknown result type (might be due to invalid IL or missing references) //IL_dd4f: Unknown result type (might be due to invalid IL or missing references) //IL_dd79: Unknown result type (might be due to invalid IL or missing references) //IL_dda3: Unknown result type (might be due to invalid IL or missing references) //IL_ddcd: Unknown result type (might be due to invalid IL or missing references) //IL_de5f: Unknown result type (might be due to invalid IL or missing references) //IL_de6a: Unknown result type (might be due to invalid IL or missing references) //IL_de75: Unknown result type (might be due to invalid IL or missing references) //IL_de80: Unknown result type (might be due to invalid IL or missing references) //IL_de8b: Unknown result type (might be due to invalid IL or missing references) //IL_de95: Unknown result type (might be due to invalid IL or missing references) //IL_de9a: Unknown result type (might be due to invalid IL or missing references) //IL_deaa: Expected O, but got Unknown //IL_def3: Unknown result type (might be due to invalid IL or missing references) //IL_defd: Expected O, but got Unknown //IL_df00: Unknown result type (might be due to invalid IL or missing references) //IL_df0a: Expected O, but got Unknown //IL_df15: Unknown result type (might be due to invalid IL or missing references) //IL_df86: Unknown result type (might be due to invalid IL or missing references) //IL_df8b: Unknown result type (might be due to invalid IL or missing references) //IL_dfa0: Unknown result type (might be due to invalid IL or missing references) //IL_dfa5: Unknown result type (might be due to invalid IL or missing references) //IL_dfac: Unknown result type (might be due to invalid IL or missing references) //IL_dfb8: Expected O, but got Unknown //IL_e015: Unknown result type (might be due to invalid IL or missing references) //IL_e01a: Unknown result type (might be due to invalid IL or missing references) //IL_e050: Unknown result type (might be due to invalid IL or missing references) //IL_e057: Expected O, but got Unknown //IL_e062: Unknown result type (might be due to invalid IL or missing references) //IL_e067: Unknown result type (might be due to invalid IL or missing references) //IL_e072: Unknown result type (might be due to invalid IL or missing references) //IL_e07d: Unknown result type (might be due to invalid IL or missing references) //IL_e082: Unknown result type (might be due to invalid IL or missing references) //IL_e087: Unknown result type (might be due to invalid IL or missing references) //IL_e08e: Unknown result type (might be due to invalid IL or missing references) //IL_e095: Unknown result type (might be due to invalid IL or missing references) //IL_e09c: Unknown result type (might be due to invalid IL or missing references) //IL_e0a8: Unknown result type (might be due to invalid IL or missing references) //IL_e0b4: Unknown result type (might be due to invalid IL or missing references) //IL_e0c0: Unknown result type (might be due to invalid IL or missing references) //IL_e0cc: Expected O, but got Unknown //IL_e0ce: Unknown result type (might be due to invalid IL or missing references) //IL_e0d3: Unknown result type (might be due to invalid IL or missing references) //IL_e0de: Unknown result type (might be due to invalid IL or missing references) //IL_e0e9: Unknown result type (might be due to invalid IL or missing references) //IL_e0ee: Unknown result type (might be due to invalid IL or missing references) //IL_e0f3: Unknown result type (might be due to invalid IL or missing references) //IL_e0fa: Unknown result type (might be due to invalid IL or missing references) //IL_e101: Unknown result type (might be due to invalid IL or missing references) //IL_e108: Unknown result type (might be due to invalid IL or missing references) //IL_e114: Unknown result type (might be due to invalid IL or missing references) //IL_e120: Unknown result type (might be due to invalid IL or missing references) //IL_e12c: Unknown result type (might be due to invalid IL or missing references) //IL_e138: Expected O, but got Unknown //IL_e151: Unknown result type (might be due to invalid IL or missing references) //IL_e166: Unknown result type (might be due to invalid IL or missing references) //IL_e1a4: Unknown result type (might be due to invalid IL or missing references) //IL_e1da: Unknown result type (might be due to invalid IL or missing references) //IL_e1fa: Unknown result type (might be due to invalid IL or missing references) //IL_e21a: Unknown result type (might be due to invalid IL or missing references) //IL_e23a: Unknown result type (might be due to invalid IL or missing references) //IL_e25a: Unknown result type (might be due to invalid IL or missing references) //IL_e2a6: Unknown result type (might be due to invalid IL or missing references) //IL_e2f2: Unknown result type (might be due to invalid IL or missing references) //IL_e33e: Unknown result type (might be due to invalid IL or missing references) //IL_e368: Unknown result type (might be due to invalid IL or missing references) //IL_e392: Unknown result type (might be due to invalid IL or missing references) //IL_e3bc: Unknown result type (might be due to invalid IL or missing references) //IL_e44e: Unknown result type (might be due to invalid IL or missing references) //IL_e459: Unknown result type (might be due to invalid IL or missing references) //IL_e464: Unknown result type (might be due to invalid IL or missing references) //IL_e46f: Unknown result type (might be due to invalid IL or missing references) //IL_e47a: Unknown result type (might be due to invalid IL or missing references) //IL_e484: Unknown result type (might be due to invalid IL or missing references) //IL_e489: Unknown result type (might be due to invalid IL or missing references) //IL_e499: Expected O, but got Unknown //IL_e4e2: Unknown result type (might be due to invalid IL or missing references) //IL_e4ec: Expected O, but got Unknown //IL_e4ef: Unknown result type (might be due to invalid IL or missing references) //IL_e4f9: Expected O, but got Unknown //IL_e504: Unknown result type (might be due to invalid IL or missing references) //IL_e575: Unknown result type (might be due to invalid IL or missing references) //IL_e57a: Unknown result type (might be due to invalid IL or missing references) //IL_e58f: Unknown result type (might be due to invalid IL or missing references) //IL_e594: Unknown result type (might be due to invalid IL or missing references) //IL_e59b: Unknown result type (might be due to invalid IL or missing references) //IL_e5a7: Expected O, but got Unknown //IL_e605: Unknown result type (might be due to invalid IL or missing references) //IL_e60a: Unknown result type (might be due to invalid IL or missing references) //IL_e640: Unknown result type (might be due to invalid IL or missing references) //IL_e647: Expected O, but got Unknown //IL_e652: Unknown result type (might be due to invalid IL or missing references) //IL_e657: Unknown result type (might be due to invalid IL or missing references) //IL_e662: Unknown result type (might be due to invalid IL or missing references) //IL_e66d: Unknown result type (might be due to invalid IL or missing references) //IL_e672: Unknown result type (might be due to invalid IL or missing references) //IL_e677: Unknown result type (might be due to invalid IL or missing references) //IL_e67e: Unknown result type (might be due to invalid IL or missing references) //IL_e685: Unknown result type (might be due to invalid IL or missing references) //IL_e68c: Unknown result type (might be due to invalid IL or missing references) //IL_e698: Unknown result type (might be due to invalid IL or missing references) //IL_e6a4: Unknown result type (might be due to invalid IL or missing references) //IL_e6b0: Unknown result type (might be due to invalid IL or missing references) //IL_e6bc: Expected O, but got Unknown //IL_e6d5: Unknown result type (might be due to invalid IL or missing references) //IL_e713: Unknown result type (might be due to invalid IL or missing references) //IL_e749: Unknown result type (might be due to invalid IL or missing references) //IL_e769: Unknown result type (might be due to invalid IL or missing references) //IL_e789: Unknown result type (might be due to invalid IL or missing references) //IL_e7a9: Unknown result type (might be due to invalid IL or missing references) //IL_e7c9: Unknown result type (might be due to invalid IL or missing references) //IL_e7f3: Unknown result type (might be due to invalid IL or missing references) //IL_e81d: Unknown result type (might be due to invalid IL or missing references) //IL_e8af: Unknown result type (might be due to invalid IL or missing references) //IL_e8ba: Unknown result type (might be due to invalid IL or missing references) //IL_e8c5: Unknown result type (might be due to invalid IL or missing references) //IL_e8d0: Unknown result type (might be due to invalid IL or missing references) //IL_e8db: Unknown result type (might be due to invalid IL or missing references) //IL_e8e5: Unknown result type (might be due to invalid IL or missing references) //IL_e8ea: Unknown result type (might be due to invalid IL or missing references) //IL_e8fa: Expected O, but got Unknown //IL_e943: Unknown result type (might be due to invalid IL or missing references) //IL_e94d: Expected O, but got Unknown //IL_e950: Unknown result type (might be due to invalid IL or missing references) //IL_e95a: Expected O, but got Unknown //IL_e965: Unknown result type (might be due to invalid IL or missing references) //IL_e9d6: Unknown result type (might be due to invalid IL or missing references) //IL_e9db: Unknown result type (might be due to invalid IL or missing references) //IL_e9f0: Unknown result type (might be due to invalid IL or missing references) //IL_e9f5: Unknown result type (might be due to invalid IL or missing references) //IL_e9fc: Unknown result type (might be due to invalid IL or missing references) //IL_ea08: Expected O, but got Unknown //IL_ea65: Unknown result type (might be due to invalid IL or missing references) //IL_ea6a: Unknown result type (might be due to invalid IL or missing references) //IL_eaa0: Unknown result type (might be due to invalid IL or missing references) //IL_eaa7: Expected O, but got Unknown //IL_eab2: Unknown result type (might be due to invalid IL or missing references) //IL_eab7: Unknown result type (might be due to invalid IL or missing references) //IL_eac2: Unknown result type (might be due to invalid IL or missing references) //IL_eacd: Unknown result type (might be due to invalid IL or missing references) //IL_ead2: Unknown result type (might be due to invalid IL or missing references) //IL_ead7: Unknown result type (might be due to invalid IL or missing references) //IL_eade: Unknown result type (might be due to invalid IL or missing references) //IL_eae5: Unknown result type (might be due to invalid IL or missing references) //IL_eaec: Unknown result type (might be due to invalid IL or missing references) //IL_eaf8: Unknown result type (might be due to invalid IL or missing references) //IL_eb04: Unknown result type (might be due to invalid IL or missing references) //IL_eb10: Unknown result type (might be due to invalid IL or missing references) //IL_eb1c: Expected O, but got Unknown //IL_eb1e: Unknown result type (might be due to invalid IL or missing references) //IL_eb23: Unknown result type (might be due to invalid IL or missing references) //IL_eb2e: Unknown result type (might be due to invalid IL or missing references) //IL_eb39: Unknown result type (might be due to invalid IL or missing references) //IL_eb3e: Unknown result type (might be due to invalid IL or missing references) //IL_eb43: Unknown result type (might be due to invalid IL or missing references) //IL_eb4a: Unknown result type (might be due to invalid IL or missing references) //IL_eb51: Unknown result type (might be due to invalid IL or missing references) //IL_eb58: Unknown result type (might be due to invalid IL or missing references) //IL_eb64: Unknown result type (might be due to invalid IL or missing references) //IL_eb70: Unknown result type (might be due to invalid IL or missing references) //IL_eb7c: Unknown result type (might be due to invalid IL or missing references) //IL_eb88: Expected O, but got Unknown //IL_eba1: Unknown result type (might be due to invalid IL or missing references) //IL_ebb6: Unknown result type (might be due to invalid IL or missing references) //IL_ebf4: Unknown result type (might be due to invalid IL or missing references) //IL_ec2a: Unknown result type (might be due to invalid IL or missing references) //IL_ec4a: Unknown result type (might be due to invalid IL or missing references) //IL_ec6a: Unknown result type (might be due to invalid IL or missing references) //IL_ec8a: Unknown result type (might be due to invalid IL or missing references) //IL_ecaa: Unknown result type (might be due to invalid IL or missing references) //IL_ecca: Unknown result type (might be due to invalid IL or missing references) //IL_ecea: Unknown result type (might be due to invalid IL or missing references) //IL_ed7c: Unknown result type (might be due to invalid IL or missing references) //IL_ed87: Unknown result type (might be due to invalid IL or missing references) //IL_ed92: Unknown result type (might be due to invalid IL or missing references) //IL_ed9d: Unknown result type (might be due to invalid IL or missing references) //IL_eda8: Unknown result type (might be due to invalid IL or missing references) //IL_edb2: Unknown result type (might be due to invalid IL or missing references) //IL_edb7: Unknown result type (might be due to invalid IL or missing references) //IL_edc7: Expected O, but got Unknown //IL_ee10: Unknown result type (might be due to invalid IL or missing references) //IL_ee1a: Expected O, but got Unknown //IL_ee1d: Unknown result type (might be due to invalid IL or missing references) //IL_ee27: Expected O, but got Unknown //IL_ee32: Unknown result type (might be due to invalid IL or missing references) //IL_eea3: Unknown result type (might be due to invalid IL or missing references) //IL_eea8: Unknown result type (might be due to invalid IL or missing references) //IL_eebd: Unknown result type (might be due to invalid IL or missing references) //IL_eec2: Unknown result type (might be due to invalid IL or missing references) //IL_eec9: Unknown result type (might be due to invalid IL or missing references) //IL_eed5: Expected O, but got Unknown //IL_ef33: Unknown result type (might be due to invalid IL or missing references) //IL_ef38: Unknown result type (might be due to invalid IL or missing references) //IL_ef6e: Unknown result type (might be due to invalid IL or missing references) //IL_ef75: Expected O, but got Unknown //IL_ef80: Unknown result type (might be due to invalid IL or missing references) //IL_ef85: Unknown result type (might be due to invalid IL or missing references) //IL_ef90: Unknown result type (might be due to invalid IL or missing references) //IL_ef9b: Unknown result type (might be due to invalid IL or missing references) //IL_efa0: Unknown result type (might be due to invalid IL or missing references) //IL_efa5: Unknown result type (might be due to invalid IL or missing references) //IL_efac: Unknown result type (might be due to invalid IL or missing references) //IL_efb3: Unknown result type (might be due to invalid IL or missing references) //IL_efba: Unknown result type (might be due to invalid IL or missing references) //IL_efc6: Unknown result type (might be due to invalid IL or missing references) //IL_efd2: Unknown result type (might be due to invalid IL or missing references) //IL_efde: Unknown result type (might be due to invalid IL or missing references) //IL_efea: Expected O, but got Unknown //IL_efec: Unknown result type (might be due to invalid IL or missing references) //IL_eff1: Unknown result type (might be due to invalid IL or missing references) //IL_effc: Unknown result type (might be due to invalid IL or missing references) //IL_f007: Unknown result type (might be due to invalid IL or missing references) //IL_f00c: Unknown result type (might be due to invalid IL or missing references) //IL_f011: Unknown result type (might be due to invalid IL or missing references) //IL_f018: Unknown result type (might be due to invalid IL or missing references) //IL_f01f: Unknown result type (might be due to invalid IL or missing references) //IL_f026: Unknown result type (might be due to invalid IL or missing references) //IL_f032: Unknown result type (might be due to invalid IL or missing references) //IL_f03e: Unknown result type (might be due to invalid IL or missing references) //IL_f04a: Unknown result type (might be due to invalid IL or missing references) //IL_f056: Expected O, but got Unknown //IL_f058: Unknown result type (might be due to invalid IL or missing references) //IL_f05d: Unknown result type (might be due to invalid IL or missing references) //IL_f068: Unknown result type (might be due to invalid IL or missing references) //IL_f073: Unknown result type (might be due to invalid IL or missing references) //IL_f078: Unknown result type (might be due to invalid IL or missing references) //IL_f07d: Unknown result type (might be due to invalid IL or missing references) //IL_f084: Unknown result type (might be due to invalid IL or missing references) //IL_f08b: Unknown result type (might be due to invalid IL or missing references) //IL_f092: Unknown result type (might be due to invalid IL or missing references) //IL_f09e: Unknown result type (might be due to invalid IL or missing references) //IL_f0aa: Unknown result type (might be due to invalid IL or missing references) //IL_f0b6: Unknown result type (might be due to invalid IL or missing references) //IL_f0c2: Expected O, but got Unknown //IL_f0c4: Unknown result type (might be due to invalid IL or missing references) //IL_f0c9: Unknown result type (might be due to invalid IL or missing references) //IL_f0d4: Unknown result type (might be due to invalid IL or missing references) //IL_f0df: Unknown result type (might be due to invalid IL or missing references) //IL_f0e4: Unknown result type (might be due to invalid IL or missing references) //IL_f0e9: Unknown result type (might be due to invalid IL or missing references) //IL_f0f0: Unknown result type (might be due to invalid IL or missing references) //IL_f0f7: Unknown result type (might be due to invalid IL or missing references) //IL_f0fe: Unknown result type (might be due to invalid IL or missing references) //IL_f10a: Unknown result type (might be due to invalid IL or missing references) //IL_f116: Unknown result type (might be due to invalid IL or missing references) //IL_f122: Unknown result type (might be due to invalid IL or missing references) //IL_f12e: Expected O, but got Unknown //IL_f147: Unknown result type (might be due to invalid IL or missing references) //IL_f15c: Unknown result type (might be due to invalid IL or missing references) //IL_f171: Unknown result type (might be due to invalid IL or missing references) //IL_f186: Unknown result type (might be due to invalid IL or missing references) //IL_f1c4: Unknown result type (might be due to invalid IL or missing references) //IL_f1fa: Unknown result type (might be due to invalid IL or missing references) //IL_f21a: Unknown result type (might be due to invalid IL or missing references) //IL_f23a: Unknown result type (might be due to invalid IL or missing references) //IL_f25a: Unknown result type (might be due to invalid IL or missing references) //IL_f284: Unknown result type (might be due to invalid IL or missing references) //IL_f2ae: Unknown result type (might be due to invalid IL or missing references) //IL_f2d8: Unknown result type (might be due to invalid IL or missing references) //IL_f302: Unknown result type (might be due to invalid IL or missing references) //IL_f32c: Unknown result type (might be due to invalid IL or missing references) //IL_f3be: Unknown result type (might be due to invalid IL or missing references) //IL_f3c9: Unknown result type (might be due to invalid IL or missing references) //IL_f3d4: Unknown result type (might be due to invalid IL or missing references) //IL_f3df: Unknown result type (might be due to invalid IL or missing references) //IL_f3ea: Unknown result type (might be due to invalid IL or missing references) //IL_f3f4: Unknown result type (might be due to invalid IL or missing references) //IL_f3f9: Unknown result type (might be due to invalid IL or missing references) //IL_f409: Expected O, but got Unknown //IL_f452: Unknown result type (might be due to invalid IL or missing references) //IL_f45c: Expected O, but got Unknown //IL_f45f: Unknown result type (might be due to invalid IL or missing references) //IL_f469: Expected O, but got Unknown //IL_f474: Unknown result type (might be due to invalid IL or missing references) //IL_f4e5: Unknown result type (might be due to invalid IL or missing references) //IL_f4ea: Unknown result type (might be due to invalid IL or missing references) //IL_f4ff: Unknown result type (might be due to invalid IL or missing references) //IL_f504: Unknown result type (might be due to invalid IL or missing references) //IL_f50b: Unknown result type (might be due to invalid IL or missing references) //IL_f517: Expected O, but got Unknown //IL_f573: Unknown result type (might be due to invalid IL or missing references) //IL_f578: Unknown result type (might be due to invalid IL or missing references) //IL_f5ae: Unknown result type (might be due to invalid IL or missing references) //IL_f5b5: Expected O, but got Unknown //IL_f5c0: Unknown result type (might be due to invalid IL or missing references) //IL_f5c5: Unknown result type (might be due to invalid IL or missing references) //IL_f5d0: Unknown result type (might be due to invalid IL or missing references) //IL_f5db: Unknown result type (might be due to invalid IL or missing references) //IL_f5e0: Unknown result type (might be due to invalid IL or missing references) //IL_f5e5: Unknown result type (might be due to invalid IL or missing references) //IL_f5ec: Unknown result type (might be due to invalid IL or missing references) //IL_f5f3: Unknown result type (might be due to invalid IL or missing references) //IL_f5fa: Unknown result type (might be due to invalid IL or missing references) //IL_f606: Unknown result type (might be due to invalid IL or missing references) //IL_f612: Unknown result type (might be due to invalid IL or missing references) //IL_f61e: Unknown result type (might be due to invalid IL or missing references) //IL_f62a: Expected O, but got Unknown //IL_f62c: Unknown result type (might be due to invalid IL or missing references) //IL_f631: Unknown result type (might be due to invalid IL or missing references) //IL_f63c: Unknown result type (might be due to invalid IL or missing references) //IL_f647: Unknown result type (might be due to invalid IL or missing references) //IL_f64c: Unknown result type (might be due to invalid IL or missing references) //IL_f651: Unknown result type (might be due to invalid IL or missing references) //IL_f658: Unknown result type (might be due to invalid IL or missing references) //IL_f65f: Unknown result type (might be due to invalid IL or missing references) //IL_f666: Unknown result type (might be due to invalid IL or missing references) //IL_f672: Unknown result type (might be due to invalid IL or missing references) //IL_f67e: Unknown result type (might be due to invalid IL or missing references) //IL_f68a: Unknown result type (might be due to invalid IL or missing references) //IL_f696: Expected O, but got Unknown //IL_f6af: Unknown result type (might be due to invalid IL or missing references) //IL_f6c4: Unknown result type (might be due to invalid IL or missing references) //IL_f702: Unknown result type (might be due to invalid IL or missing references) //IL_f738: Unknown result type (might be due to invalid IL or missing references) //IL_f758: Unknown result type (might be due to invalid IL or missing references) //IL_f778: Unknown result type (might be due to invalid IL or missing references) //IL_f7a2: Unknown result type (might be due to invalid IL or missing references) //IL_f7cc: Unknown result type (might be due to invalid IL or missing references) //IL_f85e: Unknown result type (might be due to invalid IL or missing references) //IL_f869: Unknown result type (might be due to invalid IL or missing references) //IL_f874: Unknown result type (might be due to invalid IL or missing references) //IL_f87f: Unknown result type (might be due to invalid IL or missing references) //IL_f88a: Unknown result type (might be due to invalid IL or missing references) //IL_f894: Unknown result type (might be due to invalid IL or missing references) //IL_f899: Unknown result type (might be due to invalid IL or missing references) //IL_f8a9: Expected O, but got Unknown //IL_f8f2: Unknown result type (might be due to invalid IL or missing references) //IL_f8fc: Expected O, but got Unknown //IL_f8ff: Unknown result type (might be due to invalid IL or missing references) //IL_f909: Expected O, but got Unknown //IL_f914: Unknown result type (might be due to invalid IL or missing references) //IL_f985: Unknown result type (might be due to invalid IL or missing references) //IL_f98a: Unknown result type (might be due to invalid IL or missing references) //IL_f99f: Unknown result type (might be due to invalid IL or missing references) //IL_f9a4: Unknown result type (might be due to invalid IL or missing references) //IL_f9ab: Unknown result type (might be due to invalid IL or missing references) //IL_f9b7: Expected O, but got Unknown //IL_fa15: Unknown result type (might be due to invalid IL or missing references) //IL_fa1a: Unknown result type (might be due to invalid IL or missing references) //IL_fa61: Unknown result type (might be due to invalid IL or missing references) //IL_fa81: Unknown result type (might be due to invalid IL or missing references) //IL_faa1: Unknown result type (might be due to invalid IL or missing references) //IL_facb: Unknown result type (might be due to invalid IL or missing references) //IL_faf5: Unknown result type (might be due to invalid IL or missing references) //IL_fb87: Unknown result type (might be due to invalid IL or missing references) //IL_fb92: Unknown result type (might be due to invalid IL or missing references) //IL_fb9d: Unknown result type (might be due to invalid IL or missing references) //IL_fba8: Unknown result type (might be due to invalid IL or missing references) //IL_fbb3: Unknown result type (might be due to invalid IL or missing references) //IL_fbbd: Unknown result type (might be due to invalid IL or missing references) //IL_fbc2: Unknown result type (might be due to invalid IL or missing references) //IL_fbd2: Expected O, but got Unknown //IL_fc1b: Unknown result type (might be due to invalid IL or missing references) //IL_fc25: Expected O, but got Unknown //IL_fc28: Unknown result type (might be due to invalid IL or missing references) //IL_fc32: Expected O, but got Unknown //IL_fc3d: Unknown result type (might be due to invalid IL or missing references) //IL_fcae: Unknown result type (might be due to invalid IL or missing references) //IL_fcb3: Unknown result type (might be due to invalid IL or missing references) //IL_fcc8: Unknown result type (might be due to invalid IL or missing references) //IL_fccd: Unknown result type (might be due to invalid IL or missing references) //IL_fcd4: Unknown result type (might be due to invalid IL or missing references) //IL_fce0: Expected O, but got Unknown //IL_fd3d: Unknown result type (might be due to invalid IL or missing references) //IL_fd42: Unknown result type (might be due to invalid IL or missing references) //IL_fd89: Unknown result type (might be due to invalid IL or missing references) //IL_fda9: Unknown result type (might be due to invalid IL or missing references) //IL_fdc9: Unknown result type (might be due to invalid IL or missing references) //IL_fdf3: Unknown result type (might be due to invalid IL or missing references) //IL_fe1d: Unknown result type (might be due to invalid IL or missing references) //IL_feaf: Unknown result type (might be due to invalid IL or missing references) //IL_feba: Unknown result type (might be due to invalid IL or missing references) //IL_fec5: Unknown result type (might be due to invalid IL or missing references) //IL_fed0: Unknown result type (might be due to invalid IL or missing references) //IL_fedb: Unknown result type (might be due to invalid IL or missing references) //IL_fee5: Unknown result type (might be due to invalid IL or missing references) //IL_feea: Unknown result type (might be due to invalid IL or missing references) //IL_fefa: Expected O, but got Unknown //IL_ff43: Unknown result type (might be due to invalid IL or missing references) //IL_ff4d: Expected O, but got Unknown //IL_ff50: Unknown result type (might be due to invalid IL or missing references) //IL_ff5a: Expected O, but got Unknown //IL_ff65: Unknown result type (might be due to invalid IL or missing references) //IL_ffd6: Unknown result type (might be due to invalid IL or missing references) //IL_ffdb: Unknown result type (might be due to invalid IL or missing references) //IL_fff0: Unknown result type (might be due to invalid IL or missing references) //IL_fff5: Unknown result type (might be due to invalid IL or missing references) //IL_fffc: Unknown result type (might be due to invalid IL or missing references) //IL_10008: Expected O, but got Unknown //IL_10065: Unknown result type (might be due to invalid IL or missing references) //IL_1006a: Unknown result type (might be due to invalid IL or missing references) //IL_100a0: Unknown result type (might be due to invalid IL or missing references) //IL_100a7: Expected O, but got Unknown //IL_100b2: Unknown result type (might be due to invalid IL or missing references) //IL_100b7: Unknown result type (might be due to invalid IL or missing references) //IL_100c2: Unknown result type (might be due to invalid IL or missing references) //IL_100cd: Unknown result type (might be due to invalid IL or missing references) //IL_100d2: Unknown result type (might be due to invalid IL or missing references) //IL_100d7: Unknown result type (might be due to invalid IL or missing references) //IL_100de: Unknown result type (might be due to invalid IL or missing references) //IL_100e5: Unknown result type (might be due to invalid IL or missing references) //IL_100ec: Unknown result type (might be due to invalid IL or missing references) //IL_100f8: Unknown result type (might be due to invalid IL or missing references) //IL_10104: Unknown result type (might be due to invalid IL or missing references) //IL_10110: Unknown result type (might be due to invalid IL or missing references) //IL_1011c: Expected O, but got Unknown //IL_1011e: Unknown result type (might be due to invalid IL or missing references) //IL_10123: Unknown result type (might be due to invalid IL or missing references) //IL_1012e: Unknown result type (might be due to invalid IL or missing references) //IL_10139: Unknown result type (might be due to invalid IL or missing references) //IL_1013e: Unknown result type (might be due to invalid IL or missing references) //IL_10143: Unknown result type (might be due to invalid IL or missing references) //IL_1014a: Unknown result type (might be due to invalid IL or missing references) //IL_10151: Unknown result type (might be due to invalid IL or missing references) //IL_10158: Unknown result type (might be due to invalid IL or missing references) //IL_10164: Unknown result type (might be due to invalid IL or missing references) //IL_10170: Unknown result type (might be due to invalid IL or missing references) //IL_1017c: Unknown result type (might be due to invalid IL or missing references) //IL_10188: Expected O, but got Unknown //IL_1018a: Unknown result type (might be due to invalid IL or missing references) //IL_1018f: Unknown result type (might be due to invalid IL or missing references) //IL_1019a: Unknown result type (might be due to invalid IL or missing references) //IL_101a5: Unknown result type (might be due to invalid IL or missing references) //IL_101aa: Unknown result type (might be due to invalid IL or missing references) //IL_101af: Unknown result type (might be due to invalid IL or missing references) //IL_101b6: Unknown result type (might be due to invalid IL or missing references) //IL_101bd: Unknown result type (might be due to invalid IL or missing references) //IL_101c4: Unknown result type (might be due to invalid IL or missing references) //IL_101d0: Unknown result type (might be due to invalid IL or missing references) //IL_101dc: Unknown result type (might be due to invalid IL or missing references) //IL_101e8: Unknown result type (might be due to invalid IL or missing references) //IL_101f4: Expected O, but got Unknown //IL_101f6: Unknown result type (might be due to invalid IL or missing references) //IL_101fb: Unknown result type (might be due to invalid IL or missing references) //IL_10206: Unknown result type (might be due to invalid IL or missing references) //IL_10211: Unknown result type (might be due to invalid IL or missing references) //IL_10216: Unknown result type (might be due to invalid IL or missing references) //IL_1021b: Unknown result type (might be due to invalid IL or missing references) //IL_10222: Unknown result type (might be due to invalid IL or missing references) //IL_10229: Unknown result type (might be due to invalid IL or missing references) //IL_10230: Unknown result type (might be due to invalid IL or missing references) //IL_1023c: Unknown result type (might be due to invalid IL or missing references) //IL_10248: Unknown result type (might be due to invalid IL or missing references) //IL_10254: Unknown result type (might be due to invalid IL or missing references) //IL_10260: Expected O, but got Unknown //IL_10279: Unknown result type (might be due to invalid IL or missing references) //IL_1028e: Unknown result type (might be due to invalid IL or missing references) //IL_102a3: Unknown result type (might be due to invalid IL or missing references) //IL_102b8: Unknown result type (might be due to invalid IL or missing references) //IL_102f6: Unknown result type (might be due to invalid IL or missing references) //IL_1032c: Unknown result type (might be due to invalid IL or missing references) //IL_1034c: Unknown result type (might be due to invalid IL or missing references) //IL_1036c: Unknown result type (might be due to invalid IL or missing references) //IL_1038c: Unknown result type (might be due to invalid IL or missing references) //IL_103b6: Unknown result type (might be due to invalid IL or missing references) //IL_103e0: Unknown result type (might be due to invalid IL or missing references) //IL_1040a: Unknown result type (might be due to invalid IL or missing references) //IL_1049c: Unknown result type (might be due to invalid IL or missing references) //IL_104a7: Unknown result type (might be due to invalid IL or missing references) //IL_104b2: Unknown result type (might be due to invalid IL or missing references) //IL_104bd: Unknown result type (might be due to invalid IL or missing references) //IL_104c8: Unknown result type (might be due to invalid IL or missing references) //IL_104d2: Unknown result type (might be due to invalid IL or missing references) //IL_104d7: Unknown result type (might be due to invalid IL or missing references) //IL_104e7: Expected O, but got Unknown //IL_10530: Unknown result type (might be due to invalid IL or missing references) //IL_1053a: Expected O, but got Unknown //IL_1053d: Unknown result type (might be due to invalid IL or missing references) //IL_10547: Expected O, but got Unknown //IL_10552: Unknown result type (might be due to invalid IL or missing references) //IL_105c3: Unknown result type (might be due to invalid IL or missing references) //IL_105c8: Unknown result type (might be due to invalid IL or missing references) //IL_105dd: Unknown result type (might be due to invalid IL or missing references) //IL_105e2: Unknown result type (might be due to invalid IL or missing references) //IL_105e9: Unknown result type (might be due to invalid IL or missing references) //IL_105f5: Expected O, but got Unknown //IL_10652: Unknown result type (might be due to invalid IL or missing references) //IL_10657: Unknown result type (might be due to invalid IL or missing references) //IL_10698: Unknown result type (might be due to invalid IL or missing references) //IL_1069f: Expected O, but got Unknown //IL_106aa: Unknown result type (might be due to invalid IL or missing references) //IL_106af: Unknown result type (might be due to invalid IL or missing references) //IL_106ba: Unknown result type (might be due to invalid IL or missing references) //IL_106c5: Unknown result type (might be due to invalid IL or missing references) //IL_106ca: Unknown result type (might be due to invalid IL or missing references) //IL_106cf: Unknown result type (might be due to invalid IL or missing references) //IL_106d6: Unknown result type (might be due to invalid IL or missing references) //IL_106dd: Unknown result type (might be due to invalid IL or missing references) //IL_106e4: Unknown result type (might be due to invalid IL or missing references) //IL_106f0: Unknown result type (might be due to invalid IL or missing references) //IL_106fc: Unknown result type (might be due to invalid IL or missing references) //IL_10708: Unknown result type (might be due to invalid IL or missing references) //IL_10714: Expected O, but got Unknown //IL_1072d: Unknown result type (might be due to invalid IL or missing references) //IL_1076b: Unknown result type (might be due to invalid IL or missing references) //IL_107a1: Unknown result type (might be due to invalid IL or missing references) //IL_107c1: Unknown result type (might be due to invalid IL or missing references) //IL_107e1: Unknown result type (might be due to invalid IL or missing references) //IL_1080b: Unknown result type (might be due to invalid IL or missing references) //IL_10835: Unknown result type (might be due to invalid IL or missing references) //IL_1085f: Unknown result type (might be due to invalid IL or missing references) //IL_10889: Unknown result type (might be due to invalid IL or missing references) //IL_108b3: Unknown result type (might be due to invalid IL or missing references) //IL_108dd: Unknown result type (might be due to invalid IL or missing references) //IL_10907: Unknown result type (might be due to invalid IL or missing references) //IL_10931: Unknown result type (might be due to invalid IL or missing references) //IL_1095b: Unknown result type (might be due to invalid IL or missing references) //IL_10985: Unknown result type (might be due to invalid IL or missing references) //IL_109af: Unknown result type (might be due to invalid IL or missing references) //IL_109d9: Unknown result type (might be due to invalid IL or missing references) //IL_10a03: Unknown result type (might be due to invalid IL or missing references) //IL_10a2d: Unknown result type (might be due to invalid IL or missing references) //IL_10a57: Unknown result type (might be due to invalid IL or missing references) //IL_10a81: Unknown result type (might be due to invalid IL or missing references) //IL_10aab: Unknown result type (might be due to invalid IL or missing references) //IL_10ad5: Unknown result type (might be due to invalid IL or missing references) //IL_10aff: Unknown result type (might be due to invalid IL or missing references) //IL_10b29: Unknown result type (might be due to invalid IL or missing references) //IL_10b53: Unknown result type (might be due to invalid IL or missing references) //IL_10b7d: Unknown result type (might be due to invalid IL or missing references) //IL_10ba7: Unknown result type (might be due to invalid IL or missing references) //IL_10bd1: Unknown result type (might be due to invalid IL or missing references) //IL_10bfb: Unknown result type (might be due to invalid IL or missing references) //IL_10c25: Unknown result type (might be due to invalid IL or missing references) //IL_10cb7: Unknown result type (might be due to invalid IL or missing references) //IL_10cc2: Unknown result type (might be due to invalid IL or missing references) //IL_10ccd: Unknown result type (might be due to invalid IL or missing references) //IL_10cd8: Unknown result type (might be due to invalid IL or missing references) //IL_10ce3: Unknown result type (might be due to invalid IL or missing references) //IL_10ced: Unknown result type (might be due to invalid IL or missing references) //IL_10cf2: Unknown result type (might be due to invalid IL or missing references) //IL_10d02: Expected O, but got Unknown //IL_10d4b: Unknown result type (might be due to invalid IL or missing references) //IL_10d55: Expected O, but got Unknown //IL_10d58: Unknown result type (might be due to invalid IL or missing references) //IL_10d62: Expected O, but got Unknown //IL_10d6d: Unknown result type (might be due to invalid IL or missing references) //IL_10dde: Unknown result type (might be due to invalid IL or missing references) //IL_10de3: Unknown result type (might be due to invalid IL or missing references) //IL_10df8: Unknown result type (might be due to invalid IL or missing references) //IL_10dfd: Unknown result type (might be due to invalid IL or missing references) //IL_10e04: Unknown result type (might be due to invalid IL or missing references) //IL_10e10: Expected O, but got Unknown //IL_10e6d: Unknown result type (might be due to invalid IL or missing references) //IL_10e72: Unknown result type (might be due to invalid IL or missing references) //IL_10ea8: Unknown result type (might be due to invalid IL or missing references) //IL_10eaf: Expected O, but got Unknown //IL_10eba: Unknown result type (might be due to invalid IL or missing references) //IL_10ebf: Unknown result type (might be due to invalid IL or missing references) //IL_10eca: Unknown result type (might be due to invalid IL or missing references) //IL_10ed5: Unknown result type (might be due to invalid IL or missing references) //IL_10eda: Unknown result type (might be due to invalid IL or missing references) //IL_10edf: Unknown result type (might be due to invalid IL or missing references) //IL_10ee6: Unknown result type (might be due to invalid IL or missing references) //IL_10eed: Unknown result type (might be due to invalid IL or missing references) //IL_10ef4: Unknown result type (might be due to invalid IL or missing references) //IL_10f00: Unknown result type (might be due to invalid IL or missing references) //IL_10f0c: Unknown result type (might be due to invalid IL or missing references) //IL_10f18: Unknown result type (might be due to invalid IL or missing references) //IL_10f24: Expected O, but got Unknown //IL_10f26: Unknown result type (might be due to invalid IL or missing references) //IL_10f2b: Unknown result type (might be due to invalid IL or missing references) //IL_10f36: Unknown result type (might be due to invalid IL or missing references) //IL_10f41: Unknown result type (might be due to invalid IL or missing references) //IL_10f46: Unknown result type (might be due to invalid IL or missing references) //IL_10f4b: Unknown result type (might be due to invalid IL or missing references) //IL_10f52: Unknown result type (might be due to invalid IL or missing references) //IL_10f59: Unknown result type (might be due to invalid IL or missing references) //IL_10f60: Unknown result type (might be due to invalid IL or missing references) //IL_10f6c: Unknown result type (might be due to invalid IL or missing references) //IL_10f78: Unknown result type (might be due to invalid IL or missing references) //IL_10f84: Unknown result type (might be due to invalid IL or missing references) //IL_10f90: Expected O, but got Unknown //IL_10f92: Unknown result type (might be due to invalid IL or missing references) //IL_10f97: Unknown result type (might be due to invalid IL or missing references) //IL_10fa2: Unknown result type (might be due to invalid IL or missing references) //IL_10fad: Unknown result type (might be due to invalid IL or missing references) //IL_10fb2: Unknown result type (might be due to invalid IL or missing references) //IL_10fb7: Unknown result type (might be due to invalid IL or missing references) //IL_10fbe: Unknown result type (might be due to invalid IL or missing references) //IL_10fc5: Unknown result type (might be due to invalid IL or missing references) //IL_10fcc: Unknown result type (might be due to invalid IL or missing references) //IL_10fd8: Unknown result type (might be due to invalid IL or missing references) //IL_10fe4: Unknown result type (might be due to invalid IL or missing references) //IL_10ff0: Unknown result type (might be due to invalid IL or missing references) //IL_10ffc: Expected O, but got Unknown //IL_11015: Unknown result type (might be due to invalid IL or missing references) //IL_1102a: Unknown result type (might be due to invalid IL or missing references) //IL_1103f: Unknown result type (might be due to invalid IL or missing references) //IL_1107d: Unknown result type (might be due to invalid IL or missing references) //IL_1109f: Unknown result type (might be due to invalid IL or missing references) //IL_110a6: Expected O, but got Unknown //IL_110b1: Unknown result type (might be due to invalid IL or missing references) //IL_110b6: Unknown result type (might be due to invalid IL or missing references) //IL_110c1: Unknown result type (might be due to invalid IL or missing references) //IL_110cc: Unknown result type (might be due to invalid IL or missing references) //IL_110d1: Unknown result type (might be due to invalid IL or missing references) //IL_110d6: Unknown result type (might be due to invalid IL or missing references) //IL_110dd: Unknown result type (might be due to invalid IL or missing references) //IL_110e4: Unknown result type (might be due to invalid IL or missing references) //IL_110eb: Unknown result type (might be due to invalid IL or missing references) //IL_110f7: Unknown result type (might be due to invalid IL or missing references) //IL_11103: Unknown result type (might be due to invalid IL or missing references) //IL_1110f: Unknown result type (might be due to invalid IL or missing references) //IL_1111b: Expected O, but got Unknown //IL_1111d: Unknown result type (might be due to invalid IL or missing references) //IL_11122: Unknown result type (might be due to invalid IL or missing references) //IL_1112d: Unknown result type (might be due to invalid IL or missing references) //IL_11138: Unknown result type (might be due to invalid IL or missing references) //IL_1113d: Unknown result type (might be due to invalid IL or missing references) //IL_11142: Unknown result type (might be due to invalid IL or missing references) //IL_11149: Unknown result type (might be due to invalid IL or missing references) //IL_11150: Unknown result type (might be due to invalid IL or missing references) //IL_11157: Unknown result type (might be due to invalid IL or missing references) //IL_11163: Unknown result type (might be due to invalid IL or missing references) //IL_1116f: Unknown result type (might be due to invalid IL or missing references) //IL_1117b: Unknown result type (might be due to invalid IL or missing references) //IL_11187: Expected O, but got Unknown //IL_111a0: Unknown result type (might be due to invalid IL or missing references) //IL_111b5: Unknown result type (might be due to invalid IL or missing references) //IL_111f3: Unknown result type (might be due to invalid IL or missing references) //IL_11229: Unknown result type (might be due to invalid IL or missing references) //IL_11249: Unknown result type (might be due to invalid IL or missing references) //IL_11269: Unknown result type (might be due to invalid IL or missing references) //IL_11289: Unknown result type (might be due to invalid IL or missing references) //IL_112a9: Unknown result type (might be due to invalid IL or missing references) //IL_112d3: Unknown result type (might be due to invalid IL or missing references) //IL_112fd: Unknown result type (might be due to invalid IL or missing references) //IL_1138f: Unknown result type (might be due to invalid IL or missing references) //IL_1139a: Unknown result type (might be due to invalid IL or missing references) //IL_113a5: Unknown result type (might be due to invalid IL or missing references) //IL_113b0: Unknown result type (might be due to invalid IL or missing references) //IL_113bb: Unknown result type (might be due to invalid IL or missing references) //IL_113c5: Unknown result type (might be due to invalid IL or missing references) //IL_113ca: Unknown result type (might be due to invalid IL or missing references) //IL_113da: Expected O, but got Unknown //IL_11423: Unknown result type (might be due to invalid IL or missing references) //IL_1142d: Expected O, but got Unknown //IL_11430: Unknown result type (might be due to invalid IL or missing references) //IL_1143a: Expected O, but got Unknown //IL_11445: Unknown result type (might be due to invalid IL or missing references) //IL_114b6: Unknown result type (might be due to invalid IL or missing references) //IL_114bb: Unknown result type (might be due to invalid IL or missing references) //IL_114d0: Unknown result type (might be due to invalid IL or missing references) //IL_114d5: Unknown result type (might be due to invalid IL or missing references) //IL_114dc: Unknown result type (might be due to invalid IL or missing references) //IL_114e8: Expected O, but got Unknown //IL_11545: Unknown result type (might be due to invalid IL or missing references) //IL_1154a: Unknown result type (might be due to invalid IL or missing references) //IL_11591: Unknown result type (might be due to invalid IL or missing references) //IL_115b1: Unknown result type (might be due to invalid IL or missing references) //IL_115d1: Unknown result type (might be due to invalid IL or missing references) //IL_115f1: Unknown result type (might be due to invalid IL or missing references) //IL_11611: Unknown result type (might be due to invalid IL or missing references) //IL_1165d: Unknown result type (might be due to invalid IL or missing references) //IL_116a9: Unknown result type (might be due to invalid IL or missing references) //IL_116f5: Unknown result type (might be due to invalid IL or missing references) //IL_11741: Unknown result type (might be due to invalid IL or missing references) //IL_1176b: Unknown result type (might be due to invalid IL or missing references) //IL_11795: Unknown result type (might be due to invalid IL or missing references) //IL_117bf: Unknown result type (might be due to invalid IL or missing references) //IL_117e9: Unknown result type (might be due to invalid IL or missing references) //IL_1187b: Unknown result type (might be due to invalid IL or missing references) //IL_11886: Unknown result type (might be due to invalid IL or missing references) //IL_11891: Unknown result type (might be due to invalid IL or missing references) //IL_1189c: Unknown result type (might be due to invalid IL or missing references) //IL_118a7: Unknown result type (might be due to invalid IL or missing references) //IL_118b1: Unknown result type (might be due to invalid IL or missing references) //IL_118b6: Unknown result type (might be due to invalid IL or missing references) //IL_118c6: Expected O, but got Unknown //IL_1190f: Unknown result type (might be due to invalid IL or missing references) //IL_11919: Expected O, but got Unknown //IL_1191c: Unknown result type (might be due to invalid IL or missing references) //IL_11926: Expected O, but got Unknown //IL_11931: Unknown result type (might be due to invalid IL or missing references) //IL_119a2: Unknown result type (might be due to invalid IL or missing references) //IL_119a7: Unknown result type (might be due to invalid IL or missing references) //IL_119bc: Unknown result type (might be due to invalid IL or missing references) //IL_119c1: Unknown result type (might be due to invalid IL or missing references) //IL_119c8: Unknown result type (might be due to invalid IL or missing references) //IL_119d4: Expected O, but got Unknown //IL_11a32: Unknown result type (might be due to invalid IL or missing references) //IL_11a37: Unknown result type (might be due to invalid IL or missing references) //IL_11a6d: Unknown result type (might be due to invalid IL or missing references) //IL_11a74: Expected O, but got Unknown //IL_11a7f: Unknown result type (might be due to invalid IL or missing references) //IL_11a84: Unknown result type (might be due to invalid IL or missing references) //IL_11a8f: Unknown result type (might be due to invalid IL or missing references) //IL_11a9a: Unknown result type (might be due to invalid IL or missing references) //IL_11a9f: Unknown result type (might be due to invalid IL or missing references) //IL_11aa4: Unknown result type (might be due to invalid IL or missing references) //IL_11aab: Unknown result type (might be due to invalid IL or missing references) //IL_11ab2: Unknown result type (might be due to invalid IL or missing references) //IL_11ab9: Unknown result type (might be due to invalid IL or missing references) //IL_11ac5: Unknown result type (might be due to invalid IL or missing references) //IL_11ad1: Unknown result type (might be due to invalid IL or missing references) //IL_11add: Unknown result type (might be due to invalid IL or missing references) //IL_11ae9: Expected O, but got Unknown //IL_11aeb: Unknown result type (might be due to invalid IL or missing references) //IL_11af0: Unknown result type (might be due to invalid IL or missing references) //IL_11afb: Unknown result type (might be due to invalid IL or missing references) //IL_11b06: Unknown result type (might be due to invalid IL or missing references) //IL_11b0b: Unknown result type (might be due to invalid IL or missing references) //IL_11b10: Unknown result type (might be due to invalid IL or missing references) //IL_11b17: Unknown result type (might be due to invalid IL or missing references) //IL_11b1e: Unknown result type (might be due to invalid IL or missing references) //IL_11b25: Unknown result type (might be due to invalid IL or missing references) //IL_11b31: Unknown result type (might be due to invalid IL or missing references) //IL_11b3d: Unknown result type (might be due to invalid IL or missing references) //IL_11b49: Unknown result type (might be due to invalid IL or missing references) //IL_11b55: Expected O, but got Unknown //IL_11b6e: Unknown result type (might be due to invalid IL or missing references) //IL_11b83: Unknown result type (might be due to invalid IL or missing references) //IL_11bc1: Unknown result type (might be due to invalid IL or missing references) //IL_11bf7: Unknown result type (might be due to invalid IL or missing references) //IL_11c17: Unknown result type (might be due to invalid IL or missing references) //IL_11c37: Unknown result type (might be due to invalid IL or missing references) //IL_11c57: Unknown result type (might be due to invalid IL or missing references) //IL_11c77: Unknown result type (might be due to invalid IL or missing references) //IL_11ca6: Unknown result type (might be due to invalid IL or missing references) //IL_11cd0: Unknown result type (might be due to invalid IL or missing references) //IL_11cfa: Unknown result type (might be due to invalid IL or missing references) //IL_11d8c: Unknown result type (might be due to invalid IL or missing references) //IL_11d97: Unknown result type (might be due to invalid IL or missing references) //IL_11da2: Unknown result type (might be due to invalid IL or missing references) //IL_11dad: Unknown result type (might be due to invalid IL or missing references) //IL_11db8: Unknown result type (might be due to invalid IL or missing references) //IL_11dc2: Unknown result type (might be due to invalid IL or missing references) //IL_11dc7: Unknown result type (might be due to invalid IL or missing references) //IL_11dd7: Expected O, but got Unknown //IL_11e20: Unknown result type (might be due to invalid IL or missing references) //IL_11e2a: Expected O, but got Unknown //IL_11e2d: Unknown result type (might be due to invalid IL or missing references) //IL_11e37: Expected O, but got Unknown //IL_11e42: Unknown result type (might be due to invalid IL or missing references) //IL_11eb3: Unknown result type (might be due to invalid IL or missing references) //IL_11eb8: Unknown result type (might be due to invalid IL or missing references) //IL_11ecd: Unknown result type (might be due to invalid IL or missing references) //IL_11ed2: Unknown result type (might be due to invalid IL or missing references) //IL_11ed9: Unknown result type (might be due to invalid IL or missing references) //IL_11ee5: Expected O, but got Unknown //IL_11f43: Unknown result type (might be due to invalid IL or missing references) //IL_11f48: Unknown result type (might be due to invalid IL or missing references) //IL_11f7e: Unknown result type (might be due to invalid IL or missing references) //IL_11f85: Expected O, but got Unknown //IL_11f90: Unknown result type (might be due to invalid IL or missing references) //IL_11f95: Unknown result type (might be due to invalid IL or missing references) //IL_11fa0: Unknown result type (might be due to invalid IL or missing references) //IL_11fab: Unknown result type (might be due to invalid IL or missing references) //IL_11fb0: Unknown result type (might be due to invalid IL or missing references) //IL_11fb5: Unknown result type (might be due to invalid IL or missing references) //IL_11fbc: Unknown result type (might be due to invalid IL or missing references) //IL_11fc3: Unknown result type (might be due to invalid IL or missing references) //IL_11fca: Unknown result type (might be due to invalid IL or missing references) //IL_11fd6: Unknown result type (might be due to invalid IL or missing references) //IL_11fe2: Unknown result type (might be due to invalid IL or missing references) //IL_11fee: Unknown result type (might be due to invalid IL or missing references) //IL_11ffa: Expected O, but got Unknown //IL_11ffc: Unknown result type (might be due to invalid IL or missing references) //IL_12001: Unknown result type (might be due to invalid IL or missing references) //IL_1200c: Unknown result type (might be due to invalid IL or missing references) //IL_12017: Unknown result type (might be due to invalid IL or missing references) //IL_1201c: Unknown result type (might be due to invalid IL or missing references) //IL_12021: Unknown result type (might be due to invalid IL or missing references) //IL_12028: Unknown result type (might be due to invalid IL or missing references) //IL_1202f: Unknown result type (might be due to invalid IL or missing references) //IL_12036: Unknown result type (might be due to invalid IL or missing references) //IL_12042: Unknown result type (might be due to invalid IL or missing references) //IL_1204e: Unknown result type (might be due to invalid IL or missing references) //IL_1205a: Unknown result type (might be due to invalid IL or missing references) //IL_12066: Expected O, but got Unknown //IL_12068: Unknown result type (might be due to invalid IL or missing references) //IL_1206d: Unknown result type (might be due to invalid IL or missing references) //IL_12078: Unknown result type (might be due to invalid IL or missing references) //IL_12083: Unknown result type (might be due to invalid IL or missing references) //IL_12088: Unknown result type (might be due to invalid IL or missing references) //IL_1208d: Unknown result type (might be due to invalid IL or missing references) //IL_12094: Unknown result type (might be due to invalid IL or missing references) //IL_1209b: Unknown result type (might be due to invalid IL or missing references) //IL_120a2: Unknown result type (might be due to invalid IL or missing references) //IL_120ae: Unknown result type (might be due to invalid IL or missing references) //IL_120ba: Unknown result type (might be due to invalid IL or missing references) //IL_120c6: Unknown result type (might be due to invalid IL or missing references) //IL_120d2: Expected O, but got Unknown //IL_120d4: Unknown result type (might be due to invalid IL or missing references) //IL_120d9: Unknown result type (might be due to invalid IL or missing references) //IL_120e4: Unknown result type (might be due to invalid IL or missing references) //IL_120ef: Unknown result type (might be due to invalid IL or missing references) //IL_120f4: Unknown result type (might be due to invalid IL or missing references) //IL_120f9: Unknown result type (might be due to invalid IL or missing references) //IL_12100: Unknown result type (might be due to invalid IL or missing references) //IL_12107: Unknown result type (might be due to invalid IL or missing references) //IL_1210e: Unknown result type (might be due to invalid IL or missing references) //IL_1211a: Unknown result type (might be due to invalid IL or missing references) //IL_12126: Unknown result type (might be due to invalid IL or missing references) //IL_12132: Unknown result type (might be due to invalid IL or missing references) //IL_1213e: Expected O, but got Unknown //IL_12140: Unknown result type (might be due to invalid IL or missing references) //IL_12145: Unknown result type (might be due to invalid IL or missing references) //IL_12150: Unknown result type (might be due to invalid IL or missing references) //IL_1215b: Unknown result type (might be due to invalid IL or missing references) //IL_12160: Unknown result type (might be due to invalid IL or missing references) //IL_12165: Unknown result type (might be due to invalid IL or missing references) //IL_1216c: Unknown result type (might be due to invalid IL or missing references) //IL_12173: Unknown result type (might be due to invalid IL or missing references) //IL_1217a: Unknown result type (might be due to invalid IL or missing references) //IL_12186: Unknown result type (might be due to invalid IL or missing references) //IL_12192: Unknown result type (might be due to invalid IL or missing references) //IL_1219e: Unknown result type (might be due to invalid IL or missing references) //IL_121aa: Expected O, but got Unknown //IL_121ac: Unknown result type (might be due to invalid IL or missing references) //IL_121b1: Unknown result type (might be due to invalid IL or missing references) //IL_121bc: Unknown result type (might be due to invalid IL or missing references) //IL_121c7: Unknown result type (might be due to invalid IL or missing references) //IL_121cc: Unknown result type (might be due to invalid IL or missing references) //IL_121d1: Unknown result type (might be due to invalid IL or missing references) //IL_121d8: Unknown result type (might be due to invalid IL or missing references) //IL_121df: Unknown result type (might be due to invalid IL or missing references) //IL_121e6: Unknown result type (might be due to invalid IL or missing references) //IL_121f2: Unknown result type (might be due to invalid IL or missing references) //IL_121fe: Unknown result type (might be due to invalid IL or missing references) //IL_1220a: Unknown result type (might be due to invalid IL or missing references) //IL_12216: Expected O, but got Unknown //IL_12218: Unknown result type (might be due to invalid IL or missing references) //IL_1221d: Unknown result type (might be due to invalid IL or missing references) //IL_12228: Unknown result type (might be due to invalid IL or missing references) //IL_12233: Unknown result type (might be due to invalid IL or missing references) //IL_12238: Unknown result type (might be due to invalid IL or missing references) //IL_1223d: Unknown result type (might be due to invalid IL or missing references) //IL_12244: Unknown result type (might be due to invalid IL or missing references) //IL_1224b: Unknown result type (might be due to invalid IL or missing references) //IL_12252: Unknown result type (might be due to invalid IL or missing references) //IL_1225e: Unknown result type (might be due to invalid IL or missing references) //IL_1226a: Unknown result type (might be due to invalid IL or missing references) //IL_12276: Unknown result type (might be due to invalid IL or missing references) //IL_12282: Expected O, but got Unknown //IL_1229b: Unknown result type (might be due to invalid IL or missing references) //IL_122b0: Unknown result type (might be due to invalid IL or missing references) //IL_122c5: Unknown result type (might be due to invalid IL or missing references) //IL_122da: Unknown result type (might be due to invalid IL or missing references) //IL_122ef: Unknown result type (might be due to invalid IL or missing references) //IL_12304: Unknown result type (might be due to invalid IL or missing references) //IL_12319: Unknown result type (might be due to invalid IL or missing references) //IL_12357: Unknown result type (might be due to invalid IL or missing references) //IL_1238d: Unknown result type (might be due to invalid IL or missing references) //IL_123ad: Unknown result type (might be due to invalid IL or missing references) //IL_123cd: Unknown result type (might be due to invalid IL or missing references) //IL_123ed: Unknown result type (might be due to invalid IL or missing references) //IL_1240d: Unknown result type (might be due to invalid IL or missing references) //IL_1242d: Unknown result type (might be due to invalid IL or missing references) //IL_1244d: Unknown result type (might be due to invalid IL or missing references) //IL_1247c: Unknown result type (might be due to invalid IL or missing references) //IL_124a6: Unknown result type (might be due to invalid IL or missing references) //IL_124d0: Unknown result type (might be due to invalid IL or missing references) //IL_124fa: Unknown result type (might be due to invalid IL or missing references) //IL_12524: Unknown result type (might be due to invalid IL or missing references) //IL_125b6: Unknown result type (might be due to invalid IL or missing references) //IL_125c1: Unknown result type (might be due to invalid IL or missing references) //IL_125cc: Unknown result type (might be due to invalid IL or missing references) //IL_125d7: Unknown result type (might be due to invalid IL or missing references) //IL_125e2: Unknown result type (might be due to invalid IL or missing references) //IL_125ec: Unknown result type (might be due to invalid IL or missing references) //IL_125f1: Unknown result type (might be due to invalid IL or missing references) //IL_12601: Expected O, but got Unknown //IL_1264a: Unknown result type (might be due to invalid IL or missing references) //IL_12654: Expected O, but got Unknown //IL_12657: Unknown result type (might be due to invalid IL or missing references) //IL_12661: Expected O, but got Unknown //IL_1266c: Unknown result type (might be due to invalid IL or missing references) //IL_126dd: Unknown result type (might be due to invalid IL or missing references) //IL_126e2: Unknown result type (might be due to invalid IL or missing references) //IL_126f7: Unknown result type (might be due to invalid IL or missing references) //IL_126fc: Unknown result type (might be due to invalid IL or missing references) //IL_12703: Unknown result type (might be due to invalid IL or missing references) //IL_1270f: Expected O, but got Unknown //IL_1276d: Unknown result type (might be due to invalid IL or missing references) //IL_12772: Unknown result type (might be due to invalid IL or missing references) //IL_127a8: Unknown result type (might be due to invalid IL or missing references) //IL_127af: Expected O, but got Unknown //IL_127ba: Unknown result type (might be due to invalid IL or missing references) //IL_127bf: Unknown result type (might be due to invalid IL or missing references) //IL_127ca: Unknown result type (might be due to invalid IL or missing references) //IL_127d5: Unknown result type (might be due to invalid IL or missing references) //IL_127da: Unknown result type (might be due to invalid IL or missing references) //IL_127df: Unknown result type (might be due to invalid IL or missing references) //IL_127e6: Unknown result type (might be due to invalid IL or missing references) //IL_127ed: Unknown result type (might be due to invalid IL or missing references) //IL_127f4: Unknown result type (might be due to invalid IL or missing references) //IL_12800: Unknown result type (might be due to invalid IL or missing references) //IL_1280c: Unknown result type (might be due to invalid IL or missing references) //IL_12818: Unknown result type (might be due to invalid IL or missing references) //IL_12824: Expected O, but got Unknown //IL_12826: Unknown result type (might be due to invalid IL or missing references) //IL_1282b: Unknown result type (might be due to invalid IL or missing references) //IL_12836: Unknown result type (might be due to invalid IL or missing references) //IL_12841: Unknown result type (might be due to invalid IL or missing references) //IL_12846: Unknown result type (might be due to invalid IL or missing references) //IL_1284b: Unknown result type (might be due to invalid IL or missing references) //IL_12852: Unknown result type (might be due to invalid IL or missing references) //IL_12859: Unknown result type (might be due to invalid IL or missing references) //IL_12860: Unknown result type (might be due to invalid IL or missing references) //IL_1286c: Unknown result type (might be due to invalid IL or missing references) //IL_12878: Unknown result type (might be due to invalid IL or missing references) //IL_12884: Unknown result type (might be due to invalid IL or missing references) //IL_12890: Expected O, but got Unknown //IL_12892: Unknown result type (might be due to invalid IL or missing references) //IL_12897: Unknown result type (might be due to invalid IL or missing references) //IL_128a2: Unknown result type (might be due to invalid IL or missing references) //IL_128ad: Unknown result type (might be due to invalid IL or missing references) //IL_128b2: Unknown result type (might be due to invalid IL or missing references) //IL_128b7: Unknown result type (might be due to invalid IL or missing references) //IL_128be: Unknown result type (might be due to invalid IL or missing references) //IL_128c5: Unknown result type (might be due to invalid IL or missing references) //IL_128cc: Unknown result type (might be due to invalid IL or missing references) //IL_128d8: Unknown result type (might be due to invalid IL or missing references) //IL_128e4: Unknown result type (might be due to invalid IL or missing references) //IL_128f0: Unknown result type (might be due to invalid IL or missing references) //IL_128fc: Expected O, but got Unknown //IL_12915: Unknown result type (might be due to invalid IL or missing references) //IL_1292a: Unknown result type (might be due to invalid IL or missing references) //IL_1293f: Unknown result type (might be due to invalid IL or missing references) //IL_1297d: Unknown result type (might be due to invalid IL or missing references) //IL_1299f: Unknown result type (might be due to invalid IL or missing references) //IL_129a6: Expected O, but got Unknown //IL_129b1: Unknown result type (might be due to invalid IL or missing references) //IL_129b6: Unknown result type (might be due to invalid IL or missing references) //IL_129c1: Unknown result type (might be due to invalid IL or missing references) //IL_129cc: Unknown result type (might be due to invalid IL or missing references) //IL_129d1: Unknown result type (might be due to invalid IL or missing references) //IL_129d6: Unknown result type (might be due to invalid IL or missing references) //IL_129dd: Unknown result type (might be due to invalid IL or missing references) //IL_129e4: Unknown result type (might be due to invalid IL or missing references) //IL_129eb: Unknown result type (might be due to invalid IL or missing references) //IL_129f7: Unknown result type (might be due to invalid IL or missing references) //IL_12a03: Unknown result type (might be due to invalid IL or missing references) //IL_12a0f: Unknown result type (might be due to invalid IL or missing references) //IL_12a1b: Expected O, but got Unknown //IL_12a1d: Unknown result type (might be due to invalid IL or missing references) //IL_12a22: Unknown result type (might be due to invalid IL or missing references) //IL_12a2d: Unknown result type (might be due to invalid IL or missing references) //IL_12a38: Unknown result type (might be due to invalid IL or missing references) //IL_12a3d: Unknown result type (might be due to invalid IL or missing references) //IL_12a42: Unknown result type (might be due to invalid IL or missing references) //IL_12a49: Unknown result type (might be due to invalid IL or missing references) //IL_12a50: Unknown result type (might be due to invalid IL or missing references) //IL_12a57: Unknown result type (might be due to invalid IL or missing references) //IL_12a63: Unknown result type (might be due to invalid IL or missing references) //IL_12a6f: Unknown result type (might be due to invalid IL or missing references) //IL_12a7b: Unknown result type (might be due to invalid IL or missing references) //IL_12a87: Expected O, but got Unknown //IL_12a89: Unknown result type (might be due to invalid IL or missing references) //IL_12a8e: Unknown result type (might be due to invalid IL or missing references) //IL_12a99: Unknown result type (might be due to invalid IL or missing references) //IL_12aa4: Unknown result type (might be due to invalid IL or missing references) //IL_12aa9: Unknown result type (might be due to invalid IL or missing references) //IL_12aae: Unknown result type (might be due to invalid IL or missing references) //IL_12ab5: Unknown result type (might be due to invalid IL or missing references) //IL_12abc: Unknown result type (might be due to invalid IL or missing references) //IL_12ac3: Unknown result type (might be due to invalid IL or missing references) //IL_12acf: Unknown result type (might be due to invalid IL or missing references) //IL_12adb: Unknown result type (might be due to invalid IL or missing references) //IL_12ae7: Unknown result type (might be due to invalid IL or missing references) //IL_12af3: Expected O, but got Unknown //IL_12af5: Unknown result type (might be due to invalid IL or missing references) //IL_12afa: Unknown result type (might be due to invalid IL or missing references) //IL_12b05: Unknown result type (might be due to invalid IL or missing references) //IL_12b10: Unknown result type (might be due to invalid IL or missing references) //IL_12b15: Unknown result type (might be due to invalid IL or missing references) //IL_12b1a: Unknown result type (might be due to invalid IL or missing references) //IL_12b21: Unknown result type (might be due to invalid IL or missing references) //IL_12b28: Unknown result type (might be due to invalid IL or missing references) //IL_12b2f: Unknown result type (might be due to invalid IL or missing references) //IL_12b3b: Unknown result type (might be due to invalid IL or missing references) //IL_12b47: Unknown result type (might be due to invalid IL or missing references) //IL_12b53: Unknown result type (might be due to invalid IL or missing references) //IL_12b5f: Expected O, but got Unknown //IL_12b61: Unknown result type (might be due to invalid IL or missing references) //IL_12b66: Unknown result type (might be due to invalid IL or missing references) //IL_12b71: Unknown result type (might be due to invalid IL or missing references) //IL_12b7c: Unknown result type (might be due to invalid IL or missing references) //IL_12b81: Unknown result type (might be due to invalid IL or missing references) //IL_12b86: Unknown result type (might be due to invalid IL or missing references) //IL_12b8d: Unknown result type (might be due to invalid IL or missing references) //IL_12b94: Unknown result type (might be due to invalid IL or missing references) //IL_12b9b: Unknown result type (might be due to invalid IL or missing references) //IL_12ba7: Unknown result type (might be due to invalid IL or missing references) //IL_12bb3: Unknown result type (might be due to invalid IL or missing references) //IL_12bbf: Unknown result type (might be due to invalid IL or missing references) //IL_12bcb: Expected O, but got Unknown //IL_12bcd: Unknown result type (might be due to invalid IL or missing references) //IL_12bd2: Unknown result type (might be due to invalid IL or missing references) //IL_12bdd: Unknown result type (might be due to invalid IL or missing references) //IL_12be8: Unknown result type (might be due to invalid IL or missing references) //IL_12bed: Unknown result type (might be due to invalid IL or missing references) //IL_12bf2: Unknown result type (might be due to invalid IL or missing references) //IL_12bf9: Unknown result type (might be due to invalid IL or missing references) //IL_12c00: Unknown result type (might be due to invalid IL or missing references) //IL_12c07: Unknown result type (might be due to invalid IL or missing references) //IL_12c13: Unknown result type (might be due to invalid IL or missing references) //IL_12c1f: Unknown result type (might be due to invalid IL or missing references) //IL_12c2b: Unknown result type (might be due to invalid IL or missing references) //IL_12c37: Expected O, but got Unknown //IL_12c50: Unknown result type (might be due to invalid IL or missing references) //IL_12c65: Unknown result type (might be due to invalid IL or missing references) //IL_12c7a: Unknown result type (might be due to invalid IL or missing references) //IL_12c8f: Unknown result type (might be due to invalid IL or missing references) //IL_12ca4: Unknown result type (might be due to invalid IL or missing references) //IL_12cb9: Unknown result type (might be due to invalid IL or missing references) //IL_12cf7: Unknown result type (might be due to invalid IL or missing references) //IL_12d19: Unknown result type (might be due to invalid IL or missing references) //IL_12d20: Expected O, but got Unknown //IL_12d2b: Unknown result type (might be due to invalid IL or missing references) //IL_12d30: Unknown result type (might be due to invalid IL or missing references) //IL_12d3b: Unknown result type (might be due to invalid IL or missing references) //IL_12d46: Unknown result type (might be due to invalid IL or missing references) //IL_12d4b: Unknown result type (might be due to invalid IL or missing references) //IL_12d50: Unknown result type (might be due to invalid IL or missing references) //IL_12d57: Unknown result type (might be due to invalid IL or missing references) //IL_12d5e: Unknown result type (might be due to invalid IL or missing references) //IL_12d65: Unknown result type (might be due to invalid IL or missing references) //IL_12d71: Unknown result type (might be due to invalid IL or missing references) //IL_12d7d: Unknown result type (might be due to invalid IL or missing references) //IL_12d89: Unknown result type (might be due to invalid IL or missing references) //IL_12d95: Expected O, but got Unknown //IL_12d97: Unknown result type (might be due to invalid IL or missing references) //IL_12d9c: Unknown result type (might be due to invalid IL or missing references) //IL_12da7: Unknown result type (might be due to invalid IL or missing references) //IL_12db2: Unknown result type (might be due to invalid IL or missing references) //IL_12db7: Unknown result type (might be due to invalid IL or missing references) //IL_12dbc: Unknown result type (might be due to invalid IL or missing references) //IL_12dc3: Unknown result type (might be due to invalid IL or missing references) //IL_12dca: Unknown result type (might be due to invalid IL or missing references) //IL_12dd1: Unknown result type (might be due to invalid IL or missing references) //IL_12ddd: Unknown result type (might be due to invalid IL or missing references) //IL_12de9: Unknown result type (might be due to invalid IL or missing references) //IL_12df5: Unknown result type (might be due to invalid IL or missing references) //IL_12e01: Expected O, but got Unknown //IL_12e03: Unknown result type (might be due to invalid IL or missing references) //IL_12e08: Unknown result type (might be due to invalid IL or missing references) //IL_12e13: Unknown result type (might be due to invalid IL or missing references) //IL_12e1e: Unknown result type (might be due to invalid IL or missing references) //IL_12e23: Unknown result type (might be due to invalid IL or missing references) //IL_12e28: Unknown result type (might be due to invalid IL or missing references) //IL_12e2f: Unknown result type (might be due to invalid IL or missing references) //IL_12e36: Unknown result type (might be due to invalid IL or missing references) //IL_12e3d: Unknown result type (might be due to invalid IL or missing references) //IL_12e49: Unknown result type (might be due to invalid IL or missing references) //IL_12e55: Unknown result type (might be due to invalid IL or missing references) //IL_12e61: Unknown result type (might be due to invalid IL or missing references) //IL_12e6d: Expected O, but got Unknown //IL_12e6f: Unknown result type (might be due to invalid IL or missing references) //IL_12e74: Unknown result type (might be due to invalid IL or missing references) //IL_12e7f: Unknown result type (might be due to invalid IL or missing references) //IL_12e8a: Unknown result type (might be due to invalid IL or missing references) //IL_12e8f: Unknown result type (might be due to invalid IL or missing references) //IL_12e94: Unknown result type (might be due to invalid IL or missing references) //IL_12e9b: Unknown result type (might be due to invalid IL or missing references) //IL_12ea2: Unknown result type (might be due to invalid IL or missing references) //IL_12ea9: Unknown result type (might be due to invalid IL or missing references) //IL_12eb5: Unknown result type (might be due to invalid IL or missing references) //IL_12ec1: Unknown result type (might be due to invalid IL or missing references) //IL_12ecd: Unknown result type (might be due to invalid IL or missing references) //IL_12ed9: Expected O, but got Unknown //IL_12edb: Unknown result type (might be due to invalid IL or missing references) //IL_12ee0: Unknown result type (might be due to invalid IL or missing references) //IL_12eeb: Unknown result type (might be due to invalid IL or missing references) //IL_12ef6: Unknown result type (might be due to invalid IL or missing references) //IL_12efb: Unknown result type (might be due to invalid IL or missing references) //IL_12f00: Unknown result type (might be due to invalid IL or missing references) //IL_12f07: Unknown result type (might be due to invalid IL or missing references) //IL_12f0e: Unknown result type (might be due to invalid IL or missing references) //IL_12f15: Unknown result type (might be due to invalid IL or missing references) //IL_12f21: Unknown result type (might be due to invalid IL or missing references) //IL_12f2d: Unknown result type (might be due to invalid IL or missing references) //IL_12f39: Unknown result type (might be due to invalid IL or missing references) //IL_12f45: Expected O, but got Unknown //IL_12f47: Unknown result type (might be due to invalid IL or missing references) //IL_12f4c: Unknown result type (might be due to invalid IL or missing references) //IL_12f57: Unknown result type (might be due to invalid IL or missing references) //IL_12f62: Unknown result type (might be due to invalid IL or missing references) //IL_12f67: Unknown result type (might be due to invalid IL or missing references) //IL_12f6c: Unknown result type (might be due to invalid IL or missing references) //IL_12f73: Unknown result type (might be due to invalid IL or missing references) //IL_12f7a: Unknown result type (might be due to invalid IL or missing references) //IL_12f81: Unknown result type (might be due to invalid IL or missing references) //IL_12f8d: Unknown result type (might be due to invalid IL or missing references) //IL_12f99: Unknown result type (might be due to invalid IL or missing references) //IL_12fa5: Unknown result type (might be due to invalid IL or missing references) //IL_12fb1: Expected O, but got Unknown //IL_12fb3: Unknown result type (might be due to invalid IL or missing references) //IL_12fb8: Unknown result type (might be due to invalid IL or missing references) //IL_12fc3: Unknown result type (might be due to invalid IL or missing references) //IL_12fce: Unknown result type (might be due to invalid IL or missing references) //IL_12fd3: Unknown result type (might be due to invalid IL or missing references) //IL_12fd8: Unknown result type (might be due to invalid IL or missing references) //IL_12fdf: Unknown result type (might be due to invalid IL or missing references) //IL_12fe6: Unknown result type (might be due to invalid IL or missing references) //IL_12fed: Unknown result type (might be due to invalid IL or missing references) //IL_12ff9: Unknown result type (might be due to invalid IL or missing references) //IL_13005: Unknown result type (might be due to invalid IL or missing references) //IL_13011: Unknown result type (might be due to invalid IL or missing references) //IL_1301d: Expected O, but got Unknown //IL_1301f: Unknown result type (might be due to invalid IL or missing references) //IL_13024: Unknown result type (might be due to invalid IL or missing references) //IL_1302f: Unknown result type (might be due to invalid IL or missing references) //IL_1303a: Unknown result type (might be due to invalid IL or missing references) //IL_1303f: Unknown result type (might be due to invalid IL or missing references) //IL_13044: Unknown result type (might be due to invalid IL or missing references) //IL_1304b: Unknown result type (might be due to invalid IL or missing references) //IL_13052: Unknown result type (might be due to invalid IL or missing references) //IL_13059: Unknown result type (might be due to invalid IL or missing references) //IL_13065: Unknown result type (might be due to invalid IL or missing references) //IL_13071: Unknown result type (might be due to invalid IL or missing references) //IL_1307d: Unknown result type (might be due to invalid IL or missing references) //IL_13089: Expected O, but got Unknown //IL_130a2: Unknown result type (might be due to invalid IL or missing references) //IL_130b7: Unknown result type (might be due to invalid IL or missing references) //IL_130cc: Unknown result type (might be due to invalid IL or missing references) //IL_130e1: Unknown result type (might be due to invalid IL or missing references) //IL_130f6: Unknown result type (might be due to invalid IL or missing references) //IL_1310b: Unknown result type (might be due to invalid IL or missing references) //IL_13120: Unknown result type (might be due to invalid IL or missing references) //IL_13135: Unknown result type (might be due to invalid IL or missing references) //IL_13173: Unknown result type (might be due to invalid IL or missing references) //IL_131a9: Unknown result type (might be due to invalid IL or missing references) //IL_131c9: Unknown result type (might be due to invalid IL or missing references) //IL_131e9: Unknown result type (might be due to invalid IL or missing references) //IL_13209: Unknown result type (might be due to invalid IL or missing references) //IL_13229: Unknown result type (might be due to invalid IL or missing references) //IL_13249: Unknown result type (might be due to invalid IL or missing references) //IL_13269: Unknown result type (might be due to invalid IL or missing references) //IL_13293: Unknown result type (might be due to invalid IL or missing references) //IL_132bd: Unknown result type (might be due to invalid IL or missing references) //IL_132e7: Unknown result type (might be due to invalid IL or missing references) //IL_13311: Unknown result type (might be due to invalid IL or missing references) //IL_1335d: Unknown result type (might be due to invalid IL or missing references) //IL_133a9: Unknown result type (might be due to invalid IL or missing references) //IL_133f5: Unknown result type (might be due to invalid IL or missing references) //IL_13441: Unknown result type (might be due to invalid IL or missing references) //IL_1348d: Unknown result type (might be due to invalid IL or missing references) //IL_134d9: Unknown result type (might be due to invalid IL or missing references) //IL_13525: Unknown result type (might be due to invalid IL or missing references) //IL_13554: Unknown result type (might be due to invalid IL or missing references) //IL_1357e: Unknown result type (might be due to invalid IL or missing references) //IL_13610: Unknown result type (might be due to invalid IL or missing references) //IL_1361b: Unknown result type (might be due to invalid IL or missing references) //IL_13626: Unknown result type (might be due to invalid IL or missing references) //IL_13631: Unknown result type (might be due to invalid IL or missing references) //IL_1363c: Unknown result type (might be due to invalid IL or missing references) //IL_13646: Unknown result type (might be due to invalid IL or missing references) //IL_1364b: Unknown result type (might be due to invalid IL or missing references) //IL_1365b: Expected O, but got Unknown //IL_136a4: Unknown result type (might be due to invalid IL or missing references) //IL_136ae: Expected O, but got Unknown //IL_136b1: Unknown result type (might be due to invalid IL or missing references) //IL_136bb: Expected O, but got Unknown //IL_136c6: Unknown result type (might be due to invalid IL or missing references) //IL_13737: Unknown result type (might be due to invalid IL or missing references) //IL_1373c: Unknown result type (might be due to invalid IL or missing references) //IL_13751: Unknown result type (might be due to invalid IL or missing references) //IL_13756: Unknown result type (might be due to invalid IL or missing references) //IL_1375d: Unknown result type (might be due to invalid IL or missing references) //IL_13769: Expected O, but got Unknown //IL_137c5: Unknown result type (might be due to invalid IL or missing references) //IL_137ca: Unknown result type (might be due to invalid IL or missing references) //IL_13806: Unknown result type (might be due to invalid IL or missing references) //IL_13826: Unknown result type (might be due to invalid IL or missing references) //IL_13846: Unknown result type (might be due to invalid IL or missing references) //IL_13866: Unknown result type (might be due to invalid IL or missing references) //IL_13886: Unknown result type (might be due to invalid IL or missing references) //IL_138b0: Unknown result type (might be due to invalid IL or missing references) //IL_138da: Unknown result type (might be due to invalid IL or missing references) //IL_13904: Unknown result type (might be due to invalid IL or missing references) //IL_1392e: Unknown result type (might be due to invalid IL or missing references) //IL_13958: Unknown result type (might be due to invalid IL or missing references) //IL_13982: Unknown result type (might be due to invalid IL or missing references) //IL_139ac: Unknown result type (might be due to invalid IL or missing references) //IL_13a3e: Unknown result type (might be due to invalid IL or missing references) //IL_13a49: Unknown result type (might be due to invalid IL or missing references) //IL_13a54: Unknown result type (might be due to invalid IL or missing references) //IL_13a5f: Unknown result type (might be due to invalid IL or missing references) //IL_13a6a: Unknown result type (might be due to invalid IL or missing references) //IL_13a74: Unknown result type (might be due to invalid IL or missing references) //IL_13a79: Unknown result type (might be due to invalid IL or missing references) //IL_13a89: Expected O, but got Unknown //IL_13ad2: Unknown result type (might be due to invalid IL or missing references) //IL_13adc: Expected O, but got Unknown //IL_13adf: Unknown result type (might be due to invalid IL or missing references) //IL_13ae9: Expected O, but got Unknown //IL_13af4: Unknown result type (might be due to invalid IL or missing references) //IL_13b65: Unknown result type (might be due to invalid IL or missing references) //IL_13b6a: Unknown result type (might be due to invalid IL or missing references) //IL_13b7f: Unknown result type (might be due to invalid IL or missing references) //IL_13b84: Unknown result type (might be due to invalid IL or missing references) //IL_13b8b: Unknown result type (might be due to invalid IL or missing references) //IL_13b97: Expected O, but got Unknown //IL_13bf3: Unknown result type (might be due to invalid IL or missing references) //IL_13bf8: Unknown result type (might be due to invalid IL or missing references) //IL_13c34: Unknown result type (might be due to invalid IL or missing references) //IL_13c54: Unknown result type (might be due to invalid IL or missing references) //IL_13c74: Unknown result type (might be due to invalid IL or missing references) //IL_13c94: Unknown result type (might be due to invalid IL or missing references) //IL_13cb4: Unknown result type (might be due to invalid IL or missing references) //IL_13cde: Unknown result type (might be due to invalid IL or missing references) //IL_13d08: Unknown result type (might be due to invalid IL or missing references) //IL_13d32: Unknown result type (might be due to invalid IL or missing references) //IL_13d5c: Unknown result type (might be due to invalid IL or missing references) //IL_13d86: Unknown result type (might be due to invalid IL or missing references) //IL_13db0: Unknown result type (might be due to invalid IL or missing references) //IL_13dda: Unknown result type (might be due to invalid IL or missing references) //IL_13e04: Unknown result type (might be due to invalid IL or missing references) //IL_13e2e: Unknown result type (might be due to invalid IL or missing references) //IL_13e58: Unknown result type (might be due to invalid IL or missing references) //IL_13e82: Unknown result type (might be due to invalid IL or missing references) //IL_13eac: Unknown result type (might be due to invalid IL or missing references) //IL_13ed6: Unknown result type (might be due to invalid IL or missing references) //IL_13f00: Unknown result type (might be due to invalid IL or missing references) //IL_13f2a: Unknown result type (might be due to invalid IL or missing references) //IL_13f54: Unknown result type (might be due to invalid IL or missing references) //IL_13f7e: Unknown result type (might be due to invalid IL or missing references) //IL_13fa8: Unknown result type (might be due to invalid IL or missing references) //IL_13fd2: Unknown result type (might be due to invalid IL or missing references) //IL_13ffc: Unknown result type (might be due to invalid IL or missing references) //IL_14026: Unknown result type (might be due to invalid IL or missing references) //IL_140b8: Unknown result type (might be due to invalid IL or missing references) //IL_140c3: Unknown result type (might be due to invalid IL or missing references) //IL_140ce: Unknown result type (might be due to invalid IL or missing references) //IL_140d9: Unknown result type (might be due to invalid IL or missing references) //IL_140e4: Unknown result type (might be due to invalid IL or missing references) //IL_140ee: Unknown result type (might be due to invalid IL or missing references) //IL_140f3: Unknown result type (might be due to invalid IL or missing references) //IL_14103: Expected O, but got Unknown //IL_1414c: Unknown result type (might be due to invalid IL or missing references) //IL_14156: Expected O, but got Unknown //IL_14159: Unknown result type (might be due to invalid IL or missing references) //IL_14163: Expected O, but got Unknown //IL_1416e: Unknown result type (might be due to invalid IL or missing references) //IL_141df: Unknown result type (might be due to invalid IL or missing references) //IL_141e4: Unknown result type (might be due to invalid IL or missing references) //IL_141f9: Unknown result type (might be due to invalid IL or missing references) //IL_141fe: Unknown result type (might be due to invalid IL or missing references) //IL_14205: Unknown result type (might be due to invalid IL or missing references) //IL_14211: Expected O, but got Unknown //IL_1426d: Unknown result type (might be due to invalid IL or missing references) //IL_14272: Unknown result type (might be due to invalid IL or missing references) //IL_1429d: Unknown result type (might be due to invalid IL or missing references) //IL_142a4: Expected O, but got Unknown //IL_142af: Unknown result type (might be due to invalid IL or missing references) //IL_142b4: Unknown result type (might be due to invalid IL or missing references) //IL_142bf: Unknown result type (might be due to invalid IL or missing references) //IL_142ca: Unknown result type (might be due to invalid IL or missing references) //IL_142cf: Unknown result type (might be due to invalid IL or missing references) //IL_142d4: Unknown result type (might be due to invalid IL or missing references) //IL_142db: Unknown result type (might be due to invalid IL or missing references) //IL_142e2: Unknown result type (might be due to invalid IL or missing references) //IL_142e9: Unknown result type (might be due to invalid IL or missing references) //IL_142f5: Unknown result type (might be due to invalid IL or missing references) //IL_14301: Unknown result type (might be due to invalid IL or missing references) //IL_1430d: Unknown result type (might be due to invalid IL or missing references) //IL_14319: Expected O, but got Unknown //IL_1431b: Unknown result type (might be due to invalid IL or missing references) //IL_14320: Unknown result type (might be due to invalid IL or missing references) //IL_1432b: Unknown result type (might be due to invalid IL or missing references) //IL_14336: Unknown result type (might be due to invalid IL or missing references) //IL_1433b: Unknown result type (might be due to invalid IL or missing references) //IL_14340: Unknown result type (might be due to invalid IL or missing references) //IL_14347: Unknown result type (might be due to invalid IL or missing references) //IL_1434e: Unknown result type (might be due to invalid IL or missing references) //IL_14355: Unknown result type (might be due to invalid IL or missing references) //IL_14361: Unknown result type (might be due to invalid IL or missing references) //IL_1436d: Unknown result type (might be due to invalid IL or missing references) //IL_14379: Unknown result type (might be due to invalid IL or missing references) //IL_14385: Expected O, but got Unknown //IL_14387: Unknown result type (might be due to invalid IL or missing references) //IL_1438c: Unknown result type (might be due to invalid IL or missing references) //IL_14397: Unknown result type (might be due to invalid IL or missing references) //IL_143a2: Unknown result type (might be due to invalid IL or missing references) //IL_143a7: Unknown result type (might be due to invalid IL or missing references) //IL_143ac: Unknown result type (might be due to invalid IL or missing references) //IL_143b3: Unknown result type (might be due to invalid IL or missing references) //IL_143ba: Unknown result type (might be due to invalid IL or missing references) //IL_143c1: Unknown result type (might be due to invalid IL or missing references) //IL_143cd: Unknown result type (might be due to invalid IL or missing references) //IL_143d9: Unknown result type (might be due to invalid IL or missing references) //IL_143e5: Unknown result type (might be due to invalid IL or missing references) //IL_143f1: Expected O, but got Unknown //IL_143f3: Unknown result type (might be due to invalid IL or missing references) //IL_143f8: Unknown result type (might be due to invalid IL or missing references) //IL_14403: Unknown result type (might be due to invalid IL or missing references) //IL_1440e: Unknown result type (might be due to invalid IL or missing references) //IL_14413: Unknown result type (might be due to invalid IL or missing references) //IL_14418: Unknown result type (might be due to invalid IL or missing references) //IL_1441f: Unknown result type (might be due to invalid IL or missing references) //IL_14426: Unknown result type (might be due to invalid IL or missing references) //IL_1442d: Unknown result type (might be due to invalid IL or missing references) //IL_14439: Unknown result type (might be due to invalid IL or missing references) //IL_14445: Unknown result type (might be due to invalid IL or missing references) //IL_14451: Unknown result type (might be due to invalid IL or missing references) //IL_1445d: Expected O, but got Unknown //IL_14476: Unknown result type (might be due to invalid IL or missing references) //IL_1448b: Unknown result type (might be due to invalid IL or missing references) //IL_144a0: Unknown result type (might be due to invalid IL or missing references) //IL_144b5: Unknown result type (might be due to invalid IL or missing references) //IL_144f3: Unknown result type (might be due to invalid IL or missing references) //IL_14529: Unknown result type (might be due to invalid IL or missing references) //IL_14549: Unknown result type (might be due to invalid IL or missing references) //IL_14569: Unknown result type (might be due to invalid IL or missing references) //IL_14593: Unknown result type (might be due to invalid IL or missing references) //IL_14625: Unknown result type (might be due to invalid IL or missing references) //IL_14630: Unknown result type (might be due to invalid IL or missing references) //IL_1463b: Unknown result type (might be due to invalid IL or missing references) //IL_14646: Unknown result type (might be due to invalid IL or missing references) //IL_14651: Unknown result type (might be due to invalid IL or missing references) //IL_1465b: Unknown result type (might be due to invalid IL or missing references) //IL_14660: Unknown result type (might be due to invalid IL or missing references) //IL_14670: Expected O, but got Unknown //IL_146c2: Unknown result type (might be due to invalid IL or missing references) //IL_14733: Unknown result type (might be due to invalid IL or missing references) //IL_14738: Unknown result type (might be due to invalid IL or missing references) //IL_1474d: Unknown result type (might be due to invalid IL or missing references) //IL_14752: Unknown result type (might be due to invalid IL or missing references) //IL_14759: Unknown result type (might be due to invalid IL or missing references) //IL_14765: Expected O, but got Unknown //IL_147c1: Unknown result type (might be due to invalid IL or missing references) //IL_147c6: Unknown result type (might be due to invalid IL or missing references) //IL_14802: Unknown result type (might be due to invalid IL or missing references) //IL_14822: Unknown result type (might be due to invalid IL or missing references) //IL_14842: Unknown result type (might be due to invalid IL or missing references) //IL_1488e: Unknown result type (might be due to invalid IL or missing references) //IL_148da: Unknown result type (might be due to invalid IL or missing references) //IL_14926: Unknown result type (might be due to invalid IL or missing references) //IL_14972: Unknown result type (might be due to invalid IL or missing references) //IL_149be: Unknown result type (might be due to invalid IL or missing references) //IL_14a0a: Unknown result type (might be due to invalid IL or missing references) //IL_14a56: Unknown result type (might be due to invalid IL or missing references) //IL_14aa2: Unknown result type (might be due to invalid IL or missing references) //IL_14aee: Unknown result type (might be due to invalid IL or missing references) //IL_14b3a: Unknown result type (might be due to invalid IL or missing references) //IL_14b86: Unknown result type (might be due to invalid IL or missing references) //IL_14bd2: Unknown result type (might be due to invalid IL or missing references) //IL_14c1e: Unknown result type (might be due to invalid IL or missing references) //IL_14c6a: Unknown result type (might be due to invalid IL or missing references) //IL_14cb6: Unknown result type (might be due to invalid IL or missing references) //IL_14d02: Unknown result type (might be due to invalid IL or missing references) //IL_14d4e: Unknown result type (might be due to invalid IL or missing references) //IL_14d9a: Unknown result type (might be due to invalid IL or missing references) //IL_14de6: Unknown result type (might be due to invalid IL or missing references) //IL_14e32: Unknown result type (might be due to invalid IL or missing references) //IL_14e7e: Unknown result type (might be due to invalid IL or missing references) //IL_14eca: Unknown result type (might be due to invalid IL or missing references) //IL_14f16: Unknown result type (might be due to invalid IL or missing references) //IL_14f62: Unknown result type (might be due to invalid IL or missing references) //IL_14fae: Unknown result type (might be due to invalid IL or missing references) //IL_14ffa: Unknown result type (might be due to invalid IL or missing references) //IL_15046: Unknown result type (might be due to invalid IL or missing references) //IL_15092: Unknown result type (might be due to invalid IL or missing references) //IL_150de: Unknown result type (might be due to invalid IL or missing references) //IL_1512a: Unknown result type (might be due to invalid IL or missing references) //IL_15176: Unknown result type (might be due to invalid IL or missing references) //IL_151c2: Unknown result type (might be due to invalid IL or missing references) //IL_1520e: Unknown result type (might be due to invalid IL or missing references) //IL_1525a: Unknown result type (might be due to invalid IL or missing references) //IL_152a6: Unknown result type (might be due to invalid IL or missing references) //IL_152f2: Unknown result type (might be due to invalid IL or missing references) //IL_1533e: Unknown result type (might be due to invalid IL or missing references) //IL_1538a: Unknown result type (might be due to invalid IL or missing references) //IL_153d6: Unknown result type (might be due to invalid IL or missing references) //IL_15422: Unknown result type (might be due to invalid IL or missing references) //IL_154d6: Unknown result type (might be due to invalid IL or missing references) //IL_154e1: Unknown result type (might be due to invalid IL or missing references) //IL_154ec: Unknown result type (might be due to invalid IL or missing references) //IL_154f7: Unknown result type (might be due to invalid IL or missing references) //IL_15502: Unknown result type (might be due to invalid IL or missing references) //IL_1550c: Unknown result type (might be due to invalid IL or missing references) //IL_15511: Unknown result type (might be due to invalid IL or missing references) //IL_15521: Expected O, but got Unknown //IL_15573: Unknown result type (might be due to invalid IL or missing references) //IL_155e4: Unknown result type (might be due to invalid IL or missing references) //IL_155e9: Unknown result type (might be due to invalid IL or missing references) //IL_155fe: Unknown result type (might be due to invalid IL or missing references) //IL_15603: Unknown result type (might be due to invalid IL or missing references) //IL_1560a: Unknown result type (might be due to invalid IL or missing references) //IL_15616: Expected O, but got Unknown //IL_15672: Unknown result type (might be due to invalid IL or missing references) //IL_15677: Unknown result type (might be due to invalid IL or missing references) //IL_156b3: Unknown result type (might be due to invalid IL or missing references) //IL_156d3: Unknown result type (might be due to invalid IL or missing references) //IL_156f3: Unknown result type (might be due to invalid IL or missing references) //IL_15713: Unknown result type (might be due to invalid IL or missing references) //IL_15733: Unknown result type (might be due to invalid IL or missing references) //IL_1577f: Unknown result type (might be due to invalid IL or missing references) //IL_157cb: Unknown result type (might be due to invalid IL or missing references) //IL_15817: Unknown result type (might be due to invalid IL or missing references) //IL_15863: Unknown result type (might be due to invalid IL or missing references) //IL_158af: Unknown result type (might be due to invalid IL or missing references) //IL_158fb: Unknown result type (might be due to invalid IL or missing references) //IL_15947: Unknown result type (might be due to invalid IL or missing references) //IL_15993: Unknown result type (might be due to invalid IL or missing references) //IL_159df: Unknown result type (might be due to invalid IL or missing references) //IL_15a2b: Unknown result type (might be due to invalid IL or missing references) //IL_15a77: Unknown result type (might be due to invalid IL or missing references) //IL_15ac3: Unknown result type (might be due to invalid IL or missing references) //IL_15b0f: Unknown result type (might be due to invalid IL or missing references) //IL_15b5b: Unknown result type (might be due to invalid IL or missing references) //IL_15c0f: Unknown result type (might be due to invalid IL or missing references) //IL_15c1a: Unknown result type (might be due to invalid IL or missing references) //IL_15c25: Unknown result type (might be due to invalid IL or missing references) //IL_15c30: Unknown result type (might be due to invalid IL or missing references) //IL_15c3b: Unknown result type (might be due to invalid IL or missing references) //IL_15c45: Unknown result type (might be due to invalid IL or missing references) //IL_15c4a: Unknown result type (might be due to invalid IL or missing references) //IL_15c5a: Expected O, but got Unknown //IL_15ca3: Unknown result type (might be due to invalid IL or missing references) //IL_15cad: Expected O, but got Unknown //IL_15cb0: Unknown result type (might be due to invalid IL or missing references) //IL_15cba: Expected O, but got Unknown //IL_15cc5: Unknown result type (might be due to invalid IL or missing references) //IL_15d36: Unknown result type (might be due to invalid IL or missing references) //IL_15d3b: Unknown result type (might be due to invalid IL or missing references) //IL_15d50: Unknown result type (might be due to invalid IL or missing references) //IL_15d55: Unknown result type (might be due to invalid IL or missing references) //IL_15d5c: Unknown result type (might be due to invalid IL or missing references) //IL_15d68: Expected O, but got Unknown //IL_15dc4: Unknown result type (might be due to invalid IL or missing references) //IL_15dc9: Unknown result type (might be due to invalid IL or missing references) //IL_15df3: Unknown result type (might be due to invalid IL or missing references) //IL_15dfa: Expected O, but got Unknown //IL_15e05: Unknown result type (might be due to invalid IL or missing references) //IL_15e0a: Unknown result type (might be due to invalid IL or missing references) //IL_15e15: Unknown result type (might be due to invalid IL or missing references) //IL_15e20: Unknown result type (might be due to invalid IL or missing references) //IL_15e25: Unknown result type (might be due to invalid IL or missing references) //IL_15e2a: Unknown result type (might be due to invalid IL or missing references) //IL_15e31: Unknown result type (might be due to invalid IL or missing references) //IL_15e38: Unknown result type (might be due to invalid IL or missing references) //IL_15e3f: Unknown result type (might be due to invalid IL or missing references) //IL_15e4b: Unknown result type (might be due to invalid IL or missing references) //IL_15e57: Unknown result type (might be due to invalid IL or missing references) //IL_15e63: Unknown result type (might be due to invalid IL or missing references) //IL_15e6f: Expected O, but got Unknown //IL_15e71: Unknown result type (might be due to invalid IL or missing references) //IL_15e78: Expected O, but got Unknown //IL_15e90: Unknown result type (might be due to invalid IL or missing references) //IL_15e95: Unknown result type (might be due to invalid IL or missing references) //IL_15f01: Unknown result type (might be due to invalid IL or missing references) //IL_15f16: Unknown result type (might be due to invalid IL or missing references) //IL_15f54: Unknown result type (might be due to invalid IL or missing references) //IL_15f8a: Unknown result type (might be due to invalid IL or missing references) //IL_15faa: Unknown result type (might be due to invalid IL or missing references) //IL_15fca: Unknown result type (might be due to invalid IL or missing references) //IL_15ff4: Unknown result type (might be due to invalid IL or missing references) //IL_1601e: Unknown result type (might be due to invalid IL or missing references) //IL_16048: Unknown result type (might be due to invalid IL or missing references) //IL_16072: Unknown result type (might be due to invalid IL or missing references) //IL_1609c: Unknown result type (might be due to invalid IL or missing references) //IL_160c6: Unknown result type (might be due to invalid IL or missing references) //IL_16153: Unknown result type (might be due to invalid IL or missing references) //IL_1615e: Unknown result type (might be due to invalid IL or missing references) //IL_16169: Unknown result type (might be due to invalid IL or missing references) //IL_16174: Unknown result type (might be due to invalid IL or missing references) //IL_1617f: Unknown result type (might be due to invalid IL or missing references) //IL_16189: Unknown result type (might be due to invalid IL or missing references) //IL_1618e: Unknown result type (might be due to invalid IL or missing references) //IL_1619e: Expected O, but got Unknown //IL_161e7: Unknown result type (might be due to invalid IL or missing references) //IL_161f1: Expected O, but got Unknown //IL_161f4: Unknown result type (might be due to invalid IL or missing references) //IL_161fe: Expected O, but got Unknown //IL_16209: Unknown result type (might be due to invalid IL or missing references) //IL_1627a: Unknown result type (might be due to invalid IL or missing references) //IL_1627f: Unknown result type (might be due to invalid IL or missing references) //IL_16294: Unknown result type (might be due to invalid IL or missing references) //IL_16299: Unknown result type (might be due to invalid IL or missing references) //IL_162a0: Unknown result type (might be due to invalid IL or missing references) //IL_162ac: Expected O, but got Unknown //IL_16308: Unknown result type (might be due to invalid IL or missing references) //IL_1630d: Unknown result type (might be due to invalid IL or missing references) //IL_16338: Unknown result type (might be due to invalid IL or missing references) //IL_1633f: Expected O, but got Unknown //IL_1634a: Unknown result type (might be due to invalid IL or missing references) //IL_16351: Expected O, but got Unknown //IL_16369: Unknown result type (might be due to invalid IL or missing references) //IL_1636e: Unknown result type (might be due to invalid IL or missing references) //IL_163c3: Unknown result type (might be due to invalid IL or missing references) //IL_163ca: Expected O, but got Unknown //IL_163e2: Unknown result type (might be due to invalid IL or missing references) //IL_163e7: Unknown result type (might be due to invalid IL or missing references) //IL_16453: Unknown result type (might be due to invalid IL or missing references) //IL_16468: Unknown result type (might be due to invalid IL or missing references) //IL_164a6: Unknown result type (might be due to invalid IL or missing references) //IL_164dc: Unknown result type (might be due to invalid IL or missing references) //IL_164fc: Unknown result type (might be due to invalid IL or missing references) //IL_1651c: Unknown result type (might be due to invalid IL or missing references) //IL_16546: Unknown result type (might be due to invalid IL or missing references) //IL_165d8: Unknown result type (might be due to invalid IL or missing references) //IL_165e3: Unknown result type (might be due to invalid IL or missing references) //IL_165ee: Unknown result type (might be due to invalid IL or missing references) //IL_165f9: Unknown result type (might be due to invalid IL or missing references) //IL_16604: Unknown result type (might be due to invalid IL or missing references) //IL_1660e: Unknown result type (might be due to invalid IL or missing references) //IL_16613: Unknown result type (might be due to invalid IL or missing references) //IL_16623: Expected O, but got Unknown //IL_1666c: Unknown result type (might be due to invalid IL or missing references) //IL_16676: Expected O, but got Unknown //IL_16679: Unknown result type (might be due to invalid IL or missing references) //IL_16683: Expected O, but got Unknown //IL_1668e: Unknown result type (might be due to invalid IL or missing references) //IL_166ff: Unknown result type (might be due to invalid IL or missing references) //IL_16704: Unknown result type (might be due to invalid IL or missing references) //IL_16719: Unknown result type (might be due to invalid IL or missing references) //IL_1671e: Unknown result type (might be due to invalid IL or missing references) //IL_16725: Unknown result type (might be due to invalid IL or missing references) //IL_16731: Expected O, but got Unknown //IL_1678d: Unknown result type (might be due to invalid IL or missing references) //IL_16792: Unknown result type (might be due to invalid IL or missing references) //IL_167bd: Unknown result type (might be due to invalid IL or missing references) //IL_167c4: Expected O, but got Unknown //IL_167cf: Unknown result type (might be due to invalid IL or missing references) //IL_167d6: Expected O, but got Unknown //IL_167ee: Unknown result type (might be due to invalid IL or missing references) //IL_167f3: Unknown result type (might be due to invalid IL or missing references) //IL_16848: Unknown result type (might be due to invalid IL or missing references) //IL_1684f: Expected O, but got Unknown //IL_16867: Unknown result type (might be due to invalid IL or missing references) //IL_1686c: Unknown result type (might be due to invalid IL or missing references) //IL_168c1: Unknown result type (might be due to invalid IL or missing references) //IL_168c8: Expected O, but got Unknown //IL_168e0: Unknown result type (might be due to invalid IL or missing references) //IL_168e5: Unknown result type (might be due to invalid IL or missing references) //IL_16951: Unknown result type (might be due to invalid IL or missing references) //IL_16966: Unknown result type (might be due to invalid IL or missing references) //IL_1697b: Unknown result type (might be due to invalid IL or missing references) //IL_169b9: Unknown result type (might be due to invalid IL or missing references) //IL_169ef: Unknown result type (might be due to invalid IL or missing references) //IL_16a0f: Unknown result type (might be due to invalid IL or missing references) //IL_16a2f: Unknown result type (might be due to invalid IL or missing references) //IL_16a4f: Unknown result type (might be due to invalid IL or missing references) //IL_16a6f: Unknown result type (might be due to invalid IL or missing references) //IL_16abb: Unknown result type (might be due to invalid IL or missing references) //IL_16b07: Unknown result type (might be due to invalid IL or missing references) //IL_16b53: Unknown result type (might be due to invalid IL or missing references) //IL_16b9f: Unknown result type (might be due to invalid IL or missing references) //IL_16beb: Unknown result type (might be due to invalid IL or missing references) //IL_16c37: Unknown result type (might be due to invalid IL or missing references) //IL_16c83: Unknown result type (might be due to invalid IL or missing references) //IL_16ccf: Unknown result type (might be due to invalid IL or missing references) //IL_16d1b: Unknown result type (might be due to invalid IL or missing references) //IL_16d67: Unknown result type (might be due to invalid IL or missing references) //IL_16db3: Unknown result type (might be due to invalid IL or missing references) //IL_16dff: Unknown result type (might be due to invalid IL or missing references) //IL_16e8c: Unknown result type (might be due to invalid IL or missing references) //IL_16e97: Unknown result type (might be due to invalid IL or missing references) //IL_16ea2: Unknown result type (might be due to invalid IL or missing references) //IL_16ead: Unknown result type (might be due to invalid IL or missing references) //IL_16eb8: Unknown result type (might be due to invalid IL or missing references) //IL_16ec2: Unknown result type (might be due to invalid IL or missing references) //IL_16ec7: Unknown result type (might be due to invalid IL or missing references) //IL_16ed7: Expected O, but got Unknown //IL_16f20: Unknown result type (might be due to invalid IL or missing references) //IL_16f2a: Expected O, but got Unknown //IL_16f2d: Unknown result type (might be due to invalid IL or missing references) //IL_16f37: Expected O, but got Unknown //IL_16f42: Unknown result type (might be due to invalid IL or missing references) //IL_16fb3: Unknown result type (might be due to invalid IL or missing references) //IL_16fb8: Unknown result type (might be due to invalid IL or missing references) //IL_16fcd: Unknown result type (might be due to invalid IL or missing references) //IL_16fd2: Unknown result type (might be due to invalid IL or missing references) //IL_16fd9: Unknown result type (might be due to invalid IL or missing references) //IL_16fe5: Expected O, but got Unknown //IL_17041: Unknown result type (might be due to invalid IL or missing references) //IL_17046: Unknown result type (might be due to invalid IL or missing references) //IL_17071: Unknown result type (might be due to invalid IL or missing references) //IL_17078: Expected O, but got Unknown //IL_17083: Unknown result type (might be due to invalid IL or missing references) //IL_1708a: Expected O, but got Unknown //IL_170a2: Unknown result type (might be due to invalid IL or missing references) //IL_170a7: Unknown result type (might be due to invalid IL or missing references) //IL_170fc: Unknown result type (might be due to invalid IL or missing references) //IL_17103: Expected O, but got Unknown //IL_1711b: Unknown result type (might be due to invalid IL or missing references) //IL_17120: Unknown result type (might be due to invalid IL or missing references) //IL_17175: Unknown result type (might be due to invalid IL or missing references) //IL_1717c: Expected O, but got Unknown //IL_17194: Unknown result type (might be due to invalid IL or missing references) //IL_17199: Unknown result type (might be due to invalid IL or missing references) //IL_17205: Unknown result type (might be due to invalid IL or missing references) //IL_1721a: Unknown result type (might be due to invalid IL or missing references) //IL_1722f: Unknown result type (might be due to invalid IL or missing references) //IL_1726d: Unknown result type (might be due to invalid IL or missing references) //IL_172a3: Unknown result type (might be due to invalid IL or missing references) //IL_172c3: Unknown result type (might be due to invalid IL or missing references) //IL_172e3: Unknown result type (might be due to invalid IL or missing references) //IL_17303: Unknown result type (might be due to invalid IL or missing references) //IL_17323: Unknown result type (might be due to invalid IL or missing references) //IL_1734d: Unknown result type (might be due to invalid IL or missing references) //IL_173e0: Unknown result type (might be due to invalid IL or missing references) //IL_173eb: Unknown result type (might be due to invalid IL or missing references) //IL_173f6: Unknown result type (might be due to invalid IL or missing references) //IL_17401: Unknown result type (might be due to invalid IL or missing references) //IL_1740c: Unknown result type (might be due to invalid IL or missing references) //IL_17416: Unknown result type (might be due to invalid IL or missing references) //IL_1741b: Unknown result type (might be due to invalid IL or missing references) //IL_1742b: Expected O, but got Unknown //IL_1747d: Unknown result type (might be due to invalid IL or missing references) //IL_174ee: Unknown result type (might be due to invalid IL or missing references) //IL_174f3: Unknown result type (might be due to invalid IL or missing references) //IL_17508: Unknown result type (might be due to invalid IL or missing references) //IL_1750d: Unknown result type (might be due to invalid IL or missing references) //IL_17514: Unknown result type (might be due to invalid IL or missing references) //IL_17520: Expected O, but got Unknown //IL_1757c: Unknown result type (might be due to invalid IL or missing references) //IL_17581: Unknown result type (might be due to invalid IL or missing references) //IL_175bd: Unknown result type (might be due to invalid IL or missing references) //IL_175dd: Unknown result type (might be due to invalid IL or missing references) //IL_175fd: Unknown result type (might be due to invalid IL or missing references) //IL_17649: Unknown result type (might be due to invalid IL or missing references) //IL_17695: Unknown result type (might be due to invalid IL or missing references) //IL_176e1: Unknown result type (might be due to invalid IL or missing references) //IL_1772d: Unknown result type (might be due to invalid IL or missing references) //IL_17779: Unknown result type (might be due to invalid IL or missing references) //IL_177c5: Unknown result type (might be due to invalid IL or missing references) //IL_17811: Unknown result type (might be due to invalid IL or missing references) //IL_178c5: Unknown result type (might be due to invalid IL or missing references) //IL_178d0: Unknown result type (might be due to invalid IL or missing references) //IL_178db: Unknown result type (might be due to invalid IL or missing references) //IL_178e6: Unknown result type (might be due to invalid IL or missing references) //IL_178f1: Unknown result type (might be due to invalid IL or missing references) //IL_178fb: Unknown result type (might be due to invalid IL or missing references) //IL_17900: Unknown result type (might be due to invalid IL or missing references) //IL_17910: Expected O, but got Unknown //IL_17959: Unknown result type (might be due to invalid IL or missing references) //IL_17963: Expected O, but got Unknown //IL_17966: Unknown result type (might be due to invalid IL or missing references) //IL_17970: Expected O, but got Unknown //IL_1797b: Unknown result type (might be due to invalid IL or missing references) //IL_179ec: Unknown result type (might be due to invalid IL or missing references) //IL_179f1: Unknown result type (might be due to invalid IL or missing references) //IL_17a06: Unknown result type (might be due to invalid IL or missing references) //IL_17a0b: Unknown result type (might be due to invalid IL or missing references) //IL_17a12: Unknown result type (might be due to invalid IL or missing references) //IL_17a1e: Expected O, but got Unknown //IL_17a85: Unknown result type (might be due to invalid IL or missing references) //IL_17a8a: Unknown result type (might be due to invalid IL or missing references) //IL_17ab5: Unknown result type (might be due to invalid IL or missing references) //IL_17abc: Expected O, but got Unknown //IL_17ac7: Unknown result type (might be due to invalid IL or missing references) //IL_17ace: Expected O, but got Unknown //IL_17ae6: Unknown result type (might be due to invalid IL or missing references) //IL_17aeb: Unknown result type (might be due to invalid IL or missing references) //IL_17b40: Unknown result type (might be due to invalid IL or missing references) //IL_17b47: Expected O, but got Unknown //IL_17b5f: Unknown result type (might be due to invalid IL or missing references) //IL_17b64: Unknown result type (might be due to invalid IL or missing references) //IL_17bb9: Unknown result type (might be due to invalid IL or missing references) //IL_17bc0: Expected O, but got Unknown //IL_17bd8: Unknown result type (might be due to invalid IL or missing references) //IL_17bdd: Unknown result type (might be due to invalid IL or missing references) //IL_17c32: Unknown result type (might be due to invalid IL or missing references) //IL_17c39: Expected O, but got Unknown //IL_17c51: Unknown result type (might be due to invalid IL or missing references) //IL_17c56: Unknown result type (might be due to invalid IL or missing references) //IL_17cab: Unknown result type (might be due to invalid IL or missing references) //IL_17cb2: Expected O, but got Unknown //IL_17cca: Unknown result type (might be due to invalid IL or missing references) //IL_17ccf: Unknown result type (might be due to invalid IL or missing references) //IL_17d24: Unknown result type (might be due to invalid IL or missing references) //IL_17d2b: Expected O, but got Unknown //IL_17d43: Unknown result type (might be due to invalid IL or missing references) //IL_17d48: Unknown result type (might be due to invalid IL or missing references) //IL_17d9d: Unknown result type (might be due to invalid IL or missing references) //IL_17da4: Expected O, but got Unknown //IL_17dbc: Unknown result type (might be due to invalid IL or missing references) //IL_17dc1: Unknown result type (might be due to invalid IL or missing references) //IL_17e16: Unknown result type (might be due to invalid IL or missing references) //IL_17e1d: Expected O, but got Unknown //IL_17e35: Unknown result type (might be due to invalid IL or missing references) //IL_17e3a: Unknown result type (might be due to invalid IL or missing references) //IL_17ea6: Unknown result type (might be due to invalid IL or missing references) //IL_17ebb: Unknown result type (might be due to invalid IL or missing references) //IL_17ed0: Unknown result type (might be due to invalid IL or missing references) //IL_17ee5: Unknown result type (might be due to invalid IL or missing references) //IL_17efa: Unknown result type (might be due to invalid IL or missing references) //IL_17f0f: Unknown result type (might be due to invalid IL or missing references) //IL_17f24: Unknown result type (might be due to invalid IL or missing references) //IL_17f39: Unknown result type (might be due to invalid IL or missing references) //IL_17f77: Unknown result type (might be due to invalid IL or missing references) //IL_17fad: Unknown result type (might be due to invalid IL or missing references) //IL_17fcd: Unknown result type (might be due to invalid IL or missing references) //IL_17fed: Unknown result type (might be due to invalid IL or missing references) //IL_18017: Unknown result type (might be due to invalid IL or missing references) //IL_18041: Unknown result type (might be due to invalid IL or missing references) //IL_1806b: Unknown result type (might be due to invalid IL or missing references) //IL_18095: Unknown result type (might be due to invalid IL or missing references) //IL_180bf: Unknown result type (might be due to invalid IL or missing references) //IL_18151: Unknown result type (might be due to invalid IL or missing references) //IL_1815c: Unknown result type (might be due to invalid IL or missing references) //IL_18167: Unknown result type (might be due to invalid IL or missing references) //IL_18172: Unknown result type (might be due to invalid IL or missing references) //IL_1817d: Unknown result type (might be due to invalid IL or missing references) //IL_18187: Unknown result type (might be due to invalid IL or missing references) //IL_1818c: Unknown result type (might be due to invalid IL or missing references) //IL_1819c: Expected O, but got Unknown //IL_181e5: Unknown result type (might be due to invalid IL or missing references) //IL_181ef: Expected O, but got Unknown //IL_181f2: Unknown result type (might be due to invalid IL or missing references) //IL_181fc: Expected O, but got Unknown //IL_18207: Unknown result type (might be due to invalid IL or missing references) //IL_18278: Unknown result type (might be due to invalid IL or missing references) //IL_1827d: Unknown result type (might be due to invalid IL or missing references) //IL_18292: Unknown result type (might be due to invalid IL or missing references) //IL_18297: Unknown result type (might be due to invalid IL or missing references) //IL_1829e: Unknown result type (might be due to invalid IL or missing references) //IL_182aa: Expected O, but got Unknown //IL_18306: Unknown result type (might be due to invalid IL or missing references) //IL_1830b: Unknown result type (might be due to invalid IL or missing references) //IL_18336: Unknown result type (might be due to invalid IL or missing references) //IL_1833d: Expected O, but got Unknown //IL_18348: Unknown result type (might be due to invalid IL or missing references) //IL_1834f: Expected O, but got Unknown //IL_18367: Unknown result type (might be due to invalid IL or missing references) //IL_1836c: Unknown result type (might be due to invalid IL or missing references) //IL_183c1: Unknown result type (might be due to invalid IL or missing references) //IL_183c8: Expected O, but got Unknown //IL_183e0: Unknown result type (might be due to invalid IL or missing references) //IL_183e5: Unknown result type (might be due to invalid IL or missing references) //IL_1843a: Unknown result type (might be due to invalid IL or missing references) //IL_18441: Expected O, but got Unknown //IL_18459: Unknown result type (might be due to invalid IL or missing references) //IL_1845e: Unknown result type (might be due to invalid IL or missing references) //IL_184b3: Unknown result type (might be due to invalid IL or missing references) //IL_184ba: Expected O, but got Unknown //IL_184d2: Unknown result type (might be due to invalid IL or missing references) //IL_184d7: Unknown result type (might be due to invalid IL or missing references) //IL_18543: Unknown result type (might be due to invalid IL or missing references) //IL_18558: Unknown result type (might be due to invalid IL or missing references) //IL_1856d: Unknown result type (might be due to invalid IL or missing references) //IL_18582: Unknown result type (might be due to invalid IL or missing references) //IL_185c0: Unknown result type (might be due to invalid IL or missing references) //IL_185f6: Unknown result type (might be due to invalid IL or missing references) //IL_18616: Unknown result type (might be due to invalid IL or missing references) //IL_18636: Unknown result type (might be due to invalid IL or missing references) //IL_18660: Unknown result type (might be due to invalid IL or missing references) //IL_1868a: Unknown result type (might be due to invalid IL or missing references) //IL_186b4: Unknown result type (might be due to invalid IL or missing references) //IL_18746: Unknown result type (might be due to invalid IL or missing references) //IL_18751: Unknown result type (might be due to invalid IL or missing references) //IL_1875c: Unknown result type (might be due to invalid IL or missing references) //IL_18767: Unknown result type (might be due to invalid IL or missing references) //IL_18772: Unknown result type (might be due to invalid IL or missing references) //IL_1877c: Unknown result type (might be due to invalid IL or missing references) //IL_18781: Unknown result type (might be due to invalid IL or missing references) //IL_18791: Expected O, but got Unknown //IL_187da: Unknown result type (might be due to invalid IL or missing references) //IL_187e4: Expected O, but got Unknown //IL_187e7: Unknown result type (might be due to invalid IL or missing references) //IL_187f1: Expected O, but got Unknown //IL_187fc: Unknown result type (might be due to invalid IL or missing references) //IL_1886d: Unknown result type (might be due to invalid IL or missing references) //IL_18872: Unknown result type (might be due to invalid IL or missing references) //IL_18887: Unknown result type (might be due to invalid IL or missing references) //IL_1888c: Unknown result type (might be due to invalid IL or missing references) //IL_18893: Unknown result type (might be due to invalid IL or missing references) //IL_1889f: Expected O, but got Unknown //IL_188fb: Unknown result type (might be due to invalid IL or missing references) //IL_18900: Unknown result type (might be due to invalid IL or missing references) //IL_1892b: Unknown result type (might be due to invalid IL or missing references) //IL_18932: Expected O, but got Unknown //IL_1893d: Unknown result type (might be due to invalid IL or missing references) //IL_18944: Expected O, but got Unknown //IL_1895c: Unknown result type (might be due to invalid IL or missing references) //IL_18961: Unknown result type (might be due to invalid IL or missing references) //IL_189b6: Unknown result type (might be due to invalid IL or missing references) //IL_189bd: Expected O, but got Unknown //IL_189d5: Unknown result type (might be due to invalid IL or missing references) //IL_189da: Unknown result type (might be due to invalid IL or missing references) //IL_18a46: Unknown result type (might be due to invalid IL or missing references) //IL_18a5b: Unknown result type (might be due to invalid IL or missing references) //IL_18a99: Unknown result type (might be due to invalid IL or missing references) //IL_18acf: Unknown result type (might be due to invalid IL or missing references) //IL_18aef: Unknown result type (might be due to invalid IL or missing references) //IL_18b0f: Unknown result type (might be due to invalid IL or missing references) //IL_18b2f: Unknown result type (might be due to invalid IL or missing references) //IL_18b4f: Unknown result type (might be due to invalid IL or missing references) //IL_18b9b: Unknown result type (might be due to invalid IL or missing references) //IL_18be7: Unknown result type (might be due to invalid IL or missing references) //IL_18c33: Unknown result type (might be due to invalid IL or missing references) //IL_18c7f: Unknown result type (might be due to invalid IL or missing references) //IL_18ccb: Unknown result type (might be due to invalid IL or missing references) //IL_18d17: Unknown result type (might be due to invalid IL or missing references) //IL_18d63: Unknown result type (might be due to invalid IL or missing references) //IL_18daf: Unknown result type (might be due to invalid IL or missing references) //IL_18dfb: Unknown result type (might be due to invalid IL or missing references) //IL_18e47: Unknown result type (might be due to invalid IL or missing references) //IL_18e93: Unknown result type (might be due to invalid IL or missing references) //IL_18edf: Unknown result type (might be due to invalid IL or missing references) //IL_18f09: Unknown result type (might be due to invalid IL or missing references) //IL_18f96: Unknown result type (might be due to invalid IL or missing references) //IL_18fa1: Unknown result type (might be due to invalid IL or missing references) //IL_18fac: Unknown result type (might be due to invalid IL or missing references) //IL_18fb7: Unknown result type (might be due to invalid IL or missing references) //IL_18fc2: Unknown result type (might be due to invalid IL or missing references) //IL_18fcc: Unknown result type (might be due to invalid IL or missing references) //IL_18fd1: Unknown result type (might be due to invalid IL or missing references) //IL_18fe1: Expected O, but got Unknown //IL_1902a: Unknown result type (might be due to invalid IL or missing references) //IL_19034: Expected O, but got Unknown //IL_19037: Unknown result type (might be due to invalid IL or missing references) //IL_19041: Expected O, but got Unknown //IL_1904c: Unknown result type (might be due to invalid IL or missing references) //IL_190bd: Unknown result type (might be due to invalid IL or missing references) //IL_190c2: Unknown result type (might be due to invalid IL or missing references) //IL_190d7: Unknown result type (might be due to invalid IL or missing references) //IL_190dc: Unknown result type (might be due to invalid IL or missing references) //IL_190e3: Unknown result type (might be due to invalid IL or missing references) //IL_190ef: Expected O, but got Unknown //IL_1914b: Unknown result type (might be due to invalid IL or missing references) //IL_19150: Unknown result type (might be due to invalid IL or missing references) //IL_1917b: Unknown result type (might be due to invalid IL or missing references) //IL_19182: Expected O, but got Unknown //IL_1918d: Unknown result type (might be due to invalid IL or missing references) //IL_19194: Expected O, but got Unknown //IL_191ac: Unknown result type (might be due to invalid IL or missing references) //IL_191b1: Unknown result type (might be due to invalid IL or missing references) //IL_19206: Unknown result type (might be due to invalid IL or missing references) //IL_1920d: Expected O, but got Unknown //IL_19225: Unknown result type (might be due to invalid IL or missing references) //IL_1922a: Unknown result type (might be due to invalid IL or missing references) //IL_19296: Unknown result type (might be due to invalid IL or missing references) //IL_192ab: Unknown result type (might be due to invalid IL or missing references) //IL_192e9: Unknown result type (might be due to invalid IL or missing references) //IL_1930b: Unknown result type (might be due to invalid IL or missing references) //IL_19312: Expected O, but got Unknown //IL_1931d: Unknown result type (might be due to invalid IL or missing references) //IL_19324: Expected O, but got Unknown //IL_1933c: Unknown result type (might be due to invalid IL or missing references) //IL_19341: Unknown result type (might be due to invalid IL or missing references) //IL_19396: Unknown result type (might be due to invalid IL or missing references) //IL_1939d: Expected O, but got Unknown //IL_193b5: Unknown result type (might be due to invalid IL or missing references) //IL_193ba: Unknown result type (might be due to invalid IL or missing references) //IL_1940f: Unknown result type (might be due to invalid IL or missing references) //IL_19416: Expected O, but got Unknown //IL_1942e: Unknown result type (might be due to invalid IL or missing references) //IL_19433: Unknown result type (might be due to invalid IL or missing references) //IL_19488: Unknown result type (might be due to invalid IL or missing references) //IL_1948f: Expected O, but got Unknown //IL_194a7: Unknown result type (might be due to invalid IL or missing references) //IL_194ac: Unknown result type (might be due to invalid IL or missing references) //IL_19518: Unknown result type (might be due to invalid IL or missing references) //IL_1952d: Unknown result type (might be due to invalid IL or missing references) //IL_19542: Unknown result type (might be due to invalid IL or missing references) //IL_19557: Unknown result type (might be due to invalid IL or missing references) //IL_19595: Unknown result type (might be due to invalid IL or missing references) //IL_195cb: Unknown result type (might be due to invalid IL or missing references) //IL_195eb: Unknown result type (might be due to invalid IL or missing references) //IL_1960b: Unknown result type (might be due to invalid IL or missing references) //IL_1962b: Unknown result type (might be due to invalid IL or missing references) //IL_1964b: Unknown result type (might be due to invalid IL or missing references) //IL_19697: Unknown result type (might be due to invalid IL or missing references) //IL_196e3: Unknown result type (might be due to invalid IL or missing references) //IL_1972f: Unknown result type (might be due to invalid IL or missing references) //IL_1977b: Unknown result type (might be due to invalid IL or missing references) //IL_197c7: Unknown result type (might be due to invalid IL or missing references) //IL_19813: Unknown result type (might be due to invalid IL or missing references) //IL_1985f: Unknown result type (might be due to invalid IL or missing references) //IL_198ab: Unknown result type (might be due to invalid IL or missing references) //IL_198f7: Unknown result type (might be due to invalid IL or missing references) //IL_19943: Unknown result type (might be due to invalid IL or missing references) //IL_1998f: Unknown result type (might be due to invalid IL or missing references) //IL_199db: Unknown result type (might be due to invalid IL or missing references) //IL_19a05: Unknown result type (might be due to invalid IL or missing references) //IL_19a2f: Unknown result type (might be due to invalid IL or missing references) //IL_19abc: Unknown result type (might be due to invalid IL or missing references) //IL_19ac7: Unknown result type (might be due to invalid IL or missing references) //IL_19ad2: Unknown result type (might be due to invalid IL or missing references) //IL_19add: Unknown result type (might be due to invalid IL or missing references) //IL_19ae8: Unknown result type (might be due to invalid IL or missing references) //IL_19af2: Unknown result type (might be due to invalid IL or missing references) //IL_19af7: Unknown result type (might be due to invalid IL or missing references) //IL_19b07: Expected O, but got Unknown //IL_19b50: Unknown result type (might be due to invalid IL or missing references) //IL_19b5a: Expected O, but got Unknown //IL_19b5d: Unknown result type (might be due to invalid IL or missing references) //IL_19b67: Expected O, but got Unknown //IL_19b72: Unknown result type (might be due to invalid IL or missing references) //IL_19be3: Unknown result type (might be due to invalid IL or missing references) //IL_19be8: Unknown result type (might be due to invalid IL or missing references) //IL_19bfd: Unknown result type (might be due to invalid IL or missing references) //IL_19c02: Unknown result type (might be due to invalid IL or missing references) //IL_19c09: Unknown result type (might be due to invalid IL or missing references) //IL_19c15: Expected O, but got Unknown //IL_19c71: Unknown result type (might be due to invalid IL or missing references) //IL_19c76: Unknown result type (might be due to invalid IL or missing references) //IL_19cb2: Unknown result type (might be due to invalid IL or missing references) //IL_19cd2: Unknown result type (might be due to invalid IL or missing references) //IL_19cf2: Unknown result type (might be due to invalid IL or missing references) //IL_19d1c: Unknown result type (might be due to invalid IL or missing references) //IL_19d46: Unknown result type (might be due to invalid IL or missing references) //IL_19d70: Unknown result type (might be due to invalid IL or missing references) //IL_19d9a: Unknown result type (might be due to invalid IL or missing references) //IL_19dc4: Unknown result type (might be due to invalid IL or missing references) //IL_19dee: Unknown result type (might be due to invalid IL or missing references) //IL_19e18: Unknown result type (might be due to invalid IL or missing references) //IL_19eaa: Unknown result type (might be due to invalid IL or missing references) //IL_19eb5: Unknown result type (might be due to invalid IL or missing references) //IL_19ec0: Unknown result type (might be due to invalid IL or missing references) //IL_19ecb: Unknown result type (might be due to invalid IL or missing references) //IL_19ed6: Unknown result type (might be due to invalid IL or missing references) //IL_19ee0: Unknown result type (might be due to invalid IL or missing references) //IL_19ee5: Unknown result type (might be due to invalid IL or missing references) //IL_19ef5: Expected O, but got Unknown //IL_19f3e: Unknown result type (might be due to invalid IL or missing references) //IL_19f48: Expected O, but got Unknown //IL_19f4b: Unknown result type (might be due to invalid IL or missing references) //IL_19f55: Expected O, but got Unknown //IL_19f60: Unknown result type (might be due to invalid IL or missing references) //IL_19fd1: Unknown result type (might be due to invalid IL or missing references) //IL_19fd6: Unknown result type (might be due to invalid IL or missing references) //IL_19feb: Unknown result type (might be due to invalid IL or missing references) //IL_19ff0: Unknown result type (might be due to invalid IL or missing references) //IL_19ff7: Unknown result type (might be due to invalid IL or missing references) //IL_1a003: Expected O, but got Unknown //IL_1a061: Unknown result type (might be due to invalid IL or missing references) //IL_1a066: Unknown result type (might be due to invalid IL or missing references) //IL_1a0ad: Unknown result type (might be due to invalid IL or missing references) //IL_1a0cd: Unknown result type (might be due to invalid IL or missing references) //IL_1a0ed: Unknown result type (might be due to invalid IL or missing references) //IL_1a10d: Unknown result type (might be due to invalid IL or missing references) //IL_1a12d: Unknown result type (might be due to invalid IL or missing references) //IL_1a14d: Unknown result type (might be due to invalid IL or missing references) //IL_1a16d: Unknown result type (might be due to invalid IL or missing references) //IL_1a18d: Unknown result type (might be due to invalid IL or missing references) //IL_1a1ad: Unknown result type (might be due to invalid IL or missing references) //IL_1a1cd: Unknown result type (might be due to invalid IL or missing references) //IL_1a1fc: Unknown result type (might be due to invalid IL or missing references) //IL_1a248: Unknown result type (might be due to invalid IL or missing references) //IL_1a294: Unknown result type (might be due to invalid IL or missing references) //IL_1a2e0: Unknown result type (might be due to invalid IL or missing references) //IL_1a32c: Unknown result type (might be due to invalid IL or missing references) //IL_1a378: Unknown result type (might be due to invalid IL or missing references) //IL_1a3c4: Unknown result type (might be due to invalid IL or missing references) //IL_1a410: Unknown result type (might be due to invalid IL or missing references) //IL_1a45c: Unknown result type (might be due to invalid IL or missing references) //IL_1a4a8: Unknown result type (might be due to invalid IL or missing references) //IL_1a4f4: Unknown result type (might be due to invalid IL or missing references) //IL_1a540: Unknown result type (might be due to invalid IL or missing references) //IL_1a58c: Unknown result type (might be due to invalid IL or missing references) //IL_1a5d8: Unknown result type (might be due to invalid IL or missing references) //IL_1a624: Unknown result type (might be due to invalid IL or missing references) //IL_1a64e: Unknown result type (might be due to invalid IL or missing references) //IL_1a678: Unknown result type (might be due to invalid IL or missing references) //IL_1a6a2: Unknown result type (might be due to invalid IL or missing references) //IL_1a6cc: Unknown result type (might be due to invalid IL or missing references) //IL_1a75e: Unknown result type (might be due to invalid IL or missing references) //IL_1a769: Unknown result type (might be due to invalid IL or missing references) //IL_1a774: Unknown result type (might be due to invalid IL or missing references) //IL_1a77f: Unknown result type (might be due to invalid IL or missing references) //IL_1a78a: Unknown result type (might be due to invalid IL or missing references) //IL_1a794: Unknown result type (might be due to invalid IL or missing references) //IL_1a799: Unknown result type (might be due to invalid IL or missing references) //IL_1a7a9: Expected O, but got Unknown //IL_1a7f2: Unknown result type (might be due to invalid IL or missing references) //IL_1a7fc: Expected O, but got Unknown //IL_1a7ff: Unknown result type (might be due to invalid IL or missing references) //IL_1a809: Expected O, but got Unknown //IL_1a814: Unknown result type (might be due to invalid IL or missing references) //IL_1a885: Unknown result type (might be due to invalid IL or missing references) //IL_1a88a: Unknown result type (might be due to invalid IL or missing references) //IL_1a89f: Unknown result type (might be due to invalid IL or missing references) //IL_1a8a4: Unknown result type (might be due to invalid IL or missing references) //IL_1a8ab: Unknown result type (might be due to invalid IL or missing references) //IL_1a8b7: Expected O, but got Unknown //IL_1a913: Unknown result type (might be due to invalid IL or missing references) //IL_1a918: Unknown result type (might be due to invalid IL or missing references) //IL_1a94e: Unknown result type (might be due to invalid IL or missing references) //IL_1a955: Expected O, but got Unknown //IL_1a960: Unknown result type (might be due to invalid IL or missing references) //IL_1a967: Expected O, but got Unknown //IL_1a97f: Unknown result type (might be due to invalid IL or missing references) //IL_1a984: Unknown result type (might be due to invalid IL or missing references) //IL_1a9d9: Unknown result type (might be due to invalid IL or missing references) //IL_1a9e0: Expected O, but got Unknown //IL_1a9f8: Unknown result type (might be due to invalid IL or missing references) //IL_1a9fd: Unknown result type (might be due to invalid IL or missing references) //IL_1aa52: Unknown result type (might be due to invalid IL or missing references) //IL_1aa59: Expected O, but got Unknown //IL_1aa71: Unknown result type (might be due to invalid IL or missing references) //IL_1aa76: Unknown result type (might be due to invalid IL or missing references) //IL_1aacb: Unknown result type (might be due to invalid IL or missing references) //IL_1aad2: Expected O, but got Unknown //IL_1aaea: Unknown result type (might be due to invalid IL or missing references) //IL_1aaef: Unknown result type (might be due to invalid IL or missing references) //IL_1ab44: Unknown result type (might be due to invalid IL or missing references) //IL_1ab4b: Expected O, but got Unknown //IL_1ab63: Unknown result type (might be due to invalid IL or missing references) //IL_1ab68: Unknown result type (might be due to invalid IL or missing references) //IL_1abbd: Unknown result type (might be due to invalid IL or missing references) //IL_1abc4: Expected O, but got Unknown //IL_1abdc: Unknown result type (might be due to invalid IL or missing references) //IL_1abe1: Unknown result type (might be due to invalid IL or missing references) //IL_1ac36: Unknown result type (might be due to invalid IL or missing references) //IL_1ac3d: Expected O, but got Unknown //IL_1ac55: Unknown result type (might be due to invalid IL or missing references) //IL_1ac5a: Unknown result type (might be due to invalid IL or missing references) //IL_1acc6: Unknown result type (might be due to invalid IL or missing references) //IL_1acdb: Unknown result type (might be due to invalid IL or missing references) //IL_1acf0: Unknown result type (might be due to invalid IL or missing references) //IL_1ad05: Unknown result type (might be due to invalid IL or missing references) //IL_1ad1a: Unknown result type (might be due to invalid IL or missing references) //IL_1ad2f: Unknown result type (might be due to invalid IL or missing references) //IL_1ad44: Unknown result type (might be due to invalid IL or missing references) //IL_1ad82: Unknown result type (might be due to invalid IL or missing references) //IL_1adb8: Unknown result type (might be due to invalid IL or missing references) //IL_1add8: Unknown result type (might be due to invalid IL or missing references) //IL_1adf8: Unknown result type (might be due to invalid IL or missing references) //IL_1ae18: Unknown result type (might be due to invalid IL or missing references) //IL_1ae38: Unknown result type (might be due to invalid IL or missing references) //IL_1ae62: Unknown result type (might be due to invalid IL or missing references) //IL_1ae8c: Unknown result type (might be due to invalid IL or missing references) //IL_1aeb6: Unknown result type (might be due to invalid IL or missing references) //IL_1af48: Unknown result type (might be due to invalid IL or missing references) //IL_1af53: Unknown result type (might be due to invalid IL or missing references) //IL_1af5e: Unknown result type (might be due to invalid IL or missing references) //IL_1af69: Unknown result type (might be due to invalid IL or missing references) //IL_1af74: Unknown result type (might be due to invalid IL or missing references) //IL_1af7e: Unknown result type (might be due to invalid IL or missing references) //IL_1af83: Unknown result type (might be due to invalid IL or missing references) //IL_1af93: Expected O, but got Unknown //IL_1afdc: Unknown result type (might be due to invalid IL or missing references) //IL_1afe6: Expected O, but got Unknown //IL_1afe9: Unknown result type (might be due to invalid IL or missing references) //IL_1aff3: Expected O, but got Unknown //IL_1affe: Unknown result type (might be due to invalid IL or missing references) //IL_1b06f: Unknown result type (might be due to invalid IL or missing references) //IL_1b074: Unknown result type (might be due to invalid IL or missing references) //IL_1b089: Unknown result type (might be due to invalid IL or missing references) //IL_1b08e: Unknown result type (might be due to invalid IL or missing references) //IL_1b095: Unknown result type (might be due to invalid IL or missing references) //IL_1b0a1: Expected O, but got Unknown //IL_1b0fd: Unknown result type (might be due to invalid IL or missing references) //IL_1b102: Unknown result type (might be due to invalid IL or missing references) //IL_1b138: Unknown result type (might be due to invalid IL or missing references) //IL_1b13f: Expected O, but got Unknown //IL_1b14a: Unknown result type (might be due to invalid IL or missing references) //IL_1b151: Expected O, but got Unknown //IL_1b169: Unknown result type (might be due to invalid IL or missing references) //IL_1b16e: Unknown result type (might be due to invalid IL or missing references) //IL_1b1c3: Unknown result type (might be due to invalid IL or missing references) //IL_1b1ca: Expected O, but got Unknown //IL_1b1e2: Unknown result type (might be due to invalid IL or missing references) //IL_1b1e7: Unknown result type (might be due to invalid IL or missing references) //IL_1b253: Unknown result type (might be due to invalid IL or missing references) //IL_1b268: Unknown result type (might be due to invalid IL or missing references) //IL_1b2a6: Unknown result type (might be due to invalid IL or missing references) //IL_1b2dc: Unknown result type (might be due to invalid IL or missing references) //IL_1b2fc: Unknown result type (might be due to invalid IL or missing references) //IL_1b31c: Unknown result type (might be due to invalid IL or missing references) //IL_1b33c: Unknown result type (might be due to invalid IL or missing references) //IL_1b35c: Unknown result type (might be due to invalid IL or missing references) //IL_1b386: Unknown result type (might be due to invalid IL or missing references) //IL_1b3b0: Unknown result type (might be due to invalid IL or missing references) //IL_1b3da: Unknown result type (might be due to invalid IL or missing references) //IL_1b404: Unknown result type (might be due to invalid IL or missing references) //IL_1b42e: Unknown result type (might be due to invalid IL or missing references) //IL_1b458: Unknown result type (might be due to invalid IL or missing references) //IL_1b482: Unknown result type (might be due to invalid IL or missing references) //IL_1b4ac: Unknown result type (might be due to invalid IL or missing references) //IL_1b4d6: Unknown result type (might be due to invalid IL or missing references) //IL_1b500: Unknown result type (might be due to invalid IL or missing references) //IL_1b52a: Unknown result type (might be due to invalid IL or missing references) //IL_1b554: Unknown result type (might be due to invalid IL or missing references) //IL_1b57e: Unknown result type (might be due to invalid IL or missing references) //IL_1b5a8: Unknown result type (might be due to invalid IL or missing references) //IL_1b63a: Unknown result type (might be due to invalid IL or missing references) //IL_1b645: Unknown result type (might be due to invalid IL or missing references) //IL_1b650: Unknown result type (might be due to invalid IL or missing references) //IL_1b65b: Unknown result type (might be due to invalid IL or missing references) //IL_1b666: Unknown result type (might be due to invalid IL or missing references) //IL_1b670: Unknown result type (might be due to invalid IL or missing references) //IL_1b675: Unknown result type (might be due to invalid IL or missing references) //IL_1b685: Expected O, but got Unknown //IL_1b6ce: Unknown result type (might be due to invalid IL or missing references) //IL_1b6d8: Expected O, but got Unknown //IL_1b6db: Unknown result type (might be due to invalid IL or missing references) //IL_1b6e5: Expected O, but got Unknown //IL_1b6f0: Unknown result type (might be due to invalid IL or missing references) //IL_1b761: Unknown result type (might be due to invalid IL or missing references) //IL_1b766: Unknown result type (might be due to invalid IL or missing references) //IL_1b77b: Unknown result type (might be due to invalid IL or missing references) //IL_1b780: Unknown result type (might be due to invalid IL or missing references) //IL_1b787: Unknown result type (might be due to invalid IL or missing references) //IL_1b793: Expected O, but got Unknown //IL_1b7ef: Unknown result type (might be due to invalid IL or missing references) //IL_1b7f4: Unknown result type (might be due to invalid IL or missing references) //IL_1b82a: Unknown result type (might be due to invalid IL or missing references) //IL_1b831: Expected O, but got Unknown //IL_1b83c: Unknown result type (might be due to invalid IL or missing references) //IL_1b843: Expected O, but got Unknown //IL_1b85b: Unknown result type (might be due to invalid IL or missing references) //IL_1b860: Unknown result type (might be due to invalid IL or missing references) //IL_1b8b5: Unknown result type (might be due to invalid IL or missing references) //IL_1b8bc: Expected O, but got Unknown //IL_1b8d4: Unknown result type (might be due to invalid IL or missing references) //IL_1b8d9: Unknown result type (might be due to invalid IL or missing references) //IL_1b92e: Unknown result type (might be due to invalid IL or missing references) //IL_1b935: Expected O, but got Unknown //IL_1b94d: Unknown result type (might be due to invalid IL or missing references) //IL_1b952: Unknown result type (might be due to invalid IL or missing references) //IL_1b9be: Unknown result type (might be due to invalid IL or missing references) //IL_1b9d3: Unknown result type (might be due to invalid IL or missing references) //IL_1b9e8: Unknown result type (might be due to invalid IL or missing references) //IL_1ba26: Unknown result type (might be due to invalid IL or missing references) //IL_1ba5c: Unknown result type (might be due to invalid IL or missing references) //IL_1ba7c: Unknown result type (might be due to invalid IL or missing references) //IL_1ba9c: Unknown result type (might be due to invalid IL or missing references) //IL_1babc: Unknown result type (might be due to invalid IL or missing references) //IL_1badc: Unknown result type (might be due to invalid IL or missing references) //IL_1bb06: Unknown result type (might be due to invalid IL or missing references) //IL_1bb30: Unknown result type (might be due to invalid IL or missing references) //IL_1bb5a: Unknown result type (might be due to invalid IL or missing references) //IL_1bbec: Unknown result type (might be due to invalid IL or missing references) //IL_1bbf7: Unknown result type (might be due to invalid IL or missing references) //IL_1bc02: Unknown result type (might be due to invalid IL or missing references) //IL_1bc0d: Unknown result type (might be due to invalid IL or missing references) //IL_1bc18: Unknown result type (might be due to invalid IL or missing references) //IL_1bc22: Unknown result type (might be due to invalid IL or missing references) //IL_1bc27: Unknown result type (might be due to invalid IL or missing references) //IL_1bc37: Expected O, but got Unknown //IL_1bc80: Unknown result type (might be due to invalid IL or missing references) //IL_1bc8a: Expected O, but got Unknown //IL_1bc8d: Unknown result type (might be due to invalid IL or missing references) //IL_1bc97: Expected O, but got Unknown //IL_1bca2: Unknown result type (might be due to invalid IL or missing references) //IL_1bd13: Unknown result type (might be due to invalid IL or missing references) //IL_1bd18: Unknown result type (might be due to invalid IL or missing references) //IL_1bd2d: Unknown result type (might be due to invalid IL or missing references) //IL_1bd32: Unknown result type (might be due to invalid IL or missing references) //IL_1bd39: Unknown result type (might be due to invalid IL or missing references) //IL_1bd45: Expected O, but got Unknown //IL_1bda1: Unknown result type (might be due to invalid IL or missing references) //IL_1bda6: Unknown result type (might be due to invalid IL or missing references) //IL_1bddc: Unknown result type (might be due to invalid IL or missing references) //IL_1bde3: Expected O, but got Unknown //IL_1bdee: Unknown result type (might be due to invalid IL or missing references) //IL_1bdf5: Expected O, but got Unknown //IL_1be0d: Unknown result type (might be due to invalid IL or missing references) //IL_1be12: Unknown result type (might be due to invalid IL or missing references) //IL_1be67: Unknown result type (might be due to invalid IL or missing references) //IL_1be6e: Expected O, but got Unknown //IL_1be86: Unknown result type (might be due to invalid IL or missing references) //IL_1be8b: Unknown result type (might be due to invalid IL or missing references) //IL_1bee0: Unknown result type (might be due to invalid IL or missing references) //IL_1bee7: Expected O, but got Unknown //IL_1beff: Unknown result type (might be due to invalid IL or missing references) //IL_1bf04: Unknown result type (might be due to invalid IL or missing references) //IL_1bf70: Unknown result type (might be due to invalid IL or missing references) //IL_1bf85: Unknown result type (might be due to invalid IL or missing references) //IL_1bf9a: Unknown result type (might be due to invalid IL or missing references) //IL_1bfd8: Unknown result type (might be due to invalid IL or missing references) //IL_1c00e: Unknown result type (might be due to invalid IL or missing references) //IL_1c02e: Unknown result type (might be due to invalid IL or missing references) //IL_1c04e: Unknown result type (might be due to invalid IL or missing references) //IL_1c078: Unknown result type (might be due to invalid IL or missing references) //IL_1c0a2: Unknown result type (might be due to invalid IL or missing references) //IL_1c0cc: Unknown result type (might be due to invalid IL or missing references) //IL_1c15e: Unknown result type (might be due to invalid IL or missing references) //IL_1c169: Unknown result type (might be due to invalid IL or missing references) //IL_1c174: Unknown result type (might be due to invalid IL or missing references) //IL_1c17f: Unknown result type (might be due to invalid IL or missing references) //IL_1c18a: Unknown result type (might be due to invalid IL or missing references) //IL_1c194: Unknown result type (might be due to invalid IL or missing references) //IL_1c199: Unknown result type (might be due to invalid IL or missing references) //IL_1c1a9: Expected O, but got Unknown //IL_1c1f2: Unknown result type (might be due to invalid IL or missing references) //IL_1c1fc: Expected O, but got Unknown //IL_1c1ff: Unknown result type (might be due to invalid IL or missing references) //IL_1c209: Expected O, but got Unknown //IL_1c214: Unknown result type (might be due to invalid IL or missing references) //IL_1c285: Unknown result type (might be due to invalid IL or missing references) //IL_1c28a: Unknown result type (might be due to invalid IL or missing references) //IL_1c29f: Unknown result type (might be due to invalid IL or missing references) //IL_1c2a4: Unknown result type (might be due to invalid IL or missing references) //IL_1c2ab: Unknown result type (might be due to invalid IL or missing references) //IL_1c2b7: Expected O, but got Unknown //IL_1c313: Unknown result type (might be due to invalid IL or missing references) //IL_1c318: Unknown result type (might be due to invalid IL or missing references) //IL_1c34e: Unknown result type (might be due to invalid IL or missing references) //IL_1c355: Expected O, but got Unknown //IL_1c360: Unknown result type (might be due to invalid IL or missing references) //IL_1c367: Expected O, but got Unknown //IL_1c37f: Unknown result type (might be due to invalid IL or missing references) //IL_1c384: Unknown result type (might be due to invalid IL or missing references) //IL_1c3d9: Unknown result type (might be due to invalid IL or missing references) //IL_1c3e0: Expected O, but got Unknown //IL_1c3f8: Unknown result type (might be due to invalid IL or missing references) //IL_1c3fd: Unknown result type (might be due to invalid IL or missing references) //IL_1c452: Unknown result type (might be due to invalid IL or missing references) //IL_1c459: Expected O, but got Unknown //IL_1c471: Unknown result type (might be due to invalid IL or missing references) //IL_1c476: Unknown result type (might be due to invalid IL or missing references) //IL_1c4cb: Unknown result type (might be due to invalid IL or missing references) //IL_1c4d2: Expected O, but got Unknown //IL_1c4ea: Unknown result type (might be due to invalid IL or missing references) //IL_1c4ef: Unknown result type (might be due to invalid IL or missing references) //IL_1c544: Unknown result type (might be due to invalid IL or missing references) //IL_1c54b: Expected O, but got Unknown //IL_1c563: Unknown result type (might be due to invalid IL or missing references) //IL_1c568: Unknown result type (might be due to invalid IL or missing references) //IL_1c5d4: Unknown result type (might be due to invalid IL or missing references) //IL_1c5e9: Unknown result type (might be due to invalid IL or missing references) //IL_1c5fe: Unknown result type (might be due to invalid IL or missing references) //IL_1c613: Unknown result type (might be due to invalid IL or missing references) //IL_1c628: Unknown result type (might be due to invalid IL or missing references) //IL_1c666: Unknown result type (might be due to invalid IL or missing references) //IL_1c69c: Unknown result type (might be due to invalid IL or missing references) //IL_1c6bc: Unknown result type (might be due to invalid IL or missing references) //IL_1c6dc: Unknown result type (might be due to invalid IL or missing references) //IL_1c6fc: Unknown result type (might be due to invalid IL or missing references) //IL_1c71c: Unknown result type (might be due to invalid IL or missing references) //IL_1c746: Unknown result type (might be due to invalid IL or missing references) //IL_1c770: Unknown result type (might be due to invalid IL or missing references) //IL_1c79a: Unknown result type (might be due to invalid IL or missing references) //IL_1c7c4: Unknown result type (might be due to invalid IL or missing references) //IL_1c7ee: Unknown result type (might be due to invalid IL or missing references) //IL_1c818: Unknown result type (might be due to invalid IL or missing references) //IL_1c842: Unknown result type (might be due to invalid IL or missing references) //IL_1c86c: Unknown result type (might be due to invalid IL or missing references) //IL_1c896: Unknown result type (might be due to invalid IL or missing references) //IL_1c8c0: Unknown result type (might be due to invalid IL or missing references) //IL_1c8ea: Unknown result type (might be due to invalid IL or missing references) //IL_1c914: Unknown result type (might be due to invalid IL or missing references) //IL_1c93e: Unknown result type (might be due to invalid IL or missing references) //IL_1c968: Unknown result type (might be due to invalid IL or missing references) //IL_1c992: Unknown result type (might be due to invalid IL or missing references) //IL_1c9bc: Unknown result type (might be due to invalid IL or missing references) //IL_1ca4e: Unknown result type (might be due to invalid IL or missing references) //IL_1ca59: Unknown result type (might be due to invalid IL or missing references) //IL_1ca64: Unknown result type (might be due to invalid IL or missing references) //IL_1ca6f: Unknown result type (might be due to invalid IL or missing references) //IL_1ca7a: Unknown result type (might be due to invalid IL or missing references) //IL_1ca84: Unknown result type (might be due to invalid IL or missing references) //IL_1ca89: Unknown result type (might be due to invalid IL or missing references) //IL_1ca99: Expected O, but got Unknown //IL_1cae2: Unknown result type (might be due to invalid IL or missing references) //IL_1caec: Expected O, but got Unknown //IL_1caef: Unknown result type (might be due to invalid IL or missing references) //IL_1caf9: Expected O, but got Unknown //IL_1cb04: Unknown result type (might be due to invalid IL or missing references) //IL_1cb75: Unknown result type (might be due to invalid IL or missing references) //IL_1cb7a: Unknown result type (might be due to invalid IL or missing references) //IL_1cb8f: Unknown result type (might be due to invalid IL or missing references) //IL_1cb94: Unknown result type (might be due to invalid IL or missing references) //IL_1cb9b: Unknown result type (might be due to invalid IL or missing references) //IL_1cba7: Expected O, but got Unknown //IL_1cc03: Unknown result type (might be due to invalid IL or missing references) //IL_1cc08: Unknown result type (might be due to invalid IL or missing references) //IL_1cc3e: Unknown result type (might be due to invalid IL or missing references) //IL_1cc45: Expected O, but got Unknown //IL_1cc50: Unknown result type (might be due to invalid IL or missing references) //IL_1cc57: Expected O, but got Unknown //IL_1cc6f: Unknown result type (might be due to invalid IL or missing references) //IL_1cc74: Unknown result type (might be due to invalid IL or missing references) //IL_1ccc9: Unknown result type (might be due to invalid IL or missing references) //IL_1ccd0: Expected O, but got Unknown //IL_1cce8: Unknown result type (might be due to invalid IL or missing references) //IL_1cced: Unknown result type (might be due to invalid IL or missing references) //IL_1cd42: Unknown result type (might be due to invalid IL or missing references) //IL_1cd49: Expected O, but got Unknown //IL_1cd61: Unknown result type (might be due to invalid IL or missing references) //IL_1cd66: Unknown result type (might be due to invalid IL or missing references) //IL_1cdd2: Unknown result type (might be due to invalid IL or missing references) //IL_1cde7: Unknown result type (might be due to invalid IL or missing references) //IL_1cdfc: Unknown result type (might be due to invalid IL or missing references) //IL_1ce3a: Unknown result type (might be due to invalid IL or missing references) //IL_1ce70: Unknown result type (might be due to invalid IL or missing references) //IL_1ce90: Unknown result type (might be due to invalid IL or missing references) //IL_1ceb0: Unknown result type (might be due to invalid IL or missing references) //IL_1cefc: Unknown result type (might be due to invalid IL or missing references) //IL_1cf48: Unknown result type (might be due to invalid IL or missing references) //IL_1cf94: Unknown result type (might be due to invalid IL or missing references) //IL_1cfe0: Unknown result type (might be due to invalid IL or missing references) //IL_1d02c: Unknown result type (might be due to invalid IL or missing references) //IL_1d078: Unknown result type (might be due to invalid IL or missing references) //IL_1d0a2: Unknown result type (might be due to invalid IL or missing references) //IL_1d0cc: Unknown result type (might be due to invalid IL or missing references) //IL_1d0f6: Unknown result type (might be due to invalid IL or missing references) //IL_1d120: Unknown result type (might be due to invalid IL or missing references) //IL_1d14a: Unknown result type (might be due to invalid IL or missing references) //IL_1d174: Unknown result type (might be due to invalid IL or missing references) //IL_1d206: Unknown result type (might be due to invalid IL or missing references) //IL_1d211: Unknown result type (might be due to invalid IL or missing references) //IL_1d21c: Unknown result type (might be due to invalid IL or missing references) //IL_1d227: Unknown result type (might be due to invalid IL or missing references) //IL_1d232: Unknown result type (might be due to invalid IL or missing references) //IL_1d23c: Unknown result type (might be due to invalid IL or missing references) //IL_1d241: Unknown result type (might be due to invalid IL or missing references) //IL_1d251: Expected O, but got Unknown //IL_1d29a: Unknown result type (might be due to invalid IL or missing references) //IL_1d2a4: Expected O, but got Unknown //IL_1d2a7: Unknown result type (might be due to invalid IL or missing references) //IL_1d2b1: Expected O, but got Unknown //IL_1d2bc: Unknown result type (might be due to invalid IL or missing references) //IL_1d32d: Unknown result type (might be due to invalid IL or missing references) //IL_1d332: Unknown result type (might be due to invalid IL or missing references) //IL_1d347: Unknown result type (might be due to invalid IL or missing references) //IL_1d34c: Unknown result type (might be due to invalid IL or missing references) //IL_1d353: Unknown result type (might be due to invalid IL or missing references) //IL_1d35f: Expected O, but got Unknown //IL_1d3bb: Unknown result type (might be due to invalid IL or missing references) //IL_1d3c0: Unknown result type (might be due to invalid IL or missing references) //IL_1d3f6: Unknown result type (might be due to invalid IL or missing references) //IL_1d3fd: Expected O, but got Unknown //IL_1d408: Unknown result type (might be due to invalid IL or missing references) //IL_1d40f: Expected O, but got Unknown //IL_1d427: Unknown result type (might be due to invalid IL or missing references) //IL_1d42c: Unknown result type (might be due to invalid IL or missing references) //IL_1d481: Unknown result type (might be due to invalid IL or missing references) //IL_1d488: Expected O, but got Unknown //IL_1d4a0: Unknown result type (might be due to invalid IL or missing references) //IL_1d4a5: Unknown result type (might be due to invalid IL or missing references) //IL_1d4fa: Unknown result type (might be due to invalid IL or missing references) //IL_1d501: Expected O, but got Unknown //IL_1d519: Unknown result type (might be due to invalid IL or missing references) //IL_1d51e: Unknown result type (might be due to invalid IL or missing references) //IL_1d573: Unknown result type (might be due to invalid IL or missing references) //IL_1d57a: Expected O, but got Unknown //IL_1d592: Unknown result type (might be due to invalid IL or missing references) //IL_1d597: Unknown result type (might be due to invalid IL or missing references) //IL_1d603: Unknown result type (might be due to invalid IL or missing references) //IL_1d618: Unknown result type (might be due to invalid IL or missing references) //IL_1d62d: Unknown result type (might be due to invalid IL or missing references) //IL_1d642: Unknown result type (might be due to invalid IL or missing references) //IL_1d680: Unknown result type (might be due to invalid IL or missing references) //IL_1d6a2: Unknown result type (might be due to invalid IL or missing references) //IL_1d6a9: Expected O, but got Unknown //IL_1d6b4: Unknown result type (might be due to invalid IL or missing references) //IL_1d6bb: Expected O, but got Unknown //IL_1d6d3: Unknown result type (might be due to invalid IL or missing references) //IL_1d6d8: Unknown result type (might be due to invalid IL or missing references) //IL_1d72d: Unknown result type (might be due to invalid IL or missing references) //IL_1d734: Expected O, but got Unknown //IL_1d74c: Unknown result type (might be due to invalid IL or missing references) //IL_1d751: Unknown result type (might be due to invalid IL or missing references) //IL_1d7a6: Unknown result type (might be due to invalid IL or missing references) //IL_1d7ad: Expected O, but got Unknown //IL_1d7c5: Unknown result type (might be due to invalid IL or missing references) //IL_1d7ca: Unknown result type (might be due to invalid IL or missing references) //IL_1d836: Unknown result type (might be due to invalid IL or missing references) //IL_1d84b: Unknown result type (might be due to invalid IL or missing references) //IL_1d860: Unknown result type (might be due to invalid IL or missing references) //IL_1d89e: Unknown result type (might be due to invalid IL or missing references) //IL_1d8c0: Unknown result type (might be due to invalid IL or missing references) //IL_1d8c7: Expected O, but got Unknown //IL_1d8d2: Unknown result type (might be due to invalid IL or missing references) //IL_1d8d9: Expected O, but got Unknown //IL_1d8f1: Unknown result type (might be due to invalid IL or missing references) //IL_1d8f6: Unknown result type (might be due to invalid IL or missing references) //IL_1d962: Unknown result type (might be due to invalid IL or missing references) //IL_1d9a0: Unknown result type (might be due to invalid IL or missing references) //IL_1d9d6: Unknown result type (might be due to invalid IL or missing references) //IL_1d9f6: Unknown result type (might be due to invalid IL or missing references) //IL_1da16: Unknown result type (might be due to invalid IL or missing references) //IL_1da36: Unknown result type (might be due to invalid IL or missing references) //IL_1da56: Unknown result type (might be due to invalid IL or missing references) //IL_1daa2: Unknown result type (might be due to invalid IL or missing references) //IL_1daee: Unknown result type (might be due to invalid IL or missing references) //IL_1db3a: Unknown result type (might be due to invalid IL or missing references) //IL_1db86: Unknown result type (might be due to invalid IL or missing references) //IL_1dbd2: Unknown result type (might be due to invalid IL or missing references) //IL_1dc1e: Unknown result type (might be due to invalid IL or missing references) //IL_1dc6a: Unknown result type (might be due to invalid IL or missing references) //IL_1dcb6: Unknown result type (might be due to invalid IL or missing references) //IL_1dd02: Unknown result type (might be due to invalid IL or missing references) //IL_1dd4e: Unknown result type (might be due to invalid IL or missing references) //IL_1dd9a: Unknown result type (might be due to invalid IL or missing references) //IL_1dde6: Unknown result type (might be due to invalid IL or missing references) //IL_1de32: Unknown result type (might be due to invalid IL or missing references) //IL_1de7e: Unknown result type (might be due to invalid IL or missing references) //IL_1deca: Unknown result type (might be due to invalid IL or missing references) //IL_1df16: Unknown result type (might be due to invalid IL or missing references) //IL_1df62: Unknown result type (might be due to invalid IL or missing references) //IL_1dfae: Unknown result type (might be due to invalid IL or missing references) //IL_1dffa: Unknown result type (might be due to invalid IL or missing references) //IL_1e046: Unknown result type (might be due to invalid IL or missing references) //IL_1e092: Unknown result type (might be due to invalid IL or missing references) //IL_1e0de: Unknown result type (might be due to invalid IL or missing references) //IL_1e12a: Unknown result type (might be due to invalid IL or missing references) //IL_1e176: Unknown result type (might be due to invalid IL or missing references) //IL_1e1c2: Unknown result type (might be due to invalid IL or missing references) //IL_1e20e: Unknown result type (might be due to invalid IL or missing references) //IL_1e25a: Unknown result type (might be due to invalid IL or missing references) //IL_1e2a6: Unknown result type (might be due to invalid IL or missing references) //IL_1e2f2: Unknown result type (might be due to invalid IL or missing references) //IL_1e33e: Unknown result type (might be due to invalid IL or missing references) //IL_1e38a: Unknown result type (might be due to invalid IL or missing references) //IL_1e3d6: Unknown result type (might be due to invalid IL or missing references) //IL_1e422: Unknown result type (might be due to invalid IL or missing references) //IL_1e46e: Unknown result type (might be due to invalid IL or missing references) //IL_1e4ba: Unknown result type (might be due to invalid IL or missing references) //IL_1e506: Unknown result type (might be due to invalid IL or missing references) //IL_1e552: Unknown result type (might be due to invalid IL or missing references) //IL_1e59e: Unknown result type (might be due to invalid IL or missing references) //IL_1e5ea: Unknown result type (might be due to invalid IL or missing references) //IL_1e636: Unknown result type (might be due to invalid IL or missing references) //IL_1e682: Unknown result type (might be due to invalid IL or missing references) //IL_1e6ce: Unknown result type (might be due to invalid IL or missing references) //IL_1e71a: Unknown result type (might be due to invalid IL or missing references) //IL_1e766: Unknown result type (might be due to invalid IL or missing references) //IL_1e7b2: Unknown result type (might be due to invalid IL or missing references) //IL_1e7fe: Unknown result type (might be due to invalid IL or missing references) //IL_1e84a: Unknown result type (might be due to invalid IL or missing references) //IL_1e896: Unknown result type (might be due to invalid IL or missing references) //IL_1e8c0: Unknown result type (might be due to invalid IL or missing references) //IL_1e8ea: Unknown result type (might be due to invalid IL or missing references) //IL_1e914: Unknown result type (might be due to invalid IL or missing references) //IL_1e93e: Unknown result type (might be due to invalid IL or missing references) //IL_1e968: Unknown result type (might be due to invalid IL or missing references) //IL_1e992: Unknown result type (might be due to invalid IL or missing references) //IL_1e9bc: Unknown result type (might be due to invalid IL or missing references) //IL_1ea4e: Unknown result type (might be due to invalid IL or missing references) //IL_1ea59: Unknown result type (might be due to invalid IL or missing references) //IL_1ea64: Unknown result type (might be due to invalid IL or missing references) //IL_1ea6f: Unknown result type (might be due to invalid IL or missing references) //IL_1ea7a: Unknown result type (might be due to invalid IL or missing references) //IL_1ea84: Unknown result type (might be due to invalid IL or missing references) //IL_1ea89: Unknown result type (might be due to invalid IL or missing references) //IL_1ea99: Expected O, but got Unknown //IL_1eaeb: Unknown result type (might be due to invalid IL or missing references) //IL_1eb5c: Unknown result type (might be due to invalid IL or missing references) //IL_1eb61: Unknown result type (might be due to invalid IL or missing references) //IL_1eb76: Unknown result type (might be due to invalid IL or missing references) //IL_1eb7b: Unknown result type (might be due to invalid IL or missing references) //IL_1eb82: Unknown result type (might be due to invalid IL or missing references) //IL_1eb8e: Expected O, but got Unknown //IL_1ebea: Unknown result type (might be due to invalid IL or missing references) //IL_1ebef: Unknown result type (might be due to invalid IL or missing references) //IL_1ec36: Unknown result type (might be due to invalid IL or missing references) //IL_1ec56: Unknown result type (might be due to invalid IL or missing references) //IL_1ec76: Unknown result type (might be due to invalid IL or missing references) //IL_1ec96: Unknown result type (might be due to invalid IL or missing references) //IL_1ecb6: Unknown result type (might be due to invalid IL or missing references) //IL_1ece5: Unknown result type (might be due to invalid IL or missing references) //IL_1ed14: Unknown result type (might be due to invalid IL or missing references) //IL_1ed43: Unknown result type (might be due to invalid IL or missing references) //IL_1ed72: Unknown result type (might be due to invalid IL or missing references) //IL_1eda1: Unknown result type (might be due to invalid IL or missing references) //IL_1edd0: Unknown result type (might be due to invalid IL or missing references) //IL_1edff: Unknown result type (might be due to invalid IL or missing references) //IL_1ee2e: Unknown result type (might be due to invalid IL or missing references) //IL_1ee5d: Unknown result type (might be due to invalid IL or missing references) //IL_1ee8c: Unknown result type (might be due to invalid IL or missing references) //IL_1eebb: Unknown result type (might be due to invalid IL or missing references) //IL_1eeea: Unknown result type (might be due to invalid IL or missing references) //IL_1ef36: Unknown result type (might be due to invalid IL or missing references) //IL_1ef82: Unknown result type (might be due to invalid IL or missing references) //IL_1efce: Unknown result type (might be due to invalid IL or missing references) //IL_1f082: Unknown result type (might be due to invalid IL or missing references) //IL_1f08d: Unknown result type (might be due to invalid IL or missing references) //IL_1f098: Unknown result type (might be due to invalid IL or missing references) //IL_1f0a3: Unknown result type (might be due to invalid IL or missing references) //IL_1f0ae: Unknown result type (might be due to invalid IL or missing references) //IL_1f0b8: Unknown result type (might be due to invalid IL or missing references) //IL_1f0bd: Unknown result type (might be due to invalid IL or missing references) //IL_1f0cd: Expected O, but got Unknown //IL_1f116: Unknown result type (might be due to invalid IL or missing references) //IL_1f120: Expected O, but got Unknown //IL_1f123: Unknown result type (might be due to invalid IL or missing references) //IL_1f12d: Expected O, but got Unknown //IL_1f138: Unknown result type (might be due to invalid IL or missing references) //IL_1f1a9: Unknown result type (might be due to invalid IL or missing references) //IL_1f1ae: Unknown result type (might be due to invalid IL or missing references) //IL_1f1c3: Unknown result type (might be due to invalid IL or missing references) //IL_1f1c8: Unknown result type (might be due to invalid IL or missing references) //IL_1f1cf: Unknown result type (might be due to invalid IL or missing references) //IL_1f1db: Expected O, but got Unknown //IL_1f237: Unknown result type (might be due to invalid IL or missing references) //IL_1f23c: Unknown result type (might be due to invalid IL or missing references) //IL_1f271: Unknown result type (might be due to invalid IL or missing references) //IL_1f278: Expected O, but got Unknown //IL_1f283: Unknown result type (might be due to invalid IL or missing references) //IL_1f28a: Expected O, but got Unknown //IL_1f2a2: Unknown result type (might be due to invalid IL or missing references) //IL_1f2a7: Unknown result type (might be due to invalid IL or missing references) //IL_1f313: Unknown result type (might be due to invalid IL or missing references) //IL_1f351: Unknown result type (might be due to invalid IL or missing references) //IL_1f387: Unknown result type (might be due to invalid IL or missing references) //IL_1f3a7: Unknown result type (might be due to invalid IL or missing references) //IL_1f3c7: Unknown result type (might be due to invalid IL or missing references) //IL_1f413: Unknown result type (might be due to invalid IL or missing references) //IL_1f45f: Unknown result type (might be due to invalid IL or missing references) //IL_1f4ab: Unknown result type (might be due to invalid IL or missing references) //IL_1f4f7: Unknown result type (might be due to invalid IL or missing references) //IL_1f543: Unknown result type (might be due to invalid IL or missing references) //IL_1f58f: Unknown result type (might be due to invalid IL or missing references) //IL_1f5db: Unknown result type (might be due to invalid IL or missing references) //IL_1f627: Unknown result type (might be due to invalid IL or missing references) //IL_1f673: Unknown result type (might be due to invalid IL or missing references) //IL_1f6bf: Unknown result type (might be due to invalid IL or missing references) //IL_1f70b: Unknown result type (might be due to invalid IL or missing references) //IL_1f757: Unknown result type (might be due to invalid IL or missing references) //IL_1f781: Unknown result type (might be due to invalid IL or missing references) //IL_1f7ab: Unknown result type (might be due to invalid IL or missing references) //IL_1f7d5: Unknown result type (might be due to invalid IL or missing references) //IL_1f7ff: Unknown result type (might be due to invalid IL or missing references) //IL_1f829: Unknown result type (might be due to invalid IL or missing references) //IL_1f853: Unknown result type (might be due to invalid IL or missing references) //IL_1f87d: Unknown result type (might be due to invalid IL or missing references) //IL_1f90f: Unknown result type (might be due to invalid IL or missing references) //IL_1f91a: Unknown result type (might be due to invalid IL or missing references) //IL_1f925: Unknown result type (might be due to invalid IL or missing references) //IL_1f930: Unknown result type (might be due to invalid IL or missing references) //IL_1f93b: Unknown result type (might be due to invalid IL or missing references) //IL_1f945: Unknown result type (might be due to invalid IL or missing references) //IL_1f94a: Unknown result type (might be due to invalid IL or missing references) //IL_1f95a: Expected O, but got Unknown //IL_1f9a3: Unknown result type (might be due to invalid IL or missing references) //IL_1f9ad: Expected O, but got Unknown //IL_1f9b0: Unknown result type (might be due to invalid IL or missing references) //IL_1f9ba: Expected O, but got Unknown //IL_1f9c5: Unknown result type (might be due to invalid IL or missing references) //IL_1fa36: Unknown result type (might be due to invalid IL or missing references) //IL_1fa3b: Unknown result type (might be due to invalid IL or missing references) //IL_1fa50: Unknown result type (might be due to invalid IL or missing references) //IL_1fa55: Unknown result type (might be due to invalid IL or missing references) //IL_1fa5c: Unknown result type (might be due to invalid IL or missing references) //IL_1fa68: Expected O, but got Unknown //IL_1fac4: Unknown result type (might be due to invalid IL or missing references) //IL_1fac9: Unknown result type (might be due to invalid IL or missing references) //IL_1fb10: Unknown result type (might be due to invalid IL or missing references) //IL_1fb30: Unknown result type (might be due to invalid IL or missing references) //IL_1fb50: Unknown result type (might be due to invalid IL or missing references) //IL_1fb70: Unknown result type (might be due to invalid IL or missing references) //IL_1fb90: Unknown result type (might be due to invalid IL or missing references) //IL_1fbdc: Unknown result type (might be due to invalid IL or missing references) //IL_1fc28: Unknown result type (might be due to invalid IL or missing references) //IL_1fc74: Unknown result type (might be due to invalid IL or missing references) //IL_1fcc0: Unknown result type (might be due to invalid IL or missing references) //IL_1fd0c: Unknown result type (might be due to invalid IL or missing references) //IL_1fd58: Unknown result type (might be due to invalid IL or missing references) //IL_1fda4: Unknown result type (might be due to invalid IL or missing references) //IL_1fdf0: Unknown result type (might be due to invalid IL or missing references) //IL_1fe3c: Unknown result type (might be due to invalid IL or missing references) //IL_1fe88: Unknown result type (might be due to invalid IL or missing references) //IL_1fed4: Unknown result type (might be due to invalid IL or missing references) //IL_1ff20: Unknown result type (might be due to invalid IL or missing references) //IL_1ff6c: Unknown result type (might be due to invalid IL or missing references) //IL_1ffb8: Unknown result type (might be due to invalid IL or missing references) //IL_20004: Unknown result type (might be due to invalid IL or missing references) //IL_20050: Unknown result type (might be due to invalid IL or missing references) //IL_2007a: Unknown result type (might be due to invalid IL or missing references) //IL_200a4: Unknown result type (might be due to invalid IL or missing references) //IL_200ce: Unknown result type (might be due to invalid IL or missing references) //IL_200f8: Unknown result type (might be due to invalid IL or missing references) //IL_20122: Unknown result type (might be due to invalid IL or missing references) //IL_201b4: Unknown result type (might be due to invalid IL or missing references) //IL_201bf: Unknown result type (might be due to invalid IL or missing references) //IL_201ca: Unknown result type (might be due to invalid IL or missing references) //IL_201d5: Unknown result type (might be due to invalid IL or missing references) //IL_201e0: Unknown result type (might be due to invalid IL or missing references) //IL_201ea: Unknown result type (might be due to invalid IL or missing references) //IL_201ef: Unknown result type (might be due to invalid IL or missing references) //IL_201ff: Expected O, but got Unknown //IL_20248: Unknown result type (might be due to invalid IL or missing references) //IL_20252: Expected O, but got Unknown //IL_20255: Unknown result type (might be due to invalid IL or missing references) //IL_2025f: Expected O, but got Unknown //IL_2026a: Unknown result type (might be due to invalid IL or missing references) //IL_202db: Unknown result type (might be due to invalid IL or missing references) //IL_202e0: Unknown result type (might be due to invalid IL or missing references) //IL_202f5: Unknown result type (might be due to invalid IL or missing references) //IL_202fa: Unknown result type (might be due to invalid IL or missing references) //IL_20301: Unknown result type (might be due to invalid IL or missing references) //IL_2030d: Expected O, but got Unknown //IL_20369: Unknown result type (might be due to invalid IL or missing references) //IL_2036e: Unknown result type (might be due to invalid IL or missing references) //IL_203a4: Unknown result type (might be due to invalid IL or missing references) //IL_203ab: Expected O, but got Unknown //IL_203b6: Unknown result type (might be due to invalid IL or missing references) //IL_203bd: Expected O, but got Unknown //IL_203d5: Unknown result type (might be due to invalid IL or missing references) //IL_203da: Unknown result type (might be due to invalid IL or missing references) //IL_20446: Unknown result type (might be due to invalid IL or missing references) //IL_20484: Unknown result type (might be due to invalid IL or missing references) //IL_204a6: Unknown result type (might be due to invalid IL or missing references) //IL_204ad: Expected O, but got Unknown //IL_204b8: Unknown result type (might be due to invalid IL or missing references) //IL_204bf: Expected O, but got Unknown //IL_204d7: Unknown result type (might be due to invalid IL or missing references) //IL_204dc: Unknown result type (might be due to invalid IL or missing references) //IL_20548: Unknown result type (might be due to invalid IL or missing references) //IL_20586: Unknown result type (might be due to invalid IL or missing references) //IL_205bc: Unknown result type (might be due to invalid IL or missing references) //IL_205dc: Unknown result type (might be due to invalid IL or missing references) //IL_205fc: Unknown result type (might be due to invalid IL or missing references) //IL_2061c: Unknown result type (might be due to invalid IL or missing references) //IL_2063c: Unknown result type (might be due to invalid IL or missing references) //IL_206ce: Unknown result type (might be due to invalid IL or missing references) //IL_206d9: Unknown result type (might be due to invalid IL or missing references) //IL_206e4: Unknown result type (might be due to invalid IL or missing references) //IL_206ef: Unknown result type (might be due to invalid IL or missing references) //IL_206fa: Unknown result type (might be due to invalid IL or missing references) //IL_20704: Unknown result type (might be due to invalid IL or missing references) //IL_20709: Unknown result type (might be due to invalid IL or missing references) //IL_20719: Expected O, but got Unknown //IL_20762: Unknown result type (might be due to invalid IL or missing references) //IL_2076c: Expected O, but got Unknown //IL_2076f: Unknown result type (might be due to invalid IL or missing references) //IL_20779: Expected O, but got Unknown //IL_20784: Unknown result type (might be due to invalid IL or missing references) //IL_207f5: Unknown result type (might be due to invalid IL or missing references) //IL_207fa: Unknown result type (might be due to invalid IL or missing references) //IL_2080f: Unknown result type (might be due to invalid IL or missing references) //IL_20814: Unknown result type (might be due to invalid IL or missing references) //IL_2081b: Unknown result type (might be due to invalid IL or missing references) //IL_20827: Expected O, but got Unknown //IL_20883: Unknown result type (might be due to invalid IL or missing references) //IL_20888: Unknown result type (might be due to invalid IL or missing references) //IL_208be: Unknown result type (might be due to invalid IL or missing references) //IL_208c5: Expected O, but got Unknown //IL_208d0: Unknown result type (might be due to invalid IL or missing references) //IL_208d7: Expected O, but got Unknown //IL_208ef: Unknown result type (might be due to invalid IL or missing references) //IL_208f4: Unknown result type (might be due to invalid IL or missing references) //IL_20949: Unknown result type (might be due to invalid IL or missing references) //IL_20950: Expected O, but got Unknown //IL_20968: Unknown result type (might be due to invalid IL or missing references) //IL_2096d: Unknown result type (might be due to invalid IL or missing references) //IL_209c2: Unknown result type (might be due to invalid IL or missing references) //IL_209c9: Expected O, but got Unknown //IL_209e1: Unknown result type (might be due to invalid IL or missing references) //IL_209e6: Unknown result type (might be due to invalid IL or missing references) //IL_20a52: Unknown result type (might be due to invalid IL or missing references) //IL_20a67: Unknown result type (might be due to invalid IL or missing references) //IL_20a7c: Unknown result type (might be due to invalid IL or missing references) //IL_20aba: Unknown result type (might be due to invalid IL or missing references) //IL_20adc: Unknown result type (might be due to invalid IL or missing references) //IL_20ae3: Expected O, but got Unknown //IL_20aee: Unknown result type (might be due to invalid IL or missing references) //IL_20af5: Expected O, but got Unknown //IL_20b0d: Unknown result type (might be due to invalid IL or missing references) //IL_20b12: Unknown result type (might be due to invalid IL or missing references) //IL_20b67: Unknown result type (might be due to invalid IL or missing references) //IL_20b6e: Expected O, but got Unknown //IL_20b86: Unknown result type (might be due to invalid IL or missing references) //IL_20b8b: Unknown result type (might be due to invalid IL or missing references) //IL_20be0: Unknown result type (might be due to invalid IL or missing references) //IL_20be7: Expected O, but got Unknown //IL_20bff: Unknown result type (might be due to invalid IL or missing references) //IL_20c04: Unknown result type (might be due to invalid IL or missing references) //IL_20c59: Unknown result type (might be due to invalid IL or missing references) //IL_20c60: Expected O, but got Unknown //IL_20c78: Unknown result type (might be due to invalid IL or missing references) //IL_20c7d: Unknown result type (might be due to invalid IL or missing references) //IL_20ce9: Unknown result type (might be due to invalid IL or missing references) //IL_20cfe: Unknown result type (might be due to invalid IL or missing references) //IL_20d13: Unknown result type (might be due to invalid IL or missing references) //IL_20d28: Unknown result type (might be due to invalid IL or missing references) //IL_20d66: Unknown result type (might be due to invalid IL or missing references) //IL_20d9c: Unknown result type (might be due to invalid IL or missing references) //IL_20dbc: Unknown result type (might be due to invalid IL or missing references) //IL_20ddc: Unknown result type (might be due to invalid IL or missing references) //IL_20dfc: Unknown result type (might be due to invalid IL or missing references) //IL_20e1c: Unknown result type (might be due to invalid IL or missing references) //IL_20e46: Unknown result type (might be due to invalid IL or missing references) //IL_20e70: Unknown result type (might be due to invalid IL or missing references) //IL_20f02: Unknown result type (might be due to invalid IL or missing references) //IL_20f0d: Unknown result type (might be due to invalid IL or missing references) //IL_20f18: Unknown result type (might be due to invalid IL or missing references) //IL_20f23: Unknown result type (might be due to invalid IL or missing references) //IL_20f2e: Unknown result type (might be due to invalid IL or missing references) //IL_20f38: Unknown result type (might be due to invalid IL or missing references) //IL_20f3d: Unknown result type (might be due to invalid IL or missing references) //IL_20f4d: Expected O, but got Unknown //IL_20f96: Unknown result type (might be due to invalid IL or missing references) //IL_20fa0: Expected O, but got Unknown //IL_20fa3: Unknown result type (might be due to invalid IL or missing references) //IL_20fad: Expected O, but got Unknown //IL_20fb8: Unknown result type (might be due to invalid IL or missing references) //IL_21029: Unknown result type (might be due to invalid IL or missing references) //IL_2102e: Unknown result type (might be due to invalid IL or missing references) //IL_21043: Unknown result type (might be due to invalid IL or missing references) //IL_21048: Unknown result type (might be due to invalid IL or missing references) //IL_2104f: Unknown result type (might be due to invalid IL or missing references) //IL_2105b: Expected O, but got Unknown //IL_210b7: Unknown result type (might be due to invalid IL or missing references) //IL_210bc: Unknown result type (might be due to invalid IL or missing references) //IL_210f2: Unknown result type (might be due to invalid IL or missing references) //IL_210f9: Expected O, but got Unknown //IL_21104: Unknown result type (might be due to invalid IL or missing references) //IL_2110b: Expected O, but got Unknown //IL_21123: Unknown result type (might be due to invalid IL or missing references) //IL_21128: Unknown result type (might be due to invalid IL or missing references) //IL_21194: Unknown result type (might be due to invalid IL or missing references) //IL_211d2: Unknown result type (might be due to invalid IL or missing references) //IL_21208: Unknown result type (might be due to invalid IL or missing references) //IL_21228: Unknown result type (might be due to invalid IL or missing references) //IL_21248: Unknown result type (might be due to invalid IL or missing references) //IL_21268: Unknown result type (might be due to invalid IL or missing references) //IL_21288: Unknown result type (might be due to invalid IL or missing references) //IL_212a8: Unknown result type (might be due to invalid IL or missing references) //IL_212c8: Unknown result type (might be due to invalid IL or missing references) //IL_212e8: Unknown result type (might be due to invalid IL or missing references) //IL_21308: Unknown result type (might be due to invalid IL or missing references) //IL_21337: Unknown result type (might be due to invalid IL or missing references) //IL_21383: Unknown result type (might be due to invalid IL or missing references) //IL_213cf: Unknown result type (might be due to invalid IL or missing references) //IL_2141b: Unknown result type (might be due to invalid IL or missing references) //IL_21467: Unknown result type (might be due to invalid IL or missing references) //IL_214b3: Unknown result type (might be due to invalid IL or missing references) //IL_214ff: Unknown result type (might be due to invalid IL or missing references) //IL_2154b: Unknown result type (might be due to invalid IL or missing references) //IL_21597: Unknown result type (might be due to invalid IL or missing references) //IL_215e3: Unknown result type (might be due to invalid IL or missing references) //IL_2162f: Unknown result type (might be due to invalid IL or missing references) //IL_2167b: Unknown result type (might be due to invalid IL or missing references) //IL_216c7: Unknown result type (might be due to invalid IL or missing references) //IL_21713: Unknown result type (might be due to invalid IL or missing references) //IL_2175f: Unknown result type (might be due to invalid IL or missing references) //IL_217ab: Unknown result type (might be due to invalid IL or missing references) //IL_217f7: Unknown result type (might be due to invalid IL or missing references) //IL_21821: Unknown result type (might be due to invalid IL or missing references) //IL_2184b: Unknown result type (might be due to invalid IL or missing references) //IL_21875: Unknown result type (might be due to invalid IL or missing references) //IL_2189f: Unknown result type (might be due to invalid IL or missing references) //IL_218c9: Unknown result type (might be due to invalid IL or missing references) //IL_218f3: Unknown result type (might be due to invalid IL or missing references) //IL_2191d: Unknown result type (might be due to invalid IL or missing references) //IL_21947: Unknown result type (might be due to invalid IL or missing references) //IL_21971: Unknown result type (might be due to invalid IL or missing references) //IL_2199b: Unknown result type (might be due to invalid IL or missing references) //IL_219c5: Unknown result type (might be due to invalid IL or missing references) //IL_219ef: Unknown result type (might be due to invalid IL or missing references) //IL_21c1d: Unknown result type (might be due to invalid IL or missing references) //IL_21c31: Unknown result type (might be due to invalid IL or missing references) //IL_22e68: Unknown result type (might be due to invalid IL or missing references) //IL_22e73: Unknown result type (might be due to invalid IL or missing references) //IL_22e7e: Unknown result type (might be due to invalid IL or missing references) //IL_22e89: Unknown result type (might be due to invalid IL or missing references) //IL_22e94: Unknown result type (might be due to invalid IL or missing references) //IL_22e9e: Unknown result type (might be due to invalid IL or missing references) //IL_22ea3: Unknown result type (might be due to invalid IL or missing references) //IL_22eb3: Expected O, but got Unknown //IL_22efc: Unknown result type (might be due to invalid IL or missing references) //IL_22f06: Expected O, but got Unknown //IL_22f09: Unknown result type (might be due to invalid IL or missing references) //IL_22f13: Expected O, but got Unknown //IL_22f1e: Unknown result type (might be due to invalid IL or missing references) //IL_22f8f: Unknown result type (might be due to invalid IL or missing references) //IL_22f94: Unknown result type (might be due to invalid IL or missing references) //IL_22fa9: Unknown result type (might be due to invalid IL or missing references) //IL_22fae: Unknown result type (might be due to invalid IL or missing references) //IL_22fb5: Unknown result type (might be due to invalid IL or missing references) //IL_22fc1: Expected O, but got Unknown //IL_2301d: Unknown result type (might be due to invalid IL or missing references) //IL_23022: Unknown result type (might be due to invalid IL or missing references) //IL_2304e: Unknown result type (might be due to invalid IL or missing references) //IL_2306e: Unknown result type (might be due to invalid IL or missing references) //IL_2308e: Unknown result type (might be due to invalid IL or missing references) //IL_230ae: Unknown result type (might be due to invalid IL or missing references) //IL_230ce: Unknown result type (might be due to invalid IL or missing references) //IL_2311a: Unknown result type (might be due to invalid IL or missing references) //IL_23166: Unknown result type (might be due to invalid IL or missing references) //IL_231b2: Unknown result type (might be due to invalid IL or missing references) //IL_231fe: Unknown result type (might be due to invalid IL or missing references) //IL_2324a: Unknown result type (might be due to invalid IL or missing references) //IL_23296: Unknown result type (might be due to invalid IL or missing references) //IL_232e2: Unknown result type (might be due to invalid IL or missing references) //IL_2332e: Unknown result type (might be due to invalid IL or missing references) //IL_2337a: Unknown result type (might be due to invalid IL or missing references) //IL_233c6: Unknown result type (might be due to invalid IL or missing references) //IL_23412: Unknown result type (might be due to invalid IL or missing references) //IL_2345e: Unknown result type (might be due to invalid IL or missing references) //IL_234aa: Unknown result type (might be due to invalid IL or missing references) //IL_234f6: Unknown result type (might be due to invalid IL or missing references) //IL_23542: Unknown result type (might be due to invalid IL or missing references) //IL_2358e: Unknown result type (might be due to invalid IL or missing references) //IL_235b8: Unknown result type (might be due to invalid IL or missing references) //IL_23615: Unknown result type (might be due to invalid IL or missing references) //IL_23644: Unknown result type (might be due to invalid IL or missing references) //IL_23673: Unknown result type (might be due to invalid IL or missing references) //IL_236a2: Unknown result type (might be due to invalid IL or missing references) //IL_236d1: Unknown result type (might be due to invalid IL or missing references) //IL_23700: Unknown result type (might be due to invalid IL or missing references) //IL_2372f: Unknown result type (might be due to invalid IL or missing references) //IL_2375e: Unknown result type (might be due to invalid IL or missing references) //IL_2378d: Unknown result type (might be due to invalid IL or missing references) //IL_237bc: Unknown result type (might be due to invalid IL or missing references) //IL_237eb: Unknown result type (might be due to invalid IL or missing references) //IL_2381a: Unknown result type (might be due to invalid IL or missing references) //IL_23849: Unknown result type (might be due to invalid IL or missing references) //IL_23878: Unknown result type (might be due to invalid IL or missing references) //IL_238a7: Unknown result type (might be due to invalid IL or missing references) //IL_238d6: Unknown result type (might be due to invalid IL or missing references) //IL_23905: Unknown result type (might be due to invalid IL or missing references) //IL_23934: Unknown result type (might be due to invalid IL or missing references) //IL_23963: Unknown result type (might be due to invalid IL or missing references) //IL_23992: Unknown result type (might be due to invalid IL or missing references) //IL_239c1: Unknown result type (might be due to invalid IL or missing references) //IL_239f0: Unknown result type (might be due to invalid IL or missing references) //IL_23a1f: Unknown result type (might be due to invalid IL or missing references) //IL_23a4e: Unknown result type (might be due to invalid IL or missing references) //IL_23ad4: Unknown result type (might be due to invalid IL or missing references) //IL_23adf: Unknown result type (might be due to invalid IL or missing references) //IL_23aea: Unknown result type (might be due to invalid IL or missing references) //IL_23af5: Unknown result type (might be due to invalid IL or missing references) //IL_23b00: Unknown result type (might be due to invalid IL or missing references) //IL_23b0a: Unknown result type (might be due to invalid IL or missing references) //IL_23b0f: Unknown result type (might be due to invalid IL or missing references) //IL_23b1f: Expected O, but got Unknown //IL_23b68: Unknown result type (might be due to invalid IL or missing references) //IL_23b72: Expected O, but got Unknown //IL_23b75: Unknown result type (might be due to invalid IL or missing references) //IL_23b7f: Expected O, but got Unknown //IL_23b8a: Unknown result type (might be due to invalid IL or missing references) //IL_23bfb: Unknown result type (might be due to invalid IL or missing references) //IL_23c00: Unknown result type (might be due to invalid IL or missing references) //IL_23c15: Unknown result type (might be due to invalid IL or missing references) //IL_23c1a: Unknown result type (might be due to invalid IL or missing references) //IL_23c21: Unknown result type (might be due to invalid IL or missing references) //IL_23c2d: Expected O, but got Unknown //IL_23c89: Unknown result type (might be due to invalid IL or missing references) //IL_23c8e: Unknown result type (might be due to invalid IL or missing references) //IL_23cba: Unknown result type (might be due to invalid IL or missing references) //IL_23cda: Unknown result type (might be due to invalid IL or missing references) //IL_23cfa: Unknown result type (might be due to invalid IL or missing references) //IL_23d1a: Unknown result type (might be due to invalid IL or missing references) //IL_23d3a: Unknown result type (might be due to invalid IL or missing references) //IL_23d86: Unknown result type (might be due to invalid IL or missing references) //IL_23dd2: Unknown result type (might be due to invalid IL or missing references) //IL_23e1e: Unknown result type (might be due to invalid IL or missing references) //IL_23e6a: Unknown result type (might be due to invalid IL or missing references) //IL_23eb6: Unknown result type (might be due to invalid IL or missing references) //IL_23f02: Unknown result type (might be due to invalid IL or missing references) //IL_23f4e: Unknown result type (might be due to invalid IL or missing references) //IL_23f9a: Unknown result type (might be due to invalid IL or missing references) //IL_23fe6: Unknown result type (might be due to invalid IL or missing references) //IL_24032: Unknown result type (might be due to invalid IL or missing references) //IL_2407e: Unknown result type (might be due to invalid IL or missing references) //IL_240ca: Unknown result type (might be due to invalid IL or missing references) //IL_24116: Unknown result type (might be due to invalid IL or missing references) //IL_24162: Unknown result type (might be due to invalid IL or missing references) //IL_241ae: Unknown result type (might be due to invalid IL or missing references) //IL_241fa: Unknown result type (might be due to invalid IL or missing references) //IL_24246: Unknown result type (might be due to invalid IL or missing references) //IL_24292: Unknown result type (might be due to invalid IL or missing references) //IL_242de: Unknown result type (might be due to invalid IL or missing references) //IL_2432a: Unknown result type (might be due to invalid IL or missing references) //IL_24376: Unknown result type (might be due to invalid IL or missing references) //IL_243c2: Unknown result type (might be due to invalid IL or missing references) //IL_2440e: Unknown result type (might be due to invalid IL or missing references) //IL_2445a: Unknown result type (might be due to invalid IL or missing references) //IL_244a6: Unknown result type (might be due to invalid IL or missing references) //IL_244f2: Unknown result type (might be due to invalid IL or missing references) //IL_2453e: Unknown result type (might be due to invalid IL or missing references) //IL_2458a: Unknown result type (might be due to invalid IL or missing references) //IL_245d6: Unknown result type (might be due to invalid IL or missing references) //IL_24622: Unknown result type (might be due to invalid IL or missing references) //IL_2466e: Unknown result type (might be due to invalid IL or missing references) //IL_246ba: Unknown result type (might be due to invalid IL or missing references) //IL_24706: Unknown result type (might be due to invalid IL or missing references) //IL_24752: Unknown result type (might be due to invalid IL or missing references) //IL_2479e: Unknown result type (might be due to invalid IL or missing references) //IL_247ea: Unknown result type (might be due to invalid IL or missing references) //IL_2489e: Unknown result type (might be due to invalid IL or missing references) //IL_248a9: Unknown result type (might be due to invalid IL or missing references) //IL_248b4: Unknown result type (might be due to invalid IL or missing references) //IL_248bf: Unknown result type (might be due to invalid IL or missing references) //IL_248ca: Unknown result type (might be due to invalid IL or missing references) //IL_248d4: Unknown result type (might be due to invalid IL or missing references) //IL_248d9: Unknown result type (might be due to invalid IL or missing references) //IL_248e9: Expected O, but got Unknown //IL_24932: Unknown result type (might be due to invalid IL or missing references) //IL_2493c: Expected O, but got Unknown //IL_2493f: Unknown result type (might be due to invalid IL or missing references) //IL_24949: Expected O, but got Unknown //IL_24955: Unknown result type (might be due to invalid IL or missing references) //IL_249c6: Unknown result type (might be due to invalid IL or missing references) //IL_249cb: Unknown result type (might be due to invalid IL or missing references) //IL_249e0: Unknown result type (might be due to invalid IL or missing references) //IL_249e5: Unknown result type (might be due to invalid IL or missing references) //IL_249ec: Unknown result type (might be due to invalid IL or missing references) //IL_249f8: Expected O, but got Unknown //IL_24a54: Unknown result type (might be due to invalid IL or missing references) //IL_24a59: Unknown result type (might be due to invalid IL or missing references) //IL_24b76: Unknown result type (might be due to invalid IL or missing references) //IL_24b7b: Unknown result type (might be due to invalid IL or missing references) //IL_24b87: Unknown result type (might be due to invalid IL or missing references) //IL_24bd6: Unknown result type (might be due to invalid IL or missing references) //IL_24c8a: Unknown result type (might be due to invalid IL or missing references) //IL_24c95: Unknown result type (might be due to invalid IL or missing references) //IL_24ca0: Unknown result type (might be due to invalid IL or missing references) //IL_24cab: Unknown result type (might be due to invalid IL or missing references) //IL_24cb6: Unknown result type (might be due to invalid IL or missing references) //IL_24cc0: Unknown result type (might be due to invalid IL or missing references) //IL_24cc5: Unknown result type (might be due to invalid IL or missing references) //IL_24cd5: Expected O, but got Unknown //IL_24d1e: Unknown result type (might be due to invalid IL or missing references) //IL_24d28: Expected O, but got Unknown //IL_24d2b: Unknown result type (might be due to invalid IL or missing references) //IL_24d35: Expected O, but got Unknown //IL_24d41: Unknown result type (might be due to invalid IL or missing references) //IL_24db2: Unknown result type (might be due to invalid IL or missing references) //IL_24db7: Unknown result type (might be due to invalid IL or missing references) //IL_24dcc: Unknown result type (might be due to invalid IL or missing references) //IL_24dd1: Unknown result type (might be due to invalid IL or missing references) //IL_24dd8: Unknown result type (might be due to invalid IL or missing references) //IL_24de4: Expected O, but got Unknown //IL_24e40: Unknown result type (might be due to invalid IL or missing references) //IL_24e45: Unknown result type (might be due to invalid IL or missing references) //IL_24f62: Unknown result type (might be due to invalid IL or missing references) //IL_24f67: Unknown result type (might be due to invalid IL or missing references) //IL_24f73: Unknown result type (might be due to invalid IL or missing references) //IL_24fc2: Unknown result type (might be due to invalid IL or missing references) //IL_25076: Unknown result type (might be due to invalid IL or missing references) //IL_25081: Unknown result type (might be due to invalid IL or missing references) //IL_2508c: Unknown result type (might be due to invalid IL or missing references) //IL_25097: Unknown result type (might be due to invalid IL or missing references) //IL_250a2: Unknown result type (might be due to invalid IL or missing references) //IL_250ac: Unknown result type (might be due to invalid IL or missing references) //IL_250b1: Unknown result type (might be due to invalid IL or missing references) //IL_250c2: Expected O, but got Unknown //IL_25114: Unknown result type (might be due to invalid IL or missing references) //IL_25199: Unknown result type (might be due to invalid IL or missing references) //IL_2519e: Unknown result type (might be due to invalid IL or missing references) //IL_251b3: Unknown result type (might be due to invalid IL or missing references) //IL_251b8: Unknown result type (might be due to invalid IL or missing references) //IL_251bf: Unknown result type (might be due to invalid IL or missing references) //IL_251cb: Expected O, but got Unknown //IL_25225: Unknown result type (might be due to invalid IL or missing references) //IL_2522a: Unknown result type (might be due to invalid IL or missing references) //IL_2528c: Unknown result type (might be due to invalid IL or missing references) //IL_252b4: Unknown result type (might be due to invalid IL or missing references) //IL_25300: Unknown result type (might be due to invalid IL or missing references) //IL_2534c: Unknown result type (might be due to invalid IL or missing references) //IL_25374: Unknown result type (might be due to invalid IL or missing references) //IL_2539c: Unknown result type (might be due to invalid IL or missing references) //IL_253c4: Unknown result type (might be due to invalid IL or missing references) //IL_253ec: Unknown result type (might be due to invalid IL or missing references) //IL_25414: Unknown result type (might be due to invalid IL or missing references) //IL_2543c: Unknown result type (might be due to invalid IL or missing references) //IL_25464: Unknown result type (might be due to invalid IL or missing references) //IL_2548c: Unknown result type (might be due to invalid IL or missing references) //IL_254b4: Unknown result type (might be due to invalid IL or missing references) //IL_254dc: Unknown result type (might be due to invalid IL or missing references) //IL_25504: Unknown result type (might be due to invalid IL or missing references) //IL_2552c: Unknown result type (might be due to invalid IL or missing references) //IL_25554: Unknown result type (might be due to invalid IL or missing references) //IL_2557c: Unknown result type (might be due to invalid IL or missing references) //IL_255a4: Unknown result type (might be due to invalid IL or missing references) //IL_255cc: Unknown result type (might be due to invalid IL or missing references) //IL_255f4: Unknown result type (might be due to invalid IL or missing references) //IL_2561c: Unknown result type (might be due to invalid IL or missing references) //IL_25644: Unknown result type (might be due to invalid IL or missing references) //IL_2566c: Unknown result type (might be due to invalid IL or missing references) //IL_25694: Unknown result type (might be due to invalid IL or missing references) //IL_256bc: Unknown result type (might be due to invalid IL or missing references) //IL_256e4: Unknown result type (might be due to invalid IL or missing references) //IL_2570c: Unknown result type (might be due to invalid IL or missing references) //IL_25734: Unknown result type (might be due to invalid IL or missing references) //IL_2575c: Unknown result type (might be due to invalid IL or missing references) //IL_25784: Unknown result type (might be due to invalid IL or missing references) //IL_257ac: Unknown result type (might be due to invalid IL or missing references) //IL_257d4: Unknown result type (might be due to invalid IL or missing references) //IL_257fc: Unknown result type (might be due to invalid IL or missing references) //IL_25824: Unknown result type (might be due to invalid IL or missing references) //IL_2584c: Unknown result type (might be due to invalid IL or missing references) //IL_258dc: Unknown result type (might be due to invalid IL or missing references) //IL_258e7: Unknown result type (might be due to invalid IL or missing references) //IL_258f2: Unknown result type (might be due to invalid IL or missing references) //IL_258fd: Unknown result type (might be due to invalid IL or missing references) //IL_25908: Unknown result type (might be due to invalid IL or missing references) //IL_25912: Unknown result type (might be due to invalid IL or missing references) //IL_25917: Unknown result type (might be due to invalid IL or missing references) //IL_25927: Expected O, but got Unknown //IL_25970: Unknown result type (might be due to invalid IL or missing references) //IL_2597a: Expected O, but got Unknown //IL_2597d: Unknown result type (might be due to invalid IL or missing references) //IL_25987: Expected O, but got Unknown //IL_25992: Unknown result type (might be due to invalid IL or missing references) //IL_25a03: Unknown result type (might be due to invalid IL or missing references) //IL_25a08: Unknown result type (might be due to invalid IL or missing references) //IL_25a1d: Unknown result type (might be due to invalid IL or missing references) //IL_25a22: Unknown result type (might be due to invalid IL or missing references) //IL_25a29: Unknown result type (might be due to invalid IL or missing references) //IL_25a35: Expected O, but got Unknown //IL_25a8f: Unknown result type (might be due to invalid IL or missing references) //IL_25a94: Unknown result type (might be due to invalid IL or missing references) //IL_25af0: Unknown result type (might be due to invalid IL or missing references) //IL_25b10: Unknown result type (might be due to invalid IL or missing references) //IL_25b30: Unknown result type (might be due to invalid IL or missing references) //IL_25b50: Unknown result type (might be due to invalid IL or missing references) //IL_25b70: Unknown result type (might be due to invalid IL or missing references) //IL_25b90: Unknown result type (might be due to invalid IL or missing references) //IL_25bbf: Unknown result type (might be due to invalid IL or missing references) //IL_25be7: Unknown result type (might be due to invalid IL or missing references) //IL_25c11: Unknown result type (might be due to invalid IL or missing references) //IL_25c3b: Unknown result type (might be due to invalid IL or missing references) //IL_25ccd: Unknown result type (might be due to invalid IL or missing references) //IL_25cd8: Unknown result type (might be due to invalid IL or missing references) //IL_25ce3: Unknown result type (might be due to invalid IL or missing references) //IL_25cee: Unknown result type (might be due to invalid IL or missing references) //IL_25cf9: Unknown result type (might be due to invalid IL or missing references) //IL_25d03: Unknown result type (might be due to invalid IL or missing references) //IL_25d08: Unknown result type (might be due to invalid IL or missing references) //IL_25d18: Expected O, but got Unknown //IL_25d6a: Unknown result type (might be due to invalid IL or missing references) //IL_25ddb: Unknown result type (might be due to invalid IL or missing references) //IL_25de0: Unknown result type (might be due to invalid IL or missing references) //IL_25df5: Unknown result type (might be due to invalid IL or missing references) //IL_25dfa: Unknown result type (might be due to invalid IL or missing references) //IL_25e01: Unknown result type (might be due to invalid IL or missing references) //IL_25e0d: Expected O, but got Unknown //IL_25e69: Unknown result type (might be due to invalid IL or missing references) //IL_25e6e: Unknown result type (might be due to invalid IL or missing references) //IL_25eca: Unknown result type (might be due to invalid IL or missing references) //IL_25eea: Unknown result type (might be due to invalid IL or missing references) //IL_25f0a: Unknown result type (might be due to invalid IL or missing references) //IL_25f2a: Unknown result type (might be due to invalid IL or missing references) //IL_25f4a: Unknown result type (might be due to invalid IL or missing references) //IL_25f6a: Unknown result type (might be due to invalid IL or missing references) //IL_25ffa: Unknown result type (might be due to invalid IL or missing references) //IL_26005: Unknown result type (might be due to invalid IL or missing references) //IL_26010: Unknown result type (might be due to invalid IL or missing references) //IL_2601b: Unknown result type (might be due to invalid IL or missing references) //IL_26026: Unknown result type (might be due to invalid IL or missing references) //IL_26030: Unknown result type (might be due to invalid IL or missing references) //IL_26035: Unknown result type (might be due to invalid IL or missing references) //IL_26045: Expected O, but got Unknown //IL_26097: Unknown result type (might be due to invalid IL or missing references) //IL_26108: Unknown result type (might be due to invalid IL or missing references) //IL_2610d: Unknown result type (might be due to invalid IL or missing references) //IL_26122: Unknown result type (might be due to invalid IL or missing references) //IL_26127: Unknown result type (might be due to invalid IL or missing references) //IL_2612e: Unknown result type (might be due to invalid IL or missing references) //IL_2613a: Expected O, but got Unknown //IL_26196: Unknown result type (might be due to invalid IL or missing references) //IL_2619b: Unknown result type (might be due to invalid IL or missing references) //IL_261fc: Unknown result type (might be due to invalid IL or missing references) //IL_2621c: Unknown result type (might be due to invalid IL or missing references) //IL_2623c: Unknown result type (might be due to invalid IL or missing references) //IL_2625c: Unknown result type (might be due to invalid IL or missing references) //IL_2627c: Unknown result type (might be due to invalid IL or missing references) //IL_2629c: Unknown result type (might be due to invalid IL or missing references) //IL_2632c: Unknown result type (might be due to invalid IL or missing references) //IL_26337: Unknown result type (might be due to invalid IL or missing references) //IL_26342: Unknown result type (might be due to invalid IL or missing references) //IL_2634d: Unknown result type (might be due to invalid IL or missing references) //IL_26358: Unknown result type (might be due to invalid IL or missing references) //IL_26362: Unknown result type (might be due to invalid IL or missing references) //IL_26367: Unknown result type (might be due to invalid IL or missing references) //IL_26377: Expected O, but got Unknown //IL_263c9: Unknown result type (might be due to invalid IL or missing references) //IL_2643a: Unknown result type (might be due to invalid IL or missing references) //IL_2643f: Unknown result type (might be due to invalid IL or missing references) //IL_26454: Unknown result type (might be due to invalid IL or missing references) //IL_26459: Unknown result type (might be due to invalid IL or missing references) //IL_26460: Unknown result type (might be due to invalid IL or missing references) //IL_2646c: Expected O, but got Unknown //IL_264ca: Unknown result type (might be due to invalid IL or missing references) //IL_264cf: Unknown result type (might be due to invalid IL or missing references) //IL_2651f: Unknown result type (might be due to invalid IL or missing references) //IL_2653f: Unknown result type (might be due to invalid IL or missing references) //IL_2655f: Unknown result type (might be due to invalid IL or missing references) //IL_2657f: Unknown result type (might be due to invalid IL or missing references) //IL_2659f: Unknown result type (might be due to invalid IL or missing references) //IL_265ca: Unknown result type (might be due to invalid IL or missing references) //IL_26658: Unknown result type (might be due to invalid IL or missing references) //IL_26663: Unknown result type (might be due to invalid IL or missing references) //IL_2666e: Unknown result type (might be due to invalid IL or missing references) //IL_26679: Unknown result type (might be due to invalid IL or missing references) //IL_26684: Unknown result type (might be due to invalid IL or missing references) //IL_2668e: Unknown result type (might be due to invalid IL or missing references) //IL_26693: Unknown result type (might be due to invalid IL or missing references) //IL_266a3: Expected O, but got Unknown //IL_266f5: Unknown result type (might be due to invalid IL or missing references) //IL_26766: Unknown result type (might be due to invalid IL or missing references) //IL_2676b: Unknown result type (might be due to invalid IL or missing references) //IL_26780: Unknown result type (might be due to invalid IL or missing references) //IL_26785: Unknown result type (might be due to invalid IL or missing references) //IL_2678c: Unknown result type (might be due to invalid IL or missing references) //IL_26798: Expected O, but got Unknown //IL_267f6: Unknown result type (might be due to invalid IL or missing references) //IL_267fb: Unknown result type (might be due to invalid IL or missing references) //IL_2684b: Unknown result type (might be due to invalid IL or missing references) //IL_2686b: Unknown result type (might be due to invalid IL or missing references) //IL_2688b: Unknown result type (might be due to invalid IL or missing references) //IL_268ab: Unknown result type (might be due to invalid IL or missing references) //IL_2692e: Unknown result type (might be due to invalid IL or missing references) //IL_26939: Unknown result type (might be due to invalid IL or missing references) //IL_26944: Unknown result type (might be due to invalid IL or missing references) //IL_2694f: Unknown result type (might be due to invalid IL or missing references) //IL_2695a: Unknown result type (might be due to invalid IL or missing references) //IL_26964: Unknown result type (might be due to invalid IL or missing references) //IL_26969: Unknown result type (might be due to invalid IL or missing references) //IL_26979: Expected O, but got Unknown //IL_269cb: Unknown result type (might be due to invalid IL or missing references) //IL_26a3c: Unknown result type (might be due to invalid IL or missing references) //IL_26a41: Unknown result type (might be due to invalid IL or missing references) //IL_26a56: Unknown result type (might be due to invalid IL or missing references) //IL_26a5b: Unknown result type (might be due to invalid IL or missing references) //IL_26a62: Unknown result type (might be due to invalid IL or missing references) //IL_26a6e: Expected O, but got Unknown //IL_26aca: Unknown result type (might be due to invalid IL or missing references) //IL_26acf: Unknown result type (might be due to invalid IL or missing references) //IL_26b10: Unknown result type (might be due to invalid IL or missing references) //IL_26b17: Expected O, but got Unknown //IL_26b22: Unknown result type (might be due to invalid IL or missing references) //IL_26b29: Expected O, but got Unknown //IL_26b47: Unknown result type (might be due to invalid IL or missing references) //IL_26b4c: Unknown result type (might be due to invalid IL or missing references) //IL_26ba1: Unknown result type (might be due to invalid IL or missing references) //IL_26ba8: Expected O, but got Unknown //IL_26bc6: Unknown result type (might be due to invalid IL or missing references) //IL_26bcb: Unknown result type (might be due to invalid IL or missing references) //IL_26c20: Unknown result type (might be due to invalid IL or missing references) //IL_26c27: Expected O, but got Unknown //IL_26c45: Unknown result type (might be due to invalid IL or missing references) //IL_26c4a: Unknown result type (might be due to invalid IL or missing references) //IL_26c9f: Unknown result type (might be due to invalid IL or missing references) //IL_26ca6: Expected O, but got Unknown //IL_26cbe: Unknown result type (might be due to invalid IL or missing references) //IL_26cc3: Unknown result type (might be due to invalid IL or missing references) //IL_26d18: Unknown result type (might be due to invalid IL or missing references) //IL_26d1f: Expected O, but got Unknown //IL_26d37: Unknown result type (might be due to invalid IL or missing references) //IL_26d3c: Unknown result type (might be due to invalid IL or missing references) //IL_26d91: Unknown result type (might be due to invalid IL or missing references) //IL_26d98: Expected O, but got Unknown //IL_26db0: Unknown result type (might be due to invalid IL or missing references) //IL_26db5: Unknown result type (might be due to invalid IL or missing references) //IL_26e0a: Unknown result type (might be due to invalid IL or missing references) //IL_26e11: Expected O, but got Unknown //IL_26e29: Unknown result type (might be due to invalid IL or missing references) //IL_26e2e: Unknown result type (might be due to invalid IL or missing references) //IL_26e83: Unknown result type (might be due to invalid IL or missing references) //IL_26e8a: Expected O, but got Unknown //IL_26ea2: Unknown result type (might be due to invalid IL or missing references) //IL_26ea7: Unknown result type (might be due to invalid IL or missing references) //IL_26efc: Unknown result type (might be due to invalid IL or missing references) //IL_26f03: Expected O, but got Unknown //IL_26f1b: Unknown result type (might be due to invalid IL or missing references) //IL_26f20: Unknown result type (might be due to invalid IL or missing references) //IL_26f75: Unknown result type (might be due to invalid IL or missing references) //IL_26f7c: Expected O, but got Unknown //IL_26f94: Unknown result type (might be due to invalid IL or missing references) //IL_26f99: Unknown result type (might be due to invalid IL or missing references) //IL_26fee: Unknown result type (might be due to invalid IL or missing references) //IL_26ff5: Expected O, but got Unknown //IL_2700d: Unknown result type (might be due to invalid IL or missing references) //IL_27012: Unknown result type (might be due to invalid IL or missing references) //IL_27067: Unknown result type (might be due to invalid IL or missing references) //IL_2706e: Expected O, but got Unknown //IL_270a8: Unknown result type (might be due to invalid IL or missing references) //IL_270ad: Unknown result type (might be due to invalid IL or missing references) //IL_27119: Unknown result type (might be due to invalid IL or missing references) //IL_2712e: Unknown result type (might be due to invalid IL or missing references) //IL_27143: Unknown result type (might be due to invalid IL or missing references) //IL_27158: Unknown result type (might be due to invalid IL or missing references) //IL_2716d: Unknown result type (might be due to invalid IL or missing references) //IL_27182: Unknown result type (might be due to invalid IL or missing references) //IL_27197: Unknown result type (might be due to invalid IL or missing references) //IL_271ac: Unknown result type (might be due to invalid IL or missing references) //IL_271c1: Unknown result type (might be due to invalid IL or missing references) //IL_271d6: Unknown result type (might be due to invalid IL or missing references) //IL_271eb: Unknown result type (might be due to invalid IL or missing references) //IL_27200: Unknown result type (might be due to invalid IL or missing references) //IL_2723e: Unknown result type (might be due to invalid IL or missing references) //IL_27274: Unknown result type (might be due to invalid IL or missing references) //IL_27294: Unknown result type (might be due to invalid IL or missing references) //IL_272b4: Unknown result type (might be due to invalid IL or missing references) //IL_272d4: Unknown result type (might be due to invalid IL or missing references) //IL_272f4: Unknown result type (might be due to invalid IL or missing references) //IL_273a3: Unknown result type (might be due to invalid IL or missing references) //IL_273ae: Unknown result type (might be due to invalid IL or missing references) //IL_273b9: Unknown result type (might be due to invalid IL or missing references) //IL_273c4: Unknown result type (might be due to invalid IL or missing references) //IL_273cf: Unknown result type (might be due to invalid IL or missing references) //IL_273d9: Unknown result type (might be due to invalid IL or missing references) //IL_273de: Unknown result type (might be due to invalid IL or missing references) //IL_273ee: Expected O, but got Unknown //IL_27437: Unknown result type (might be due to invalid IL or missing references) //IL_27441: Expected O, but got Unknown //IL_27444: Unknown result type (might be due to invalid IL or missing references) //IL_2744e: Expected O, but got Unknown //IL_27459: Unknown result type (might be due to invalid IL or missing references) //IL_274ca: Unknown result type (might be due to invalid IL or missing references) //IL_274cf: Unknown result type (might be due to invalid IL or missing references) //IL_274e4: Unknown result type (might be due to invalid IL or missing references) //IL_274e9: Unknown result type (might be due to invalid IL or missing references) //IL_274f0: Unknown result type (might be due to invalid IL or missing references) //IL_274fc: Expected O, but got Unknown //IL_2754d: Unknown result type (might be due to invalid IL or missing references) //IL_27564: Unknown result type (might be due to invalid IL or missing references) //IL_27569: Unknown result type (might be due to invalid IL or missing references) //IL_275dc: Unknown result type (might be due to invalid IL or missing references) //IL_275fc: Unknown result type (might be due to invalid IL or missing references) //IL_2761c: Unknown result type (might be due to invalid IL or missing references) //IL_2763c: Unknown result type (might be due to invalid IL or missing references) //IL_2765c: Unknown result type (might be due to invalid IL or missing references) //IL_2771e: Unknown result type (might be due to invalid IL or missing references) //IL_27729: Unknown result type (might be due to invalid IL or missing references) //IL_27734: Unknown result type (might be due to invalid IL or missing references) //IL_2773f: Unknown result type (might be due to invalid IL or missing references) //IL_2774a: Unknown result type (might be due to invalid IL or missing references) //IL_27754: Unknown result type (might be due to invalid IL or missing references) //IL_27759: Unknown result type (might be due to invalid IL or missing references) //IL_27769: Expected O, but got Unknown //IL_277b2: Unknown result type (might be due to invalid IL or missing references) //IL_277bc: Expected O, but got Unknown //IL_277bf: Unknown result type (might be due to invalid IL or missing references) //IL_277c9: Expected O, but got Unknown //IL_277d4: Unknown result type (might be due to invalid IL or missing references) //IL_27859: Unknown result type (might be due to invalid IL or missing references) //IL_2785e: Unknown result type (might be due to invalid IL or missing references) //IL_27873: Unknown result type (might be due to invalid IL or missing references) //IL_27878: Unknown result type (might be due to invalid IL or missing references) //IL_2787f: Unknown result type (might be due to invalid IL or missing references) //IL_2788b: Expected O, but got Unknown //IL_278e7: Unknown result type (might be due to invalid IL or missing references) //IL_278ec: Unknown result type (might be due to invalid IL or missing references) //IL_278ff: Unknown result type (might be due to invalid IL or missing references) //IL_27906: Expected O, but got Unknown //IL_27911: Unknown result type (might be due to invalid IL or missing references) //IL_27918: Expected O, but got Unknown //IL_27930: Unknown result type (might be due to invalid IL or missing references) //IL_27935: Unknown result type (might be due to invalid IL or missing references) //IL_2798a: Unknown result type (might be due to invalid IL or missing references) //IL_27991: Expected O, but got Unknown //IL_279a9: Unknown result type (might be due to invalid IL or missing references) //IL_279ae: Unknown result type (might be due to invalid IL or missing references) //IL_27a03: Unknown result type (might be due to invalid IL or missing references) //IL_27a0a: Expected O, but got Unknown //IL_27a22: Unknown result type (might be due to invalid IL or missing references) //IL_27a27: Unknown result type (might be due to invalid IL or missing references) //IL_27a93: Unknown result type (might be due to invalid IL or missing references) //IL_27aa8: Unknown result type (might be due to invalid IL or missing references) //IL_27abd: Unknown result type (might be due to invalid IL or missing references) //IL_27afb: Unknown result type (might be due to invalid IL or missing references) //IL_27b75: Unknown result type (might be due to invalid IL or missing references) //IL_27b95: Unknown result type (might be due to invalid IL or missing references) //IL_27bb5: Unknown result type (might be due to invalid IL or missing references) //IL_27bd5: Unknown result type (might be due to invalid IL or missing references) //IL_27bf5: Unknown result type (might be due to invalid IL or missing references) //IL_27c41: Unknown result type (might be due to invalid IL or missing references) //IL_27c8d: Unknown result type (might be due to invalid IL or missing references) //IL_27cb7: Unknown result type (might be due to invalid IL or missing references) //IL_27ce1: Unknown result type (might be due to invalid IL or missing references) //IL_27d0b: Unknown result type (might be due to invalid IL or missing references) //IL_27d78: Unknown result type (might be due to invalid IL or missing references) //IL_2919b: Unknown result type (might be due to invalid IL or missing references) //IL_291a1: Invalid comparison between Unknown and I4 AssetBundle[] bundles = (AssetBundle[])(object)new AssetBundle[4] { sharedAssets, sharedAssets2, braveResources, EnemiesBundle }; Expand_Jungle_RoomList = new List { "Expand_Forest_ZookieShroom", "Expand_Forest_AnimalEnclosed", "Expand_Forest_AnimalHunter1", "Expand_Forest_Animals1", "Expand_Forest_Animals2", "Expand_Forest_AnimalsArrows", "Expand_Forest_AnimalsFairy", "Expand_Forest_AnimalsHunters1", "Expand_Forest_AnimalSpider", "Expand_Forest_AnimalsTribal", "Expand_Forest_ArrowCat", "Expand_Forest_ArrowSpent", "Expand_Forest_BandanaSnake", "Expand_Forest_BIRDS", "Expand_Forest_BullatFairy", "Expand_Forest_Bush", "Expand_Forest_ConfirmedSnakes", "Expand_Forest_Extra1", "Expand_Forest_FishBats", "Expand_Forest_FungunTribal", "Expand_Forest_GummyBullatPit", "Expand_Forest_GunFairy", "Expand_Forest_Hunter1", "Expand_Forest_Hunter2", "Expand_Forest_HunterSporge", "Expand_Forest_HunterVets", "Expand_Forest_MushFairy", "Expand_Forest_Mushroom", "Expand_Forest_MushZookie", "Expand_Forest_ParrotShroom", "Expand_Forest_Professionals", "Expand_Forest_RegularSnakeParrot", "Expand_Forest_ShamblingArrows", "Expand_Forest_SniperTotemBuff", "Expand_Forest_SpendRush", "Expand_Forest_SpiderSnakesArrow", "Expand_Forest_TotemBuff", "Expand_Forest_Tree", "Expand_Forest_Tribal1", "Expand_Forest_Tribal2", "Expand_Forest_Tribal3", "Expand_Forest_Tribal4", "Expand_Forest_Tribal5", "Expand_Forest_Tribal6", "Expand_Forest_TribalBirds", "Expand_Forest_TribalC", "Expand_Forest_TribalNugget", "Expand_Forest_TribalSummon", "Expand_Forest_Trunk", "Expand_Forest_Trunk2", "Expand_Forest_Tribal31", "Expand_Forest_Tribal32", "Expand_Forest_Animals3", "Expand_Forest_Animals4", "Expand_Forest_Animals5", "Expand_Forest_Animals6", "Expand_Forest_Animals7", "Expand_Forest_Animals8", "Expand_Forest_Animals9", "Expand_Forest_Animals10", "Expand_Forest_Animals11", "Expand_Forest_Animals12", "Expand_Forest_Animals13", "Expand_Forest_Animals14", "Expand_Forest_Animals15", "Expand_Forest_Animals16", "Expand_Forest_Animals17", "Expand_Forest_Animals18", "Expand_Forest_Animals19", "Expand_Forest_Animals20", "Expand_Forest_Animals21", "Expand_Forest_Animals22", "Expand_Forest_Animals23", "Expand_Forest_Animals24", "Expand_Forest_Animals25", "Expand_Forest_Animals26", "Expand_Forest_Animals27", "Expand_Forest_Hunter3", "Expand_Forest_Hunter4", "Expand_Forest_Hunter5", "Expand_Forest_Hunter6", "Expand_Forest_Hunter7", "Expand_Forest_Hunter8", "Expand_Forest_Hunter9", "Expand_Forest_Hunter10", "Expand_Forest_Hunter11", "Expand_Forest_Hunter12", "Expand_Forest_Hunter13", "Expand_Forest_Hunter14", "Expand_Forest_Hunter15", "Expand_Forest_Hunter16", "Expand_Forest_Hunter17", "Expand_Forest_Hunter18", "Expand_Forest_Hunter19", "Expand_Forest_Hunter20", "Expand_Forest_Hunter21", "Expand_Forest_Hunter22", "Expand_Forest_Hunter23", "Expand_Forest_Hunter24", "Expand_Forest_Hunter25", "Expand_Forest_Hunter26", "Expand_Forest_Hunter27", "Expand_Forest_Mixed1", "Expand_Forest_Mixed2", "Expand_Forest_Mixed3", "Expand_Forest_Mixed4", "Expand_Forest_Mixed5", "Expand_Forest_Mixed6", "Expand_Forest_Mixed7", "Expand_Forest_Mixed8", "Expand_Forest_Mixed9", "Expand_Forest_Mixed10", "Expand_Forest_Mixed11", "Expand_Forest_Mixed12", "Expand_Forest_Mixed13", "Expand_Forest_Mixed14", "Expand_Forest_Mixed15", "Expand_Forest_Mixed16", "Expand_Forest_Mixed17", "Expand_Forest_Mixed18", "Expand_Forest_Mixed19", "Expand_Forest_Mixed20", "Expand_Forest_Mixed21", "Expand_Forest_Mixed22", "Expand_Forest_Mixed23", "Expand_Forest_Mixed24", "Expand_Forest_Mixed25", "Expand_Forest_Tribal7", "Expand_Forest_Tribal8", "Expand_Forest_Tribal9", "Expand_Forest_Tribal10", "Expand_Forest_Tribal11", "Expand_Forest_Tribal12", "Expand_Forest_Tribal13", "Expand_Forest_Tribal14", "Expand_Forest_Tribal15", "Expand_Forest_Tribal16", "Expand_Forest_Tribal17", "Expand_Forest_Tribal18", "Expand_Forest_Tribal19", "Expand_Forest_Tribal20", "Expand_Forest_Tribal21", "Expand_Forest_Tribal22", "Expand_Forest_Tribal23", "Expand_Forest_Tribal24", "Expand_Forest_Tribal25", "Expand_Forest_Tribal27", "Expand_Forest_Tribal28", "Expand_Forest_Tribal29", "Expand_Forest_Tribal30" }; Expand_Belly_RoomList = new List { "Expand_Belly_Mixed3", "Expand_Belly_Mixed4", "Expand_Belly_Mixed5", "Expand_Belly_Mixed6", "Expand_Belly_Mixed7", "Expand_Belly_Mixed8", "Expand_Belly_Mixed9", "Expand_Belly_Mixed10", "Expand_Belly_Mixed11", "Expand_Belly_Mixed12", "Expand_Belly_Mixed13", "Expand_Belly_Mixed14", "Expand_Belly_Mixed15", "Expand_Belly_Mixed16", "Expand_Belly_Mixed17", "Expand_Belly_Mixed18", "Expand_Belly_Mixed19", "Expand_Belly_Mixed20", "Expand_Belly_Pirate1", "Expand_Belly_Pirate2", "Expand_Belly_Pirate3", "Expand_Belly_Pirate4", "Expand_Belly_Pirate5", "Expand_Belly_Pirate6", "Expand_Belly_Pirate7", "Expand_Belly_Pirate8", "Expand_Belly_Pirate9", "Expand_Belly_Pirate10", "Expand_Belly_Skeletal1", "Expand_Belly_Skeletal2", "Expand_Belly_Skeletal3", "Expand_Belly_Skeletal4", "Expand_Belly_Skeletal5", "Expand_Belly_Skeletal6", "Expand_Belly_Skeletal7", "Expand_Belly_Skeletal8", "Expand_Belly_Skeletal9", "Expand_Belly_Skeletal10", "Expand_Belly_Viscera1", "Expand_Belly_Viscera2", "Expand_Belly_Viscera3", "Expand_Belly_Viscera4", "Expand_Belly_Viscera5", "Expand_Belly_Viscera6", "Expand_Belly_Viscera7", "Expand_Belly_Viscera8", "Expand_Belly_Viscera9", "Expand_Belly_Viscera10", "Expand_Belly_Mixed1", "Expand_Belly_Mixed2", "Expand_Belly_Pirate17", "Expand_Belly_Pirate18", "Expand_Belly_Pirate19", "Expand_Belly_Pirate20", "Expand_Belly_Pirate21", "Expand_Belly_Pirate22", "Expand_Belly_Pirate23", "Expand_Belly_Pirate24", "Expand_Belly_Pirate25", "Expand_Belly_Pirate26", "Expand_Belly_Pirate27", "Expand_Belly_Pirate28", "Expand_Belly_Pirate29", "Expand_Belly_Pirate30", "Expand_Belly_Skeletal_RupturousClot", "Expand_Belly_Skeletal11", "Expand_Belly_Skeletal12", "Expand_Belly_Skeletal13", "Expand_Belly_Skeletal14", "Expand_Belly_Skeletal15", "Expand_Belly_Skeletal16", "Expand_Belly_Skeletal17", "Expand_Belly_Skeletal18", "Expand_Belly_Skeletal19", "Expand_Belly_Skeletal20", "Expand_Belly_Skeletal21", "Expand_Belly_Skeletal22", "Expand_Belly_Skeletal23", "Expand_Belly_Skeletal24", "Expand_Belly_Skeletal25", "Expand_Belly_Skeletal26", "Expand_Belly_Skeletal27", "Expand_Belly_Skeletal28", "Expand_Belly_Skeletal29", "Expand_Belly_Skeletal30", "Expand_Belly_Viscera_EyeDiagram", "Expand_Belly_Viscera_FloppyKnobs", "Expand_Belly_Viscera_Globulate", "Expand_Belly_Viscera_GutsyBulges", "Expand_Belly_Viscera_HeartAttack", "Expand_Belly_Viscera_NubblyBubbly", "Expand_Belly_Viscera_Shitfactory", "Expand_Belly_Viscera11", "Expand_Belly_Pirate_CellStronghold", "Expand_Belly_Pirate_DanglyBits", "Expand_Belly_Pirate_FishInTheEar", "Expand_Belly_Pirate11", "Expand_Belly_Pirate12", "Expand_Belly_Pirate13", "Expand_Belly_Pirate14", "Expand_Belly_Pirate15", "Expand_Belly_Pirate16", "Expand_Belly_Viscera30", "Expand_Belly_Viscera12", "Expand_Belly_Viscera13", "Expand_Belly_Viscera14", "Expand_Belly_Viscera15", "Expand_Belly_Viscera16", "Expand_Belly_Viscera17", "Expand_Belly_Viscera18", "Expand_Belly_Viscera19", "Expand_Belly_Viscera20", "Expand_Belly_Viscera21", "Expand_Belly_Viscera22", "Expand_Belly_Viscera23", "Expand_Belly_Viscera24", "Expand_Belly_Viscera25", "Expand_Belly_Viscera26", "Expand_Belly_Viscera27", "Expand_Belly_Viscera28", "Expand_Belly_Viscera29" }; Expand_West_CanyonRoomList = new List { "Expand_West_Canyon_Yshape4", "Expand_West_Canyon_AP_Passage", "Expand_West_Canyon_Arm1", "Expand_West_Canyon_Arm2", "Expand_West_Canyon_BigGap1", "Expand_West_Canyon_BigGap2", "Expand_West_Canyon_BigGap3", "Expand_West_Canyon_Circleish1", "Expand_West_Canyon_Circleish2", "Expand_West_Canyon_Circleish3", "Expand_West_Canyon_Circleish4", "Expand_West_Canyon_CornerBomb1", "Expand_West_Canyon_CornerBomb2", "Expand_West_Canyon_CornerBomb3", "Expand_West_Canyon_CornerBomb4", "Expand_West_Canyon_Fight1", "Expand_West_Canyon_Fight2", "Expand_West_Canyon_Fight3", "Expand_West_Canyon_Fight4", "Expand_West_Canyon_Fight5", "Expand_West_Canyon_LongOdd1", "Expand_West_Canyon_LongOdd2", "Expand_West_Canyon_LongOdd3", "Expand_West_Canyon_Odd1", "Expand_West_Canyon_Odd2", "Expand_West_Canyon_Odd3", "Expand_West_Canyon_Odd4", "Expand_West_Canyon_OddShape1", "Expand_West_Canyon_OddShape2", "Expand_West_Canyon_OddShape3", "Expand_West_Canyon_OddShape4", "Expand_West_Canyon_OddSquare1", "Expand_West_Canyon_OddSquare2", "Expand_West_Canyon_OddSquare3", "Expand_West_Canyon_OddSquare4", "Expand_West_Canyon_smol1", "Expand_West_Canyon_smol2", "Expand_West_Canyon_smol3", "Expand_West_Canyon_smol4", "Expand_West_Canyon_smol5", "Expand_West_Canyon_tight1", "Expand_West_Canyon_tight2", "Expand_West_Canyon_tight3", "Expand_West_Canyon_tight4", "Expand_West_Canyon_Weird1", "Expand_West_Canyon_Weird2", "Expand_West_Canyon_Weird3", "Expand_West_Canyon_Weird4", "Expand_West_Canyon_Yshape1", "Expand_West_Canyon_Yshape2", "Expand_West_Canyon_Yshape3" }; Expand_West_TinyCanyonRoomList = new List { "Expand_West_Canyon1_Straight1", "Expand_West_Canyon1_Straight2", "Expand_West_Canyon1_Straight3", "Expand_West_Canyon1_Tiny1", "Expand_West_Canyon1_Tiny2", "Expand_West_Canyon1_Tiny3", "Expand_West_Canyon1_Tiny4", "Expand_West_Canyon1_Tiny5", "Expand_West_Canyon1_Tiny6", "Expand_West_Canyon1_Tiny7", "Expand_West_Canyon1_Tiny8", "Expand_West_Canyon1_Tiny9", "Expand_West_Canyon1_Tiny10", "Expand_West_Canyon1_Tiny11", "Expand_West_Canyon1_Tiny12", "Expand_West_Canyon1_Tiny13", "Expand_West_Canyon1_Tiny14", "Expand_West_Canyon1_Tiny15", "Expand_West_Canyon1_Tiny16", "Expand_West_Canyon1_Tiny17", "Expand_West_Canyon1_Tiny18", "Expand_West_Canyon1_Tiny19", "Expand_West_Canyon1_Tiny20", "Expand_West_Canyon1_TinyPassage1", "Expand_West_Canyon1_TinyPassage2", "Expand_West_Canyon1_TinyPassage3", "Expand_West_Canyon1_TinyPassage4", "Expand_West_Canyon1_TinyPassage5" }; Expand_West_Interior1RoomList = new List { "Expand_West_Interior1_Tabled1", "Expand_West_Interior1_Tabled2", "Expand_West_Interior1_Tabled3", "Expand_West_Interior1_Teleport1", "Expand_West_Interior1_Teleport2", "Expand_West_Interior1_Teleport2_1", "Expand_West_Interior1_Teleport2_2", "Expand_West_Interior1_Teleport2_3", "Expand_West_Interior1_Teleport2_4", "Expand_West_Interior1_Teleport2_5", "Expand_West_Interior1_Teleport3", "Expand_West_Interior1_Thin1", "Expand_West_Interior1_Thin2", "Expand_West_Interior1_Thin3", "Expand_West_Interior1_Thin4", "Expand_West_Interior1_Thin5", "Expand_West_Interior1_Trapped1", "Expand_West_Interior1_Trapped2", "Expand_West_Interior1_AP_HTrap", "Expand_West_Interior1_AP_West", "Expand_West_Interior1_Bar1", "Expand_West_Interior1_Bar2", "Expand_West_Interior1_BoomLine1", "Expand_West_Interior1_BoomLine2", "Expand_West_Interior1_BoomLine3", "Expand_West_Interior1_Boxes1", "Expand_West_Interior1_Boxes2", "Expand_West_Interior1_Boxes3", "Expand_West_Interior1_Boxes4", "Expand_West_Interior1_Boxes5", "Expand_West_Interior1_ImportantBusiness", "Expand_West_Interior1_Square1", "Expand_West_Interior1_Square2", "Expand_West_Interior1_Square3", "Expand_West_Interior1_Square4", "Expand_West_Interior1_Square5", "Expand_West_Interior1_Square6", "Expand_West_Interior1_Squareish1", "Expand_West_Interior1_Squareish2", "Expand_West_Interior1_Squareish3", "Expand_West_Interior1_Squareish4", "Expand_West_Interior1_Squareish5", "Expand_West_Interior1_Squareish6", "Expand_West_Interior1_Squareish7", "Expand_West_Interior1_Squareish8", "Expand_West_Interior1_Steps1", "Expand_West_Interior1_Steps2", "Expand_West_Interior1_Steps3", "Expand_West_Interior1_Steps4" }; Expand_BackRooms_RoomList = new List { "BackRooms_Room001", "BackRooms_Room002", "BackRooms_Room003", "BackRooms_Room004", "BackRooms_Room005", "BackRooms_Room006", "BackRooms_Room007", "BackRooms_Room008", "BackRooms_Room009", "BackRooms_Room010", "BackRooms_Room011", "BackRooms_Room012", "BackRooms_Room013", "BackRooms_Room014", "BackRooms_Room015", "BackRooms_Room016", "BackRooms_Room017", "BackRooms_Room018", "BackRooms_Room019", "BackRooms_Room020", "BackRooms_Room021", "BackRooms_Room022", "BackRooms_Room023", "BackRooms_Room024", "BackRooms_Room025", "BackRooms_Room026", "BackRooms_Room027", "BackRooms_Room028", "BackRooms_Room029", "BackRooms_Room030", "BackRooms_Room031", "BackRooms_Room032", "BackRooms_Room033", "BackRooms_Room034", "BackRooms_Room035", "BackRooms_Room036", "BackRooms_Room037", "BackRooms_Room038", "BackRooms_Room039", "BackRooms_Room040", "BackRooms_Room041", "BackRooms_Room042", "BackRooms_Room043", "BackRooms_Room044", "BackRooms_Room045", "BackRooms_Room046", "BackRooms_Room047", "BackRooms_Room048", "BackRooms_Room049", "BackRooms_Room050", "BackRooms_Room051", "BackRooms_Room052", "BackRooms_Room053", "BackRooms_Room054", "BackRooms_Room055", "BackRooms_Room056", "BackRooms_Room057", "BackRooms_Room058", "BackRooms_Room059", "BackRooms_Room060", "BackRooms_Room061", "BackRooms_Room062", "BackRooms_Room063", "BackRooms_Room064", "BackRooms_Room065", "BackRooms_Room066", "BackRooms_Room067", "BackRooms_Room068", "BackRooms_Room069", "BackRooms_Room070", "BackRooms_Room071", "BackRooms_Room072", "BackRooms_Room073", "BackRooms_Room074", "BackRooms_Room075", "BackRooms_Room076", "BackRooms_Room077", "BackRooms_Room078", "BackRooms_Room079", "BackRooms_Room080", "BackRooms_Room081", "BackRooms_Room082", "BackRooms_Room083", "BackRooms_Room084", "BackRooms_Room085", "BackRooms_Room086", "BackRooms_Room087", "BackRooms_Room088", "BackRooms_Room089", "BackRooms_Room090", "BackRooms_Room091", "BackRooms_Room092", "BackRooms_Room093", "BackRooms_Room094", "BackRooms_Room095", "BackRooms_Room096", "BackRooms_Room097", "BackRooms_Room098", "BackRooms_Room099", "BackRooms_Room100", "BackRooms_Room101", "BackRooms_Room102", "BackRooms_Room103", "BackRooms_Room104", "BackRooms_Room105", "BackRooms_VoidRoom_01", "BackRooms_VoidRoom_02", "BackRooms_VoidRoom_03", "BackRooms_VoidRoom_04", "BackRooms_VoidRoom_05", "BackRooms_VoidRoom_06", "BackRooms_VoidRoom_07", "BackRooms_VoidRoom_08", "BackRooms_VoidRoom_09", "BackRooms_VoidRoom_10", "BackRooms_VoidRoom_Connector_01" }; Expand_BackRooms_WarpWingList = new List { "BackRooms_WarpWingRoom1", "BackRooms_WarpWingRoom2", "BackRooms_WarpWingRoom3", "BackRooms_WarpWingRoom4", "BackRooms_WarpWingRoom5", "BackRooms_WarpWingRoom6", "BackRooms_WarpWingRoom7" }; List list = new List(); foreach (string expand_BackRooms_Room in Expand_BackRooms_RoomList) { list.Add(RoomFactory.BuildFromAssetBundle(bundles, expand_BackRooms_Room, setRoomCategory: true)); } List list2 = new List(); foreach (string expand_BackRooms_WarpWing in Expand_BackRooms_WarpWingList) { list2.Add(RoomFactory.BuildFromAssetBundle(bundles, expand_BackRooms_WarpWing, setRoomCategory: true)); } Expand_Backrooms_Rooms = list.ToArray(); Expand_Backrooms_WarpWings = list2.ToArray(); PrototypeDungeonRoom[] expand_Backrooms_Rooms = Expand_Backrooms_Rooms; foreach (PrototypeDungeonRoom val in expand_Backrooms_Rooms) { if (!((Object)val).name.StartsWith("BackRooms_Room005") && !((Object)val).name.StartsWith("BackRooms_Room014") && !((Object)val).name.StartsWith("BackRooms_Room022") && !((Object)val).name.StartsWith("BackRooms_Room040") && !((Object)val).name.StartsWith("BackRooms_Room041") && !((Object)val).name.StartsWith("BackRooms_Room042") && !((Object)val).name.StartsWith("BackRooms_Room043") && !((Object)val).name.StartsWith("BackRooms_Room048") && !((Object)val).name.StartsWith("BackRooms_Room101") && !((Object)val).name.StartsWith("BackRooms_Room102") && !((Object)val).name.StartsWith("BackRooms_Room103") && !((Object)val).name.StartsWith("BackRooms_Room104") && !((Object)val).name.StartsWith("BackRooms_Room105") && !((Object)val).name.StartsWith("BackRooms_VoidRoom_01")) { val.ForceAllowDuplicates = true; } if (((Object)val).name.StartsWith("BackRooms_VoidRoom_")) { val.allowFloorDecoration = false; val.allowWallDecoration = false; val.usesProceduralDecoration = false; val.usesProceduralLighting = false; val.associatedMinimapIcon = ExpandPrefabs.EXDangerRoomIcon; RoomBuilder.AddObjectToRoom(val, new Vector2((float)(val.Width / 2), (float)(val.Height / 2)), ExpandPrefabs.EXVoidRoomAmbience); } if (((Object)val).name.StartsWith("BackRooms_Room105")) { RoomBuilder.AddObjectToRoom(val, new Vector2(8f, 25f), ExpandPrefabs.FakePastChest, 1); val.usesProceduralDecoration = false; } else { val.IsLostWoodsRoom = true; } val.overrideRoomVisualType = 0; foreach (PrototypeRoomExit exit in val.exitData.exits) { exit.containsDoor = false; } } expand_Backrooms_Rooms = Expand_Backrooms_WarpWings; foreach (PrototypeDungeonRoom val2 in expand_Backrooms_Rooms) { val2.ForceAllowDuplicates = true; val2.IsLostWoodsRoom = true; val2.associatedMinimapIcon = ExpandPrefabs.EXBackroomsWWIcon; foreach (PrototypeRoomExit exit2 in val2.exitData.exits) { exit2.containsDoor = false; } } Expand_BackRooms_Entrance = RoomFactory.BuildFromAssetBundle(bundles, "BackRooms_Entrance", setRoomCategory: true); Expand_BackRooms_Entrance.associatedMinimapIcon = ExpandPrefabs.gungeon_entrance.associatedMinimapIcon; Expand_BackRooms_Entrance.IsLostWoodsRoom = true; Expand_BackRooms_Entrance.overrideRoomVisualType = 1; foreach (PrototypeRoomExit exit3 in Expand_BackRooms_Entrance.exitData.exits) { exit3.containsDoor = false; } Expand_BackRooms_Entrance2 = RoomFactory.BuildFromAssetBundle(bundles, "BackRooms_Entrance2", setRoomCategory: true); Expand_BackRooms_Entrance2.associatedMinimapIcon = ExpandPrefabs.gungeon_entrance.associatedMinimapIcon; Expand_BackRooms_Entrance2.IsLostWoodsRoom = true; Expand_BackRooms_Entrance2.overrideRoomVisualType = 1; foreach (PrototypeRoomExit exit4 in Expand_BackRooms_Entrance2.exitData.exits) { exit4.containsDoor = false; } Expand_BackRooms_Entrance3 = RoomFactory.BuildFromAssetBundle(bundles, "BackRooms_Entrance3", setRoomCategory: true); Expand_BackRooms_Entrance3.associatedMinimapIcon = ExpandPrefabs.gungeon_entrance.associatedMinimapIcon; Expand_BackRooms_Entrance3.IsLostWoodsRoom = true; Expand_BackRooms_Entrance3.overrideRoomVisualType = 1; foreach (PrototypeRoomExit exit5 in Expand_BackRooms_Entrance3.exitData.exits) { exit5.containsDoor = false; } Expand_BackRooms_Entrance_WarpWing = RoomFactory.BuildFromAssetBundle(bundles, "BackRooms_Entrance_WarpWing", setRoomCategory: true); Expand_BackRooms_Entrance_WarpWing.associatedMinimapIcon = ExpandPrefabs.gungeon_entrance.associatedMinimapIcon; Expand_BackRooms_Entrance_WarpWing.IsLostWoodsRoom = true; Expand_BackRooms_Entrance_WarpWing.overrideRoomVisualType = 0; foreach (PrototypeRoomExit exit6 in Expand_BackRooms_Entrance_WarpWing.exitData.exits) { exit6.containsDoor = false; } Expand_BackRooms_Exit = RoomFactory.BuildFromAssetBundle(bundles, "BackRooms_Exit", setRoomCategory: true); Expand_BackRooms_Exit.allowWallDecoration = false; Expand_BackRooms_Exit.overrideRoomVisualType = 0; RoomBuilder.AddObjectToRoom(Expand_BackRooms_Exit, new Vector2(2f, 14f), ExpandSecretDoorPrefabs.EXSecretBackroomsDoor); Expand_Future_EntranceRoom_01 = RoomFactory.BuildFromAssetBundle(bundles, "Future_EntranceRoom_01", setRoomCategory: true, autoAssignToFloor: false, assignDecorationSettings: true); Expand_Future_EntranceRoom_01.associatedMinimapIcon = ExpandPrefabs.gungeon_entrance.associatedMinimapIcon; Expand_Future_EntranceRoom_01.overrideRoomVisualType = 7; Expand_Future_EntranceRoom_02 = RoomFactory.BuildFromAssetBundle(bundles, "Future_EntranceRoom_02", setRoomCategory: true, autoAssignToFloor: false, assignDecorationSettings: true); Expand_Future_EntranceRoom_02.associatedMinimapIcon = ExpandPrefabs.gungeon_entrance.associatedMinimapIcon; Expand_Future_EntranceRoom_02.overrideRoomVisualType = 8; Expand_Future_EntranceRoom_03 = RoomFactory.BuildFromAssetBundle(bundles, "Future_EntranceRoom_03", setRoomCategory: true, autoAssignToFloor: false, assignDecorationSettings: true); Expand_Future_EntranceRoom_03.associatedMinimapIcon = ExpandPrefabs.gungeon_entrance.associatedMinimapIcon; Expand_Future_EntranceRoom_03.overrideRoomVisualType = 8; ExpandPrefabs.FutureEntranceRoomTable.includedRooms.Add(GenerateWeightedRoom(Expand_Future_EntranceRoom_01, 0.2f)); ExpandPrefabs.FutureEntranceRoomTable.includedRooms.Add(GenerateWeightedRoom(Expand_Future_EntranceRoom_02)); ExpandPrefabs.FutureEntranceRoomTable.includedRooms.Add(GenerateWeightedRoom(Expand_Future_EntranceRoom_03, 0.5f)); Dungeon orLoadByName = DungeonDatabase.GetOrLoadByName("base_sewer"); Expand_Future_CrestRoom = RoomFactory.BuildFromAssetBundle(bundles, "Future_CrestRoom", setRoomCategory: true, autoAssignToFloor: false, assignDecorationSettings: true); Expand_Future_CrestRoom.placedObjects = orLoadByName.PatternSettings.flows[0].sharedInjectionData[1].InjectionData[1].exactRoom.placedObjects; Expand_Future_CrestRoom.placedObjectPositions = orLoadByName.PatternSettings.flows[0].sharedInjectionData[1].InjectionData[1].exactRoom.placedObjectPositions; Expand_Future_CrestRoom.additionalObjectLayers = orLoadByName.PatternSettings.flows[0].sharedInjectionData[1].InjectionData[1].exactRoom.additionalObjectLayers; Expand_Future_CrestRoom.associatedMinimapIcon = orLoadByName.PatternSettings.flows[0].sharedInjectionData[1].InjectionData[1].exactRoom.associatedMinimapIcon; Expand_Future_CrestRoom.overrideRoomVisualType = 7; orLoadByName = null; Expand_Future_BossRoom = ScriptableObject.CreateInstance(); ExpandUtility.DuplicateComponent(Expand_Future_BossRoom, ExpandPrefabs.blobulordroom01); RoomBuilder.GenerateBasicRoomLayout(Expand_Future_BossRoom, (CellType)2, (PitBorderType)0); Expand_Future_BossRoom.overrideRoomVisualType = 8; Expand_Future_BossRoom.placedObjects[0].enemyBehaviourGuid = ExpandEnemyDatabase.PoisbulordGUID; Expand_Future_BossRoom.usesProceduralLighting = true; Expand_Future_BossRoom.usesCustomAmbientLight = false; foreach (PrototypePlacedObjectData placedObject in Expand_Future_BossRoom.additionalObjectLayers[0].placedObjects) { placedObject.nonenemyBehaviour = ExpandPrefabs.EXPoisbulordGrate.GetComponent(); } RoomBuilder.AddObjectToRoom(Expand_Future_BossRoom, new Vector2(2f, 2f), ExpandPrefabs.Ooze_Tank); RoomBuilder.AddObjectToRoom(Expand_Future_BossRoom, new Vector2(2f, 11f), ExpandPrefabs.Ooze_Tank); RoomBuilder.AddObjectToRoom(Expand_Future_BossRoom, new Vector2(2f, 20f), ExpandPrefabs.Ooze_Tank); RoomBuilder.AddObjectToRoom(Expand_Future_BossRoom, new Vector2(2f, 28f), ExpandPrefabs.Ooze_Tank); RoomBuilder.AddObjectToRoom(Expand_Future_BossRoom, new Vector2(11f, 2f), ExpandPrefabs.Ooze_Tank); RoomBuilder.AddObjectToRoom(Expand_Future_BossRoom, new Vector2(11f, 28f), ExpandPrefabs.Ooze_Tank); RoomBuilder.AddObjectToRoom(Expand_Future_BossRoom, new Vector2(40f, 2f), ExpandPrefabs.Ooze_Tank); RoomBuilder.AddObjectToRoom(Expand_Future_BossRoom, new Vector2(40f, 11f), ExpandPrefabs.Ooze_Tank); RoomBuilder.AddObjectToRoom(Expand_Future_BossRoom, new Vector2(40f, 20f), ExpandPrefabs.Ooze_Tank); RoomBuilder.AddObjectToRoom(Expand_Future_BossRoom, new Vector2(40f, 28f), ExpandPrefabs.Ooze_Tank); RoomBuilder.AddObjectToRoom(Expand_Future_BossRoom, new Vector2(31f, 2f), ExpandPrefabs.Ooze_Tank); RoomBuilder.AddObjectToRoom(Expand_Future_BossRoom, new Vector2(31f, 28f), ExpandPrefabs.Ooze_Tank); Expand_Future_ShopRoom = RoomFactory.BuildFromAssetBundle(bundles, "Future_ShopRoom", setRoomCategory: true, autoAssignToFloor: false, assignDecorationSettings: true); Expand_Future_ShopRoom.placedObjects = ExpandPrefabs.shop02.placedObjects; Expand_Future_ShopRoom.placedObjectPositions = ExpandPrefabs.shop02.placedObjectPositions; Expand_Future_ShopRoom.OverrideMusicState = (DungeonMusicState)30; Expand_Future_ShopRoom.rewardChestSpawnPosition = ExpandPrefabs.shop02.rewardChestSpawnPosition; Expand_Future_ShopRoom.associatedMinimapIcon = ExpandPrefabs.shop02.associatedMinimapIcon; Expand_Future_ShopRoom.overrideRoomVisualType = 7; Expand_Future_ShopRoom.usesProceduralDecoration = false; Expand_Future_ShopRoom.allowFloorDecoration = true; Expand_Future_ShopRoom.allowWallDecoration = true; Expand_Future_ExitRoom = ScriptableObject.CreateInstance(); ExpandUtility.DuplicateComponent(Expand_Future_ExitRoom, ExpandPrefabs.exit_room_basic); Expand_Future_ExitRoom.usesProceduralDecoration = false; Expand_Future_ExitRoom.overrideRoomVisualType = 7; Expand_Future_RewardRoom = RoomFactory.BuildFromAssetBundle(bundles, "Future_RewardRoom", setRoomCategory: true, autoAssignToFloor: false, assignDecorationSettings: true); Expand_Future_RewardRoom.overrideRoomVisualType = 8; RoomBuilder.AddObjectToRoom(Expand_Future_RewardRoom, new Vector2(8f, 8f), ExpandObjectDatabase.Treasure_Dais_Stone_Carpet, null, null, 1f, 0, 1); RoomBuilder.AddObjectToRoom(Expand_Future_RewardRoom, new Vector2(9f, 10f), null, ExpandPrefabs.gungeon_rewardroom_1.additionalObjectLayers[1].placedObjects[0].nonenemyBehaviour, null, 1f, 10, 1); List list3 = new List(); for (int j = 0; j < 50; j++) { string text = (j + 1).ToString(); if (j + 1 < 10) { text = "0" + (j + 1); } PrototypeDungeonRoom val3 = RoomFactory.BuildFromAssetBundle(bundles, "Future_CombatRoom_" + text, setRoomCategory: true, autoAssignToFloor: false, assignDecorationSettings: true); if (j < 25) { val3.overrideRoomVisualType = 7; } else { val3.overrideRoomVisualType = 8; } list3.Add(val3); } for (int k = 0; k < 10; k++) { string text2 = (k + 1).ToString(); if (k + 1 < 10) { text2 = "0" + (k + 1); } PrototypeDungeonRoom val4 = RoomFactory.BuildFromAssetBundle(bundles, "Future_HubRoom_" + text2, setRoomCategory: true, autoAssignToFloor: false, assignDecorationSettings: true); if (k < 6) { val4.overrideRoomVisualType = 7; } else { val4.overrideRoomVisualType = 8; } list3.Add(val4); } for (int l = 0; l < 26; l++) { string text3 = (l + 1).ToString(); if (l + 1 < 10) { text3 = "0" + (l + 1); } PrototypeDungeonRoom val5 = RoomFactory.BuildFromAssetBundle(bundles, "Future_ConnectorRoom_" + text3, setRoomCategory: true, autoAssignToFloor: false, assignDecorationSettings: true); if (l < 13) { val5.overrideRoomVisualType = 7; } else { val5.overrideRoomVisualType = 8; } list3.Add(val5); } Expand_Future_Rooms = list3.ToArray(); List list4 = new List(); foreach (WeightedRoom element in ExpandPrefabs.boss_foyertable.includedRooms.elements) { PrototypeDungeonRoom val6 = ScriptableObject.CreateInstance(); ExpandUtility.DuplicateComponent(val6, element.room); val6.overrideRoomVisualType = 8; list4.Add(val6); } Dungeon orLoadByName2 = DungeonDatabase.GetOrLoadByName("Base_Nakatomi"); PrototypeDungeonRoom val7 = ScriptableObject.CreateInstance(); PrototypeDungeonRoom val8 = ScriptableObject.CreateInstance(); PrototypeDungeonRoom val9 = ScriptableObject.CreateInstance(); ExpandUtility.DuplicateComponent(val7, orLoadByName2.PatternSettings.flows[0].AllNodes[11].overrideExactRoom); ExpandUtility.DuplicateComponent(val8, orLoadByName2.PatternSettings.flows[0].AllNodes[10].overrideExactRoom); ExpandUtility.DuplicateComponent(val9, orLoadByName2.PatternSettings.flows[0].AllNodes[13].overrideExactRoom); ((Object)val7).name = "EX_" + ((Object)val7).name; ((Object)val8).name = "EX_" + ((Object)val8).name; ((Object)val9).name = "EX_" + ((Object)val9).name; val7.usesProceduralDecoration = false; val8.usesProceduralDecoration = false; val9.usesProceduralDecoration = false; orLoadByName2 = null; Expand_Future_BossFoyers = list4.ToArray(); Expand_FutureSignPostRoom = RoomFactory.BuildFromAssetBundle(bundles, "Expand_FutureSignPostRoom", setRoomCategory: true, autoAssignToFloor: false, assignDecorationSettings: true); Expand_FutureSignPostRoom.overrideRoomVisualType = 1; RoomBuilder.AddObjectToRoom(Expand_FutureSignPostRoom, new Vector2(7f, 7f), null, (DungeonPlaceableBehaviour)(object)ExpandPrefabs.EXFuture_SignPost.GetComponent(), null, 1f, 0, 10); Expand_BulletHell_RoomList = new List { "BHell_TheReunion" }; List list5 = new List(); foreach (string expand_BulletHell_Room in Expand_BulletHell_RoomList) { list5.Add(RoomFactory.BuildFromAssetBundle(bundles, expand_BulletHell_Room, setRoomCategory: true, autoAssignToFloor: true)); } List list6 = new List(); List list7 = new List(); List list8 = new List(); foreach (string expand_West_CanyonRoom in Expand_West_CanyonRoomList) { list6.Add(RoomFactory.BuildFromAssetBundle(bundles, expand_West_CanyonRoom, setRoomCategory: true)); } foreach (string expand_West_TinyCanyonRoom in Expand_West_TinyCanyonRoomList) { list7.Add(RoomFactory.BuildFromAssetBundle(bundles, expand_West_TinyCanyonRoom, setRoomCategory: true)); } foreach (string expand_West_Interior1Room in Expand_West_Interior1RoomList) { list8.Add(RoomFactory.BuildFromAssetBundle(bundles, expand_West_Interior1Room, setRoomCategory: true)); } foreach (PrototypeDungeonRoom item6 in list6) { item6.overrideRoomVisualType = 0; } foreach (PrototypeDungeonRoom item7 in list7) { item7.overrideRoomVisualType = 0; } foreach (PrototypeDungeonRoom item8 in list8) { item8.overrideRoomVisualType = 1; } Expand_West_CanyonRooms = list6.ToArray(); Expand_West_TinyCanyonRooms = list7.ToArray(); Expand_West_Interior1Rooms = list8.ToArray(); Expand_Jungle_Entrance = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Jungle_Entrance", setRoomCategory: true); RoomBuilder.AddObjectToRoom(Expand_Jungle_Entrance, new Vector2(5f, 7f), ExpandPrefabs.EXElevator_Arrival_Placable); Expand_Jungle_Entrance.associatedMinimapIcon = ExpandPrefabs.elevator_entrance.associatedMinimapIcon; Expand_Jungle_OldCrest = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Jungle_OldCrest", setRoomCategory: true); Expand_Jungle_OldCrest.associatedMinimapIcon = ExpandPrefabs.EXJungleCrest_MinimapIcon; RoomBuilder.AddObjectToRoom(Expand_Jungle_OldCrest, new Vector2(5f, 7f), ExpandObjectDatabase.GodRays); RoomBuilder.AddObjectToRoom(Expand_Jungle_OldCrest, new Vector2(7f, 8f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.Jungle_ItemStump, spawnsEnemy: false, useExternalPrefab: true), null, null, 1f, 6); Expand_Jungle_RewardRoom = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Jungle_RewardRoom", setRoomCategory: true, autoAssignToFloor: false, assignDecorationSettings: true); RoomBuilder.AddObjectToRoom(Expand_Jungle_RewardRoom, new Vector2(4f, 7f), ExpandObjectDatabase.GodRays); RoomBuilder.AddObjectToRoom(Expand_Jungle_RewardRoom, new Vector2(4f, 6f), ExpandPrefabs.ExpandJungleTree_Medium); RoomBuilder.AddObjectToRoom(Expand_Jungle_RewardRoom, new Vector2(4f, 11f), ExpandPrefabs.ExpandJungleTree_Medium); RoomBuilder.AddObjectToRoom(Expand_Jungle_RewardRoom, new Vector2(9f, 6f), ExpandPrefabs.ExpandJungleTree_Medium); RoomBuilder.AddObjectToRoom(Expand_Jungle_RewardRoom, new Vector2(9f, 11f), ExpandPrefabs.ExpandJungleTree_Medium); Expand_Jungle_Exit = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Jungle_Exit", setRoomCategory: true); Expand_Jungle_Exit.associatedMinimapIcon = ExpandPrefabs.exit_room_basic.associatedMinimapIcon; RoomBuilder.AddObjectToRoom(Expand_Jungle_Exit, new Vector2(4f, 7f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.Jungle_ExitLadder, spawnsEnemy: false, useExternalPrefab: true), null, null, 1f, 8, 13); RoomBuilder.AddObjectToRoom(Expand_Jungle_Exit, new Vector2(2f, 5f), ExpandObjectDatabase.GodRays); Expand_Jungle_SecretDragun = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Jungle_SecretDragun", setRoomCategory: true); RoomBuilder.AddObjectToRoom(Expand_Jungle_SecretDragun, new Vector2(4f, 5f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.GatlingGullNest, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Jungle_SecretDragun, new Vector2(6f, 7f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.BabyDragunNPC, spawnsEnemy: false, useExternalPrefab: true)); Expand_Jungle_Boss = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Jungle_Boss"); Expand_Jungle_Boss.category = (RoomCategory)3; Expand_Jungle_Boss.subCategoryBoss = (RoomBossSubCategory)0; Expand_Jungle_Boss.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Jungle_Boss.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Jungle_Boss.subCategorySecret = (RoomSecretSubCategory)0; Expand_Jungle_Boss.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Jungle_Boss.associatedMinimapIcon = ExpandPrefabs.GatlingGullRoom05.associatedMinimapIcon; Expand_Jungle_Boss.usesProceduralLighting = false; Expand_Jungle_Boss.usesProceduralDecoration = false; Expand_Jungle_Boss.rewardChestSpawnPosition = new IntVector2(25, 20); Expand_Jungle_Boss.overriddenTilesets = (ValidTilesets)8192; Expand_Jungle_Boss.overrideRoomVisualType = 0; foreach (PrototypeRoomExit exit7 in Expand_Jungle_Boss.exitData.exits) { exit7.exitType = (ExitType)1; } RoomBuilder.AddExitToRoom(Expand_Jungle_Boss, new Vector2(26f, 37f), (Direction)0, (ExitType)2, (ExitGroup)1); RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(7f, 25f), ExpandUtility.GenerateDungeonPlacable(((Component)ExpandPrefabs.bosstable_01_bulletking.includedRooms.elements[0].room.placedObjects[1].nonenemyBehaviour).gameObject, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(7f, 25f), ExpandUtility.GenerateDungeonPlacable(((Component)ExpandPrefabs.bosstable_01_bulletking.includedRooms.elements[0].room.additionalObjectLayers[0].placedObjects[0].nonenemyBehaviour).gameObject, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(7f, 25f), ExpandUtility.GenerateDungeonPlacable(((Component)ExpandPrefabs.bosstable_01_bulletking.includedRooms.elements[0].room.additionalObjectLayers[1].placedObjects[0].nonenemyBehaviour).gameObject, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(7f, 23f), ExpandUtility.GenerateDungeonPlacable(((Component)ExpandPrefabs.bosstable_01_bulletking.includedRooms.elements[0].room.additionalObjectLayers[2].placedObjects[0].nonenemyBehaviour).gameObject, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(8f, 25f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.JungleLight, spawnsEnemy: false, useExternalPrefab: true), null, null, 1f, 8); RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(20f, 30f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.JungleLight, spawnsEnemy: false, useExternalPrefab: true), null, null, 1f, 8); RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(30f, 30f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.JungleLight, spawnsEnemy: false, useExternalPrefab: true), null, null, 1f, 8); RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(42f, 25f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.JungleLight, spawnsEnemy: false, useExternalPrefab: true), null, null, 1f, 8); RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(8f, 2f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.JungleLight, spawnsEnemy: false, useExternalPrefab: true), null, null, 1f, 8); RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(25f, 2f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.JungleLight, spawnsEnemy: false, useExternalPrefab: true), null, null, 1f, 8); RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(42f, 2f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.JungleLight, spawnsEnemy: false, useExternalPrefab: true), null, null, 1f, 8); RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(3f, 13f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.JungleLight, spawnsEnemy: false, useExternalPrefab: true), null, null, 1f, 8); RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(47f, 13f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.JungleLight, spawnsEnemy: false, useExternalPrefab: true), null, null, 1f, 8); RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(8f, 25f), ExpandObjectDatabase.DefaultTorch, 8); RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(20f, 30f), ExpandObjectDatabase.DefaultTorch, 8); RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(30f, 30f), ExpandObjectDatabase.DefaultTorch, 8); RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(42f, 25f), ExpandObjectDatabase.DefaultTorch, 8); RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(22f, 14f), ExpandObjectDatabase.GodRays); RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(24f, 16f), null, null, ExpandEnemyDatabase.com4nd0GUID); Expand_Belly_Entrance = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Belly_Entrance", setRoomCategory: true); Expand_Gungeon_BellyEntranceRoom = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Gungeon_BellyEntranceRoom", setRoomCategory: true); Expand_Gungeon_BellyEntranceRoom.usesProceduralLighting = false; Expand_Gungeon_BellyEntranceRoom.usesProceduralDecoration = false; RoomBuilder.AddObjectToRoom(Expand_Gungeon_BellyEntranceRoom, new Vector2(6f, 25f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.Sarco_Door, spawnsEnemy: false, useExternalPrefab: true), null, null, 1f, 7, -3); RoomBuilder.AddObjectToRoom(Expand_Gungeon_BellyEntranceRoom, new Vector2(10f, 23f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.Sarco_WoodShieldPedestal, spawnsEnemy: false, useExternalPrefab: true), null, null, 1f, 11, -6); RoomBuilder.AddObjectToRoom(Expand_Gungeon_BellyEntranceRoom, new Vector2(3f, 6f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.Sarcophagus_ShotgunBook_Kaliber, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Gungeon_BellyEntranceRoom, new Vector2(3f, 12f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.Sarcophagus_ShotgunMace_Kaliber, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Gungeon_BellyEntranceRoom, new Vector2(3f, 18f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.Sarcophagus_ShotgunBook_Kaliber, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Gungeon_BellyEntranceRoom, new Vector2(11f, 6f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.Sarcophagus_BulletSword_Kaliber, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Gungeon_BellyEntranceRoom, new Vector2(11f, 12f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.Sarcophagus_BulletShield_Kaliber, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Gungeon_BellyEntranceRoom, new Vector2(11f, 18f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.Sarcophagus_BulletSword_Kaliber, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Gungeon_BellyEntranceRoom, new Vector2(1f, 8f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.GungeonLightPurple, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Gungeon_BellyEntranceRoom, new Vector2(3f, 26f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.GungeonLightPurple, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Gungeon_BellyEntranceRoom, new Vector2(12f, 26f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.GungeonLightPurple, spawnsEnemy: false, useExternalPrefab: true)); Expand_Belly_BossRoom = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Belly_BossRoom"); Expand_Belly_BossRoom.category = (RoomCategory)3; Expand_Belly_BossRoom.subCategoryBoss = (RoomBossSubCategory)0; Expand_Belly_BossRoom.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Belly_BossRoom.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Belly_BossRoom.subCategorySecret = (RoomSecretSubCategory)0; Expand_Belly_BossRoom.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Belly_BossRoom.associatedMinimapIcon = ExpandPrefabs.GatlingGullRoom05.associatedMinimapIcon; Expand_Belly_BossRoom.usesProceduralDecoration = false; Expand_Belly_BossRoom.rewardChestSpawnPosition = new IntVector2(18, 23); PrototypeDungeonRoom expand_Belly_BossRoom = Expand_Belly_BossRoom; List list9 = new List(); List list10 = list9; PrototypeRoomObjectLayer val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = ExpandEnemyDatabase.AggressiveCronenbergGUID, contentsBasePosition = new Vector2(17f, 12f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = ExpandEnemyDatabase.AggressiveCronenbergGUID, contentsBasePosition = new Vector2(15f, 18f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = ExpandEnemyDatabase.AggressiveCronenbergGUID, contentsBasePosition = new Vector2(11f, 12f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = ExpandEnemyDatabase.AggressiveCronenbergGUID, contentsBasePosition = new Vector2(19f, 27f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = ExpandEnemyDatabase.AggressiveCronenbergGUID, contentsBasePosition = new Vector2(27f, 15f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = ExpandEnemyDatabase.AggressiveCronenbergGUID, contentsBasePosition = new Vector2(29f, 19f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(17f, 12f), new Vector2(15f, 18f), new Vector2(11f, 12f), new Vector2(19f, 27f), new Vector2(27f, 15f), new Vector2(29f, 19f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 15f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)80; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list10.Add(val10); expand_Belly_BossRoom.additionalObjectLayers = list9; RoomBuilder.AddObjectToRoom(Expand_Belly_BossRoom, new Vector2(20f, 19f), null, null, ExpandEnemyDatabase.ParasiteBossGUID); Expand_Gungeon_HiddenMonsterRoom = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Gungeon_HiddenMonsterRoom", setRoomCategory: true); Expand_Gungeon_HiddenMonsterRoom.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)60, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)62, (RoomEventTriggerAction)1) }; RoomBuilder.AddObjectToRoom(Expand_Gungeon_HiddenMonsterRoom, Vector2.zero, ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.Sarco_Floor, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Gungeon_HiddenMonsterRoom, new Vector2(64f, 0f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.Sarco_MonsterObject, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Gungeon_HiddenMonsterRoom, new Vector2(13f, 2f), ExpandObjectDatabase.WrithingBulletman); RoomBuilder.AddObjectToRoom(Expand_Gungeon_HiddenMonsterRoom, new Vector2(33f, 5f), ExpandObjectDatabase.WrithingBulletman); RoomBuilder.AddObjectToRoom(Expand_Gungeon_HiddenMonsterRoom, new Vector2(40f, 2f), ExpandObjectDatabase.WrithingBulletman); RoomBuilder.AddObjectToRoom(Expand_Gungeon_HiddenMonsterRoom, new Vector2(48f, 3f), ExpandObjectDatabase.WrithingBulletman); RoomBuilder.AddObjectToRoom(Expand_Gungeon_HiddenMonsterRoom, new Vector2(57f, 5f), ExpandObjectDatabase.WrithingBulletman); RoomBuilder.AddObjectToRoom(Expand_Gungeon_HiddenMonsterRoom, new Vector2(58f, 2f), ExpandObjectDatabase.WrithingBulletman); RoomBuilder.AddObjectToRoom(Expand_Gungeon_HiddenMonsterRoom, new Vector2(10f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.Sarco_Skeleton, spawnsEnemy: false, useExternalPrefab: true)); Expand_Gungeon_HiddenMonsterRoom.usesProceduralLighting = false; Expand_Gungeon_HiddenMonsterRoom.allowFloorDecoration = false; Expand_Gungeon_HiddenMonsterRoom.allowWallDecoration = false; Expand_Gungeon_HiddenMonsterRoom.usesProceduralDecoration = false; Expand_Gungeon_HiddenMonsterRoom.precludeAllTilemapDrawing = true; Expand_Gungeon_HiddenMonsterRoom.UseCustomMusic = true; Expand_Gungeon_HiddenMonsterRoom.UseCustomMusicState = false; Expand_Gungeon_HiddenMonsterRoom.CustomMusicEvent = "Play_MUS_Dungeon_State_Winner"; Expand_Gungeon_HiddenMonsterRoom.UseCustomMusicSwitch = true; Expand_Gungeon_HiddenMonsterRoom.CustomMusicSwitch = "Play_EX_MUS_BellyEntrance_01"; Expand_Belly_Connector_01 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Belly_Connector_01", setRoomCategory: true); Expand_Belly_Connector_02 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Belly_Connector_02", setRoomCategory: true); Expand_Belly_Connector_03 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Belly_Connector_03", setRoomCategory: true); Expand_Belly_Connector_04 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Belly_Connector_04", setRoomCategory: true); Expand_Belly_Connector_05 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Belly_Connector_05", setRoomCategory: true); Expand_Belly_Connector_06 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Belly_Connector_06", setRoomCategory: true); Expand_Belly_Reward = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Belly_Reward", setRoomCategory: true); Expand_Belly_Shrine = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Belly_Shrine", setRoomCategory: true); Expand_Belly_ExitHub = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Belly_ExitHub", setRoomCategory: true); Expand_Belly_RealExit = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Belly_RealExit", setRoomCategory: true); Expand_Belly_RealExit.associatedMinimapIcon = ExpandPrefabs.Belly_ExitRoomIcon; Expand_Belly_RealExit.usesProceduralDecoration = false; Expand_Belly_RealExit.usesProceduralLighting = false; RoomBuilder.AddObjectToRoom(Expand_Belly_RealExit, new Vector2(11f, 38f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.Door_Vertical_Belly, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Belly_RealExit, new Vector2(11f, 39f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.Belly_ExitWarp, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Belly_RealExit, new Vector2(6f, 7f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.GungeonLightStone, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Belly_RealExit, new Vector2(9f, 24f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.GungeonLightStone, spawnsEnemy: false, useExternalPrefab: true)); Expand_West_Entrance = RoomFactory.BuildFromAssetBundle(bundles, "Expand_West_Entrance", setRoomCategory: true); Expand_West_Entrance.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_West_Entrance.usesProceduralDecoration = false; Expand_West_Entrance.overrideRoomVisualType = 0; RoomBuilder.AddObjectToRoom(Expand_West_Entrance, new Vector2(16f, 25f), ExpandPrefabs.Door_Horizontal_West); RoomBuilder.AddObjectToRoom(Expand_West_Entrance, new Vector2(34f, 25f), ExpandPrefabs.Door_Horizontal_West); RoomBuilder.AddObjectToRoom(Expand_West_Entrance, new Vector2(25f, 17f), ExpandPrefabs.Door_Vertical_West); RoomBuilder.AddObjectToRoom(Expand_West_Entrance, new Vector2(25f, 35f), ExpandPrefabs.Door_Vertical_West); RoomBuilder.AddObjectToRoom(Expand_West_Entrance, new Vector2(9f, 42f), null, null, ExpandEnemyDatabase.MetalCubeGuyWestGUID); RoomBuilder.AddObjectToRoom(Expand_West_Entrance, new Vector2(41f, 10f), null, null, ExpandEnemyDatabase.MetalCubeGuyWestGUID); RoomBuilder.AddObjectToRoom(Expand_West_Entrance, Vector2.one, ExpandPrefabs.West_PuzzleSetupPlacable); Expand_West_SecretWarp = RoomFactory.BuildFromAssetBundle(bundles, "Expand_West_SecretWarp", setRoomCategory: true); Expand_West_SecretWarp.usesProceduralDecoration = false; Expand_West_SecretWarp.overrideRoomVisualType = 1; Expand_West_SecretHub = RoomFactory.BuildFromAssetBundle(bundles, "Expand_West_SecretHub", setRoomCategory: true); Expand_West_SecretHub.overrideRoomVisualType = 1; Expand_West_SecretHub.usesProceduralDecoration = false; Expand_West_SecretHub2 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_West_SecretHub", setRoomCategory: true); ((Object)Expand_West_SecretHub2).name = "Expand_West_SecretHub2"; Expand_West_SecretHub2.overrideRoomVisualType = 2; Expand_West_SecretHub2.usesProceduralDecoration = false; RoomBuilder.AddObjectToRoom(Expand_West_SecretHub2, Vector2.one, ExpandPrefabs.West_PuzzleSetupPlacable); Expand_West_SecretShopWarp = RoomFactory.BuildFromAssetBundle(bundles, "Expand_West_SecretShopWarp", setRoomCategory: true); Expand_West_SecretShopWarp.overrideRoomVisualType = 2; Expand_West_SecretShopWarp.usesProceduralDecoration = false; RoomBuilder.AddObjectToRoom(Expand_West_SecretShopWarp, new Vector2(2f, 5f), ExpandPrefabs.EXRatDoor_4xLocks); ForgeHammerTestRoom = RoomFactory.BuildFromAssetBundle(bundles, "Expand_ForgeHammerTestRoom", setRoomCategory: true, autoAssignToFloor: false, assignDecorationSettings: true); RoomBuilder.AddObjectToRoom(ForgeHammerTestRoom, new Vector2(4f, 10f), ExpandObjectDatabase.ForgeHammerPlacable_TracksPlayer); Expand_West_SecretKeyShop = Object.Instantiate(ExpandPrefabs.shop_special_key_01); Expand_West_SecretKeyShop.overrideRoomVisualType = 0; Expand_West_SecretKeyShop.category = (RoomCategory)6; Expand_West_ChestRoom = Object.Instantiate(ExpandPrefabs.reward_room); Expand_West_ChestRoom.overrideRoomVisualType = 0; Expand_West_BlankPedestalRoom = ScriptableObject.CreateInstance(); Expand_West_RatKeyPedestalRoom = ScriptableObject.CreateInstance(); Expand_West_SecretRatKeyPedestalRoom = ScriptableObject.CreateInstance(); Expand_West_ShrineRoom = ScriptableObject.CreateInstance(); Giant_Elevator_Room = ScriptableObject.CreateInstance(); Utiliroom = ScriptableObject.CreateInstance(); Utiliroom_SpecialPit = ScriptableObject.CreateInstance(); Utiliroom_Pitfall = ScriptableObject.CreateInstance(); SecretRewardRoom = ScriptableObject.CreateInstance(); SecretBossRoom = ScriptableObject.CreateInstance(); FakeBossRoom = ScriptableObject.CreateInstance(); SecretExitRoom = ScriptableObject.CreateInstance(); PuzzleRoom1 = ScriptableObject.CreateInstance(); PuzzleRoom2 = ScriptableObject.CreateInstance(); PuzzleRoom3 = ScriptableObject.CreateInstance(); CreepyGlitchRoom = ScriptableObject.CreateInstance(); CreepyGlitchRoom_Entrance = ScriptableObject.CreateInstance(); GungeoneerMimicBossRoom = ScriptableObject.CreateInstance(); GungeoneerMimicBossFoyerRoom = Object.Instantiate(ExpandPrefabs.DragunBossFoyerRoom); GungeoneerMimicBossFoyerRoom.overrideRoomVisualType = 2; Expand_West_WestBrosBossRoom = ScriptableObject.CreateInstance(); Expand_Explode = ScriptableObject.CreateInstance(); Expand_C_Hub = ScriptableObject.CreateInstance(); Expand_C_Gap = ScriptableObject.CreateInstance(); Expand_ChainGap = ScriptableObject.CreateInstance(); Expand_Challange1 = ScriptableObject.CreateInstance(); Expand_Pit_Line = ScriptableObject.CreateInstance(); Expand_Singer_Gap = ScriptableObject.CreateInstance(); Expand_Flying_Gap = ScriptableObject.CreateInstance(); Expand_Battle = ScriptableObject.CreateInstance(); Expand_Cross = ScriptableObject.CreateInstance(); Expand_Blocks = ScriptableObject.CreateInstance(); Expand_Blocks_Pits = ScriptableObject.CreateInstance(); Expand_Wall_Pit = ScriptableObject.CreateInstance(); Expand_Gate_Cross = ScriptableObject.CreateInstance(); Expand_Passage = ScriptableObject.CreateInstance(); Expand_Pit_Jump = ScriptableObject.CreateInstance(); Expand_Pit_Passage = ScriptableObject.CreateInstance(); Expand_R_Blocks = ScriptableObject.CreateInstance(); Expand_Small_Passage = ScriptableObject.CreateInstance(); Expand_Box = ScriptableObject.CreateInstance(); Expand_Steps = ScriptableObject.CreateInstance(); Expand_Apache_Hub = ScriptableObject.CreateInstance(); Expand_Box_Hub = ScriptableObject.CreateInstance(); Expand_Enclose_Hub = ScriptableObject.CreateInstance(); Expand_Crosshairs = ScriptableObject.CreateInstance(); Expand_Basic = ScriptableObject.CreateInstance(); Expand_JumpInThePit = ScriptableObject.CreateInstance(); Expand_LongSpikeTrap = ScriptableObject.CreateInstance(); Expand_SpikeTrap = ScriptableObject.CreateInstance(); Expand_ThinRoom = ScriptableObject.CreateInstance(); Expand_SniperRoom = ScriptableObject.CreateInstance(); Expand_TableRoom = ScriptableObject.CreateInstance(); Expand_GoopTroop = ScriptableObject.CreateInstance(); Expand_HopScotch = ScriptableObject.CreateInstance(); Expand_Pit = ScriptableObject.CreateInstance(); Expand_Singer = ScriptableObject.CreateInstance(); Expand_TableRoom2 = ScriptableObject.CreateInstance(); Expand_OilRoom = ScriptableObject.CreateInstance(); Expand_Walkway = ScriptableObject.CreateInstance(); Expand_SpiderMaze = ScriptableObject.CreateInstance(); Expand_BlobRoom = ScriptableObject.CreateInstance(); Expand_HellInACell = ScriptableObject.CreateInstance(); Expand_IceIsNice = ScriptableObject.CreateInstance(); Expand_IceScotch = ScriptableObject.CreateInstance(); Expand_MrPresident = ScriptableObject.CreateInstance(); Expand_SawRoom = ScriptableObject.CreateInstance(); Expand_Agony = ScriptableObject.CreateInstance(); Expand_ice1 = ScriptableObject.CreateInstance(); Expand_Ice2 = ScriptableObject.CreateInstance(); Expand_Ice3 = ScriptableObject.CreateInstance(); Expand_Ice4 = ScriptableObject.CreateInstance(); Expand_LargeMany = ScriptableObject.CreateInstance(); Expand_Roundabout = ScriptableObject.CreateInstance(); Expand_Shells = ScriptableObject.CreateInstance(); Expand_Spooky = ScriptableObject.CreateInstance(); Expand_Undead1 = ScriptableObject.CreateInstance(); Expand_Undead2 = ScriptableObject.CreateInstance(); Expand_Undead3 = ScriptableObject.CreateInstance(); Expand_Undead4 = ScriptableObject.CreateInstance(); Expand_Arena = ScriptableObject.CreateInstance(); Expand_CaptainCrunch = ScriptableObject.CreateInstance(); Expand_CorridorOfDoom = ScriptableObject.CreateInstance(); Expand_FireRoom = ScriptableObject.CreateInstance(); Expand_Pits = ScriptableObject.CreateInstance(); Expand_SkullRoom = ScriptableObject.CreateInstance(); Expand_TableRoomAgain = ScriptableObject.CreateInstance(); ThwompCrossingVertical = ScriptableObject.CreateInstance(); ThwompCrossingHorizontal = ScriptableObject.CreateInstance(); Expand_Apache_FieldOfSaws = ScriptableObject.CreateInstance(); Expand_Apache_SpikeAndPits = ScriptableObject.CreateInstance(); Expand_Apache_RickRollChest = ScriptableObject.CreateInstance(); Expand_Apache_SurpriseChest = ScriptableObject.CreateInstance(); Expand_Apache_RainbowRoom = RoomFactory.BuildFromAssetBundle(bundles, "Expand_RainbowRoom", setRoomCategory: true, autoAssignToFloor: false, assignDecorationSettings: true); Expand_Apache_RainbowRoom.overrideRoomVisualType = 0; Expand_Apache_RainbowRoom.preventAddedDecoLayering = true; Expand_Apache_RainbowRoom.precludeAllTilemapDrawing = true; Expand_Apache_RainbowRoom.UseCustomMusic = true; Expand_Apache_RainbowRoom.UseCustomMusicState = false; Expand_Apache_RainbowRoom.CustomMusicEvent = "Play_MUS_Dungeon_State_Winner"; Expand_Apache_RainbowRoom.UseCustomMusicSwitch = true; Expand_Apache_RainbowRoom.CustomMusicSwitch = "Play_EX_UnicornMusic_01"; Expand_Apache_RainbowRoom.usesProceduralLighting = false; Expand_Apache_RainbowRoom.usesCustomAmbientLight = true; Expand_Apache_RainbowRoom.customAmbientLight = new Color(0.8f, 0.8f, 0.8f, 1f); Expand_Apache_RainbowRoom.allowFloorDecoration = false; Expand_Apache_RainbowRoom.allowWallDecoration = false; Expand_Apache_RainbowRoom.usesProceduralDecoration = false; Expand_Apache_RainbowRoom.drawPrecludedCeilingTiles = false; RoomBuilder.AddObjectToRoom(Expand_Apache_RainbowRoom, Vector2.zero, ExpandPrefabs.EXSpaceFloor_50x50); RoomBuilder.AddObjectToRoom(Expand_Apache_RainbowRoom, Vector2.zero, ExpandPrefabs.EXSpaceFloorPitBorder_50x50); if (Object.op_Implicit((Object)(object)ExpandPrefabs.EXTrap_Apache.GetComponent())) { RoomBuilder.AddObjectToRoom(Expand_Apache_RainbowRoom, new Vector2(19f, 47f), null, ExpandPrefabs.EXTrap_Apache.GetComponent(), null, 1f, 0, 0, 0, 0); RoomBuilder.AddObjectToRoom(Expand_Apache_RainbowRoom, new Vector2(5f, 2f), null, ExpandPrefabs.EXTrap_Apache.GetComponent(), null, 1f, 0, 0, 0, 0, 2); RoomBuilder.AddObjectToRoom(Expand_Apache_RainbowRoom, new Vector2(45f, 30f), null, ExpandPrefabs.EXTrap_Apache.GetComponent(), null, 1f, 0, 0, 0, 1); } else { RoomBuilder.AddObjectToRoom(Expand_Apache_RainbowRoom, new Vector2(19f, 47f), ExpandPrefabs.EXTrap_Apache, 0, 0, 0, 1f, 0); RoomBuilder.AddObjectToRoom(Expand_Apache_RainbowRoom, new Vector2(5f, 2f), ExpandPrefabs.EXTrap_Apache, 0, 0, 0, 1f, 0, 2); RoomBuilder.AddObjectToRoom(Expand_Apache_RainbowRoom, new Vector2(45f, 30f), ExpandPrefabs.EXTrap_Apache, 0, 0, 0, 1f, 1); } SerializedPath val11 = new SerializedPath(IntVector2.Zero); val11.wrapMode = (SerializedPathWrapMode)1; val11.tilesetPathGrid = -1; val11.nodes = new List { ExpandUtility.GeneratePathNode(new IntVector2(19, 47), (SerializedNodePlacement)2), ExpandUtility.GeneratePathNode(new IntVector2(2, 29), (SerializedNodePlacement)8), ExpandUtility.GeneratePathNode(new IntVector2(5, 2), (SerializedNodePlacement)6), ExpandUtility.GeneratePathNode(new IntVector2(47, 16), (SerializedNodePlacement)4) }; SerializedPath val12 = new SerializedPath(IntVector2.Zero); val12.wrapMode = (SerializedPathWrapMode)1; val12.tilesetPathGrid = -1; val12.nodes = new List { ExpandUtility.GeneratePathNode(new IntVector2(45, 30), (SerializedNodePlacement)7), ExpandUtility.GeneratePathNode(new IntVector2(12, 30), (SerializedNodePlacement)3) }; Expand_Apache_RainbowRoom.paths = new List { val11, val12 }; Expand_FakePastChest = RoomFactory.BuildFromAssetBundle(bundles, "Expand_FakePastChest", setRoomCategory: true, autoAssignToFloor: false, assignDecorationSettings: true); RoomBuilder.AddObjectToRoom(Expand_FakePastChest, new Vector2(8f, 25f), ExpandPrefabs.FakePastChest, 1); Expand_FakePastChest.usesProceduralDecoration = false; SecretExitRoom2 = ScriptableObject.CreateInstance(); SecretRatEntranceRoom = ScriptableObject.CreateInstance(); Expand_SecretElevatorDestinationRoom = ScriptableObject.CreateInstance(); Expand_TinySecret = ScriptableObject.CreateInstance(); Expand_TinySecretEmpty = ScriptableObject.CreateInstance(); Expand_GlitchedSecret = ScriptableObject.CreateInstance(); Expand_SecretElevatorEntranceRoom = ScriptableObject.CreateInstance(); Expand_RickRollSecret = ScriptableObject.CreateInstance(); Bunny_Special4ShrineRoom = RoomFactory.BuildFromAssetBundle(bundles, "Bunny_Special4ShrineRoom", setRoomCategory: true, autoAssignToFloor: true); foreach (PrototypeRoomExit exit8 in Bunny_Special4ShrineRoom.exitData.exits) { exit8.exitType = (ExitType)1; } Expand_Keep_TreeRoom = RoomFactory.BuildFromAssetBundle(bundles, "Keep_TreeRoom", setRoomCategory: true, autoAssignToFloor: false, assignDecorationSettings: true); Expand_Keep_TreeRoom.overrideRoomVisualType = 6; Expand_Keep_TreeRoom.associatedMinimapIcon = ExpandPrefabs.EXJungleTree_MinimapIcon; RoomBuilder.AddObjectToRoom(Expand_Keep_TreeRoom, new Vector2(5f, 12f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.Jungle_LargeTree, spawnsEnemy: false, useExternalPrefab: true)); Expand_Keep_TreeRoom2 = RoomFactory.BuildFromAssetBundle(bundles, "Keep_TreeRoom2", setRoomCategory: true, autoAssignToFloor: false, assignDecorationSettings: true); Expand_Keep_TreeRoom2.overrideRoomVisualType = 6; Expand_Keep_TreeRoom2.associatedMinimapIcon = ExpandPrefabs.EXJungleTree_MinimapIcon; RoomBuilder.AddObjectToRoom(Expand_Keep_TreeRoom2, new Vector2(4f, 20f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.Jungle_LargeTree, spawnsEnemy: false, useExternalPrefab: true)); Expand_Keep_TreeRoom3 = RoomFactory.BuildFromAssetBundle(bundles, "Keep_TreeRoom3", setRoomCategory: true); Expand_Keep_TreeRoom3.overrideRoomVisualType = 6; Expand_Keep_TreeRoom3.associatedMinimapIcon = ExpandPrefabs.EXJungleTree_MinimapIcon; RoomBuilder.AddObjectToRoom(Expand_Keep_TreeRoom3, new Vector2(4f, 9f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.Jungle_LargeTree, spawnsEnemy: false, useExternalPrefab: true)); Expand_Keep_TreeRoom4 = RoomFactory.BuildFromAssetBundle(bundles, "Keep_TreeRoom4", setRoomCategory: true); Expand_Keep_TreeRoom4.overrideRoomVisualType = 6; Expand_Keep_TreeRoom4.associatedMinimapIcon = ExpandPrefabs.EXJungleTree_MinimapIcon; RoomBuilder.AddObjectToRoom(Expand_Keep_TreeRoom4, new Vector2(9f, 16f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.Jungle_LargeTree, spawnsEnemy: false, useExternalPrefab: true)); Expand_Keep_JungleElevatorRoom = RoomFactory.BuildFromAssetBundle(bundles, "Keep_JungleElevatorRoom", setRoomCategory: true, autoAssignToFloor: false, assignDecorationSettings: true); Expand_Keep_JungleElevatorRoom.overrideRoomVisualType = 2; RoomBuilder.AddObjectToRoom(Expand_Keep_JungleElevatorRoom, new Vector2(7f, 15f), ExpandPrefabs.EXJungleElevator_Departure_Placable); RoomBuilder.AddObjectToRoom(Expand_Keep_JungleElevatorRoom, new Vector2(6f, 3f), ExpandObjectDatabase.GodRays); Expand_Keep_JungleElevatorRoom2 = RoomFactory.BuildFromAssetBundle(bundles, "Keep_JungleElevatorRoom2", setRoomCategory: true, autoAssignToFloor: false, assignDecorationSettings: true); Expand_Keep_JungleElevatorRoom2.overrideRoomVisualType = 2; RoomBuilder.AddObjectToRoom(Expand_Keep_JungleElevatorRoom2, new Vector2(7f, 34f), ExpandPrefabs.EXJungleElevator_Departure_Placable); RoomBuilder.AddObjectToRoom(Expand_Keep_JungleElevatorRoom2, new Vector2(6f, 3f), ExpandObjectDatabase.GodRays); RoomBuilder.AddObjectToRoom(Expand_Keep_JungleElevatorRoom2, new Vector2(9f, 25f), ExpandPrefabs.Door_Vertical_Jungle); Expand_ExitRoom_NewElevator = RoomFactory.BuildFromAssetBundle(bundles, "Expand_ExitRoom_NewElevator", setRoomCategory: true); Expand_ExitRoom_NewElevator.associatedMinimapIcon = ExpandPrefabs.exit_room_basic.associatedMinimapIcon; RoomBuilder.AddObjectToRoom(Expand_ExitRoom_NewElevator, new Vector2(5f, 7f), ExpandPrefabs.EXPortableElevator_Departure_Placable); ((Object)Expand_West_BlankPedestalRoom).name = "Blank Reward Room"; Expand_West_BlankPedestalRoom.QAID = "FF" + Random.Range(1000, 9999); Expand_West_BlankPedestalRoom.GUID = Guid.NewGuid().ToString(); Expand_West_BlankPedestalRoom.PreventMirroring = false; Expand_West_BlankPedestalRoom.category = (RoomCategory)0; Expand_West_BlankPedestalRoom.subCategoryBoss = (RoomBossSubCategory)0; Expand_West_BlankPedestalRoom.subCategoryNormal = (RoomNormalSubCategory)0; Expand_West_BlankPedestalRoom.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_West_BlankPedestalRoom.subCategorySecret = (RoomSecretSubCategory)0; Expand_West_BlankPedestalRoom.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_West_BlankPedestalRoom.pits = new List(); Expand_West_BlankPedestalRoom.placedObjects = new List(); Expand_West_BlankPedestalRoom.placedObjectPositions = new List(); Expand_West_BlankPedestalRoom.eventTriggerAreas = new List(); Expand_West_BlankPedestalRoom.roomEvents = new List(0); Expand_West_BlankPedestalRoom.overriddenTilesets = (ValidTilesets)0; Expand_West_BlankPedestalRoom.prerequisites = new List(); Expand_West_BlankPedestalRoom.InvalidInCoop = false; Expand_West_BlankPedestalRoom.cullProceduralDecorationOnWeakPlatforms = false; Expand_West_BlankPedestalRoom.preventAddedDecoLayering = false; Expand_West_BlankPedestalRoom.precludeAllTilemapDrawing = false; Expand_West_BlankPedestalRoom.drawPrecludedCeilingTiles = false; Expand_West_BlankPedestalRoom.preventBorders = false; Expand_West_BlankPedestalRoom.preventFacewallAO = false; Expand_West_BlankPedestalRoom.usesCustomAmbientLight = false; Expand_West_BlankPedestalRoom.customAmbientLight = Color.white; Expand_West_BlankPedestalRoom.ForceAllowDuplicates = false; Expand_West_BlankPedestalRoom.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_West_BlankPedestalRoom.IsLostWoodsRoom = false; Expand_West_BlankPedestalRoom.UseCustomMusic = false; Expand_West_BlankPedestalRoom.UseCustomMusicState = false; Expand_West_BlankPedestalRoom.CustomMusicEvent = string.Empty; Expand_West_BlankPedestalRoom.UseCustomMusicSwitch = false; Expand_West_BlankPedestalRoom.CustomMusicSwitch = string.Empty; Expand_West_BlankPedestalRoom.overrideRoomVisualTypeForSecretRooms = false; Expand_West_BlankPedestalRoom.rewardChestSpawnPosition = IntVector2.One; Expand_West_BlankPedestalRoom.Width = 4; Expand_West_BlankPedestalRoom.Height = 4; Expand_West_BlankPedestalRoom.usesProceduralDecoration = false; Expand_West_BlankPedestalRoom.overrideRoomVisualType = 0; RoomBuilder.AddExitToRoom(Expand_West_BlankPedestalRoom, new Vector2(0f, 2f), (Direction)6, (ExitType)0, (ExitGroup)0, ContainsDoor: false); RoomBuilder.AddExitToRoom(Expand_West_BlankPedestalRoom, new Vector2(2f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0, ContainsDoor: false); RoomBuilder.AddExitToRoom(Expand_West_BlankPedestalRoom, new Vector2(2f, 5f), (Direction)0, (ExitType)0, (ExitGroup)0, ContainsDoor: false); RoomBuilder.AddExitToRoom(Expand_West_BlankPedestalRoom, new Vector2(5f, 2f), (Direction)2, (ExitType)0, (ExitGroup)0, ContainsDoor: false); RoomBuilder.AddObjectToRoom(Expand_West_BlankPedestalRoom, Vector2.one, ExpandPrefabs.BlankRewardPedestal, 3, 8); RoomBuilder.GenerateBasicRoomLayout(Expand_West_BlankPedestalRoom, (CellType)2, (PitBorderType)0); ((Object)Expand_West_RatKeyPedestalRoom).name = "Special Key Reward Room"; Expand_West_RatKeyPedestalRoom.QAID = "FF" + Random.Range(1000, 9999); Expand_West_RatKeyPedestalRoom.GUID = Guid.NewGuid().ToString(); Expand_West_RatKeyPedestalRoom.PreventMirroring = false; Expand_West_RatKeyPedestalRoom.category = (RoomCategory)0; Expand_West_RatKeyPedestalRoom.subCategoryBoss = (RoomBossSubCategory)0; Expand_West_RatKeyPedestalRoom.subCategoryNormal = (RoomNormalSubCategory)0; Expand_West_RatKeyPedestalRoom.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_West_RatKeyPedestalRoom.subCategorySecret = (RoomSecretSubCategory)0; Expand_West_RatKeyPedestalRoom.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_West_RatKeyPedestalRoom.pits = new List(); Expand_West_RatKeyPedestalRoom.placedObjects = new List(); Expand_West_RatKeyPedestalRoom.placedObjectPositions = new List(); Expand_West_RatKeyPedestalRoom.eventTriggerAreas = new List(); Expand_West_RatKeyPedestalRoom.roomEvents = new List(0); Expand_West_RatKeyPedestalRoom.overriddenTilesets = (ValidTilesets)0; Expand_West_RatKeyPedestalRoom.prerequisites = new List(); Expand_West_RatKeyPedestalRoom.InvalidInCoop = false; Expand_West_RatKeyPedestalRoom.cullProceduralDecorationOnWeakPlatforms = false; Expand_West_RatKeyPedestalRoom.preventAddedDecoLayering = false; Expand_West_RatKeyPedestalRoom.precludeAllTilemapDrawing = false; Expand_West_RatKeyPedestalRoom.drawPrecludedCeilingTiles = false; Expand_West_RatKeyPedestalRoom.preventBorders = false; Expand_West_RatKeyPedestalRoom.preventFacewallAO = false; Expand_West_RatKeyPedestalRoom.usesCustomAmbientLight = false; Expand_West_RatKeyPedestalRoom.customAmbientLight = Color.white; Expand_West_RatKeyPedestalRoom.ForceAllowDuplicates = false; Expand_West_RatKeyPedestalRoom.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_West_RatKeyPedestalRoom.IsLostWoodsRoom = false; Expand_West_RatKeyPedestalRoom.UseCustomMusic = false; Expand_West_RatKeyPedestalRoom.UseCustomMusicState = false; Expand_West_RatKeyPedestalRoom.CustomMusicEvent = string.Empty; Expand_West_RatKeyPedestalRoom.UseCustomMusicSwitch = false; Expand_West_RatKeyPedestalRoom.CustomMusicSwitch = string.Empty; Expand_West_RatKeyPedestalRoom.overrideRoomVisualTypeForSecretRooms = false; Expand_West_RatKeyPedestalRoom.rewardChestSpawnPosition = IntVector2.One; Expand_West_RatKeyPedestalRoom.Width = 4; Expand_West_RatKeyPedestalRoom.Height = 4; Expand_West_RatKeyPedestalRoom.usesProceduralDecoration = false; Expand_West_RatKeyPedestalRoom.overrideRoomVisualType = 0; RoomBuilder.AddExitToRoom(Expand_West_RatKeyPedestalRoom, new Vector2(0f, 2f), (Direction)6, (ExitType)0, (ExitGroup)0, ContainsDoor: false); RoomBuilder.AddExitToRoom(Expand_West_RatKeyPedestalRoom, new Vector2(2f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0, ContainsDoor: false); RoomBuilder.AddExitToRoom(Expand_West_RatKeyPedestalRoom, new Vector2(2f, 5f), (Direction)0, (ExitType)0, (ExitGroup)0, ContainsDoor: false); RoomBuilder.AddExitToRoom(Expand_West_RatKeyPedestalRoom, new Vector2(5f, 2f), (Direction)2, (ExitType)0, (ExitGroup)0, ContainsDoor: false); RoomBuilder.AddObjectToRoom(Expand_West_RatKeyPedestalRoom, Vector2.one, ExpandPrefabs.RatKeyRewardPedestal, 3, 8); RoomBuilder.GenerateBasicRoomLayout(Expand_West_RatKeyPedestalRoom, (CellType)2, (PitBorderType)0); ((Object)Expand_West_SecretRatKeyPedestalRoom).name = "Secret Special Key Reward Room"; Expand_West_SecretRatKeyPedestalRoom.QAID = "FF" + Random.Range(1000, 9999); Expand_West_SecretRatKeyPedestalRoom.GUID = Guid.NewGuid().ToString(); Expand_West_SecretRatKeyPedestalRoom.PreventMirroring = false; Expand_West_SecretRatKeyPedestalRoom.category = (RoomCategory)6; Expand_West_SecretRatKeyPedestalRoom.subCategoryBoss = (RoomBossSubCategory)0; Expand_West_SecretRatKeyPedestalRoom.subCategoryNormal = (RoomNormalSubCategory)0; Expand_West_SecretRatKeyPedestalRoom.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_West_SecretRatKeyPedestalRoom.subCategorySecret = (RoomSecretSubCategory)0; Expand_West_SecretRatKeyPedestalRoom.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_West_SecretRatKeyPedestalRoom.pits = new List(); Expand_West_SecretRatKeyPedestalRoom.placedObjects = new List(); Expand_West_SecretRatKeyPedestalRoom.placedObjectPositions = new List(); Expand_West_SecretRatKeyPedestalRoom.eventTriggerAreas = new List(); Expand_West_SecretRatKeyPedestalRoom.roomEvents = new List(0); Expand_West_SecretRatKeyPedestalRoom.overriddenTilesets = (ValidTilesets)0; Expand_West_SecretRatKeyPedestalRoom.prerequisites = new List(); Expand_West_SecretRatKeyPedestalRoom.InvalidInCoop = false; Expand_West_SecretRatKeyPedestalRoom.cullProceduralDecorationOnWeakPlatforms = false; Expand_West_SecretRatKeyPedestalRoom.preventAddedDecoLayering = false; Expand_West_SecretRatKeyPedestalRoom.precludeAllTilemapDrawing = false; Expand_West_SecretRatKeyPedestalRoom.drawPrecludedCeilingTiles = false; Expand_West_SecretRatKeyPedestalRoom.preventBorders = false; Expand_West_SecretRatKeyPedestalRoom.preventFacewallAO = false; Expand_West_SecretRatKeyPedestalRoom.usesCustomAmbientLight = false; Expand_West_SecretRatKeyPedestalRoom.customAmbientLight = Color.white; Expand_West_SecretRatKeyPedestalRoom.ForceAllowDuplicates = false; Expand_West_SecretRatKeyPedestalRoom.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_West_SecretRatKeyPedestalRoom.IsLostWoodsRoom = false; Expand_West_SecretRatKeyPedestalRoom.UseCustomMusic = false; Expand_West_SecretRatKeyPedestalRoom.UseCustomMusicState = false; Expand_West_SecretRatKeyPedestalRoom.CustomMusicEvent = string.Empty; Expand_West_SecretRatKeyPedestalRoom.UseCustomMusicSwitch = false; Expand_West_SecretRatKeyPedestalRoom.CustomMusicSwitch = string.Empty; Expand_West_SecretRatKeyPedestalRoom.overrideRoomVisualTypeForSecretRooms = false; Expand_West_SecretRatKeyPedestalRoom.rewardChestSpawnPosition = IntVector2.One; Expand_West_SecretRatKeyPedestalRoom.Width = 4; Expand_West_SecretRatKeyPedestalRoom.Height = 4; Expand_West_SecretRatKeyPedestalRoom.usesProceduralDecoration = false; Expand_West_SecretRatKeyPedestalRoom.overrideRoomVisualType = 0; RoomBuilder.AddExitToRoom(Expand_West_SecretRatKeyPedestalRoom, new Vector2(0f, 2f), (Direction)6, (ExitType)0, (ExitGroup)0, ContainsDoor: false); RoomBuilder.AddExitToRoom(Expand_West_SecretRatKeyPedestalRoom, new Vector2(2f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0, ContainsDoor: false); RoomBuilder.AddExitToRoom(Expand_West_SecretRatKeyPedestalRoom, new Vector2(2f, 5f), (Direction)0, (ExitType)0, (ExitGroup)0, ContainsDoor: false); RoomBuilder.AddExitToRoom(Expand_West_SecretRatKeyPedestalRoom, new Vector2(5f, 2f), (Direction)2, (ExitType)0, (ExitGroup)0, ContainsDoor: false); RoomBuilder.AddObjectToRoom(Expand_West_SecretRatKeyPedestalRoom, Vector2.one, ExpandPrefabs.RatKeyRewardPedestal, 3, 8); RoomBuilder.GenerateBasicRoomLayout(Expand_West_SecretRatKeyPedestalRoom, (CellType)2, (PitBorderType)0); ExpandUtility.DuplicateComponent(Expand_West_ShrineRoom, ExpandPrefabs.letsgetsomeshrines_001); ((Object)Expand_West_ShrineRoom).name = "Old West Shrine Room"; Expand_West_ShrineRoom.QAID = "FF" + Random.Range(1000, 9999); Expand_West_ShrineRoom.GUID = Guid.NewGuid().ToString(); Expand_West_ShrineRoom.overrideRoomVisualType = 0; Expand_West_ShrineRoom.UseCustomMusic = false; Expand_West_ShrineRoom.UseCustomMusicState = false; Expand_West_ShrineRoom.CustomMusicEvent = string.Empty; Expand_West_ShrineRoom.UseCustomMusicSwitch = false; Expand_West_ShrineRoom.CustomMusicSwitch = string.Empty; RoomBuilder.GenerateBasicRoomLayout(Expand_West_ShrineRoom, (CellType)2, (PitBorderType)0); ((Object)Expand_West_WestBrosBossRoom).name = "West Bros Boss Room"; Expand_West_WestBrosBossRoom.QAID = "FF" + Random.Range(1000, 9999); Expand_West_WestBrosBossRoom.GUID = Guid.NewGuid().ToString(); Expand_West_WestBrosBossRoom.PreventMirroring = false; Expand_West_WestBrosBossRoom.category = (RoomCategory)3; Expand_West_WestBrosBossRoom.subCategoryBoss = (RoomBossSubCategory)0; Expand_West_WestBrosBossRoom.subCategoryNormal = (RoomNormalSubCategory)0; Expand_West_WestBrosBossRoom.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_West_WestBrosBossRoom.subCategorySecret = (RoomSecretSubCategory)0; Expand_West_WestBrosBossRoom.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_West_WestBrosBossRoom.pits = new List(); Expand_West_WestBrosBossRoom.placedObjects = new List(); Expand_West_WestBrosBossRoom.placedObjectPositions = new List(); Expand_West_WestBrosBossRoom.eventTriggerAreas = new List(); Expand_West_WestBrosBossRoom.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_West_WestBrosBossRoom.overriddenTilesets = (ValidTilesets)0; Expand_West_WestBrosBossRoom.prerequisites = new List(); Expand_West_WestBrosBossRoom.InvalidInCoop = false; Expand_West_WestBrosBossRoom.cullProceduralDecorationOnWeakPlatforms = false; Expand_West_WestBrosBossRoom.preventAddedDecoLayering = false; Expand_West_WestBrosBossRoom.precludeAllTilemapDrawing = false; Expand_West_WestBrosBossRoom.drawPrecludedCeilingTiles = false; Expand_West_WestBrosBossRoom.preventBorders = false; Expand_West_WestBrosBossRoom.preventFacewallAO = false; Expand_West_WestBrosBossRoom.usesCustomAmbientLight = false; Expand_West_WestBrosBossRoom.customAmbientLight = Color.white; Expand_West_WestBrosBossRoom.ForceAllowDuplicates = false; Expand_West_WestBrosBossRoom.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_West_WestBrosBossRoom.IsLostWoodsRoom = false; Expand_West_WestBrosBossRoom.UseCustomMusic = false; Expand_West_WestBrosBossRoom.UseCustomMusicState = false; Expand_West_WestBrosBossRoom.CustomMusicEvent = string.Empty; Expand_West_WestBrosBossRoom.UseCustomMusicSwitch = false; Expand_West_WestBrosBossRoom.CustomMusicSwitch = string.Empty; Expand_West_WestBrosBossRoom.overrideRoomVisualTypeForSecretRooms = false; Expand_West_WestBrosBossRoom.rewardChestSpawnPosition = new IntVector2(18, 21); Expand_West_WestBrosBossRoom.Width = 38; Expand_West_WestBrosBossRoom.Height = 27; Expand_West_WestBrosBossRoom.overrideRoomVisualType = 1; PrototypeDungeonRoom expand_West_WestBrosBossRoom = Expand_West_WestBrosBossRoom; list9 = new List(); List list11 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "5861e5a077244905a8c25c2b7b4d6ebb", contentsBasePosition = new Vector2(9f, 16f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "5861e5a077244905a8c25c2b7b4d6ebb", contentsBasePosition = new Vector2(12f, 20f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "05cb719e0178478685dc610f8b3e8bfc", contentsBasePosition = new Vector2(12f, 7f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "ddf12a4881eb43cfba04f36dd6377abb", contentsBasePosition = new Vector2(9f, 11f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "05cb719e0178478685dc610f8b3e8bfc", contentsBasePosition = new Vector2(12f, 13f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(9f, 16f), new Vector2(12f, 20f), new Vector2(12f, 7f), new Vector2(9f, 11f), new Vector2(12f, 13f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 15f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)80; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list11.Add(val10); List list12 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "ddf12a4881eb43cfba04f36dd6377abb", contentsBasePosition = new Vector2(26f, 20f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "05cb719e0178478685dc610f8b3e8bfc", contentsBasePosition = new Vector2(25f, 9f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "5861e5a077244905a8c25c2b7b4d6ebb", contentsBasePosition = new Vector2(28f, 17f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "5861e5a077244905a8c25c2b7b4d6ebb", contentsBasePosition = new Vector2(28f, 12f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "ddf12a4881eb43cfba04f36dd6377abb", contentsBasePosition = new Vector2(25f, 15f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(26f, 20f), new Vector2(25f, 9f), new Vector2(28f, 17f), new Vector2(28f, 12f), new Vector2(25f, 15f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 15f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)80; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list12.Add(val10); expand_West_WestBrosBossRoom.additionalObjectLayers = list9; Expand_West_WestBrosBossRoom.associatedMinimapIcon = ExpandPrefabs.GatlingGullRoom05.associatedMinimapIcon; RoomBuilder.AddExitToRoom(Expand_West_WestBrosBossRoom, new Vector2(0f, 14f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_West_WestBrosBossRoom, new Vector2(39f, 14f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_West_WestBrosBossRoom, new Vector2(19f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_West_WestBrosBossRoom, new Vector2(19f, 28f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_West_WestBrosBossRoom, new Vector2(16f, 15f), null, null, ExpandWesternBrosPrefabBuilder.WestBrosNomeGUID); RoomBuilder.AddObjectToRoom(Expand_West_WestBrosBossRoom, new Vector2(18f, 18f), null, null, ExpandWesternBrosPrefabBuilder.WestBrosAngelGUID); RoomBuilder.AddObjectToRoom(Expand_West_WestBrosBossRoom, new Vector2(20f, 15f), null, null, ExpandWesternBrosPrefabBuilder.WestBrosTucGUID); RoomBuilder.GenerateBasicRoomLayout(Expand_West_WestBrosBossRoom, (CellType)2, (PitBorderType)0); ((Object)FakeBossRoom).name = "Fake Boss Room"; FakeBossRoom.QAID = "FF" + Random.Range(1000, 9999); FakeBossRoom.GUID = Guid.NewGuid().ToString(); FakeBossRoom.PreventMirroring = false; FakeBossRoom.category = (RoomCategory)3; FakeBossRoom.subCategoryBoss = (RoomBossSubCategory)1; FakeBossRoom.subCategoryNormal = (RoomNormalSubCategory)0; FakeBossRoom.subCategorySpecial = (RoomSpecialSubCategory)1; FakeBossRoom.subCategorySecret = (RoomSecretSubCategory)0; FakeBossRoom.exitData = new PrototypeRoomExitData { exits = new List() }; FakeBossRoom.pits = new List(); FakeBossRoom.placedObjects = new List(); FakeBossRoom.placedObjectPositions = new List(); FakeBossRoom.eventTriggerAreas = new List(); FakeBossRoom.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; FakeBossRoom.overriddenTilesets = (ValidTilesets)0; FakeBossRoom.prerequisites = new List(); FakeBossRoom.InvalidInCoop = false; FakeBossRoom.cullProceduralDecorationOnWeakPlatforms = false; FakeBossRoom.preventAddedDecoLayering = false; FakeBossRoom.precludeAllTilemapDrawing = false; FakeBossRoom.drawPrecludedCeilingTiles = false; FakeBossRoom.preventBorders = false; FakeBossRoom.preventFacewallAO = false; FakeBossRoom.usesCustomAmbientLight = false; FakeBossRoom.customAmbientLight = Color.white; FakeBossRoom.ForceAllowDuplicates = false; FakeBossRoom.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; FakeBossRoom.IsLostWoodsRoom = false; FakeBossRoom.UseCustomMusic = false; FakeBossRoom.UseCustomMusicState = false; FakeBossRoom.CustomMusicEvent = string.Empty; FakeBossRoom.UseCustomMusicSwitch = false; FakeBossRoom.CustomMusicSwitch = string.Empty; FakeBossRoom.overrideRoomVisualTypeForSecretRooms = false; FakeBossRoom.rewardChestSpawnPosition = new IntVector2(13, 13); FakeBossRoom.Width = 26; FakeBossRoom.Height = 26; FakeBossRoom.associatedMinimapIcon = ExpandPrefabs.GatlingGullRoom05.associatedMinimapIcon; FakeBossRoom.overrideRoomVisualType = 1; RoomBuilder.AddExitToRoom(FakeBossRoom, new Vector2(13f, 27f), (Direction)0, (ExitType)2, (ExitGroup)0); RoomBuilder.AddExitToRoom(FakeBossRoom, new Vector2(27f, 13f), (Direction)2, (ExitType)2, (ExitGroup)0); RoomBuilder.AddExitToRoom(FakeBossRoom, new Vector2(0f, 13f), (Direction)6, (ExitType)2, (ExitGroup)0); RoomBuilder.AddExitToRoom(FakeBossRoom, new Vector2(13f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(FakeBossRoom, new Vector2(13f, 16f), null, null, ExpandEnemyDatabase.BulletManBossGUID, 1f, 0, -4); RoomBuilder.AddObjectToRoom(FakeBossRoom, new Vector2(12f, 14f), ExpandObjectDatabase.TableHorizontal, 4); RoomBuilder.AddObjectToRoom(FakeBossRoom, new Vector2(4f, 22f), ExpandObjectDatabase.ExplodyBarrel); RoomBuilder.AddObjectToRoom(FakeBossRoom, new Vector2(22f, 4f), ExpandObjectDatabase.ExplodyBarrel); RoomBuilder.AddObjectToRoom(FakeBossRoom, new Vector2(22f, 22f), ExpandObjectDatabase.ExplodyBarrel); RoomBuilder.AddObjectToRoom(FakeBossRoom, new Vector2(4f, 4f), ExpandObjectDatabase.ExplodyBarrel); RoomBuilder.GenerateBasicRoomLayout(FakeBossRoom, (CellType)2, (PitBorderType)0); ((Object)Giant_Elevator_Room).name = "Giant Elevator Room"; Giant_Elevator_Room.QAID = "FF" + Random.Range(1000, 9999); Giant_Elevator_Room.GUID = Guid.NewGuid().ToString(); Giant_Elevator_Room.PreventMirroring = false; Giant_Elevator_Room.category = (RoomCategory)7; Giant_Elevator_Room.subCategoryBoss = (RoomBossSubCategory)0; Giant_Elevator_Room.subCategoryNormal = (RoomNormalSubCategory)0; Giant_Elevator_Room.subCategorySecret = (RoomSecretSubCategory)0; Giant_Elevator_Room.subCategorySpecial = (RoomSpecialSubCategory)1; Giant_Elevator_Room.exitData = new PrototypeRoomExitData { exits = new List() }; Giant_Elevator_Room.pits = new List(); Giant_Elevator_Room.placedObjects = new List(); Giant_Elevator_Room.placedObjectPositions = new List(); Giant_Elevator_Room.eventTriggerAreas = new List(); Giant_Elevator_Room.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Giant_Elevator_Room.overriddenTilesets = (ValidTilesets)0; Giant_Elevator_Room.prerequisites = new List(); Giant_Elevator_Room.InvalidInCoop = false; Giant_Elevator_Room.cullProceduralDecorationOnWeakPlatforms = false; Giant_Elevator_Room.preventAddedDecoLayering = false; Giant_Elevator_Room.precludeAllTilemapDrawing = false; Giant_Elevator_Room.drawPrecludedCeilingTiles = false; Giant_Elevator_Room.preventBorders = false; Giant_Elevator_Room.preventFacewallAO = false; Giant_Elevator_Room.usesCustomAmbientLight = false; Giant_Elevator_Room.customAmbientLight = Color.white; Giant_Elevator_Room.ForceAllowDuplicates = false; Giant_Elevator_Room.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Giant_Elevator_Room.IsLostWoodsRoom = false; Giant_Elevator_Room.UseCustomMusic = false; Giant_Elevator_Room.UseCustomMusicState = false; Giant_Elevator_Room.CustomMusicEvent = string.Empty; Giant_Elevator_Room.UseCustomMusicSwitch = false; Giant_Elevator_Room.CustomMusicSwitch = string.Empty; Giant_Elevator_Room.overrideRoomVisualTypeForSecretRooms = false; Giant_Elevator_Room.rewardChestSpawnPosition = new IntVector2(25, 25); Giant_Elevator_Room.associatedMinimapIcon = ExpandPrefabs.elevator_entrance.associatedMinimapIcon; Giant_Elevator_Room.Width = 100; Giant_Elevator_Room.Height = 100; Giant_Elevator_Room.overrideRoomVisualType = 0; RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(0f, 5f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(101f, 5f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(0f, 14f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(101f, 14f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(0f, 23f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(101f, 23f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(0f, 32f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(101f, 32f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(0f, 41f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(101f, 41f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(0f, 50f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(101f, 50f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(0f, 59f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(101f, 59f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(0f, 68f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(101f, 68f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(0f, 77f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(101f, 77f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(0f, 86f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(101f, 86f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(0f, 95f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(101f, 95f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(5f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(5f, 101f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(14f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(14f, 101f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(23f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(23f, 101f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(32f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(32f, 101f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(41f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(41f, 101f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(50f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(50f, 101f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(59f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(59f, 101f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(68f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(68f, 101f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(77f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(77f, 101f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(86f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(86f, 101f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(95f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Giant_Elevator_Room, new Vector2(95f, 101f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(47f, 49f), ExpandPrefabs.ElevatorArrival); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(48f, 41f), null, ExpandPrefabs.Teleporter_Gungeon_01.GetComponent()); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(49f, 33f), ExpandPrefabs.Door_Vertical_West); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(49f, 66f), ExpandPrefabs.Door_Vertical_West); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(29f, 49f), ExpandPrefabs.Door_Horizontal_West); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(70f, 49f), ExpandPrefabs.Door_Horizontal_West); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(17f, 4f), ExpandPrefabs.Door_Vertical_West); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(28f, 4f), ExpandPrefabs.Door_Vertical_West); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(49f, 4f), ExpandPrefabs.Door_Vertical_West); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(69f, 4f), ExpandPrefabs.Door_Vertical_West); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(80f, 4f), ExpandPrefabs.Door_Vertical_West); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(17f, 96f), ExpandPrefabs.Door_Vertical_West); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(28f, 96f), ExpandPrefabs.Door_Vertical_West); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(49f, 96f), ExpandPrefabs.Door_Vertical_West); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(69f, 96f), ExpandPrefabs.Door_Vertical_West); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(80f, 96f), ExpandPrefabs.Door_Vertical_West); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(3f, 16f), ExpandPrefabs.Door_Horizontal_West); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(3f, 32f), ExpandPrefabs.Door_Horizontal_West); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(3f, 49f), ExpandPrefabs.Door_Horizontal_West); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(3f, 66f), ExpandPrefabs.Door_Horizontal_West); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(3f, 82f), ExpandPrefabs.Door_Horizontal_West); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(96f, 16f), ExpandPrefabs.Door_Horizontal_West); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(96f, 32f), ExpandPrefabs.Door_Horizontal_West); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(96f, 49f), ExpandPrefabs.Door_Horizontal_West); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(96f, 66f), ExpandPrefabs.Door_Horizontal_West); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(96f, 82f), ExpandPrefabs.Door_Horizontal_West); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(7f, 24f), null, null, "0239c0680f9f467dbe5c4aab7dd1eca6"); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(45f, 13f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(87f, 17f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(14f, 23f), null, null, "db35531e66ce41cbb81d507a34366dfe"); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(13f, 60f), null, null, "2752019b770f473193b08b4005dc781f"); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(85f, 74f), null, null, "e861e59012954ab2b9b6977da85cb83c"); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(85f, 49f), null, null, "ec8ea75b557d4e7b8ceeaacdf6f8238c"); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(28f, 77f), null, null, "eed5addcc15148179f300cc0d9ee7f94"); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(63f, 84f), null, null, "98fdf153a4dd4d51bf0bafe43f3c77ff"); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(35f, 91f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(60f, 90f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(35f, 85f), null, null, "70216cae6c1346309d86d4a0b4603045"); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(75f, 8f), null, null, "c5b11bfc065d417b9c4d03a5e385fe2c"); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(72f, 86f), null, null, "3b0bd258b4c9432db3339665cc61c356"); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(12f, 39f), null, null, "3b0bd258b4c9432db3339665cc61c356"); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(15f, 14f), null, null, "ba928393c8ed47819c2c5f593100a5bc"); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(85f, 14f), null, null, "ba928393c8ed47819c2c5f593100a5bc"); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(15f, 86f), null, null, "ba928393c8ed47819c2c5f593100a5bc"); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(85f, 86f), null, null, "ba928393c8ed47819c2c5f593100a5bc"); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(59f, 67f), null, null, "479556d05c7c44f3b6abb3b2067fc778"); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(13f, 89f), ExpandObjectDatabase.YellowDrum); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(84f, 89f), ExpandObjectDatabase.YellowDrum); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(14f, 10f), ExpandObjectDatabase.ExplodyBarrel); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(84f, 10f), ExpandObjectDatabase.ExplodyBarrel); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(45f, 10f), ExpandObjectDatabase.Brazier); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(45f, 89f), ExpandObjectDatabase.Brazier); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(9f, 62f), ExpandObjectDatabase.Brazier); RoomBuilder.AddObjectToRoom(Giant_Elevator_Room, new Vector2(89f, 62f), ExpandObjectDatabase.Brazier); RoomBuilder.GenerateRoomLayout(Giant_Elevator_Room, "Giant_Elevator_Room_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Utiliroom).name = "Utiliroom"; Utiliroom.RoomId = 31; Utiliroom.QAID = "Xc0003"; Utiliroom.GUID = "f1f6b58f-b186-4dca-afc4-984daa0d40ad"; Utiliroom.PreventMirroring = false; Utiliroom.category = (RoomCategory)0; Utiliroom.subCategoryBoss = (RoomBossSubCategory)0; Utiliroom.subCategoryNormal = (RoomNormalSubCategory)0; Utiliroom.subCategorySpecial = (RoomSpecialSubCategory)1; Utiliroom.subCategorySecret = (RoomSecretSubCategory)0; Utiliroom.exitData = new PrototypeRoomExitData { exits = new List() }; Utiliroom.pits = new List(); Utiliroom.placedObjects = new List(); Utiliroom.placedObjectPositions = new List(); Utiliroom.eventTriggerAreas = new List(); Utiliroom.roomEvents = new List(0); Utiliroom.overriddenTilesets = (ValidTilesets)0; Utiliroom.prerequisites = new List(); Utiliroom.InvalidInCoop = false; Utiliroom.cullProceduralDecorationOnWeakPlatforms = false; Utiliroom.preventAddedDecoLayering = false; Utiliroom.precludeAllTilemapDrawing = false; Utiliroom.drawPrecludedCeilingTiles = false; Utiliroom.preventBorders = false; Utiliroom.preventFacewallAO = false; Utiliroom.usesCustomAmbientLight = false; Utiliroom.customAmbientLight = Color.white; Utiliroom.ForceAllowDuplicates = false; Utiliroom.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Utiliroom.IsLostWoodsRoom = false; Utiliroom.UseCustomMusic = false; Utiliroom.UseCustomMusicState = false; Utiliroom.CustomMusicEvent = string.Empty; Utiliroom.UseCustomMusicSwitch = false; Utiliroom.CustomMusicSwitch = string.Empty; Utiliroom.overrideRoomVisualTypeForSecretRooms = false; Utiliroom.rewardChestSpawnPosition = IntVector2.One; Utiliroom.Width = 4; Utiliroom.Height = 4; RoomBuilder.AddExitToRoom(Utiliroom, new Vector2(0f, 2f), (Direction)6, (ExitType)0, (ExitGroup)0, ContainsDoor: false); RoomBuilder.AddExitToRoom(Utiliroom, new Vector2(2f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0, ContainsDoor: false); RoomBuilder.AddExitToRoom(Utiliroom, new Vector2(2f, 5f), (Direction)0, (ExitType)0, (ExitGroup)0, ContainsDoor: false); RoomBuilder.AddExitToRoom(Utiliroom, new Vector2(5f, 2f), (Direction)2, (ExitType)0, (ExitGroup)0, ContainsDoor: false); RoomBuilder.GenerateBasicRoomLayout(Utiliroom, (CellType)2, (PitBorderType)0); ((Object)Utiliroom_SpecialPit).name = "Utiliroom (Special Pit)"; Utiliroom_SpecialPit.QAID = "FF" + Random.Range(1000, 9999); Utiliroom_SpecialPit.GUID = Guid.NewGuid().ToString(); Utiliroom_SpecialPit.PreventMirroring = false; Utiliroom_SpecialPit.category = (RoomCategory)0; Utiliroom_SpecialPit.subCategoryBoss = (RoomBossSubCategory)0; Utiliroom_SpecialPit.subCategoryNormal = (RoomNormalSubCategory)0; Utiliroom_SpecialPit.subCategorySpecial = (RoomSpecialSubCategory)1; Utiliroom_SpecialPit.subCategorySecret = (RoomSecretSubCategory)0; Utiliroom_SpecialPit.exitData = new PrototypeRoomExitData { exits = new List() }; Utiliroom_SpecialPit.pits = new List(); Utiliroom_SpecialPit.placedObjects = new List(); Utiliroom_SpecialPit.placedObjectPositions = new List(); Utiliroom_SpecialPit.eventTriggerAreas = new List(); Utiliroom_SpecialPit.roomEvents = new List(0); Utiliroom_SpecialPit.overriddenTilesets = (ValidTilesets)0; Utiliroom_SpecialPit.prerequisites = new List(); Utiliroom_SpecialPit.InvalidInCoop = false; Utiliroom_SpecialPit.cullProceduralDecorationOnWeakPlatforms = false; Utiliroom_SpecialPit.preventAddedDecoLayering = false; Utiliroom_SpecialPit.precludeAllTilemapDrawing = false; Utiliroom_SpecialPit.drawPrecludedCeilingTiles = false; Utiliroom_SpecialPit.preventBorders = false; Utiliroom_SpecialPit.preventFacewallAO = false; Utiliroom_SpecialPit.usesCustomAmbientLight = false; Utiliroom_SpecialPit.customAmbientLight = Color.white; Utiliroom_SpecialPit.ForceAllowDuplicates = false; Utiliroom_SpecialPit.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Utiliroom_SpecialPit.IsLostWoodsRoom = false; Utiliroom_SpecialPit.UseCustomMusic = false; Utiliroom_SpecialPit.UseCustomMusicState = false; Utiliroom_SpecialPit.CustomMusicEvent = string.Empty; Utiliroom_SpecialPit.UseCustomMusicSwitch = false; Utiliroom_SpecialPit.CustomMusicSwitch = string.Empty; Utiliroom_SpecialPit.overrideRoomVisualTypeForSecretRooms = false; Utiliroom_SpecialPit.rewardChestSpawnPosition = new IntVector2(-1, -1); Utiliroom_SpecialPit.Width = 8; Utiliroom_SpecialPit.Height = 8; Utiliroom_SpecialPit.allowFloorDecoration = false; Utiliroom_SpecialPit.additionalObjectLayers = new List(0); RoomBuilder.AddExitToRoom(Utiliroom_SpecialPit, new Vector2(1f, 4f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Utiliroom_SpecialPit, new Vector2(8f, 4f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.GenerateRoomLayout(Utiliroom_SpecialPit, "Utiliroom_SpecialPit_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Utiliroom_Pitfall).name = "Utiliroom (Pitfall)"; Utiliroom_Pitfall.QAID = "FF" + Random.Range(1000, 9999); Utiliroom_Pitfall.GUID = Guid.NewGuid().ToString(); Utiliroom_Pitfall.PreventMirroring = false; Utiliroom_Pitfall.category = (RoomCategory)0; Utiliroom_Pitfall.subCategoryBoss = (RoomBossSubCategory)0; Utiliroom_Pitfall.subCategoryNormal = (RoomNormalSubCategory)0; Utiliroom_Pitfall.subCategorySpecial = (RoomSpecialSubCategory)1; Utiliroom_Pitfall.subCategorySecret = (RoomSecretSubCategory)0; Utiliroom_Pitfall.exitData = new PrototypeRoomExitData { exits = new List() }; Utiliroom_Pitfall.pits = new List(); Utiliroom_Pitfall.placedObjects = new List(); Utiliroom_Pitfall.placedObjectPositions = new List(); Utiliroom_Pitfall.eventTriggerAreas = new List(); Utiliroom_Pitfall.roomEvents = new List(0); Utiliroom_Pitfall.overriddenTilesets = (ValidTilesets)0; Utiliroom_Pitfall.prerequisites = new List(); Utiliroom_Pitfall.InvalidInCoop = false; Utiliroom_Pitfall.cullProceduralDecorationOnWeakPlatforms = false; Utiliroom_Pitfall.preventAddedDecoLayering = false; Utiliroom_Pitfall.precludeAllTilemapDrawing = false; Utiliroom_Pitfall.drawPrecludedCeilingTiles = false; Utiliroom_Pitfall.preventBorders = false; Utiliroom_Pitfall.preventFacewallAO = false; Utiliroom_Pitfall.usesCustomAmbientLight = false; Utiliroom_Pitfall.customAmbientLight = Color.white; Utiliroom_Pitfall.ForceAllowDuplicates = false; Utiliroom_Pitfall.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Utiliroom_Pitfall.IsLostWoodsRoom = false; Utiliroom_Pitfall.UseCustomMusic = false; Utiliroom_Pitfall.UseCustomMusicState = false; Utiliroom_Pitfall.CustomMusicEvent = string.Empty; Utiliroom_Pitfall.UseCustomMusicSwitch = false; Utiliroom_Pitfall.CustomMusicSwitch = string.Empty; Utiliroom_Pitfall.overrideRoomVisualTypeForSecretRooms = false; Utiliroom_Pitfall.rewardChestSpawnPosition = IntVector2.One; Utiliroom_Pitfall.Width = 8; Utiliroom_Pitfall.Height = 8; RoomBuilder.AddExitToRoom(Utiliroom_Pitfall, new Vector2(0f, 4f), (Direction)6, (ExitType)0, (ExitGroup)0, ContainsDoor: false); RoomBuilder.AddExitToRoom(Utiliroom_Pitfall, new Vector2(4f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0, ContainsDoor: false); RoomBuilder.AddExitToRoom(Utiliroom_Pitfall, new Vector2(4f, 9f), (Direction)0, (ExitType)0, (ExitGroup)0, ContainsDoor: false); RoomBuilder.AddExitToRoom(Utiliroom_Pitfall, new Vector2(9f, 4f), (Direction)2, (ExitType)0, (ExitGroup)0, ContainsDoor: false); RoomBuilder.GenerateRoomLayout(Utiliroom_Pitfall, "Utiliroom_Pitfall_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)SecretRewardRoom).name = "Secret Reward Room"; SecretRewardRoom.QAID = "FF" + Random.Range(1000, 9999); SecretRewardRoom.GUID = Guid.NewGuid().ToString(); SecretRewardRoom.PreventMirroring = false; SecretRewardRoom.category = (RoomCategory)0; SecretRewardRoom.subCategoryBoss = (RoomBossSubCategory)0; SecretRewardRoom.subCategoryNormal = (RoomNormalSubCategory)0; SecretRewardRoom.subCategorySpecial = (RoomSpecialSubCategory)1; SecretRewardRoom.subCategorySecret = (RoomSecretSubCategory)0; SecretRewardRoom.exitData = new PrototypeRoomExitData { exits = new List() }; SecretRewardRoom.pits = new List(); SecretRewardRoom.placedObjects = new List(); SecretRewardRoom.placedObjectPositions = new List(); SecretRewardRoom.eventTriggerAreas = new List(); SecretRewardRoom.roomEvents = new List(0); SecretRewardRoom.overriddenTilesets = (ValidTilesets)0; SecretRewardRoom.prerequisites = new List(); SecretRewardRoom.InvalidInCoop = false; SecretRewardRoom.cullProceduralDecorationOnWeakPlatforms = false; SecretRewardRoom.preventAddedDecoLayering = false; SecretRewardRoom.precludeAllTilemapDrawing = false; SecretRewardRoom.drawPrecludedCeilingTiles = false; SecretRewardRoom.preventBorders = false; SecretRewardRoom.preventFacewallAO = false; SecretRewardRoom.usesCustomAmbientLight = false; SecretRewardRoom.customAmbientLight = Color.white; SecretRewardRoom.ForceAllowDuplicates = false; SecretRewardRoom.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; SecretRewardRoom.IsLostWoodsRoom = false; SecretRewardRoom.UseCustomMusic = false; SecretRewardRoom.UseCustomMusicState = false; SecretRewardRoom.CustomMusicEvent = string.Empty; SecretRewardRoom.UseCustomMusicSwitch = false; SecretRewardRoom.CustomMusicSwitch = string.Empty; SecretRewardRoom.overrideRoomVisualTypeForSecretRooms = false; SecretRewardRoom.rewardChestSpawnPosition = new IntVector2(8, 2); SecretRewardRoom.Width = 20; SecretRewardRoom.Height = 66; SecretRewardRoom.usesProceduralDecoration = false; SecretRewardRoom.overrideRoomVisualType = 2; RoomBuilder.AddExitToRoom(SecretRewardRoom, new Vector2(0f, 2f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(SecretRewardRoom, new Vector2(10f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(SecretRewardRoom, new Vector2(21f, 2f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(SecretRewardRoom, new Vector2(0f, 31f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(SecretRewardRoom, new Vector2(21f, 31f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(SecretRewardRoom, new Vector2(0f, 60f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(SecretRewardRoom, new Vector2(21f, 60f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(SecretRewardRoom, new Vector2(10f, 67f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(SecretRewardRoom, new Vector2(8f, 2f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.Teleporter_Gungeon_01, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(SecretRewardRoom, new Vector2(9f, 10f), ExpandPrefabs.EXRatDoor_4xLocks); RoomBuilder.AddObjectToRoom(SecretRewardRoom, new Vector2(9f, 21f), ExpandPrefabs.RatJailDoor); RoomBuilder.AddObjectToRoom(SecretRewardRoom, new Vector2(9f, 26f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.DoorsVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(SecretRewardRoom, new Vector2(9f, 34f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.DoorsVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(SecretRewardRoom, new Vector2(9f, 46f), ExpandPrefabs.RatJailDoor); RoomBuilder.AddObjectToRoom(SecretRewardRoom, new Vector2(9f, 15f), ExpandPrefabs.RatKeyRewardPedestal); RoomBuilder.AddObjectToRoom(SecretRewardRoom, Vector2.one, ExpandPrefabs.West_PuzzleSetupPlacable); RoomBuilder.GenerateRoomLayout(SecretRewardRoom, "Secret_Reward_Room_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)SecretBossRoom).name = "Secret Boss Room"; SecretBossRoom.QAID = "FF" + Random.Range(1000, 9999); SecretBossRoom.GUID = Guid.NewGuid().ToString(); SecretBossRoom.PreventMirroring = false; SecretBossRoom.category = (RoomCategory)3; SecretBossRoom.subCategoryBoss = (RoomBossSubCategory)1; SecretBossRoom.subCategoryNormal = (RoomNormalSubCategory)0; SecretBossRoom.subCategorySpecial = (RoomSpecialSubCategory)1; SecretBossRoom.subCategorySecret = (RoomSecretSubCategory)0; SecretBossRoom.exitData = new PrototypeRoomExitData { exits = new List() }; SecretBossRoom.pits = new List(); SecretBossRoom.placedObjects = new List(); SecretBossRoom.placedObjectPositions = new List(); SecretBossRoom.eventTriggerAreas = new List(); SecretBossRoom.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; SecretBossRoom.overriddenTilesets = (ValidTilesets)0; SecretBossRoom.prerequisites = new List(); SecretBossRoom.InvalidInCoop = false; SecretBossRoom.cullProceduralDecorationOnWeakPlatforms = false; SecretBossRoom.preventAddedDecoLayering = false; SecretBossRoom.precludeAllTilemapDrawing = false; SecretBossRoom.drawPrecludedCeilingTiles = false; SecretBossRoom.preventBorders = false; SecretBossRoom.preventFacewallAO = false; SecretBossRoom.usesCustomAmbientLight = false; SecretBossRoom.customAmbientLight = Color.white; SecretBossRoom.ForceAllowDuplicates = false; SecretBossRoom.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; SecretBossRoom.IsLostWoodsRoom = false; SecretBossRoom.UseCustomMusic = false; SecretBossRoom.UseCustomMusicState = false; SecretBossRoom.CustomMusicEvent = string.Empty; SecretBossRoom.UseCustomMusicSwitch = false; SecretBossRoom.CustomMusicSwitch = string.Empty; SecretBossRoom.overrideRoomVisualTypeForSecretRooms = false; SecretBossRoom.rewardChestSpawnPosition = new IntVector2(18, 20); SecretBossRoom.Width = 36; SecretBossRoom.Height = 30; SecretBossRoom.overrideRoomVisualType = 3; SecretBossRoom.associatedMinimapIcon = ExpandPrefabs.DraGunRoom01.associatedMinimapIcon; RoomBuilder.AddExitToRoom(SecretBossRoom, new Vector2(17f, 0f), (Direction)4, (ExitType)1, (ExitGroup)0, ContainsDoor: true, 3, 4); RoomBuilder.AddExitToRoom(SecretBossRoom, new Vector2(18f, 31f), (Direction)0, (ExitType)2, (ExitGroup)0); RoomBuilder.AddObjectToRoom(SecretBossRoom, Vector2.one, ExpandPrefabs.West_PuzzleSetupPlacable); RoomBuilder.GenerateBasicRoomLayout(SecretBossRoom, (CellType)2, (PitBorderType)0); ((Object)SecretExitRoom).name = "Secret Exit Room"; SecretExitRoom.QAID = "AA" + Random.Range(1000, 9999); SecretExitRoom.GUID = Guid.NewGuid().ToString(); SecretExitRoom.PreventMirroring = false; SecretExitRoom.category = (RoomCategory)8; SecretExitRoom.subCategoryBoss = (RoomBossSubCategory)0; SecretExitRoom.subCategoryNormal = (RoomNormalSubCategory)0; SecretExitRoom.subCategorySpecial = (RoomSpecialSubCategory)1; SecretExitRoom.subCategorySecret = (RoomSecretSubCategory)0; SecretExitRoom.exitData = new PrototypeRoomExitData { exits = new List() }; SecretExitRoom.pits = new List(); SecretExitRoom.placedObjects = new List(); SecretExitRoom.placedObjectPositions = new List(); SecretExitRoom.eventTriggerAreas = new List(); SecretExitRoom.roomEvents = new List(0); SecretExitRoom.overriddenTilesets = (ValidTilesets)0; SecretExitRoom.prerequisites = new List(); SecretExitRoom.InvalidInCoop = false; SecretExitRoom.cullProceduralDecorationOnWeakPlatforms = false; SecretExitRoom.preventAddedDecoLayering = false; SecretExitRoom.precludeAllTilemapDrawing = false; SecretExitRoom.drawPrecludedCeilingTiles = false; SecretExitRoom.preventBorders = false; SecretExitRoom.preventFacewallAO = false; SecretExitRoom.usesCustomAmbientLight = false; SecretExitRoom.customAmbientLight = Color.white; SecretExitRoom.ForceAllowDuplicates = false; SecretExitRoom.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; SecretExitRoom.IsLostWoodsRoom = false; SecretExitRoom.UseCustomMusic = false; SecretExitRoom.UseCustomMusicState = false; SecretExitRoom.CustomMusicEvent = string.Empty; SecretExitRoom.UseCustomMusicSwitch = false; SecretExitRoom.CustomMusicSwitch = string.Empty; SecretExitRoom.overrideRoomVisualTypeForSecretRooms = false; SecretExitRoom.rewardChestSpawnPosition = IntVector2.One; SecretExitRoom.Width = 8; SecretExitRoom.Height = 12; SecretExitRoom.associatedMinimapIcon = ExpandPrefabs.exit_room_basic.associatedMinimapIcon; SecretExitRoom.usesProceduralDecoration = true; SecretExitRoom.usesProceduralLighting = true; RoomBuilder.AddExitToRoom(SecretExitRoom, new Vector2(0f, 2f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(SecretExitRoom, new Vector2(4f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(SecretExitRoom, new Vector2(9f, 2f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(SecretExitRoom, new Vector2(1f, 6f), ExpandPrefabs.ElevatorDeparture); RoomBuilder.AddObjectToRoom(SecretExitRoom, new Vector2(2f, 0f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.Teleporter_Gungeon_01, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(SecretExitRoom, new Vector2(3f, 1f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.Arrival, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.GenerateRoomLayout(SecretExitRoom, "Secret_Exit_Room_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)ThwompCrossingVertical).name = "Thwomp_Crossing_Vertical"; ThwompCrossingVertical.QAID = "FF" + Random.Range(1000, 9999); ThwompCrossingVertical.GUID = Guid.NewGuid().ToString(); ThwompCrossingVertical.PreventMirroring = false; ThwompCrossingVertical.category = (RoomCategory)2; ThwompCrossingVertical.subCategoryBoss = (RoomBossSubCategory)0; ThwompCrossingVertical.subCategoryNormal = (RoomNormalSubCategory)1; ThwompCrossingVertical.subCategorySpecial = (RoomSpecialSubCategory)1; ThwompCrossingVertical.subCategorySecret = (RoomSecretSubCategory)0; ThwompCrossingVertical.exitData = new PrototypeRoomExitData { exits = new List() }; ThwompCrossingVertical.pits = new List(); ThwompCrossingVertical.placedObjects = new List(); ThwompCrossingVertical.placedObjectPositions = new List(); ThwompCrossingVertical.eventTriggerAreas = new List(); ThwompCrossingVertical.roomEvents = new List(0); ThwompCrossingVertical.overriddenTilesets = (ValidTilesets)0; ThwompCrossingVertical.prerequisites = new List(); ThwompCrossingVertical.InvalidInCoop = false; ThwompCrossingVertical.cullProceduralDecorationOnWeakPlatforms = false; ThwompCrossingVertical.preventAddedDecoLayering = false; ThwompCrossingVertical.precludeAllTilemapDrawing = false; ThwompCrossingVertical.drawPrecludedCeilingTiles = false; ThwompCrossingVertical.preventBorders = false; ThwompCrossingVertical.preventFacewallAO = false; ThwompCrossingVertical.usesCustomAmbientLight = false; ThwompCrossingVertical.customAmbientLight = Color.white; ThwompCrossingVertical.ForceAllowDuplicates = false; ThwompCrossingVertical.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; ThwompCrossingVertical.IsLostWoodsRoom = false; ThwompCrossingVertical.UseCustomMusic = false; ThwompCrossingVertical.UseCustomMusicState = false; ThwompCrossingVertical.CustomMusicEvent = string.Empty; ThwompCrossingVertical.UseCustomMusicSwitch = false; ThwompCrossingVertical.CustomMusicSwitch = string.Empty; ThwompCrossingVertical.overrideRoomVisualTypeForSecretRooms = false; ThwompCrossingVertical.rewardChestSpawnPosition = new IntVector2(7, 7); ThwompCrossingVertical.Width = 14; ThwompCrossingVertical.Height = 30; RoomBuilder.AddExitToRoom(ThwompCrossingVertical, new Vector2(7f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(ThwompCrossingVertical, new Vector2(7f, 31f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(ThwompCrossingVertical, new Vector2(11f, 7f), null, null, "ba928393c8ed47819c2c5f593100a5bc"); RoomBuilder.AddObjectToRoom(ThwompCrossingVertical, new Vector2(11f, 16f), null, null, "ba928393c8ed47819c2c5f593100a5bc"); RoomBuilder.AddObjectToRoom(ThwompCrossingVertical, new Vector2(11f, 11f), null, null, "ba928393c8ed47819c2c5f593100a5bc"); RoomBuilder.AddObjectToRoom(ThwompCrossingVertical, new Vector2(11f, 22f), null, null, "ba928393c8ed47819c2c5f593100a5bc"); RoomBuilder.GenerateRoomLayout(ThwompCrossingVertical, "Expand_Thwomp_Crossing_Vertical_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)ThwompCrossingHorizontal).name = "Thwomp_Crossing_Horizontal"; ThwompCrossingHorizontal.QAID = "FF" + Random.Range(1000, 9999); ThwompCrossingHorizontal.GUID = Guid.NewGuid().ToString(); ThwompCrossingHorizontal.PreventMirroring = false; ThwompCrossingHorizontal.category = (RoomCategory)2; ThwompCrossingHorizontal.subCategoryBoss = (RoomBossSubCategory)0; ThwompCrossingHorizontal.subCategoryNormal = (RoomNormalSubCategory)1; ThwompCrossingHorizontal.subCategorySpecial = (RoomSpecialSubCategory)1; ThwompCrossingHorizontal.subCategorySecret = (RoomSecretSubCategory)0; ThwompCrossingHorizontal.exitData = new PrototypeRoomExitData { exits = new List() }; ThwompCrossingHorizontal.pits = new List(); ThwompCrossingHorizontal.placedObjects = new List(); ThwompCrossingHorizontal.placedObjectPositions = new List(); ThwompCrossingHorizontal.eventTriggerAreas = new List(); ThwompCrossingHorizontal.roomEvents = new List(0); ThwompCrossingHorizontal.overriddenTilesets = (ValidTilesets)0; ThwompCrossingHorizontal.prerequisites = new List(); ThwompCrossingHorizontal.InvalidInCoop = false; ThwompCrossingHorizontal.cullProceduralDecorationOnWeakPlatforms = false; ThwompCrossingHorizontal.preventAddedDecoLayering = false; ThwompCrossingHorizontal.precludeAllTilemapDrawing = false; ThwompCrossingHorizontal.drawPrecludedCeilingTiles = false; ThwompCrossingHorizontal.preventBorders = false; ThwompCrossingHorizontal.preventFacewallAO = false; ThwompCrossingHorizontal.usesCustomAmbientLight = false; ThwompCrossingHorizontal.customAmbientLight = Color.white; ThwompCrossingHorizontal.ForceAllowDuplicates = false; ThwompCrossingHorizontal.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; ThwompCrossingHorizontal.IsLostWoodsRoom = false; ThwompCrossingHorizontal.UseCustomMusic = false; ThwompCrossingHorizontal.UseCustomMusicState = false; ThwompCrossingHorizontal.CustomMusicEvent = string.Empty; ThwompCrossingHorizontal.UseCustomMusicSwitch = false; ThwompCrossingHorizontal.CustomMusicSwitch = string.Empty; ThwompCrossingHorizontal.overrideRoomVisualTypeForSecretRooms = false; ThwompCrossingHorizontal.rewardChestSpawnPosition = new IntVector2(1, 12); ThwompCrossingHorizontal.Width = 30; ThwompCrossingHorizontal.Height = 14; RoomBuilder.AddExitToRoom(ThwompCrossingHorizontal, new Vector2(0f, 7f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(ThwompCrossingHorizontal, new Vector2(31f, 7f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(ThwompCrossingHorizontal, new Vector2(7f, 12f), null, null, "ba928393c8ed47819c2c5f593100a5bc"); RoomBuilder.AddObjectToRoom(ThwompCrossingHorizontal, new Vector2(11f, 12f), null, null, "ba928393c8ed47819c2c5f593100a5bc"); RoomBuilder.AddObjectToRoom(ThwompCrossingHorizontal, new Vector2(16f, 12f), null, null, "ba928393c8ed47819c2c5f593100a5bc"); RoomBuilder.AddObjectToRoom(ThwompCrossingHorizontal, new Vector2(21f, 12f), null, null, "ba928393c8ed47819c2c5f593100a5bc"); RoomBuilder.GenerateRoomLayout(ThwompCrossingHorizontal, "Expand_Thwomp_Crossing_Horizontal_Layout", (PitBorderType)0, (CoreDamageTypes)0); ExpandUtility.DuplicateComponent(PuzzleRoom1, ExpandPrefabs.gungeon_checkerboard); ((Object)PuzzleRoom1).name = "Zelda Puzzle Room 1"; PuzzleRoom1.QAID = "FF" + Random.Range(1000, 9999); PuzzleRoom1.GUID = Guid.NewGuid().ToString(); PuzzleRoom1.overrideRoomVisualType = 2; RoomBuilder.AddObjectToRoom(PuzzleRoom1, Vector2.one, ExpandPrefabs.West_PuzzleSetupPlacable); RoomBuilder.GenerateBasicRoomLayout(PuzzleRoom1, (CellType)2, (PitBorderType)0); ExpandUtility.DuplicateComponent(PuzzleRoom2, ExpandPrefabs.gungeon_normal_fightinaroomwithtonsoftraps); ((Object)PuzzleRoom2).name = "Zelda Puzzle Room 2"; PuzzleRoom2.QAID = "FF" + Random.Range(1000, 9999); PuzzleRoom2.GUID = Guid.NewGuid().ToString(); PuzzleRoom2.overrideRoomVisualType = 2; RoomBuilder.AddObjectToRoom(PuzzleRoom2, Vector2.one, ExpandPrefabs.West_PuzzleSetupPlacable); PuzzleRoom2.UpdatePrecalculatedData(); ((Object)PuzzleRoom3).name = "Zelda Puzzle Room 3"; PuzzleRoom3.QAID = "FF" + Random.Range(1000, 9999); PuzzleRoom3.GUID = Guid.NewGuid().ToString(); PuzzleRoom3.PreventMirroring = false; PuzzleRoom3.category = (RoomCategory)2; PuzzleRoom3.subCategoryBoss = (RoomBossSubCategory)0; PuzzleRoom3.subCategoryNormal = (RoomNormalSubCategory)0; PuzzleRoom3.subCategorySecret = (RoomSecretSubCategory)0; PuzzleRoom3.subCategorySpecial = (RoomSpecialSubCategory)1; PuzzleRoom3.exitData = new PrototypeRoomExitData { exits = new List() }; PuzzleRoom3.pits = new List(0); PuzzleRoom3.placedObjects = ExpandPrefabs.gungeon_gauntlet_001.placedObjects; PuzzleRoom3.placedObjectPositions = ExpandPrefabs.gungeon_gauntlet_001.placedObjectPositions; PuzzleRoom3.additionalObjectLayers = ExpandPrefabs.gungeon_gauntlet_001.additionalObjectLayers; PuzzleRoom3.eventTriggerAreas = new List(); PuzzleRoom3.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; PuzzleRoom3.overriddenTilesets = (ValidTilesets)0; PuzzleRoom3.prerequisites = new List(); PuzzleRoom3.InvalidInCoop = false; PuzzleRoom3.cullProceduralDecorationOnWeakPlatforms = false; PuzzleRoom3.preventAddedDecoLayering = false; PuzzleRoom3.precludeAllTilemapDrawing = false; PuzzleRoom3.drawPrecludedCeilingTiles = false; PuzzleRoom3.preventBorders = false; PuzzleRoom3.preventFacewallAO = false; PuzzleRoom3.usesCustomAmbientLight = false; PuzzleRoom3.customAmbientLight = Color.white; PuzzleRoom3.ForceAllowDuplicates = false; PuzzleRoom3.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; PuzzleRoom3.IsLostWoodsRoom = false; PuzzleRoom3.UseCustomMusic = false; PuzzleRoom3.UseCustomMusicState = false; PuzzleRoom3.CustomMusicEvent = string.Empty; PuzzleRoom3.UseCustomMusicSwitch = false; PuzzleRoom3.CustomMusicSwitch = string.Empty; PuzzleRoom3.overrideRoomVisualTypeForSecretRooms = false; PuzzleRoom3.rewardChestSpawnPosition = new IntVector2(-1, -1); PuzzleRoom3.Width = 38; PuzzleRoom3.Height = 22; PuzzleRoom3.overrideRoomVisualType = 2; RoomBuilder.AddExitToRoom(PuzzleRoom3, new Vector2(0f, 10f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(PuzzleRoom3, new Vector2(39f, 10f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(PuzzleRoom3, Vector2.one, ExpandPrefabs.West_PuzzleSetupPlacable); RoomBuilder.GenerateRoomLayout(PuzzleRoom3, "Zelda_Puzzle_Room_3_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)CreepyGlitchRoom).name = "Creepy Glitched Room"; CreepyGlitchRoom.QAID = "FF" + Random.Range(1000, 9999); CreepyGlitchRoom.GUID = Guid.NewGuid().ToString(); CreepyGlitchRoom.PreventMirroring = false; CreepyGlitchRoom.category = (RoomCategory)3; CreepyGlitchRoom.subCategoryBoss = (RoomBossSubCategory)0; CreepyGlitchRoom.subCategoryNormal = (RoomNormalSubCategory)0; CreepyGlitchRoom.subCategorySpecial = (RoomSpecialSubCategory)1; CreepyGlitchRoom.subCategorySecret = (RoomSecretSubCategory)0; CreepyGlitchRoom.exitData = new PrototypeRoomExitData { exits = new List() }; CreepyGlitchRoom.pits = new List(); CreepyGlitchRoom.placedObjects = new List(); CreepyGlitchRoom.placedObjectPositions = new List(); CreepyGlitchRoom.eventTriggerAreas = new List(); CreepyGlitchRoom.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; CreepyGlitchRoom.overriddenTilesets = (ValidTilesets)0; CreepyGlitchRoom.prerequisites = new List(); CreepyGlitchRoom.InvalidInCoop = false; CreepyGlitchRoom.cullProceduralDecorationOnWeakPlatforms = false; CreepyGlitchRoom.preventAddedDecoLayering = false; CreepyGlitchRoom.precludeAllTilemapDrawing = false; CreepyGlitchRoom.drawPrecludedCeilingTiles = false; CreepyGlitchRoom.preventBorders = false; CreepyGlitchRoom.preventFacewallAO = false; CreepyGlitchRoom.usesCustomAmbientLight = false; CreepyGlitchRoom.customAmbientLight = Color.white; CreepyGlitchRoom.ForceAllowDuplicates = false; CreepyGlitchRoom.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; CreepyGlitchRoom.IsLostWoodsRoom = false; CreepyGlitchRoom.UseCustomMusic = false; CreepyGlitchRoom.UseCustomMusicState = false; CreepyGlitchRoom.CustomMusicEvent = string.Empty; CreepyGlitchRoom.UseCustomMusicSwitch = false; CreepyGlitchRoom.CustomMusicSwitch = string.Empty; CreepyGlitchRoom.overrideRoomVisualTypeForSecretRooms = false; CreepyGlitchRoom.rewardChestSpawnPosition = new IntVector2(12, 19); CreepyGlitchRoom.Width = 26; CreepyGlitchRoom.Height = 26; CreepyGlitchRoom.associatedMinimapIcon = ExpandPrefabs.GatlingGullRoom05.associatedMinimapIcon; RoomBuilder.AddExitToRoom(CreepyGlitchRoom, new Vector2(0f, 13f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(CreepyGlitchRoom, new Vector2(27f, 13f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(CreepyGlitchRoom, new Vector2(13f, 1f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(CreepyGlitchRoom, new Vector2(12f, 23f), null, null, "5f0fa34b5a2e44cdab4a06f89bb5c442"); RoomBuilder.GenerateRoomLayout(CreepyGlitchRoom, "Creepy_Glitched_Room_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)CreepyGlitchRoom_Entrance).name = "Creepy Glitched Room Entrance"; CreepyGlitchRoom_Entrance.QAID = "FF" + Random.Range(1000, 9999); CreepyGlitchRoom_Entrance.GUID = Guid.NewGuid().ToString(); CreepyGlitchRoom_Entrance.PreventMirroring = false; CreepyGlitchRoom_Entrance.category = (RoomCategory)5; CreepyGlitchRoom_Entrance.subCategoryBoss = (RoomBossSubCategory)0; CreepyGlitchRoom_Entrance.subCategoryNormal = (RoomNormalSubCategory)0; CreepyGlitchRoom_Entrance.subCategorySpecial = (RoomSpecialSubCategory)1; CreepyGlitchRoom_Entrance.subCategorySecret = (RoomSecretSubCategory)0; CreepyGlitchRoom_Entrance.exitData = new PrototypeRoomExitData { exits = new List() }; CreepyGlitchRoom_Entrance.pits = new List(); CreepyGlitchRoom_Entrance.placedObjects = new List(); CreepyGlitchRoom_Entrance.placedObjectPositions = new List(); CreepyGlitchRoom_Entrance.eventTriggerAreas = new List(); CreepyGlitchRoom_Entrance.roomEvents = new List(0); CreepyGlitchRoom_Entrance.overriddenTilesets = (ValidTilesets)0; CreepyGlitchRoom_Entrance.prerequisites = new List(); CreepyGlitchRoom_Entrance.InvalidInCoop = false; CreepyGlitchRoom_Entrance.cullProceduralDecorationOnWeakPlatforms = false; CreepyGlitchRoom_Entrance.preventAddedDecoLayering = false; CreepyGlitchRoom_Entrance.precludeAllTilemapDrawing = false; CreepyGlitchRoom_Entrance.drawPrecludedCeilingTiles = false; CreepyGlitchRoom_Entrance.preventBorders = false; CreepyGlitchRoom_Entrance.preventFacewallAO = false; CreepyGlitchRoom_Entrance.usesCustomAmbientLight = false; CreepyGlitchRoom_Entrance.customAmbientLight = Color.white; CreepyGlitchRoom_Entrance.ForceAllowDuplicates = false; CreepyGlitchRoom_Entrance.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; CreepyGlitchRoom_Entrance.IsLostWoodsRoom = false; CreepyGlitchRoom_Entrance.UseCustomMusic = false; CreepyGlitchRoom_Entrance.UseCustomMusicState = false; CreepyGlitchRoom_Entrance.CustomMusicEvent = string.Empty; CreepyGlitchRoom_Entrance.UseCustomMusicSwitch = false; CreepyGlitchRoom_Entrance.CustomMusicSwitch = string.Empty; CreepyGlitchRoom_Entrance.overrideRoomVisualTypeForSecretRooms = false; CreepyGlitchRoom_Entrance.rewardChestSpawnPosition = new IntVector2(2, 8); CreepyGlitchRoom_Entrance.Width = 8; CreepyGlitchRoom_Entrance.Height = 16; RoomBuilder.AddExitToRoom(CreepyGlitchRoom_Entrance, new Vector2(9f, 13f), (Direction)2, (ExitType)0, (ExitGroup)0, ContainsDoor: true, 3, 2, ExpandPrefabs.boss_foyertable.includedRooms.elements[1].room.exitData.exits[3].specifiedDoor); RoomBuilder.AddObjectToRoom(CreepyGlitchRoom_Entrance, new Vector2(2f, 4f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.Teleporter_Gungeon_01, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.GenerateBasicRoomLayout(CreepyGlitchRoom_Entrance, (CellType)2, (PitBorderType)0); ((Object)GungeoneerMimicBossRoom).name = "Creepy Mirror Boss Room"; GungeoneerMimicBossRoom.QAID = "FF" + Random.Range(1000, 9999); GungeoneerMimicBossRoom.GUID = Guid.NewGuid().ToString(); GungeoneerMimicBossRoom.PreventMirroring = false; GungeoneerMimicBossRoom.category = (RoomCategory)3; GungeoneerMimicBossRoom.subCategoryBoss = (RoomBossSubCategory)0; GungeoneerMimicBossRoom.subCategoryNormal = (RoomNormalSubCategory)0; GungeoneerMimicBossRoom.subCategorySpecial = (RoomSpecialSubCategory)1; GungeoneerMimicBossRoom.subCategorySecret = (RoomSecretSubCategory)0; GungeoneerMimicBossRoom.exitData = new PrototypeRoomExitData { exits = new List() }; GungeoneerMimicBossRoom.pits = new List(); GungeoneerMimicBossRoom.placedObjects = new List(); GungeoneerMimicBossRoom.placedObjectPositions = new List(); GungeoneerMimicBossRoom.eventTriggerAreas = new List(); GungeoneerMimicBossRoom.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; GungeoneerMimicBossRoom.overriddenTilesets = (ValidTilesets)0; GungeoneerMimicBossRoom.prerequisites = new List(); GungeoneerMimicBossRoom.InvalidInCoop = false; GungeoneerMimicBossRoom.cullProceduralDecorationOnWeakPlatforms = false; GungeoneerMimicBossRoom.preventAddedDecoLayering = false; GungeoneerMimicBossRoom.precludeAllTilemapDrawing = false; GungeoneerMimicBossRoom.drawPrecludedCeilingTiles = false; GungeoneerMimicBossRoom.preventBorders = false; GungeoneerMimicBossRoom.preventFacewallAO = false; GungeoneerMimicBossRoom.usesCustomAmbientLight = false; GungeoneerMimicBossRoom.customAmbientLight = Color.white; GungeoneerMimicBossRoom.ForceAllowDuplicates = false; GungeoneerMimicBossRoom.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; GungeoneerMimicBossRoom.IsLostWoodsRoom = false; GungeoneerMimicBossRoom.UseCustomMusic = false; GungeoneerMimicBossRoom.UseCustomMusicState = false; GungeoneerMimicBossRoom.CustomMusicEvent = string.Empty; GungeoneerMimicBossRoom.UseCustomMusicSwitch = false; GungeoneerMimicBossRoom.CustomMusicSwitch = string.Empty; GungeoneerMimicBossRoom.overrideRoomVisualTypeForSecretRooms = false; GungeoneerMimicBossRoom.rewardChestSpawnPosition = new IntVector2(13, 25); GungeoneerMimicBossRoom.Width = 32; GungeoneerMimicBossRoom.Height = 32; GungeoneerMimicBossRoom.overrideRoomVisualType = 2; GungeoneerMimicBossRoom.associatedMinimapIcon = ExpandPrefabs.GatlingGullRoom05.associatedMinimapIcon; RoomBuilder.AddExitToRoom(GungeoneerMimicBossRoom, new Vector2(16f, 33f), (Direction)0, (ExitType)2, (ExitGroup)0); RoomBuilder.AddExitToRoom(GungeoneerMimicBossRoom, new Vector2(15f, 0f), (Direction)4, (ExitType)1, (ExitGroup)0, ContainsDoor: true, 3, 4); RoomBuilder.AddObjectToRoom(GungeoneerMimicBossRoom, new Vector2(16f, 29f), null, null, "5f0fa34b5a2e44cdab4a06f89bb5c442"); RoomBuilder.GenerateRoomLayout(GungeoneerMimicBossRoom, "Creepy_MirrorBoss_Room_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Explode).name = "Expand TurtleMelon Explode"; Expand_Explode.QAID = "FF" + Random.Range(1000, 9999); Expand_Explode.GUID = Guid.NewGuid().ToString(); Expand_Explode.PreventMirroring = false; Expand_Explode.category = (RoomCategory)2; Expand_Explode.subCategoryBoss = (RoomBossSubCategory)0; Expand_Explode.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Explode.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Explode.subCategorySecret = (RoomSecretSubCategory)0; Expand_Explode.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Explode.pits = new List(); Expand_Explode.placedObjects = new List(); Expand_Explode.placedObjectPositions = new List(); Expand_Explode.eventTriggerAreas = new List(); Expand_Explode.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Explode.overriddenTilesets = (ValidTilesets)0; Expand_Explode.prerequisites = new List(); Expand_Explode.InvalidInCoop = false; Expand_Explode.cullProceduralDecorationOnWeakPlatforms = false; Expand_Explode.preventAddedDecoLayering = false; Expand_Explode.precludeAllTilemapDrawing = false; Expand_Explode.drawPrecludedCeilingTiles = false; Expand_Explode.preventBorders = false; Expand_Explode.preventFacewallAO = false; Expand_Explode.usesCustomAmbientLight = false; Expand_Explode.customAmbientLight = Color.white; Expand_Explode.ForceAllowDuplicates = false; Expand_Explode.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Explode.IsLostWoodsRoom = false; Expand_Explode.UseCustomMusic = false; Expand_Explode.UseCustomMusicState = false; Expand_Explode.CustomMusicEvent = string.Empty; Expand_Explode.UseCustomMusicSwitch = false; Expand_Explode.CustomMusicSwitch = string.Empty; Expand_Explode.overrideRoomVisualTypeForSecretRooms = false; Expand_Explode.rewardChestSpawnPosition = new IntVector2(6, 14); Expand_Explode.Width = 28; Expand_Explode.Height = 21; PrototypeDungeonRoom expand_Explode = Expand_Explode; list9 = new List(); List list13 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "4d37ce3d666b4ddda8039929225b7ede", contentsBasePosition = new Vector2(15f, 16f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "0239c0680f9f467dbe5c4aab7dd1eca6", contentsBasePosition = new Vector2(4f, 6f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "4d37ce3d666b4ddda8039929225b7ede", contentsBasePosition = new Vector2(23f, 3f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(15f, 16f), new Vector2(4f, 6f), new Vector2(23f, 3f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 4f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list13.Add(val10); expand_Explode.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_Explode, new Vector2(0f, 10f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Explode, new Vector2(29f, 10f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Explode, new Vector2(14f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Explode, new Vector2(14f, 22f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Explode, new Vector2(17f, 17f), ExpandObjectDatabase.ExplodyBarrel); RoomBuilder.AddObjectToRoom(Expand_Explode, new Vector2(8f, 6f), ExpandObjectDatabase.ExplodyBarrel); RoomBuilder.AddObjectToRoom(Expand_Explode, new Vector2(4f, 9f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Explode, new Vector2(4f, 11.5f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Explode, new Vector2(6f, 19f), null, null, "206405acad4d4c33aac6717d184dc8d4"); RoomBuilder.AddObjectToRoom(Expand_Explode, new Vector2(23f, 3f), null, null, "ed37fa13e0fa4fcf8239643957c51293"); RoomBuilder.AddObjectToRoom(Expand_Explode, new Vector2(7f, 11f), null, null, "cf2b7021eac44e3f95af07db9a7c442c"); RoomBuilder.GenerateRoomLayout(Expand_Explode, "Expand_TurtleMelon_Explode_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_C_Hub).name = "Expand TurtleMelon C Hub"; Expand_C_Hub.QAID = "FF" + Random.Range(1000, 9999); Expand_C_Hub.GUID = Guid.NewGuid().ToString(); Expand_C_Hub.PreventMirroring = false; Expand_C_Hub.category = (RoomCategory)1; Expand_C_Hub.subCategoryBoss = (RoomBossSubCategory)0; Expand_C_Hub.subCategoryNormal = (RoomNormalSubCategory)0; Expand_C_Hub.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_C_Hub.subCategorySecret = (RoomSecretSubCategory)0; Expand_C_Hub.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_C_Hub.pits = new List(); Expand_C_Hub.placedObjects = new List(); Expand_C_Hub.placedObjectPositions = new List(); Expand_C_Hub.eventTriggerAreas = new List(); Expand_C_Hub.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_C_Hub.overriddenTilesets = (ValidTilesets)0; Expand_C_Hub.prerequisites = new List(); Expand_C_Hub.InvalidInCoop = false; Expand_C_Hub.cullProceduralDecorationOnWeakPlatforms = false; Expand_C_Hub.preventAddedDecoLayering = false; Expand_C_Hub.precludeAllTilemapDrawing = false; Expand_C_Hub.drawPrecludedCeilingTiles = false; Expand_C_Hub.preventBorders = false; Expand_C_Hub.preventFacewallAO = false; Expand_C_Hub.usesCustomAmbientLight = false; Expand_C_Hub.customAmbientLight = Color.white; Expand_C_Hub.ForceAllowDuplicates = false; Expand_C_Hub.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_C_Hub.IsLostWoodsRoom = false; Expand_C_Hub.UseCustomMusic = false; Expand_C_Hub.UseCustomMusicState = false; Expand_C_Hub.CustomMusicEvent = string.Empty; Expand_C_Hub.UseCustomMusicSwitch = false; Expand_C_Hub.CustomMusicSwitch = string.Empty; Expand_C_Hub.overrideRoomVisualTypeForSecretRooms = false; Expand_C_Hub.rewardChestSpawnPosition = new IntVector2(14, 14); Expand_C_Hub.Width = 40; Expand_C_Hub.Height = 40; PrototypeDungeonRoom expand_C_Hub = Expand_C_Hub; list9 = new List(); List list14 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "4db03291a12144d69fe940d5a01de376", contentsBasePosition = new Vector2(20f, 2f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "4db03291a12144d69fe940d5a01de376", contentsBasePosition = new Vector2(20f, 37f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "6b7ef9e5d05b4f96b04f05ef4a0d1b18", contentsBasePosition = new Vector2(3f, 20f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "6b7ef9e5d05b4f96b04f05ef4a0d1b18", contentsBasePosition = new Vector2(36f, 20f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(20f, 2f), new Vector2(20f, 37f), new Vector2(3f, 20f), new Vector2(36f, 20f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 4f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list14.Add(val10); expand_C_Hub.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_C_Hub, new Vector2(0f, 20f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_C_Hub, new Vector2(41f, 20f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_C_Hub, new Vector2(7f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_C_Hub, new Vector2(30f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_C_Hub, new Vector2(7f, 41f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_C_Hub, new Vector2(30f, 41f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_C_Hub, new Vector2(18f, 14f), null, ExpandPrefabs.Teleporter_Gungeon_01.GetComponent()); RoomBuilder.AddObjectToRoom(Expand_C_Hub, new Vector2(20f, 2f), null, null, "ec8ea75b557d4e7b8ceeaacdf6f8238c"); RoomBuilder.AddObjectToRoom(Expand_C_Hub, new Vector2(20f, 37f), null, null, "ec8ea75b557d4e7b8ceeaacdf6f8238c"); RoomBuilder.AddObjectToRoom(Expand_C_Hub, new Vector2(5f, 20f), null, null, "ed37fa13e0fa4fcf8239643957c51293"); RoomBuilder.AddObjectToRoom(Expand_C_Hub, new Vector2(33f, 20f), null, null, "ed37fa13e0fa4fcf8239643957c51293"); RoomBuilder.GenerateRoomLayout(Expand_C_Hub, "Expand_TurtleMelon_C_Hub_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_C_Gap).name = "Expand TurtleMelon C Gap"; Expand_C_Gap.QAID = "FF" + Random.Range(1000, 9999); Expand_C_Gap.GUID = Guid.NewGuid().ToString(); Expand_C_Gap.PreventMirroring = false; Expand_C_Gap.category = (RoomCategory)2; Expand_C_Gap.subCategoryBoss = (RoomBossSubCategory)0; Expand_C_Gap.subCategoryNormal = (RoomNormalSubCategory)0; Expand_C_Gap.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_C_Gap.subCategorySecret = (RoomSecretSubCategory)0; Expand_C_Gap.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_C_Gap.pits = new List(); Expand_C_Gap.placedObjects = new List(); Expand_C_Gap.placedObjectPositions = new List(); Expand_C_Gap.eventTriggerAreas = new List(); Expand_C_Gap.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_C_Gap.overriddenTilesets = (ValidTilesets)0; Expand_C_Gap.prerequisites = new List(); Expand_C_Gap.InvalidInCoop = false; Expand_C_Gap.cullProceduralDecorationOnWeakPlatforms = false; Expand_C_Gap.preventAddedDecoLayering = false; Expand_C_Gap.precludeAllTilemapDrawing = false; Expand_C_Gap.drawPrecludedCeilingTiles = false; Expand_C_Gap.preventBorders = false; Expand_C_Gap.preventFacewallAO = false; Expand_C_Gap.usesCustomAmbientLight = false; Expand_C_Gap.customAmbientLight = Color.white; Expand_C_Gap.ForceAllowDuplicates = false; Expand_C_Gap.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_C_Gap.IsLostWoodsRoom = false; Expand_C_Gap.UseCustomMusic = false; Expand_C_Gap.UseCustomMusicState = false; Expand_C_Gap.CustomMusicEvent = string.Empty; Expand_C_Gap.UseCustomMusicSwitch = false; Expand_C_Gap.CustomMusicSwitch = string.Empty; Expand_C_Gap.overrideRoomVisualTypeForSecretRooms = false; Expand_C_Gap.rewardChestSpawnPosition = new IntVector2(23, 9); Expand_C_Gap.Width = 28; Expand_C_Gap.Height = 21; PrototypeDungeonRoom expand_C_Gap = Expand_C_Gap; list9 = new List(); List list15 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "70216cae6c1346309d86d4a0b4603045", contentsBasePosition = new Vector2(24f, 2f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "70216cae6c1346309d86d4a0b4603045", contentsBasePosition = new Vector2(24f, 18f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(24f, 2f), new Vector2(24f, 18f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 4f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list15.Add(val10); List list16 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "6b7ef9e5d05b4f96b04f05ef4a0d1b18", contentsBasePosition = new Vector2(6f, 6f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "6b7ef9e5d05b4f96b04f05ef4a0d1b18", contentsBasePosition = new Vector2(6f, 14f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(6f, 6f), new Vector2(6f, 14f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 4f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list16.Add(val10); expand_C_Gap.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_C_Gap, new Vector2(0f, 1f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_C_Gap, new Vector2(0f, 20f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_C_Gap, new Vector2(29f, 10f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_C_Gap, new Vector2(14f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_C_Gap, new Vector2(14f, 22f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_C_Gap, new Vector2(9f, 1f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_C_Gap, new Vector2(9f, 19f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_C_Gap, new Vector2(13f, 6f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_C_Gap, new Vector2(13f, 14f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_C_Gap, new Vector2(4f, 7f), null, null, "8bb5578fba374e8aae8e10b754e61d62"); RoomBuilder.AddObjectToRoom(Expand_C_Gap, new Vector2(3f, 13f), null, null, "8bb5578fba374e8aae8e10b754e61d62"); RoomBuilder.GenerateRoomLayout(Expand_C_Gap, "Expand_TurtleMelon_C_Gap_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_ChainGap).name = "Expand TurtleMelon Chain Gap"; Expand_ChainGap.QAID = "FF" + Random.Range(1000, 9999); Expand_ChainGap.GUID = Guid.NewGuid().ToString(); Expand_ChainGap.PreventMirroring = false; Expand_ChainGap.category = (RoomCategory)2; Expand_ChainGap.subCategoryBoss = (RoomBossSubCategory)0; Expand_ChainGap.subCategoryNormal = (RoomNormalSubCategory)0; Expand_ChainGap.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_ChainGap.subCategorySecret = (RoomSecretSubCategory)0; Expand_ChainGap.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_ChainGap.pits = new List(); Expand_ChainGap.placedObjects = new List(); Expand_ChainGap.placedObjectPositions = new List(); Expand_ChainGap.eventTriggerAreas = new List(); Expand_ChainGap.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_ChainGap.overriddenTilesets = (ValidTilesets)0; Expand_ChainGap.prerequisites = new List(); Expand_ChainGap.InvalidInCoop = false; Expand_ChainGap.cullProceduralDecorationOnWeakPlatforms = false; Expand_ChainGap.preventAddedDecoLayering = false; Expand_ChainGap.precludeAllTilemapDrawing = false; Expand_ChainGap.drawPrecludedCeilingTiles = false; Expand_ChainGap.preventBorders = false; Expand_ChainGap.preventFacewallAO = false; Expand_ChainGap.usesCustomAmbientLight = false; Expand_ChainGap.customAmbientLight = Color.white; Expand_ChainGap.ForceAllowDuplicates = false; Expand_ChainGap.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_ChainGap.IsLostWoodsRoom = false; Expand_ChainGap.UseCustomMusic = false; Expand_ChainGap.UseCustomMusicState = false; Expand_ChainGap.CustomMusicEvent = string.Empty; Expand_ChainGap.UseCustomMusicSwitch = false; Expand_ChainGap.CustomMusicSwitch = string.Empty; Expand_ChainGap.overrideRoomVisualTypeForSecretRooms = false; Expand_ChainGap.rewardChestSpawnPosition = new IntVector2(12, 18); Expand_ChainGap.Width = 28; Expand_ChainGap.Height = 21; Expand_ChainGap.additionalObjectLayers = new List(0); RoomBuilder.AddExitToRoom(Expand_ChainGap, new Vector2(0f, 10f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_ChainGap, new Vector2(29f, 10f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_ChainGap, new Vector2(14f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_ChainGap, new Vector2(14f, 22f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_ChainGap, new Vector2(13.25f, 3f), ExpandObjectDatabase.ExplodyBarrel); RoomBuilder.AddObjectToRoom(Expand_ChainGap, new Vector2(13.25f, 17f), ExpandObjectDatabase.ExplodyBarrel); RoomBuilder.AddObjectToRoom(Expand_ChainGap, new Vector2(4f, 9f), ExpandObjectDatabase.ExplodyBarrel); RoomBuilder.AddObjectToRoom(Expand_ChainGap, new Vector2(22f, 9f), ExpandObjectDatabase.ExplodyBarrel); RoomBuilder.AddObjectToRoom(Expand_ChainGap, new Vector2(9f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_ChainGap, new Vector2(16f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_ChainGap, new Vector2(9f, 17f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_ChainGap, new Vector2(16f, 17f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_ChainGap, new Vector2(4f, 6f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_ChainGap, new Vector2(4f, 11f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_ChainGap, new Vector2(22f, 6f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_ChainGap, new Vector2(22f, 11f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_ChainGap, new Vector2(13f, 8f), null, null, "463d16121f884984abe759de38418e48"); RoomBuilder.AddObjectToRoom(Expand_ChainGap, new Vector2(13f, 12f), null, null, "463d16121f884984abe759de38418e48"); RoomBuilder.GenerateRoomLayout(Expand_ChainGap, "Expand_TurtleMelon_Chain_Gap_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Challange1).name = "Expand TurtleMelon Challenge 1"; Expand_Challange1.QAID = "FF" + Random.Range(1000, 9999); Expand_Challange1.GUID = Guid.NewGuid().ToString(); Expand_Challange1.PreventMirroring = false; Expand_Challange1.category = (RoomCategory)0; Expand_Challange1.subCategoryBoss = (RoomBossSubCategory)0; Expand_Challange1.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Challange1.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Challange1.subCategorySecret = (RoomSecretSubCategory)0; Expand_Challange1.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Challange1.pits = new List(); Expand_Challange1.placedObjects = new List(); Expand_Challange1.placedObjectPositions = new List(); Expand_Challange1.eventTriggerAreas = new List(); Expand_Challange1.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Challange1.overriddenTilesets = (ValidTilesets)0; Expand_Challange1.prerequisites = new List(); Expand_Challange1.InvalidInCoop = false; Expand_Challange1.cullProceduralDecorationOnWeakPlatforms = false; Expand_Challange1.preventAddedDecoLayering = false; Expand_Challange1.precludeAllTilemapDrawing = false; Expand_Challange1.drawPrecludedCeilingTiles = false; Expand_Challange1.preventBorders = false; Expand_Challange1.preventFacewallAO = false; Expand_Challange1.usesCustomAmbientLight = false; Expand_Challange1.customAmbientLight = Color.white; Expand_Challange1.ForceAllowDuplicates = false; Expand_Challange1.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Challange1.IsLostWoodsRoom = false; Expand_Challange1.UseCustomMusic = false; Expand_Challange1.UseCustomMusicState = false; Expand_Challange1.CustomMusicEvent = string.Empty; Expand_Challange1.UseCustomMusicSwitch = false; Expand_Challange1.CustomMusicSwitch = string.Empty; Expand_Challange1.overrideRoomVisualTypeForSecretRooms = false; Expand_Challange1.rewardChestSpawnPosition = new IntVector2(18, 3); Expand_Challange1.Width = 40; Expand_Challange1.Height = 40; PrototypeDungeonRoom expand_Challange = Expand_Challange1; list9 = new List(); List list17 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "699cd24270af4cd183d671090d8323a1", contentsBasePosition = new Vector2(23f, 30f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "a446c626b56d4166915a4e29869737fd", contentsBasePosition = new Vector2(24f, 33f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(23f, 30f), new Vector2(24f, 33f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 7f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)30; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list17.Add(val10); expand_Challange.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_Challange1, new Vector2(19f, 0f), (Direction)4, (ExitType)1, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Challange1, new Vector2(4f, 40f), (Direction)0, (ExitType)2, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Challange1, new Vector2(3f, 35f), null, null, "463d16121f884984abe759de38418e48"); RoomBuilder.AddObjectToRoom(Expand_Challange1, new Vector2(4f, 38f), null, null, "4db03291a12144d69fe940d5a01de376"); RoomBuilder.AddObjectToRoom(Expand_Challange1, new Vector2(20f, 22f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.GenerateRoomLayout(Expand_Challange1, "Expand_TurtleMelon_Challenge_1_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Pit_Line).name = "Expand TurtleMelon Pit Line"; Expand_Pit_Line.QAID = "FF" + Random.Range(1000, 9999); Expand_Pit_Line.GUID = Guid.NewGuid().ToString(); Expand_Pit_Line.PreventMirroring = false; Expand_Pit_Line.category = (RoomCategory)2; Expand_Pit_Line.subCategoryBoss = (RoomBossSubCategory)0; Expand_Pit_Line.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Pit_Line.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Pit_Line.subCategorySecret = (RoomSecretSubCategory)0; Expand_Pit_Line.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Pit_Line.pits = new List(); Expand_Pit_Line.placedObjects = new List(); Expand_Pit_Line.placedObjectPositions = new List(); Expand_Pit_Line.eventTriggerAreas = new List(); Expand_Pit_Line.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Pit_Line.overriddenTilesets = (ValidTilesets)0; Expand_Pit_Line.prerequisites = new List(); Expand_Pit_Line.InvalidInCoop = false; Expand_Pit_Line.cullProceduralDecorationOnWeakPlatforms = false; Expand_Pit_Line.preventAddedDecoLayering = false; Expand_Pit_Line.precludeAllTilemapDrawing = false; Expand_Pit_Line.drawPrecludedCeilingTiles = false; Expand_Pit_Line.preventBorders = false; Expand_Pit_Line.preventFacewallAO = false; Expand_Pit_Line.usesCustomAmbientLight = false; Expand_Pit_Line.customAmbientLight = Color.white; Expand_Pit_Line.ForceAllowDuplicates = false; Expand_Pit_Line.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Pit_Line.IsLostWoodsRoom = false; Expand_Pit_Line.UseCustomMusic = false; Expand_Pit_Line.UseCustomMusicState = false; Expand_Pit_Line.CustomMusicEvent = string.Empty; Expand_Pit_Line.UseCustomMusicSwitch = false; Expand_Pit_Line.CustomMusicSwitch = string.Empty; Expand_Pit_Line.overrideRoomVisualTypeForSecretRooms = false; Expand_Pit_Line.rewardChestSpawnPosition = new IntVector2(10, 2); Expand_Pit_Line.Width = 22; Expand_Pit_Line.Height = 30; Expand_Pit_Line.additionalObjectLayers = new List(0); RoomBuilder.AddExitToRoom(Expand_Pit_Line, new Vector2(0f, 15f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Pit_Line, new Vector2(23f, 15f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Pit_Line, new Vector2(11f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Pit_Line, new Vector2(11f, 31f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Pit_Line, new Vector2(10f, 2f), null, null, "88b6b6a93d4b4234a67844ef4728382c"); RoomBuilder.AddObjectToRoom(Expand_Pit_Line, new Vector2(10f, 27f), null, null, "88b6b6a93d4b4234a67844ef4728382c"); RoomBuilder.AddObjectToRoom(Expand_Pit_Line, new Vector2(5f, 14f), null, null, "6b7ef9e5d05b4f96b04f05ef4a0d1b18"); RoomBuilder.AddObjectToRoom(Expand_Pit_Line, new Vector2(16f, 7f), null, null, "6b7ef9e5d05b4f96b04f05ef4a0d1b18"); RoomBuilder.AddObjectToRoom(Expand_Pit_Line, new Vector2(16f, 22f), null, null, "6b7ef9e5d05b4f96b04f05ef4a0d1b18"); RoomBuilder.GenerateRoomLayout(Expand_Pit_Line, "Expand_TurtleMelon_Pit_Line_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Singer_Gap).name = "Expand TurtleMelon Singer Gap"; Expand_Singer_Gap.QAID = "FF" + Random.Range(1000, 9999); Expand_Singer_Gap.GUID = Guid.NewGuid().ToString(); Expand_Singer_Gap.PreventMirroring = false; Expand_Singer_Gap.category = (RoomCategory)2; Expand_Singer_Gap.subCategoryBoss = (RoomBossSubCategory)0; Expand_Singer_Gap.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Singer_Gap.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Singer_Gap.subCategorySecret = (RoomSecretSubCategory)0; Expand_Singer_Gap.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Singer_Gap.pits = new List(); Expand_Singer_Gap.placedObjects = new List(); Expand_Singer_Gap.placedObjectPositions = new List(); Expand_Singer_Gap.eventTriggerAreas = new List(); Expand_Singer_Gap.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Singer_Gap.overriddenTilesets = (ValidTilesets)0; Expand_Singer_Gap.prerequisites = new List(); Expand_Singer_Gap.InvalidInCoop = false; Expand_Singer_Gap.cullProceduralDecorationOnWeakPlatforms = false; Expand_Singer_Gap.preventAddedDecoLayering = false; Expand_Singer_Gap.precludeAllTilemapDrawing = false; Expand_Singer_Gap.drawPrecludedCeilingTiles = false; Expand_Singer_Gap.preventBorders = false; Expand_Singer_Gap.preventFacewallAO = false; Expand_Singer_Gap.usesCustomAmbientLight = false; Expand_Singer_Gap.customAmbientLight = Color.white; Expand_Singer_Gap.ForceAllowDuplicates = false; Expand_Singer_Gap.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Singer_Gap.IsLostWoodsRoom = false; Expand_Singer_Gap.UseCustomMusic = false; Expand_Singer_Gap.UseCustomMusicState = false; Expand_Singer_Gap.CustomMusicEvent = string.Empty; Expand_Singer_Gap.UseCustomMusicSwitch = false; Expand_Singer_Gap.CustomMusicSwitch = string.Empty; Expand_Singer_Gap.overrideRoomVisualTypeForSecretRooms = false; Expand_Singer_Gap.rewardChestSpawnPosition = new IntVector2(6, 4); Expand_Singer_Gap.Width = 30; Expand_Singer_Gap.Height = 26; PrototypeDungeonRoom expand_Singer_Gap = Expand_Singer_Gap; list9 = new List(); List list18 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "463d16121f884984abe759de38418e48", contentsBasePosition = new Vector2(7f, 15f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "2d4f8b5404614e7d8b235006acde427a", contentsBasePosition = new Vector2(9f, 23f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "2feb50a6a40f4f50982e89fd276f6f15", contentsBasePosition = new Vector2(25f, 22f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(7f, 15f), new Vector2(9f, 23f), new Vector2(25f, 22f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list18.Add(val10); expand_Singer_Gap.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_Singer_Gap, new Vector2(31f, 14f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Singer_Gap, new Vector2(11f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Singer_Gap, new Vector2(11f, 26f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Singer_Gap, new Vector2(3f, 2f), null, null, "6b7ef9e5d05b4f96b04f05ef4a0d1b18"); RoomBuilder.AddObjectToRoom(Expand_Singer_Gap, new Vector2(19f, 2f), null, null, "6b7ef9e5d05b4f96b04f05ef4a0d1b18"); RoomBuilder.AddObjectToRoom(Expand_Singer_Gap, new Vector2(23f, 10f), null, null, "128db2f0781141bcb505d8f00f9e4d47"); RoomBuilder.AddObjectToRoom(Expand_Singer_Gap, new Vector2(23f, 19f), null, null, "128db2f0781141bcb505d8f00f9e4d47"); RoomBuilder.AddObjectToRoom(Expand_Singer_Gap, new Vector2(23f, 15f), null, null, "b54d89f9e802455cbb2b8a96a31e8259"); RoomBuilder.AddObjectToRoom(Expand_Singer_Gap, new Vector2(10f, 23f), null, null, "b54d89f9e802455cbb2b8a96a31e8259"); RoomBuilder.AddObjectToRoom(Expand_Singer_Gap, new Vector2(10f, 17f), null, null, "cf2b7021eac44e3f95af07db9a7c442c"); RoomBuilder.GenerateRoomLayout(Expand_Singer_Gap, "Expand_TurtleMelon_Singer_Gap_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Flying_Gap).name = "Expand TurtleMelon Flying Gap"; Expand_Flying_Gap.QAID = "FF" + Random.Range(1000, 9999); Expand_Flying_Gap.GUID = Guid.NewGuid().ToString(); Expand_Flying_Gap.PreventMirroring = false; Expand_Flying_Gap.category = (RoomCategory)2; Expand_Flying_Gap.subCategoryBoss = (RoomBossSubCategory)0; Expand_Flying_Gap.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Flying_Gap.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Flying_Gap.subCategorySecret = (RoomSecretSubCategory)0; Expand_Flying_Gap.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Flying_Gap.pits = new List(); Expand_Flying_Gap.placedObjects = new List(); Expand_Flying_Gap.placedObjectPositions = new List(); Expand_Flying_Gap.eventTriggerAreas = new List(); Expand_Flying_Gap.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Flying_Gap.overriddenTilesets = (ValidTilesets)0; Expand_Flying_Gap.prerequisites = new List(); Expand_Flying_Gap.InvalidInCoop = false; Expand_Flying_Gap.cullProceduralDecorationOnWeakPlatforms = false; Expand_Flying_Gap.preventAddedDecoLayering = false; Expand_Flying_Gap.precludeAllTilemapDrawing = false; Expand_Flying_Gap.drawPrecludedCeilingTiles = false; Expand_Flying_Gap.preventBorders = false; Expand_Flying_Gap.preventFacewallAO = false; Expand_Flying_Gap.usesCustomAmbientLight = false; Expand_Flying_Gap.customAmbientLight = Color.white; Expand_Flying_Gap.ForceAllowDuplicates = false; Expand_Flying_Gap.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Flying_Gap.IsLostWoodsRoom = false; Expand_Flying_Gap.UseCustomMusic = false; Expand_Flying_Gap.UseCustomMusicState = false; Expand_Flying_Gap.CustomMusicEvent = string.Empty; Expand_Flying_Gap.UseCustomMusicSwitch = false; Expand_Flying_Gap.CustomMusicSwitch = string.Empty; Expand_Flying_Gap.overrideRoomVisualTypeForSecretRooms = false; Expand_Flying_Gap.rewardChestSpawnPosition = new IntVector2(12, 19); Expand_Flying_Gap.Width = 28; Expand_Flying_Gap.Height = 21; PrototypeDungeonRoom expand_Flying_Gap = Expand_Flying_Gap; list9 = new List(); List list19 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "0239c0680f9f467dbe5c4aab7dd1eca6", contentsBasePosition = new Vector2(23f, 6f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "c0260c286c8d4538a697c5bf24976ccf", contentsBasePosition = new Vector2(4f, 17f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(23f, 6f), new Vector2(4f, 17f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list19.Add(val10); expand_Flying_Gap.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_Flying_Gap, new Vector2(0f, 6f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Flying_Gap, new Vector2(29f, 6f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Flying_Gap, new Vector2(3f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Flying_Gap, new Vector2(25f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Flying_Gap, new Vector2(14f, 22f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Flying_Gap, new Vector2(10f, 6f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Flying_Gap, new Vector2(12f, 6f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Flying_Gap, new Vector2(14f, 6f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Flying_Gap, new Vector2(18f, 4f), null, null, "b54d89f9e802455cbb2b8a96a31e8259"); RoomBuilder.AddObjectToRoom(Expand_Flying_Gap, new Vector2(18f, 4f), null, null, "b54d89f9e802455cbb2b8a96a31e8259"); RoomBuilder.AddObjectToRoom(Expand_Flying_Gap, new Vector2(18f, 23f), null, null, "88b6b6a93d4b4234a67844ef4728382c"); RoomBuilder.AddObjectToRoom(Expand_Flying_Gap, new Vector2(13f, 3f), null, null, "a400523e535f41ac80a43ff6b06dc0bf"); RoomBuilder.AddObjectToRoom(Expand_Flying_Gap, new Vector2(13f, 10f), null, null, "6f22935656c54ccfb89fca30ad663a64"); RoomBuilder.GenerateRoomLayout(Expand_Flying_Gap, "Expand_TurtleMelon_Flying_Gap_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Battle).name = "Expand TurtleMelon Battle Hub"; Expand_Battle.QAID = "FF" + Random.Range(1000, 9999); Expand_Battle.GUID = Guid.NewGuid().ToString(); Expand_Battle.PreventMirroring = false; Expand_Battle.category = (RoomCategory)1; Expand_Battle.subCategoryBoss = (RoomBossSubCategory)0; Expand_Battle.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Battle.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Battle.subCategorySecret = (RoomSecretSubCategory)0; Expand_Battle.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Battle.pits = new List(); Expand_Battle.placedObjects = new List(); Expand_Battle.placedObjectPositions = new List(); Expand_Battle.eventTriggerAreas = new List(); Expand_Battle.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Battle.overriddenTilesets = (ValidTilesets)0; Expand_Battle.prerequisites = new List(); Expand_Battle.InvalidInCoop = false; Expand_Battle.cullProceduralDecorationOnWeakPlatforms = false; Expand_Battle.preventAddedDecoLayering = false; Expand_Battle.precludeAllTilemapDrawing = false; Expand_Battle.drawPrecludedCeilingTiles = false; Expand_Battle.preventBorders = false; Expand_Battle.preventFacewallAO = false; Expand_Battle.usesCustomAmbientLight = false; Expand_Battle.customAmbientLight = Color.white; Expand_Battle.ForceAllowDuplicates = false; Expand_Battle.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Battle.IsLostWoodsRoom = false; Expand_Battle.UseCustomMusic = false; Expand_Battle.UseCustomMusicState = false; Expand_Battle.CustomMusicEvent = string.Empty; Expand_Battle.UseCustomMusicSwitch = false; Expand_Battle.CustomMusicSwitch = string.Empty; Expand_Battle.overrideRoomVisualTypeForSecretRooms = false; Expand_Battle.rewardChestSpawnPosition = new IntVector2(14, 14); Expand_Battle.Width = 30; Expand_Battle.Height = 30; PrototypeDungeonRoom expand_Battle = Expand_Battle; list9 = new List(); List list20 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "206405acad4d4c33aac6717d184dc8d4", contentsBasePosition = new Vector2(24f, 7f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "4db03291a12144d69fe940d5a01de376", contentsBasePosition = new Vector2(9f, 10f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "844657ad68894a4facb1b8e1aef1abf9", contentsBasePosition = new Vector2(16f, 17f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "4db03291a12144d69fe940d5a01de376", contentsBasePosition = new Vector2(23f, 23f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "206405acad4d4c33aac6717d184dc8d4", contentsBasePosition = new Vector2(6f, 24f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(24f, 7f), new Vector2(9f, 10f), new Vector2(16f, 17f), new Vector2(23f, 23f), new Vector2(6f, 24f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = true; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list20.Add(val10); List list21 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "ec8ea75b557d4e7b8ceeaacdf6f8238c", contentsBasePosition = new Vector2(6f, 6f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "463d16121f884984abe759de38418e48", contentsBasePosition = new Vector2(23f, 14f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "01972dee89fc4404a5c408d50007dad5", contentsBasePosition = new Vector2(24f, 23f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "ec8ea75b557d4e7b8ceeaacdf6f8238c", contentsBasePosition = new Vector2(6f, 24f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(6f, 6f), new Vector2(23f, 14f), new Vector2(24f, 23f), new Vector2(6f, 24f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = true; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list21.Add(val10); List list22 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "7ec3e8146f634c559a7d58b19191cd43", contentsBasePosition = new Vector2(6f, 7f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "b4666cb6ef4f4b038ba8924fd8adf38f", contentsBasePosition = new Vector2(24f, 7f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "2d4f8b5404614e7d8b235006acde427a", contentsBasePosition = new Vector2(5f, 13f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "1a4872dafdb34fd29fe8ac90bd2cea67", contentsBasePosition = new Vector2(14f, 16f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "7ec3e8146f634c559a7d58b19191cd43", contentsBasePosition = new Vector2(6f, 23f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "2feb50a6a40f4f50982e89fd276f6f15", contentsBasePosition = new Vector2(25f, 23f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(24f, 7f), new Vector2(24f, 7f), new Vector2(5f, 13f), new Vector2(14f, 16f), new Vector2(6f, 23f), new Vector2(25f, 23f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = true; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list22.Add(val10); List list23 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "a446c626b56d4166915a4e29869737fd", contentsBasePosition = new Vector2(15f, 10f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "699cd24270af4cd183d671090d8323a1", contentsBasePosition = new Vector2(15f, 22f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(15f, 10f), new Vector2(15f, 22f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = true; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list23.Add(val10); expand_Battle.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_Battle, new Vector2(0f, 4f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Battle, new Vector2(31f, 4f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Battle, new Vector2(0f, 26f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Battle, new Vector2(31f, 26f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Battle, new Vector2(4f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Battle, new Vector2(4f, 31f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Battle, new Vector2(26f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Battle, new Vector2(26f, 31f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Battle, new Vector2(13f, 13f), null, ExpandPrefabs.Teleporter_Gungeon_01.GetComponent()); RoomBuilder.AddObjectToRoom(Expand_Battle, new Vector2(25f, 7f), null, null, "b54d89f9e802455cbb2b8a96a31e8259"); RoomBuilder.AddObjectToRoom(Expand_Battle, new Vector2(6f, 9f), null, null, "70216cae6c1346309d86d4a0b4603045"); RoomBuilder.AddObjectToRoom(Expand_Battle, new Vector2(18f, 15f), null, null, "cf2b7021eac44e3f95af07db9a7c442c"); RoomBuilder.AddObjectToRoom(Expand_Battle, new Vector2(20f, 20f), null, null, "128db2f0781141bcb505d8f00f9e4d47"); RoomBuilder.AddObjectToRoom(Expand_Battle, new Vector2(4f, 26f), null, null, "ed37fa13e0fa4fcf8239643957c51293"); RoomBuilder.GenerateBasicRoomLayout(Expand_Battle, (CellType)2, (PitBorderType)0); ((Object)Expand_Cross).name = "Expand TurtleMelon Cross"; Expand_Cross.QAID = "FF" + Random.Range(1000, 9999); Expand_Cross.GUID = Guid.NewGuid().ToString(); Expand_Cross.PreventMirroring = false; Expand_Cross.category = (RoomCategory)0; Expand_Cross.subCategoryBoss = (RoomBossSubCategory)0; Expand_Cross.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Cross.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Cross.subCategorySecret = (RoomSecretSubCategory)0; Expand_Cross.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Cross.pits = new List(); Expand_Cross.placedObjects = new List(); Expand_Cross.placedObjectPositions = new List(); Expand_Cross.eventTriggerAreas = new List(); Expand_Cross.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Cross.overriddenTilesets = (ValidTilesets)0; Expand_Cross.prerequisites = new List(); Expand_Cross.InvalidInCoop = false; Expand_Cross.cullProceduralDecorationOnWeakPlatforms = false; Expand_Cross.preventAddedDecoLayering = false; Expand_Cross.precludeAllTilemapDrawing = false; Expand_Cross.drawPrecludedCeilingTiles = false; Expand_Cross.preventBorders = false; Expand_Cross.preventFacewallAO = false; Expand_Cross.usesCustomAmbientLight = false; Expand_Cross.customAmbientLight = Color.white; Expand_Cross.ForceAllowDuplicates = false; Expand_Cross.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Cross.IsLostWoodsRoom = false; Expand_Cross.UseCustomMusic = false; Expand_Cross.UseCustomMusicState = false; Expand_Cross.CustomMusicEvent = string.Empty; Expand_Cross.UseCustomMusicSwitch = false; Expand_Cross.CustomMusicSwitch = string.Empty; Expand_Cross.overrideRoomVisualTypeForSecretRooms = false; Expand_Cross.rewardChestSpawnPosition = new IntVector2(7, 13); Expand_Cross.overrideRoomVisualType = 6; Expand_Cross.Width = 30; Expand_Cross.Height = 31; PrototypeDungeonRoom expand_Cross = Expand_Cross; list9 = new List(); List list24 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "01972dee89fc4404a5c408d50007dad5", contentsBasePosition = new Vector2(16f, 1f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "01972dee89fc4404a5c408d50007dad5", contentsBasePosition = new Vector2(14f, 28f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "4db03291a12144d69fe940d5a01de376", contentsBasePosition = new Vector2(3f, 17f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "4db03291a12144d69fe940d5a01de376", contentsBasePosition = new Vector2(27f, 13f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(16f, 1f), new Vector2(14f, 28f), new Vector2(3f, 17f), new Vector2(27f, 13f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = true; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list24.Add(val10); List list25 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "ec8ea75b557d4e7b8ceeaacdf6f8238c", contentsBasePosition = new Vector2(22f, 13f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "ec8ea75b557d4e7b8ceeaacdf6f8238c", contentsBasePosition = new Vector2(8f, 17f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(22f, 13f), new Vector2(8f, 17f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list25.Add(val10); expand_Cross.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_Cross, new Vector2(0f, 15f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Cross, new Vector2(31f, 15f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Cross, new Vector2(15f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Cross, new Vector2(15f, 31f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Cross, new Vector2(15f, 2f), ExpandObjectDatabase.ExplodyBarrel); RoomBuilder.AddObjectToRoom(Expand_Cross, new Vector2(15f, 8f), ExpandObjectDatabase.ExplodyBarrel); RoomBuilder.AddObjectToRoom(Expand_Cross, new Vector2(15f, 15f), ExpandObjectDatabase.ExplodyBarrel); RoomBuilder.AddObjectToRoom(Expand_Cross, new Vector2(15f, 22f), ExpandObjectDatabase.ExplodyBarrel); RoomBuilder.AddObjectToRoom(Expand_Cross, new Vector2(15f, 27f), ExpandObjectDatabase.ExplodyBarrel); RoomBuilder.AddObjectToRoom(Expand_Cross, new Vector2(5f, 15f), null, null, "8bb5578fba374e8aae8e10b754e61d62"); RoomBuilder.AddObjectToRoom(Expand_Cross, new Vector2(25f, 15f), null, null, "8bb5578fba374e8aae8e10b754e61d62"); RoomBuilder.GenerateRoomLayout(Expand_Cross, "Expand_TurtleMelon_Cross_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Blocks).name = "Expand TurtleMelon Blocks"; Expand_Blocks.QAID = "FF" + Random.Range(1000, 9999); Expand_Blocks.GUID = Guid.NewGuid().ToString(); Expand_Blocks.PreventMirroring = false; Expand_Blocks.category = (RoomCategory)2; Expand_Blocks.subCategoryBoss = (RoomBossSubCategory)0; Expand_Blocks.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Blocks.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Blocks.subCategorySecret = (RoomSecretSubCategory)0; Expand_Blocks.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Blocks.pits = new List(); Expand_Blocks.placedObjects = new List(); Expand_Blocks.placedObjectPositions = new List(); Expand_Blocks.eventTriggerAreas = new List(); Expand_Blocks.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Blocks.overriddenTilesets = (ValidTilesets)0; Expand_Blocks.prerequisites = new List(); Expand_Blocks.InvalidInCoop = false; Expand_Blocks.cullProceduralDecorationOnWeakPlatforms = false; Expand_Blocks.preventAddedDecoLayering = false; Expand_Blocks.precludeAllTilemapDrawing = false; Expand_Blocks.drawPrecludedCeilingTiles = false; Expand_Blocks.preventBorders = false; Expand_Blocks.preventFacewallAO = false; Expand_Blocks.usesCustomAmbientLight = false; Expand_Blocks.customAmbientLight = Color.white; Expand_Blocks.ForceAllowDuplicates = false; Expand_Blocks.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Blocks.IsLostWoodsRoom = false; Expand_Blocks.UseCustomMusic = false; Expand_Blocks.UseCustomMusicState = false; Expand_Blocks.CustomMusicEvent = string.Empty; Expand_Blocks.UseCustomMusicSwitch = false; Expand_Blocks.CustomMusicSwitch = string.Empty; Expand_Blocks.overrideRoomVisualTypeForSecretRooms = false; Expand_Blocks.rewardChestSpawnPosition = new IntVector2(8, 14); Expand_Blocks.overrideRoomVisualType = -1; Expand_Blocks.Width = 31; Expand_Blocks.Height = 31; PrototypeDungeonRoom expand_Blocks = Expand_Blocks; list9 = new List(); List list26 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "1a4872dafdb34fd29fe8ac90bd2cea67", contentsBasePosition = new Vector2(8f, 2f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "1a4872dafdb34fd29fe8ac90bd2cea67", contentsBasePosition = new Vector2(10f, 18f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(8f, 2f), new Vector2(10f, 18f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list26.Add(val10); expand_Blocks.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_Blocks, new Vector2(0f, 19f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Blocks, new Vector2(32f, 13f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Blocks, new Vector2(10f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Blocks, new Vector2(16f, 31f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Blocks, new Vector2(23f, 10f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Blocks, new Vector2(6f, 17f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Blocks, new Vector2(16f, 25f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Blocks, new Vector2(10f, 2f), null, null, "c0ff3744760c4a2eb0bb52ac162056e6"); RoomBuilder.AddObjectToRoom(Expand_Blocks, new Vector2(24f, 10f), null, null, "c0ff3744760c4a2eb0bb52ac162056e6"); RoomBuilder.AddObjectToRoom(Expand_Blocks, new Vector2(8f, 18f), null, null, "6f22935656c54ccfb89fca30ad663a64"); RoomBuilder.AddObjectToRoom(Expand_Blocks, new Vector2(16f, 27f), null, null, "a400523e535f41ac80a43ff6b06dc0bf"); RoomBuilder.GenerateRoomLayout(Expand_Blocks, "Expand_TurtleMelon_Blocks_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Blocks_Pits).name = "Expand TurtleMelon Blocks Pits"; Expand_Blocks_Pits.QAID = "FF" + Random.Range(1000, 9999); Expand_Blocks_Pits.GUID = Guid.NewGuid().ToString(); Expand_Blocks_Pits.PreventMirroring = false; Expand_Blocks_Pits.category = (RoomCategory)2; Expand_Blocks_Pits.subCategoryBoss = (RoomBossSubCategory)0; Expand_Blocks_Pits.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Blocks_Pits.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Blocks_Pits.subCategorySecret = (RoomSecretSubCategory)0; Expand_Blocks_Pits.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Blocks_Pits.pits = new List(); Expand_Blocks_Pits.placedObjects = new List(); Expand_Blocks_Pits.placedObjectPositions = new List(); Expand_Blocks_Pits.eventTriggerAreas = new List(); Expand_Blocks_Pits.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Blocks_Pits.overriddenTilesets = (ValidTilesets)0; Expand_Blocks_Pits.prerequisites = new List(); Expand_Blocks_Pits.InvalidInCoop = false; Expand_Blocks_Pits.cullProceduralDecorationOnWeakPlatforms = false; Expand_Blocks_Pits.preventAddedDecoLayering = false; Expand_Blocks_Pits.precludeAllTilemapDrawing = false; Expand_Blocks_Pits.drawPrecludedCeilingTiles = false; Expand_Blocks_Pits.preventBorders = false; Expand_Blocks_Pits.preventFacewallAO = false; Expand_Blocks_Pits.usesCustomAmbientLight = false; Expand_Blocks_Pits.customAmbientLight = Color.white; Expand_Blocks_Pits.ForceAllowDuplicates = false; Expand_Blocks_Pits.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Blocks_Pits.IsLostWoodsRoom = false; Expand_Blocks_Pits.UseCustomMusic = false; Expand_Blocks_Pits.UseCustomMusicState = false; Expand_Blocks_Pits.CustomMusicEvent = string.Empty; Expand_Blocks_Pits.UseCustomMusicSwitch = false; Expand_Blocks_Pits.CustomMusicSwitch = string.Empty; Expand_Blocks_Pits.overrideRoomVisualTypeForSecretRooms = false; Expand_Blocks_Pits.rewardChestSpawnPosition = new IntVector2(16, 11); Expand_Blocks_Pits.overrideRoomVisualType = -1; Expand_Blocks_Pits.Width = 22; Expand_Blocks_Pits.Height = 18; PrototypeDungeonRoom expand_Blocks_Pits = Expand_Blocks_Pits; list9 = new List(); List list27 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "88b6b6a93d4b4234a67844ef4728382c", contentsBasePosition = new Vector2(17f, 9f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(17f, 9f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = false; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list27.Add(val10); expand_Blocks_Pits.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_Blocks_Pits, new Vector2(0f, 9f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Blocks_Pits, new Vector2(23f, 9f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Blocks_Pits, new Vector2(11f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Blocks_Pits, new Vector2(11f, 19f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Blocks_Pits, new Vector2(10f, 2f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Blocks_Pits, new Vector2(2f, 10f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Blocks_Pits, new Vector2(17f, 9f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.GenerateRoomLayout(Expand_Blocks_Pits, "Expand_TurtleMelon_Blocks_Pits_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Wall_Pit).name = "Expand TurtleMelon Wall Pit"; Expand_Wall_Pit.QAID = "FF" + Random.Range(1000, 9999); Expand_Wall_Pit.GUID = Guid.NewGuid().ToString(); Expand_Wall_Pit.PreventMirroring = false; Expand_Wall_Pit.category = (RoomCategory)2; Expand_Wall_Pit.subCategoryBoss = (RoomBossSubCategory)0; Expand_Wall_Pit.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Wall_Pit.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Wall_Pit.subCategorySecret = (RoomSecretSubCategory)0; Expand_Wall_Pit.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Wall_Pit.pits = new List(); Expand_Wall_Pit.placedObjects = new List(); Expand_Wall_Pit.placedObjectPositions = new List(); Expand_Wall_Pit.eventTriggerAreas = new List(); Expand_Wall_Pit.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Wall_Pit.overriddenTilesets = (ValidTilesets)0; Expand_Wall_Pit.prerequisites = new List(); Expand_Wall_Pit.InvalidInCoop = false; Expand_Wall_Pit.cullProceduralDecorationOnWeakPlatforms = false; Expand_Wall_Pit.preventAddedDecoLayering = false; Expand_Wall_Pit.precludeAllTilemapDrawing = false; Expand_Wall_Pit.drawPrecludedCeilingTiles = false; Expand_Wall_Pit.preventBorders = false; Expand_Wall_Pit.preventFacewallAO = false; Expand_Wall_Pit.usesCustomAmbientLight = false; Expand_Wall_Pit.customAmbientLight = Color.white; Expand_Wall_Pit.ForceAllowDuplicates = false; Expand_Wall_Pit.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Wall_Pit.IsLostWoodsRoom = false; Expand_Wall_Pit.UseCustomMusic = false; Expand_Wall_Pit.UseCustomMusicState = false; Expand_Wall_Pit.CustomMusicEvent = string.Empty; Expand_Wall_Pit.UseCustomMusicSwitch = false; Expand_Wall_Pit.CustomMusicSwitch = string.Empty; Expand_Wall_Pit.overrideRoomVisualTypeForSecretRooms = false; Expand_Wall_Pit.rewardChestSpawnPosition = new IntVector2(4, 9); Expand_Wall_Pit.overrideRoomVisualType = -1; Expand_Wall_Pit.Width = 22; Expand_Wall_Pit.Height = 18; PrototypeDungeonRoom expand_Wall_Pit = Expand_Wall_Pit; list9 = new List(); List list28 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "70216cae6c1346309d86d4a0b4603045", contentsBasePosition = new Vector2(5f, 8f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "2752019b770f473193b08b4005dc781f", contentsBasePosition = new Vector2(16f, 8f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(5f, 8f), new Vector2(16f, 8f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = true; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list28.Add(val10); expand_Wall_Pit.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_Wall_Pit, new Vector2(0f, 9f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Wall_Pit, new Vector2(23f, 9f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Wall_Pit, new Vector2(2f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Wall_Pit, new Vector2(20f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Wall_Pit, new Vector2(2f, 19f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Wall_Pit, new Vector2(20f, 19f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Wall_Pit, new Vector2(9f, 8f), null, null, "1a4872dafdb34fd29fe8ac90bd2cea67"); RoomBuilder.GenerateRoomLayout(Expand_Wall_Pit, "Expand_TurtleMelon_Wall_Pit_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Gate_Cross).name = "Expand TurtleMelon Gate Cross"; Expand_Gate_Cross.QAID = "FF" + Random.Range(1000, 9999); Expand_Gate_Cross.GUID = Guid.NewGuid().ToString(); Expand_Gate_Cross.PreventMirroring = false; Expand_Gate_Cross.category = (RoomCategory)0; Expand_Gate_Cross.subCategoryBoss = (RoomBossSubCategory)0; Expand_Gate_Cross.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Gate_Cross.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Gate_Cross.subCategorySecret = (RoomSecretSubCategory)0; Expand_Gate_Cross.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Gate_Cross.pits = new List(); Expand_Gate_Cross.placedObjects = new List(); Expand_Gate_Cross.placedObjectPositions = new List(); Expand_Gate_Cross.eventTriggerAreas = new List(); Expand_Gate_Cross.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Gate_Cross.overriddenTilesets = (ValidTilesets)0; Expand_Gate_Cross.prerequisites = new List(); Expand_Gate_Cross.InvalidInCoop = false; Expand_Gate_Cross.cullProceduralDecorationOnWeakPlatforms = false; Expand_Gate_Cross.preventAddedDecoLayering = false; Expand_Gate_Cross.precludeAllTilemapDrawing = false; Expand_Gate_Cross.drawPrecludedCeilingTiles = false; Expand_Gate_Cross.preventBorders = false; Expand_Gate_Cross.preventFacewallAO = false; Expand_Gate_Cross.usesCustomAmbientLight = false; Expand_Gate_Cross.customAmbientLight = Color.white; Expand_Gate_Cross.ForceAllowDuplicates = false; Expand_Gate_Cross.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Gate_Cross.IsLostWoodsRoom = false; Expand_Gate_Cross.UseCustomMusic = false; Expand_Gate_Cross.UseCustomMusicState = false; Expand_Gate_Cross.CustomMusicEvent = string.Empty; Expand_Gate_Cross.UseCustomMusicSwitch = false; Expand_Gate_Cross.CustomMusicSwitch = string.Empty; Expand_Gate_Cross.overrideRoomVisualTypeForSecretRooms = false; Expand_Gate_Cross.rewardChestSpawnPosition = new IntVector2(15, 9); Expand_Gate_Cross.overrideRoomVisualType = -1; Expand_Gate_Cross.Width = 20; Expand_Gate_Cross.Height = 20; PrototypeDungeonRoom expand_Gate_Cross = Expand_Gate_Cross; list9 = new List(); List list29 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "4d37ce3d666b4ddda8039929225b7ede", contentsBasePosition = new Vector2(4f, 2f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "4d37ce3d666b4ddda8039929225b7ede", contentsBasePosition = new Vector2(16f, 12f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "c0260c286c8d4538a697c5bf24976ccf", contentsBasePosition = new Vector2(16f, 7f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "c0260c286c8d4538a697c5bf24976ccf", contentsBasePosition = new Vector2(4f, 18f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(4f, 2f), new Vector2(16f, 12f), new Vector2(16f, 8f), new Vector2(4f, 18f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list29.Add(val10); expand_Gate_Cross.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_Gate_Cross, new Vector2(0f, 10f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Gate_Cross, new Vector2(15f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Gate_Cross, new Vector2(15f, 21f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Gate_Cross, new Vector2(16f, 1f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Gate_Cross, new Vector2(5f, 2f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Gate_Cross, new Vector2(5f, 17f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Gate_Cross, new Vector2(16f, 18f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Gate_Cross, new Vector2(16f, 7f), null, null, "cf2b7021eac44e3f95af07db9a7c442c"); RoomBuilder.AddObjectToRoom(Expand_Gate_Cross, new Vector2(16f, 12f), null, null, "206405acad4d4c33aac6717d184dc8d4"); RoomBuilder.GenerateRoomLayout(Expand_Gate_Cross, "Expand_TurtleMelon_Gate_Cross_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Passage).name = "Expand TurtleMelon Passage"; Expand_Passage.QAID = "FF" + Random.Range(1000, 9999); Expand_Passage.GUID = Guid.NewGuid().ToString(); Expand_Passage.PreventMirroring = false; Expand_Passage.category = (RoomCategory)0; Expand_Passage.subCategoryBoss = (RoomBossSubCategory)0; Expand_Passage.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Passage.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Passage.subCategorySecret = (RoomSecretSubCategory)0; Expand_Passage.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Passage.pits = new List(); Expand_Passage.placedObjects = new List(); Expand_Passage.placedObjectPositions = new List(); Expand_Passage.eventTriggerAreas = new List(); Expand_Passage.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Passage.overriddenTilesets = (ValidTilesets)0; Expand_Passage.prerequisites = new List(); Expand_Passage.InvalidInCoop = false; Expand_Passage.cullProceduralDecorationOnWeakPlatforms = false; Expand_Passage.preventAddedDecoLayering = false; Expand_Passage.precludeAllTilemapDrawing = false; Expand_Passage.drawPrecludedCeilingTiles = false; Expand_Passage.preventBorders = false; Expand_Passage.preventFacewallAO = false; Expand_Passage.usesCustomAmbientLight = false; Expand_Passage.customAmbientLight = Color.white; Expand_Passage.ForceAllowDuplicates = false; Expand_Passage.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Passage.IsLostWoodsRoom = false; Expand_Passage.UseCustomMusic = false; Expand_Passage.UseCustomMusicState = false; Expand_Passage.CustomMusicEvent = string.Empty; Expand_Passage.UseCustomMusicSwitch = false; Expand_Passage.CustomMusicSwitch = string.Empty; Expand_Passage.overrideRoomVisualTypeForSecretRooms = false; Expand_Passage.rewardChestSpawnPosition = new IntVector2(6, 2); Expand_Passage.overrideRoomVisualType = -1; Expand_Passage.Width = 24; Expand_Passage.Height = 20; PrototypeDungeonRoom expand_Passage = Expand_Passage; list9 = new List(); List list30 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "b54d89f9e802455cbb2b8a96a31e8259", contentsBasePosition = new Vector2(12f, 2f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "128db2f0781141bcb505d8f00f9e4d47", contentsBasePosition = new Vector2(12f, 17f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(4f, 2f), new Vector2(12f, 17f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list30.Add(val10); expand_Passage.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_Passage, new Vector2(12f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Passage, new Vector2(12f, 21f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Passage, new Vector2(2f, 2f), null, null, "4d37ce3d666b4ddda8039929225b7ede"); RoomBuilder.AddObjectToRoom(Expand_Passage, new Vector2(20f, 2f), null, null, "4d37ce3d666b4ddda8039929225b7ede"); RoomBuilder.AddObjectToRoom(Expand_Passage, new Vector2(11f, 17f), null, null, "c0260c286c8d4538a697c5bf24976ccf"); RoomBuilder.GenerateRoomLayout(Expand_Passage, "Expand_TurtleMelon_Passage_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Pit_Jump).name = "Expand TurtleMelon Pit Jump"; Expand_Pit_Jump.QAID = "FF" + Random.Range(1000, 9999); Expand_Pit_Jump.GUID = Guid.NewGuid().ToString(); Expand_Pit_Jump.PreventMirroring = false; Expand_Pit_Jump.category = (RoomCategory)0; Expand_Pit_Jump.subCategoryBoss = (RoomBossSubCategory)0; Expand_Pit_Jump.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Pit_Jump.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Pit_Jump.subCategorySecret = (RoomSecretSubCategory)0; Expand_Pit_Jump.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Pit_Jump.pits = new List(); Expand_Pit_Jump.placedObjects = new List(); Expand_Pit_Jump.placedObjectPositions = new List(); Expand_Pit_Jump.eventTriggerAreas = new List(); Expand_Pit_Jump.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Pit_Jump.overriddenTilesets = (ValidTilesets)0; Expand_Pit_Jump.prerequisites = new List(); Expand_Pit_Jump.InvalidInCoop = false; Expand_Pit_Jump.cullProceduralDecorationOnWeakPlatforms = false; Expand_Pit_Jump.preventAddedDecoLayering = false; Expand_Pit_Jump.precludeAllTilemapDrawing = false; Expand_Pit_Jump.drawPrecludedCeilingTiles = false; Expand_Pit_Jump.preventBorders = false; Expand_Pit_Jump.preventFacewallAO = false; Expand_Pit_Jump.usesCustomAmbientLight = false; Expand_Pit_Jump.customAmbientLight = Color.white; Expand_Pit_Jump.ForceAllowDuplicates = false; Expand_Pit_Jump.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Pit_Jump.IsLostWoodsRoom = false; Expand_Pit_Jump.UseCustomMusic = false; Expand_Pit_Jump.UseCustomMusicState = false; Expand_Pit_Jump.CustomMusicEvent = string.Empty; Expand_Pit_Jump.UseCustomMusicSwitch = false; Expand_Pit_Jump.CustomMusicSwitch = string.Empty; Expand_Pit_Jump.overrideRoomVisualTypeForSecretRooms = false; Expand_Pit_Jump.rewardChestSpawnPosition = new IntVector2(10, 12); Expand_Pit_Jump.overrideRoomVisualType = -1; Expand_Pit_Jump.Width = 30; Expand_Pit_Jump.Height = 24; Expand_Pit_Jump.additionalObjectLayers = new List(0); RoomBuilder.AddExitToRoom(Expand_Pit_Jump, new Vector2(0f, 2f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Pit_Jump, new Vector2(31f, 22f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Pit_Jump, new Vector2(12f, 3f), null, null, "b54d89f9e802455cbb2b8a96a31e8259"); RoomBuilder.AddObjectToRoom(Expand_Pit_Jump, new Vector2(15f, 13f), null, null, "0239c0680f9f467dbe5c4aab7dd1eca6"); RoomBuilder.AddObjectToRoom(Expand_Pit_Jump, new Vector2(16f, 21f), null, null, "128db2f0781141bcb505d8f00f9e4d47"); RoomBuilder.GenerateRoomLayout(Expand_Pit_Jump, "Expand_TurtleMelon_Pit_Jump_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Pit_Passage).name = "Expand TurtleMelon Pit Passage"; Expand_Pit_Passage.QAID = "FF" + Random.Range(1000, 9999); Expand_Pit_Passage.GUID = Guid.NewGuid().ToString(); Expand_Pit_Passage.PreventMirroring = false; Expand_Pit_Passage.category = (RoomCategory)2; Expand_Pit_Passage.subCategoryBoss = (RoomBossSubCategory)0; Expand_Pit_Passage.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Pit_Passage.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Pit_Passage.subCategorySecret = (RoomSecretSubCategory)0; Expand_Pit_Passage.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Pit_Passage.pits = new List(); Expand_Pit_Passage.placedObjects = new List(); Expand_Pit_Passage.placedObjectPositions = new List(); Expand_Pit_Passage.eventTriggerAreas = new List(); Expand_Pit_Passage.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Pit_Passage.overriddenTilesets = (ValidTilesets)0; Expand_Pit_Passage.prerequisites = new List(); Expand_Pit_Passage.InvalidInCoop = false; Expand_Pit_Passage.cullProceduralDecorationOnWeakPlatforms = false; Expand_Pit_Passage.preventAddedDecoLayering = false; Expand_Pit_Passage.precludeAllTilemapDrawing = false; Expand_Pit_Passage.drawPrecludedCeilingTiles = false; Expand_Pit_Passage.preventBorders = false; Expand_Pit_Passage.preventFacewallAO = false; Expand_Pit_Passage.usesCustomAmbientLight = false; Expand_Pit_Passage.customAmbientLight = Color.white; Expand_Pit_Passage.ForceAllowDuplicates = false; Expand_Pit_Passage.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Pit_Passage.IsLostWoodsRoom = false; Expand_Pit_Passage.UseCustomMusic = false; Expand_Pit_Passage.UseCustomMusicState = false; Expand_Pit_Passage.CustomMusicEvent = string.Empty; Expand_Pit_Passage.UseCustomMusicSwitch = false; Expand_Pit_Passage.CustomMusicSwitch = string.Empty; Expand_Pit_Passage.overrideRoomVisualTypeForSecretRooms = false; Expand_Pit_Passage.rewardChestSpawnPosition = new IntVector2(12, 6); Expand_Pit_Passage.overrideRoomVisualType = -1; Expand_Pit_Passage.Width = 20; Expand_Pit_Passage.Height = 20; Expand_Pit_Passage.additionalObjectLayers = new List(0); RoomBuilder.AddExitToRoom(Expand_Pit_Passage, new Vector2(14f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Pit_Passage, new Vector2(14f, 21f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Pit_Passage, new Vector2(13f, 4f), null, null, "6b7ef9e5d05b4f96b04f05ef4a0d1b18"); RoomBuilder.AddObjectToRoom(Expand_Pit_Passage, new Vector2(5f, 10f), null, null, "6b7ef9e5d05b4f96b04f05ef4a0d1b18"); RoomBuilder.AddObjectToRoom(Expand_Pit_Passage, new Vector2(14f, 15f), null, null, "6b7ef9e5d05b4f96b04f05ef4a0d1b18"); RoomBuilder.GenerateRoomLayout(Expand_Pit_Passage, "Expand_TurtleMelon_Pit_Passage_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_R_Blocks).name = "Expand TurtleMelon R Blocks"; Expand_R_Blocks.QAID = "FF" + Random.Range(1000, 9999); Expand_R_Blocks.GUID = Guid.NewGuid().ToString(); Expand_R_Blocks.PreventMirroring = false; Expand_R_Blocks.category = (RoomCategory)2; Expand_R_Blocks.subCategoryBoss = (RoomBossSubCategory)0; Expand_R_Blocks.subCategoryNormal = (RoomNormalSubCategory)0; Expand_R_Blocks.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_R_Blocks.subCategorySecret = (RoomSecretSubCategory)0; Expand_R_Blocks.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_R_Blocks.pits = new List(); Expand_R_Blocks.placedObjects = new List(); Expand_R_Blocks.placedObjectPositions = new List(); Expand_R_Blocks.eventTriggerAreas = new List(); Expand_R_Blocks.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_R_Blocks.overriddenTilesets = (ValidTilesets)0; Expand_R_Blocks.prerequisites = new List(); Expand_R_Blocks.InvalidInCoop = false; Expand_R_Blocks.cullProceduralDecorationOnWeakPlatforms = false; Expand_R_Blocks.preventAddedDecoLayering = false; Expand_R_Blocks.precludeAllTilemapDrawing = false; Expand_R_Blocks.drawPrecludedCeilingTiles = false; Expand_R_Blocks.preventBorders = false; Expand_R_Blocks.preventFacewallAO = false; Expand_R_Blocks.usesCustomAmbientLight = false; Expand_R_Blocks.customAmbientLight = Color.white; Expand_R_Blocks.ForceAllowDuplicates = false; Expand_R_Blocks.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_R_Blocks.IsLostWoodsRoom = false; Expand_R_Blocks.UseCustomMusic = false; Expand_R_Blocks.UseCustomMusicState = false; Expand_R_Blocks.CustomMusicEvent = string.Empty; Expand_R_Blocks.UseCustomMusicSwitch = false; Expand_R_Blocks.CustomMusicSwitch = string.Empty; Expand_R_Blocks.overrideRoomVisualTypeForSecretRooms = false; Expand_R_Blocks.rewardChestSpawnPosition = new IntVector2(6, 17); Expand_R_Blocks.overrideRoomVisualType = -1; Expand_R_Blocks.Width = 42; Expand_R_Blocks.Height = 34; PrototypeDungeonRoom expand_R_Blocks = Expand_R_Blocks; list9 = new List(); List list31 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "88b6b6a93d4b4234a67844ef4728382c", contentsBasePosition = new Vector2(8f, 5f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "88b6b6a93d4b4234a67844ef4728382c", contentsBasePosition = new Vector2(6f, 17f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "88b6b6a93d4b4234a67844ef4728382c", contentsBasePosition = new Vector2(35f, 25f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "88b6b6a93d4b4234a67844ef4728382c", contentsBasePosition = new Vector2(7f, 31f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(8f, 5f), new Vector2(6f, 17f), new Vector2(35f, 25f), new Vector2(7f, 31f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list31.Add(val10); expand_R_Blocks.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_R_Blocks, new Vector2(42f, 27f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_R_Blocks, new Vector2(10f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_R_Blocks, new Vector2(13f, 35f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_R_Blocks, new Vector2(9f, 3f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_R_Blocks, new Vector2(34f, 8f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_R_Blocks, new Vector2(9f, 17f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_R_Blocks, new Vector2(9f, 28f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.GenerateRoomLayout(Expand_R_Blocks, "Expand_TurtleMelon_R_Blocks_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Small_Passage).name = "Expand TurtleMelon Small Passage 1"; Expand_Small_Passage.QAID = "FF" + Random.Range(1000, 9999); Expand_Small_Passage.GUID = Guid.NewGuid().ToString(); Expand_Small_Passage.PreventMirroring = false; Expand_Small_Passage.category = (RoomCategory)0; Expand_Small_Passage.subCategoryBoss = (RoomBossSubCategory)0; Expand_Small_Passage.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Small_Passage.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Small_Passage.subCategorySecret = (RoomSecretSubCategory)0; Expand_Small_Passage.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Small_Passage.pits = new List(); Expand_Small_Passage.placedObjects = new List(); Expand_Small_Passage.placedObjectPositions = new List(); Expand_Small_Passage.eventTriggerAreas = new List(); Expand_Small_Passage.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Small_Passage.overriddenTilesets = (ValidTilesets)0; Expand_Small_Passage.prerequisites = new List(); Expand_Small_Passage.InvalidInCoop = false; Expand_Small_Passage.cullProceduralDecorationOnWeakPlatforms = false; Expand_Small_Passage.preventAddedDecoLayering = false; Expand_Small_Passage.precludeAllTilemapDrawing = false; Expand_Small_Passage.drawPrecludedCeilingTiles = false; Expand_Small_Passage.preventBorders = false; Expand_Small_Passage.preventFacewallAO = false; Expand_Small_Passage.usesCustomAmbientLight = false; Expand_Small_Passage.customAmbientLight = Color.white; Expand_Small_Passage.ForceAllowDuplicates = false; Expand_Small_Passage.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Small_Passage.IsLostWoodsRoom = false; Expand_Small_Passage.UseCustomMusic = false; Expand_Small_Passage.UseCustomMusicState = false; Expand_Small_Passage.CustomMusicEvent = string.Empty; Expand_Small_Passage.UseCustomMusicSwitch = false; Expand_Small_Passage.CustomMusicSwitch = string.Empty; Expand_Small_Passage.overrideRoomVisualTypeForSecretRooms = false; Expand_Small_Passage.rewardChestSpawnPosition = new IntVector2(8, 16); Expand_Small_Passage.overrideRoomVisualType = 6; Expand_Small_Passage.allowFloorDecoration = false; Expand_Small_Passage.Width = 20; Expand_Small_Passage.Height = 18; PrototypeDungeonRoom expand_Small_Passage = Expand_Small_Passage; list9 = new List(); List list32 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "8bb5578fba374e8aae8e10b754e61d62", contentsBasePosition = new Vector2(0f, 14f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(0f, 14f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 0.6f; val10.numberTimesEncounteredRequired = 0; list32.Add(val10); expand_Small_Passage.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_Small_Passage, new Vector2(0f, 1f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Small_Passage, new Vector2(20f, 17f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(10f, 0f), ExpandObjectDatabase.Bush); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(11f, 0f), ExpandObjectDatabase.BushFlowers); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(11f, 1f), ExpandObjectDatabase.Bush); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(10f, 6f), ExpandObjectDatabase.Bush); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(10f, 7f), ExpandObjectDatabase.BushFlowers); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(9f, 7f), ExpandObjectDatabase.Bush); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(0f, 16f), ExpandObjectDatabase.Bush); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(0f, 17f), ExpandObjectDatabase.BushFlowers); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(1f, 17f), ExpandObjectDatabase.Bush); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(2f, 8f), ExpandObjectDatabase.Bush); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(1f, 8f), ExpandObjectDatabase.BushFlowers); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(1f, 9f), ExpandObjectDatabase.Bush); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(2f, 1f), ExpandObjectDatabase.Bush); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(3f, 1f), ExpandObjectDatabase.Bush); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(4f, 1f), ExpandObjectDatabase.BushFlowers); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(5f, 1f), ExpandObjectDatabase.Bush); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(8f, 17f), ExpandObjectDatabase.Bush); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(9f, 17f), ExpandObjectDatabase.Bush); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(10f, 17f), ExpandObjectDatabase.Bush); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(11f, 17f), ExpandObjectDatabase.Bush); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(11f, 3f), ExpandObjectDatabase.Bush); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(11f, 4f), ExpandObjectDatabase.Bush); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(0f, 11f), ExpandObjectDatabase.Bush); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(0f, 12f), ExpandObjectDatabase.BushFlowers); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(0f, 13f), ExpandObjectDatabase.Bush); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(1f, 13f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Small_Passage, new Vector2(5f, 8f), null, null, "4db03291a12144d69fe940d5a01de376"); RoomBuilder.GenerateRoomLayout(Expand_Small_Passage, "Expand_TurtleMelon_Small_Passage_1_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Box).name = "Expand TurtleMelon Box"; Expand_Box.QAID = "FF" + Random.Range(1000, 9999); Expand_Box.GUID = Guid.NewGuid().ToString(); Expand_Box.PreventMirroring = false; Expand_Box.category = (RoomCategory)2; Expand_Box.subCategoryBoss = (RoomBossSubCategory)0; Expand_Box.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Box.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Box.subCategorySecret = (RoomSecretSubCategory)0; Expand_Box.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Box.pits = new List(); Expand_Box.placedObjects = new List(); Expand_Box.placedObjectPositions = new List(); Expand_Box.eventTriggerAreas = new List(); Expand_Box.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Box.overriddenTilesets = (ValidTilesets)0; Expand_Box.prerequisites = new List(); Expand_Box.InvalidInCoop = false; Expand_Box.cullProceduralDecorationOnWeakPlatforms = false; Expand_Box.preventAddedDecoLayering = false; Expand_Box.precludeAllTilemapDrawing = false; Expand_Box.drawPrecludedCeilingTiles = false; Expand_Box.preventBorders = false; Expand_Box.preventFacewallAO = false; Expand_Box.usesCustomAmbientLight = false; Expand_Box.customAmbientLight = Color.white; Expand_Box.ForceAllowDuplicates = false; Expand_Box.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Box.IsLostWoodsRoom = false; Expand_Box.UseCustomMusic = false; Expand_Box.UseCustomMusicState = false; Expand_Box.CustomMusicEvent = string.Empty; Expand_Box.UseCustomMusicSwitch = false; Expand_Box.CustomMusicSwitch = string.Empty; Expand_Box.overrideRoomVisualTypeForSecretRooms = false; Expand_Box.rewardChestSpawnPosition = new IntVector2(4, 10); Expand_Box.overrideRoomVisualType = -1; Expand_Box.Width = 20; Expand_Box.Height = 22; PrototypeDungeonRoom expand_Box = Expand_Box; list9 = new List(); List list33 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "c0260c286c8d4538a697c5bf24976ccf", contentsBasePosition = new Vector2(5f, 4f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "c0260c286c8d4538a697c5bf24976ccf", contentsBasePosition = new Vector2(12f, 13f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "128db2f0781141bcb505d8f00f9e4d47", contentsBasePosition = new Vector2(14f, 19f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(5f, 4f), new Vector2(12f, 13f), new Vector2(14f, 19f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list33.Add(val10); List list34 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "844657ad68894a4facb1b8e1aef1abf9", contentsBasePosition = new Vector2(5f, 4f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "844657ad68894a4facb1b8e1aef1abf9", contentsBasePosition = new Vector2(11f, 13f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(5f, 4f), new Vector2(11f, 13f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 0.7f; val10.numberTimesEncounteredRequired = 0; list34.Add(val10); expand_Box.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_Box, new Vector2(0f, 13f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Box, new Vector2(21f, 4f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Box, new Vector2(14f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Box, new Vector2(14f, 23f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Box, new Vector2(5f, 4f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Box, new Vector2(12f, 13f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Box, new Vector2(14f, 4f), null, null, "4db03291a12144d69fe940d5a01de376"); RoomBuilder.GenerateRoomLayout(Expand_Box, "Expand_TurtleMelon_Box_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Steps).name = "Expand TurtleMelon Steps"; Expand_Steps.QAID = "FF" + Random.Range(1000, 9999); Expand_Steps.GUID = Guid.NewGuid().ToString(); Expand_Steps.PreventMirroring = false; Expand_Steps.category = (RoomCategory)2; Expand_Steps.subCategoryBoss = (RoomBossSubCategory)0; Expand_Steps.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Steps.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Steps.subCategorySecret = (RoomSecretSubCategory)0; Expand_Steps.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Steps.pits = new List(); Expand_Steps.placedObjects = new List(); Expand_Steps.placedObjectPositions = new List(); Expand_Steps.eventTriggerAreas = new List(); Expand_Steps.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Steps.overriddenTilesets = (ValidTilesets)0; Expand_Steps.prerequisites = new List(); Expand_Steps.InvalidInCoop = false; Expand_Steps.cullProceduralDecorationOnWeakPlatforms = false; Expand_Steps.preventAddedDecoLayering = false; Expand_Steps.precludeAllTilemapDrawing = false; Expand_Steps.drawPrecludedCeilingTiles = false; Expand_Steps.preventBorders = false; Expand_Steps.preventFacewallAO = false; Expand_Steps.usesCustomAmbientLight = false; Expand_Steps.customAmbientLight = Color.white; Expand_Steps.ForceAllowDuplicates = false; Expand_Steps.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Steps.IsLostWoodsRoom = false; Expand_Steps.UseCustomMusic = false; Expand_Steps.UseCustomMusicState = false; Expand_Steps.CustomMusicEvent = string.Empty; Expand_Steps.UseCustomMusicSwitch = false; Expand_Steps.CustomMusicSwitch = string.Empty; Expand_Steps.overrideRoomVisualTypeForSecretRooms = false; Expand_Steps.rewardChestSpawnPosition = new IntVector2(16, 3); Expand_Steps.overrideRoomVisualType = -1; Expand_Steps.Width = 20; Expand_Steps.Height = 20; Expand_Steps.additionalObjectLayers = new List(0); RoomBuilder.AddExitToRoom(Expand_Steps, new Vector2(4f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Steps, new Vector2(16f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Steps, new Vector2(4f, 21f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Steps, new Vector2(16f, 21f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Steps, new Vector2(1f, 4f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Steps, new Vector2(1f, 10f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Steps, new Vector2(18f, 7f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Steps, new Vector2(18f, 13f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Steps, new Vector2(5f, 2f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Steps, new Vector2(13f, 5f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Steps, new Vector2(14f, 11f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Steps, new Vector2(4f, 7f), null, null, "0239c0680f9f467dbe5c4aab7dd1eca6"); RoomBuilder.AddObjectToRoom(Expand_Steps, new Vector2(4f, 15f), null, null, "206405acad4d4c33aac6717d184dc8d4"); RoomBuilder.GenerateRoomLayout(Expand_Steps, "Expand_TurtleMelon_Steps_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Apache_Hub).name = "Expand MelonTurtle Apache Hub"; Expand_Apache_Hub.QAID = "FF" + Random.Range(1000, 9999); Expand_Apache_Hub.GUID = Guid.NewGuid().ToString(); Expand_Apache_Hub.PreventMirroring = false; Expand_Apache_Hub.category = (RoomCategory)1; Expand_Apache_Hub.subCategoryBoss = (RoomBossSubCategory)0; Expand_Apache_Hub.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Apache_Hub.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Apache_Hub.subCategorySecret = (RoomSecretSubCategory)0; Expand_Apache_Hub.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Apache_Hub.pits = new List(); Expand_Apache_Hub.placedObjects = new List(); Expand_Apache_Hub.placedObjectPositions = new List(); Expand_Apache_Hub.eventTriggerAreas = new List(); Expand_Apache_Hub.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Apache_Hub.overriddenTilesets = (ValidTilesets)0; Expand_Apache_Hub.prerequisites = new List(); Expand_Apache_Hub.InvalidInCoop = false; Expand_Apache_Hub.cullProceduralDecorationOnWeakPlatforms = false; Expand_Apache_Hub.preventAddedDecoLayering = false; Expand_Apache_Hub.precludeAllTilemapDrawing = false; Expand_Apache_Hub.drawPrecludedCeilingTiles = false; Expand_Apache_Hub.preventBorders = false; Expand_Apache_Hub.preventFacewallAO = false; Expand_Apache_Hub.usesCustomAmbientLight = false; Expand_Apache_Hub.customAmbientLight = Color.white; Expand_Apache_Hub.ForceAllowDuplicates = false; Expand_Apache_Hub.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Apache_Hub.IsLostWoodsRoom = false; Expand_Apache_Hub.UseCustomMusic = false; Expand_Apache_Hub.UseCustomMusicState = false; Expand_Apache_Hub.CustomMusicEvent = string.Empty; Expand_Apache_Hub.UseCustomMusicSwitch = false; Expand_Apache_Hub.CustomMusicSwitch = string.Empty; Expand_Apache_Hub.overrideRoomVisualTypeForSecretRooms = false; Expand_Apache_Hub.rewardChestSpawnPosition = new IntVector2(11, 33); Expand_Apache_Hub.overrideRoomVisualType = -1; Expand_Apache_Hub.Width = 40; Expand_Apache_Hub.Height = 50; PrototypeDungeonRoom expand_Apache_Hub = Expand_Apache_Hub; list9 = new List(); List list35 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "88b6b6a93d4b4234a67844ef4728382c", contentsBasePosition = new Vector2(35f, 10f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "4db03291a12144d69fe940d5a01de376", contentsBasePosition = new Vector2(4f, 44f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(35f, 10f), new Vector2(4f, 44f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = true; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 0.6f; val10.numberTimesEncounteredRequired = 0; list35.Add(val10); expand_Apache_Hub.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_Apache_Hub, new Vector2(4f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Apache_Hub, new Vector2(4f, 51f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Apache_Hub, new Vector2(36f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Apache_Hub, new Vector2(36f, 51f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Apache_Hub, new Vector2(18f, 17f), null, ExpandPrefabs.Teleporter_Gungeon_01.GetComponent()); RoomBuilder.AddObjectToRoom(Expand_Apache_Hub, new Vector2(34f, 25f), null, null, "ec8ea75b557d4e7b8ceeaacdf6f8238c"); RoomBuilder.AddObjectToRoom(Expand_Apache_Hub, new Vector2(3f, 20f), null, null, "ec8ea75b557d4e7b8ceeaacdf6f8238c"); RoomBuilder.AddObjectToRoom(Expand_Apache_Hub, new Vector2(35f, 15f), null, null, "463d16121f884984abe759de38418e48"); RoomBuilder.GenerateRoomLayout(Expand_Apache_Hub, "Expand_MelonTurtle_Apache_Hub_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Box_Hub).name = "Expand MelonTurtle Box Hub"; Expand_Box_Hub.QAID = "FF" + Random.Range(1000, 9999); Expand_Box_Hub.GUID = Guid.NewGuid().ToString(); Expand_Box_Hub.PreventMirroring = false; Expand_Box_Hub.category = (RoomCategory)1; Expand_Box_Hub.subCategoryBoss = (RoomBossSubCategory)0; Expand_Box_Hub.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Box_Hub.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Box_Hub.subCategorySecret = (RoomSecretSubCategory)0; Expand_Box_Hub.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Box_Hub.pits = new List(); Expand_Box_Hub.placedObjects = new List(); Expand_Box_Hub.placedObjectPositions = new List(); Expand_Box_Hub.eventTriggerAreas = new List(); Expand_Box_Hub.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Box_Hub.overriddenTilesets = (ValidTilesets)0; Expand_Box_Hub.prerequisites = new List(); Expand_Box_Hub.InvalidInCoop = false; Expand_Box_Hub.cullProceduralDecorationOnWeakPlatforms = false; Expand_Box_Hub.preventAddedDecoLayering = false; Expand_Box_Hub.precludeAllTilemapDrawing = false; Expand_Box_Hub.drawPrecludedCeilingTiles = false; Expand_Box_Hub.preventBorders = false; Expand_Box_Hub.preventFacewallAO = false; Expand_Box_Hub.usesCustomAmbientLight = false; Expand_Box_Hub.customAmbientLight = Color.white; Expand_Box_Hub.ForceAllowDuplicates = false; Expand_Box_Hub.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Box_Hub.IsLostWoodsRoom = false; Expand_Box_Hub.UseCustomMusic = false; Expand_Box_Hub.UseCustomMusicState = false; Expand_Box_Hub.CustomMusicEvent = string.Empty; Expand_Box_Hub.UseCustomMusicSwitch = false; Expand_Box_Hub.CustomMusicSwitch = string.Empty; Expand_Box_Hub.overrideRoomVisualTypeForSecretRooms = false; Expand_Box_Hub.rewardChestSpawnPosition = new IntVector2(23, 19); Expand_Box_Hub.overrideRoomVisualType = -1; Expand_Box_Hub.Width = 40; Expand_Box_Hub.Height = 40; PrototypeDungeonRoom expand_Box_Hub = Expand_Box_Hub; list9 = new List(); List list36 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "c0260c286c8d4538a697c5bf24976ccf", contentsBasePosition = new Vector2(9f, 2f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "c0260c286c8d4538a697c5bf24976ccf", contentsBasePosition = new Vector2(17f, 29f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "4d37ce3d666b4ddda8039929225b7ede", contentsBasePosition = new Vector2(26f, 10f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "4d37ce3d666b4ddda8039929225b7ede", contentsBasePosition = new Vector2(19f, 17f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "6b7ef9e5d05b4f96b04f05ef4a0d1b18", contentsBasePosition = new Vector2(11f, 11f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "6b7ef9e5d05b4f96b04f05ef4a0d1b18", contentsBasePosition = new Vector2(34f, 22f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "6b7ef9e5d05b4f96b04f05ef4a0d1b18", contentsBasePosition = new Vector2(9f, 37f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(9f, 2f), new Vector2(17f, 29f), new Vector2(26f, 10f), new Vector2(19f, 17f), new Vector2(11f, 11f), new Vector2(34f, 22f), new Vector2(9f, 37f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = true; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 0.9f; val10.numberTimesEncounteredRequired = 0; list36.Add(val10); expand_Box_Hub.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_Box_Hub, new Vector2(0f, 20f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Box_Hub, new Vector2(4f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Box_Hub, new Vector2(4f, 41f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Box_Hub, new Vector2(41f, 20f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Box_Hub, new Vector2(35f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Box_Hub, new Vector2(35f, 41f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Box_Hub, new Vector2(17f, 11f), null, ExpandPrefabs.Teleporter_Gungeon_01.GetComponent()); RoomBuilder.AddObjectToRoom(Expand_Box_Hub, new Vector2(27f, 9f), null, null, "6f22935656c54ccfb89fca30ad663a64"); RoomBuilder.AddObjectToRoom(Expand_Box_Hub, new Vector2(3f, 20f), null, null, "c0ff3744760c4a2eb0bb52ac162056e6"); RoomBuilder.AddObjectToRoom(Expand_Box_Hub, new Vector2(11f, 15f), null, null, "c0ff3744760c4a2eb0bb52ac162056e6"); RoomBuilder.AddObjectToRoom(Expand_Box_Hub, new Vector2(34f, 28f), null, null, "b54d89f9e802455cbb2b8a96a31e8259"); RoomBuilder.AddObjectToRoom(Expand_Box_Hub, new Vector2(10f, 36f), null, null, "b54d89f9e802455cbb2b8a96a31e8259"); RoomBuilder.GenerateRoomLayout(Expand_Box_Hub, "Expand_MelonTurtle_Box_Hub_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Enclose_Hub).name = "Expand MelonTurtle Enclose Hub"; Expand_Enclose_Hub.QAID = "FF" + Random.Range(1000, 9999); Expand_Enclose_Hub.GUID = Guid.NewGuid().ToString(); Expand_Enclose_Hub.PreventMirroring = false; Expand_Enclose_Hub.category = (RoomCategory)1; Expand_Enclose_Hub.subCategoryBoss = (RoomBossSubCategory)0; Expand_Enclose_Hub.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Enclose_Hub.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Enclose_Hub.subCategorySecret = (RoomSecretSubCategory)0; Expand_Enclose_Hub.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Enclose_Hub.pits = new List(); Expand_Enclose_Hub.placedObjects = new List(); Expand_Enclose_Hub.placedObjectPositions = new List(); Expand_Enclose_Hub.eventTriggerAreas = new List(); Expand_Enclose_Hub.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Enclose_Hub.overriddenTilesets = (ValidTilesets)0; Expand_Enclose_Hub.prerequisites = new List(); Expand_Enclose_Hub.InvalidInCoop = false; Expand_Enclose_Hub.cullProceduralDecorationOnWeakPlatforms = false; Expand_Enclose_Hub.preventAddedDecoLayering = false; Expand_Enclose_Hub.precludeAllTilemapDrawing = false; Expand_Enclose_Hub.drawPrecludedCeilingTiles = false; Expand_Enclose_Hub.preventBorders = false; Expand_Enclose_Hub.preventFacewallAO = false; Expand_Enclose_Hub.usesCustomAmbientLight = false; Expand_Enclose_Hub.customAmbientLight = Color.white; Expand_Enclose_Hub.ForceAllowDuplicates = false; Expand_Enclose_Hub.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Enclose_Hub.IsLostWoodsRoom = false; Expand_Enclose_Hub.UseCustomMusic = false; Expand_Enclose_Hub.UseCustomMusicState = false; Expand_Enclose_Hub.CustomMusicEvent = string.Empty; Expand_Enclose_Hub.UseCustomMusicSwitch = false; Expand_Enclose_Hub.CustomMusicSwitch = string.Empty; Expand_Enclose_Hub.overrideRoomVisualTypeForSecretRooms = false; Expand_Enclose_Hub.rewardChestSpawnPosition = new IntVector2(23, 19); Expand_Enclose_Hub.overrideRoomVisualType = 6; Expand_Enclose_Hub.Width = 40; Expand_Enclose_Hub.Height = 39; PrototypeDungeonRoom expand_Enclose_Hub = Expand_Enclose_Hub; list9 = new List(); List list37 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "8bb5578fba374e8aae8e10b754e61d62", contentsBasePosition = new Vector2(30f, 8f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "8bb5578fba374e8aae8e10b754e61d62", contentsBasePosition = new Vector2(8f, 30f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "1a4872dafdb34fd29fe8ac90bd2cea67", contentsBasePosition = new Vector2(19f, 21f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(30f, 8f), new Vector2(8f, 30f), new Vector2(19f, 21f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list37.Add(val10); List list38 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "01972dee89fc4404a5c408d50007dad5", contentsBasePosition = new Vector2(26f, 7f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "01972dee89fc4404a5c408d50007dad5", contentsBasePosition = new Vector2(13f, 9f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "01972dee89fc4404a5c408d50007dad5", contentsBasePosition = new Vector2(12f, 17f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "01972dee89fc4404a5c408d50007dad5", contentsBasePosition = new Vector2(28f, 19f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "01972dee89fc4404a5c408d50007dad5", contentsBasePosition = new Vector2(18f, 24f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "01972dee89fc4404a5c408d50007dad5", contentsBasePosition = new Vector2(26f, 29f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(26f, 7f), new Vector2(13f, 9f), new Vector2(12f, 17f), new Vector2(28f, 19f), new Vector2(18f, 24f), new Vector2(26f, 29f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list38.Add(val10); List list39 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "4d37ce3d666b4ddda8039929225b7ede", contentsBasePosition = new Vector2(34f, 1f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "4d37ce3d666b4ddda8039929225b7ede", contentsBasePosition = new Vector2(5f, 37f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "c0260c286c8d4538a697c5bf24976ccf", contentsBasePosition = new Vector2(5f, 1f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "c0260c286c8d4538a697c5bf24976ccf", contentsBasePosition = new Vector2(33f, 37f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "6b7ef9e5d05b4f96b04f05ef4a0d1b18", contentsBasePosition = new Vector2(12f, 7f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "6b7ef9e5d05b4f96b04f05ef4a0d1b18", contentsBasePosition = new Vector2(29f, 11f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "6b7ef9e5d05b4f96b04f05ef4a0d1b18", contentsBasePosition = new Vector2(11f, 27f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "6b7ef9e5d05b4f96b04f05ef4a0d1b18", contentsBasePosition = new Vector2(29f, 28f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(34f, 1f), new Vector2(5f, 37f), new Vector2(5f, 1f), new Vector2(33f, 37f), new Vector2(12f, 7f), new Vector2(29f, 11f), new Vector2(11f, 27f), new Vector2(29f, 28f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = true; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 0.8f; val10.numberTimesEncounteredRequired = 0; list39.Add(val10); expand_Enclose_Hub.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_Enclose_Hub, new Vector2(5f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Enclose_Hub, new Vector2(5f, 40f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Enclose_Hub, new Vector2(20f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Enclose_Hub, new Vector2(20f, 40f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Enclose_Hub, new Vector2(35f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Enclose_Hub, new Vector2(35f, 40f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Enclose_Hub, new Vector2(10f, 7f), ExpandObjectDatabase.ExplodyBarrel); RoomBuilder.AddObjectToRoom(Expand_Enclose_Hub, new Vector2(27f, 13f), ExpandObjectDatabase.ExplodyBarrel); RoomBuilder.AddObjectToRoom(Expand_Enclose_Hub, new Vector2(10f, 31f), ExpandObjectDatabase.ExplodyBarrel); RoomBuilder.AddObjectToRoom(Expand_Enclose_Hub, new Vector2(30f, 32f), ExpandObjectDatabase.ExplodyBarrel); RoomBuilder.AddObjectToRoom(Expand_Enclose_Hub, new Vector2(28f, 9f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Enclose_Hub, new Vector2(23f, 23f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Enclose_Hub, new Vector2(15f, 27f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Enclose_Hub, new Vector2(28f, 28f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Enclose_Hub, new Vector2(14f, 12f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Enclose_Hub, new Vector2(27f, 19f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Enclose_Hub, new Vector2(11f, 20f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Enclose_Hub, new Vector2(18f, 18f), null, ExpandPrefabs.Teleporter_Gungeon_01.GetComponent()); RoomBuilder.AddObjectToRoom(Expand_Enclose_Hub, new Vector2(19f, 6f), null, null, "463d16121f884984abe759de38418e48"); RoomBuilder.AddObjectToRoom(Expand_Enclose_Hub, new Vector2(19f, 32f), null, null, "ec8ea75b557d4e7b8ceeaacdf6f8238c"); RoomBuilder.GenerateRoomLayout(Expand_Enclose_Hub, "Expand_MelonTurtle_Enclose_Hub_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Crosshairs).name = "Expand Neighborino Crosshairs"; Expand_Crosshairs.QAID = "FF" + Random.Range(1000, 9999); Expand_Crosshairs.GUID = Guid.NewGuid().ToString(); Expand_Crosshairs.PreventMirroring = false; Expand_Crosshairs.category = (RoomCategory)2; Expand_Crosshairs.subCategoryBoss = (RoomBossSubCategory)0; Expand_Crosshairs.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Crosshairs.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Crosshairs.subCategorySecret = (RoomSecretSubCategory)0; Expand_Crosshairs.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Crosshairs.pits = new List(); Expand_Crosshairs.placedObjects = new List(); Expand_Crosshairs.placedObjectPositions = new List(); Expand_Crosshairs.eventTriggerAreas = new List(); Expand_Crosshairs.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Crosshairs.overriddenTilesets = (ValidTilesets)0; Expand_Crosshairs.prerequisites = new List(); Expand_Crosshairs.InvalidInCoop = false; Expand_Crosshairs.cullProceduralDecorationOnWeakPlatforms = false; Expand_Crosshairs.preventAddedDecoLayering = false; Expand_Crosshairs.precludeAllTilemapDrawing = false; Expand_Crosshairs.drawPrecludedCeilingTiles = false; Expand_Crosshairs.preventBorders = false; Expand_Crosshairs.preventFacewallAO = false; Expand_Crosshairs.usesCustomAmbientLight = false; Expand_Crosshairs.customAmbientLight = Color.white; Expand_Crosshairs.ForceAllowDuplicates = false; Expand_Crosshairs.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Crosshairs.IsLostWoodsRoom = false; Expand_Crosshairs.UseCustomMusic = false; Expand_Crosshairs.UseCustomMusicState = false; Expand_Crosshairs.CustomMusicEvent = string.Empty; Expand_Crosshairs.UseCustomMusicSwitch = false; Expand_Crosshairs.CustomMusicSwitch = string.Empty; Expand_Crosshairs.overrideRoomVisualTypeForSecretRooms = false; Expand_Crosshairs.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_Crosshairs.Width = 34; Expand_Crosshairs.Height = 34; Expand_Crosshairs.additionalObjectLayers = new List(0); RoomBuilder.AddExitToRoom(Expand_Crosshairs, new Vector2(0f, 16f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Crosshairs, new Vector2(35f, 16f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Crosshairs, new Vector2(16f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Crosshairs, new Vector2(16f, 35f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Crosshairs, new Vector2(7f, 6f), null, null, "b54d89f9e802455cbb2b8a96a31e8259"); RoomBuilder.AddObjectToRoom(Expand_Crosshairs, new Vector2(7f, 22f), null, null, "b54d89f9e802455cbb2b8a96a31e8259"); RoomBuilder.AddObjectToRoom(Expand_Crosshairs, new Vector2(23f, 7f), null, null, "128db2f0781141bcb505d8f00f9e4d47"); RoomBuilder.AddObjectToRoom(Expand_Crosshairs, new Vector2(23f, 22f), null, null, "128db2f0781141bcb505d8f00f9e4d47"); RoomBuilder.AddObjectToRoom(Expand_Crosshairs, new Vector2(15f, 4f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Crosshairs, new Vector2(15f, 24f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Crosshairs, new Vector2(4f, 14f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Crosshairs, new Vector2(24f, 14f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.GenerateRoomLayout(Expand_Crosshairs, "Expand_Neighborino_Crosshair_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Basic).name = "Expand Neighborino Basic"; Expand_Basic.QAID = "FF" + Random.Range(1000, 9999); Expand_Basic.GUID = Guid.NewGuid().ToString(); Expand_Basic.PreventMirroring = false; Expand_Basic.category = (RoomCategory)2; Expand_Basic.subCategoryBoss = (RoomBossSubCategory)0; Expand_Basic.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Basic.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Basic.subCategorySecret = (RoomSecretSubCategory)0; Expand_Basic.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Basic.pits = new List(); Expand_Basic.placedObjects = new List(); Expand_Basic.placedObjectPositions = new List(); Expand_Basic.eventTriggerAreas = new List(); Expand_Basic.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Basic.overriddenTilesets = (ValidTilesets)0; Expand_Basic.prerequisites = new List(); Expand_Basic.InvalidInCoop = false; Expand_Basic.cullProceduralDecorationOnWeakPlatforms = false; Expand_Basic.preventAddedDecoLayering = false; Expand_Basic.precludeAllTilemapDrawing = false; Expand_Basic.drawPrecludedCeilingTiles = false; Expand_Basic.preventBorders = false; Expand_Basic.preventFacewallAO = false; Expand_Basic.usesCustomAmbientLight = false; Expand_Basic.customAmbientLight = Color.white; Expand_Basic.ForceAllowDuplicates = false; Expand_Basic.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Basic.IsLostWoodsRoom = false; Expand_Basic.UseCustomMusic = false; Expand_Basic.UseCustomMusicState = false; Expand_Basic.CustomMusicEvent = string.Empty; Expand_Basic.UseCustomMusicSwitch = false; Expand_Basic.CustomMusicSwitch = string.Empty; Expand_Basic.overrideRoomVisualTypeForSecretRooms = false; Expand_Basic.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_Basic.Width = 28; Expand_Basic.Height = 26; Expand_Basic.additionalObjectLayers = new List(0); RoomBuilder.AddExitToRoom(Expand_Basic, new Vector2(0f, 13f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Basic, new Vector2(29f, 13f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Basic, new Vector2(14f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Basic, new Vector2(14f, 27f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Basic, new Vector2(12f, 7f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_Basic, new Vector2(13f, 7f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_Basic, new Vector2(14f, 7f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_Basic, new Vector2(15f, 7f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_Basic, new Vector2(12f, 8f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_Basic, new Vector2(13f, 8f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_Basic, new Vector2(14f, 8f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_Basic, new Vector2(15f, 8f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_Basic, new Vector2(12f, 17f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_Basic, new Vector2(13f, 17f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_Basic, new Vector2(14f, 17f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_Basic, new Vector2(15f, 17f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_Basic, new Vector2(12f, 18f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_Basic, new Vector2(13f, 18f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_Basic, new Vector2(14f, 18f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_Basic, new Vector2(15f, 18f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_Basic, new Vector2(21f, 4f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Basic, new Vector2(7f, 21f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Basic, new Vector2(7f, 4f), null, null, "128db2f0781141bcb505d8f00f9e4d47"); RoomBuilder.AddObjectToRoom(Expand_Basic, new Vector2(24f, 21f), null, null, "b54d89f9e802455cbb2b8a96a31e8259"); RoomBuilder.AddObjectToRoom(Expand_Basic, new Vector2(8f, 12f), null, null, "ec8ea75b557d4e7b8ceeaacdf6f8238c"); RoomBuilder.AddObjectToRoom(Expand_Basic, new Vector2(18f, 12f), null, null, "ec8ea75b557d4e7b8ceeaacdf6f8238c"); RoomBuilder.GenerateRoomLayout(Expand_Basic, "Expand_Neighborino_Basic_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_JumpInThePit).name = "Expand Neighborino JumpInThePit"; Expand_JumpInThePit.QAID = "FF" + Random.Range(1000, 9999); Expand_JumpInThePit.GUID = Guid.NewGuid().ToString(); Expand_JumpInThePit.PreventMirroring = false; Expand_JumpInThePit.category = (RoomCategory)2; Expand_JumpInThePit.subCategoryBoss = (RoomBossSubCategory)0; Expand_JumpInThePit.subCategoryNormal = (RoomNormalSubCategory)0; Expand_JumpInThePit.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_JumpInThePit.subCategorySecret = (RoomSecretSubCategory)0; Expand_JumpInThePit.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_JumpInThePit.pits = new List(); Expand_JumpInThePit.placedObjects = new List(); Expand_JumpInThePit.placedObjectPositions = new List(); Expand_JumpInThePit.eventTriggerAreas = new List(); Expand_JumpInThePit.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_JumpInThePit.overriddenTilesets = (ValidTilesets)0; Expand_JumpInThePit.prerequisites = new List(); Expand_JumpInThePit.InvalidInCoop = false; Expand_JumpInThePit.cullProceduralDecorationOnWeakPlatforms = false; Expand_JumpInThePit.preventAddedDecoLayering = false; Expand_JumpInThePit.precludeAllTilemapDrawing = false; Expand_JumpInThePit.drawPrecludedCeilingTiles = false; Expand_JumpInThePit.preventBorders = false; Expand_JumpInThePit.preventFacewallAO = false; Expand_JumpInThePit.usesCustomAmbientLight = false; Expand_JumpInThePit.customAmbientLight = Color.white; Expand_JumpInThePit.ForceAllowDuplicates = false; Expand_JumpInThePit.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_JumpInThePit.IsLostWoodsRoom = false; Expand_JumpInThePit.UseCustomMusic = false; Expand_JumpInThePit.UseCustomMusicState = false; Expand_JumpInThePit.CustomMusicEvent = string.Empty; Expand_JumpInThePit.UseCustomMusicSwitch = false; Expand_JumpInThePit.CustomMusicSwitch = string.Empty; Expand_JumpInThePit.overrideRoomVisualTypeForSecretRooms = false; Expand_JumpInThePit.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_JumpInThePit.Width = 26; Expand_JumpInThePit.Height = 35; PrototypeDungeonRoom expand_JumpInThePit = Expand_JumpInThePit; list9 = new List(); List list40 = list9; val10 = new PrototypeRoomObjectLayer(); val10.placedObjects = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "6b7ef9e5d05b4f96b04f05ef4a0d1b18", contentsBasePosition = new Vector2(18f, 14f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "6b7ef9e5d05b4f96b04f05ef4a0d1b18", contentsBasePosition = new Vector2(7f, 14f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "6b7ef9e5d05b4f96b04f05ef4a0d1b18", contentsBasePosition = new Vector2(18f, 20f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 }, new PrototypePlacedObjectData { enemyBehaviourGuid = "6b7ef9e5d05b4f96b04f05ef4a0d1b18", contentsBasePosition = new Vector2(7f, 20f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; val10.placedObjectBasePositions = new List { new Vector2(18f, 14f), new Vector2(7f, 14f), new Vector2(18f, 20f), new Vector2(7f, 20f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list40.Add(val10); expand_JumpInThePit.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_JumpInThePit, new Vector2(13f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_JumpInThePit, new Vector2(13f, 36f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_JumpInThePit, new Vector2(5f, 4f), null, null, "1a4872dafdb34fd29fe8ac90bd2cea67"); RoomBuilder.AddObjectToRoom(Expand_JumpInThePit, new Vector2(19f, 28f), null, null, "1a4872dafdb34fd29fe8ac90bd2cea67"); RoomBuilder.GenerateRoomLayout(Expand_JumpInThePit, "Expand_Neighborino_JumpInThePit_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_LongSpikeTrap).name = "Expand Neighborino Long SpikeTrap"; Expand_LongSpikeTrap.QAID = "FF" + Random.Range(1000, 9999); Expand_LongSpikeTrap.GUID = Guid.NewGuid().ToString(); Expand_LongSpikeTrap.PreventMirroring = false; Expand_LongSpikeTrap.category = (RoomCategory)2; Expand_LongSpikeTrap.subCategoryBoss = (RoomBossSubCategory)0; Expand_LongSpikeTrap.subCategoryNormal = (RoomNormalSubCategory)1; Expand_LongSpikeTrap.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_LongSpikeTrap.subCategorySecret = (RoomSecretSubCategory)0; Expand_LongSpikeTrap.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_LongSpikeTrap.pits = new List(); Expand_LongSpikeTrap.placedObjects = new List(); Expand_LongSpikeTrap.placedObjectPositions = new List(); Expand_LongSpikeTrap.eventTriggerAreas = new List(); Expand_LongSpikeTrap.roomEvents = new List(0); Expand_LongSpikeTrap.overriddenTilesets = (ValidTilesets)0; Expand_LongSpikeTrap.prerequisites = new List(); Expand_LongSpikeTrap.InvalidInCoop = false; Expand_LongSpikeTrap.cullProceduralDecorationOnWeakPlatforms = false; Expand_LongSpikeTrap.preventAddedDecoLayering = false; Expand_LongSpikeTrap.precludeAllTilemapDrawing = false; Expand_LongSpikeTrap.drawPrecludedCeilingTiles = false; Expand_LongSpikeTrap.preventBorders = false; Expand_LongSpikeTrap.preventFacewallAO = false; Expand_LongSpikeTrap.usesCustomAmbientLight = false; Expand_LongSpikeTrap.customAmbientLight = Color.white; Expand_LongSpikeTrap.ForceAllowDuplicates = false; Expand_LongSpikeTrap.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_LongSpikeTrap.IsLostWoodsRoom = false; Expand_LongSpikeTrap.UseCustomMusic = false; Expand_LongSpikeTrap.UseCustomMusicState = false; Expand_LongSpikeTrap.CustomMusicEvent = string.Empty; Expand_LongSpikeTrap.UseCustomMusicSwitch = false; Expand_LongSpikeTrap.CustomMusicSwitch = string.Empty; Expand_LongSpikeTrap.overrideRoomVisualTypeForSecretRooms = false; Expand_LongSpikeTrap.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_LongSpikeTrap.Width = 15; Expand_LongSpikeTrap.Height = 37; Expand_LongSpikeTrap.additionalObjectLayers = new List(0); RoomBuilder.AddExitToRoom(Expand_LongSpikeTrap, new Vector2(4f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_LongSpikeTrap, new Vector2(1f, 35f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(3f, 2f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(3f, 4f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(5f, 4f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(7f, 4f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(9f, 4f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(11f, 4f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(11f, 6f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(11f, 8f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(11f, 10f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(9f, 10f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(7f, 10f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(5f, 10f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(3f, 10f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(3f, 12f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(3f, 14f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(3f, 16f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(5f, 16f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(7f, 16f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(9f, 16f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(11f, 16f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(11f, 18f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(11f, 20f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(11f, 22f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(9f, 22f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(7f, 22f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(5f, 22f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(3f, 22f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(3f, 24f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(3f, 26f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(3f, 28f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(5f, 28f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(7f, 28f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(9f, 28f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(11f, 28f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(11f, 30f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(11f, 32f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(11f, 34f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(9f, 34f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(7f, 34f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(5f, 34f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_LongSpikeTrap, new Vector2(3f, 34f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.GenerateRoomLayout(Expand_LongSpikeTrap, "Expand_Neighborino_LongSpikeTrap_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_SpikeTrap).name = "Expand Neighborino SpikeTrap"; Expand_SpikeTrap.QAID = "FF" + Random.Range(1000, 9999); Expand_SpikeTrap.GUID = Guid.NewGuid().ToString(); Expand_SpikeTrap.PreventMirroring = false; Expand_SpikeTrap.category = (RoomCategory)2; Expand_SpikeTrap.subCategoryBoss = (RoomBossSubCategory)0; Expand_SpikeTrap.subCategoryNormal = (RoomNormalSubCategory)1; Expand_SpikeTrap.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_SpikeTrap.subCategorySecret = (RoomSecretSubCategory)0; Expand_SpikeTrap.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_SpikeTrap.pits = new List(); Expand_SpikeTrap.placedObjects = new List(); Expand_SpikeTrap.placedObjectPositions = new List(); Expand_SpikeTrap.eventTriggerAreas = new List(); Expand_SpikeTrap.roomEvents = new List(0); Expand_SpikeTrap.overriddenTilesets = (ValidTilesets)0; Expand_SpikeTrap.prerequisites = new List(); Expand_SpikeTrap.InvalidInCoop = false; Expand_SpikeTrap.cullProceduralDecorationOnWeakPlatforms = false; Expand_SpikeTrap.preventAddedDecoLayering = false; Expand_SpikeTrap.precludeAllTilemapDrawing = false; Expand_SpikeTrap.drawPrecludedCeilingTiles = false; Expand_SpikeTrap.preventBorders = false; Expand_SpikeTrap.preventFacewallAO = false; Expand_SpikeTrap.usesCustomAmbientLight = false; Expand_SpikeTrap.customAmbientLight = Color.white; Expand_SpikeTrap.ForceAllowDuplicates = false; Expand_SpikeTrap.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_SpikeTrap.IsLostWoodsRoom = false; Expand_SpikeTrap.UseCustomMusic = false; Expand_SpikeTrap.UseCustomMusicState = false; Expand_SpikeTrap.CustomMusicEvent = string.Empty; Expand_SpikeTrap.UseCustomMusicSwitch = false; Expand_SpikeTrap.CustomMusicSwitch = string.Empty; Expand_SpikeTrap.overrideRoomVisualTypeForSecretRooms = false; Expand_SpikeTrap.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_SpikeTrap.Width = 26; Expand_SpikeTrap.Height = 22; Expand_SpikeTrap.additionalObjectLayers = new List(0); RoomBuilder.AddExitToRoom(Expand_SpikeTrap, new Vector2(0f, 11f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_SpikeTrap, new Vector2(27f, 11f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_SpikeTrap, new Vector2(13f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_SpikeTrap, new Vector2(13f, 23f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_SpikeTrap, new Vector2(2f, 10f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpikeTrap, new Vector2(4f, 10f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpikeTrap, new Vector2(6f, 10f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpikeTrap, new Vector2(8f, 10f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpikeTrap, new Vector2(12f, 10f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpikeTrap, new Vector2(16f, 10f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpikeTrap, new Vector2(18f, 10f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpikeTrap, new Vector2(20f, 10f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpikeTrap, new Vector2(22f, 10f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpikeTrap, new Vector2(12f, 2f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpikeTrap, new Vector2(12f, 4f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpikeTrap, new Vector2(12f, 6f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpikeTrap, new Vector2(12f, 14f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpikeTrap, new Vector2(12f, 16f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpikeTrap, new Vector2(12f, 18f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.GenerateRoomLayout(Expand_SpikeTrap, "Expand_Neighborino_SpikeTrap_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_ThinRoom).name = "Expand Neighborino Thin Room"; Expand_ThinRoom.QAID = "FF" + Random.Range(1000, 9999); Expand_ThinRoom.GUID = Guid.NewGuid().ToString(); Expand_ThinRoom.PreventMirroring = false; Expand_ThinRoom.category = (RoomCategory)2; Expand_ThinRoom.subCategoryBoss = (RoomBossSubCategory)0; Expand_ThinRoom.subCategoryNormal = (RoomNormalSubCategory)0; Expand_ThinRoom.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_ThinRoom.subCategorySecret = (RoomSecretSubCategory)0; Expand_ThinRoom.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_ThinRoom.pits = new List(); Expand_ThinRoom.placedObjects = new List(); Expand_ThinRoom.placedObjectPositions = new List(); Expand_ThinRoom.eventTriggerAreas = new List(); Expand_ThinRoom.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_ThinRoom.overriddenTilesets = (ValidTilesets)0; Expand_ThinRoom.prerequisites = new List(); Expand_ThinRoom.InvalidInCoop = false; Expand_ThinRoom.cullProceduralDecorationOnWeakPlatforms = false; Expand_ThinRoom.preventAddedDecoLayering = false; Expand_ThinRoom.precludeAllTilemapDrawing = false; Expand_ThinRoom.drawPrecludedCeilingTiles = false; Expand_ThinRoom.preventBorders = false; Expand_ThinRoom.preventFacewallAO = false; Expand_ThinRoom.usesCustomAmbientLight = false; Expand_ThinRoom.customAmbientLight = Color.white; Expand_ThinRoom.ForceAllowDuplicates = false; Expand_ThinRoom.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_ThinRoom.IsLostWoodsRoom = false; Expand_ThinRoom.UseCustomMusic = false; Expand_ThinRoom.UseCustomMusicState = false; Expand_ThinRoom.CustomMusicEvent = string.Empty; Expand_ThinRoom.UseCustomMusicSwitch = false; Expand_ThinRoom.CustomMusicSwitch = string.Empty; Expand_ThinRoom.overrideRoomVisualTypeForSecretRooms = false; Expand_ThinRoom.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_ThinRoom.Width = 24; Expand_ThinRoom.Height = 4; PrototypeDungeonRoom expand_ThinRoom = Expand_ThinRoom; list9 = new List(); List list41 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj = val10; List list42 = new List { new PrototypePlacedObjectData { enemyBehaviourGuid = "4d37ce3d666b4ddda8039929225b7ede", contentsBasePosition = new Vector2(15f, 1f), layer = 0, xMPxOffset = 0, yMPxOffset = 0, fieldData = new List(0), instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], linkedTriggerAreaIDs = new List(0), assignedPathStartNode = 0 } }; List list43 = list42; PrototypePlacedObjectData val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "4d37ce3d666b4ddda8039929225b7ede"; val13.contentsBasePosition = new Vector2(4f, 1f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list43.Add(val13); obj.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(15f, 1f), new Vector2(4f, 1f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list41.Add(val10); expand_ThinRoom.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_ThinRoom, new Vector2(0f, 2f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_ThinRoom, new Vector2(25f, 2f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_ThinRoom, new Vector2(6f, 1f), null, null, "42be66373a3d4d89b91a35c9ff8adfec"); RoomBuilder.AddObjectToRoom(Expand_ThinRoom, new Vector2(8f, 1f), null, null, "42be66373a3d4d89b91a35c9ff8adfec"); RoomBuilder.AddObjectToRoom(Expand_ThinRoom, new Vector2(8f, 3f), null, null, "42be66373a3d4d89b91a35c9ff8adfec"); RoomBuilder.AddObjectToRoom(Expand_ThinRoom, new Vector2(10f, 2f), null, null, "42be66373a3d4d89b91a35c9ff8adfec"); RoomBuilder.AddObjectToRoom(Expand_ThinRoom, new Vector2(10f, 1f), null, null, "42be66373a3d4d89b91a35c9ff8adfec"); RoomBuilder.AddObjectToRoom(Expand_ThinRoom, new Vector2(12f, 1f), null, null, "42be66373a3d4d89b91a35c9ff8adfec"); RoomBuilder.AddObjectToRoom(Expand_ThinRoom, new Vector2(14f, 2f), null, null, "42be66373a3d4d89b91a35c9ff8adfec"); RoomBuilder.GenerateBasicRoomLayout(Expand_ThinRoom, (CellType)2, (PitBorderType)0); ((Object)Expand_SniperRoom).name = "Expand Neighborino Sniper Room"; Expand_SniperRoom.QAID = "FF" + Random.Range(1000, 9999); Expand_SniperRoom.GUID = Guid.NewGuid().ToString(); Expand_SniperRoom.PreventMirroring = false; Expand_SniperRoom.category = (RoomCategory)2; Expand_SniperRoom.subCategoryBoss = (RoomBossSubCategory)0; Expand_SniperRoom.subCategoryNormal = (RoomNormalSubCategory)0; Expand_SniperRoom.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_SniperRoom.subCategorySecret = (RoomSecretSubCategory)0; Expand_SniperRoom.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_SniperRoom.pits = new List(); Expand_SniperRoom.placedObjects = new List(); Expand_SniperRoom.placedObjectPositions = new List(); Expand_SniperRoom.eventTriggerAreas = new List(); Expand_SniperRoom.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_SniperRoom.overriddenTilesets = (ValidTilesets)0; Expand_SniperRoom.prerequisites = new List(); Expand_SniperRoom.InvalidInCoop = false; Expand_SniperRoom.cullProceduralDecorationOnWeakPlatforms = false; Expand_SniperRoom.preventAddedDecoLayering = false; Expand_SniperRoom.precludeAllTilemapDrawing = false; Expand_SniperRoom.drawPrecludedCeilingTiles = false; Expand_SniperRoom.preventBorders = false; Expand_SniperRoom.preventFacewallAO = false; Expand_SniperRoom.usesCustomAmbientLight = false; Expand_SniperRoom.customAmbientLight = Color.white; Expand_SniperRoom.ForceAllowDuplicates = false; Expand_SniperRoom.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_SniperRoom.IsLostWoodsRoom = false; Expand_SniperRoom.UseCustomMusic = false; Expand_SniperRoom.UseCustomMusicState = false; Expand_SniperRoom.CustomMusicEvent = string.Empty; Expand_SniperRoom.UseCustomMusicSwitch = false; Expand_SniperRoom.CustomMusicSwitch = string.Empty; Expand_SniperRoom.overrideRoomVisualTypeForSecretRooms = false; Expand_SniperRoom.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_SniperRoom.Width = 32; Expand_SniperRoom.Height = 27; PrototypeDungeonRoom expand_SniperRoom = Expand_SniperRoom; list9 = new List(); List list44 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj2 = val10; list42 = new List(); List list45 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "31a3ea0c54a745e182e22ea54844a82d"; val13.contentsBasePosition = new Vector2(29f, 14f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list45.Add(val13); List list46 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "31a3ea0c54a745e182e22ea54844a82d"; val13.contentsBasePosition = new Vector2(2f, 14f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list46.Add(val13); obj2.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(29f, 14f), new Vector2(2f, 14f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list44.Add(val10); expand_SniperRoom.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_SniperRoom, new Vector2(16f, 28f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_SniperRoom, new Vector2(16f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_SniperRoom, new Vector2(6f, 1f), null, null, "42be66373a3d4d89b91a35c9ff8adfec"); RoomBuilder.AddObjectToRoom(Expand_SniperRoom, new Vector2(8f, 1f), null, null, "42be66373a3d4d89b91a35c9ff8adfec"); RoomBuilder.GenerateRoomLayout(Expand_SniperRoom, "Expand_Neighborino_SniperRoom_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_TableRoom).name = "Expand Neighborino Table Room"; Expand_TableRoom.QAID = "FF" + Random.Range(1000, 9999); Expand_TableRoom.GUID = Guid.NewGuid().ToString(); Expand_TableRoom.PreventMirroring = false; Expand_TableRoom.category = (RoomCategory)2; Expand_TableRoom.subCategoryBoss = (RoomBossSubCategory)0; Expand_TableRoom.subCategoryNormal = (RoomNormalSubCategory)0; Expand_TableRoom.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_TableRoom.subCategorySecret = (RoomSecretSubCategory)0; Expand_TableRoom.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_TableRoom.pits = new List(); Expand_TableRoom.placedObjects = new List(); Expand_TableRoom.placedObjectPositions = new List(); Expand_TableRoom.eventTriggerAreas = new List(); Expand_TableRoom.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_TableRoom.overriddenTilesets = (ValidTilesets)0; Expand_TableRoom.prerequisites = new List(); Expand_TableRoom.InvalidInCoop = false; Expand_TableRoom.cullProceduralDecorationOnWeakPlatforms = false; Expand_TableRoom.preventAddedDecoLayering = false; Expand_TableRoom.precludeAllTilemapDrawing = false; Expand_TableRoom.drawPrecludedCeilingTiles = false; Expand_TableRoom.preventBorders = false; Expand_TableRoom.preventFacewallAO = false; Expand_TableRoom.usesCustomAmbientLight = false; Expand_TableRoom.customAmbientLight = Color.white; Expand_TableRoom.ForceAllowDuplicates = false; Expand_TableRoom.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_TableRoom.IsLostWoodsRoom = false; Expand_TableRoom.UseCustomMusic = false; Expand_TableRoom.UseCustomMusicState = false; Expand_TableRoom.CustomMusicEvent = string.Empty; Expand_TableRoom.UseCustomMusicSwitch = false; Expand_TableRoom.CustomMusicSwitch = string.Empty; Expand_TableRoom.overrideRoomVisualTypeForSecretRooms = false; Expand_TableRoom.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_TableRoom.Width = 16; Expand_TableRoom.Height = 14; PrototypeDungeonRoom expand_TableRoom = Expand_TableRoom; list9 = new List(); List list47 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj3 = val10; list42 = new List(); List list48 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "ed37fa13e0fa4fcf8239643957c51293"; val13.contentsBasePosition = new Vector2(6f, 5f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list48.Add(val13); List list49 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "ed37fa13e0fa4fcf8239643957c51293"; val13.contentsBasePosition = new Vector2(9f, 6f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list49.Add(val13); List list50 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "ed37fa13e0fa4fcf8239643957c51293"; val13.contentsBasePosition = new Vector2(6f, 8f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list50.Add(val13); obj3.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(6f, 5f), new Vector2(9f, 6f), new Vector2(6f, 8f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list47.Add(val10); expand_TableRoom.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_TableRoom, new Vector2(0f, 7f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_TableRoom, new Vector2(17f, 7f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_TableRoom, new Vector2(8f, 15f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_TableRoom, new Vector2(8f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_TableRoom, new Vector2(13f, 6f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoom, new Vector2(13f, 9f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoom, new Vector2(13f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoom, new Vector2(2f, 6f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoom, new Vector2(2f, 9f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoom, new Vector2(2f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoom, new Vector2(4f, 2f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoom, new Vector2(7f, 2f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoom, new Vector2(10f, 2f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoom, new Vector2(4f, 11f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoom, new Vector2(7f, 11f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoom, new Vector2(10f, 11f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoom, new Vector2(7f, 6f), null, null, "98ca70157c364750a60f5e0084f9d3e2"); RoomBuilder.GenerateBasicRoomLayout(Expand_TableRoom, (CellType)2, (PitBorderType)0); ((Object)Expand_GoopTroop).name = "Expand Neighborino GoopTroop"; Expand_GoopTroop.QAID = "FF" + Random.Range(1000, 9999); Expand_GoopTroop.GUID = Guid.NewGuid().ToString(); Expand_GoopTroop.PreventMirroring = false; Expand_GoopTroop.category = (RoomCategory)2; Expand_GoopTroop.subCategoryBoss = (RoomBossSubCategory)0; Expand_GoopTroop.subCategoryNormal = (RoomNormalSubCategory)0; Expand_GoopTroop.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_GoopTroop.subCategorySecret = (RoomSecretSubCategory)0; Expand_GoopTroop.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_GoopTroop.pits = new List(); Expand_GoopTroop.placedObjects = new List(); Expand_GoopTroop.placedObjectPositions = new List(); Expand_GoopTroop.eventTriggerAreas = new List(); Expand_GoopTroop.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_GoopTroop.overriddenTilesets = (ValidTilesets)0; Expand_GoopTroop.prerequisites = new List(); Expand_GoopTroop.InvalidInCoop = false; Expand_GoopTroop.cullProceduralDecorationOnWeakPlatforms = false; Expand_GoopTroop.preventAddedDecoLayering = false; Expand_GoopTroop.precludeAllTilemapDrawing = false; Expand_GoopTroop.drawPrecludedCeilingTiles = false; Expand_GoopTroop.preventBorders = false; Expand_GoopTroop.preventFacewallAO = false; Expand_GoopTroop.usesCustomAmbientLight = false; Expand_GoopTroop.customAmbientLight = Color.white; Expand_GoopTroop.ForceAllowDuplicates = false; Expand_GoopTroop.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_GoopTroop.IsLostWoodsRoom = false; Expand_GoopTroop.UseCustomMusic = false; Expand_GoopTroop.UseCustomMusicState = false; Expand_GoopTroop.CustomMusicEvent = string.Empty; Expand_GoopTroop.UseCustomMusicSwitch = false; Expand_GoopTroop.CustomMusicSwitch = string.Empty; Expand_GoopTroop.overrideRoomVisualTypeForSecretRooms = false; Expand_GoopTroop.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_GoopTroop.Width = 26; Expand_GoopTroop.Height = 26; PrototypeDungeonRoom expand_GoopTroop = Expand_GoopTroop; list9 = new List(); List list51 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj4 = val10; list42 = new List(); List list52 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "ffdc8680bdaa487f8f31995539f74265"; val13.contentsBasePosition = new Vector2(15f, 15f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list52.Add(val13); List list53 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "ffdc8680bdaa487f8f31995539f74265"; val13.contentsBasePosition = new Vector2(10f, 15f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list53.Add(val13); List list54 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "7ec3e8146f634c559a7d58b19191cd43"; val13.contentsBasePosition = new Vector2(13f, 10f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list54.Add(val13); obj4.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(15f, 15f), new Vector2(10f, 15f), new Vector2(13f, 10f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list51.Add(val10); expand_GoopTroop.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_GoopTroop, new Vector2(0f, 13f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_GoopTroop, new Vector2(27f, 13f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_GoopTroop, new Vector2(13f, 27f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_GoopTroop, new Vector2(13f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_GoopTroop, new Vector2(15f, 13f), null, null, "e61cab252cfb435db9172adc96ded75f"); RoomBuilder.AddObjectToRoom(Expand_GoopTroop, new Vector2(11f, 13f), null, null, "e61cab252cfb435db9172adc96ded75f"); RoomBuilder.GenerateRoomLayout(Expand_GoopTroop, "Neighborino_GoopTroop_Layout", (PitBorderType)0, (CoreDamageTypes)16); ((Object)Expand_HopScotch).name = "Expand Neighborino HopScotch"; Expand_HopScotch.QAID = "FF" + Random.Range(1000, 9999); Expand_HopScotch.GUID = Guid.NewGuid().ToString(); Expand_HopScotch.PreventMirroring = false; Expand_HopScotch.category = (RoomCategory)2; Expand_HopScotch.subCategoryBoss = (RoomBossSubCategory)0; Expand_HopScotch.subCategoryNormal = (RoomNormalSubCategory)1; Expand_HopScotch.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_HopScotch.subCategorySecret = (RoomSecretSubCategory)0; Expand_HopScotch.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_HopScotch.pits = new List(); Expand_HopScotch.placedObjects = new List(); Expand_HopScotch.placedObjectPositions = new List(); Expand_HopScotch.eventTriggerAreas = new List(); Expand_HopScotch.roomEvents = new List(0); Expand_HopScotch.overriddenTilesets = (ValidTilesets)0; Expand_HopScotch.prerequisites = new List(); Expand_HopScotch.InvalidInCoop = false; Expand_HopScotch.cullProceduralDecorationOnWeakPlatforms = false; Expand_HopScotch.preventAddedDecoLayering = false; Expand_HopScotch.precludeAllTilemapDrawing = false; Expand_HopScotch.drawPrecludedCeilingTiles = false; Expand_HopScotch.preventBorders = false; Expand_HopScotch.preventFacewallAO = false; Expand_HopScotch.usesCustomAmbientLight = false; Expand_HopScotch.customAmbientLight = Color.white; Expand_HopScotch.ForceAllowDuplicates = false; Expand_HopScotch.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_HopScotch.IsLostWoodsRoom = false; Expand_HopScotch.UseCustomMusic = false; Expand_HopScotch.UseCustomMusicState = false; Expand_HopScotch.CustomMusicEvent = string.Empty; Expand_HopScotch.UseCustomMusicSwitch = false; Expand_HopScotch.CustomMusicSwitch = string.Empty; Expand_HopScotch.overrideRoomVisualTypeForSecretRooms = false; Expand_HopScotch.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_HopScotch.Width = 30; Expand_HopScotch.Height = 10; Expand_HopScotch.additionalObjectLayers = new List(0); RoomBuilder.AddExitToRoom(Expand_HopScotch, new Vector2(0f, 5f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_HopScotch, new Vector2(31f, 5f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_HopScotch, new Vector2(5f, 5f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_HopScotch, new Vector2(8f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_HopScotch, new Vector2(11f, 5f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_HopScotch, new Vector2(14f, 7f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_HopScotch, new Vector2(16f, 4f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_HopScotch, new Vector2(19f, 2f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_HopScotch, new Vector2(22f, 4f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_HopScotch, new Vector2(24f, 7f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.GenerateRoomLayout(Expand_HopScotch, "Neighborino_Hopscoth_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Pit).name = "Expand Neighborino Pit"; Expand_Pit.QAID = "FF" + Random.Range(1000, 9999); Expand_Pit.GUID = Guid.NewGuid().ToString(); Expand_Pit.PreventMirroring = false; Expand_Pit.category = (RoomCategory)2; Expand_Pit.subCategoryBoss = (RoomBossSubCategory)0; Expand_Pit.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Pit.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Pit.subCategorySecret = (RoomSecretSubCategory)0; Expand_Pit.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Pit.pits = new List(); Expand_Pit.placedObjects = new List(); Expand_Pit.placedObjectPositions = new List(); Expand_Pit.eventTriggerAreas = new List(); Expand_Pit.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Pit.overriddenTilesets = (ValidTilesets)0; Expand_Pit.prerequisites = new List(); Expand_Pit.InvalidInCoop = false; Expand_Pit.cullProceduralDecorationOnWeakPlatforms = false; Expand_Pit.preventAddedDecoLayering = false; Expand_Pit.precludeAllTilemapDrawing = false; Expand_Pit.drawPrecludedCeilingTiles = false; Expand_Pit.preventBorders = false; Expand_Pit.preventFacewallAO = false; Expand_Pit.usesCustomAmbientLight = false; Expand_Pit.customAmbientLight = Color.white; Expand_Pit.ForceAllowDuplicates = false; Expand_Pit.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Pit.IsLostWoodsRoom = false; Expand_Pit.UseCustomMusic = false; Expand_Pit.UseCustomMusicState = false; Expand_Pit.CustomMusicEvent = string.Empty; Expand_Pit.UseCustomMusicSwitch = false; Expand_Pit.CustomMusicSwitch = string.Empty; Expand_Pit.overrideRoomVisualTypeForSecretRooms = false; Expand_Pit.overrideRoomVisualType = 5; Expand_Pit.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_Pit.Width = 28; Expand_Pit.Height = 25; PrototypeDungeonRoom expand_Pit = Expand_Pit; list9 = new List(); List list55 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj5 = val10; list42 = new List(); List list56 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "2feb50a6a40f4f50982e89fd276f6f15"; val13.contentsBasePosition = new Vector2(20f, 9f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list56.Add(val13); List list57 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "2feb50a6a40f4f50982e89fd276f6f15"; val13.contentsBasePosition = new Vector2(8f, 20f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list57.Add(val13); List list58 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "2d4f8b5404614e7d8b235006acde427a"; val13.contentsBasePosition = new Vector2(7f, 8f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list58.Add(val13); List list59 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "2d4f8b5404614e7d8b235006acde427a"; val13.contentsBasePosition = new Vector2(20f, 20f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list59.Add(val13); List list60 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "72d2f44431da43b8a3bae7d8a114a46d"; val13.contentsBasePosition = new Vector2(2f, 2f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list60.Add(val13); List list61 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "72d2f44431da43b8a3bae7d8a114a46d"; val13.contentsBasePosition = new Vector2(25f, 2f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list61.Add(val13); List list62 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "72d2f44431da43b8a3bae7d8a114a46d"; val13.contentsBasePosition = new Vector2(2f, 22f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list62.Add(val13); List list63 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "72d2f44431da43b8a3bae7d8a114a46d"; val13.contentsBasePosition = new Vector2(25f, 22f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list63.Add(val13); obj5.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(20f, 9f), new Vector2(8f, 20f), new Vector2(7f, 8f), new Vector2(20f, 20f), new Vector2(2f, 2f), new Vector2(25f, 2f), new Vector2(2f, 22f), new Vector2(25f, 22f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = true; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list55.Add(val10); expand_Pit.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_Pit, new Vector2(14f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Pit, new Vector2(14f, 26f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Pit, new Vector2(12f, 11f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Pit, new Vector2(14f, 13f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Pit, new Vector2(7f, 7f), null, null, "ed37fa13e0fa4fcf8239643957c51293"); RoomBuilder.AddObjectToRoom(Expand_Pit, new Vector2(20f, 7f), null, null, "ed37fa13e0fa4fcf8239643957c51293"); RoomBuilder.AddObjectToRoom(Expand_Pit, new Vector2(7f, 17f), null, null, "af84951206324e349e1f13f9b7b60c1a"); RoomBuilder.AddObjectToRoom(Expand_Pit, new Vector2(20f, 17f), null, null, "af84951206324e349e1f13f9b7b60c1a"); RoomBuilder.GenerateRoomLayout(Expand_Pit, "Neighborino_Pit_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Singer).name = "Expand Neighborino Singer"; Expand_Singer.QAID = "FF" + Random.Range(1000, 9999); Expand_Singer.GUID = Guid.NewGuid().ToString(); Expand_Singer.PreventMirroring = false; Expand_Singer.category = (RoomCategory)2; Expand_Singer.subCategoryBoss = (RoomBossSubCategory)0; Expand_Singer.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Singer.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Singer.subCategorySecret = (RoomSecretSubCategory)0; Expand_Singer.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Singer.pits = new List(); Expand_Singer.placedObjects = new List(); Expand_Singer.placedObjectPositions = new List(); Expand_Singer.eventTriggerAreas = new List(); Expand_Singer.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Singer.overriddenTilesets = (ValidTilesets)0; Expand_Singer.prerequisites = new List(); Expand_Singer.InvalidInCoop = false; Expand_Singer.cullProceduralDecorationOnWeakPlatforms = false; Expand_Singer.preventAddedDecoLayering = false; Expand_Singer.precludeAllTilemapDrawing = false; Expand_Singer.drawPrecludedCeilingTiles = false; Expand_Singer.preventBorders = false; Expand_Singer.preventFacewallAO = false; Expand_Singer.usesCustomAmbientLight = false; Expand_Singer.customAmbientLight = Color.white; Expand_Singer.ForceAllowDuplicates = false; Expand_Singer.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Singer.IsLostWoodsRoom = false; Expand_Singer.UseCustomMusic = false; Expand_Singer.UseCustomMusicState = false; Expand_Singer.CustomMusicEvent = string.Empty; Expand_Singer.UseCustomMusicSwitch = false; Expand_Singer.CustomMusicSwitch = string.Empty; Expand_Singer.overrideRoomVisualTypeForSecretRooms = false; Expand_Singer.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_Singer.Width = 27; Expand_Singer.Height = 14; PrototypeDungeonRoom expand_Singer = Expand_Singer; list9 = new List(); List list64 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj6 = val10; list42 = new List(); List list65 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "8b4a938cdbc64e64822e841e482ba3d2"; val13.contentsBasePosition = new Vector2(23f, 11f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list65.Add(val13); List list66 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "f905765488874846b7ff257ff81d6d0c"; val13.contentsBasePosition = new Vector2(13f, 2f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list66.Add(val13); List list67 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "f905765488874846b7ff257ff81d6d0c"; val13.contentsBasePosition = new Vector2(16f, 2f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list67.Add(val13); List list68 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "88b6b6a93d4b4234a67844ef4728382c"; val13.contentsBasePosition = new Vector2(13f, 12f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list68.Add(val13); obj6.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(23f, 11f), new Vector2(13f, 2f), new Vector2(16f, 2f), new Vector2(13f, 12f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list64.Add(val10); expand_Singer.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_Singer, new Vector2(0f, 3f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Singer, new Vector2(28f, 3f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Singer, new Vector2(3f, 11f), null, null, "8b4a938cdbc64e64822e841e482ba3d2"); RoomBuilder.AddObjectToRoom(Expand_Singer, new Vector2(13f, 2f), null, null, "f905765488874846b7ff257ff81d6d0c"); RoomBuilder.AddObjectToRoom(Expand_Singer, new Vector2(9f, 3f), null, null, "128db2f0781141bcb505d8f00f9e4d47"); RoomBuilder.AddObjectToRoom(Expand_Singer, new Vector2(18f, 3f), null, null, "b54d89f9e802455cbb2b8a96a31e8259"); RoomBuilder.GenerateRoomLayout(Expand_Singer, "Neighborino_Singer_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_TableRoom2).name = "Expand Neighborino Table Room 2"; Expand_TableRoom2.QAID = "FF" + Random.Range(1000, 9999); Expand_TableRoom2.GUID = Guid.NewGuid().ToString(); Expand_TableRoom2.PreventMirroring = false; Expand_TableRoom2.category = (RoomCategory)2; Expand_TableRoom2.subCategoryBoss = (RoomBossSubCategory)0; Expand_TableRoom2.subCategoryNormal = (RoomNormalSubCategory)0; Expand_TableRoom2.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_TableRoom2.subCategorySecret = (RoomSecretSubCategory)0; Expand_TableRoom2.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_TableRoom2.pits = new List(); Expand_TableRoom2.placedObjects = new List(); Expand_TableRoom2.placedObjectPositions = new List(); Expand_TableRoom2.eventTriggerAreas = new List(); Expand_TableRoom2.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_TableRoom2.overriddenTilesets = (ValidTilesets)0; Expand_TableRoom2.prerequisites = new List(); Expand_TableRoom2.InvalidInCoop = false; Expand_TableRoom2.cullProceduralDecorationOnWeakPlatforms = false; Expand_TableRoom2.preventAddedDecoLayering = false; Expand_TableRoom2.precludeAllTilemapDrawing = false; Expand_TableRoom2.drawPrecludedCeilingTiles = false; Expand_TableRoom2.preventBorders = false; Expand_TableRoom2.preventFacewallAO = false; Expand_TableRoom2.usesCustomAmbientLight = false; Expand_TableRoom2.customAmbientLight = Color.white; Expand_TableRoom2.ForceAllowDuplicates = false; Expand_TableRoom2.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_TableRoom2.IsLostWoodsRoom = false; Expand_TableRoom2.UseCustomMusic = false; Expand_TableRoom2.UseCustomMusicState = false; Expand_TableRoom2.CustomMusicEvent = string.Empty; Expand_TableRoom2.UseCustomMusicSwitch = false; Expand_TableRoom2.CustomMusicSwitch = string.Empty; Expand_TableRoom2.overrideRoomVisualTypeForSecretRooms = false; Expand_TableRoom2.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_TableRoom2.Width = 16; Expand_TableRoom2.Height = 14; PrototypeDungeonRoom expand_TableRoom2 = Expand_TableRoom2; list9 = new List(); List list69 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj7 = val10; list42 = new List(); List list70 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "98ea2fe181ab4323ab6e9981955a9bca"; val13.contentsBasePosition = new Vector2(7f, 6f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list70.Add(val13); List list71 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "3cadf10c489b461f9fb8814abc1a09c1"; val13.contentsBasePosition = new Vector2(6f, 8f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list71.Add(val13); obj7.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(7f, 6f), new Vector2(6f, 8f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list69.Add(val10); expand_TableRoom2.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_TableRoom2, new Vector2(0f, 7f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_TableRoom2, new Vector2(17f, 7f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_TableRoom2, new Vector2(8f, 15f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_TableRoom2, new Vector2(8f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_TableRoom2, new Vector2(13f, 6f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoom2, new Vector2(13f, 9f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoom2, new Vector2(13f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoom2, new Vector2(2f, 6f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoom2, new Vector2(2f, 9f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoom2, new Vector2(2f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoom2, new Vector2(4f, 2f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoom2, new Vector2(7f, 2f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoom2, new Vector2(10f, 2f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoom2, new Vector2(4f, 11f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoom2, new Vector2(7f, 11f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoom2, new Vector2(10f, 11f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoom2, new Vector2(7f, 6f), null, null, "eed5addcc15148179f300cc0d9ee7f94"); RoomBuilder.AddObjectToRoom(Expand_TableRoom2, new Vector2(6f, 8f), null, null, "f905765488874846b7ff257ff81d6d0c"); RoomBuilder.GenerateBasicRoomLayout(Expand_TableRoom2, (CellType)2, (PitBorderType)0); ((Object)Expand_OilRoom).name = "Expand Neighborino Oil Room"; Expand_OilRoom.QAID = "FF" + Random.Range(1000, 9999); Expand_OilRoom.GUID = Guid.NewGuid().ToString(); Expand_OilRoom.PreventMirroring = false; Expand_OilRoom.category = (RoomCategory)2; Expand_OilRoom.subCategoryBoss = (RoomBossSubCategory)0; Expand_OilRoom.subCategoryNormal = (RoomNormalSubCategory)0; Expand_OilRoom.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_OilRoom.subCategorySecret = (RoomSecretSubCategory)0; Expand_OilRoom.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_OilRoom.pits = new List(); Expand_OilRoom.placedObjects = new List(); Expand_OilRoom.placedObjectPositions = new List(); Expand_OilRoom.eventTriggerAreas = new List(); Expand_OilRoom.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_OilRoom.overriddenTilesets = (ValidTilesets)0; Expand_OilRoom.prerequisites = new List(); Expand_OilRoom.InvalidInCoop = false; Expand_OilRoom.cullProceduralDecorationOnWeakPlatforms = false; Expand_OilRoom.preventAddedDecoLayering = false; Expand_OilRoom.precludeAllTilemapDrawing = false; Expand_OilRoom.drawPrecludedCeilingTiles = false; Expand_OilRoom.preventBorders = false; Expand_OilRoom.preventFacewallAO = false; Expand_OilRoom.usesCustomAmbientLight = false; Expand_OilRoom.customAmbientLight = Color.white; Expand_OilRoom.ForceAllowDuplicates = false; Expand_OilRoom.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_OilRoom.IsLostWoodsRoom = false; Expand_OilRoom.UseCustomMusic = false; Expand_OilRoom.UseCustomMusicState = false; Expand_OilRoom.CustomMusicEvent = string.Empty; Expand_OilRoom.UseCustomMusicSwitch = false; Expand_OilRoom.CustomMusicSwitch = string.Empty; Expand_OilRoom.overrideRoomVisualTypeForSecretRooms = false; Expand_OilRoom.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_OilRoom.Width = 23; Expand_OilRoom.Height = 19; PrototypeDungeonRoom expand_OilRoom = Expand_OilRoom; list9 = new List(); List list72 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj8 = val10; list42 = new List(); List list73 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "ffdc8680bdaa487f8f31995539f74265"; val13.contentsBasePosition = new Vector2(7f, 9f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list73.Add(val13); List list74 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "d8a445ea4d944cc1b55a40f22821ae69"; val13.contentsBasePosition = new Vector2(15f, 9f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list74.Add(val13); obj8.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(7f, 9f), new Vector2(15f, 9f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = true; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list72.Add(val10); List list75 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj9 = val10; list42 = new List(); List list76 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "4d37ce3d666b4ddda8039929225b7ede"; val13.contentsBasePosition = new Vector2(7f, 5f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list76.Add(val13); List list77 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "4d37ce3d666b4ddda8039929225b7ede"; val13.contentsBasePosition = new Vector2(15f, 5f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list77.Add(val13); List list78 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "c0260c286c8d4538a697c5bf24976ccf"; val13.contentsBasePosition = new Vector2(7f, 13f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list78.Add(val13); List list79 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "c0260c286c8d4538a697c5bf24976ccf"; val13.contentsBasePosition = new Vector2(15f, 13f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list79.Add(val13); obj9.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(7f, 5f), new Vector2(15f, 5f), new Vector2(7f, 13f), new Vector2(15f, 13f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = true; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list75.Add(val10); expand_OilRoom.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_OilRoom, new Vector2(0f, 9f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_OilRoom, new Vector2(24f, 10f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_OilRoom, new Vector2(11f, 20f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_OilRoom, new Vector2(10f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_OilRoom, new Vector2(3f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.OilDrum, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_OilRoom, new Vector2(3f, 7f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.OilDrum, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_OilRoom, new Vector2(3f, 11f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.OilDrum, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_OilRoom, new Vector2(3f, 15f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.OilDrum, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_OilRoom, new Vector2(11f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.OilDrum, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_OilRoom, new Vector2(11f, 7f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.OilDrum, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_OilRoom, new Vector2(11f, 11f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.OilDrum, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_OilRoom, new Vector2(11f, 15f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.OilDrum, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_OilRoom, new Vector2(19f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.OilDrum, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_OilRoom, new Vector2(19f, 7f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.OilDrum, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_OilRoom, new Vector2(19f, 11f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.OilDrum, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_OilRoom, new Vector2(19f, 15f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.OilDrum, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_OilRoom, new Vector2(7f, 9f), null, null, "9d50684ce2c044e880878e86dbada919"); RoomBuilder.AddObjectToRoom(Expand_OilRoom, new Vector2(15f, 13f), null, null, "9d50684ce2c044e880878e86dbada919"); RoomBuilder.AddObjectToRoom(Expand_OilRoom, new Vector2(15f, 6f), null, null, "9d50684ce2c044e880878e86dbada919"); RoomBuilder.GenerateBasicRoomLayout(Expand_OilRoom, (CellType)2, (PitBorderType)0); ((Object)Expand_Walkway).name = "Expand Neighborino Walkway"; Expand_Walkway.QAID = "FF" + Random.Range(1000, 9999); Expand_Walkway.GUID = Guid.NewGuid().ToString(); Expand_Walkway.PreventMirroring = false; Expand_Walkway.category = (RoomCategory)2; Expand_Walkway.subCategoryBoss = (RoomBossSubCategory)0; Expand_Walkway.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Walkway.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Walkway.subCategorySecret = (RoomSecretSubCategory)0; Expand_Walkway.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Walkway.pits = new List(); Expand_Walkway.placedObjects = new List(); Expand_Walkway.placedObjectPositions = new List(); Expand_Walkway.eventTriggerAreas = new List(); Expand_Walkway.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Walkway.overriddenTilesets = (ValidTilesets)0; Expand_Walkway.prerequisites = new List(); Expand_Walkway.InvalidInCoop = false; Expand_Walkway.cullProceduralDecorationOnWeakPlatforms = false; Expand_Walkway.preventAddedDecoLayering = false; Expand_Walkway.precludeAllTilemapDrawing = false; Expand_Walkway.drawPrecludedCeilingTiles = false; Expand_Walkway.preventBorders = false; Expand_Walkway.preventFacewallAO = false; Expand_Walkway.usesCustomAmbientLight = false; Expand_Walkway.customAmbientLight = Color.white; Expand_Walkway.ForceAllowDuplicates = false; Expand_Walkway.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Walkway.IsLostWoodsRoom = false; Expand_Walkway.UseCustomMusic = false; Expand_Walkway.UseCustomMusicState = false; Expand_Walkway.CustomMusicEvent = string.Empty; Expand_Walkway.UseCustomMusicSwitch = false; Expand_Walkway.CustomMusicSwitch = string.Empty; Expand_Walkway.overrideRoomVisualTypeForSecretRooms = false; Expand_Walkway.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_Walkway.Width = 23; Expand_Walkway.Height = 27; Expand_Walkway.additionalObjectLayers = new List(0); RoomBuilder.AddExitToRoom(Expand_Walkway, new Vector2(12f, 28f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Walkway, new Vector2(11f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Walkway, new Vector2(18f, 2f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Walkway, new Vector2(2f, 24f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Walkway, new Vector2(8f, 8f), null, null, "128db2f0781141bcb505d8f00f9e4d47"); RoomBuilder.AddObjectToRoom(Expand_Walkway, new Vector2(14f, 8f), null, null, "128db2f0781141bcb505d8f00f9e4d47"); RoomBuilder.AddObjectToRoom(Expand_Walkway, new Vector2(16f, 18f), null, null, "b54d89f9e802455cbb2b8a96a31e8259"); RoomBuilder.AddObjectToRoom(Expand_Walkway, new Vector2(6f, 18f), null, null, "b54d89f9e802455cbb2b8a96a31e8259"); RoomBuilder.AddObjectToRoom(Expand_Walkway, new Vector2(14f, 13f), null, null, "2752019b770f473193b08b4005dc781f"); RoomBuilder.AddObjectToRoom(Expand_Walkway, new Vector2(8f, 13f), null, null, "2752019b770f473193b08b4005dc781f"); RoomBuilder.GenerateRoomLayout(Expand_Walkway, "Neighborino_Walkway_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_SpiderMaze).name = "Expand Apache SpiderMaze"; Expand_SpiderMaze.QAID = "FF" + Random.Range(1000, 9999); Expand_SpiderMaze.GUID = Guid.NewGuid().ToString(); Expand_SpiderMaze.PreventMirroring = false; Expand_SpiderMaze.category = (RoomCategory)1; Expand_SpiderMaze.subCategoryBoss = (RoomBossSubCategory)0; Expand_SpiderMaze.subCategoryNormal = (RoomNormalSubCategory)0; Expand_SpiderMaze.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_SpiderMaze.subCategorySecret = (RoomSecretSubCategory)0; Expand_SpiderMaze.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_SpiderMaze.pits = new List(); Expand_SpiderMaze.placedObjects = new List(); Expand_SpiderMaze.placedObjectPositions = new List(); Expand_SpiderMaze.eventTriggerAreas = new List(); Expand_SpiderMaze.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_SpiderMaze.overriddenTilesets = (ValidTilesets)0; Expand_SpiderMaze.prerequisites = new List(); Expand_SpiderMaze.InvalidInCoop = false; Expand_SpiderMaze.cullProceduralDecorationOnWeakPlatforms = false; Expand_SpiderMaze.preventAddedDecoLayering = false; Expand_SpiderMaze.precludeAllTilemapDrawing = false; Expand_SpiderMaze.drawPrecludedCeilingTiles = false; Expand_SpiderMaze.preventBorders = false; Expand_SpiderMaze.preventFacewallAO = false; Expand_SpiderMaze.usesCustomAmbientLight = false; Expand_SpiderMaze.customAmbientLight = Color.white; Expand_SpiderMaze.ForceAllowDuplicates = false; Expand_SpiderMaze.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_SpiderMaze.IsLostWoodsRoom = false; Expand_SpiderMaze.UseCustomMusic = false; Expand_SpiderMaze.UseCustomMusicState = false; Expand_SpiderMaze.CustomMusicEvent = string.Empty; Expand_SpiderMaze.UseCustomMusicSwitch = false; Expand_SpiderMaze.CustomMusicSwitch = string.Empty; Expand_SpiderMaze.overrideRoomVisualTypeForSecretRooms = false; Expand_SpiderMaze.rewardChestSpawnPosition = new IntVector2(20, 20); Expand_SpiderMaze.overrideRoomVisualType = -1; Expand_SpiderMaze.Width = 50; Expand_SpiderMaze.Height = 50; Expand_SpiderMaze.additionalObjectLayers = new List(0); RoomBuilder.AddExitToRoom(Expand_SpiderMaze, new Vector2(0f, 13f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_SpiderMaze, new Vector2(4f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_SpiderMaze, new Vector2(0f, 32f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_SpiderMaze, new Vector2(23f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_SpiderMaze, new Vector2(51f, 13f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_SpiderMaze, new Vector2(9f, 51f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_SpiderMaze, new Vector2(51f, 29f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_SpiderMaze, new Vector2(46f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_SpiderMaze, new Vector2(36f, 51f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_SpiderMaze, new Vector2(19f, 20f), null, ExpandPrefabs.Teleporter_Gungeon_01.GetComponent()); RoomBuilder.AddObjectToRoom(Expand_SpiderMaze, new Vector2(17f, 21f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.DoorsHorizontal_Catacombs, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpiderMaze, new Vector2(25f, 21f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.DoorsHorizontal_Catacombs, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpiderMaze, new Vector2(20f, 18f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.DoorsVertical_Catacombs, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpiderMaze, new Vector2(20f, 25f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.DoorsVertical_Catacombs, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpiderMaze, new Vector2(23f, 36f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.DoorsVertical_Catacombs, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpiderMaze, new Vector2(28f, 36f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.DoorsVertical_Catacombs, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpiderMaze, new Vector2(25f, 29f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.DoorsVertical_Catacombs, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpiderMaze, new Vector2(41f, 15f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.DoorsVertical_Catacombs, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpiderMaze, new Vector2(2f, 15f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.DoorsVertical_Catacombs, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpiderMaze, new Vector2(15f, 7f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.DoorsHorizontal_Catacombs, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpiderMaze, new Vector2(20f, 40f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.DoorsHorizontal_Catacombs, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpiderMaze, new Vector2(45f, 44f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.DoorsVertical_Catacombs, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpiderMaze, new Vector2(32f, 10f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.DoorsVertical_Catacombs, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpiderMaze, new Vector2(9f, 34f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.DoorsHorizontal_Catacombs, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SpiderMaze, new Vector2(21f, 21f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_SpiderMaze, new Vector2(24f, 34f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_SpiderMaze, new Vector2(30f, 30f), null, null, "249db525a9464e5282d02162c88e0357"); RoomBuilder.AddObjectToRoom(Expand_SpiderMaze, new Vector2(6f, 35f), null, null, "249db525a9464e5282d02162c88e0357"); RoomBuilder.AddObjectToRoom(Expand_SpiderMaze, new Vector2(29f, 34f), null, null, "5288e86d20184fa69c91ceb642d31474"); RoomBuilder.GenerateRoomLayout(Expand_SpiderMaze, "Expand_Apache_SpiderMaze_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_BlobRoom).name = "Expand Neighborino Blob Room"; Expand_BlobRoom.QAID = "FF" + Random.Range(1000, 9999); Expand_BlobRoom.GUID = Guid.NewGuid().ToString(); Expand_BlobRoom.PreventMirroring = false; Expand_BlobRoom.category = (RoomCategory)2; Expand_BlobRoom.subCategoryBoss = (RoomBossSubCategory)0; Expand_BlobRoom.subCategoryNormal = (RoomNormalSubCategory)0; Expand_BlobRoom.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_BlobRoom.subCategorySecret = (RoomSecretSubCategory)0; Expand_BlobRoom.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_BlobRoom.pits = new List(); Expand_BlobRoom.placedObjects = new List(); Expand_BlobRoom.placedObjectPositions = new List(); Expand_BlobRoom.eventTriggerAreas = new List(); Expand_BlobRoom.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_BlobRoom.overriddenTilesets = (ValidTilesets)0; Expand_BlobRoom.prerequisites = new List(); Expand_BlobRoom.InvalidInCoop = false; Expand_BlobRoom.cullProceduralDecorationOnWeakPlatforms = false; Expand_BlobRoom.preventAddedDecoLayering = false; Expand_BlobRoom.precludeAllTilemapDrawing = false; Expand_BlobRoom.drawPrecludedCeilingTiles = false; Expand_BlobRoom.preventBorders = false; Expand_BlobRoom.preventFacewallAO = false; Expand_BlobRoom.usesCustomAmbientLight = false; Expand_BlobRoom.customAmbientLight = Color.white; Expand_BlobRoom.ForceAllowDuplicates = false; Expand_BlobRoom.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_BlobRoom.IsLostWoodsRoom = false; Expand_BlobRoom.UseCustomMusic = false; Expand_BlobRoom.UseCustomMusicState = false; Expand_BlobRoom.CustomMusicEvent = string.Empty; Expand_BlobRoom.UseCustomMusicSwitch = false; Expand_BlobRoom.CustomMusicSwitch = string.Empty; Expand_BlobRoom.overrideRoomVisualTypeForSecretRooms = false; Expand_BlobRoom.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_BlobRoom.overrideRoomVisualType = -1; Expand_BlobRoom.Width = 22; Expand_BlobRoom.Height = 17; PrototypeDungeonRoom expand_BlobRoom = Expand_BlobRoom; list9 = new List(); List list80 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj10 = val10; list42 = new List(); List list81 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "e61cab252cfb435db9172adc96ded75f"; val13.contentsBasePosition = new Vector2(17f, 4f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list81.Add(val13); List list82 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "e61cab252cfb435db9172adc96ded75f"; val13.contentsBasePosition = new Vector2(4f, 4f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list82.Add(val13); List list83 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "e61cab252cfb435db9172adc96ded75f"; val13.contentsBasePosition = new Vector2(19f, 11f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list83.Add(val13); List list84 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "062b9b64371e46e195de17b6f10e47c8"; val13.contentsBasePosition = new Vector2(12f, 12f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list84.Add(val13); List list85 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "062b9b64371e46e195de17b6f10e47c8"; val13.contentsBasePosition = new Vector2(7f, 4f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list85.Add(val13); List list86 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "022d7c822bc146b58fe3b0287568aaa2"; val13.contentsBasePosition = new Vector2(17f, 5f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list86.Add(val13); List list87 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "022d7c822bc146b58fe3b0287568aaa2"; val13.contentsBasePosition = new Vector2(8f, 11f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list87.Add(val13); obj10.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(17f, 4f), new Vector2(4f, 4f), new Vector2(19f, 11f), new Vector2(12f, 12f), new Vector2(7f, 4f), new Vector2(17f, 5f), new Vector2(8f, 11f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list80.Add(val10); expand_BlobRoom.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_BlobRoom, new Vector2(0f, 7f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_BlobRoom, new Vector2(11f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_BlobRoom, new Vector2(23f, 7f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_BlobRoom, new Vector2(11f, 18f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_BlobRoom, new Vector2(10f, 5f), null, null, "0239c0680f9f467dbe5c4aab7dd1eca6"); RoomBuilder.AddObjectToRoom(Expand_BlobRoom, new Vector2(15f, 5f), null, null, "0239c0680f9f467dbe5c4aab7dd1eca6"); RoomBuilder.AddObjectToRoom(Expand_BlobRoom, new Vector2(6f, 8f), null, null, "0239c0680f9f467dbe5c4aab7dd1eca6"); RoomBuilder.AddObjectToRoom(Expand_BlobRoom, new Vector2(15f, 8f), null, null, "0239c0680f9f467dbe5c4aab7dd1eca6"); RoomBuilder.GenerateRoomLayout(Expand_BlobRoom, "Expand_Neighborino_BlobRoom_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_HellInACell).name = "Expand Neighborino Hell In a Cell"; Expand_HellInACell.QAID = "FF" + Random.Range(1000, 9999); Expand_HellInACell.GUID = Guid.NewGuid().ToString(); Expand_HellInACell.PreventMirroring = false; Expand_HellInACell.category = (RoomCategory)2; Expand_HellInACell.subCategoryBoss = (RoomBossSubCategory)0; Expand_HellInACell.subCategoryNormal = (RoomNormalSubCategory)0; Expand_HellInACell.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_HellInACell.subCategorySecret = (RoomSecretSubCategory)0; Expand_HellInACell.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_HellInACell.pits = new List(); Expand_HellInACell.placedObjects = new List(); Expand_HellInACell.placedObjectPositions = new List(); Expand_HellInACell.eventTriggerAreas = new List(); Expand_HellInACell.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_HellInACell.overriddenTilesets = (ValidTilesets)0; Expand_HellInACell.prerequisites = new List(); Expand_HellInACell.InvalidInCoop = false; Expand_HellInACell.cullProceduralDecorationOnWeakPlatforms = false; Expand_HellInACell.preventAddedDecoLayering = false; Expand_HellInACell.precludeAllTilemapDrawing = false; Expand_HellInACell.drawPrecludedCeilingTiles = false; Expand_HellInACell.preventBorders = false; Expand_HellInACell.preventFacewallAO = false; Expand_HellInACell.usesCustomAmbientLight = false; Expand_HellInACell.customAmbientLight = Color.white; Expand_HellInACell.ForceAllowDuplicates = false; Expand_HellInACell.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_HellInACell.IsLostWoodsRoom = false; Expand_HellInACell.UseCustomMusic = false; Expand_HellInACell.UseCustomMusicState = false; Expand_HellInACell.CustomMusicEvent = string.Empty; Expand_HellInACell.UseCustomMusicSwitch = false; Expand_HellInACell.CustomMusicSwitch = string.Empty; Expand_HellInACell.overrideRoomVisualTypeForSecretRooms = false; Expand_HellInACell.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_HellInACell.overrideRoomVisualType = -1; Expand_HellInACell.Width = 23; Expand_HellInACell.Height = 14; PrototypeDungeonRoom expand_HellInACell = Expand_HellInACell; list9 = new List(); List list88 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj11 = val10; list42 = new List(); List list89 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "022d7c822bc146b58fe3b0287568aaa2"; val13.contentsBasePosition = new Vector2(13f, 6f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list89.Add(val13); List list90 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "022d7c822bc146b58fe3b0287568aaa2"; val13.contentsBasePosition = new Vector2(9f, 6f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list90.Add(val13); obj11.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(13f, 6f), new Vector2(9f, 6f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list88.Add(val10); expand_HellInACell.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_HellInACell, new Vector2(0f, 7f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_HellInACell, new Vector2(14f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_HellInACell, new Vector2(24f, 7f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_HellInACell, new Vector2(14f, 15f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_HellInACell, new Vector2(3f, 1f), null, null, "f155fd2759764f4a9217db29dd21b7eb"); RoomBuilder.AddObjectToRoom(Expand_HellInACell, new Vector2(8f, 1f), null, null, "f155fd2759764f4a9217db29dd21b7eb"); RoomBuilder.AddObjectToRoom(Expand_HellInACell, new Vector2(18f, 1f), null, null, "f155fd2759764f4a9217db29dd21b7eb"); RoomBuilder.AddObjectToRoom(Expand_HellInACell, new Vector2(3f, 12f), null, null, "f155fd2759764f4a9217db29dd21b7eb"); RoomBuilder.AddObjectToRoom(Expand_HellInACell, new Vector2(8f, 12f), null, null, "f155fd2759764f4a9217db29dd21b7eb"); RoomBuilder.AddObjectToRoom(Expand_HellInACell, new Vector2(18f, 12f), null, null, "f155fd2759764f4a9217db29dd21b7eb"); RoomBuilder.AddObjectToRoom(Expand_HellInACell, new Vector2(1f, 3f), null, null, "f155fd2759764f4a9217db29dd21b7eb"); RoomBuilder.AddObjectToRoom(Expand_HellInACell, new Vector2(1f, 11f), null, null, "f155fd2759764f4a9217db29dd21b7eb"); RoomBuilder.AddObjectToRoom(Expand_HellInACell, new Vector2(20f, 3f), null, null, "f155fd2759764f4a9217db29dd21b7eb"); RoomBuilder.AddObjectToRoom(Expand_HellInACell, new Vector2(20f, 11f), null, null, "f155fd2759764f4a9217db29dd21b7eb"); RoomBuilder.AddObjectToRoom(Expand_HellInACell, new Vector2(11f, 6f), null, null, "864ea5a6a9324efc95a0dd2407f42810"); RoomBuilder.AddObjectToRoom(Expand_HellInACell, new Vector2(9f, 4f), null, null, "42be66373a3d4d89b91a35c9ff8adfec"); RoomBuilder.AddObjectToRoom(Expand_HellInACell, new Vector2(9f, 7f), null, null, "42be66373a3d4d89b91a35c9ff8adfec"); RoomBuilder.AddObjectToRoom(Expand_HellInACell, new Vector2(13f, 7f), null, null, "42be66373a3d4d89b91a35c9ff8adfec"); RoomBuilder.AddObjectToRoom(Expand_HellInACell, new Vector2(16f, 8f), null, null, "42be66373a3d4d89b91a35c9ff8adfec"); RoomBuilder.GenerateRoomLayout(Expand_HellInACell, "Expand_Neighborino_HellInACell_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_IceIsNice).name = "Expand Neighborino Ice is Nice"; Expand_IceIsNice.QAID = "FF" + Random.Range(1000, 9999); Expand_IceIsNice.GUID = Guid.NewGuid().ToString(); Expand_IceIsNice.PreventMirroring = false; Expand_IceIsNice.category = (RoomCategory)2; Expand_IceIsNice.subCategoryBoss = (RoomBossSubCategory)0; Expand_IceIsNice.subCategoryNormal = (RoomNormalSubCategory)0; Expand_IceIsNice.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_IceIsNice.subCategorySecret = (RoomSecretSubCategory)0; Expand_IceIsNice.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_IceIsNice.pits = new List(); Expand_IceIsNice.placedObjects = new List(); Expand_IceIsNice.placedObjectPositions = new List(); Expand_IceIsNice.eventTriggerAreas = new List(); Expand_IceIsNice.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_IceIsNice.overriddenTilesets = (ValidTilesets)0; Expand_IceIsNice.prerequisites = new List(); Expand_IceIsNice.InvalidInCoop = false; Expand_IceIsNice.cullProceduralDecorationOnWeakPlatforms = false; Expand_IceIsNice.preventAddedDecoLayering = false; Expand_IceIsNice.precludeAllTilemapDrawing = false; Expand_IceIsNice.drawPrecludedCeilingTiles = false; Expand_IceIsNice.preventBorders = false; Expand_IceIsNice.preventFacewallAO = false; Expand_IceIsNice.usesCustomAmbientLight = false; Expand_IceIsNice.customAmbientLight = Color.white; Expand_IceIsNice.ForceAllowDuplicates = false; Expand_IceIsNice.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_IceIsNice.IsLostWoodsRoom = false; Expand_IceIsNice.UseCustomMusic = false; Expand_IceIsNice.UseCustomMusicState = false; Expand_IceIsNice.CustomMusicEvent = string.Empty; Expand_IceIsNice.UseCustomMusicSwitch = false; Expand_IceIsNice.CustomMusicSwitch = string.Empty; Expand_IceIsNice.overrideRoomVisualTypeForSecretRooms = false; Expand_IceIsNice.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_IceIsNice.overrideRoomVisualType = -1; Expand_IceIsNice.Width = 22; Expand_IceIsNice.Height = 14; PrototypeDungeonRoom expand_IceIsNice = Expand_IceIsNice; list9 = new List(); List list91 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj12 = val10; list42 = new List(); List list92 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "01972dee89fc4404a5c408d50007dad5"; val13.contentsBasePosition = new Vector2(15f, 9f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list92.Add(val13); List list93 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "01972dee89fc4404a5c408d50007dad5"; val13.contentsBasePosition = new Vector2(7f, 4f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list93.Add(val13); List list94 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "3f6d6b0c4a7c4690807435c7b37c35a5"; val13.contentsBasePosition = new Vector2(7f, 4f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list94.Add(val13); obj12.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(15f, 9f), new Vector2(7f, 4f), new Vector2(11f, 7f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list91.Add(val10); expand_IceIsNice.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_IceIsNice, new Vector2(0f, 7f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_IceIsNice, new Vector2(11f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_IceIsNice, new Vector2(23f, 7f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_IceIsNice, new Vector2(11f, 15f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_IceIsNice, new Vector2(15f, 9f), null, null, "9b2cf2949a894599917d4d391a0b7394"); RoomBuilder.AddObjectToRoom(Expand_IceIsNice, new Vector2(7f, 4f), null, null, "9b2cf2949a894599917d4d391a0b7394"); RoomBuilder.AddObjectToRoom(Expand_IceIsNice, new Vector2(15f, 4f), null, null, "70216cae6c1346309d86d4a0b4603045"); RoomBuilder.AddObjectToRoom(Expand_IceIsNice, new Vector2(7f, 9f), null, null, "70216cae6c1346309d86d4a0b4603045"); RoomBuilder.GenerateRoomLayout(Expand_IceIsNice, "Expand_Neighborino_IceIsNice_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_IceScotch).name = "Expand Neighborino Ice Scotch"; Expand_IceScotch.QAID = "FF" + Random.Range(1000, 9999); Expand_IceScotch.GUID = Guid.NewGuid().ToString(); Expand_IceScotch.PreventMirroring = false; Expand_IceScotch.category = (RoomCategory)2; Expand_IceScotch.subCategoryBoss = (RoomBossSubCategory)0; Expand_IceScotch.subCategoryNormal = (RoomNormalSubCategory)0; Expand_IceScotch.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_IceScotch.subCategorySecret = (RoomSecretSubCategory)0; Expand_IceScotch.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_IceScotch.pits = new List(); Expand_IceScotch.placedObjects = new List(); Expand_IceScotch.placedObjectPositions = new List(); Expand_IceScotch.eventTriggerAreas = new List(); Expand_IceScotch.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_IceScotch.overriddenTilesets = (ValidTilesets)0; Expand_IceScotch.prerequisites = new List(); Expand_IceScotch.InvalidInCoop = false; Expand_IceScotch.cullProceduralDecorationOnWeakPlatforms = false; Expand_IceScotch.preventAddedDecoLayering = false; Expand_IceScotch.precludeAllTilemapDrawing = false; Expand_IceScotch.drawPrecludedCeilingTiles = false; Expand_IceScotch.preventBorders = false; Expand_IceScotch.preventFacewallAO = false; Expand_IceScotch.usesCustomAmbientLight = false; Expand_IceScotch.customAmbientLight = Color.white; Expand_IceScotch.ForceAllowDuplicates = false; Expand_IceScotch.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_IceScotch.IsLostWoodsRoom = false; Expand_IceScotch.UseCustomMusic = false; Expand_IceScotch.UseCustomMusicState = false; Expand_IceScotch.CustomMusicEvent = string.Empty; Expand_IceScotch.UseCustomMusicSwitch = false; Expand_IceScotch.CustomMusicSwitch = string.Empty; Expand_IceScotch.overrideRoomVisualTypeForSecretRooms = false; Expand_IceScotch.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_IceScotch.overrideRoomVisualType = -1; Expand_IceScotch.Width = 18; Expand_IceScotch.Height = 16; PrototypeDungeonRoom expand_IceScotch = Expand_IceScotch; list9 = new List(); List list95 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj13 = val10; list42 = new List(); List list96 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "336190e29e8a4f75ab7486595b700d4a"; val13.contentsBasePosition = new Vector2(9f, 4f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list96.Add(val13); List list97 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "336190e29e8a4f75ab7486595b700d4a"; val13.contentsBasePosition = new Vector2(9f, 7f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list97.Add(val13); List list98 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "336190e29e8a4f75ab7486595b700d4a"; val13.contentsBasePosition = new Vector2(8f, 10f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list98.Add(val13); obj13.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(9f, 4f), new Vector2(9f, 7f), new Vector2(8f, 10f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list95.Add(val10); expand_IceScotch.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_IceScotch, new Vector2(0f, 6f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_IceScotch, new Vector2(19f, 10f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_IceScotch, new Vector2(11f, 7f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_IceScotch, new Vector2(9f, 6f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_IceScotch, new Vector2(7f, 7f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_IceScotch, new Vector2(9f, 8f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.GenerateRoomLayout(Expand_IceScotch, "Expand_Neighborino_IceScotch_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_MrPresident).name = "Expand Neighborino Mr President"; Expand_MrPresident.QAID = "FF" + Random.Range(1000, 9999); Expand_MrPresident.GUID = Guid.NewGuid().ToString(); Expand_MrPresident.PreventMirroring = false; Expand_MrPresident.category = (RoomCategory)2; Expand_MrPresident.subCategoryBoss = (RoomBossSubCategory)0; Expand_MrPresident.subCategoryNormal = (RoomNormalSubCategory)0; Expand_MrPresident.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_MrPresident.subCategorySecret = (RoomSecretSubCategory)0; Expand_MrPresident.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_MrPresident.pits = new List(); Expand_MrPresident.placedObjects = new List(); Expand_MrPresident.placedObjectPositions = new List(); Expand_MrPresident.eventTriggerAreas = new List(); Expand_MrPresident.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_MrPresident.overriddenTilesets = (ValidTilesets)0; Expand_MrPresident.prerequisites = new List(); Expand_MrPresident.InvalidInCoop = false; Expand_MrPresident.cullProceduralDecorationOnWeakPlatforms = false; Expand_MrPresident.preventAddedDecoLayering = false; Expand_MrPresident.precludeAllTilemapDrawing = false; Expand_MrPresident.drawPrecludedCeilingTiles = false; Expand_MrPresident.preventBorders = false; Expand_MrPresident.preventFacewallAO = false; Expand_MrPresident.usesCustomAmbientLight = false; Expand_MrPresident.customAmbientLight = Color.white; Expand_MrPresident.ForceAllowDuplicates = false; Expand_MrPresident.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_MrPresident.IsLostWoodsRoom = false; Expand_MrPresident.UseCustomMusic = false; Expand_MrPresident.UseCustomMusicState = false; Expand_MrPresident.CustomMusicEvent = string.Empty; Expand_MrPresident.UseCustomMusicSwitch = false; Expand_MrPresident.CustomMusicSwitch = string.Empty; Expand_MrPresident.overrideRoomVisualTypeForSecretRooms = false; Expand_MrPresident.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_MrPresident.overrideRoomVisualType = -1; Expand_MrPresident.Width = 17; Expand_MrPresident.Height = 17; PrototypeDungeonRoom expand_MrPresident = Expand_MrPresident; list9 = new List(); List list99 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj14 = val10; list42 = new List(); List list100 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "b1540990a4f1480bbcb3bea70d67f60d"; val13.contentsBasePosition = new Vector2(8f, 8f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list100.Add(val13); List list101 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "0239c0680f9f467dbe5c4aab7dd1eca6"; val13.contentsBasePosition = new Vector2(8f, 2f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list101.Add(val13); List list102 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "0239c0680f9f467dbe5c4aab7dd1eca6"; val13.contentsBasePosition = new Vector2(8f, 14f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list102.Add(val13); List list103 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "062b9b64371e46e195de17b6f10e47c8"; val13.contentsBasePosition = new Vector2(15f, 8f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list103.Add(val13); List list104 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "062b9b64371e46e195de17b6f10e47c8"; val13.contentsBasePosition = new Vector2(1f, 8f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list104.Add(val13); obj14.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(8f, 8f), new Vector2(8f, 2f), new Vector2(8f, 14f), new Vector2(15f, 8f), new Vector2(1f, 8f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list99.Add(val10); expand_MrPresident.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_MrPresident, new Vector2(0f, 9f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_MrPresident, new Vector2(9f, 18f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_MrPresident, new Vector2(18f, 8f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_MrPresident, new Vector2(8f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_MrPresident, new Vector2(6f, 4f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_MrPresident, new Vector2(7f, 4f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_MrPresident, new Vector2(8f, 4f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_MrPresident, new Vector2(9f, 4f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_MrPresident, new Vector2(10f, 4f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_MrPresident, new Vector2(6f, 12f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_MrPresident, new Vector2(7f, 12f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_MrPresident, new Vector2(8f, 12f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_MrPresident, new Vector2(9f, 12f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_MrPresident, new Vector2(10f, 12f), ExpandObjectDatabase.WoodenBarrel); RoomBuilder.AddObjectToRoom(Expand_MrPresident, new Vector2(8f, 8f), null, null, "c50a862d19fc4d30baeba54795e8cb93"); RoomBuilder.AddObjectToRoom(Expand_MrPresident, new Vector2(1f, 1f), null, null, "128db2f0781141bcb505d8f00f9e4d47"); RoomBuilder.AddObjectToRoom(Expand_MrPresident, new Vector2(15f, 1f), null, null, "b54d89f9e802455cbb2b8a96a31e8259"); RoomBuilder.AddObjectToRoom(Expand_MrPresident, new Vector2(1f, 15f), null, null, "128db2f0781141bcb505d8f00f9e4d47"); RoomBuilder.AddObjectToRoom(Expand_MrPresident, new Vector2(15f, 15f), null, null, "b54d89f9e802455cbb2b8a96a31e8259"); RoomBuilder.AddObjectToRoom(Expand_MrPresident, new Vector2(15f, 4f), null, null, "336190e29e8a4f75ab7486595b700d4a"); RoomBuilder.AddObjectToRoom(Expand_MrPresident, new Vector2(1f, 12f), null, null, "336190e29e8a4f75ab7486595b700d4a"); RoomBuilder.GenerateRoomLayout(Expand_MrPresident, "Expand_Neighborino_MrPresident_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_SawRoom).name = "Expand Neighborino Saw Room"; Expand_SawRoom.QAID = "FF" + Random.Range(1000, 9999); Expand_SawRoom.GUID = Guid.NewGuid().ToString(); Expand_SawRoom.PreventMirroring = false; Expand_SawRoom.category = (RoomCategory)2; Expand_SawRoom.subCategoryBoss = (RoomBossSubCategory)0; Expand_SawRoom.subCategoryNormal = (RoomNormalSubCategory)0; Expand_SawRoom.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_SawRoom.subCategorySecret = (RoomSecretSubCategory)0; Expand_SawRoom.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_SawRoom.pits = new List(); Expand_SawRoom.placedObjects = new List(); Expand_SawRoom.placedObjectPositions = new List(); Expand_SawRoom.eventTriggerAreas = new List(); Expand_SawRoom.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_SawRoom.overriddenTilesets = (ValidTilesets)0; Expand_SawRoom.prerequisites = new List(); Expand_SawRoom.InvalidInCoop = false; Expand_SawRoom.cullProceduralDecorationOnWeakPlatforms = false; Expand_SawRoom.preventAddedDecoLayering = false; Expand_SawRoom.precludeAllTilemapDrawing = false; Expand_SawRoom.drawPrecludedCeilingTiles = false; Expand_SawRoom.preventBorders = false; Expand_SawRoom.preventFacewallAO = false; Expand_SawRoom.usesCustomAmbientLight = false; Expand_SawRoom.customAmbientLight = Color.white; Expand_SawRoom.ForceAllowDuplicates = false; Expand_SawRoom.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_SawRoom.IsLostWoodsRoom = false; Expand_SawRoom.UseCustomMusic = false; Expand_SawRoom.UseCustomMusicState = false; Expand_SawRoom.CustomMusicEvent = string.Empty; Expand_SawRoom.UseCustomMusicSwitch = false; Expand_SawRoom.CustomMusicSwitch = string.Empty; Expand_SawRoom.overrideRoomVisualTypeForSecretRooms = false; Expand_SawRoom.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_SawRoom.overrideRoomVisualType = -1; Expand_SawRoom.Width = 20; Expand_SawRoom.Height = 26; PrototypeDungeonRoom expand_SawRoom = Expand_SawRoom; list9 = new List(); List list105 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj15 = val10; list42 = new List(); List list106 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "042edb1dfb614dc385d5ad1b010f2ee3"; val13.contentsBasePosition = new Vector2(5f, 12f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list106.Add(val13); List list107 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "042edb1dfb614dc385d5ad1b010f2ee3"; val13.contentsBasePosition = new Vector2(14f, 12f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list107.Add(val13); List list108 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "042edb1dfb614dc385d5ad1b010f2ee3"; val13.contentsBasePosition = new Vector2(13f, 17f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list108.Add(val13); obj15.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(5f, 12f), new Vector2(14f, 12f), new Vector2(13f, 17f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list105.Add(val10); expand_SawRoom.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_SawRoom, new Vector2(0f, 13f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_SawRoom, new Vector2(21f, 13f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_SawRoom, new Vector2(1f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXSawBladeTrap_4x4Zone, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SawRoom, new Vector2(8f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXSawBladeTrap_4x4Zone, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SawRoom, new Vector2(15f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXSawBladeTrap_4x4Zone, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SawRoom, new Vector2(1f, 19f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXSawBladeTrap_4x4Zone, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SawRoom, new Vector2(8f, 19f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXSawBladeTrap_4x4Zone, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SawRoom, new Vector2(15f, 19f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXSawBladeTrap_4x4Zone, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_SawRoom, new Vector2(2f, 8f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_SawRoom, new Vector2(9f, 8f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_SawRoom, new Vector2(16f, 8f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_SawRoom, new Vector2(2f, 17f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_SawRoom, new Vector2(9f, 17f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_SawRoom, new Vector2(16f, 17f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_SawRoom, new Vector2(9f, 12f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.GenerateRoomLayout(Expand_SawRoom, "Expand_Neighborino_SawRoom_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Arena).name = "Expand Neighborino Arena"; Expand_Arena.QAID = "FF" + Random.Range(1000, 9999); Expand_Arena.GUID = Guid.NewGuid().ToString(); Expand_Arena.PreventMirroring = false; Expand_Arena.category = (RoomCategory)2; Expand_Arena.subCategoryBoss = (RoomBossSubCategory)0; Expand_Arena.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Arena.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Arena.subCategorySecret = (RoomSecretSubCategory)0; Expand_Arena.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Arena.pits = new List(); Expand_Arena.placedObjects = new List(); Expand_Arena.placedObjectPositions = new List(); Expand_Arena.eventTriggerAreas = new List(); Expand_Arena.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Arena.overriddenTilesets = (ValidTilesets)0; Expand_Arena.prerequisites = new List(); Expand_Arena.InvalidInCoop = false; Expand_Arena.cullProceduralDecorationOnWeakPlatforms = false; Expand_Arena.preventAddedDecoLayering = false; Expand_Arena.precludeAllTilemapDrawing = false; Expand_Arena.drawPrecludedCeilingTiles = false; Expand_Arena.preventBorders = false; Expand_Arena.preventFacewallAO = false; Expand_Arena.usesCustomAmbientLight = false; Expand_Arena.customAmbientLight = Color.white; Expand_Arena.ForceAllowDuplicates = false; Expand_Arena.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Arena.IsLostWoodsRoom = false; Expand_Arena.UseCustomMusic = false; Expand_Arena.UseCustomMusicState = false; Expand_Arena.CustomMusicEvent = string.Empty; Expand_Arena.UseCustomMusicSwitch = false; Expand_Arena.CustomMusicSwitch = string.Empty; Expand_Arena.overrideRoomVisualTypeForSecretRooms = false; Expand_Arena.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_Arena.overrideRoomVisualType = -1; Expand_Arena.Width = 20; Expand_Arena.Height = 18; PrototypeDungeonRoom expand_Arena = Expand_Arena; list9 = new List(); List list109 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj16 = val10; list42 = new List(); List list110 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "128db2f0781141bcb505d8f00f9e4d47"; val13.contentsBasePosition = new Vector2(2f, 2f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list110.Add(val13); List list111 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "128db2f0781141bcb505d8f00f9e4d47"; val13.contentsBasePosition = new Vector2(17f, 2f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list111.Add(val13); List list112 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "128db2f0781141bcb505d8f00f9e4d47"; val13.contentsBasePosition = new Vector2(2f, 15f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list112.Add(val13); List list113 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "128db2f0781141bcb505d8f00f9e4d47"; val13.contentsBasePosition = new Vector2(17f, 15f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list113.Add(val13); obj16.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(2f, 2f), new Vector2(17f, 2f), new Vector2(2f, 15f), new Vector2(17f, 15f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list109.Add(val10); List list114 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj17 = val10; list42 = new List(); List list115 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "ec8ea75b557d4e7b8ceeaacdf6f8238c"; val13.contentsBasePosition = new Vector2(6f, 8f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list115.Add(val13); List list116 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "ec8ea75b557d4e7b8ceeaacdf6f8238c"; val13.contentsBasePosition = new Vector2(13f, 8f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list116.Add(val13); List list117 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "383175a55879441d90933b5c4e60cf6f"; val13.contentsBasePosition = new Vector2(10f, 4f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list117.Add(val13); obj17.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(6f, 8f), new Vector2(13f, 8f), new Vector2(10f, 4f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list114.Add(val10); List list118 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj18 = val10; list42 = new List(); List list119 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "cd4a4b7f612a4ba9a720b9f97c52f38c"; val13.contentsBasePosition = new Vector2(9f, 7f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list119.Add(val13); obj18.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(9f, 7f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list118.Add(val10); expand_Arena.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_Arena, new Vector2(0f, 9f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Arena, new Vector2(21f, 9f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Arena, new Vector2(10f, 19f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Arena, new Vector2(10f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(3f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(4f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(5f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(6f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(7f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(8f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(9f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(10f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(11f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(12f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(13f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(14f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(15f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(16f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(3f, 14f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(4f, 14f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(5f, 14f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(6f, 14f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(7f, 14f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(8f, 14f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(9f, 14f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(10f, 14f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(11f, 14f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(12f, 14f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(13f, 14f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(14f, 14f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(15f, 14f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(16f, 14f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(3f, 4f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(3f, 5f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(3f, 6f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(3f, 7f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(3f, 8f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(3f, 9f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(3f, 10f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(3f, 11f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(3f, 12f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(3f, 13f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(16f, 4f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(16f, 5f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(16f, 6f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(16f, 7f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(16f, 8f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(16f, 9f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(16f, 10f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(16f, 11f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(16f, 12f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(16f, 13f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(14f, 5f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(14f, 12f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(5f, 5f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(5f, 12f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(7f, 8f), null, null, "88b6b6a93d4b4234a67844ef4728382c"); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(12f, 8f), null, null, "88b6b6a93d4b4234a67844ef4728382c"); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(9f, 5f), null, null, "70216cae6c1346309d86d4a0b4603045"); RoomBuilder.AddObjectToRoom(Expand_Arena, new Vector2(10f, 12f), null, null, "70216cae6c1346309d86d4a0b4603045"); RoomBuilder.GenerateRoomLayout(Expand_Arena, "Expand_Neighborino_Arena_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_CaptainCrunch).name = "Expand Neighborino Captain Crunch"; Expand_CaptainCrunch.QAID = "FF" + Random.Range(1000, 9999); Expand_CaptainCrunch.GUID = Guid.NewGuid().ToString(); Expand_CaptainCrunch.PreventMirroring = false; Expand_CaptainCrunch.category = (RoomCategory)2; Expand_CaptainCrunch.subCategoryBoss = (RoomBossSubCategory)0; Expand_CaptainCrunch.subCategoryNormal = (RoomNormalSubCategory)1; Expand_CaptainCrunch.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_CaptainCrunch.subCategorySecret = (RoomSecretSubCategory)0; Expand_CaptainCrunch.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_CaptainCrunch.pits = new List(); Expand_CaptainCrunch.placedObjects = new List(); Expand_CaptainCrunch.placedObjectPositions = new List(); Expand_CaptainCrunch.eventTriggerAreas = new List(); Expand_CaptainCrunch.roomEvents = new List(0); Expand_CaptainCrunch.overriddenTilesets = (ValidTilesets)0; Expand_CaptainCrunch.prerequisites = new List(); Expand_CaptainCrunch.InvalidInCoop = false; Expand_CaptainCrunch.cullProceduralDecorationOnWeakPlatforms = false; Expand_CaptainCrunch.preventAddedDecoLayering = false; Expand_CaptainCrunch.precludeAllTilemapDrawing = false; Expand_CaptainCrunch.drawPrecludedCeilingTiles = false; Expand_CaptainCrunch.preventBorders = false; Expand_CaptainCrunch.preventFacewallAO = false; Expand_CaptainCrunch.usesCustomAmbientLight = false; Expand_CaptainCrunch.customAmbientLight = Color.white; Expand_CaptainCrunch.ForceAllowDuplicates = false; Expand_CaptainCrunch.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_CaptainCrunch.IsLostWoodsRoom = false; Expand_CaptainCrunch.UseCustomMusic = false; Expand_CaptainCrunch.UseCustomMusicState = false; Expand_CaptainCrunch.CustomMusicEvent = string.Empty; Expand_CaptainCrunch.UseCustomMusicSwitch = false; Expand_CaptainCrunch.CustomMusicSwitch = string.Empty; Expand_CaptainCrunch.overrideRoomVisualTypeForSecretRooms = false; Expand_CaptainCrunch.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_CaptainCrunch.overrideRoomVisualType = -1; Expand_CaptainCrunch.Width = 28; Expand_CaptainCrunch.Height = 28; Expand_CaptainCrunch.additionalObjectLayers = new List(0); RoomBuilder.AddExitToRoom(Expand_CaptainCrunch, new Vector2(0f, 14f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_CaptainCrunch, new Vector2(29f, 14f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_CaptainCrunch, new Vector2(14f, 29f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_CaptainCrunch, new Vector2(14f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_CaptainCrunch, new Vector2(13f, 2f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Horizontal.GetComponent(), null, 1f, 0, 2); RoomBuilder.AddObjectToRoom(Expand_CaptainCrunch, new Vector2(13f, 6f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Horizontal.GetComponent(), null, 1f, 0, 2); RoomBuilder.AddObjectToRoom(Expand_CaptainCrunch, new Vector2(13f, 10f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Horizontal.GetComponent(), null, 1f, 0, 2); RoomBuilder.AddObjectToRoom(Expand_CaptainCrunch, new Vector2(13f, 15f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Horizontal.GetComponent(), null, 1f, 0, 2); RoomBuilder.AddObjectToRoom(Expand_CaptainCrunch, new Vector2(13f, 19f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Horizontal.GetComponent(), null, 1f, 0, 2); RoomBuilder.AddObjectToRoom(Expand_CaptainCrunch, new Vector2(13f, 23f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Horizontal.GetComponent(), null, 1f, 0, 2); RoomBuilder.AddObjectToRoom(Expand_CaptainCrunch, new Vector2(2f, 13f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Vertical.GetComponent()); RoomBuilder.AddObjectToRoom(Expand_CaptainCrunch, new Vector2(6f, 13f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Vertical.GetComponent()); RoomBuilder.AddObjectToRoom(Expand_CaptainCrunch, new Vector2(10f, 13f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Vertical.GetComponent()); RoomBuilder.AddObjectToRoom(Expand_CaptainCrunch, new Vector2(15f, 13f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Vertical.GetComponent()); RoomBuilder.AddObjectToRoom(Expand_CaptainCrunch, new Vector2(19f, 13f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Vertical.GetComponent()); RoomBuilder.AddObjectToRoom(Expand_CaptainCrunch, new Vector2(23f, 13f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Vertical.GetComponent()); RoomBuilder.AddObjectToRoom(Expand_CaptainCrunch, new Vector2(13f, 13f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_CaptainCrunch, new Vector2(14f, 13f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_CaptainCrunch, new Vector2(13f, 14f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_CaptainCrunch, new Vector2(14f, 14f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.GenerateRoomLayout(Expand_CaptainCrunch, "Expand_Neighborino_CaptainCrunch_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_CorridorOfDoom).name = "Expand Neighborino Corridor of Doom"; Expand_CorridorOfDoom.QAID = "FF" + Random.Range(1000, 9999); Expand_CorridorOfDoom.GUID = Guid.NewGuid().ToString(); Expand_CorridorOfDoom.PreventMirroring = false; Expand_CorridorOfDoom.category = (RoomCategory)2; Expand_CorridorOfDoom.subCategoryBoss = (RoomBossSubCategory)0; Expand_CorridorOfDoom.subCategoryNormal = (RoomNormalSubCategory)0; Expand_CorridorOfDoom.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_CorridorOfDoom.subCategorySecret = (RoomSecretSubCategory)0; Expand_CorridorOfDoom.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_CorridorOfDoom.pits = new List(); Expand_CorridorOfDoom.placedObjects = new List(); Expand_CorridorOfDoom.placedObjectPositions = new List(); Expand_CorridorOfDoom.eventTriggerAreas = new List(); Expand_CorridorOfDoom.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_CorridorOfDoom.overriddenTilesets = (ValidTilesets)0; Expand_CorridorOfDoom.prerequisites = new List(); Expand_CorridorOfDoom.InvalidInCoop = false; Expand_CorridorOfDoom.cullProceduralDecorationOnWeakPlatforms = false; Expand_CorridorOfDoom.preventAddedDecoLayering = false; Expand_CorridorOfDoom.precludeAllTilemapDrawing = false; Expand_CorridorOfDoom.drawPrecludedCeilingTiles = false; Expand_CorridorOfDoom.preventBorders = false; Expand_CorridorOfDoom.preventFacewallAO = false; Expand_CorridorOfDoom.usesCustomAmbientLight = false; Expand_CorridorOfDoom.customAmbientLight = Color.white; Expand_CorridorOfDoom.ForceAllowDuplicates = false; Expand_CorridorOfDoom.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_CorridorOfDoom.IsLostWoodsRoom = false; Expand_CorridorOfDoom.UseCustomMusic = false; Expand_CorridorOfDoom.UseCustomMusicState = false; Expand_CorridorOfDoom.CustomMusicEvent = string.Empty; Expand_CorridorOfDoom.UseCustomMusicSwitch = false; Expand_CorridorOfDoom.CustomMusicSwitch = string.Empty; Expand_CorridorOfDoom.overrideRoomVisualTypeForSecretRooms = false; Expand_CorridorOfDoom.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_CorridorOfDoom.overrideRoomVisualType = -1; Expand_CorridorOfDoom.Width = 34; Expand_CorridorOfDoom.Height = 6; PrototypeDungeonRoom expand_CorridorOfDoom = Expand_CorridorOfDoom; list9 = new List(); List list120 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj19 = val10; list42 = new List(); List list121 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "1bc2a07ef87741be90c37096910843ab"; val13.contentsBasePosition = new Vector2(16f, 3f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list121.Add(val13); obj19.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(16f, 3f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list120.Add(val10); expand_CorridorOfDoom.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_CorridorOfDoom, new Vector2(0f, 3f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_CorridorOfDoom, new Vector2(35f, 3f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_CorridorOfDoom, new Vector2(15f, 0f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_CorridorOfDoom, new Vector2(15f, 1f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_CorridorOfDoom, new Vector2(15f, 2f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_CorridorOfDoom, new Vector2(15f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_CorridorOfDoom, new Vector2(15f, 4f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_CorridorOfDoom, new Vector2(15f, 5f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_CorridorOfDoom, new Vector2(18f, 0f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_CorridorOfDoom, new Vector2(18f, 1f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_CorridorOfDoom, new Vector2(18f, 2f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_CorridorOfDoom, new Vector2(18f, 3f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_CorridorOfDoom, new Vector2(18f, 4f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_CorridorOfDoom, new Vector2(18f, 5f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_CorridorOfDoom, new Vector2(6f, 4f), null, null, "4d37ce3d666b4ddda8039929225b7ede"); RoomBuilder.AddObjectToRoom(Expand_CorridorOfDoom, new Vector2(27f, 4f), null, null, "4d37ce3d666b4ddda8039929225b7ede"); RoomBuilder.AddObjectToRoom(Expand_CorridorOfDoom, new Vector2(14f, 4f), null, null, "e5cffcfabfae489da61062ea20539887"); RoomBuilder.AddObjectToRoom(Expand_CorridorOfDoom, new Vector2(19f, 4f), null, null, "e5cffcfabfae489da61062ea20539887"); RoomBuilder.AddObjectToRoom(Expand_CorridorOfDoom, new Vector2(12f, 3f), null, null, "0239c0680f9f467dbe5c4aab7dd1eca6"); RoomBuilder.AddObjectToRoom(Expand_CorridorOfDoom, new Vector2(12f, 1f), null, null, "0239c0680f9f467dbe5c4aab7dd1eca6"); RoomBuilder.AddObjectToRoom(Expand_CorridorOfDoom, new Vector2(21f, 2f), null, null, "0239c0680f9f467dbe5c4aab7dd1eca6"); RoomBuilder.AddObjectToRoom(Expand_CorridorOfDoom, new Vector2(22f, 4f), null, null, "0239c0680f9f467dbe5c4aab7dd1eca6"); RoomBuilder.GenerateRoomLayout(Expand_CorridorOfDoom, "Expand_Neighborino_CorridorOfDoomDeath_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_FireRoom).name = "Expand Neighborino Fire Room"; Expand_FireRoom.QAID = "FF" + Random.Range(1000, 9999); Expand_FireRoom.GUID = Guid.NewGuid().ToString(); Expand_FireRoom.PreventMirroring = false; Expand_FireRoom.category = (RoomCategory)2; Expand_FireRoom.subCategoryBoss = (RoomBossSubCategory)0; Expand_FireRoom.subCategoryNormal = (RoomNormalSubCategory)0; Expand_FireRoom.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_FireRoom.subCategorySecret = (RoomSecretSubCategory)0; Expand_FireRoom.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_FireRoom.pits = new List(); Expand_FireRoom.placedObjects = new List(); Expand_FireRoom.placedObjectPositions = new List(); Expand_FireRoom.eventTriggerAreas = new List(); Expand_FireRoom.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_FireRoom.overriddenTilesets = (ValidTilesets)0; Expand_FireRoom.prerequisites = new List(); Expand_FireRoom.InvalidInCoop = false; Expand_FireRoom.cullProceduralDecorationOnWeakPlatforms = false; Expand_FireRoom.preventAddedDecoLayering = false; Expand_FireRoom.precludeAllTilemapDrawing = false; Expand_FireRoom.drawPrecludedCeilingTiles = false; Expand_FireRoom.preventBorders = false; Expand_FireRoom.preventFacewallAO = false; Expand_FireRoom.usesCustomAmbientLight = false; Expand_FireRoom.customAmbientLight = Color.white; Expand_FireRoom.ForceAllowDuplicates = false; Expand_FireRoom.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_FireRoom.IsLostWoodsRoom = false; Expand_FireRoom.UseCustomMusic = false; Expand_FireRoom.UseCustomMusicState = false; Expand_FireRoom.CustomMusicEvent = string.Empty; Expand_FireRoom.UseCustomMusicSwitch = false; Expand_FireRoom.CustomMusicSwitch = string.Empty; Expand_FireRoom.overrideRoomVisualTypeForSecretRooms = false; Expand_FireRoom.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_FireRoom.overrideRoomVisualType = -1; Expand_FireRoom.Width = 13; Expand_FireRoom.Height = 11; Expand_FireRoom.additionalObjectLayers = new List(0); RoomBuilder.AddExitToRoom(Expand_FireRoom, new Vector2(0f, 7f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_FireRoom, new Vector2(6f, 12f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_FireRoom, new Vector2(14f, 7f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_FireRoom, new Vector2(7f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_FireRoom, new Vector2(2f, 2f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_FireRoom, new Vector2(5f, 2f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_FireRoom, new Vector2(8f, 2f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_FireRoom, new Vector2(11f, 2f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_FireRoom, new Vector2(2f, 6f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_FireRoom, new Vector2(5f, 6f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_FireRoom, new Vector2(8f, 6f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_FireRoom, new Vector2(11f, 6f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_FireRoom, new Vector2(1f, 4f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_FireRoom, new Vector2(4f, 4f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_FireRoom, new Vector2(7f, 4f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_FireRoom, new Vector2(10f, 4f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_FireRoom, new Vector2(1f, 8f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_FireRoom, new Vector2(4f, 8f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_FireRoom, new Vector2(7f, 8f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_FireRoom, new Vector2(10f, 8f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.FlameTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_FireRoom, new Vector2(3f, 3f), null, null, "4d37ce3d666b4ddda8039929225b7ede"); RoomBuilder.AddObjectToRoom(Expand_FireRoom, new Vector2(9f, 3f), null, null, "4d37ce3d666b4ddda8039929225b7ede"); RoomBuilder.AddObjectToRoom(Expand_FireRoom, new Vector2(9f, 7f), null, null, "4d37ce3d666b4ddda8039929225b7ede"); RoomBuilder.AddObjectToRoom(Expand_FireRoom, new Vector2(3f, 7f), null, null, "4d37ce3d666b4ddda8039929225b7ede"); RoomBuilder.AddObjectToRoom(Expand_FireRoom, new Vector2(3f, 7f), null, null, "ccf6d241dad64d989cbcaca2a8477f01"); RoomBuilder.AddObjectToRoom(Expand_FireRoom, new Vector2(9f, 3f), null, null, "ccf6d241dad64d989cbcaca2a8477f01"); RoomBuilder.GenerateRoomLayout(Expand_FireRoom, "Expand_Neighborino_FireRoom_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Pits).name = "Expand Neighborino Pits"; Expand_Pits.QAID = "FF" + Random.Range(1000, 9999); Expand_Pits.GUID = Guid.NewGuid().ToString(); Expand_Pits.PreventMirroring = false; Expand_Pits.category = (RoomCategory)2; Expand_Pits.subCategoryBoss = (RoomBossSubCategory)0; Expand_Pits.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Pits.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Pits.subCategorySecret = (RoomSecretSubCategory)0; Expand_Pits.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Pits.pits = new List(); Expand_Pits.placedObjects = new List(); Expand_Pits.placedObjectPositions = new List(); Expand_Pits.eventTriggerAreas = new List(); Expand_Pits.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Pits.overriddenTilesets = (ValidTilesets)0; Expand_Pits.prerequisites = new List(); Expand_Pits.InvalidInCoop = false; Expand_Pits.cullProceduralDecorationOnWeakPlatforms = false; Expand_Pits.preventAddedDecoLayering = false; Expand_Pits.precludeAllTilemapDrawing = false; Expand_Pits.drawPrecludedCeilingTiles = false; Expand_Pits.preventBorders = false; Expand_Pits.preventFacewallAO = false; Expand_Pits.usesCustomAmbientLight = false; Expand_Pits.customAmbientLight = Color.white; Expand_Pits.ForceAllowDuplicates = false; Expand_Pits.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Pits.IsLostWoodsRoom = false; Expand_Pits.UseCustomMusic = false; Expand_Pits.UseCustomMusicState = false; Expand_Pits.CustomMusicEvent = string.Empty; Expand_Pits.UseCustomMusicSwitch = false; Expand_Pits.CustomMusicSwitch = string.Empty; Expand_Pits.overrideRoomVisualTypeForSecretRooms = false; Expand_Pits.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_Pits.overrideRoomVisualType = -1; Expand_Pits.Width = 14; Expand_Pits.Height = 14; PrototypeDungeonRoom expand_Pits = Expand_Pits; list9 = new List(); List list122 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj20 = val10; list42 = new List(); List list123 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "383175a55879441d90933b5c4e60cf6f"; val13.contentsBasePosition = new Vector2(8f, 8f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list123.Add(val13); obj20.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(8f, 8f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list122.Add(val10); List list124 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj21 = val10; list42 = new List(); List list125 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "1bc2a07ef87741be90c37096910843ab"; val13.contentsBasePosition = new Vector2(5f, 5f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list125.Add(val13); obj21.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(5f, 5f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list124.Add(val10); expand_Pits.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_Pits, new Vector2(0f, 5f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Pits, new Vector2(5f, 15f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Pits, new Vector2(15f, 9f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Pits, new Vector2(9f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Pits, new Vector2(9f, 9f), null, null, "b70cbd875fea498aa7fd14b970248920"); RoomBuilder.GenerateRoomLayout(Expand_Pits, "Expand_Neighborino_Pits_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_SkullRoom).name = "Expand Neighborino Skull Room"; Expand_SkullRoom.QAID = "FF" + Random.Range(1000, 9999); Expand_SkullRoom.GUID = Guid.NewGuid().ToString(); Expand_SkullRoom.PreventMirroring = false; Expand_SkullRoom.category = (RoomCategory)2; Expand_SkullRoom.subCategoryBoss = (RoomBossSubCategory)0; Expand_SkullRoom.subCategoryNormal = (RoomNormalSubCategory)0; Expand_SkullRoom.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_SkullRoom.subCategorySecret = (RoomSecretSubCategory)0; Expand_SkullRoom.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_SkullRoom.pits = new List(); Expand_SkullRoom.placedObjects = new List(); Expand_SkullRoom.placedObjectPositions = new List(); Expand_SkullRoom.eventTriggerAreas = new List(); Expand_SkullRoom.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_SkullRoom.overriddenTilesets = (ValidTilesets)0; Expand_SkullRoom.prerequisites = new List(); Expand_SkullRoom.InvalidInCoop = false; Expand_SkullRoom.cullProceduralDecorationOnWeakPlatforms = false; Expand_SkullRoom.preventAddedDecoLayering = false; Expand_SkullRoom.precludeAllTilemapDrawing = false; Expand_SkullRoom.drawPrecludedCeilingTiles = false; Expand_SkullRoom.preventBorders = false; Expand_SkullRoom.preventFacewallAO = false; Expand_SkullRoom.usesCustomAmbientLight = false; Expand_SkullRoom.customAmbientLight = Color.white; Expand_SkullRoom.ForceAllowDuplicates = false; Expand_SkullRoom.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_SkullRoom.IsLostWoodsRoom = false; Expand_SkullRoom.UseCustomMusic = false; Expand_SkullRoom.UseCustomMusicState = false; Expand_SkullRoom.CustomMusicEvent = string.Empty; Expand_SkullRoom.UseCustomMusicSwitch = false; Expand_SkullRoom.CustomMusicSwitch = string.Empty; Expand_SkullRoom.overrideRoomVisualTypeForSecretRooms = false; Expand_SkullRoom.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_SkullRoom.overrideRoomVisualType = -1; Expand_SkullRoom.Width = 21; Expand_SkullRoom.Height = 20; PrototypeDungeonRoom expand_SkullRoom = Expand_SkullRoom; list9 = new List(); List list126 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj22 = val10; list42 = new List(); List list127 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "336190e29e8a4f75ab7486595b700d4a"; val13.contentsBasePosition = new Vector2(4f, 8f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list127.Add(val13); List list128 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "336190e29e8a4f75ab7486595b700d4a"; val13.contentsBasePosition = new Vector2(16f, 8f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list128.Add(val13); List list129 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "d5a7b95774cd41f080e517bea07bf495"; val13.contentsBasePosition = new Vector2(9f, 14f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list129.Add(val13); obj22.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(4f, 8f), new Vector2(16f, 8f), new Vector2(9f, 14f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list126.Add(val10); List list130 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj23 = val10; list42 = new List(); List list131 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "336190e29e8a4f75ab7486595b700d4a"; val13.contentsBasePosition = new Vector2(18f, 17f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list131.Add(val13); List list132 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "336190e29e8a4f75ab7486595b700d4a"; val13.contentsBasePosition = new Vector2(2f, 17f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list132.Add(val13); List list133 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "336190e29e8a4f75ab7486595b700d4a"; val13.contentsBasePosition = new Vector2(5f, 8f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list133.Add(val13); List list134 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "336190e29e8a4f75ab7486595b700d4a"; val13.contentsBasePosition = new Vector2(15f, 8f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list134.Add(val13); obj23.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(18f, 17f), new Vector2(2f, 17f), new Vector2(5f, 8f), new Vector2(15f, 8f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list130.Add(val10); expand_SkullRoom.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_SkullRoom, new Vector2(0f, 17f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_SkullRoom, new Vector2(5f, 21f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_SkullRoom, new Vector2(16f, 21f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_SkullRoom, new Vector2(22f, 17f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_SkullRoom, new Vector2(15f, 8f), null, null, "336190e29e8a4f75ab7486595b700d4a"); RoomBuilder.AddObjectToRoom(Expand_SkullRoom, new Vector2(5f, 8f), null, null, "336190e29e8a4f75ab7486595b700d4a"); RoomBuilder.AddObjectToRoom(Expand_SkullRoom, new Vector2(9f, 15f), null, null, "21dd14e5ca2a4a388adab5b11b69a1e1"); RoomBuilder.GenerateRoomLayout(Expand_SkullRoom, "Expand_Neighborino_SkullRoom_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_TableRoomAgain).name = "Expand Neighborino Tables Again"; Expand_TableRoomAgain.QAID = "FF" + Random.Range(1000, 9999); Expand_TableRoomAgain.GUID = Guid.NewGuid().ToString(); Expand_TableRoomAgain.PreventMirroring = false; Expand_TableRoomAgain.category = (RoomCategory)1; Expand_TableRoomAgain.subCategoryBoss = (RoomBossSubCategory)0; Expand_TableRoomAgain.subCategoryNormal = (RoomNormalSubCategory)0; Expand_TableRoomAgain.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_TableRoomAgain.subCategorySecret = (RoomSecretSubCategory)0; Expand_TableRoomAgain.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_TableRoomAgain.pits = new List(); Expand_TableRoomAgain.placedObjects = new List(); Expand_TableRoomAgain.placedObjectPositions = new List(); Expand_TableRoomAgain.eventTriggerAreas = new List(); Expand_TableRoomAgain.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_TableRoomAgain.overriddenTilesets = (ValidTilesets)0; Expand_TableRoomAgain.prerequisites = new List(); Expand_TableRoomAgain.InvalidInCoop = false; Expand_TableRoomAgain.cullProceduralDecorationOnWeakPlatforms = false; Expand_TableRoomAgain.preventAddedDecoLayering = false; Expand_TableRoomAgain.precludeAllTilemapDrawing = false; Expand_TableRoomAgain.drawPrecludedCeilingTiles = false; Expand_TableRoomAgain.preventBorders = false; Expand_TableRoomAgain.preventFacewallAO = false; Expand_TableRoomAgain.usesCustomAmbientLight = false; Expand_TableRoomAgain.customAmbientLight = Color.white; Expand_TableRoomAgain.ForceAllowDuplicates = false; Expand_TableRoomAgain.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_TableRoomAgain.IsLostWoodsRoom = false; Expand_TableRoomAgain.UseCustomMusic = false; Expand_TableRoomAgain.UseCustomMusicState = false; Expand_TableRoomAgain.CustomMusicEvent = string.Empty; Expand_TableRoomAgain.UseCustomMusicSwitch = false; Expand_TableRoomAgain.CustomMusicSwitch = string.Empty; Expand_TableRoomAgain.overrideRoomVisualTypeForSecretRooms = false; Expand_TableRoomAgain.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_TableRoomAgain.overrideRoomVisualType = -1; Expand_TableRoomAgain.Width = 27; Expand_TableRoomAgain.Height = 25; PrototypeDungeonRoom expand_TableRoomAgain = Expand_TableRoomAgain; list9 = new List(); List list135 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj24 = val10; list42 = new List(); List list136 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = "3f6d6b0c4a7c4690807435c7b37c35a5"; val13.contentsBasePosition = new Vector2(13f, 12f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list136.Add(val13); obj24.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(13f, 12f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list135.Add(val10); expand_TableRoomAgain.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_TableRoomAgain, new Vector2(0f, 5f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_TableRoomAgain, new Vector2(0f, 20f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_TableRoomAgain, new Vector2(28f, 5f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_TableRoomAgain, new Vector2(28f, 20f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_TableRoomAgain, new Vector2(6f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_TableRoomAgain, new Vector2(21f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_TableRoomAgain, new Vector2(6f, 26f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_TableRoomAgain, new Vector2(21f, 26f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(11f, 10f), null, ExpandPrefabs.Teleporter_Gungeon_01.GetComponent()); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(8f, 6f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(11f, 6f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(14f, 6f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(17f, 6f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(8f, 18f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(11f, 18f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(14f, 18f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(17f, 18f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableHorizontal, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(20f, 7f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(20f, 10f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(20f, 13f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(20f, 16f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(6f, 7f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(6f, 10f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(6f, 13f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(6f, 16f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(7f, 4f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(20f, 4f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(20f, 21f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(7f, 21f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(9f, 9f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(13f, 9f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(17f, 9f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(9f, 12f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(13f, 12f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(17f, 12f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(9f, 15f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(13f, 15f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_TableRoomAgain, new Vector2(17f, 15f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.GenerateBasicRoomLayout(Expand_TableRoomAgain, (CellType)2, (PitBorderType)0); Expand_Agony = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Agony"); Expand_ice1 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_ice1"); Expand_Ice2 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Ice2"); Expand_Ice3 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Ice3"); Expand_Ice4 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Ice4"); Expand_LargeMany = RoomFactory.BuildFromAssetBundle(bundles, "Expand_LargeMany"); Expand_Roundabout = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Roundabout"); Expand_Shells = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Shells"); Expand_Spooky = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Spooky"); Expand_Undead1 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Undead1"); Expand_Undead2 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Undead2"); Expand_Undead3 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Undead3"); Expand_Undead4 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Undead4"); Expand_4wave = RoomFactory.BuildFromAssetBundle(bundles, "Expand_4wave"); Expand_Spiralbomb = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Spiralbomb"); Expand_Bat = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Bat"); Expand_Batsmall = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Batsmall"); Expand_BIRDS = RoomFactory.BuildFromAssetBundle(bundles, "Expand_BIRDS"); Expand_Blobs = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Blobs"); Expand_BoogalooFailure2 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_BoogalooFailure2"); Expand_Chess = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Chess"); Expand_Cornerpits = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Cornerpits"); Expand_Enclosed = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Enclosed"); Expand_Funky = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Funky"); Expand_Gapsniper = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Gapsniper"); Expand_Hallway = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Hallway"); Expand_HUB_1wave = RoomFactory.BuildFromAssetBundle(bundles, "Expand_HUB_1wave"); Expand_HUB_1wave.category = (RoomCategory)1; RoomBuilder.AddObjectToRoom(Expand_HUB_1wave, new Vector2(19f, 14f), null, ExpandPrefabs.Teleporter_Gungeon_01.GetComponent()); Expand_Islands = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Islands"); Expand_Long = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Long"); Expand_Mushroom = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mushroom"); Expand_Mutant = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mutant"); Expand_Oddshroom = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Oddshroom"); Expand_Pitzag = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Pitzag"); Expand_Shotgun = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Shotgun"); Expand_Smallcentral = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Smallcentral"); Expand_Secret_Brother10 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Brother10", setRoomCategory: true); Expand_Secret_Brother9 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Brother9", setRoomCategory: true); Expand_Secret_Brother8 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Brother8", setRoomCategory: true); Expand_Secret_Brother7 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Brother7", setRoomCategory: true); Expand_Secret_Brother6 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Brother6", setRoomCategory: true); Expand_Secret_Brother5 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Brother5", setRoomCategory: true); Expand_Secret_Brother4 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Brother4", setRoomCategory: true); Expand_Secret_Brother3 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Brother3", setRoomCategory: true); Expand_Secret_Brother2 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Brother2", setRoomCategory: true); Expand_Secret_Brother1 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Brother1", setRoomCategory: true); Expand_Secret_Witch10 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Witch10", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Witch9 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Witch9", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Witch8 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Witch8", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Witch7 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Witch7", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Witch6 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Witch6", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Witch5 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Witch5", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Witch4 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Witch4", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Witch3 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Witch3", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Witch2 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Witch2", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Witch1 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Witch1", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Pickups = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Pickups", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Owl10 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Owl10", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Owl9 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Owl9", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Owl8 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Owl8", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Owl7 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Owl7", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Owl6 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Owl6", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Owl5 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Owl5", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Owl4 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Owl4", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Owl3 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Owl3", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Owl2 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Owl2", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Owl1 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Owl1", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Oldman10 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Oldman10", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Oldman9 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Oldman9", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Oldman8 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Oldman8", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Oldman7 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Oldman7", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Oldman6 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Oldman6", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Oldman5 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Oldman5", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Oldman4 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Oldman4", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Oldman3 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Oldman3", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Oldman2 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Oldman2", setRoomCategory: true, autoAssignToFloor: true); Expand_Secret_Oldman1 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Secret_Oldman1", setRoomCategory: true, autoAssignToFloor: true); Secret_Expand_reto = RoomFactory.BuildFromAssetBundle(bundles, "Secret_Expand_reto", setRoomCategory: true, autoAssignToFloor: true); Secret_Expand_Achievement_The_Password = RoomFactory.BuildFromAssetBundle(bundles, "Secret_Expand_Achievement_The_Password", setRoomCategory: true, ExpandSettings.RestoreOldRooms); B_Expand_demon_onehand = RoomFactory.BuildFromAssetBundle(bundles, "B_Expand_demon_onehand", setRoomCategory: true, ExpandSettings.RestoreOldRooms); B_Expand_Achievement_Rage_Mode = RoomFactory.BuildFromAssetBundle(bundles, "B_Expand_Achievement_Rage_Mode", setRoomCategory: true, ExpandSettings.RestoreOldRooms); B_Expand_Achievement_Jammed = RoomFactory.BuildFromAssetBundle(bundles, "B_Expand_Achievement_Jammed", setRoomCategory: true, ExpandSettings.RestoreOldRooms); PMO_Expand_Achievement_Demolition_Man = RoomFactory.BuildFromAssetBundle(bundles, "PMO_Expand_Achievement_Demolition_Man", setRoomCategory: true, ExpandSettings.RestoreOldRooms); PMO_Expand_Achievement_Beep = RoomFactory.BuildFromAssetBundle(bundles, "PMO_Expand_Achievement_Beep", setRoomCategory: true, ExpandSettings.RestoreOldRooms); PMHFOA_Expand_Achievement_Gun_Game = RoomFactory.BuildFromAssetBundle(bundles, "PMHFOA_Expand_Achievement_Gun_Game", setRoomCategory: true, ExpandSettings.RestoreOldRooms); PMH_Expand_Kyle = RoomFactory.BuildFromAssetBundle(bundles, "PMH_Expand_Kyle", setRoomCategory: true, ExpandSettings.RestoreOldRooms); PMH_Expand_Achievement_ReArmed = RoomFactory.BuildFromAssetBundle(bundles, "PMH_Expand_Achievement_ReArmed", setRoomCategory: true, ExpandSettings.RestoreOldRooms); PMH_Expand_Achievement_Dat_Plat = RoomFactory.BuildFromAssetBundle(bundles, "PMH_Expand_Achievement_Dat_Plat", setRoomCategory: true, ExpandSettings.RestoreOldRooms); PM_Expand_bubblebuddy = RoomFactory.BuildFromAssetBundle(bundles, "PM_Expand_bubblebuddy", setRoomCategory: true, ExpandSettings.RestoreOldRooms); PM_Expand_Achievement_Squad_Captain = RoomFactory.BuildFromAssetBundle(bundles, "PM_Expand_Achievement_Squad_Captain", setRoomCategory: true, ExpandSettings.RestoreOldRooms); PM_Expand_Achievement_Reverence_for_the_Dead = RoomFactory.BuildFromAssetBundle(bundles, "PM_Expand_Achievement_Reverence_for_the_Dead", setRoomCategory: true, ExpandSettings.RestoreOldRooms); PM_Expand_Achievement_Patron = RoomFactory.BuildFromAssetBundle(bundles, "PM_Expand_Achievement_Patron", setRoomCategory: true, ExpandSettings.RestoreOldRooms); PM_Expand_Achievement_Castle_Crasher = RoomFactory.BuildFromAssetBundle(bundles, "PM_Expand_Achievement_Castle_Crasher", setRoomCategory: true, ExpandSettings.RestoreOldRooms); PM_Expand_Achievement_Case_Closed = RoomFactory.BuildFromAssetBundle(bundles, "PM_Expand_Achievement_Case_Closed", setRoomCategory: true, ExpandSettings.RestoreOldRooms); P_Expand_MasterRound2 = RoomFactory.BuildFromAssetBundle(bundles, "P_Expand_MasterRound2", setRoomCategory: true, ExpandSettings.RestoreOldRooms); P_Expand_beholdter = RoomFactory.BuildFromAssetBundle(bundles, "P_Expand_beholdter", setRoomCategory: true, ExpandSettings.RestoreOldRooms); O_Expand_Achievement_Sworn_Gun = RoomFactory.BuildFromAssetBundle(bundles, "O_Expand_Achievement_Sworn_Gun", setRoomCategory: true, ExpandSettings.RestoreOldRooms); O_Expand_Achievement_Pit_Lord = RoomFactory.BuildFromAssetBundle(bundles, "O_Expand_Achievement_Pit_Lord", setRoomCategory: true, ExpandSettings.RestoreOldRooms); MHF_Expand_Achievement_Great_Hall = RoomFactory.BuildFromAssetBundle(bundles, "MHF_Expand_Achievement_Great_Hall", setRoomCategory: true, ExpandSettings.RestoreOldRooms); MH_Expand_TheSellCreep = RoomFactory.BuildFromAssetBundle(bundles, "MH_Expand_TheSellCreep", setRoomCategory: true, ExpandSettings.RestoreOldRooms); MH_Expand_Achievement_Trickshot = RoomFactory.BuildFromAssetBundle(bundles, "MH_Expand_Achievement_Trickshot", setRoomCategory: true, ExpandSettings.RestoreOldRooms); MH_Expand_Achievement_Lead_God = RoomFactory.BuildFromAssetBundle(bundles, "MH_Expand_Achievement_Lead_God", setRoomCategory: true, ExpandSettings.RestoreOldRooms); MH_Expand_Achievement_Going_Down = RoomFactory.BuildFromAssetBundle(bundles, "MH_Expand_Achievement_Going_Down", setRoomCategory: true, ExpandSettings.RestoreOldRooms); MH_Expand_Achievement_Challenger = RoomFactory.BuildFromAssetBundle(bundles, "MH_Expand_Achievement_Challenger", setRoomCategory: true, ExpandSettings.RestoreOldRooms); MFA_Expand_bigshotgun = RoomFactory.BuildFromAssetBundle(bundles, "MFA_Expand_bigshotgun", setRoomCategory: true, ExpandSettings.RestoreOldRooms); MA_Expand_Achievement_Dungeon_Diver = RoomFactory.BuildFromAssetBundle(bundles, "MA_Expand_Achievement_Dungeon_Diver", setRoomCategory: true, ExpandSettings.RestoreOldRooms); MA_Expand_Achievement_Double_Jeopardy = RoomFactory.BuildFromAssetBundle(bundles, "MA_Expand_Achievement_Double_Jeopardy", setRoomCategory: true, ExpandSettings.RestoreOldRooms); M_Expand_Retrashed = RoomFactory.BuildFromAssetBundle(bundles, "M_Expand_Retrashed", setRoomCategory: true, ExpandSettings.RestoreOldRooms); M_Expand_ratkey = RoomFactory.BuildFromAssetBundle(bundles, "M_Expand_ratkey", setRoomCategory: true, ExpandSettings.RestoreOldRooms); M_Expand_MasterRound3 = RoomFactory.BuildFromAssetBundle(bundles, "M_Expand_MasterRound3", setRoomCategory: true, ExpandSettings.RestoreOldRooms); M_Expand_ArcaneGunpowder = RoomFactory.BuildFromAssetBundle(bundles, "M_Expand_ArcaneGunpowder", setRoomCategory: true, ExpandSettings.RestoreOldRooms); M_Expand_AK = RoomFactory.BuildFromAssetBundle(bundles, "M_Expand_AK", setRoomCategory: true, ExpandSettings.RestoreOldRooms); M_Expand_Achievement_Rider = RoomFactory.BuildFromAssetBundle(bundles, "M_Expand_Achievement_Rider", setRoomCategory: true, ExpandSettings.RestoreOldRooms); M_Expand_Achievement_Resourceful = RoomFactory.BuildFromAssetBundle(bundles, "M_Expand_Achievement_Resourceful", setRoomCategory: true, ExpandSettings.RestoreOldRooms); M_Expand_Achievement_Mine_Master = RoomFactory.BuildFromAssetBundle(bundles, "M_Expand_Achievement_Mine_Master", setRoomCategory: true, ExpandSettings.RestoreOldRooms); KPMHFAO_Expand_Achievement_Woodsie_Lord = RoomFactory.BuildFromAssetBundle(bundles, "KPMHFAO_Expand_Achievement_Woodsie_Lord", setRoomCategory: true, ExpandSettings.RestoreOldRooms); KPMHFAO_Expand_Achievement_Wingman = RoomFactory.BuildFromAssetBundle(bundles, "KPMHFAO_Expand_Achievement_Wingman", setRoomCategory: true, ExpandSettings.RestoreOldRooms); KPM_Expand_Achievement_Last_Stop = RoomFactory.BuildFromAssetBundle(bundles, "KPM_Expand_Achievement_Last_Stop", setRoomCategory: true, ExpandSettings.RestoreOldRooms); KP_Expand_hegemony = RoomFactory.BuildFromAssetBundle(bundles, "KP_Expand_hegemony", setRoomCategory: true, ExpandSettings.RestoreOldRooms); KP_Expand_Achievement_Not_Just_A_Box = RoomFactory.BuildFromAssetBundle(bundles, "KP_Expand_Achievement_Not_Just_A_Box", setRoomCategory: true, ExpandSettings.RestoreOldRooms); KP_Expand_Achievement_Historian = RoomFactory.BuildFromAssetBundle(bundles, "KP_Expand_Achievement_Historian", setRoomCategory: true, ExpandSettings.RestoreOldRooms); K_Expand_Prime_Primer = RoomFactory.BuildFromAssetBundle(bundles, "K_Expand_Prime_Primer", setRoomCategory: true, ExpandSettings.RestoreOldRooms); K_Expand_MasterRound1 = RoomFactory.BuildFromAssetBundle(bundles, "K_Expand_MasterRound1", setRoomCategory: true, ExpandSettings.RestoreOldRooms); K_Expand_bonk = RoomFactory.BuildFromAssetBundle(bundles, "K_Expand_bonk", setRoomCategory: true, ExpandSettings.RestoreOldRooms); K_Expand_BigBird = RoomFactory.BuildFromAssetBundle(bundles, "K_Expand_BigBird", setRoomCategory: true, ExpandSettings.RestoreOldRooms); K_Expand_Achievement_Money_Pit = RoomFactory.BuildFromAssetBundle(bundles, "K_Expand_Achievement_Money_Pit", setRoomCategory: true, ExpandSettings.RestoreOldRooms); K_Expand_Achievement_Hedge_Slinger = RoomFactory.BuildFromAssetBundle(bundles, "K_Expand_Achievement_Hedge_Slinger", setRoomCategory: true, ExpandSettings.RestoreOldRooms); K_Expand_Achievement_Gungeon_Acolyte = RoomFactory.BuildFromAssetBundle(bundles, "K_Expand_Achievement_Gungeon_Acolyte", setRoomCategory: true, ExpandSettings.RestoreOldRooms); K_Expand_Achievement_Biggest_Wallet = RoomFactory.BuildFromAssetBundle(bundles, "K_Expand_Achievement_Biggest_Wallet", setRoomCategory: true, ExpandSettings.RestoreOldRooms); HFAB_Expand_Achievement_Forger = RoomFactory.BuildFromAssetBundle(bundles, "HFAB_Expand_Achievement_Forger", setRoomCategory: true, ExpandSettings.RestoreOldRooms); HF_Expand_Achievement_Weird_Tale = RoomFactory.BuildFromAssetBundle(bundles, "HF_Expand_Achievement_Weird_Tale", setRoomCategory: true, ExpandSettings.RestoreOldRooms); HF_Expand_Achievement_Cartographers_Assistant = RoomFactory.BuildFromAssetBundle(bundles, "HF_Expand_Achievement_Cartographers_Assistant", setRoomCategory: true, ExpandSettings.RestoreOldRooms); HB_Expand_Achievement_Hollowed_Out = RoomFactory.BuildFromAssetBundle(bundles, "HB_Expand_Achievement_Hollowed_Out", setRoomCategory: true, ExpandSettings.RestoreOldRooms); H_Expand_Planar_Lead = RoomFactory.BuildFromAssetBundle(bundles, "H_Expand_Planar_Lead", setRoomCategory: true, ExpandSettings.RestoreOldRooms); H_Expand_MasterRound4 = RoomFactory.BuildFromAssetBundle(bundles, "H_Expand_MasterRound4", setRoomCategory: true, ExpandSettings.RestoreOldRooms); H_Expand_Highpriest = RoomFactory.BuildFromAssetBundle(bundles, "H_Expand_Highpriest", setRoomCategory: true, ExpandSettings.RestoreOldRooms); H_Expand_Achievement_SledgeDog = RoomFactory.BuildFromAssetBundle(bundles, "H_Expand_Achievement_SledgeDog", setRoomCategory: true, ExpandSettings.RestoreOldRooms); H_Expand_Achievement_Exorcist = RoomFactory.BuildFromAssetBundle(bundles, "H_Expand_Achievement_Exorcist", setRoomCategory: true, ExpandSettings.RestoreOldRooms); FB_Expand_Achievement_Time_Paradox = RoomFactory.BuildFromAssetBundle(bundles, "FB_Expand_Achievement_Time_Paradox", setRoomCategory: true, ExpandSettings.RestoreOldRooms); FB_Expand_Achievement_Lion_Leap = RoomFactory.BuildFromAssetBundle(bundles, "FB_Expand_Achievement_Lion_Leap", setRoomCategory: true, ExpandSettings.RestoreOldRooms); FB_Expand_Achievement_Gunsmith = RoomFactory.BuildFromAssetBundle(bundles, "FB_Expand_Achievement_Gunsmith", setRoomCategory: true, ExpandSettings.RestoreOldRooms); FB_Expand_Achievement_Gungeon_Master = RoomFactory.BuildFromAssetBundle(bundles, "FB_Expand_Achievement_Gungeon_Master", setRoomCategory: true, ExpandSettings.RestoreOldRooms); FB_Expand_Achievement_Day_Ruiner = RoomFactory.BuildFromAssetBundle(bundles, "FB_Expand_Achievement_Day_Ruiner", setRoomCategory: true, ExpandSettings.RestoreOldRooms); F_Expand_Obsidian_Shell_Casing = RoomFactory.BuildFromAssetBundle(bundles, "F_Expand_Obsidian_Shell_Casing", setRoomCategory: true, ExpandSettings.RestoreOldRooms); F_Expand_MasterRound5 = RoomFactory.BuildFromAssetBundle(bundles, "F_Expand_MasterRound5", setRoomCategory: true, ExpandSettings.RestoreOldRooms); F_Expand_dragun = RoomFactory.BuildFromAssetBundle(bundles, "F_Expand_dragun", setRoomCategory: true, ExpandSettings.RestoreOldRooms); F_Expand_Achievement_Terminated = RoomFactory.BuildFromAssetBundle(bundles, "F_Expand_Achievement_Terminated", setRoomCategory: true, ExpandSettings.RestoreOldRooms); F_Expand_Achievement_Slayer = RoomFactory.BuildFromAssetBundle(bundles, "F_Expand_Achievement_Slayer", setRoomCategory: true, ExpandSettings.RestoreOldRooms); F_Expand_Achievement_I_Knew_Someone_Would_Do_It = RoomFactory.BuildFromAssetBundle(bundles, "F_Expand_Achievement_I_Knew_Someone_Would_Do_It", setRoomCategory: true, ExpandSettings.RestoreOldRooms); F_Expand_Achievement_Advanced_Slayer = RoomFactory.BuildFromAssetBundle(bundles, "F_Expand_Achievement_Advanced_Slayer", setRoomCategory: true, ExpandSettings.RestoreOldRooms); Expand_Proper_Regular1 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular1", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular2 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular2", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular3 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular3", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular4 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular4", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular5 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular5", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular6 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular6", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular7 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular7", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular8 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular8", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular9 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular9", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular10 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular10", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular11 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular11", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular12 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular12", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular13 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular13", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular14 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular14", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular15 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular15", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular16 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular16", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular17 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular17", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular18 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular18", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular19 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular19", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular20 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular20", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular21 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular21", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular22 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular22", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular23 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular23", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular24 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular24", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular25 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular25", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular26 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular26", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular27 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular27", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular28 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular28", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular29 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular29", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular31 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular31", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular32 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular32", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular33 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular33", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular34 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular34", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular35 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular35", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular36 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular36", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular37 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular37", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular38 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular38", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular39 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular39", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular40 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular40", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular41 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular41", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular42 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular42", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular43 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular43", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular44 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular44", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular45 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular45", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular46 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular46", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular47 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular47", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular48 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular48", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular49 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular49", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Regular50 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Regular50", setRoomCategory: true, autoAssignToFloor: true); Expand_Proper_Speshul_Regular30 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Proper_Speshul_Regular30", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular1 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular1", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular2 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular2", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular3 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular3", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular4 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular4", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular5 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular5", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular6 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular6", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular7 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular7", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular8 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular8", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular9 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular9", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular10 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular10", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular11 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular11", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular12 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular12", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular13 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular13", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular14 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular14", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular15 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular15", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular16 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular16", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular17 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular17", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular18 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular18", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular19 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular19", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular20 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular20", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular21 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular21", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular22 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular22", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular23 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular23", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular24 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular24", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular25 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular25", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular26 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular26", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular27 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular27", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular28 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular28", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular29 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular29", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular30 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular30", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular31 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular31", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular32 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular32", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular33 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular33", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular34 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular34", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular35 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular35", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular36 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular36", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular37 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular37", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular38 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular38", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular39 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular39", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular40 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular40", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular41 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular41", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular42 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular42", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular43 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular43", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular44 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular44", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular45 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular45", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular46 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular46", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular47 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular47", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular48 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular48", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular49 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular49", setRoomCategory: true, autoAssignToFloor: true); Expand_Mines_Regular50 = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Mines_Regular50", setRoomCategory: true, autoAssignToFloor: true); Expand_Keep_Spiral = RoomFactory.BuildFromAssetBundle(bundles, "Expand_Keep_Spiral", setRoomCategory: true, ExpandSettings.RestoreOldRooms); ((Object)Expand_Apache_FieldOfSaws).name = "Apache Field of Saws"; Expand_Apache_FieldOfSaws.QAID = "FF" + Random.Range(1000, 9999); Expand_Apache_FieldOfSaws.GUID = Guid.NewGuid().ToString(); Expand_Apache_FieldOfSaws.PreventMirroring = false; Expand_Apache_FieldOfSaws.category = (RoomCategory)2; Expand_Apache_FieldOfSaws.subCategoryBoss = (RoomBossSubCategory)0; Expand_Apache_FieldOfSaws.subCategoryNormal = (RoomNormalSubCategory)1; Expand_Apache_FieldOfSaws.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Apache_FieldOfSaws.subCategorySecret = (RoomSecretSubCategory)0; Expand_Apache_FieldOfSaws.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Apache_FieldOfSaws.pits = new List(); Expand_Apache_FieldOfSaws.placedObjects = new List(); Expand_Apache_FieldOfSaws.placedObjectPositions = new List(); Expand_Apache_FieldOfSaws.eventTriggerAreas = new List(); Expand_Apache_FieldOfSaws.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Apache_FieldOfSaws.overriddenTilesets = (ValidTilesets)0; Expand_Apache_FieldOfSaws.prerequisites = new List(); Expand_Apache_FieldOfSaws.InvalidInCoop = false; Expand_Apache_FieldOfSaws.cullProceduralDecorationOnWeakPlatforms = false; Expand_Apache_FieldOfSaws.preventAddedDecoLayering = false; Expand_Apache_FieldOfSaws.precludeAllTilemapDrawing = false; Expand_Apache_FieldOfSaws.drawPrecludedCeilingTiles = false; Expand_Apache_FieldOfSaws.preventBorders = false; Expand_Apache_FieldOfSaws.preventFacewallAO = false; Expand_Apache_FieldOfSaws.usesCustomAmbientLight = false; Expand_Apache_FieldOfSaws.customAmbientLight = Color.white; Expand_Apache_FieldOfSaws.ForceAllowDuplicates = false; Expand_Apache_FieldOfSaws.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Apache_FieldOfSaws.IsLostWoodsRoom = false; Expand_Apache_FieldOfSaws.UseCustomMusic = false; Expand_Apache_FieldOfSaws.UseCustomMusicState = false; Expand_Apache_FieldOfSaws.CustomMusicEvent = string.Empty; Expand_Apache_FieldOfSaws.UseCustomMusicSwitch = false; Expand_Apache_FieldOfSaws.CustomMusicSwitch = string.Empty; Expand_Apache_FieldOfSaws.overrideRoomVisualTypeForSecretRooms = false; Expand_Apache_FieldOfSaws.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_Apache_FieldOfSaws.Width = 32; Expand_Apache_FieldOfSaws.Height = 32; RoomBuilder.AddExitToRoom(Expand_Apache_FieldOfSaws, new Vector2(0f, 16f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Apache_FieldOfSaws, new Vector2(33f, 16f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Apache_FieldOfSaws, new Vector2(16f, 33f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Apache_FieldOfSaws, new Vector2(16f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Apache_FieldOfSaws, new Vector2(5f, 5f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXSawBladeTrap_4x4Zone, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_FieldOfSaws, new Vector2(11f, 5f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXSawBladeTrap_4x4Zone, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_FieldOfSaws, new Vector2(17f, 5f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXSawBladeTrap_4x4Zone, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_FieldOfSaws, new Vector2(23f, 5f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXSawBladeTrap_4x4Zone, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_FieldOfSaws, new Vector2(5f, 11f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXSawBladeTrap_4x4Zone, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_FieldOfSaws, new Vector2(11f, 11f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXSawBladeTrap_4x4Zone, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_FieldOfSaws, new Vector2(17f, 11f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXSawBladeTrap_4x4Zone, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_FieldOfSaws, new Vector2(23f, 11f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXSawBladeTrap_4x4Zone, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_FieldOfSaws, new Vector2(5f, 17f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXSawBladeTrap_4x4Zone, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_FieldOfSaws, new Vector2(11f, 17f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXSawBladeTrap_4x4Zone, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_FieldOfSaws, new Vector2(17f, 17f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXSawBladeTrap_4x4Zone, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_FieldOfSaws, new Vector2(23f, 17f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXSawBladeTrap_4x4Zone, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_FieldOfSaws, new Vector2(5f, 23f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXSawBladeTrap_4x4Zone, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_FieldOfSaws, new Vector2(11f, 23f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXSawBladeTrap_4x4Zone, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_FieldOfSaws, new Vector2(17f, 23f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXSawBladeTrap_4x4Zone, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_FieldOfSaws, new Vector2(23f, 23f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXSawBladeTrap_4x4Zone, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_FieldOfSaws, new Vector2(9f, 21f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.AddObjectToRoom(Expand_Apache_FieldOfSaws, new Vector2(21f, 9f), null, null, "01972dee89fc4404a5c408d50007dad5"); RoomBuilder.GenerateRoomLayout(Expand_Apache_FieldOfSaws, "Expand_Apache_FieldOfSaws_Layout", (PitBorderType)0, (CoreDamageTypes)0); Expand_Apache_TheCrushZone = RoomFactory.BuildFromAssetBundle(bundles, "Expand_TheCrushZone", setRoomCategory: true, autoAssignToFloor: false, assignDecorationSettings: true); ((Object)Expand_Apache_TheCrushZone).name = "Apache The Crush Zone"; RoomBuilder.AddObjectToRoom(Expand_Apache_TheCrushZone, new Vector2(4f, 8f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Horizontal.GetComponent(), null, 1f, 0, 2); RoomBuilder.AddObjectToRoom(Expand_Apache_TheCrushZone, new Vector2(4f, 17f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Horizontal.GetComponent(), null, 1f, 0, 2); RoomBuilder.AddObjectToRoom(Expand_Apache_TheCrushZone, new Vector2(4f, 26f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Horizontal.GetComponent(), null, 1f, 0, 2); RoomBuilder.AddObjectToRoom(Expand_Apache_TheCrushZone, new Vector2(13f, 8f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Horizontal.GetComponent(), null, 1f, 0, 2); RoomBuilder.AddObjectToRoom(Expand_Apache_TheCrushZone, new Vector2(13f, 17f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Horizontal.GetComponent(), null, 1f, 0, 2); RoomBuilder.AddObjectToRoom(Expand_Apache_TheCrushZone, new Vector2(13f, 26f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Horizontal.GetComponent(), null, 1f, 0, 2); RoomBuilder.AddObjectToRoom(Expand_Apache_TheCrushZone, new Vector2(22f, 8f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Horizontal.GetComponent(), null, 1f, 0, 2); RoomBuilder.AddObjectToRoom(Expand_Apache_TheCrushZone, new Vector2(22f, 17f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Horizontal.GetComponent(), null, 1f, 0, 2); RoomBuilder.AddObjectToRoom(Expand_Apache_TheCrushZone, new Vector2(22f, 26f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Horizontal.GetComponent(), null, 1f, 0, 2); RoomBuilder.AddObjectToRoom(Expand_Apache_TheCrushZone, new Vector2(31f, 8f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Horizontal.GetComponent(), null, 1f, 0, 2); RoomBuilder.AddObjectToRoom(Expand_Apache_TheCrushZone, new Vector2(31f, 17f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Horizontal.GetComponent(), null, 1f, 0, 2); RoomBuilder.AddObjectToRoom(Expand_Apache_TheCrushZone, new Vector2(31f, 26f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Horizontal.GetComponent(), null, 1f, 0, 2); RoomBuilder.AddObjectToRoom(Expand_Apache_TheCrushZone, new Vector2(8f, 4f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Vertical.GetComponent()); RoomBuilder.AddObjectToRoom(Expand_Apache_TheCrushZone, new Vector2(8f, 13f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Vertical.GetComponent()); RoomBuilder.AddObjectToRoom(Expand_Apache_TheCrushZone, new Vector2(8f, 22f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Vertical.GetComponent()); RoomBuilder.AddObjectToRoom(Expand_Apache_TheCrushZone, new Vector2(8f, 31f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Vertical.GetComponent()); RoomBuilder.AddObjectToRoom(Expand_Apache_TheCrushZone, new Vector2(17f, 4f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Vertical.GetComponent()); RoomBuilder.AddObjectToRoom(Expand_Apache_TheCrushZone, new Vector2(17f, 13f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Vertical.GetComponent()); RoomBuilder.AddObjectToRoom(Expand_Apache_TheCrushZone, new Vector2(17f, 22f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Vertical.GetComponent()); RoomBuilder.AddObjectToRoom(Expand_Apache_TheCrushZone, new Vector2(17f, 31f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Vertical.GetComponent()); RoomBuilder.AddObjectToRoom(Expand_Apache_TheCrushZone, new Vector2(26f, 4f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Vertical.GetComponent()); RoomBuilder.AddObjectToRoom(Expand_Apache_TheCrushZone, new Vector2(26f, 13f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Vertical.GetComponent()); RoomBuilder.AddObjectToRoom(Expand_Apache_TheCrushZone, new Vector2(26f, 22f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Vertical.GetComponent()); RoomBuilder.AddObjectToRoom(Expand_Apache_TheCrushZone, new Vector2(26f, 31f), null, (DungeonPlaceableBehaviour)(object)ExpandObjectDatabase.CrushDoor_Vertical.GetComponent()); ((Object)Expand_Apache_SpikeAndPits).name = "Apache Spikes and Pits"; Expand_Apache_SpikeAndPits.QAID = "FF" + Random.Range(1000, 9999); Expand_Apache_SpikeAndPits.GUID = Guid.NewGuid().ToString(); Expand_Apache_SpikeAndPits.PreventMirroring = false; Expand_Apache_SpikeAndPits.category = (RoomCategory)2; Expand_Apache_SpikeAndPits.subCategoryBoss = (RoomBossSubCategory)0; Expand_Apache_SpikeAndPits.subCategoryNormal = (RoomNormalSubCategory)1; Expand_Apache_SpikeAndPits.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Apache_SpikeAndPits.subCategorySecret = (RoomSecretSubCategory)0; Expand_Apache_SpikeAndPits.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Apache_SpikeAndPits.pits = new List(); Expand_Apache_SpikeAndPits.placedObjects = new List(); Expand_Apache_SpikeAndPits.placedObjectPositions = new List(); Expand_Apache_SpikeAndPits.eventTriggerAreas = new List(); Expand_Apache_SpikeAndPits.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Apache_SpikeAndPits.overriddenTilesets = (ValidTilesets)0; Expand_Apache_SpikeAndPits.prerequisites = new List(); Expand_Apache_SpikeAndPits.InvalidInCoop = false; Expand_Apache_SpikeAndPits.cullProceduralDecorationOnWeakPlatforms = false; Expand_Apache_SpikeAndPits.preventAddedDecoLayering = false; Expand_Apache_SpikeAndPits.precludeAllTilemapDrawing = false; Expand_Apache_SpikeAndPits.drawPrecludedCeilingTiles = false; Expand_Apache_SpikeAndPits.preventBorders = false; Expand_Apache_SpikeAndPits.preventFacewallAO = false; Expand_Apache_SpikeAndPits.usesCustomAmbientLight = false; Expand_Apache_SpikeAndPits.customAmbientLight = Color.white; Expand_Apache_SpikeAndPits.ForceAllowDuplicates = false; Expand_Apache_SpikeAndPits.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Apache_SpikeAndPits.IsLostWoodsRoom = false; Expand_Apache_SpikeAndPits.UseCustomMusic = false; Expand_Apache_SpikeAndPits.UseCustomMusicState = false; Expand_Apache_SpikeAndPits.CustomMusicEvent = string.Empty; Expand_Apache_SpikeAndPits.UseCustomMusicSwitch = false; Expand_Apache_SpikeAndPits.CustomMusicSwitch = string.Empty; Expand_Apache_SpikeAndPits.overrideRoomVisualTypeForSecretRooms = false; Expand_Apache_SpikeAndPits.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_Apache_SpikeAndPits.Width = 26; Expand_Apache_SpikeAndPits.Height = 26; RoomBuilder.AddExitToRoom(Expand_Apache_SpikeAndPits, new Vector2(0f, 13f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Apache_SpikeAndPits, new Vector2(27f, 13f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Apache_SpikeAndPits, new Vector2(13f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_Apache_SpikeAndPits, new Vector2(13f, 27f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(5f, 5f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(7f, 5f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(5f, 7f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(7f, 7f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(11f, 5f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(13f, 5f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(11f, 7f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(13f, 7f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(17f, 5f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(19f, 5f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(17f, 7f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(19f, 7f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(5f, 11f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(7f, 11f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(5f, 13f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(7f, 13f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(11f, 11f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(13f, 11f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(11f, 13f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(13f, 13f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(17f, 11f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(19f, 11f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(17f, 13f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(19f, 13f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(5f, 17f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(7f, 17f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(5f, 19f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(7f, 19f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(11f, 17f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(13f, 17f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(11f, 19f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(13f, 19f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(17f, 17f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(19f, 17f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(17f, 19f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(19f, 19f), ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.SpikeTrap, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_Apache_SpikeAndPits, new Vector2(15f, 10f), null, null, "4db03291a12144d69fe940d5a01de376"); RoomBuilder.GenerateRoomLayout(Expand_Apache_SpikeAndPits, "Expand_Apache_SpikeAndPits_Layout", (PitBorderType)0, (CoreDamageTypes)0); Expand_Apache_PitTraps = RoomFactory.BuildFromAssetBundle(bundles, "Expand_PitTraps", setRoomCategory: true, autoAssignToFloor: false, assignDecorationSettings: true); ((Object)Expand_Apache_PitTraps).name = "Apache Pit Traps"; ((Object)Expand_Apache_RickRollChest).name = "Apache Rick Roll Chest Room"; Expand_Apache_RickRollChest.QAID = "FF" + Random.Range(1000, 9999); Expand_Apache_RickRollChest.GUID = Guid.NewGuid().ToString(); Expand_Apache_RickRollChest.PreventMirroring = false; Expand_Apache_RickRollChest.category = (RoomCategory)2; Expand_Apache_RickRollChest.subCategoryBoss = (RoomBossSubCategory)0; Expand_Apache_RickRollChest.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Apache_RickRollChest.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Apache_RickRollChest.subCategorySecret = (RoomSecretSubCategory)0; Expand_Apache_RickRollChest.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Apache_RickRollChest.pits = new List(); Expand_Apache_RickRollChest.placedObjects = new List(); Expand_Apache_RickRollChest.placedObjectPositions = new List(); Expand_Apache_RickRollChest.eventTriggerAreas = new List(); Expand_Apache_RickRollChest.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Apache_RickRollChest.overriddenTilesets = (ValidTilesets)64; Expand_Apache_RickRollChest.prerequisites = new List(); Expand_Apache_RickRollChest.InvalidInCoop = false; Expand_Apache_RickRollChest.cullProceduralDecorationOnWeakPlatforms = false; Expand_Apache_RickRollChest.preventAddedDecoLayering = false; Expand_Apache_RickRollChest.precludeAllTilemapDrawing = false; Expand_Apache_RickRollChest.drawPrecludedCeilingTiles = false; Expand_Apache_RickRollChest.preventBorders = false; Expand_Apache_RickRollChest.preventFacewallAO = false; Expand_Apache_RickRollChest.usesCustomAmbientLight = false; Expand_Apache_RickRollChest.customAmbientLight = Color.white; Expand_Apache_RickRollChest.ForceAllowDuplicates = false; Expand_Apache_RickRollChest.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Apache_RickRollChest.IsLostWoodsRoom = false; Expand_Apache_RickRollChest.UseCustomMusic = false; Expand_Apache_RickRollChest.UseCustomMusicState = false; Expand_Apache_RickRollChest.CustomMusicEvent = string.Empty; Expand_Apache_RickRollChest.UseCustomMusicSwitch = false; Expand_Apache_RickRollChest.CustomMusicSwitch = string.Empty; Expand_Apache_RickRollChest.overrideRoomVisualTypeForSecretRooms = false; Expand_Apache_RickRollChest.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_Apache_RickRollChest.Width = 18; Expand_Apache_RickRollChest.Height = 13; Expand_Apache_RickRollChest.additionalObjectLayers = new List(); foreach (PrototypeRoomExit exit9 in ExpandPrefabs.gungeon_rewardroom_1.exitData.exits) { Expand_Apache_RickRollChest.exitData.exits.Add(exit9); } foreach (PrototypeRoomObjectLayer additionalObjectLayer in ExpandPrefabs.gungeon_rewardroom_1.additionalObjectLayers) { Expand_Apache_RickRollChest.additionalObjectLayers.Add(additionalObjectLayer); } foreach (PrototypePlacedObjectData placedObject2 in ExpandPrefabs.gungeon_rewardroom_1.placedObjects) { Expand_Apache_RickRollChest.placedObjects.Add(placedObject2); } foreach (Vector2 placedObjectPosition in ExpandPrefabs.gungeon_rewardroom_1.placedObjectPositions) { Expand_Apache_RickRollChest.placedObjectPositions.Add(placedObjectPosition); } Expand_Apache_RickRollChest.additionalObjectLayers.Remove(Expand_Apache_RickRollChest.additionalObjectLayers[1]); RoomBuilder.AddObjectToRoom(Expand_Apache_RickRollChest, new Vector2(7f, 9f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.RickRollChestObject, spawnsEnemy: false, useExternalPrefab: true), null, null, 1f, 8); RoomBuilder.GenerateRoomLayout(Expand_Apache_RickRollChest, "Expand_Apache_RickRollChestRoom_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_Apache_SurpriseChest).name = "Apache Suprise Chest Room"; Expand_Apache_SurpriseChest.QAID = "FF" + Random.Range(1000, 9999); Expand_Apache_SurpriseChest.GUID = Guid.NewGuid().ToString(); Expand_Apache_SurpriseChest.PreventMirroring = false; Expand_Apache_SurpriseChest.category = (RoomCategory)2; Expand_Apache_SurpriseChest.subCategoryBoss = (RoomBossSubCategory)0; Expand_Apache_SurpriseChest.subCategoryNormal = (RoomNormalSubCategory)0; Expand_Apache_SurpriseChest.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_Apache_SurpriseChest.subCategorySecret = (RoomSecretSubCategory)0; Expand_Apache_SurpriseChest.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_Apache_SurpriseChest.pits = new List(); Expand_Apache_SurpriseChest.placedObjects = new List(); Expand_Apache_SurpriseChest.placedObjectPositions = new List(); Expand_Apache_SurpriseChest.eventTriggerAreas = new List(); Expand_Apache_SurpriseChest.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_Apache_SurpriseChest.overriddenTilesets = (ValidTilesets)64; Expand_Apache_SurpriseChest.prerequisites = new List(); Expand_Apache_SurpriseChest.InvalidInCoop = false; Expand_Apache_SurpriseChest.cullProceduralDecorationOnWeakPlatforms = false; Expand_Apache_SurpriseChest.preventAddedDecoLayering = false; Expand_Apache_SurpriseChest.precludeAllTilemapDrawing = false; Expand_Apache_SurpriseChest.drawPrecludedCeilingTiles = false; Expand_Apache_SurpriseChest.preventBorders = false; Expand_Apache_SurpriseChest.preventFacewallAO = false; Expand_Apache_SurpriseChest.usesCustomAmbientLight = false; Expand_Apache_SurpriseChest.customAmbientLight = Color.white; Expand_Apache_SurpriseChest.ForceAllowDuplicates = false; Expand_Apache_SurpriseChest.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_Apache_SurpriseChest.IsLostWoodsRoom = false; Expand_Apache_SurpriseChest.UseCustomMusic = false; Expand_Apache_SurpriseChest.UseCustomMusicState = false; Expand_Apache_SurpriseChest.CustomMusicEvent = string.Empty; Expand_Apache_SurpriseChest.UseCustomMusicSwitch = false; Expand_Apache_SurpriseChest.CustomMusicSwitch = string.Empty; Expand_Apache_SurpriseChest.overrideRoomVisualTypeForSecretRooms = false; Expand_Apache_SurpriseChest.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_Apache_SurpriseChest.Width = 18; Expand_Apache_SurpriseChest.Height = 13; Expand_Apache_SurpriseChest.additionalObjectLayers = new List(); foreach (PrototypeRoomExit exit10 in ExpandPrefabs.gungeon_rewardroom_1.exitData.exits) { Expand_Apache_SurpriseChest.exitData.exits.Add(exit10); } foreach (PrototypeRoomObjectLayer additionalObjectLayer2 in ExpandPrefabs.gungeon_rewardroom_1.additionalObjectLayers) { Expand_Apache_SurpriseChest.additionalObjectLayers.Add(additionalObjectLayer2); } foreach (PrototypePlacedObjectData placedObject3 in ExpandPrefabs.gungeon_rewardroom_1.placedObjects) { Expand_Apache_SurpriseChest.placedObjects.Add(placedObject3); } foreach (Vector2 placedObjectPosition2 in ExpandPrefabs.gungeon_rewardroom_1.placedObjectPositions) { Expand_Apache_SurpriseChest.placedObjectPositions.Add(placedObjectPosition2); } Expand_Apache_SurpriseChest.additionalObjectLayers.Remove(Expand_Apache_SurpriseChest.additionalObjectLayers[1]); RoomBuilder.AddObjectToRoom(Expand_Apache_SurpriseChest, new Vector2(8f, 8f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.SurpriseChestObject, spawnsEnemy: false, useExternalPrefab: true), null, null, 1f, 0, 8); RoomBuilder.GenerateRoomLayout(Expand_Apache_SurpriseChest, "Expand_Apache_SurpriseChest_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)SecretExitRoom2).name = "Secret Elevator Exit"; SecretExitRoom2.QAID = "AA" + Random.Range(1000, 9999); SecretExitRoom2.GUID = Guid.NewGuid().ToString(); SecretExitRoom2.PreventMirroring = false; SecretExitRoom2.category = (RoomCategory)8; SecretExitRoom2.subCategoryBoss = (RoomBossSubCategory)0; SecretExitRoom2.subCategoryNormal = (RoomNormalSubCategory)0; SecretExitRoom2.subCategorySpecial = (RoomSpecialSubCategory)1; SecretExitRoom2.subCategorySecret = (RoomSecretSubCategory)0; SecretExitRoom2.exitData = new PrototypeRoomExitData { exits = new List(0) }; SecretExitRoom2.pits = new List(); SecretExitRoom2.placedObjects = new List(); SecretExitRoom2.placedObjectPositions = new List(); SecretExitRoom2.eventTriggerAreas = new List(); SecretExitRoom2.roomEvents = new List(0); SecretExitRoom2.overriddenTilesets = (ValidTilesets)0; SecretExitRoom2.prerequisites = new List(); SecretExitRoom2.InvalidInCoop = false; SecretExitRoom2.cullProceduralDecorationOnWeakPlatforms = false; SecretExitRoom2.preventAddedDecoLayering = false; SecretExitRoom2.precludeAllTilemapDrawing = true; SecretExitRoom2.drawPrecludedCeilingTiles = false; SecretExitRoom2.preventBorders = false; SecretExitRoom2.preventFacewallAO = false; SecretExitRoom2.usesCustomAmbientLight = true; SecretExitRoom2.customAmbientLight = new Color(0.875462f, 0.882353f, 0.810986f, 1f); SecretExitRoom2.ForceAllowDuplicates = false; SecretExitRoom2.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; SecretExitRoom2.IsLostWoodsRoom = false; SecretExitRoom2.UseCustomMusic = false; SecretExitRoom2.UseCustomMusicState = false; SecretExitRoom2.CustomMusicEvent = string.Empty; SecretExitRoom2.UseCustomMusicSwitch = false; SecretExitRoom2.CustomMusicSwitch = string.Empty; SecretExitRoom2.overrideRoomVisualTypeForSecretRooms = false; SecretExitRoom2.rewardChestSpawnPosition = IntVector2.One; SecretExitRoom2.Width = 32; SecretExitRoom2.Height = 58; SecretExitRoom2.associatedMinimapIcon = ExpandPrefabs.elevator_maintenance_room.associatedMinimapIcon; SecretExitRoom2.overrideRoomVisualType = 0; SecretExitRoom2.usesProceduralDecoration = false; SecretExitRoom2.allowFloorDecoration = false; SecretExitRoom2.usesProceduralLighting = false; RoomBuilder.AddObjectToRoom(SecretExitRoom2, Vector2.zero, ExpandPrefabs.SecretElevatorExitTileset); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(23f, 6f), ExpandUtility.GenerateDungeonPlacable(ExpandSecretDoorPrefabs.EXSecretDoor_Hollow_Unlocked, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(21f, 4f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.Door_Horizontal_West, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(0f, 32f), ExpandPrefabs.EXOldWestWarp); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(14f, 4f), ExpandPrefabs.Cactus_A); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(15f, 12f), ExpandPrefabs.Cactus_B); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(13f, 8f), ExpandPrefabs.Cactus_B); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(2f, 19f), ExpandPrefabs.Cactus_A); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(26f, 19f), ExpandPrefabs.Cactus_A); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(18f, 22f), ExpandPrefabs.Cactus_B); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(11f, 26f), ExpandPrefabs.Cactus_B); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(22f, 29f), ExpandPrefabs.Cactus_A); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(21f, 34f), ExpandPrefabs.Cactus_A); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(27f, 35f), ExpandPrefabs.Cactus_B); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(4f, 32f), ExpandPrefabs.Cactus_B); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(16f, 30f), ExpandPrefabs.Cactus_B); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(14f, 32f), ExpandPrefabs.Cactus_A); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(15f, 37f), ExpandPrefabs.Cactus_A); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(15f, 39f), ExpandPrefabs.Cactus_B); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(27f, 35f), ExpandPrefabs.Cactus_B); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(2f, 57f), ExpandPrefabs.Cactus_A); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(3f, 39f), ExpandPrefabs.Cactus_B); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(28f, 42f), ExpandPrefabs.Cactus_B); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(26f, 27f), ExpandPrefabs.Cactus_A); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(2f, 24f), ExpandPrefabs.Cactus_B); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(8f, 36f), ExpandPrefabs.Cactus_B); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(22f, 43f), ExpandPrefabs.Cactus_B); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(9f, 45f), ExpandPrefabs.Cactus_A); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(2f, 46f), ExpandPrefabs.Cactus_A); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(6f, 51f), ExpandPrefabs.Cactus_A); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(22f, 52f), ExpandPrefabs.Cactus_B); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(29f, 51f), ExpandPrefabs.Cactus_A); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(11f, 56f), ExpandPrefabs.Cactus_A); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(27f, 35f), ExpandPrefabs.Cactus_B); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(19f, 57f), ExpandPrefabs.Cactus_B); RoomBuilder.AddObjectToRoom(SecretExitRoom2, new Vector2(28f, 57f), ExpandPrefabs.Cactus_B); RoomBuilder.GenerateRoomLayout(SecretExitRoom2, "Secret_Elevator_Exit_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)SecretRatEntranceRoom).name = "Secret Rat MiniElevator Room"; SecretRatEntranceRoom.QAID = "AA" + Random.Range(1000, 9999); SecretRatEntranceRoom.GUID = Guid.NewGuid().ToString(); SecretRatEntranceRoom.PreventMirroring = false; SecretRatEntranceRoom.category = (RoomCategory)0; SecretRatEntranceRoom.subCategoryBoss = (RoomBossSubCategory)0; SecretRatEntranceRoom.subCategoryNormal = (RoomNormalSubCategory)0; SecretRatEntranceRoom.subCategorySpecial = (RoomSpecialSubCategory)1; SecretRatEntranceRoom.subCategorySecret = (RoomSecretSubCategory)0; SecretRatEntranceRoom.exitData = new PrototypeRoomExitData { exits = new List() }; SecretRatEntranceRoom.pits = new List(); SecretRatEntranceRoom.placedObjects = new List(); SecretRatEntranceRoom.placedObjectPositions = new List(); SecretRatEntranceRoom.eventTriggerAreas = new List(); SecretRatEntranceRoom.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; SecretRatEntranceRoom.overriddenTilesets = (ValidTilesets)0; SecretRatEntranceRoom.prerequisites = new List(); SecretRatEntranceRoom.InvalidInCoop = false; SecretRatEntranceRoom.cullProceduralDecorationOnWeakPlatforms = false; SecretRatEntranceRoom.preventAddedDecoLayering = false; SecretRatEntranceRoom.precludeAllTilemapDrawing = false; SecretRatEntranceRoom.drawPrecludedCeilingTiles = false; SecretRatEntranceRoom.preventBorders = false; SecretRatEntranceRoom.preventFacewallAO = false; SecretRatEntranceRoom.usesCustomAmbientLight = false; SecretRatEntranceRoom.customAmbientLight = Color.white; SecretRatEntranceRoom.ForceAllowDuplicates = false; SecretRatEntranceRoom.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; SecretRatEntranceRoom.IsLostWoodsRoom = false; SecretRatEntranceRoom.UseCustomMusic = false; SecretRatEntranceRoom.UseCustomMusicState = false; SecretRatEntranceRoom.CustomMusicEvent = string.Empty; SecretRatEntranceRoom.UseCustomMusicSwitch = false; SecretRatEntranceRoom.CustomMusicSwitch = string.Empty; SecretRatEntranceRoom.overrideRoomVisualTypeForSecretRooms = false; SecretRatEntranceRoom.rewardChestSpawnPosition = IntVector2.One; SecretRatEntranceRoom.Width = 16; SecretRatEntranceRoom.Height = 18; SecretRatEntranceRoom.associatedMinimapIcon = ExpandSecretDoorPrefabs.EXSecretDoorMinimapIcon; SecretRatEntranceRoom.usesProceduralDecoration = true; SecretRatEntranceRoom.usesProceduralLighting = true; SecretRatEntranceRoom.allowFloorDecoration = false; RoomBuilder.AddExitToRoom(SecretRatEntranceRoom, new Vector2(0f, 8f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(SecretRatEntranceRoom, new Vector2(17f, 8f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(SecretRatEntranceRoom, new Vector2(8f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(SecretRatEntranceRoom, new Vector2(2f, 19f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(SecretRatEntranceRoom, new Vector2(14f, 19f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(SecretRatEntranceRoom, new Vector2(6f, 6f), null, ExpandPrefabs.Teleporter_Gungeon_01.GetComponent()); RoomBuilder.AddObjectToRoom(SecretRatEntranceRoom, new Vector2(6f, 16f), ExpandSecretDoorPrefabs.EXSecretDoor_Hollow); RoomBuilder.AddObjectToRoom(SecretRatEntranceRoom, new Vector2(7f, 5f), null, null, "5861e5a077244905a8c25c2b7b4d6ebb"); RoomBuilder.AddObjectToRoom(SecretRatEntranceRoom, new Vector2(5f, 11f), null, null, "ddf12a4881eb43cfba04f36dd6377abb"); RoomBuilder.AddObjectToRoom(SecretRatEntranceRoom, new Vector2(10f, 11f), null, null, "ddf12a4881eb43cfba04f36dd6377abb"); RoomBuilder.GenerateRoomLayout(SecretRatEntranceRoom, "Secret_Rat_MiniElevator_Room_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_SecretElevatorEntranceRoom).name = "Secret MiniElevator Room"; Expand_SecretElevatorEntranceRoom.QAID = "AA" + Random.Range(1000, 9999); Expand_SecretElevatorEntranceRoom.GUID = Guid.NewGuid().ToString(); Expand_SecretElevatorEntranceRoom.PreventMirroring = false; Expand_SecretElevatorEntranceRoom.category = (RoomCategory)6; Expand_SecretElevatorEntranceRoom.subCategoryBoss = (RoomBossSubCategory)0; Expand_SecretElevatorEntranceRoom.subCategoryNormal = (RoomNormalSubCategory)0; Expand_SecretElevatorEntranceRoom.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_SecretElevatorEntranceRoom.subCategorySecret = (RoomSecretSubCategory)0; Expand_SecretElevatorEntranceRoom.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_SecretElevatorEntranceRoom.pits = new List(); Expand_SecretElevatorEntranceRoom.placedObjects = new List(); Expand_SecretElevatorEntranceRoom.placedObjectPositions = new List(); Expand_SecretElevatorEntranceRoom.eventTriggerAreas = new List(); Expand_SecretElevatorEntranceRoom.roomEvents = new List(0); Expand_SecretElevatorEntranceRoom.overriddenTilesets = (ValidTilesets)0; Expand_SecretElevatorEntranceRoom.prerequisites = new List(); Expand_SecretElevatorEntranceRoom.InvalidInCoop = false; Expand_SecretElevatorEntranceRoom.cullProceduralDecorationOnWeakPlatforms = false; Expand_SecretElevatorEntranceRoom.preventAddedDecoLayering = false; Expand_SecretElevatorEntranceRoom.precludeAllTilemapDrawing = false; Expand_SecretElevatorEntranceRoom.drawPrecludedCeilingTiles = false; Expand_SecretElevatorEntranceRoom.preventBorders = false; Expand_SecretElevatorEntranceRoom.preventFacewallAO = false; Expand_SecretElevatorEntranceRoom.usesCustomAmbientLight = false; Expand_SecretElevatorEntranceRoom.customAmbientLight = Color.white; Expand_SecretElevatorEntranceRoom.ForceAllowDuplicates = false; Expand_SecretElevatorEntranceRoom.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_SecretElevatorEntranceRoom.IsLostWoodsRoom = false; Expand_SecretElevatorEntranceRoom.UseCustomMusic = false; Expand_SecretElevatorEntranceRoom.UseCustomMusicState = false; Expand_SecretElevatorEntranceRoom.CustomMusicEvent = string.Empty; Expand_SecretElevatorEntranceRoom.UseCustomMusicSwitch = false; Expand_SecretElevatorEntranceRoom.CustomMusicSwitch = string.Empty; Expand_SecretElevatorEntranceRoom.overrideRoomVisualTypeForSecretRooms = false; Expand_SecretElevatorEntranceRoom.rewardChestSpawnPosition = new IntVector2(4, 4); Expand_SecretElevatorEntranceRoom.Width = 10; Expand_SecretElevatorEntranceRoom.Height = 10; Expand_SecretElevatorEntranceRoom.usesProceduralDecoration = true; Expand_SecretElevatorEntranceRoom.usesProceduralLighting = true; Expand_SecretElevatorEntranceRoom.allowFloorDecoration = false; Expand_SecretElevatorEntranceRoom.associatedMinimapIcon = ExpandSecretDoorPrefabs.EXSecretDoorMinimapIcon; RoomBuilder.AddExitToRoom(Expand_SecretElevatorEntranceRoom, new Vector2(0f, 4f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_SecretElevatorEntranceRoom, new Vector2(11f, 4f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_SecretElevatorEntranceRoom, new Vector2(5f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_SecretElevatorEntranceRoom, new Vector2(1f, 9f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_SecretElevatorEntranceRoom, new Vector2(9f, 9f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_SecretElevatorEntranceRoom, new Vector2(3f, 8f), ExpandSecretDoorPrefabs.EXSecretDoor); RoomBuilder.GenerateRoomLayout(Expand_SecretElevatorEntranceRoom, "Secret_MiniElevator_Room_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_SecretElevatorDestinationRoom).name = "Destination MiniElevator Room"; Expand_SecretElevatorDestinationRoom.QAID = "AA" + Random.Range(1000, 9999); Expand_SecretElevatorDestinationRoom.GUID = Guid.NewGuid().ToString(); Expand_SecretElevatorDestinationRoom.PreventMirroring = false; Expand_SecretElevatorDestinationRoom.category = (RoomCategory)0; Expand_SecretElevatorDestinationRoom.subCategoryBoss = (RoomBossSubCategory)0; Expand_SecretElevatorDestinationRoom.subCategoryNormal = (RoomNormalSubCategory)0; Expand_SecretElevatorDestinationRoom.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_SecretElevatorDestinationRoom.subCategorySecret = (RoomSecretSubCategory)0; Expand_SecretElevatorDestinationRoom.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_SecretElevatorDestinationRoom.pits = new List(); Expand_SecretElevatorDestinationRoom.placedObjects = new List(); Expand_SecretElevatorDestinationRoom.placedObjectPositions = new List(); Expand_SecretElevatorDestinationRoom.eventTriggerAreas = new List(); Expand_SecretElevatorDestinationRoom.roomEvents = new List(0); Expand_SecretElevatorDestinationRoom.overriddenTilesets = (ValidTilesets)0; Expand_SecretElevatorDestinationRoom.prerequisites = new List(); Expand_SecretElevatorDestinationRoom.InvalidInCoop = false; Expand_SecretElevatorDestinationRoom.cullProceduralDecorationOnWeakPlatforms = false; Expand_SecretElevatorDestinationRoom.preventAddedDecoLayering = false; Expand_SecretElevatorDestinationRoom.precludeAllTilemapDrawing = false; Expand_SecretElevatorDestinationRoom.drawPrecludedCeilingTiles = false; Expand_SecretElevatorDestinationRoom.preventBorders = false; Expand_SecretElevatorDestinationRoom.preventFacewallAO = false; Expand_SecretElevatorDestinationRoom.usesCustomAmbientLight = false; Expand_SecretElevatorDestinationRoom.customAmbientLight = Color.white; Expand_SecretElevatorDestinationRoom.ForceAllowDuplicates = false; Expand_SecretElevatorDestinationRoom.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_SecretElevatorDestinationRoom.IsLostWoodsRoom = false; Expand_SecretElevatorDestinationRoom.UseCustomMusic = false; Expand_SecretElevatorDestinationRoom.UseCustomMusicState = false; Expand_SecretElevatorDestinationRoom.CustomMusicEvent = string.Empty; Expand_SecretElevatorDestinationRoom.UseCustomMusicSwitch = false; Expand_SecretElevatorDestinationRoom.CustomMusicSwitch = string.Empty; Expand_SecretElevatorDestinationRoom.overrideRoomVisualTypeForSecretRooms = false; Expand_SecretElevatorDestinationRoom.rewardChestSpawnPosition = new IntVector2(4, 4); Expand_SecretElevatorDestinationRoom.Width = 10; Expand_SecretElevatorDestinationRoom.Height = 10; Expand_SecretElevatorDestinationRoom.usesProceduralDecoration = true; Expand_SecretElevatorDestinationRoom.usesProceduralLighting = true; Expand_SecretElevatorDestinationRoom.allowFloorDecoration = false; Expand_SecretElevatorDestinationRoom.associatedMinimapIcon = ExpandPrefabs.elevator_maintenance_room.associatedMinimapIcon; RoomBuilder.AddExitToRoom(Expand_SecretElevatorDestinationRoom, new Vector2(0f, 4f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_SecretElevatorDestinationRoom, new Vector2(11f, 4f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_SecretElevatorDestinationRoom, new Vector2(5f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_SecretElevatorDestinationRoom, new Vector2(1f, 9f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_SecretElevatorDestinationRoom, new Vector2(9f, 9f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_SecretElevatorDestinationRoom, new Vector2(3f, 8f), ExpandSecretDoorPrefabs.EXSecretDoor_Unlocked); RoomBuilder.GenerateRoomLayout(Expand_SecretElevatorDestinationRoom, "Destination_MiniElevator_Room_Layout", (PitBorderType)0, (CoreDamageTypes)0); ((Object)Expand_TinySecret).name = "Expand Apache Tiny Secret"; Expand_TinySecret.QAID = "FF" + Random.Range(1000, 9999); Expand_TinySecret.GUID = Guid.NewGuid().ToString(); Expand_TinySecret.PreventMirroring = false; Expand_TinySecret.category = (RoomCategory)6; Expand_TinySecret.subCategoryBoss = (RoomBossSubCategory)0; Expand_TinySecret.subCategoryNormal = (RoomNormalSubCategory)0; Expand_TinySecret.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_TinySecret.subCategorySecret = (RoomSecretSubCategory)0; Expand_TinySecret.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_TinySecret.pits = new List(); Expand_TinySecret.placedObjects = new List(); Expand_TinySecret.placedObjectPositions = new List(); Expand_TinySecret.eventTriggerAreas = new List(); Expand_TinySecret.roomEvents = new List(0); Expand_TinySecret.overriddenTilesets = (ValidTilesets)0; Expand_TinySecret.prerequisites = new List(); Expand_TinySecret.InvalidInCoop = false; Expand_TinySecret.cullProceduralDecorationOnWeakPlatforms = false; Expand_TinySecret.preventAddedDecoLayering = false; Expand_TinySecret.precludeAllTilemapDrawing = false; Expand_TinySecret.drawPrecludedCeilingTiles = false; Expand_TinySecret.preventBorders = false; Expand_TinySecret.preventFacewallAO = false; Expand_TinySecret.usesCustomAmbientLight = false; Expand_TinySecret.customAmbientLight = Color.white; Expand_TinySecret.ForceAllowDuplicates = false; Expand_TinySecret.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_TinySecret.IsLostWoodsRoom = false; Expand_TinySecret.UseCustomMusic = false; Expand_TinySecret.UseCustomMusicState = false; Expand_TinySecret.CustomMusicEvent = string.Empty; Expand_TinySecret.UseCustomMusicSwitch = false; Expand_TinySecret.CustomMusicSwitch = string.Empty; Expand_TinySecret.overrideRoomVisualTypeForSecretRooms = false; Expand_TinySecret.rewardChestSpawnPosition = new IntVector2(10, 12); Expand_TinySecret.overrideRoomVisualType = -1; Expand_TinySecret.Width = 2; Expand_TinySecret.Height = 2; Expand_TinySecret.allowFloorDecoration = false; Expand_TinySecret.additionalObjectLayers = new List(0); RoomBuilder.AddExitToRoom(Expand_TinySecret, new Vector2(0f, 1f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_TinySecret, new Vector2(3f, 1f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_TinySecret, new Vector2(1f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_TinySecret, new Vector2(1f, 3f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_TinySecret, new Vector2(0f, 0f), ExpandPrefabs.TinySecretRoomJunkReward, null, null, 1f, 1, 10); RoomBuilder.AddObjectToRoom(Expand_TinySecret, new Vector2(1f, 0f), ExpandPrefabs.TinySecretRoomRewards, null, null, 1f, 0, 10); RoomBuilder.GenerateBasicRoomLayout(Expand_TinySecret, (CellType)2, (PitBorderType)0); ((Object)Expand_TinySecretEmpty).name = "Expand Apache Tiny Secret Empty"; Expand_TinySecretEmpty.QAID = "FF" + Random.Range(1000, 9999); Expand_TinySecretEmpty.GUID = Guid.NewGuid().ToString(); Expand_TinySecretEmpty.PreventMirroring = false; Expand_TinySecretEmpty.category = (RoomCategory)6; Expand_TinySecretEmpty.subCategoryBoss = (RoomBossSubCategory)0; Expand_TinySecretEmpty.subCategoryNormal = (RoomNormalSubCategory)0; Expand_TinySecretEmpty.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_TinySecretEmpty.subCategorySecret = (RoomSecretSubCategory)0; Expand_TinySecretEmpty.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_TinySecretEmpty.pits = new List(); Expand_TinySecretEmpty.placedObjects = new List(); Expand_TinySecretEmpty.placedObjectPositions = new List(); Expand_TinySecretEmpty.eventTriggerAreas = new List(); Expand_TinySecretEmpty.roomEvents = new List(0); Expand_TinySecretEmpty.overriddenTilesets = (ValidTilesets)0; Expand_TinySecretEmpty.prerequisites = new List(); Expand_TinySecretEmpty.InvalidInCoop = false; Expand_TinySecretEmpty.cullProceduralDecorationOnWeakPlatforms = false; Expand_TinySecretEmpty.preventAddedDecoLayering = false; Expand_TinySecretEmpty.precludeAllTilemapDrawing = false; Expand_TinySecretEmpty.drawPrecludedCeilingTiles = false; Expand_TinySecretEmpty.preventBorders = false; Expand_TinySecretEmpty.preventFacewallAO = false; Expand_TinySecretEmpty.usesCustomAmbientLight = false; Expand_TinySecretEmpty.customAmbientLight = Color.white; Expand_TinySecretEmpty.ForceAllowDuplicates = false; Expand_TinySecretEmpty.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_TinySecretEmpty.IsLostWoodsRoom = false; Expand_TinySecretEmpty.UseCustomMusic = false; Expand_TinySecretEmpty.UseCustomMusicState = false; Expand_TinySecretEmpty.CustomMusicEvent = string.Empty; Expand_TinySecretEmpty.UseCustomMusicSwitch = false; Expand_TinySecretEmpty.CustomMusicSwitch = string.Empty; Expand_TinySecretEmpty.overrideRoomVisualTypeForSecretRooms = false; Expand_TinySecretEmpty.rewardChestSpawnPosition = new IntVector2(10, 12); Expand_TinySecretEmpty.overrideRoomVisualType = -1; Expand_TinySecretEmpty.Width = 2; Expand_TinySecretEmpty.Height = 2; Expand_TinySecretEmpty.allowFloorDecoration = false; Expand_TinySecretEmpty.additionalObjectLayers = new List(0); RoomBuilder.AddExitToRoom(Expand_TinySecretEmpty, new Vector2(0f, 1f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_TinySecretEmpty, new Vector2(3f, 1f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_TinySecretEmpty, new Vector2(1f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_TinySecretEmpty, new Vector2(1f, 3f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.GenerateBasicRoomLayout(Expand_TinySecretEmpty, (CellType)2, (PitBorderType)0); ((Object)Expand_GlitchedSecret).name = "Expand Apache Corrupted Secret"; Expand_GlitchedSecret.QAID = "FF" + Random.Range(1000, 9999); Expand_GlitchedSecret.GUID = Guid.NewGuid().ToString(); Expand_GlitchedSecret.PreventMirroring = false; Expand_GlitchedSecret.category = (RoomCategory)6; Expand_GlitchedSecret.subCategoryBoss = (RoomBossSubCategory)0; Expand_GlitchedSecret.subCategoryNormal = (RoomNormalSubCategory)0; Expand_GlitchedSecret.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_GlitchedSecret.subCategorySecret = (RoomSecretSubCategory)0; Expand_GlitchedSecret.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_GlitchedSecret.pits = new List(); Expand_GlitchedSecret.placedObjects = new List(); Expand_GlitchedSecret.placedObjectPositions = new List(); Expand_GlitchedSecret.eventTriggerAreas = new List(); Expand_GlitchedSecret.roomEvents = new List(0); Expand_GlitchedSecret.overriddenTilesets = (ValidTilesets)0; Expand_GlitchedSecret.prerequisites = new List(); Expand_GlitchedSecret.InvalidInCoop = false; Expand_GlitchedSecret.cullProceduralDecorationOnWeakPlatforms = false; Expand_GlitchedSecret.preventAddedDecoLayering = false; Expand_GlitchedSecret.precludeAllTilemapDrawing = false; Expand_GlitchedSecret.drawPrecludedCeilingTiles = false; Expand_GlitchedSecret.preventBorders = false; Expand_GlitchedSecret.preventFacewallAO = false; Expand_GlitchedSecret.usesCustomAmbientLight = false; Expand_GlitchedSecret.customAmbientLight = Color.white; Expand_GlitchedSecret.ForceAllowDuplicates = false; Expand_GlitchedSecret.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_GlitchedSecret.IsLostWoodsRoom = false; Expand_GlitchedSecret.UseCustomMusic = false; Expand_GlitchedSecret.UseCustomMusicState = false; Expand_GlitchedSecret.CustomMusicEvent = string.Empty; Expand_GlitchedSecret.UseCustomMusicSwitch = false; Expand_GlitchedSecret.CustomMusicSwitch = string.Empty; Expand_GlitchedSecret.overrideRoomVisualTypeForSecretRooms = false; Expand_GlitchedSecret.rewardChestSpawnPosition = new IntVector2(8, 8); Expand_GlitchedSecret.overrideRoomVisualType = -1; Expand_GlitchedSecret.Width = 16; Expand_GlitchedSecret.Height = 16; Expand_GlitchedSecret.allowFloorDecoration = false; PrototypeDungeonRoom expand_GlitchedSecret = Expand_GlitchedSecret; list9 = new List(); List list137 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj25 = val10; list42 = new List(); List list138 = list42; val13 = new PrototypePlacedObjectData(); val13.placeableContents = sharedAssets2.LoadAsset("secret_room_chest_placeable"); val13.contentsBasePosition = new Vector2(11f, 3f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list138.Add(val13); List list139 = list42; val13 = new PrototypePlacedObjectData(); val13.placeableContents = sharedAssets2.LoadAsset("secret_room_chest_placeable"); val13.contentsBasePosition = new Vector2(10f, 8f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list139.Add(val13); List list140 = list42; val13 = new PrototypePlacedObjectData(); val13.placeableContents = sharedAssets2.LoadAsset("secret_room_chest_placeable"); val13.contentsBasePosition = new Vector2(2f, 12f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list140.Add(val13); List list141 = list42; val13 = new PrototypePlacedObjectData(); val13.placeableContents = ExpandPrefabs.TinySecretRoomRewards; val13.contentsBasePosition = new Vector2(4f, 2f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list141.Add(val13); List list142 = list42; val13 = new PrototypePlacedObjectData(); val13.placeableContents = ExpandPrefabs.TinySecretRoomJunkReward; val13.contentsBasePosition = new Vector2(5f, 4f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list142.Add(val13); List list143 = list42; val13 = new PrototypePlacedObjectData(); val13.placeableContents = ExpandPrefabs.TinySecretRoomRewards; val13.contentsBasePosition = new Vector2(9f, 6f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list143.Add(val13); List list144 = list42; val13 = new PrototypePlacedObjectData(); val13.placeableContents = ExpandPrefabs.TinySecretRoomJunkReward; val13.contentsBasePosition = new Vector2(4f, 9f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list144.Add(val13); List list145 = list42; val13 = new PrototypePlacedObjectData(); val13.placeableContents = ExpandPrefabs.TinySecretRoomRewards; val13.contentsBasePosition = new Vector2(10f, 13f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list145.Add(val13); List list146 = list42; val13 = new PrototypePlacedObjectData(); val13.placeableContents = ExpandPrefabs.CorruptedSecretRoomNPCs2; val13.contentsBasePosition = new Vector2(2f, 6f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list146.Add(val13); List list147 = list42; val13 = new PrototypePlacedObjectData(); val13.placeableContents = ExpandPrefabs.CorruptedSecretRoomNPCs; val13.contentsBasePosition = new Vector2(9f, 10f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list147.Add(val13); List list148 = list42; val13 = new PrototypePlacedObjectData(); val13.placeableContents = ExpandPrefabs.CorruptedSecretRoomNPCs2; val13.contentsBasePosition = new Vector2(6f, 13f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list148.Add(val13); List list149 = list42; val13 = new PrototypePlacedObjectData(); val13.placeableContents = ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.CorruptionBombRewardPedestal, spawnsEnemy: false, useExternalPrefab: true); val13.contentsBasePosition = new Vector2(13f, 13f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list149.Add(val13); obj25.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(11f, 3f), new Vector2(10f, 8f), new Vector2(2f, 12f), new Vector2(4f, 2f), new Vector2(5f, 4f), new Vector2(9f, 6f), new Vector2(4f, 9f), new Vector2(10f, 13f), new Vector2(2f, 6f), new Vector2(9f, 10f), new Vector2(6f, 13f), new Vector2(13f, 13f) }; val10.layerIsReinforcementLayer = false; val10.shuffle = true; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 1f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list137.Add(val10); expand_GlitchedSecret.additionalObjectLayers = list9; RoomBuilder.AddExitToRoom(Expand_GlitchedSecret, new Vector2(0f, 8f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_GlitchedSecret, new Vector2(17f, 8f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_GlitchedSecret, new Vector2(8f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_GlitchedSecret, new Vector2(8f, 17f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_GlitchedSecret, new Vector2(8f, 8f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.RoomCorruptionAmbience, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.GenerateBasicRoomLayout(Expand_GlitchedSecret, (CellType)2, (PitBorderType)0); ((Object)Expand_RickRollSecret).name = "Expand Apache RickRoll Secret"; Expand_RickRollSecret.QAID = "FF" + Random.Range(1000, 9999); Expand_RickRollSecret.GUID = Guid.NewGuid().ToString(); Expand_RickRollSecret.PreventMirroring = false; Expand_RickRollSecret.category = (RoomCategory)6; Expand_RickRollSecret.subCategoryBoss = (RoomBossSubCategory)0; Expand_RickRollSecret.subCategoryNormal = (RoomNormalSubCategory)0; Expand_RickRollSecret.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_RickRollSecret.subCategorySecret = (RoomSecretSubCategory)0; Expand_RickRollSecret.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_RickRollSecret.pits = new List(); Expand_RickRollSecret.placedObjects = new List(); Expand_RickRollSecret.placedObjectPositions = new List(); Expand_RickRollSecret.eventTriggerAreas = new List(); Expand_RickRollSecret.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_RickRollSecret.overriddenTilesets = (ValidTilesets)0; Expand_RickRollSecret.prerequisites = new List(); Expand_RickRollSecret.InvalidInCoop = false; Expand_RickRollSecret.cullProceduralDecorationOnWeakPlatforms = false; Expand_RickRollSecret.preventAddedDecoLayering = false; Expand_RickRollSecret.precludeAllTilemapDrawing = false; Expand_RickRollSecret.drawPrecludedCeilingTiles = false; Expand_RickRollSecret.preventBorders = false; Expand_RickRollSecret.preventFacewallAO = false; Expand_RickRollSecret.usesCustomAmbientLight = false; Expand_RickRollSecret.customAmbientLight = Color.white; Expand_RickRollSecret.ForceAllowDuplicates = false; Expand_RickRollSecret.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_RickRollSecret.IsLostWoodsRoom = false; Expand_RickRollSecret.UseCustomMusic = false; Expand_RickRollSecret.UseCustomMusicState = false; Expand_RickRollSecret.CustomMusicEvent = string.Empty; Expand_RickRollSecret.UseCustomMusicSwitch = false; Expand_RickRollSecret.CustomMusicSwitch = string.Empty; Expand_RickRollSecret.OverrideMusicState = (DungeonMusicState)30; Expand_RickRollSecret.overrideRoomVisualTypeForSecretRooms = false; Expand_RickRollSecret.rewardChestSpawnPosition = new IntVector2(-1, -1); Expand_RickRollSecret.overrideRoomVisualType = -1; Expand_RickRollSecret.Width = 16; Expand_RickRollSecret.Height = 16; Expand_RickRollSecret.allowFloorDecoration = true; Expand_RickRollSecret.allowWallDecoration = true; Expand_RickRollSecret.usesProceduralLighting = false; Expand_RickRollSecret.usesProceduralDecoration = true; Expand_RickRollSecret.additionalObjectLayers = new List(0); RoomBuilder.AddExitToRoom(Expand_RickRollSecret, new Vector2(0f, 8f), (Direction)6, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_RickRollSecret, new Vector2(8f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_RickRollSecret, new Vector2(8f, 17f), (Direction)0, (ExitType)0, (ExitGroup)0); RoomBuilder.AddExitToRoom(Expand_RickRollSecret, new Vector2(17f, 8f), (Direction)2, (ExitType)0, (ExitGroup)0); RoomBuilder.AddObjectToRoom(Expand_RickRollSecret, new Vector2(6f, 8f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.RickRollChestObject, spawnsEnemy: false, useExternalPrefab: true), null, null, 1f, 8); RoomBuilder.GenerateBasicRoomLayout(Expand_RickRollSecret, (CellType)2, (PitBorderType)0); Expand_BootlegRoom = RoomFactory.BuildFromAssetBundle(bundles, "Expand_BootlegRoom", setRoomCategory: true); ((Object)Expand_BootlegRoom).name = "Expand Apache Bootleg"; Expand_BootlegRoom.QAID = "FF" + Random.Range(1000, 9999); Expand_BootlegRoom.GUID = Guid.NewGuid().ToString(); Expand_BootlegRoom.PreventMirroring = false; Expand_BootlegRoom.category = (RoomCategory)2; Expand_BootlegRoom.subCategoryBoss = (RoomBossSubCategory)0; Expand_BootlegRoom.subCategoryNormal = (RoomNormalSubCategory)0; Expand_BootlegRoom.subCategorySpecial = (RoomSpecialSubCategory)1; Expand_BootlegRoom.subCategorySecret = (RoomSecretSubCategory)0; Expand_BootlegRoom.exitData = new PrototypeRoomExitData { exits = new List() }; Expand_BootlegRoom.pits = new List(); Expand_BootlegRoom.placedObjects = new List(); Expand_BootlegRoom.placedObjectPositions = new List(); Expand_BootlegRoom.eventTriggerAreas = new List(); Expand_BootlegRoom.roomEvents = new List { new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0), new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1) }; Expand_BootlegRoom.overriddenTilesets = (ValidTilesets)0; Expand_BootlegRoom.prerequisites = new List(); Expand_BootlegRoom.InvalidInCoop = false; Expand_BootlegRoom.cullProceduralDecorationOnWeakPlatforms = false; Expand_BootlegRoom.preventAddedDecoLayering = true; Expand_BootlegRoom.precludeAllTilemapDrawing = true; Expand_BootlegRoom.drawPrecludedCeilingTiles = false; Expand_BootlegRoom.preventBorders = false; Expand_BootlegRoom.preventFacewallAO = false; Expand_BootlegRoom.usesCustomAmbientLight = true; Expand_BootlegRoom.customAmbientLight = new Color(0.8f, 0.8f, 0.8f, 1f); Expand_BootlegRoom.ForceAllowDuplicates = false; Expand_BootlegRoom.injectionFlags = new RuntimeInjectionFlags { CastleFireplace = false, ShopAnnexed = false }; Expand_BootlegRoom.IsLostWoodsRoom = false; Expand_BootlegRoom.UseCustomMusic = true; Expand_BootlegRoom.UseCustomMusicState = false; Expand_BootlegRoom.CustomMusicEvent = "Play_MUS_Dungeon_State_Winner"; Expand_BootlegRoom.UseCustomMusicSwitch = true; Expand_BootlegRoom.CustomMusicSwitch = "Play_EX_MUS_BootlegMusic_01"; Expand_BootlegRoom.overrideRoomVisualTypeForSecretRooms = false; Expand_BootlegRoom.rewardChestSpawnPosition = new IntVector2(-1, -1); PrototypeDungeonRoom expand_BootlegRoom = Expand_BootlegRoom; list9 = new List(); List list150 = list9; val10 = new PrototypeRoomObjectLayer(); PrototypeRoomObjectLayer obj26 = val10; list42 = new List(); List list151 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = ExpandEnemyDatabase.BootlegShotgunManRedGUID; val13.contentsBasePosition = new Vector2(12f, 11f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list151.Add(val13); List list152 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = ExpandEnemyDatabase.BootlegBullatGUID; val13.contentsBasePosition = new Vector2(4f, 6f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list152.Add(val13); List list153 = list42; val13 = new PrototypePlacedObjectData(); val13.enemyBehaviourGuid = ExpandEnemyDatabase.BootlegShotgunManBlueGUID; val13.contentsBasePosition = new Vector2(10f, 6f); val13.layer = 0; val13.xMPxOffset = 0; val13.yMPxOffset = 0; val13.fieldData = new List(0); val13.instancePrerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0]; val13.linkedTriggerAreaIDs = new List(0); val13.assignedPathStartNode = 0; list153.Add(val13); obj26.placedObjects = list42; val10.placedObjectBasePositions = new List { new Vector2(12f, 11f), new Vector2(4f, 6f), new Vector2(10f, 6f) }; val10.layerIsReinforcementLayer = true; val10.shuffle = false; val10.randomize = 0; val10.suppressPlayerChecks = true; val10.delayTime = 4f; val10.reinforcementTriggerCondition = (RoomEventTriggerCondition)2; val10.probability = 1f; val10.numberTimesEncounteredRequired = 0; list150.Add(val10); expand_BootlegRoom.additionalObjectLayers = list9; Expand_BootlegRoom.Width = 20; Expand_BootlegRoom.Height = 14; Expand_BootlegRoom.usesProceduralLighting = false; Expand_BootlegRoom.allowFloorDecoration = false; Expand_BootlegRoom.allowWallDecoration = false; Expand_BootlegRoom.usesProceduralDecoration = false; RoomBuilder.AddExitToRoom(Expand_BootlegRoom, new Vector2(1f, 7f), (Direction)6, (ExitType)0, (ExitGroup)0, ContainsDoor: false); RoomBuilder.AddExitToRoom(Expand_BootlegRoom, new Vector2(20f, 7f), (Direction)2, (ExitType)0, (ExitGroup)0, ContainsDoor: false); RoomBuilder.AddExitToRoom(Expand_BootlegRoom, new Vector2(10f, 0f), (Direction)4, (ExitType)0, (ExitGroup)0, ContainsDoor: false); RoomBuilder.AddExitToRoom(Expand_BootlegRoom, new Vector2(10f, 14f), (Direction)0, (ExitType)0, (ExitGroup)0, ContainsDoor: false); RoomBuilder.AddObjectToRoom(Expand_BootlegRoom, new Vector2(0f, 0f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXBootlegRoomObject, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_BootlegRoom, new Vector2(0f, 0f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXBootlegRoomDoorTriggers, spawnsEnemy: false, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_BootlegRoom, new Vector2(8f, 8f), null, null, ExpandEnemyDatabase.BootlegBulletManGUID); RoomBuilder.AddObjectToRoom(Expand_BootlegRoom, new Vector2(7f, 11f), null, null, ExpandEnemyDatabase.BootlegBulletManGUID); RoomBuilder.AddObjectToRoom(Expand_BootlegRoom, new Vector2(5f, 5f), null, null, ExpandEnemyDatabase.BootlegBulletManBandanaGUID); RoomBuilder.AddObjectToRoom(Expand_BootlegRoom, new Vector2(5f, 8f), null, null, ExpandEnemyDatabase.BootlegBullatGUID); List list154 = new List(); foreach (string expand_Jungle_Room in Expand_Jungle_RoomList) { PrototypeDungeonRoom val14 = RoomFactory.BuildFromAssetBundle(bundles, expand_Jungle_Room, setRoomCategory: true); if (expand_Jungle_Room == "Expand_Forest_Mixed22" && (Object)(object)val14 != (Object)null) { RoomBuilder.AddObjectToRoom(val14, new Vector2(15f, 13f), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.Jungle_BlobLostSign, spawnsEnemy: false, useExternalPrefab: true)); } list154.Add(val14); } Expand_Jungle_Rooms = list154.ToArray(); expand_Backrooms_Rooms = Expand_Jungle_Rooms; foreach (PrototypeDungeonRoom room in expand_Backrooms_Rooms) { ExpandPrefabs.JungleRoomTable.includedRooms.elements.Add(GenerateWeightedRoom(room)); } List list155 = new List(); foreach (string expand_Belly_Room in Expand_Belly_RoomList) { PrototypeDungeonRoom item = RoomFactory.BuildFromAssetBundle(bundles, expand_Belly_Room, setRoomCategory: true); list155.Add(item); } Expand_Belly_Rooms = list155.ToArray(); expand_Backrooms_Rooms = Expand_Belly_Rooms; foreach (PrototypeDungeonRoom room2 in expand_Backrooms_Rooms) { ExpandPrefabs.BellyRoomTable.includedRooms.elements.Add(GenerateWeightedRoom(room2)); } ExpandPrefabs.BellyRoomTable.includedRooms.elements.Add(GenerateWeightedRoom(Expand_Belly_Connector_01)); ExpandPrefabs.BellyRoomTable.includedRooms.elements.Add(GenerateWeightedRoom(Expand_Belly_Connector_02)); ExpandPrefabs.BellyRoomTable.includedRooms.elements.Add(GenerateWeightedRoom(Expand_Belly_Connector_03)); ExpandPrefabs.BellyRoomTable.includedRooms.elements.Add(GenerateWeightedRoom(Expand_Belly_Connector_04)); ExpandPrefabs.BellyRoomTable.includedRooms.elements.Add(GenerateWeightedRoom(Expand_Belly_Connector_05)); ExpandPrefabs.BellyRoomTable.includedRooms.elements.Add(GenerateWeightedRoom(Expand_Belly_Connector_06)); WeightedRoom[] array = (WeightedRoom[])(object)new WeightedRoom[7] { GenerateWeightedRoom(ThwompCrossingVertical), GenerateWeightedRoom(ThwompCrossingHorizontal), GenerateWeightedRoom(Expand_Apache_TheCrushZone), GenerateWeightedRoom(Expand_Apache_SpikeAndPits), GenerateWeightedRoom(Expand_Apache_PitTraps), GenerateWeightedRoom(Expand_Apache_RainbowRoom, 0.3f), GenerateWeightedRoom(Expand_FakePastChest, 0.42f) }; WeightedRoom[] array2 = array; foreach (WeightedRoom val15 in array2) { if ((Object)(object)val15.room != (Object)(object)Expand_Apache_PitTraps && (Object)(object)val15.room != (Object)(object)Expand_Apache_RainbowRoom) { ExpandPrefabs.CastleRoomTable.includedRooms.elements.Add(val15); } ExpandPrefabs.SewersRoomTable.includedRooms.elements.Add(val15); if ((Object)(object)val15.room != (Object)(object)Expand_Apache_RainbowRoom) { ExpandPrefabs.Gungeon_RoomTable.includedRooms.elements.Add(val15); } ExpandPrefabs.AbbeyRoomTable.includedRooms.elements.Add(val15); ExpandPrefabs.CatacombsRoomTable.includedRooms.elements.Add(val15); ExpandPrefabs.ForgeRoomTable.includedRooms.elements.Add(val15); ExpandPrefabs.CustomRoomTable.includedRooms.elements.Add(val15); ExpandPrefabs.CustomRoomTable2.includedRooms.elements.Add(val15); ExpandPrefabs.CustomRoomTableSecretGlitchFloor.includedRooms.elements.Add(val15); } ExpandPrefabs.SewersRoomTable.includedRooms.elements.Add(GenerateWeightedRoom(Expand_Apache_FieldOfSaws)); ExpandPrefabs.AbbeyRoomTable.includedRooms.elements.Add(GenerateWeightedRoom(Expand_Apache_FieldOfSaws)); WeightedRoom[] array3 = (WeightedRoom[])(object)new WeightedRoom[3] { GenerateWeightedRoom(Expand_TinySecret), GenerateWeightedRoom(Expand_GlitchedSecret, 0.45f), GenerateWeightedRoom(Expand_RickRollSecret, 0.65f) }; WeightedRoom[] array4 = (WeightedRoom[])(object)new WeightedRoom[10] { GenerateWeightedRoom(Expand_Secret_Brother1, 0.55f), GenerateWeightedRoom(Expand_Secret_Brother2, 0.55f), GenerateWeightedRoom(Expand_Secret_Brother3, 0.55f), GenerateWeightedRoom(Expand_Secret_Brother4, 0.55f), GenerateWeightedRoom(Expand_Secret_Brother5, 0.55f), GenerateWeightedRoom(Expand_Secret_Brother6, 0.55f), GenerateWeightedRoom(Expand_Secret_Brother7, 0.55f), GenerateWeightedRoom(Expand_Secret_Brother8, 0.55f), GenerateWeightedRoom(Expand_Secret_Brother9, 0.55f), GenerateWeightedRoom(Expand_Secret_Brother10, 0.55f) }; WeightedRoom[] array5 = (WeightedRoom[])(object)new WeightedRoom[1] { GenerateWeightedRoom(Expand_BootlegRoom) }; array2 = array5; foreach (WeightedRoom item2 in array2) { ExpandPrefabs.CastleRoomTable.includedRooms.elements.Add(item2); if (!ExpandSettings.IsHardModeBuild) { ExpandPrefabs.SewersRoomTable.includedRooms.elements.Add(item2); } ExpandPrefabs.Gungeon_RoomTable.includedRooms.elements.Add(item2); ExpandPrefabs.AbbeyRoomTable.includedRooms.elements.Add(item2); ExpandPrefabs.MinesRoomTable.includedRooms.elements.Add(item2); ExpandPrefabs.CatacombsRoomTable.includedRooms.elements.Add(item2); ExpandPrefabs.ForgeRoomTable.includedRooms.elements.Add(item2); ExpandPrefabs.CustomRoomTable.includedRooms.elements.Add(item2); ExpandPrefabs.CustomRoomTable2.includedRooms.elements.Add(item2); ExpandPrefabs.CustomRoomTableSecretGlitchFloor.includedRooms.elements.Add(item2); } WeightedRoom[] array6 = (WeightedRoom[])(object)new WeightedRoom[20] { GenerateWeightedRoom(Expand_Explode), GenerateWeightedRoom(Expand_C_Hub), GenerateWeightedRoom(Expand_C_Gap), GenerateWeightedRoom(Expand_ChainGap), GenerateWeightedRoom(Expand_Pit_Line), GenerateWeightedRoom(Expand_Singer_Gap), GenerateWeightedRoom(Expand_Flying_Gap), GenerateWeightedRoom(Expand_Battle), GenerateWeightedRoom(Expand_Blocks), GenerateWeightedRoom(Expand_Blocks_Pits), GenerateWeightedRoom(Expand_Wall_Pit), GenerateWeightedRoom(Expand_Passage), GenerateWeightedRoom(Expand_Pit_Passage), GenerateWeightedRoom(Expand_R_Blocks), GenerateWeightedRoom(Expand_Small_Passage), GenerateWeightedRoom(Expand_Box), GenerateWeightedRoom(Expand_Steps), GenerateWeightedRoom(Expand_Apache_Hub), GenerateWeightedRoom(Expand_Box_Hub), GenerateWeightedRoom(Expand_Enclose_Hub) }; WeightedRoom[] array7 = (WeightedRoom[])(object)new WeightedRoom[22] { GenerateWeightedRoom(Expand_4wave), GenerateWeightedRoom(Expand_Spiralbomb), GenerateWeightedRoom(Expand_Bat), GenerateWeightedRoom(Expand_Batsmall), GenerateWeightedRoom(Expand_BIRDS), GenerateWeightedRoom(Expand_Blobs), GenerateWeightedRoom(Expand_BoogalooFailure2), GenerateWeightedRoom(Expand_Chess), GenerateWeightedRoom(Expand_Cornerpits), GenerateWeightedRoom(Expand_Enclosed), GenerateWeightedRoom(Expand_Funky), GenerateWeightedRoom(Expand_Gapsniper), GenerateWeightedRoom(Expand_Hallway), GenerateWeightedRoom(Expand_HUB_1wave), GenerateWeightedRoom(Expand_Islands), GenerateWeightedRoom(Expand_Long), GenerateWeightedRoom(Expand_Mushroom), GenerateWeightedRoom(Expand_Mutant), GenerateWeightedRoom(Expand_Oddshroom), GenerateWeightedRoom(Expand_Pitzag), GenerateWeightedRoom(Expand_Shotgun), GenerateWeightedRoom(Expand_Smallcentral) }; WeightedRoom[] array8 = (WeightedRoom[])(object)new WeightedRoom[8] { GenerateWeightedRoom(Expand_Crosshairs), GenerateWeightedRoom(Expand_Basic), GenerateWeightedRoom(Expand_JumpInThePit), GenerateWeightedRoom(Expand_LongSpikeTrap), GenerateWeightedRoom(Expand_SpikeTrap), GenerateWeightedRoom(Expand_ThinRoom), GenerateWeightedRoom(Expand_SniperRoom), GenerateWeightedRoom(Expand_TableRoom) }; WeightedRoom[] array9 = (WeightedRoom[])(object)new WeightedRoom[5] { GenerateWeightedRoom(Expand_OilRoom), GenerateWeightedRoom(Expand_Pit), GenerateWeightedRoom(Expand_Singer), GenerateWeightedRoom(Expand_TableRoom2), GenerateWeightedRoom(Expand_Walkway) }; WeightedRoom[] array10 = (WeightedRoom[])(object)new WeightedRoom[20] { GenerateWeightedRoom(Expand_SpiderMaze), GenerateWeightedRoom(Expand_BlobRoom), GenerateWeightedRoom(Expand_HellInACell), GenerateWeightedRoom(Expand_IceIsNice), GenerateWeightedRoom(Expand_IceScotch), GenerateWeightedRoom(Expand_MrPresident), GenerateWeightedRoom(Expand_SawRoom), GenerateWeightedRoom(Expand_Agony), GenerateWeightedRoom(Expand_ice1), GenerateWeightedRoom(Expand_Ice2), GenerateWeightedRoom(Expand_Ice3), GenerateWeightedRoom(Expand_Ice4), GenerateWeightedRoom(Expand_LargeMany), GenerateWeightedRoom(Expand_Roundabout), GenerateWeightedRoom(Expand_Shells), GenerateWeightedRoom(Expand_Spooky), GenerateWeightedRoom(Expand_Undead1), GenerateWeightedRoom(Expand_Undead2), GenerateWeightedRoom(Expand_Undead3), GenerateWeightedRoom(Expand_Undead4) }; WeightedRoom[] array11 = (WeightedRoom[])(object)new WeightedRoom[7] { GenerateWeightedRoom(Expand_Arena), GenerateWeightedRoom(Expand_CaptainCrunch), GenerateWeightedRoom(Expand_CorridorOfDoom), GenerateWeightedRoom(Expand_FireRoom), GenerateWeightedRoom(Expand_Pits), GenerateWeightedRoom(Expand_SkullRoom), GenerateWeightedRoom(Expand_TableRoomAgain) }; expand_Backrooms_Rooms = Expand_West_CanyonRooms; foreach (PrototypeDungeonRoom room3 in expand_Backrooms_Rooms) { ExpandPrefabs.WestCanyonRoomTable.includedRooms.elements.Add(GenerateWeightedRoom(room3)); } expand_Backrooms_Rooms = Expand_West_TinyCanyonRooms; foreach (PrototypeDungeonRoom room4 in expand_Backrooms_Rooms) { ExpandPrefabs.WestTinyCanyonRoomTable.includedRooms.elements.Add(GenerateWeightedRoom(room4)); } expand_Backrooms_Rooms = Expand_West_Interior1Rooms; foreach (PrototypeDungeonRoom room5 in expand_Backrooms_Rooms) { ExpandPrefabs.WestInterior1RoomTable.includedRooms.elements.Add(GenerateWeightedRoom(room5)); } expand_Backrooms_Rooms = Expand_Backrooms_Rooms; foreach (PrototypeDungeonRoom val16 in expand_Backrooms_Rooms) { if (!((Object)val16).name.ToLower().StartsWith("BackRooms_Room101")) { ExpandPrefabs.BackRoomsRoomTable.includedRooms.elements.Add(GenerateWeightedRoom(val16, 0.5f)); } } expand_Backrooms_Rooms = Expand_Future_Rooms; foreach (PrototypeDungeonRoom room6 in expand_Backrooms_Rooms) { ExpandPrefabs.FutureRoomTable.includedRooms.elements.Add(GenerateWeightedRoom(room6)); } expand_Backrooms_Rooms = Expand_Future_BossFoyers; foreach (PrototypeDungeonRoom room7 in expand_Backrooms_Rooms) { ExpandPrefabs.FutureFoyerRoomTable.includedRooms.elements.Add(GenerateWeightedRoom(room7)); } expand_Backrooms_Rooms = Expand_Backrooms_WarpWings; foreach (PrototypeDungeonRoom room8 in expand_Backrooms_Rooms) { ExpandPrefabs.BackRoomsWarpWingTable.includedRooms.elements.Add(GenerateWeightedRoom(room8, 1f, LimitedCopies: false)); } ExpandPrefabs.BackRoomsEntranceRoomTable.includedRooms.elements.Add(GenerateWeightedRoom(Expand_BackRooms_Entrance)); ExpandPrefabs.BackRoomsEntranceRoomTable.includedRooms.elements.Add(GenerateWeightedRoom(Expand_BackRooms_Entrance2)); ExpandPrefabs.BackRoomsEntranceRoomTable.includedRooms.elements.Add(GenerateWeightedRoom(Expand_BackRooms_Entrance3)); array2 = array6; foreach (WeightedRoom val17 in array2) { ExpandPrefabs.CastleRoomTable.includedRooms.elements.Add(val17); if (val17.room.overrideRoomVisualType == -1) { ExpandPrefabs.CustomRoomTable.includedRooms.elements.Add(val17); ExpandPrefabs.CustomRoomTable2.includedRooms.elements.Add(val17); ExpandPrefabs.CustomRoomTableSecretGlitchFloor.includedRooms.elements.Add(val17); } } array2 = array8; foreach (WeightedRoom val18 in array2) { ExpandPrefabs.Gungeon_RoomTable.includedRooms.elements.Add(val18); if (val18.room.overrideRoomVisualType == -1) { ExpandPrefabs.CustomRoomTable.includedRooms.elements.Add(val18); ExpandPrefabs.CustomRoomTable2.includedRooms.elements.Add(val18); ExpandPrefabs.CustomRoomTableSecretGlitchFloor.includedRooms.elements.Add(val18); } } if (!ExpandSettings.IsHardModeBuild) { array2 = array7; foreach (WeightedRoom item3 in array2) { ExpandPrefabs.SewersRoomTable.includedRooms.elements.Add(item3); ExpandPrefabs.CustomRoomTable.includedRooms.elements.Add(item3); ExpandPrefabs.CustomRoomTable2.includedRooms.elements.Add(item3); ExpandPrefabs.CustomRoomTableSecretGlitchFloor.includedRooms.elements.Add(item3); } } array2 = array9; foreach (WeightedRoom val19 in array2) { ExpandPrefabs.MinesRoomTable.includedRooms.elements.Add(val19); if (val19.room.overrideRoomVisualType == -1) { ExpandPrefabs.CustomRoomTable.includedRooms.elements.Add(val19); ExpandPrefabs.CustomRoomTable2.includedRooms.elements.Add(val19); ExpandPrefabs.CustomRoomTableSecretGlitchFloor.includedRooms.elements.Add(val19); } } array2 = array10; foreach (WeightedRoom val20 in array2) { ExpandPrefabs.CatacombsRoomTable.includedRooms.elements.Add(val20); if (val20.room.overrideRoomVisualType == -1) { ExpandPrefabs.CustomRoomTable.includedRooms.elements.Add(val20); ExpandPrefabs.CustomRoomTable2.includedRooms.elements.Add(val20); ExpandPrefabs.CustomRoomTableSecretGlitchFloor.includedRooms.elements.Add(val20); } } array2 = array11; foreach (WeightedRoom val21 in array2) { ExpandPrefabs.ForgeRoomTable.includedRooms.elements.Add(val21); if (val21.room.overrideRoomVisualType == -1) { ExpandPrefabs.CustomRoomTable.includedRooms.elements.Add(val21); ExpandPrefabs.CustomRoomTable2.includedRooms.elements.Add(val21); if ((Object)(object)val21.room != (Object)(object)Expand_Pits && (Object)(object)val21.room != (Object)(object)Expand_CorridorOfDoom) { ExpandPrefabs.CustomRoomTableSecretGlitchFloor.includedRooms.elements.Add(val21); } } } array2 = array3; foreach (WeightedRoom item4 in array2) { ExpandPrefabs.SecretRoomTable.includedRooms.elements.Add(item4); } array2 = array4; foreach (WeightedRoom item5 in array2) { ExpandPrefabs.AbbeyAblernRoomTable.includedRooms.elements.Add(item5); } for (int m = 0; m < ExpandPrefabs.CustomRoomTableSecretGlitchFloor.includedRooms.elements.Count; m++) { bool flag = false; if (!((Object)(object)ExpandPrefabs.CustomRoomTableSecretGlitchFloor.includedRooms.elements[m].room != (Object)null) || ExpandPrefabs.CustomRoomTableSecretGlitchFloor.includedRooms.elements[m].room.FullCellData == null) { continue; } PrototypeDungeonRoomCellData[] fullCellData = ExpandPrefabs.CustomRoomTableSecretGlitchFloor.includedRooms.elements[m].room.FullCellData; for (int i = 0; i < fullCellData.Length; i++) { if ((int)fullCellData[i].state == 4) { flag = true; break; } } if (flag) { ExpandPrefabs.CustomRoomTableSecretGlitchFloor.includedRooms.elements.Remove(ExpandPrefabs.CustomRoomTableSecretGlitchFloor.includedRooms.elements[m]); } } bundles = null; } } } namespace ExpandTheGungeon.ExpandMain { public class ExpandDungeonDoorManager : MonoBehaviour { private void CheckForPlayerCollisionHook(Action orig, DungeonDoorController self, SpeculativeRigidbody otherRigidbody, Vector2 normal) { //IL_0003: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) orig(self, otherRigidbody, normal); bool num = ReflectionHelpers.ReflectGetField(typeof(DungeonDoorController), "isSealed", self); bool flag = ReflectionHelpers.ReflectGetField(typeof(DungeonDoorController), "m_open", self); if (num || self.isLocked) { return; } AIActor component = ((Component)otherRigidbody).GetComponent(); if ((Object)(object)component != (Object)null && !flag) { bool flag2 = false; if (normal.y < 0f && self.northSouth) { flag2 = true; } if (normal.x < 0f && !self.northSouth) { flag2 = true; } if ((int)GameManager.Instance.CurrentGameType == 0) { self.Open(flag2); } else if (!component.IgnoreForRoomClear) { self.Open(flag2); } } } public void Expand_Open(Action orig, DungeonDoorController self, bool flipped = false) { //IL_0010: 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) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Invalid comparison between Unknown and I4 //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Invalid comparison between Unknown and I4 //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Invalid comparison between Unknown and I4 //IL_01a6: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Invalid comparison between Unknown and I4 //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Unknown result type (might be due to invalid IL or missing references) DungeonDoorMode val = ReflectionHelpers.ReflectGetField(typeof(DungeonDoorController), "doorMode", self); bool flag = ReflectionHelpers.ReflectGetField(typeof(DungeonDoorController), "m_isDestroyed", self); bool flag2 = ReflectionHelpers.ReflectGetField(typeof(DungeonDoorController), "m_open", self); bool flag3 = ReflectionHelpers.ReflectGetField(typeof(DungeonDoorController), "hasEverBeenOpen", self); bool flag4 = ReflectionHelpers.ReflectGetField(typeof(DungeonDoorController), "doorClosesAfterEveryOpen", self); if ((int)val == 1 || (int)val == 4 || (int)val == 3 || self.IsSealed || self.isLocked || flag || flag2) { return; } if (!flag3) { RoomHandler val2 = null; if (self.exitDefinition != null) { if (self.exitDefinition.upstreamRoom != null && self.exitDefinition.upstreamRoom.WillSealOnEntry()) { val2 = self.exitDefinition.upstreamRoom; } else if (self.exitDefinition.downstreamRoom != null && self.exitDefinition.downstreamRoom.WillSealOnEntry()) { val2 = self.exitDefinition.downstreamRoom; } } if (val2 != null && (Object.op_Implicit((Object)(object)self.subsidiaryDoor) || Object.op_Implicit((Object)(object)self.parentDoor))) { DungeonDoorController val3 = ((!Object.op_Implicit((Object)(object)self.subsidiaryDoor)) ? self.parentDoor : self.subsidiaryDoor); Vector2 center = val2.area.Center; float num = Vector2.Distance(center, Vector2.op_Implicit(((Component)self).gameObject.transform.position)); if (Vector2.Distance(center, Vector2.op_Implicit(((BraveBehaviour)val3).transform.position)) < num) { val2 = null; } } if (val2 != null) { BraveMemory.HandleRoomEntered(val2.GetActiveEnemiesCount((ActiveEnemyType)0)); } } if ((int)GameManager.Instance.Dungeon.tileIndices.tilesetId != 4096) { AkSoundEngine.PostEvent("play_OBJ_door_open_01", ((Component)self).gameObject); } ReflectionHelpers.InvokeMethod(typeof(DungeonDoorController), "SetState", self, new object[2] { true, flipped }); if (flag4) { ((MonoBehaviour)GameManager.Instance).StartCoroutine(ExpandDelayedReclose(self)); } } private IEnumerator ExpandDelayedReclose(DungeonDoorController self) { yield return (object)new WaitForSeconds(0.2f); bool WillClose = false; float AdditionalDelay = 0.01f; Vector2 DoorPosition = Vector3Extensions.XY(((BraveBehaviour)self).transform.position); while (self.IsOpen && !WillClose) { bool flag = false; DoorModule[] doorModules = self.doorModules; for (int i = 0; i < doorModules.Length; i++) { foreach (PixelCollider pixelCollider in doorModules[i].rigidbody.PixelColliders) { List overlappingRigidbodies = PhysicsEngine.Instance.GetOverlappingRigidbodies(pixelCollider, (int?)null, false); for (int j = 0; j < overlappingRigidbodies.Count; j++) { if ((Object)(object)((Component)overlappingRigidbodies[j]).GetComponent() != (Object)null) { flag = true; AdditionalDelay = 0.2f; break; } } if (flag) { break; } } if (flag) { break; } } if (!flag) { WillClose = true; } yield return null; } yield return (object)new WaitForSeconds(AdditionalDelay); PlayerController PrimaryPlayer = GameManager.Instance.PrimaryPlayer; PlayerController SecondaryPlayer = null; float DistanceFromDoor = 2.9f; if (!string.IsNullOrEmpty(((Object)((Component)self).gameObject).name) && ((Object)((Component)self).gameObject).name.ToLower().Contains("vertical")) { DistanceFromDoor = 2.6f; } if ((int)GameManager.Instance.CurrentGameType == 1) { SecondaryPlayer = GameManager.Instance.SecondaryPlayer; } while (Vector2.Distance(DoorPosition, ((GameActor)PrimaryPlayer).CenterPosition) < DistanceFromDoor) { yield return null; } if (Object.op_Implicit((Object)(object)SecondaryPlayer)) { while (Vector2.Distance(DoorPosition, ((GameActor)PrimaryPlayer).CenterPosition) < DistanceFromDoor) { yield return null; } } if ((int)GameManager.Instance.Dungeon.tileIndices.tilesetId != 4096) { AkSoundEngine.PostEvent("play_OBJ_door_open_01", ((Component)self).gameObject); } self.Close(); } } [HarmonyPatch] public class ExpandDungeonMusicAPI { public static string TempCustomBossMusic = string.Empty; public static bool EnteredNewCustomFloor = false; public static readonly string StopAllMusicEventName = "Stop_EX_MUS_All"; public static readonly Dictionary CustomLevelMusic = new Dictionary { ["Play_EX_MUS_Belly_01"] = true, ["Play_EX_MUS_Jungle_01"] = true, ["Play_EX_MUS_West_01"] = true, ["Play_EX_MUS_DeepDungeon_01"] = false }; public static readonly List CustomRoomMusic = new List { "Play_EX_MUS_BootlegMusic_01", "Play_EX_UnicornMusic_01" }; public static readonly List CustomRoomMusicStopEvents = new List { "Stop_EX_MUS_BootlegMusic_01", "Stop_EX_UnicornMusic_01", "Stop_EX_MUS_DeepDungeon_01" }; public static readonly List TilesetsWithCustomShopSecretMusic = new List { (ValidTilesets)8192, (ValidTilesets)4096, (ValidTilesets)1024 }; public static T ReflectGetField(Type classType, string fieldName, object o = null) { return (T)classType.GetField(fieldName, BindingFlags.Public | BindingFlags.NonPublic | ((o != null) ? BindingFlags.Instance : BindingFlags.Static)).GetValue(o); } [HarmonyPatch(typeof(DungeonFloorMusicController), "SwitchToState", new Type[] { typeof(DungeonMusicState) })] [HarmonyPrefix] private static bool SwitchToState(DungeonFloorMusicController __instance, DungeonMusicState targetState) { //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Invalid comparison between Unknown and I4 //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Invalid comparison between Unknown and I4 //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Invalid comparison between Unknown and I4 //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Invalid comparison between Unknown and I4 //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Invalid comparison between Unknown and I4 //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Invalid comparison between Unknown and I4 //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Invalid comparison between Unknown and I4 //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Invalid comparison between Unknown and I4 //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Invalid comparison between Unknown and I4 //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_017f: Invalid comparison between Unknown and I4 //IL_054c: Unknown result type (might be due to invalid IL or missing references) //IL_0556: Invalid comparison between Unknown and I4 //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Invalid comparison between Unknown and I4 //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Invalid comparison between Unknown and I4 //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Invalid comparison between Unknown and I4 //IL_0917: Unknown result type (might be due to invalid IL or missing references) //IL_0184: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Invalid comparison between Unknown and I4 //IL_0593: Unknown result type (might be due to invalid IL or missing references) //IL_0599: Invalid comparison between Unknown and I4 //IL_0559: Unknown result type (might be due to invalid IL or missing references) //IL_0560: Invalid comparison between Unknown and I4 //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Invalid comparison between Unknown and I4 //IL_02af: Unknown result type (might be due to invalid IL or missing references) //IL_02b6: Invalid comparison between Unknown and I4 //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Invalid comparison between Unknown and I4 //IL_02c4: Unknown result type (might be due to invalid IL or missing references) //IL_02cb: Invalid comparison between Unknown and I4 //IL_02cf: Unknown result type (might be due to invalid IL or missing references) //IL_02d6: Invalid comparison between Unknown and I4 //IL_02da: Unknown result type (might be due to invalid IL or missing references) //IL_02e0: Invalid comparison between Unknown and I4 //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Invalid comparison between Unknown and I4 //IL_0581: Unknown result type (might be due to invalid IL or missing references) //IL_08b1: Unknown result type (might be due to invalid IL or missing references) //IL_07b2: Unknown result type (might be due to invalid IL or missing references) //IL_07bc: Invalid comparison between Unknown and I4 //IL_02fa: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Invalid comparison between Unknown and I4 //IL_0379: Unknown result type (might be due to invalid IL or missing references) //IL_0380: Invalid comparison between Unknown and I4 //IL_0383: Unknown result type (might be due to invalid IL or missing references) //IL_038a: Invalid comparison between Unknown and I4 //IL_038e: Unknown result type (might be due to invalid IL or missing references) //IL_0395: Invalid comparison between Unknown and I4 //IL_0399: Unknown result type (might be due to invalid IL or missing references) //IL_03a0: Invalid comparison between Unknown and I4 //IL_03a4: Unknown result type (might be due to invalid IL or missing references) //IL_03aa: Invalid comparison between Unknown and I4 //IL_01e5: Unknown result type (might be due to invalid IL or missing references) //IL_01ec: Invalid comparison between Unknown and I4 //IL_01ef: Unknown result type (might be due to invalid IL or missing references) //IL_01f6: Invalid comparison between Unknown and I4 //IL_01fa: Unknown result type (might be due to invalid IL or missing references) //IL_0201: Invalid comparison between Unknown and I4 //IL_0205: Unknown result type (might be due to invalid IL or missing references) //IL_020c: Invalid comparison between Unknown and I4 //IL_0210: Unknown result type (might be due to invalid IL or missing references) //IL_0216: Invalid comparison between Unknown and I4 //IL_0621: Unknown result type (might be due to invalid IL or missing references) //IL_0628: Invalid comparison between Unknown and I4 //IL_062b: Unknown result type (might be due to invalid IL or missing references) //IL_0632: Invalid comparison between Unknown and I4 //IL_0636: Unknown result type (might be due to invalid IL or missing references) //IL_063d: Invalid comparison between Unknown and I4 //IL_0641: Unknown result type (might be due to invalid IL or missing references) //IL_0648: Invalid comparison between Unknown and I4 //IL_064c: Unknown result type (might be due to invalid IL or missing references) //IL_0652: Invalid comparison between Unknown and I4 //IL_03c4: Unknown result type (might be due to invalid IL or missing references) //IL_03ca: Invalid comparison between Unknown and I4 //IL_0443: Unknown result type (might be due to invalid IL or missing references) //IL_044a: Invalid comparison between Unknown and I4 //IL_044d: Unknown result type (might be due to invalid IL or missing references) //IL_0454: Invalid comparison between Unknown and I4 //IL_0458: Unknown result type (might be due to invalid IL or missing references) //IL_045f: Invalid comparison between Unknown and I4 //IL_0463: Unknown result type (might be due to invalid IL or missing references) //IL_046a: Invalid comparison between Unknown and I4 //IL_046e: Unknown result type (might be due to invalid IL or missing references) //IL_0474: Invalid comparison between Unknown and I4 //IL_0230: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Invalid comparison between Unknown and I4 //IL_065b: Unknown result type (might be due to invalid IL or missing references) //IL_0661: Invalid comparison between Unknown and I4 //IL_0811: Unknown result type (might be due to invalid IL or missing references) //IL_048e: Unknown result type (might be due to invalid IL or missing references) //IL_0494: Invalid comparison between Unknown and I4 string text = ReflectGetField(typeof(DungeonFloorMusicController), "m_cachedMusicEventCore", __instance); bool value = false; float num = ReflectGetField(typeof(DungeonFloorMusicController), "m_changedToArcadeTimer", __instance); ReflectGetField(typeof(DungeonFloorMusicController), "m_cooldownTimerRemaining", __instance); uint num2 = ReflectGetField(typeof(DungeonFloorMusicController), "m_coreMusicEventID", __instance); if (string.IsNullOrEmpty(text) | !CustomLevelMusic.TryGetValue(text, out value)) { if ((int)__instance.CurrentState == -1) { AkSoundEngine.PostEvent(StopAllMusicEventName, ((Component)__instance).gameObject); } return true; } FieldInfo field = typeof(DungeonFloorMusicController).GetField("m_cooldownTimerRemaining", BindingFlags.Instance | BindingFlags.NonPublic); FieldInfo field2 = typeof(DungeonFloorMusicController).GetField("m_currentState", BindingFlags.Instance | BindingFlags.NonPublic); if (num > 0f && (int)targetState == 30 && (int)__instance.CurrentState == 60) { return false; } Debug.Log((object)("(EX) Attemping to switch to state: " + ((object)(DungeonMusicState)(ref targetState)).ToString() + " with core ID: " + num2)); if (__instance.MusicOverridden) { return false; } if ((int)targetState <= 25) { if ((int)targetState <= 10) { if ((int)targetState != 0) { if ((int)targetState == 10) { if (value) { if (EnteredNewCustomFloor) { AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)__instance).gameObject); AkSoundEngine.PostEvent(StopAllMusicEventName, ((Component)__instance).gameObject); AkSoundEngine.PostEvent(text + "_LoopA", ((Component)__instance).gameObject); } else { EnteredNewCustomFloor = true; } } else if (((int)__instance.CurrentState == 40) | ((int)__instance.CurrentState == 50) | ((int)__instance.CurrentState == 75) | ((int)__instance.CurrentState == 60) | ((int)__instance.CurrentState == -1)) { AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)__instance).gameObject); if ((int)__instance.CurrentState == -1) { AkSoundEngine.PostEvent(StopAllMusicEventName, ((Component)__instance).gameObject); } AkSoundEngine.PostEvent(text, ((Component)__instance).gameObject); } } } else { field.SetValue(__instance, -1f); AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)__instance).gameObject); if (value) { AkSoundEngine.PostEvent(StopAllMusicEventName, ((Component)__instance).gameObject); AkSoundEngine.PostEvent(text + "_Intro", ((Component)__instance).gameObject); } else { AkSoundEngine.PostEvent(StopAllMusicEventName, ((Component)__instance).gameObject); AkSoundEngine.PostEvent(text, ((Component)__instance).gameObject); } } } else if ((int)targetState != 20) { if ((int)targetState != 23) { if ((int)targetState == 25) { if (value) { if (EnteredNewCustomFloor) { AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)__instance).gameObject); AkSoundEngine.PostEvent(StopAllMusicEventName, ((Component)__instance).gameObject); AkSoundEngine.PostEvent(text + "_LoopD", ((Component)__instance).gameObject); } else { EnteredNewCustomFloor = true; } } else if (((int)__instance.CurrentState == 40) | ((int)__instance.CurrentState == 50) | ((int)__instance.CurrentState == 75) | ((int)__instance.CurrentState == 60) | ((int)__instance.CurrentState == -1)) { AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)__instance).gameObject); if ((int)__instance.CurrentState == -1) { AkSoundEngine.PostEvent(StopAllMusicEventName, ((Component)__instance).gameObject); } AkSoundEngine.PostEvent(text, ((Component)__instance).gameObject); } } } else if (value) { if (EnteredNewCustomFloor) { AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)__instance).gameObject); AkSoundEngine.PostEvent(StopAllMusicEventName, ((Component)__instance).gameObject); AkSoundEngine.PostEvent(text + "_LoopC", ((Component)__instance).gameObject); } else { EnteredNewCustomFloor = true; } } else if (((int)__instance.CurrentState == 40) | ((int)__instance.CurrentState == 50) | ((int)__instance.CurrentState == 75) | ((int)__instance.CurrentState == 60) | ((int)__instance.CurrentState == -1)) { AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)__instance).gameObject); if ((int)__instance.CurrentState == -1) { AkSoundEngine.PostEvent(StopAllMusicEventName, ((Component)__instance).gameObject); } AkSoundEngine.PostEvent(text, ((Component)__instance).gameObject); } } else if (value) { if (EnteredNewCustomFloor) { AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)__instance).gameObject); AkSoundEngine.PostEvent(StopAllMusicEventName, ((Component)__instance).gameObject); AkSoundEngine.PostEvent(text + "_LoopB", ((Component)__instance).gameObject); } else { EnteredNewCustomFloor = true; } } else if (((int)__instance.CurrentState == 40) | ((int)__instance.CurrentState == 50) | ((int)__instance.CurrentState == 75) | ((int)__instance.CurrentState == 60) | ((int)__instance.CurrentState == -1)) { AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)__instance).gameObject); if ((int)__instance.CurrentState == -1) { AkSoundEngine.PostEvent(StopAllMusicEventName, ((Component)__instance).gameObject); } AkSoundEngine.PostEvent(text, ((Component)__instance).gameObject); } } else if ((int)targetState <= 50) { if ((int)targetState != 30) { if ((int)targetState != 40) { if ((int)targetState == 50) { if ((int)((Component)__instance).gameObject.GetComponent().Dungeon.tileIndices.tilesetId == 1024) { return false; } field.SetValue(__instance, -1f); AkSoundEngine.PostEvent(StopAllMusicEventName, ((Component)__instance).gameObject); AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)__instance).gameObject); if (value && TilesetsWithCustomShopSecretMusic.Contains(((Component)__instance).gameObject.GetComponent().Dungeon.tileIndices.tilesetId)) { AkSoundEngine.PostEvent(text + "_Secret", ((Component)__instance).gameObject); } else { AkSoundEngine.PostEvent("Play_MUS_Dungeon_Theme_01", ((Component)__instance).gameObject); AkSoundEngine.PostEvent("Play_MUS_Dungeon_State_Secret", ((Component)__instance).gameObject); } } } else { field.SetValue(__instance, -1f); AkSoundEngine.PostEvent(StopAllMusicEventName, ((Component)__instance).gameObject); AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)__instance).gameObject); if (value && TilesetsWithCustomShopSecretMusic.Contains(((Component)__instance).gameObject.GetComponent().Dungeon.tileIndices.tilesetId)) { AkSoundEngine.PostEvent(text + "_Shop", ((Component)__instance).gameObject); } else { AkSoundEngine.PostEvent("Play_MUS_Dungeon_Theme_01", ((Component)__instance).gameObject); AkSoundEngine.PostEvent("Play_MUS_Dungeon_State_Shop", ((Component)__instance).gameObject); } } } else { field.SetValue(__instance, -1f); if ((int)((Component)__instance).gameObject.GetComponent().Dungeon.tileIndices.tilesetId == 1024 && (int)__instance.CurrentState == 50) { Debug.Log((object)("(EX) Skipped switching to state on Old West Floor: " + ((object)(DungeonMusicState)(ref targetState)).ToString())); field2.SetValue(__instance, targetState); return false; } if ((int)GameManager.Instance.CurrentLevelOverrideState == 1 && GameStatsManager.Instance.AnyPastBeaten()) { AkSoundEngine.PostEvent(StopAllMusicEventName, ((Component)__instance).gameObject); AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)__instance).gameObject); AkSoundEngine.PostEvent("Play_MUS_Dungeon_State_Winner", ((Component)__instance).gameObject); } else { AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)__instance).gameObject); if (value) { AkSoundEngine.PostEvent(StopAllMusicEventName, ((Component)__instance).gameObject); AkSoundEngine.PostEvent(text + "_Calm", ((Component)__instance).gameObject); } else if (((int)__instance.CurrentState == 40) | ((int)__instance.CurrentState == 50) | ((int)__instance.CurrentState == 75) | ((int)__instance.CurrentState == 60) | ((int)__instance.CurrentState == -1)) { if ((int)__instance.CurrentState == -1) { AkSoundEngine.PostEvent(StopAllMusicEventName, ((Component)__instance).gameObject); } AkSoundEngine.PostEvent(text, ((Component)__instance).gameObject); } } } } else if ((int)targetState != 60) { if ((int)targetState != 70) { if ((int)targetState == 75) { field.SetValue(__instance, -1f); AkSoundEngine.PostEvent(StopAllMusicEventName, ((Component)__instance).gameObject); AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)__instance).gameObject); AkSoundEngine.PostEvent("Play_MUS_Dungeon_Theme_01", ((Component)__instance).gameObject); AkSoundEngine.PostEvent("Play_MUS_State_Sorceress", ((Component)__instance).gameObject); } } else { field.SetValue(__instance, -1f); AkSoundEngine.PostEvent(StopAllMusicEventName, ((Component)__instance).gameObject); AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)__instance).gameObject); AkSoundEngine.PostEvent(text, ((Component)__instance).gameObject); } } else { field.SetValue(__instance, -1f); AkSoundEngine.PostEvent(StopAllMusicEventName, ((Component)__instance).gameObject); AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)__instance).gameObject); AkSoundEngine.PostEvent("Play_MUS_Dungeon_Theme_01", ((Component)__instance).gameObject); AkSoundEngine.PostEvent("Play_MUS_Dungeon_State_Winchester", ((Component)__instance).gameObject); AkSoundEngine.PostEvent("Play_MUS_Winchester_State_Drone", ((Component)__instance).gameObject); } Debug.Log((object)("(EX) Successfully switched to state: " + ((object)(DungeonMusicState)(ref targetState)).ToString())); field2.SetValue(__instance, targetState); return false; } [HarmonyPatch(typeof(DungeonFloorMusicController), "SwitchToCustomMusic", new Type[] { typeof(string), typeof(GameObject), typeof(bool), typeof(string) })] [HarmonyPrefix] public static bool SwitchToCustomMusic(DungeonFloorMusicController __instance, string customMusicEvent, GameObject source, bool useSwitch, string switchEvent) { if (customMusicEvent == "Play_MUS_Dungeon_State_NPC") { string key = ReflectGetField(typeof(DungeonFloorMusicController), "m_cachedMusicEventCore", __instance); bool value = false; if (CustomLevelMusic.TryGetValue(key, out value)) { return false; } } AkSoundEngine.PostEvent(StopAllMusicEventName, ((Component)__instance).gameObject); Debug.Log((object)("(EX) Successfully switched to custom music: " + customMusicEvent)); return true; } [HarmonyPatch(typeof(DungeonFloorMusicController), "NotifyEnteredNewRoom", new Type[] { typeof(RoomHandler) })] [HarmonyPrefix] public static bool NotifyEnteredNewRoom(DungeonFloorMusicController __instance, RoomHandler newRoom) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Invalid comparison between Unknown and I4 //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Invalid comparison between Unknown and I4 try { if (!EnteredNewCustomFloor && newRoom.area != null && (int)newRoom.area.PrototypeRoomCategory != 7 && newRoom?.parentRoom?.area != null && (int)newRoom.parentRoom.area.PrototypeRoomCategory != 7) { EnteredNewCustomFloor = true; } } catch (Exception) { } return true; } [HarmonyPatch(typeof(DungeonFloorMusicController), "SwitchToEndTimesMusic")] [HarmonyPrefix] public static bool SwitchToEndTimesMusic(DungeonFloorMusicController __instance) { AkSoundEngine.PostEvent(StopAllMusicEventName, ((Component)__instance).gameObject); return true; } [HarmonyPatch(typeof(DungeonFloorMusicController), "SwitchToBossMusic", new Type[] { typeof(string), typeof(GameObject) })] [HarmonyPrefix] public static bool SwitchToBossMusic(DungeonFloorMusicController __instance, string bossMusicString, GameObject source) { AkSoundEngine.PostEvent(StopAllMusicEventName, ((Component)__instance).gameObject); return true; } [HarmonyPatch(typeof(DungeonFloorMusicController), "SwitchToDragunTwo")] [HarmonyPrefix] public static bool SwitchToDragunTwo(DungeonFloorMusicController __instance) { AkSoundEngine.PostEvent(StopAllMusicEventName, ((Component)__instance).gameObject); return true; } [HarmonyPatch(typeof(DungeonFloorMusicController), "EndBossMusic")] [HarmonyPrefix] public static bool EndBossMusic(DungeonFloorMusicController __instance) { AkSoundEngine.PostEvent("Stop_EX_MUS_All", ((Component)__instance).gameObject); return true; } [HarmonyPatch(typeof(GameManager), "FlushMusicAudio")] [HarmonyPrefix] public static bool FlushMusicAudio(GameManager __instance) { AkSoundEngine.PostEvent(StopAllMusicEventName, ((Component)__instance).gameObject); return true; } [HarmonyPatch(typeof(GameManager), "FlushAudio")] [HarmonyPrefix] public static bool FlushAudio(GameManager __instance) { AkSoundEngine.PostEvent(StopAllMusicEventName, ((Component)__instance).gameObject); return true; } } public class ExpandFloorDecorator : MonoBehaviour { private static readonly bool DebugMode; private static ExpandFloorDecorator m_Instance; private int RandomObjectsPlaced; private int RandomObjectsSkipped; public static ExpandFloorDecorator Instance { get { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)m_Instance)) { m_Instance = new GameObject("Expand Floor Decorator", new Type[1] { typeof(ExpandFloorDecorator) }) { layer = 22 }.GetComponent(); } return m_Instance; } } public static void DestroyInstance() { Object.Destroy((Object)(object)((Component)m_Instance).gameObject); m_Instance = null; } public void PlaceFloorDecoration(Dungeon dungeon, List roomListOverride = null, bool ignoreTilesetType = false) { //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Invalid comparison between Unknown and I4 //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Invalid comparison between Unknown and I4 //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Invalid comparison between Unknown and I4 //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Invalid comparison between Unknown and I4 //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Invalid comparison between Unknown and I4 //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Invalid comparison between Unknown and I4 List list = new List { (ValidTilesets)8192, (ValidTilesets)4096, (ValidTilesets)1024, (ValidTilesets)16, (ValidTilesets)256 }; if ((!ignoreTilesetType && !list.Contains(dungeon.tileIndices.tilesetId)) || (((dungeon.data.rooms == null) | (dungeon.data.rooms.Count <= 0)) && roomListOverride == null)) { return; } List list2 = dungeon.data.rooms; if (roomListOverride != null) { list2 = roomListOverride; } if (((Object)((Component)dungeon).gameObject).name.ToLower().StartsWith("base_office") | ((Object)((Component)dungeon).gameObject).name.ToLower().StartsWith("base_backrooms")) { ReplaceTables(); } foreach (RoomHandler item in list2) { try { ValidTilesets tilesetId = dungeon.tileIndices.tilesetId; if ((int)tilesetId <= 256) { if ((int)tilesetId != 16) { if ((int)tilesetId == 256 && ((Object)((Component)dungeon).gameObject).name.ToLower().StartsWith("base_office")) { PlaceRandomOfficeSupplies(dungeon, item); } } else { PlaceRandomAlarmMushrooms(dungeon, item); } } else if ((int)tilesetId != 1024) { if ((int)tilesetId != 4096) { if ((int)tilesetId == 8192) { PlaceRandomTrees(dungeon, item); } } else { PlaceRandomCorpses(dungeon, item); } } else { PlaceRandomCacti(dungeon, item); } } catch (Exception ex) { if (ExpandSettings.debugMode && item != null && !string.IsNullOrEmpty(item.GetRoomName())) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] Exception while setting up objects for room: " + item.GetRoomName()), DebugMode); } } else if (ExpandSettings.debugMode && ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] Exception while setting up objects for current room", DebugMode); } if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] Skipping current room...", DebugMode); } if (ExpandSettings.debugMode) { ETGModConsole.Log((object)(ex.Message + ex.StackTrace + ex.Source), DebugMode); } } } if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] Number of floor decoration objects placed: " + RandomObjectsPlaced), DebugMode); ETGModConsole.Log((object)("[DEBUG] Number of floor decoration objects skipped: " + RandomObjectsSkipped), DebugMode); if (RandomObjectsPlaced <= 0) { ETGModConsole.Log((object)"[DEBUG] Warning: No decoration objects have been placed!", DebugMode); } } RandomObjectsPlaced = 0; RandomObjectsSkipped = 0; } private void PlaceRandomTrees(Dungeon dungeon, RoomHandler currentRoom) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Invalid comparison between Unknown and I4 //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Invalid comparison between Unknown and I4 //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Invalid comparison between Unknown and I4 //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Invalid comparison between Unknown and I4 //IL_01c9: 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_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_01e1: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Unknown result type (might be due to invalid IL or missing references) //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_0254: Unknown result type (might be due to invalid IL or missing references) if (currentRoom.area == null) { return; } RoomCategory prototypeRoomCategory = currentRoom.area.PrototypeRoomCategory; if (((currentRoom == null || (int)prototypeRoomCategory == 4) | currentRoom.IsMaintenanceRoom() | string.IsNullOrEmpty(currentRoom.GetRoomName()) | currentRoom.GetRoomName().StartsWith("Boss Foyer") | !currentRoom.HasActiveEnemies((ActiveEnemyType)1) | currentRoom.PrecludeTilemapDrawing) || (int)prototypeRoomCategory == 3 || (int)prototypeRoomCategory == 7 || (int)prototypeRoomCategory == 8 || Random.value < 0.2f) { return; } List list = ExpandUtility.FindAllValidLocations(dungeon, currentRoom, 3, 9, avoidExits: true); List list2 = new List(); if (list.Count <= 0) { return; } list = BraveUtility.Shuffle(list); if (Object.op_Implicit((Object)(object)currentRoom.hierarchyParent)) { for (int i = 0; i < currentRoom.hierarchyParent.childCount; i++) { if (Object.op_Implicit((Object)(object)((Component)currentRoom.hierarchyParent.GetChild(i)).gameObject) && Object.op_Implicit((Object)(object)((Component)currentRoom.hierarchyParent.GetChild(i)).gameObject.GetComponent())) { list2.Add(((Component)currentRoom.hierarchyParent.GetChild(i)).gameObject.GetComponent()); } } } List list3 = new List { ExpandPrefabs.ExpandJungleTree_Medium, ExpandPrefabs.ExpandJungleTree_Small }; list3 = BraveUtility.Shuffle(list3); int num = 2; int num2 = 5; int x = currentRoom.area.dimensions.x; int y = currentRoom.area.dimensions.y; if (x < 10 || y < 10 || x * y < 225) { num = 1; num2 = 3; } else if (x * y >= 800 && x > 15 && y > 15) { num = 4; num2 = 7; } int num3 = Random.Range(num, num2); for (int j = 0; j < num3; j++) { if (list.Count > 0) { IntVector2 item = BraveUtility.RandomElement(list); list.Remove(item); GameObject obj = Object.Instantiate(BraveUtility.RandomElement(list3), ((IntVector2)(ref item)).ToVector3(), Quaternion.identity); MajorBreakable component = obj.GetComponent(); obj.transform.parent = currentRoom.hierarchyParent; RandomObjectsPlaced++; if (list.Count > 1) { list = BraveUtility.Shuffle(list); } if (list2.Count <= 0) { continue; } for (int k = 0; k < list2.Count; k++) { FlippableCover val = list2[k]; if (Vector2.Distance(((BraveBehaviour)val).specRigidbody.UnitCenter, ((BraveBehaviour)component).specRigidbody.UnitCenter) < 4f) { list2.Remove(val); currentRoom.DeregisterInteractable((IPlayerInteractable)(object)((Component)val).gameObject.GetComponent()); RemoveTableDecorations(val, currentRoom); Object.Destroy((Object)(object)((Component)val).gameObject); } } } else { RandomObjectsSkipped++; } } } private void PlaceRandomCorpses(Dungeon dungeon, RoomHandler currentRoom) { //IL_0006: 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_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Invalid comparison between Unknown and I4 //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Invalid comparison between Unknown and I4 //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: 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_015f: Unknown result type (might be due to invalid IL or missing references) //IL_0167: 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_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) RoomCategory prototypeRoomCategory = currentRoom.area.PrototypeRoomCategory; int num = 12; if (currentRoom == null || string.IsNullOrEmpty(currentRoom.GetRoomName()) || currentRoom.IsMaintenanceRoom() || currentRoom.GetRoomName().StartsWith("Boss Foyer") || currentRoom.PrecludeTilemapDrawing || !(Random.value <= 0.6f) || (int)prototypeRoomCategory == 7 || (int)prototypeRoomCategory == 4) { return; } List list = ExpandUtility.FindAllValidLocations(dungeon, currentRoom, 2); if (list.Count <= 0) { return; } if (list.Count > 1) { list = BraveUtility.Shuffle(list); } if (!(Random.value <= 0.3f)) { _ = 3; } int num2 = Random.Range(6, num); for (int i = 0; i < num2; i++) { if (list.Count > 0) { IntVector2 val = BraveUtility.RandomElement(list); list.Remove(val); if (list.Count > 1) { list = BraveUtility.Shuffle(list); } if (Random.value <= 0.08f) { GameObject val2 = Object.Instantiate(ExpandPrefabs.Sarco_Skeleton, ((IntVector2)(ref val)).ToVector3(), Quaternion.identity); ((tk2dBaseSprite)val2.GetComponent()).HeightOffGround = -1f; ((tk2dBaseSprite)val2.GetComponent()).UpdateZDepth(); if (BraveUtility.RandomBool()) { ((tk2dBaseSprite)val2.GetComponent()).FlipX = true; } val2.transform.parent = currentRoom.hierarchyParent; RandomObjectsPlaced++; } else { ExpandObjectDatabase.WrithingBulletman.InstantiateObject(currentRoom, val - currentRoom.area.basePosition, false, false).transform.parent = currentRoom.hierarchyParent; RandomObjectsPlaced++; } } else { RandomObjectsSkipped++; } } } private void PlaceRandomCacti(Dungeon dungeon, RoomHandler currentRoom) { //IL_0006: 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_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Invalid comparison between Unknown and I4 //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_0108: 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_0126: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0171: 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_018e: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: 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_01e6: Unknown result type (might be due to invalid IL or missing references) //IL_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Unknown result type (might be due to invalid IL or missing references) //IL_0213: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Unknown result type (might be due to invalid IL or missing references) //IL_02d7: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Invalid comparison between Unknown and I4 //IL_03c5: Unknown result type (might be due to invalid IL or missing references) //IL_03ca: Unknown result type (might be due to invalid IL or missing references) //IL_03cd: Unknown result type (might be due to invalid IL or missing references) //IL_0341: Unknown result type (might be due to invalid IL or missing references) //IL_0346: 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_03eb: Unknown result type (might be due to invalid IL or missing references) //IL_03f3: Unknown result type (might be due to invalid IL or missing references) //IL_03f8: Unknown result type (might be due to invalid IL or missing references) //IL_03fd: Unknown result type (might be due to invalid IL or missing references) //IL_0401: Unknown result type (might be due to invalid IL or missing references) //IL_0406: Unknown result type (might be due to invalid IL or missing references) //IL_0369: Unknown result type (might be due to invalid IL or missing references) //IL_036e: Unknown result type (might be due to invalid IL or missing references) RoomCategory prototypeRoomCategory = currentRoom.area.PrototypeRoomCategory; if ((currentRoom == null || (int)prototypeRoomCategory == 4) | currentRoom.IsMaintenanceRoom() | string.IsNullOrEmpty(currentRoom.GetRoomName()) | currentRoom.GetRoomName().StartsWith("Boss Foyer") | (currentRoom.RoomVisualSubtype != 0) | !currentRoom.HasActiveEnemies((ActiveEnemyType)1) | currentRoom.PrecludeTilemapDrawing) { return; } List list = new List { ExpandPrefabs.Cactus_A, ExpandPrefabs.Cactus_B }; list = BraveUtility.Shuffle(list); if (!((Random.value <= 0.8f) | currentRoom.GetRoomName().ToLower().StartsWith("expand_west_entrance"))) { return; } List list2 = new List { new IntVector2(34, 49), new IntVector2(29, 43), new IntVector2(16, 43), new IntVector2(2, 19), new IntVector2(49, 17), new IntVector2(9, 23), new IntVector2(40, 23), new IntVector2(30, 20), new IntVector2(22, 29), new IntVector2(31, 31), new IntVector2(14, 14), new IntVector2(14, 37), new IntVector2(37, 14), new IntVector2(37, 37), new IntVector2(33, 2), new IntVector2(33, 10), new IntVector2(3, 17), new IntVector2(2, 34), new IntVector2(14, 20), new IntVector2(16, 39), new IntVector2(31, 38), new IntVector2(49, 34), new IntVector2(38, 29), new IntVector2(21, 21), new IntVector2(20, 32), new IntVector2(31, 22) }; if (!currentRoom.GetRoomName().ToLower().StartsWith("expand_west_entrance")) { list2 = ExpandUtility.FindAllValidLocations(dungeon, currentRoom, 2, 4, avoidExits: true); } if (!currentRoom.GetRoomName().ToLower().StartsWith("expand_west_entrance") && list2.Count <= 0) { return; } if (list2.Count > 1) { list2 = BraveUtility.Shuffle(list2); } int num = 12; int num2 = 6; int x = currentRoom.area.dimensions.x; int y = currentRoom.area.dimensions.y; if (!string.IsNullOrEmpty(currentRoom.GetRoomName()) && currentRoom.GetRoomName().ToLower().StartsWith("expand_west_canyon1_tiny")) { num2 = 1; num = 3; } else if ((int)prototypeRoomCategory == 3) { num = 10; } else if (x * y >= 400 && Random.value <= 0.3f) { num = 20; } else if (x * y <= 256) { num2 = 2; num = 4; } int num3 = Random.Range(num2, num); if (!currentRoom.GetRoomName().ToLower().StartsWith("expand_west_entrance")) { for (int i = 0; i < num3; i++) { if (list2.Count > 0) { IntVector2 item = BraveUtility.RandomElement(list2); list2.Remove(item); if (list2.Count > 1) { list2 = BraveUtility.Shuffle(list2); } Object.Instantiate(BraveUtility.RandomElement(list), ((IntVector2)(ref item)).ToVector3(), Quaternion.identity).transform.parent = currentRoom.hierarchyParent; RandomObjectsPlaced++; } else { RandomObjectsSkipped++; } } return; } for (int j = 0; j < 14; j++) { if (list2.Count > 0) { IntVector2 val = BraveUtility.RandomElement(list2); list2.Remove(val); if (list2.Count > 0) { list2 = BraveUtility.Shuffle(list2); } GameObject obj = BraveUtility.RandomElement(list); IntVector2 val2 = val + currentRoom.area.basePosition; Object.Instantiate(obj, ((IntVector2)(ref val2)).ToVector3(), Quaternion.identity).transform.SetParent(currentRoom.hierarchyParent); RandomObjectsPlaced++; } else { RandomObjectsSkipped++; } } } private void PlaceRandomAlarmMushrooms(Dungeon dungeon, RoomHandler currentRoom) { //IL_0006: 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_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Invalid comparison between Unknown and I4 //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Invalid comparison between Unknown and I4 //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_0166: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Unknown result type (might be due to invalid IL or missing references) RoomCategory prototypeRoomCategory = currentRoom.area.PrototypeRoomCategory; if (((currentRoom == null || (int)prototypeRoomCategory == 4) | string.IsNullOrEmpty(currentRoom.GetRoomName()) | currentRoom.GetRoomName().StartsWith("Boss Foyer") | currentRoom.IsMaintenanceRoom() | !currentRoom.HasActiveEnemies((ActiveEnemyType)1)) || (int)prototypeRoomCategory == 3) { return; } if (DebugMode) { Debug.Log((object)"[ExpandTheGungeon] Checking room for valid Mushroom locations... "); } if (currentRoom == null || string.IsNullOrEmpty(currentRoom.GetRoomName()) || currentRoom.IsMaintenanceRoom() || currentRoom.GetRoomName().StartsWith("Boss Foyer") || !(Random.value < 0.6f)) { return; } List list = ExpandUtility.FindAllValidLocations(dungeon, currentRoom, 2, 6, avoidExits: true, avoidPits: true, PositionRelativeToRoom: true); if (list.Count <= 0) { return; } if (list.Count > 1) { list = BraveUtility.Shuffle(list); } int num = 3; int num2 = 5; if (list.Count > 40) { num = 4; num2 = 7; } else if (list.Count > 70 && Random.value < 0.3f) { num = 5; num2 = 10; } int num3 = Random.Range(num, num2); for (int i = 0; i < num3; i++) { if (list.Count > 0) { if (DebugMode) { Debug.Log((object)("[ExpandTheGungeon] Test Mushroom Iteration: " + i)); } if (DebugMode && !string.IsNullOrEmpty(currentRoom.GetRoomName())) { ETGModConsole.Log((object)("[ExpandTheGungeon] On Room: " + currentRoom.GetRoomName()), false); } IntVector2 val = BraveUtility.RandomElement(list); list.Remove(val); if (list.Count > 1) { list = BraveUtility.Shuffle(list); } if (DebugMode) { ETGModConsole.Log((object)"[ExpandTheGungeon] Valid Location found. Placing Mushroom...", false); } try { ((DungeonPlaceableBehaviour)ExpandPrefabs.EXAlarmMushroom.GetComponent()).InstantiateObject(currentRoom, val, true).transform.parent = currentRoom.hierarchyParent; ExpandPrefabs.EXAlarmMushroom.GetComponent().ConfigureOnPlacement(currentRoom); } catch (Exception ex) { if (DebugMode) { ETGModConsole.Log((object)"[ExpandTheGungeon] Exception While placing/configuring mushroom!", DebugMode); Debug.LogException(ex); } } RandomObjectsPlaced++; if (DebugMode) { Debug.Log((object)"[ExpandTheGungeon] Mushroom successfully placed!"); } } else { if (DebugMode) { Debug.Log((object)"[ExpandTheGungeon] No more valid cells found. Mushroom skipped!"); } RandomObjectsSkipped++; } } } private void PlaceRandomOfficeSupplies(Dungeon dungeon, RoomHandler currentRoom) { //IL_0006: 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_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Invalid comparison between Unknown and I4 //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: Unknown result type (might be due to invalid IL or missing references) RoomCategory prototypeRoomCategory = currentRoom.area.PrototypeRoomCategory; int num = 8; if (currentRoom == null || currentRoom.IsShop || currentRoom.IsSecretRoom || string.IsNullOrEmpty(currentRoom.GetRoomName()) || currentRoom.IsMaintenanceRoom() || currentRoom.GetRoomName().StartsWith("Boss Foyer") || currentRoom.PrecludeTilemapDrawing || (int)prototypeRoomCategory == 4 || !(Random.value <= 0.6f)) { return; } List list = ExpandUtility.FindAllValidLocations(dungeon, currentRoom, 2); if (list.Count <= 0) { return; } if (list.Count > 1) { list = BraveUtility.Shuffle(list); } Dungeon val = ExpandDungeonPrefabs.LoadOfficialDungeonPrefab("Base_Nakatomi"); List list2 = new List(); list2.Add(val.stampData.objectStamps[6].objectReference); list2.Add(val.stampData.objectStamps[9].objectReference); list2.Add(val.stampData.objectStamps[10].objectReference); list2.Add(val.stampData.objectStamps[11].objectReference); list2.Add(val.stampData.objectStamps[12].objectReference); list2.Add(ExpandObjectDatabase.KitchenChair_Front); list2.Add(ExpandObjectDatabase.KitchenChair_Left); list2.Add(ExpandObjectDatabase.KitchenChair_Right); list2.Add(ExpandObjectDatabase.KitchenCounter); list2 = BraveUtility.Shuffle(list2); val = null; if (!(Random.value <= 0.3f)) { _ = 3; } int num2 = Random.Range(6, num); for (int i = 0; i < num2; i++) { if (list.Count > 0) { IntVector2 item = BraveUtility.RandomElement(list); list.Remove(item); if (list.Count > 1) { list = BraveUtility.Shuffle(list); } Object.Instantiate(BraveUtility.RandomElement(list2), ((IntVector2)(ref item)).ToVector3(), Quaternion.identity).transform.parent = currentRoom.hierarchyParent; RandomObjectsPlaced++; } else { RandomObjectsSkipped++; } } } private void ReplaceTables() { //IL_0027: 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_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) FlippableCover[] array = Object.FindObjectsOfType(); if (array == null || array.Length == 0) { return; } for (int i = 0; i < array.Length; i++) { Vector3 position = ((Component)array[i]).gameObject.transform.position; List list = new List(); bool flag = false; bool flag2 = false; bool flag3 = false; bool flag4 = false; float chanceToDecorate = 1f; GameObject val = null; RoomHandler absoluteRoom = Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)array[i]).transform.position); if (((Object)((Component)array[i]).gameObject).name.ToLower().Contains("table_vertical") | ((Object)((Component)array[i]).gameObject).name.ToLower().Contains("coffin_vertical")) { flag = true; flag2 = true; } else if (((Object)((Component)array[i]).gameObject).name.ToLower().Contains("table_horizontal") | ((Object)((Component)array[i]).gameObject).name.ToLower().Contains("coffin_horizontal")) { flag = true; } if (!flag) { continue; } SurfaceDecorator component = ((Component)array[i]).gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { list = ReflectionHelpers.ReflectGetField>(typeof(SurfaceDecorator), "m_surfaceObjects", component); if (list != null && list.Count > 0) { flag4 = true; for (int j = 0; j < list.Count; j++) { Object.Destroy((Object)(object)list[j]); } } chanceToDecorate = component.chanceToDecorate; flag3 = true; } absoluteRoom.DeregisterInteractable((IPlayerInteractable)(object)array[i]); Object.Destroy((Object)(object)((Component)array[i]).gameObject); val = ((!flag2) ? Object.Instantiate(ExpandObjectDatabase.TableHorizontalSteel, position, Quaternion.identity) : Object.Instantiate(ExpandObjectDatabase.TableVerticalSteel, position, Quaternion.identity)); if (!Object.op_Implicit((Object)(object)val)) { continue; } FlippableCover component2 = val.GetComponent(); val.transform.parent = absoluteRoom.hierarchyParent; component2.ConfigureOnPlacement(absoluteRoom); if (flag3) { SurfaceDecorator component3 = val.GetComponent(); if (Object.op_Implicit((Object)(object)component3)) { if (flag4) { component3.chanceToDecorate = 1f; } else { component3.chanceToDecorate = chanceToDecorate; } component3.Decorate(absoluteRoom); } } absoluteRoom.RegisterInteractable((IPlayerInteractable)(object)component2); } } private void RemoveTableDecorations(FlippableCover table, RoomHandler currentRoom) { //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_008b: 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) for (int i = 0; i < StaticReferenceManager.AllMinorBreakables.Count; i++) { if (!StaticReferenceManager.AllMinorBreakables[i].IsBroken && !Object.op_Implicit((Object)(object)((BraveBehaviour)StaticReferenceManager.AllMinorBreakables[i]).debris) && Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)StaticReferenceManager.AllMinorBreakables[i]).transform.position) == currentRoom) { SpeculativeRigidbody specRigidbody = ((BraveBehaviour)StaticReferenceManager.AllMinorBreakables[i]).specRigidbody; if (Object.op_Implicit((Object)(object)specRigidbody) && Object.op_Implicit((Object)(object)((BraveBehaviour)table).specRigidbody) && BraveMathCollege.DistBetweenRectangles(specRigidbody.UnitBottomLeft, specRigidbody.UnitDimensions, ((BraveBehaviour)table).specRigidbody.UnitBottomLeft, ((BraveBehaviour)table).specRigidbody.UnitDimensions) < 0.5f) { StaticReferenceManager.AllMinorBreakables.Remove(StaticReferenceManager.AllMinorBreakables[i]); Object.Destroy((Object)(object)((Component)StaticReferenceManager.AllMinorBreakables[i]).gameObject); } } } } } public static class ExpandStaticReferenceManager { public static ExpandGungeoneerMimicBossController CurrentGungeoneerMimic; public static List AllSecretDoors; public static List AllGlitchTiles; public static List AllFriendlyHammers; public static List AllCorruptionSoundObjects; public static List AllBeholsterShrines; public static List AllMovingTraps; public static List AllConveyorBelts; public static List AllWesternBros; public static List AllGrasses; public static List AllAlarmMushrooms; static ExpandStaticReferenceManager() { CurrentGungeoneerMimic = null; AllSecretDoors = new List(); AllGlitchTiles = new List(); AllFriendlyHammers = new List(); AllCorruptionSoundObjects = new List(); AllConveyorBelts = new List(); AllBeholsterShrines = new List(); AllMovingTraps = new List(); AllWesternBros = new List(); AllGrasses = new List(); AllAlarmMushrooms = new List(); } public static void PopulateLists() { BeholsterShrineController[] array = Object.FindObjectsOfType(); Object.FindObjectsOfType(); PathingTrapController[] array2 = Object.FindObjectsOfType(); ConveyorBelt[] array3 = Object.FindObjectsOfType(); ExpandAlarmMushroomPlacable[] array4 = Object.FindObjectsOfType(); if (array != null) { BeholsterShrineController[] array5 = array; foreach (BeholsterShrineController item in array5) { AllBeholsterShrines.Add(item); } } if (array2 != null) { PathingTrapController[] array6 = array2; foreach (PathingTrapController item2 in array6) { AllMovingTraps.Add(item2); } } if (array3 != null) { ConveyorBelt[] array7 = array3; foreach (ConveyorBelt item3 in array7) { AllConveyorBelts.Add(item3); } } if (array4 != null) { ExpandAlarmMushroomPlacable[] array8 = array4; foreach (ExpandAlarmMushroomPlacable item4 in array8) { AllAlarmMushrooms.Add(item4); } } } public static void ClearStaticPerLevelData() { //IL_0025: 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) //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) GameManager instance = GameManager.Instance; if (instance == null || instance.Dungeon?.tileIndices.tilesetId != (ValidTilesets?)32) { AllSecretDoors.Clear(); } CurrentGungeoneerMimic = null; AllGlitchTiles.Clear(); AllFriendlyHammers.Clear(); AllCorruptionSoundObjects.Clear(); AllBeholsterShrines.Clear(); AllMovingTraps.Clear(); AllConveyorBelts.Clear(); AllWesternBros.Clear(); AllGrasses.Clear(); AllAlarmMushrooms.Clear(); } public static void ForceClearAllStaticMemory() { CurrentGungeoneerMimic = null; AllSecretDoors.Clear(); AllGlitchTiles.Clear(); AllFriendlyHammers.Clear(); AllCorruptionSoundObjects.Clear(); AllBeholsterShrines.Clear(); AllMovingTraps.Clear(); AllConveyorBelts.Clear(); AllWesternBros.Clear(); AllGrasses.Clear(); AllAlarmMushrooms.Clear(); } } public class ExpandSynergies { public static void Init() { //IL_0007: 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_0017: 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_003f: 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_004d: 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_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0089: 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_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Expected O, but got Unknown //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) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0126: 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_0132: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Expected O, but got Unknown //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0184: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_01a8: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: 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_01da: Unknown result type (might be due to invalid IL or missing references) //IL_01eb: Expected O, but got Unknown //IL_01ec: Unknown result type (might be due to invalid IL or missing references) //IL_01f1: Unknown result type (might be due to invalid IL or missing references) //IL_01fc: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_0216: Unknown result type (might be due to invalid IL or missing references) //IL_021d: Unknown result type (might be due to invalid IL or missing references) //IL_0224: Unknown result type (might be due to invalid IL or missing references) //IL_023a: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_0252: Unknown result type (might be due to invalid IL or missing references) //IL_0254: 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_0260: Unknown result type (might be due to invalid IL or missing references) //IL_026c: Unknown result type (might be due to invalid IL or missing references) //IL_027d: Expected O, but got Unknown //IL_027e: Unknown result type (might be due to invalid IL or missing references) //IL_0283: Unknown result type (might be due to invalid IL or missing references) //IL_028e: Unknown result type (might be due to invalid IL or missing references) //IL_02a1: 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_02af: Unknown result type (might be due to invalid IL or missing references) //IL_02b6: Unknown result type (might be due to invalid IL or missing references) //IL_02cc: Unknown result type (might be due to invalid IL or missing references) //IL_02d8: Unknown result type (might be due to invalid IL or missing references) //IL_02e4: Unknown result type (might be due to invalid IL or missing references) //IL_02e6: Unknown result type (might be due to invalid IL or missing references) //IL_02eb: Unknown result type (might be due to invalid IL or missing references) //IL_02f2: Unknown result type (might be due to invalid IL or missing references) //IL_02fe: Unknown result type (might be due to invalid IL or missing references) //IL_030f: Expected O, but got Unknown //IL_0310: 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_0320: Unknown result type (might be due to invalid IL or missing references) //IL_0336: Unknown result type (might be due to invalid IL or missing references) //IL_033d: Unknown result type (might be due to invalid IL or missing references) //IL_0344: Unknown result type (might be due to invalid IL or missing references) //IL_034b: Unknown result type (might be due to invalid IL or missing references) //IL_0361: Unknown result type (might be due to invalid IL or missing references) //IL_036d: Unknown result type (might be due to invalid IL or missing references) //IL_0379: Unknown result type (might be due to invalid IL or missing references) //IL_037b: Unknown result type (might be due to invalid IL or missing references) //IL_0380: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_0393: Unknown result type (might be due to invalid IL or missing references) //IL_03a4: Expected O, but got Unknown //IL_03a5: Unknown result type (might be due to invalid IL or missing references) //IL_03aa: Unknown result type (might be due to invalid IL or missing references) //IL_03b5: Unknown result type (might be due to invalid IL or missing references) //IL_03d6: Unknown result type (might be due to invalid IL or missing references) //IL_03dd: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_03eb: Unknown result type (might be due to invalid IL or missing references) //IL_03f7: Unknown result type (might be due to invalid IL or missing references) //IL_0403: Unknown result type (might be due to invalid IL or missing references) //IL_040f: Unknown result type (might be due to invalid IL or missing references) //IL_0411: Unknown result type (might be due to invalid IL or missing references) //IL_0416: Unknown result type (might be due to invalid IL or missing references) //IL_041d: Unknown result type (might be due to invalid IL or missing references) //IL_0429: Unknown result type (might be due to invalid IL or missing references) //IL_043a: Expected O, but got Unknown //IL_043b: Unknown result type (might be due to invalid IL or missing references) //IL_0440: Unknown result type (might be due to invalid IL or missing references) //IL_044b: Unknown result type (might be due to invalid IL or missing references) //IL_046c: Unknown result type (might be due to invalid IL or missing references) //IL_0473: Unknown result type (might be due to invalid IL or missing references) //IL_047a: Unknown result type (might be due to invalid IL or missing references) //IL_0481: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_0499: Unknown result type (might be due to invalid IL or missing references) //IL_04a5: Unknown result type (might be due to invalid IL or missing references) //IL_04a7: Unknown result type (might be due to invalid IL or missing references) //IL_04ac: Unknown result type (might be due to invalid IL or missing references) //IL_04b3: Unknown result type (might be due to invalid IL or missing references) //IL_04bf: Unknown result type (might be due to invalid IL or missing references) //IL_04d0: Expected O, but got Unknown //IL_04d1: Unknown result type (might be due to invalid IL or missing references) //IL_04d6: Unknown result type (might be due to invalid IL or missing references) //IL_04e1: Unknown result type (might be due to invalid IL or missing references) //IL_0502: Unknown result type (might be due to invalid IL or missing references) //IL_0509: Unknown result type (might be due to invalid IL or missing references) //IL_0510: Unknown result type (might be due to invalid IL or missing references) //IL_0517: Unknown result type (might be due to invalid IL or missing references) //IL_0523: Unknown result type (might be due to invalid IL or missing references) //IL_052f: Unknown result type (might be due to invalid IL or missing references) //IL_053b: Unknown result type (might be due to invalid IL or missing references) //IL_053d: Unknown result type (might be due to invalid IL or missing references) //IL_0542: Unknown result type (might be due to invalid IL or missing references) //IL_0549: Unknown result type (might be due to invalid IL or missing references) //IL_0555: Unknown result type (might be due to invalid IL or missing references) //IL_0566: Expected O, but got Unknown //IL_0567: Unknown result type (might be due to invalid IL or missing references) //IL_056c: Unknown result type (might be due to invalid IL or missing references) //IL_0577: Unknown result type (might be due to invalid IL or missing references) //IL_058d: Unknown result type (might be due to invalid IL or missing references) //IL_0594: Unknown result type (might be due to invalid IL or missing references) //IL_059b: Unknown result type (might be due to invalid IL or missing references) //IL_05a2: Unknown result type (might be due to invalid IL or missing references) //IL_05ae: Unknown result type (might be due to invalid IL or missing references) //IL_05ba: Unknown result type (might be due to invalid IL or missing references) //IL_05e6: Unknown result type (might be due to invalid IL or missing references) //IL_05e8: Unknown result type (might be due to invalid IL or missing references) //IL_05ed: Unknown result type (might be due to invalid IL or missing references) //IL_05f4: Unknown result type (might be due to invalid IL or missing references) //IL_0600: Unknown result type (might be due to invalid IL or missing references) //IL_0611: Expected O, but got Unknown //IL_0612: Unknown result type (might be due to invalid IL or missing references) //IL_0617: Unknown result type (might be due to invalid IL or missing references) //IL_0622: Unknown result type (might be due to invalid IL or missing references) //IL_0643: Unknown result type (might be due to invalid IL or missing references) //IL_064a: Unknown result type (might be due to invalid IL or missing references) //IL_0651: Unknown result type (might be due to invalid IL or missing references) //IL_0658: Unknown result type (might be due to invalid IL or missing references) //IL_0664: Unknown result type (might be due to invalid IL or missing references) //IL_0670: Unknown result type (might be due to invalid IL or missing references) //IL_067c: Unknown result type (might be due to invalid IL or missing references) //IL_067e: Unknown result type (might be due to invalid IL or missing references) //IL_0683: Unknown result type (might be due to invalid IL or missing references) //IL_068a: Unknown result type (might be due to invalid IL or missing references) //IL_0696: Unknown result type (might be due to invalid IL or missing references) //IL_06a7: Expected O, but got Unknown List list = new List(); list.Add(new AdvancedSynergyEntry { NameKey = "Master of Unlocking", MandatoryItemIDs = new List { TheLeadKey.TheLeadKeyPickupID, 356 }, IgnoreLichEyeBullets = false, SuppressVFX = false, RequiresAtLeastOneGunAndOneItem = false, MandatoryGunIDs = new List(0), OptionalGunIDs = new List(0), OptionalItemIDs = new List(0) { 140, 356 }, ActivationStatus = (SynergyActivation)0, ActiveWhenGunUnequipped = true, statModifiers = new List(0), bonusSynergies = new List { (CustomSynergyType)31 } }); list.Add(new AdvancedSynergyEntry { NameKey = "Master of Unlocking", MandatoryItemIDs = new List { 140, 356 }, IgnoreLichEyeBullets = false, SuppressVFX = false, RequiresAtLeastOneGunAndOneItem = false, MandatoryGunIDs = new List(0), OptionalGunIDs = new List(0), OptionalItemIDs = new List(0), ActivationStatus = (SynergyActivation)0, ActiveWhenGunUnequipped = true, statModifiers = new List(0), bonusSynergies = new List { (CustomSynergyType)31 } }); list.Add(new AdvancedSynergyEntry { NameKey = "Master Chambers", MandatoryItemIDs = new List { CustomMasterRounds.GtlichFloorMasterRoundID }, IgnoreLichEyeBullets = true, SuppressVFX = false, RequiresAtLeastOneGunAndOneItem = false, MandatoryGunIDs = new List { 647 }, OptionalGunIDs = new List(0), OptionalItemIDs = new List(0), ActivationStatus = (SynergyActivation)0, ActiveWhenGunUnequipped = true, statModifiers = new List(0), bonusSynergies = new List(0) }); list.Add(new AdvancedSynergyEntry { NameKey = "It fires Grenade Kin now...", MandatoryItemIDs = new List { 39 }, IgnoreLichEyeBullets = false, SuppressVFX = false, RequiresAtLeastOneGunAndOneItem = false, MandatoryGunIDs = new List { BulletKinGun.BulletKinGunID }, OptionalGunIDs = new List(0), OptionalItemIDs = new List(0), ActivationStatus = (SynergyActivation)0, ActiveWhenGunUnequipped = true, statModifiers = new List(0), bonusSynergies = new List(0) }); list.Add(new AdvancedSynergyEntry { NameKey = "It fires Shotgun Kin now...", MandatoryItemIDs = new List { 51 }, IgnoreLichEyeBullets = false, SuppressVFX = false, RequiresAtLeastOneGunAndOneItem = false, MandatoryGunIDs = new List { BulletKinGun.BulletKinGunID }, OptionalGunIDs = new List(0), OptionalItemIDs = new List(0), ActivationStatus = (SynergyActivation)0, ActiveWhenGunUnequipped = true, statModifiers = new List(0), bonusSynergies = new List(0) }); list.Add(new AdvancedSynergyEntry { NameKey = "It fires jammed things now...", MandatoryItemIDs = new List { 407 }, IgnoreLichEyeBullets = false, SuppressVFX = false, RequiresAtLeastOneGunAndOneItem = false, MandatoryGunIDs = new List { BulletKinGun.BulletKinGunID }, OptionalGunIDs = new List(0), OptionalItemIDs = new List(0), ActivationStatus = (SynergyActivation)0, ActiveWhenGunUnequipped = true, statModifiers = new List(0), bonusSynergies = new List(0) }); list.Add(new AdvancedSynergyEntry { NameKey = "It fires chickens now...", MandatoryItemIDs = new List { 572, BulletKinGun.BulletKinGunID }, IgnoreLichEyeBullets = false, SuppressVFX = false, RequiresAtLeastOneGunAndOneItem = false, MandatoryGunIDs = new List(0), OptionalGunIDs = new List(0), OptionalItemIDs = new List(0), ActivationStatus = (SynergyActivation)0, ActiveWhenGunUnequipped = true, statModifiers = new List(0), bonusSynergies = new List(0) }); list.Add(new AdvancedSynergyEntry { NameKey = "Twisted Bricks...", MandatoryItemIDs = new List { 293, CursedBrick.CursedBrickID }, IgnoreLichEyeBullets = false, SuppressVFX = false, RequiresAtLeastOneGunAndOneItem = false, MandatoryGunIDs = new List(0), OptionalGunIDs = new List(0), OptionalItemIDs = new List(0), ActivationStatus = (SynergyActivation)0, ActiveWhenGunUnequipped = true, statModifiers = new List(0), bonusSynergies = new List(0) }); list.Add(new AdvancedSynergyEntry { NameKey = "Corrupted Bricks...", MandatoryItemIDs = new List { CorruptedJunk.CorruptedJunkID, CursedBrick.CursedBrickID }, IgnoreLichEyeBullets = false, SuppressVFX = false, RequiresAtLeastOneGunAndOneItem = false, MandatoryGunIDs = new List(0), OptionalGunIDs = new List(0), OptionalItemIDs = new List(0), ActivationStatus = (SynergyActivation)0, ActiveWhenGunUnequipped = true, statModifiers = new List(0), bonusSynergies = new List(0) }); list.Add(new AdvancedSynergyEntry { NameKey = "Become Friend's Ship...", MandatoryItemIDs = new List { PortableShip.PortableShipID }, IgnoreLichEyeBullets = false, SuppressVFX = false, RequiresAtLeastOneGunAndOneItem = false, MandatoryGunIDs = new List(0), OptionalGunIDs = new List(0), OptionalItemIDs = new List { BabySitter.BabySitterID, 326, 491 }, ActivationStatus = (SynergyActivation)0, ActiveWhenGunUnequipped = true, statModifiers = new List(0), bonusSynergies = new List(0) }); list.Add(new AdvancedSynergyEntry { NameKey = "Clownin Around...", MandatoryItemIDs = new List { ClownBullets.ClownBulletsID, ClownFriend.ClownFriendID }, IgnoreLichEyeBullets = false, SuppressVFX = false, RequiresAtLeastOneGunAndOneItem = false, MandatoryGunIDs = new List(0), OptionalGunIDs = new List(0), OptionalItemIDs = new List(0), ActivationStatus = (SynergyActivation)0, ActiveWhenGunUnequipped = true, statModifiers = new List(0), bonusSynergies = new List(0) }); foreach (AdvancedSynergyEntry item2 in list) { if (!string.IsNullOrEmpty(item2.NameKey)) { string text = "#EXSYNERGY_" + item2.NameKey.Replace(" ", "_").Replace("(", "_").Replace(")", string.Empty) .ToLower(); string nameKey = item2.NameKey; item2.NameKey = text; ExpandTheGungeon.Strings.Synergy.Set(text, nameKey); } } AdvancedSynergyEntry[] synergies = GameManager.Instance.SynergyManager.synergies; foreach (AdvancedSynergyEntry item in synergies) { list.Add(item); } GameManager.Instance.SynergyManager.synergies = list.ToArray(); } } public class ExpandPaydayDrillItemFixes { private IEnumerator HandleCombatWavesHook(Func orig, PaydayDrillItem self, Dungeon d, RoomHandler newRoom, Chest sourceChest) { DrillWaveDefinition[] array = self.D_Quality_Waves; ItemQuality qualityFromChest = GameManager.Instance.RewardManager.GetQualityFromChest(sourceChest); switch (qualityFromChest - 2) { case 0: array = self.C_Quality_Waves; break; case 1: array = self.B_Quality_Waves; break; case 2: array = self.A_Quality_Waves; break; case 3: array = self.S_Quality_Waves; break; } DrillWaveDefinition[] array2 = array; foreach (DrillWaveDefinition val in array2) { int num = Random.Range(val.MinEnemies, val.MaxEnemies + 1); for (int j = 0; j < num; j++) { string text = d.GetWeightedProceduralEnemy().enemyGuid; if (string.IsNullOrEmpty(text)) { text = BraveUtility.RandomElement(BraveUtility.Shuffle(new List { ExpandEnemyDatabase.BootlegBullatGUID, ExpandEnemyDatabase.BootlegBulletManGUID, ExpandEnemyDatabase.BootlegBulletManBandanaGUID, ExpandEnemyDatabase.BootlegShotgunManBlueGUID, ExpandEnemyDatabase.BootlegShotgunManRedGUID })); } AddSpecificEnemyToRoomProcedurallyFixed(newRoom, text, reinforcementSpawn: true); } yield return (object)new WaitForSeconds(3f); while (newRoom.GetActiveEnemiesCount((ActiveEnemyType)1) > 0) { yield return (object)new WaitForSeconds(1f); } if (newRoom.GetActiveEnemiesCount((ActiveEnemyType)0) <= 0) { continue; } List activeEnemies = newRoom.GetActiveEnemies((ActiveEnemyType)0); for (int k = 0; k < activeEnemies.Count; k++) { if (activeEnemies[k].IsNormalEnemy | (Object.op_Implicit((Object)(object)((Component)activeEnemies[k]).gameObject.GetComponent()) && !Object.op_Implicit((Object)(object)activeEnemies[k].CompanionOwner))) { activeEnemies[k].EraseFromExistence(false); } } } } protected IEnumerator ExpandHandleSeamlessTransitionToCombatRoomHook(Func orig, PaydayDrillItem self, RoomHandler sourceRoom, Chest sourceChest) { Dungeon dungeon = GameManager.Instance.Dungeon; if ((int)dungeon.tileIndices.tilesetId == 8192) { ((MonoBehaviour)GameManager.Instance).StartCoroutine(ExpandHandleTransitionToFallbackCombatRoom(self, sourceRoom, sourceChest)); yield break; } ((BraveBehaviour)sourceChest).majorBreakable.TemporarilyInvulnerable = true; sourceRoom.DeregisterInteractable((IPlayerInteractable)(object)sourceChest); int num = 13; RoomHandler newRoom = dungeon.RuntimeDuplicateChunk(sourceRoom.area.basePosition, sourceRoom.area.dimensions, num, sourceRoom, true); newRoom.CompletelyPreventLeaving = true; List movedObjects = new List(); string[] array = ReflectionHelpers.ReflectGetField(typeof(PaydayDrillItem), "c_rewardRoomObjects", self); for (int i = 0; i < array.Length; i++) { Transform val = sourceRoom.hierarchyParent.Find(array[i]); if (Object.op_Implicit((Object)(object)val)) { movedObjects.Add(val); ExpandMoveObjectBetweenRooms(val, sourceRoom, newRoom); } } ExpandMoveObjectBetweenRooms(((BraveBehaviour)sourceChest).transform, sourceRoom, newRoom); if (Object.op_Implicit((Object)(object)((BraveBehaviour)sourceChest).specRigidbody)) { PathBlocker.BlockRigidbody(((BraveBehaviour)sourceChest).specRigidbody, false); } Vector3 val2 = ReflectionHelpers.ReflectGetField(typeof(PaydayDrillItem), "m_baseChestOffset", self); Vector3 val3 = ReflectionHelpers.ReflectGetField(typeof(PaydayDrillItem), "m_largeChestOffset", self); Vector3 val4 = val2; if (((Object)sourceChest).name.Contains("_Red") || ((Object)sourceChest).name.Contains("_Black")) { val4 += val3; } GameObject spawnedVFX = SpawnManager.SpawnVFX(self.DrillVFXPrefab, ((BraveBehaviour)sourceChest).transform.position + val4, Quaternion.identity); tk2dBaseSprite spawnedSprite = spawnedVFX.GetComponent(); spawnedSprite.HeightOffGround = 1f; spawnedSprite.UpdateZDepth(); Vector2 oldPlayerPosition = Vector3Extensions.XY(((BraveBehaviour)GameManager.Instance.BestActivePlayer).transform.position); Vector2 val5 = oldPlayerPosition - ((IntVector2)(ref sourceRoom.area.basePosition)).ToVector2(); Vector2 val6 = ((IntVector2)(ref newRoom.area.basePosition)).ToVector2() + val5; Pixelator.Instance.FadeToColor(0.25f, Color.white, true, 0.125f); Pathfinder.Instance.InitializeRegion(dungeon.data, newRoom.area.basePosition, newRoom.area.dimensions); GameManager.Instance.BestActivePlayer.WarpToPoint(val6, false, false); if ((int)GameManager.Instance.CurrentGameType == 1) { GameManager.Instance.GetOtherPlayer(GameManager.Instance.BestActivePlayer).ReuniteWithOtherPlayer(GameManager.Instance.BestActivePlayer, false); } yield return null; for (int j = 0; j < GameManager.Instance.AllPlayers.Length; j++) { GameManager.Instance.AllPlayers[j].WarpFollowersToPlayer(false); GameManager.Instance.AllPlayers[j].WarpCompanionsToPlayer(false); } yield return ((MonoBehaviour)dungeon).StartCoroutine(HandleCombatRoomExpansion(self, sourceRoom, newRoom, sourceChest)); self.DisappearDrillPoof.SpawnAtPosition(Vector2.op_Implicit(spawnedSprite.WorldBottomLeft + new Vector2(-0.0625f, 0.25f)), 0f, (Transform)null, (Vector2?)null, (Vector2?)null, (float?)3f, false, (SpawnMethod)null, (tk2dBaseSprite)null, false); Object.Destroy((Object)(object)spawnedVFX.gameObject); sourceChest.ForceUnlock(); AkSoundEngine.PostEvent("Stop_OBJ_paydaydrill_loop_01", ((Component)GameManager.Instance).gameObject); AkSoundEngine.PostEvent("Play_OBJ_item_spawn_01", ((Component)GameManager.Instance).gameObject); bool goodToGo = false; while (!goodToGo) { goodToGo = true; for (int k = 0; k < GameManager.Instance.AllPlayers.Length; k++) { if (Vector2.Distance(((BraveBehaviour)sourceChest).specRigidbody.UnitCenter, ((GameActor)GameManager.Instance.AllPlayers[k]).CenterPosition) > 3f) { goodToGo = false; } } yield return null; } GameManager.Instance.MainCameraController.SetManualControl(true, true); GameManager.Instance.MainCameraController.OverridePosition = Vector2.op_Implicit(((GameActor)GameManager.Instance.BestActivePlayer).CenterPosition); for (int l = 0; l < GameManager.Instance.AllPlayers.Length; l++) { GameManager.Instance.AllPlayers[l].SetInputOverride("shrinkage"); } yield return ((MonoBehaviour)dungeon).StartCoroutine(HandleCombatRoomShrinking(newRoom)); for (int m = 0; m < GameManager.Instance.AllPlayers.Length; m++) { GameManager.Instance.AllPlayers[m].ClearInputOverride("shrinkage"); } Pixelator.Instance.FadeToColor(0.25f, Color.white, true, 0.125f); AkSoundEngine.PostEvent("Play_OBJ_paydaydrill_end_01", ((Component)GameManager.Instance).gameObject); GameManager.Instance.MainCameraController.SetManualControl(false, false); GameManager.Instance.BestActivePlayer.WarpToPoint(oldPlayerPosition, false, false); if ((int)GameManager.Instance.CurrentGameType == 1) { GameManager.Instance.GetOtherPlayer(GameManager.Instance.BestActivePlayer).ReuniteWithOtherPlayer(GameManager.Instance.BestActivePlayer, false); } ExpandMoveObjectBetweenRooms(((BraveBehaviour)sourceChest).transform, newRoom, sourceRoom); for (int n = 0; n < movedObjects.Count; n++) { ExpandMoveObjectBetweenRooms(movedObjects[n], newRoom, sourceRoom); } sourceRoom.RegisterInteractable((IPlayerInteractable)(object)sourceChest); typeof(PaydayDrillItem).GetField("m_inEffect", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(self, false); } protected IEnumerator ExpandHandleTransitionToFallbackCombatRoom(PaydayDrillItem drillItem, RoomHandler sourceRoom, Chest sourceChest) { Dungeon d = GameManager.Instance.Dungeon; ((BraveBehaviour)sourceChest).majorBreakable.TemporarilyInvulnerable = true; sourceRoom.DeregisterInteractable((IPlayerInteractable)(object)sourceChest); RoomHandler newRoom = d.AddRuntimeRoom(drillItem.GenericFallbackCombatRoom, (Action)null, (LightGenerationStyle)1); newRoom.CompletelyPreventLeaving = true; Vector3 oldChestPosition = ((BraveBehaviour)sourceChest).transform.position; ((BraveBehaviour)sourceChest).transform.position = ((IntVector2)(ref newRoom.Epicenter)).ToVector3(); if ((Object)(object)((BraveBehaviour)sourceChest).transform.parent == (Object)(object)sourceRoom.hierarchyParent) { ((BraveBehaviour)sourceChest).transform.parent = newRoom.hierarchyParent; } SpeculativeRigidbody component = ((Component)sourceChest).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.Reinitialize(); PathBlocker.BlockRigidbody(component, false); } tk2dBaseSprite component2 = ((Component)sourceChest).GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.UpdateZDepth(); } Vector3 val = ReflectionHelpers.ReflectGetField(typeof(PaydayDrillItem), "m_baseChestOffset", drillItem); Vector3 val2 = ReflectionHelpers.ReflectGetField(typeof(PaydayDrillItem), "m_largeChestOffset", drillItem); Vector3 val3 = val; if (((Object)sourceChest).name.Contains("_Red") || ((Object)sourceChest).name.Contains("_Black")) { val3 += val2; } GameObject spawnedVFX = SpawnManager.SpawnVFX(drillItem.DrillVFXPrefab, ((BraveBehaviour)sourceChest).transform.position + val3, Quaternion.identity); tk2dBaseSprite spawnedSprite = spawnedVFX.GetComponent(); spawnedSprite.HeightOffGround = 1f; spawnedSprite.UpdateZDepth(); Vector2 oldPlayerPosition = Vector3Extensions.XY(((BraveBehaviour)GameManager.Instance.BestActivePlayer).transform.position); Vector2 val4 = ((IntVector2)(ref newRoom.Epicenter)).ToVector2() + new Vector2(0f, -3f); Pixelator.Instance.FadeToColor(0.25f, Color.white, true, 0.125f); Pathfinder.Instance.InitializeRegion(d.data, newRoom.area.basePosition, newRoom.area.dimensions); GameManager.Instance.BestActivePlayer.WarpToPoint(val4, false, false); if ((int)GameManager.Instance.CurrentGameType == 1) { GameManager.Instance.GetOtherPlayer(GameManager.Instance.BestActivePlayer).ReuniteWithOtherPlayer(GameManager.Instance.BestActivePlayer, false); } yield return null; for (int i = 0; i < GameManager.Instance.AllPlayers.Length; i++) { GameManager.Instance.AllPlayers[i].WarpFollowersToPlayer(false); GameManager.Instance.AllPlayers[i].WarpCompanionsToPlayer(false); } yield return (object)new WaitForSeconds(drillItem.DelayPostExpansionPreEnemies); yield return ((MonoBehaviour)GameManager.Instance).StartCoroutine(ExpandHandleCombatWaves(drillItem, d, newRoom, sourceChest)); drillItem.DisappearDrillPoof.SpawnAtPosition(Vector2.op_Implicit(spawnedSprite.WorldBottomLeft + new Vector2(-0.0625f, 0.25f)), 0f, (Transform)null, (Vector2?)null, (Vector2?)null, (float?)3f, false, (SpawnMethod)null, (tk2dBaseSprite)null, false); Object.Destroy((Object)(object)spawnedVFX.gameObject); AkSoundEngine.PostEvent("Stop_OBJ_paydaydrill_loop_01", ((Component)GameManager.Instance).gameObject); AkSoundEngine.PostEvent("Play_OBJ_item_spawn_01", ((Component)GameManager.Instance).gameObject); sourceChest.ForceUnlock(); bool goodToGo = false; while (!goodToGo) { goodToGo = true; for (int j = 0; j < GameManager.Instance.AllPlayers.Length; j++) { if (Vector2.Distance(((BraveBehaviour)sourceChest).specRigidbody.UnitCenter, ((GameActor)GameManager.Instance.AllPlayers[j]).CenterPosition) > 3f) { goodToGo = false; } } yield return null; } Pixelator.Instance.FadeToColor(0.25f, Color.white, true, 0.125f); GameManager.Instance.BestActivePlayer.WarpToPoint(oldPlayerPosition, false, false); if ((int)GameManager.Instance.CurrentGameType == 1) { GameManager.Instance.GetOtherPlayer(GameManager.Instance.BestActivePlayer).ReuniteWithOtherPlayer(GameManager.Instance.BestActivePlayer, false); } ((BraveBehaviour)sourceChest).transform.position = oldChestPosition; if ((Object)(object)((BraveBehaviour)sourceChest).transform.parent == (Object)(object)newRoom.hierarchyParent) { ((BraveBehaviour)sourceChest).transform.parent = sourceRoom.hierarchyParent; } SpeculativeRigidbody component3 = ((Component)sourceChest).GetComponent(); if (Object.op_Implicit((Object)(object)component3)) { component3.Reinitialize(); } tk2dBaseSprite component4 = ((Component)sourceChest).GetComponent(); if (Object.op_Implicit((Object)(object)component4)) { component4.UpdateZDepth(); } sourceRoom.RegisterInteractable((IPlayerInteractable)(object)sourceChest); typeof(PaydayDrillItem).GetField("m_inEffect", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(drillItem, false); } protected IEnumerator ExpandHandleCombatWaves(PaydayDrillItem drillItem, Dungeon d, RoomHandler newRoom, Chest sourceChest) { DrillWaveDefinition[] array = drillItem.D_Quality_Waves; ItemQuality qualityFromChest = GameManager.Instance.RewardManager.GetQualityFromChest(sourceChest); switch (qualityFromChest - 2) { case 0: array = drillItem.C_Quality_Waves; break; case 1: array = drillItem.B_Quality_Waves; break; case 2: array = drillItem.A_Quality_Waves; break; case 3: array = drillItem.S_Quality_Waves; break; } DrillWaveDefinition[] array2 = array; foreach (DrillWaveDefinition val in array2) { int num = Random.Range(val.MinEnemies, val.MaxEnemies + 1); for (int j = 0; j < num; j++) { string text = d.GetWeightedProceduralEnemy().enemyGuid; if (string.IsNullOrEmpty(text)) { text = BraveUtility.RandomElement(BraveUtility.Shuffle(new List { ExpandEnemyDatabase.BootlegBullatGUID, ExpandEnemyDatabase.BootlegBulletManGUID, ExpandEnemyDatabase.BootlegBulletManBandanaGUID, ExpandEnemyDatabase.BootlegShotgunManBlueGUID, ExpandEnemyDatabase.BootlegShotgunManRedGUID })); } if (!Object.op_Implicit((Object)(object)((Component)EnemyDatabase.GetOrLoadByGuid(text)).GetComponent())) { AddSpecificEnemyToRoomProcedurallyFixed(newRoom, text, reinforcementSpawn: true); } } yield return (object)new WaitForSeconds(3f); while (newRoom.GetActiveEnemiesCount((ActiveEnemyType)1) > 0) { yield return (object)new WaitForSeconds(1f); } if (newRoom.GetActiveEnemiesCount((ActiveEnemyType)0) <= 0) { continue; } List activeEnemies = newRoom.GetActiveEnemies((ActiveEnemyType)0); for (int k = 0; k < activeEnemies.Count; k++) { if (activeEnemies[k].IsNormalEnemy) { activeEnemies[k].EraseFromExistence(false); } } } } public void AddSpecificEnemyToRoomProcedurallyFixed(RoomHandler room, string enemyGuid, bool reinforcementSpawn = false, Vector2? goalPosition = null) { //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Expected O, but got Unknown //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) AIActor orLoadByGuid = EnemyDatabase.GetOrLoadByGuid(enemyGuid); if (!Object.op_Implicit((Object)(object)orLoadByGuid)) { orLoadByGuid = EnemyDatabase.GetOrLoadByGuid(BraveUtility.RandomElement(BraveUtility.Shuffle(new List { ExpandEnemyDatabase.BootlegBullatGUID, ExpandEnemyDatabase.BootlegBulletManGUID, ExpandEnemyDatabase.BootlegBulletManBandanaGUID, ExpandEnemyDatabase.BootlegShotgunManBlueGUID, ExpandEnemyDatabase.BootlegShotgunManRedGUID }))); } IntVector2 clearance = Vector2Extensions.ToIntVector2(((BraveBehaviour)orLoadByGuid).specRigidbody.UnitDimensions, (VectorConversions)1); CellValidator val = (CellValidator)delegate(IntVector2 c) { //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < clearance.x; i++) { int num = c.x + i; for (int j = 0; j < clearance.y; j++) { int num2 = c.y + j; if (GameManager.Instance.Dungeon.data.isTopWall(num, num2)) { return false; } } } return true; }; IntVector2? val2 = ((!goalPosition.HasValue) ? room.GetRandomAvailableCell((IntVector2?)clearance, (CellTypes?)(CellTypes)2, false, val) : room.GetNearestAvailableCell(goalPosition.Value, (IntVector2?)clearance, (CellTypes?)(CellTypes)2, false, val)); if (val2.HasValue) { AIActor val3 = AIActor.Spawn(orLoadByGuid, val2.Value, room, true, (AwakenAnimationType)2, false); if (Object.op_Implicit((Object)(object)val3) && reinforcementSpawn) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)val3).specRigidbody)) { ((BraveBehaviour)val3).specRigidbody.CollideWithOthers = false; } val3.HandleReinforcementFallIntoRoom(0f); } } else { Debug.LogError((object)"failed placement"); } } private void ExpandMoveObjectBetweenRooms(Transform foundObject, RoomHandler fromRoom, RoomHandler toRoom) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: 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_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: 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_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_003e: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) Vector2 val = Vector3Extensions.XY(foundObject.position) - ((IntVector2)(ref fromRoom.area.basePosition)).ToVector2(); Vector2 val2 = ((IntVector2)(ref toRoom.area.basePosition)).ToVector2() + val; ((Component)foundObject).transform.position = Vector2.op_Implicit(val2); if ((Object)(object)foundObject.parent == (Object)(object)fromRoom.hierarchyParent) { foundObject.parent = toRoom.hierarchyParent; } SpeculativeRigidbody component = ((Component)foundObject).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.Reinitialize(); } tk2dBaseSprite component2 = ((Component)foundObject).GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.UpdateZDepth(); } } private IEnumerator HandleCombatRoomShrinking(RoomHandler targetRoom) { float elapsed = 5.5f; int numExpansionsDone = 6; while (elapsed > 0f) { elapsed -= BraveTime.DeltaTime * 9f; while (elapsed < (float)numExpansionsDone && numExpansionsDone > 0) { numExpansionsDone--; ShrinkRoom(targetRoom); } yield return null; } } private IEnumerator HandleCombatRoomExpansion(PaydayDrillItem drillItem, RoomHandler sourceRoom, RoomHandler targetRoom, Chest sourceChest) { yield return (object)new WaitForSeconds(drillItem.DelayPreExpansion); float duration = 5.5f; float elapsed = 0f; int numExpansionsDone = 0; while (elapsed < duration) { elapsed += BraveTime.DeltaTime * 9f; while (elapsed > (float)numExpansionsDone) { numExpansionsDone++; ExpandRoom(drillItem, targetRoom); AkSoundEngine.PostEvent("Play_OBJ_rock_break_01", ((Component)GameManager.Instance).gameObject); } yield return null; } Dungeon d = GameManager.Instance.Dungeon; Pathfinder.Instance.InitializeRegion(d.data, targetRoom.area.basePosition + new IntVector2(-5, -5), targetRoom.area.dimensions + new IntVector2(10, 10)); yield return (object)new WaitForSeconds(drillItem.DelayPostExpansionPreEnemies); yield return ExpandHandleCombatWaves(drillItem, d, targetRoom, sourceChest); } private void ShrinkRoom(RoomHandler r) { //IL_003c: 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_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0150: 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_019a: 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_007d: Invalid comparison between Unknown and I4 //IL_0092: Unknown result type (might be due to invalid IL or missing references) Dungeon dungeon = GameManager.Instance.Dungeon; AkSoundEngine.PostEvent("Play_OBJ_stone_crumble_01", ((Component)GameManager.Instance).gameObject); tk2dTileMap val = null; HashSet hashSet = new HashSet(); for (int i = -5; i < r.area.dimensions.x + 5; i++) { for (int j = -5; j < r.area.dimensions.y + 5; j++) { IntVector2 val2 = r.area.basePosition + new IntVector2(i, j); CellData val3 = ((!dungeon.data.CheckInBoundsAndValid(val2)) ? null : dungeon.data[val2]); if (val3 != null && (int)val3.type != 1 && val3.HasTypeNeighbor(dungeon.data, (CellType)1)) { hashSet.Add(val3.position); } } } foreach (IntVector2 item in hashSet) { CellData val4 = dungeon.data[item]; val4.breakable = true; val4.occlusionData.overrideOcclusion = true; val4.occlusionData.cellOcclusionDirty = true; val = dungeon.ConstructWallAtPosition(item.x, item.y, true); r.Cells.Remove(val4.position); r.CellsWithoutExits.Remove(val4.position); r.RawCells.Remove(val4.position); } Pixelator.Instance.MarkOcclusionDirty(); Pixelator.Instance.ProcessOcclusionChange(r.Epicenter, 1f, r, false); if (Object.op_Implicit((Object)(object)val)) { dungeon.RebuildTilemap(val); } } private void ExpandRoom(PaydayDrillItem drillItem, RoomHandler r) { //IL_003c: 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_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: 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_007d: Invalid comparison between Unknown and I4 //IL_0092: Unknown result type (might be due to invalid IL or missing references) Dungeon dungeon = GameManager.Instance.Dungeon; AkSoundEngine.PostEvent("Play_OBJ_stone_crumble_01", ((Component)GameManager.Instance).gameObject); tk2dTileMap val = null; HashSet hashSet = new HashSet(); for (int i = -5; i < r.area.dimensions.x + 5; i++) { for (int j = -5; j < r.area.dimensions.y + 5; j++) { IntVector2 val2 = r.area.basePosition + new IntVector2(i, j); CellData val3 = ((!dungeon.data.CheckInBoundsAndValid(val2)) ? null : dungeon.data[val2]); if (val3 != null && (int)val3.type == 1 && val3.HasTypeNeighbor(dungeon.data, (CellType)2)) { hashSet.Add(val3.position); } } } foreach (IntVector2 item in hashSet) { IntVector2 current = item; CellData val4 = dungeon.data[current]; val4.breakable = true; val4.occlusionData.overrideOcclusion = true; val4.occlusionData.cellOcclusionDirty = true; val = dungeon.DestroyWallAtPosition(current.x, current.y, true); if (Random.value < 0.25f) { drillItem.VFXDustPoof.SpawnAtPosition(((IntVector2)(ref current)).ToCenterVector3((float)current.y), 0f, (Transform)null, (Vector2?)null, (Vector2?)null, (float?)null, false, (SpawnMethod)null, (tk2dBaseSprite)null, false); } r.Cells.Add(val4.position); r.CellsWithoutExits.Add(val4.position); r.RawCells.Add(val4.position); } Pixelator.Instance.MarkOcclusionDirty(); Pixelator.Instance.ProcessOcclusionChange(r.Epicenter, 1f, r, false); if (Object.op_Implicit((Object)(object)val)) { dungeon.RebuildTilemap(val); } } } public class ExpandPlaceCorruptTiles : MonoBehaviour { private static ExpandPlaceCorruptTiles m_Instance; public static ExpandPlaceCorruptTiles Instance { get { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)m_Instance)) { m_Instance = new GameObject("Expand Corrupt Tile Placer", new Type[1] { typeof(ExpandPlaceCorruptTiles) }) { layer = 22 }.GetComponent(); } return m_Instance; } } public static void DestroyInstance() { Object.Destroy((Object)(object)((Component)m_Instance).gameObject); m_Instance = null; } public void PlaceCorruptTiles(Dungeon dungeon, RoomHandler roomHandler = null, GameObject parentObject = null, bool corruptWallsOnly = false, bool isLeadKeyRoom = false, bool isCorruptedJunkRoom = false) { //IL_01eb: Unknown result type (might be due to invalid IL or missing references) //IL_01f0: Unknown result type (might be due to invalid IL or missing references) //IL_01fa: Expected O, but got Unknown //IL_0250: Unknown result type (might be due to invalid IL or missing references) //IL_0265: 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) //IL_02bb: Invalid comparison between Unknown and I4 //IL_02dd: Unknown result type (might be due to invalid IL or missing references) //IL_02e3: Invalid comparison between Unknown and I4 //IL_0305: Unknown result type (might be due to invalid IL or missing references) //IL_030c: Invalid comparison between Unknown and I4 //IL_032e: Unknown result type (might be due to invalid IL or missing references) //IL_0335: Invalid comparison between Unknown and I4 //IL_0357: Unknown result type (might be due to invalid IL or missing references) //IL_035e: Invalid comparison between Unknown and I4 //IL_0380: Unknown result type (might be due to invalid IL or missing references) //IL_038a: Invalid comparison between Unknown and I4 //IL_03ac: Unknown result type (might be due to invalid IL or missing references) //IL_03b2: Invalid comparison between Unknown and I4 //IL_03d4: Unknown result type (might be due to invalid IL or missing references) //IL_03da: Invalid comparison between Unknown and I4 //IL_06f5: Unknown result type (might be due to invalid IL or missing references) //IL_06fa: Unknown result type (might be due to invalid IL or missing references) //IL_0703: Expected O, but got Unknown //IL_0711: Unknown result type (might be due to invalid IL or missing references) //IL_0716: Unknown result type (might be due to invalid IL or missing references) //IL_03fc: Unknown result type (might be due to invalid IL or missing references) //IL_0406: Invalid comparison between Unknown and I4 //IL_040e: Unknown result type (might be due to invalid IL or missing references) //IL_0418: Invalid comparison between Unknown and I4 //IL_043d: Unknown result type (might be due to invalid IL or missing references) //IL_0447: Invalid comparison between Unknown and I4 //IL_0843: Unknown result type (might be due to invalid IL or missing references) //IL_0888: Unknown result type (might be due to invalid IL or missing references) //IL_0918: Unknown result type (might be due to invalid IL or missing references) //IL_091d: Unknown result type (might be due to invalid IL or missing references) //IL_0921: Unknown result type (might be due to invalid IL or missing references) //IL_0981: Unknown result type (might be due to invalid IL or missing references) //IL_0986: Unknown result type (might be due to invalid IL or missing references) //IL_098b: Unknown result type (might be due to invalid IL or missing references) //IL_0c53: Unknown result type (might be due to invalid IL or missing references) //IL_0d37: Unknown result type (might be due to invalid IL or missing references) //IL_0d3d: Invalid comparison between Unknown and I4 //IL_0a41: Unknown result type (might be due to invalid IL or missing references) //IL_0a48: Unknown result type (might be due to invalid IL or missing references) //IL_0a5c: Unknown result type (might be due to invalid IL or missing references) //IL_0a63: Unknown result type (might be due to invalid IL or missing references) //IL_0d4c: Unknown result type (might be due to invalid IL or missing references) //IL_0d51: Unknown result type (might be due to invalid IL or missing references) //IL_0dac: Unknown result type (might be due to invalid IL or missing references) //IL_0db1: Unknown result type (might be due to invalid IL or missing references) //IL_0db6: Unknown result type (might be due to invalid IL or missing references) //IL_0bdb: Unknown result type (might be due to invalid IL or missing references) //IL_0b31: Unknown result type (might be due to invalid IL or missing references) //IL_0b6d: Unknown result type (might be due to invalid IL or missing references) //IL_0ebd: Unknown result type (might be due to invalid IL or missing references) //IL_0fe4: Unknown result type (might be due to invalid IL or missing references) //IL_0f3e: Unknown result type (might be due to invalid IL or missing references) //IL_0f82: Unknown result type (might be due to invalid IL or missing references) bool flag = false; if (roomHandler == null) { foreach (RoomHandler room in dungeon.data.rooms) { if (room.GetRoomName() != null && room.GetRoomName().ToLower().StartsWith("expand apache corrupted secret")) { flag = true; break; } } } if (roomHandler == null && dungeon.IsGlitchDungeon) { if (StaticReferenceManager.AllNpcs != null && StaticReferenceManager.AllNpcs.Count > 0) { foreach (TalkDoerLite allNpc in StaticReferenceManager.AllNpcs) { allNpc.SpeaksGleepGlorpenese = true; } } } else if (roomHandler != null && !isCorruptedJunkRoom && StaticReferenceManager.AllNpcs != null && StaticReferenceManager.AllNpcs.Count > 0) { foreach (TalkDoerLite allNpc2 in StaticReferenceManager.AllNpcs) { if (((DungeonPlaceableBehaviour)allNpc2).GetAbsoluteParentRoom() == roomHandler) { allNpc2.SpeaksGleepGlorpenese = true; if (((DungeonPlaceableBehaviour)allNpc2).GetAbsoluteParentRoom() != null && !string.IsNullOrEmpty(((DungeonPlaceableBehaviour)allNpc2).GetAbsoluteParentRoom().GetRoomName()) && ((DungeonPlaceableBehaviour)allNpc2).GetAbsoluteParentRoom().GetRoomName().ToLower() .StartsWith("expand apache corrupted secret")) { ExpandShaders.Instance.ApplyGlitchShader(((Component)allNpc2).GetComponent()); } } } } if (!dungeon.IsGlitchDungeon && roomHandler == null && !flag && (roomHandler == null || !isCorruptedJunkRoom)) { return; } if ((dungeon.IsGlitchDungeon || roomHandler != null) && !isCorruptedJunkRoom) { flag = false; } tk2dSpriteCollectionData dungeonCollection = dungeon.tileIndices.dungeonCollection; int num = 0; int num2 = 0; int num3 = 0; GameObject val = new GameObject("GlitchTile_" + Random.Range(1000000, 9999999)) { layer = 22 }; if ((Object)(object)parentObject != (Object)null) { val.transform.parent = parentObject.transform; } val.AddComponent(); tk2dSprite component = val.GetComponent(); ((tk2dBaseSprite)component).Collection = dungeonCollection; ((tk2dBaseSprite)component).SetSprite(((tk2dBaseSprite)component).Collection, 22); ((tk2dBaseSprite)component).ignoresTiltworldDepth = false; ((tk2dBaseSprite)component).depthUsesTrimmedBounds = false; ((tk2dBaseSprite)component).allowDefaultLayer = false; ((tk2dBaseSprite)component).OverrideMaterialMode = (SpriteMaterialOverrideMode)0; ((tk2dBaseSprite)component).independentOrientation = false; ((tk2dBaseSprite)component).hasOffScreenCachedUpdate = false; ((tk2dBaseSprite)component).CachedPerpState = (PerpendicularState)1; ((tk2dBaseSprite)component).SortingOrder = 2; ((tk2dBaseSprite)component).IsBraveOutlineSprite = false; ((tk2dBaseSprite)component).IsZDepthDirty = false; component.ApplyEmissivePropertyBlock = false; component.GenerateUV2 = false; component.LockUV2OnFrameOne = false; component.StaticPositions = false; List list = new List(); List list2 = new List(); List list3 = new List(); if ((int)dungeon.tileIndices.tilesetId == 2) { list = ExpandLists.CastleWallIDs; list2 = ExpandLists.CastleFloorIDs; list3 = ExpandLists.CastleMiscIDs; } else if ((int)dungeon.tileIndices.tilesetId == 1) { list = ExpandLists.GungeonWallIDs; list2 = ExpandLists.GungeonFloorIDs; list3 = ExpandLists.GungeonMiscIDs; } else if ((int)dungeon.tileIndices.tilesetId == 16) { list = ExpandLists.MinesWallIDs; list2 = ExpandLists.MinesFloorIDs; list3 = ExpandLists.MinesMiscIDs; } else if ((int)dungeon.tileIndices.tilesetId == 32) { list = ExpandLists.HollowsWallIDs; list2 = ExpandLists.HollowsFloorIDs; list3 = ExpandLists.HollowsMiscIDs; } else if ((int)dungeon.tileIndices.tilesetId == 64) { list = ExpandLists.ForgeWallIDs; list2 = ExpandLists.ForgeFloorIDs; list3 = ExpandLists.ForgeMiscIDs; } else if ((int)dungeon.tileIndices.tilesetId == 128) { list = ExpandLists.BulletHell_WallIDs; list2 = ExpandLists.BulletHell_FloorIDs; list3 = ExpandLists.BulletHell_MiscIDs; } else if ((int)dungeon.tileIndices.tilesetId == 4) { list = ExpandLists.SewerWallIDs; list2 = ExpandLists.SewerFloorIDs; list3 = ExpandLists.SewerMiscIDs; } else if ((int)dungeon.tileIndices.tilesetId == 8) { list = ExpandLists.AbbeyWallIDs; list2 = ExpandLists.AbbeyFloorIDs; list3 = ExpandLists.AbbeyMiscIDs; } else if (((int)dungeon.tileIndices.tilesetId == 32768) | ((int)dungeon.tileIndices.tilesetId == 8192)) { list = ExpandLists.RatDenWallIDs; list2 = ExpandLists.RatDenFloorIDs; list3 = ExpandLists.RatDenMiscIDs; } else if ((int)dungeon.tileIndices.tilesetId == 2048) { foreach (int nakatomi_OfficeWallID in ExpandLists.Nakatomi_OfficeWallIDs) { list.Add(nakatomi_OfficeWallID); } foreach (int nakatomi_OfficeFloorID in ExpandLists.Nakatomi_OfficeFloorIDs) { list2.Add(nakatomi_OfficeFloorID); } foreach (int nakatomi_OfficeMiscID in ExpandLists.Nakatomi_OfficeMiscIDs) { list3.Add(nakatomi_OfficeMiscID); } foreach (int nakatomi_FutureWallID in ExpandLists.Nakatomi_FutureWallIDs) { list.Add(nakatomi_FutureWallID + 704); } foreach (int nakatomi_FutureFloorID in ExpandLists.Nakatomi_FutureFloorIDs) { list2.Add(nakatomi_FutureFloorID + 704); } foreach (int nakatomi_FutureMiscID in ExpandLists.Nakatomi_FutureMiscIDs) { list3.Add(nakatomi_FutureMiscID + 704); } } else { dungeonCollection = DungeonDatabase.GetOrLoadByName("Base_Gungeon").tileIndices.dungeonCollection; list = ExpandLists.GungeonWallIDs; list2 = ExpandLists.GungeonFloorIDs; list3 = ExpandLists.GungeonMiscIDs; } List list4 = Enumerable.Range(0, dungeon.data.rooms.Count).ToList(); list4 = BraveUtility.Shuffle(list4); if (roomHandler != null) { list4 = new List { 0 }; } List list5 = new List(); List list6 = new List(); List list7 = new List(); RoomHandler val2 = null; while (num3 < list4.Count) { try { RoomHandler val3 = null; val3 = ((roomHandler != null) ? roomHandler : dungeon.data.rooms[list4[num3]]); if (val3 == null) { break; } val2 = val3; if (string.IsNullOrEmpty(val3.GetRoomName())) { val3.area.PrototypeRoomName = "ProceduralRoom_" + Random.Range(100000, 999999); } if (!flag || (val3.GetRoomName().ToLower().StartsWith("expand apache corrupted secret") | dungeon.IsGlitchDungeon) || roomHandler != null) { bool flag2 = false; if ((val3.GetRoomName().ToLower().StartsWith("expand apache corrupted secret") || isCorruptedJunkRoom) && !isLeadKeyRoom) { GameObject val4 = new GameObject("CorruptionAmbienceMarkerObject") { layer = 0 }; val4.transform.position = Vector2.op_Implicit(val3.area.Center); val4.transform.parent = val3.hierarchyParent; ExpandStaticReferenceManager.AllCorruptionSoundObjects.Add(val4); flag2 = true; if (isCorruptedJunkRoom) { val4.AddComponent(); ExpandCorruptedRoomAmbiencePlacable component2 = val4.GetComponent(); component2.CorruptionFXPlayEvent = "Play_EX_CorruptionAmbience_01"; component2.CorruptionFXStopEvent = "Stop_EX_CorruptionAmbience_01"; component2.ConfigureOnPlacement(val3); } } if ((flag || isLeadKeyRoom) && !isCorruptedJunkRoom) { foreach (TalkDoerLite allNpc3 in StaticReferenceManager.AllNpcs) { if (((DungeonPlaceableBehaviour)allNpc3).GetAbsoluteParentRoom() != null && ((DungeonPlaceableBehaviour)allNpc3).GetAbsoluteParentRoom() == val3) { allNpc3.SpeaksGleepGlorpenese = true; ExpandShaders.Instance.ApplyGlitchShader(((Component)allNpc3).GetComponent()); } } } list6.Clear(); list7.Clear(); for (int i = -1; i <= val3.area.dimensions.x + 3; i++) { for (int j = -1; j <= val3.area.dimensions.y + 3; j++) { int num4 = val3.area.basePosition.x + i; int num5 = val3.area.basePosition.y + j; if (!list5.Contains(new IntVector2(num4, num5)) && (dungeon.data.isWall(num4, num5) | dungeon.data.isAnyFaceWall(num4, num5) | dungeon.data.isWall(num4, num5 - 1))) { list6.Add(new IntVector2(num4, num5)); } } } int num6 = list6.Count / Random.Range(2, 4); if (roomHandler == null && !flag2 && Random.value <= 0.1f) { num6 = 0; } if (num6 > 0) { for (int k = 0; k < num6; k++) { if (list6.Count > 0) { IntVector2 val5 = BraveUtility.RandomElement(list6); list5.Add(val5); float glitchInterval = Random.Range(0.02f, 0.06f); float dispProbability = Random.Range(0.07f, 0.09f); float dispIntensity = Random.Range(0.085f, 0.2f); float colorProbability = Random.Range(0.04f, 0.15f); float colorIntensity = Random.Range(0.08f, 0.14f); GameObject val6 = Object.Instantiate(val, Vector2.op_Implicit(((IntVector2)(ref val5)).ToVector2()), Quaternion.identity); ((Object)val6).name = ((Object)val6).name + "_" + Random.Range(100000, 999999); val6.layer = 22; if ((Object)(object)parentObject != (Object)null) { val6.transform.parent = parentObject.transform; } else { val6.transform.parent = val3.hierarchyParent; } tk2dSprite component3 = val6.GetComponent(); int num7 = Random.Range(1, 3); List list8 = new List(); if (num7 == 1) { list8 = list; } if (num7 == 2) { list8 = list2; } if (num7 == 3) { list8 = list3; } ((tk2dBaseSprite)component3).SetSprite(BraveUtility.RandomElement(list8)); if (dungeon.data.isFaceWallLower(val5.x, val5.y) && !dungeon.data.isWall(val5.x, val5.y - 1)) { DepthLookupManager.ProcessRenderer(((BraveBehaviour)component3).renderer, (GungeonSortingLayer)0); ((tk2dBaseSprite)component3).IsPerpendicular = false; ((tk2dBaseSprite)component3).HeightOffGround = 0f; ((tk2dBaseSprite)component3).UpdateZDepth(); } else { ((tk2dBaseSprite)component3).HeightOffGround = 3f; ((tk2dBaseSprite)component3).UpdateZDepth(); GameObjectExtensions.SetLayerRecursively(val6, LayerMask.NameToLayer("FG_Critical")); } if (roomHandler != null && !flag2 && !isLeadKeyRoom) { val6.AddComponent(); DebrisObject component4 = val6.GetComponent(); component4.angularVelocity = 0f; component4.angularVelocityVariance = 0f; component4.animatePitFall = false; component4.bounceCount = 0; component4.breakOnFallChance = 0f; component4.breaksOnFall = false; component4.canRotate = false; component4.changesCollisionLayer = false; component4.collisionStopsBullets = false; component4.followupBehavior = (DebrisFollowupAction)0; component4.IsAccurateDebris = true; component4.IsCorpse = false; component4.motionMultiplier = 0f; component4.pitFallSplash = false; component4.playAnimationOnTrigger = false; component4.PreventAbsorption = true; component4.PreventFallingInPits = true; ((EphemeralObject)component4).Priority = (EphemeralPriority)4; component4.shouldUseSRBMotion = false; component4.usesDirectionalFallAnimations = false; component4.lifespanMax = 600f; component4.lifespanMin = 500f; component4.usesLifespan = true; } else { val6.AddComponent(); val6.GetComponent().Init(); } if (Random.value <= 0.5f) { ExpandShaders.Instance.ApplyGlitchShader((tk2dBaseSprite)(object)component3, usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); } num++; list6.Remove(val5); } } } for (int l = -1; l <= val3.area.dimensions.x; l++) { for (int m = -1; m <= val3.area.dimensions.y; m++) { int num8 = val3.area.basePosition.x + l; int num9 = val3.area.basePosition.y + m; if (!dungeon.data.isWall(num8, num9) && !dungeon.data.isAnyFaceWall(num8, num9)) { list7.Add(new IntVector2(num8, num9)); } } } int num10 = list7.Count / Random.Range(5, 10); if (Random.value <= 0.2f || flag2) { num10 = ((!flag2) ? (list7.Count / Random.Range(3, 6)) : ((!isCorruptedJunkRoom) ? (list7.Count / Random.Range(2, 5)) : (list7.Count / Random.Range(3, 6)))); } if ((roomHandler == null && !flag2 && Random.value <= 0.15f) || corruptWallsOnly) { num10 = 0; } if (num10 > 0 && !val3.IsShop && (int)val3.area.PrototypeRoomCategory != 3) { for (int n = 0; n <= num10; n++) { IntVector2 item = BraveUtility.RandomElement(list7); float glitchInterval2 = Random.Range(0.02f, 0.06f); float dispProbability2 = Random.Range(0.07f, 0.09f); float dispIntensity2 = Random.Range(0.085f, 0.2f); float colorProbability2 = Random.Range(0.04f, 0.15f); float colorIntensity2 = Random.Range(0.08f, 0.14f); GameObject val7 = Object.Instantiate(val, Vector2.op_Implicit(((IntVector2)(ref item)).ToVector2()), Quaternion.identity); ((Object)val7).name = ((Object)val7).name + "_" + Random.Range(100000, 999999); GameObjectExtensions.SetLayerRecursively(val7, LayerMask.NameToLayer("BG_Critical")); if ((Object)(object)parentObject != (Object)null) { val7.transform.parent = parentObject.transform; } else { val7.transform.parent = val3.hierarchyParent; } tk2dSprite component5 = val7.GetComponent(); int num11 = Random.Range(1, 3); List list9 = new List(); if (num11 == 1) { list9 = list; } if (num11 == 2) { list9 = list2; } if (num11 == 3) { list9 = list3; } ((tk2dBaseSprite)component5).SetSprite(BraveUtility.RandomElement(list9)); if (Random.value <= 0.3f) { ExpandShaders.Instance.ApplyGlitchShader((tk2dBaseSprite)(object)component5, usesOverrideMaterial: true, glitchInterval2, dispProbability2, dispIntensity2, colorProbability2, colorIntensity2); } DepthLookupManager.ProcessRenderer(((BraveBehaviour)component5).renderer, (GungeonSortingLayer)0); ((tk2dBaseSprite)component5).IsPerpendicular = false; ((tk2dBaseSprite)component5).HeightOffGround = -1.7f; ((tk2dBaseSprite)component5).SortingOrder = 2; ((tk2dBaseSprite)component5).CachedPerpState = (PerpendicularState)2; ((tk2dBaseSprite)component5).UpdateZDepth(); if (roomHandler != null && !flag2) { val7.AddComponent(); DebrisObject component6 = val7.GetComponent(); component6.angularVelocity = 0f; component6.angularVelocityVariance = 0f; component6.animatePitFall = false; component6.bounceCount = 0; component6.breakOnFallChance = 0f; component6.breaksOnFall = false; component6.canRotate = false; component6.changesCollisionLayer = false; component6.collisionStopsBullets = false; component6.followupBehavior = (DebrisFollowupAction)0; component6.IsAccurateDebris = true; component6.IsCorpse = false; component6.motionMultiplier = 0f; component6.pitFallSplash = false; component6.playAnimationOnTrigger = false; component6.PreventAbsorption = true; component6.PreventFallingInPits = true; ((EphemeralObject)component6).Priority = (EphemeralPriority)4; component6.shouldUseSRBMotion = false; component6.usesDirectionalFallAnimations = false; if (!flag2 && roomHandler != null) { component6.lifespanMax = 600f; component6.lifespanMin = 500f; component6.usesLifespan = true; } else { component6.usesLifespan = false; } } else { val7.AddComponent(); val7.GetComponent().Init(); } num2++; list7.Remove(item); } } } num3++; continue; } catch (Exception ex) { if (ExpandSettings.debugMode) { if (val2 != null && !string.IsNullOrEmpty(val2.GetRoomName())) { ETGModConsole.Log((object)("[DEBUG] Exception occured in Dungeon.PlaceWallMimics with room: " + val2.GetRoomName()), false); Debug.Log((object)("Exception caught in Dungeon.PlaceWallMimics with room: " + val2.GetRoomName())); } else { ETGModConsole.Log((object)"[DEBUG] Exception occured in Dungeon.PlaceWallMimics!", false); Debug.Log((object)"Exception caught in Dungeon.PlaceWallMimics!"); } Debug.LogException(ex); } if (num > 0 && ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] Number of corrupted wall tiles succesfully placed: " + num), false); ETGModConsole.Log((object)("[DEBUG] Number of corrupted ppen area tiles succesfully placed: " + num2), false); } if (val2 != null) { val2 = null; } num3++; continue; } } if (num > 0 && ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] Number of Valid Corrupted Wall Tile locations: " + num), false); ETGModConsole.Log((object)("[DEBUG] Number of Valid Corrupted locations: " + num2), false); } Object.Destroy((Object)(object)val); } } public class ExpandJunkEnemySpawner : MonoBehaviour { private static ExpandJunkEnemySpawner m_Instance; public static ExpandJunkEnemySpawner Instance { get { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)m_Instance)) { m_Instance = new GameObject("Expand Junk Enemy Placer", new Type[1] { typeof(ExpandJunkEnemySpawner) }) { layer = 22 }.GetComponent(); } return m_Instance; } } public static void DestroyInstance() { Object.Destroy((Object)(object)((Component)m_Instance).gameObject); m_Instance = null; } public void PlaceRandomJunkEnemies(Dungeon dungeon, RoomHandler roomHandler, bool isBackRoomsEntitySpawner) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Invalid comparison between Unknown and I4 //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_01b3: Unknown result type (might be due to invalid IL or missing references) //IL_01b6: Invalid comparison between Unknown and I4 //IL_01bb: Unknown result type (might be due to invalid IL or missing references) //IL_01be: Invalid comparison between Unknown and I4 //IL_01c3: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Invalid comparison between Unknown and I4 //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Invalid comparison between Unknown and I4 //IL_020a: Unknown result type (might be due to invalid IL or missing references) //IL_0216: Unknown result type (might be due to invalid IL or missing references) //IL_021b: Unknown result type (might be due to invalid IL or missing references) //IL_0220: Unknown result type (might be due to invalid IL or missing references) //IL_0224: Unknown result type (might be due to invalid IL or missing references) //IL_0229: Unknown result type (might be due to invalid IL or missing references) //IL_02d0: Unknown result type (might be due to invalid IL or missing references) //IL_02b7: Unknown result type (might be due to invalid IL or missing references) if (dungeon.IsGlitchDungeon || (int)dungeon.tileIndices.tilesetId == 32768 || (!isBackRoomsEntitySpawner && Random.value < 0.85f)) { return; } int num = 0; int num2 = 0; int num3 = 1; int num4 = 0; if (!isBackRoomsEntitySpawner && Random.value < 0.1f) { num3 = 2; } if ((dungeon.data.rooms == null) | (dungeon.data.rooms.Count <= 0)) { return; } List list = Enumerable.Range(0, dungeon.data.rooms.Count).ToList(); list = BraveUtility.Shuffle(list); if (roomHandler != null) { list = new List(new int[1] { dungeon.data.rooms.IndexOf(roomHandler) }); } while (num4 < list.Count && num < num3) { RoomHandler val = dungeon.data.rooms[list[num4]]; if ((val == null) | (val.area == null)) { continue; } RoomCategory prototypeRoomCategory = val.area.PrototypeRoomCategory; try { if (string.IsNullOrEmpty(val.GetRoomName()) || !(val.HasActiveEnemies((ActiveEnemyType)1) || isBackRoomsEntitySpawner) || val.IsMaintenanceRoom() || val.IsSecretRoom || val.IsWinchesterArcadeRoom || val.IsGunslingKingChallengeRoom || val.GetRoomName().StartsWith("Boss Foyer") || val.GetRoomName().StartsWith(((Object)ExpandRoomPrefabs.Expand_Keep_TreeRoom).name) || val.GetRoomName().StartsWith(((Object)ExpandRoomPrefabs.Expand_Keep_TreeRoom2).name) || val.GetRoomName().ToLower().StartsWith("backrooms_room105") || (int)prototypeRoomCategory == 3 || (int)prototypeRoomCategory == 7 || (int)prototypeRoomCategory == 4 || (int)prototypeRoomCategory == 8) { goto IL_02e8; } if (num >= num3) { break; } List validCellsCached = new List(); IntVector2? randomAvailableCellForEnemy = GetRandomAvailableCellForEnemy(dungeon, val, validCellsCached); if (isBackRoomsEntitySpawner) { if (randomAvailableCellForEnemy.HasValue) { GameObject eXEntitySpawner = ExpandPrefabs.EXEntitySpawner; IntVector2 val2 = randomAvailableCellForEnemy.Value + val.area.basePosition; ExpandEntitySpawner component = Object.Instantiate(eXEntitySpawner, ((IntVector2)(ref val2)).ToVector3(), Quaternion.identity).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { ((BraveBehaviour)component).transform.SetParent(((Component)dungeon).gameObject.transform); component.ParentRoom = val; component.SpawnState = ExpandEntitySpawner.EntitySpawnState.WaitingToSpawn; } num++; if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] Backrooms Entity succesfully placed in room: " + val.GetRoomName()), false); } return; } num2++; } else { if (randomAvailableCellForEnemy.HasValue) { if (Random.value < 0.5f) { ExpandEnemyCorruptor.Instance.SpawnGlitchedRaccoon(val, randomAvailableCellForEnemy.Value, autoEngage: false, (AwakenAnimationType)2, isNonGlitchedVersion: true); } else { ExpandEnemyCorruptor.Instance.SpawnGlitchedTurkey(val, randomAvailableCellForEnemy.Value, autoEngage: false, (AwakenAnimationType)2, isNonGlitchedVersion: true); } } else { num2++; } num++; } goto IL_02e8; IL_02e8: num4++; continue; } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] Exception while setting up or placing enemy for current room", false); } if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] Skipping current room...", false); } if (ExpandSettings.debugMode) { ETGModConsole.Log((object)(ex.Message + ex.StackTrace + ex.Source), false); } if (num >= num3) { break; } num4++; continue; } } if (ExpandSettings.debugMode) { if (isBackRoomsEntitySpawner) { if (num <= 0) { ETGModConsole.Log((object)"[DEBUG] Error: No Backroom Entities have been placed!", false); } return; } ETGModConsole.Log((object)("[DEBUG] Max Number of Junk Enemies assigned to floor: " + num3), false); ETGModConsole.Log((object)("[DEBUG] Number of Junk Enemies placed: " + num), false); ETGModConsole.Log((object)("[DEBUG] Number of Junk Enemies skipped: " + num2), false); if (num <= 0) { ETGModConsole.Log((object)"[DEBUG] Error: No Junk Enemies have been placed!", false); } } if (num <= 0) { return; } AIActor[] array = Object.FindObjectsOfType(); if (!((array != null) & (array.Length != 0))) { return; } AIActor[] array2 = array; foreach (AIActor val3 in array2) { if (string.IsNullOrEmpty(((GameActor)val3).ActorName)) { continue; } if (((GameActor)val3).ActorName == "Junk Raccoon") { val3.AdditionalSafeItemDrops.Add(PickupObjectDatabase.GetById(127)); if (Random.value <= 0.2f) { val3.AdditionalSafeItemDrops.Add(PickupObjectDatabase.GetById(127)); } else if (Random.value <= 0.1f) { val3.AdditionalSafeItemDrops.Add(PickupObjectDatabase.GetById(74)); } else { val3.AdditionalSafeItemDrops.Add(PickupObjectDatabase.GetById(85)); } if (Random.value <= 0.01f) { if (GameManager.Instance.PrimaryPlayer.HasPickupID(641)) { val3.AdditionalSafeItemDrops.Add(PickupObjectDatabase.GetById(74)); } else { val3.AdditionalSafeItemDrops.Add(PickupObjectDatabase.GetById(641)); } } else if (Random.value <= 0.01f) { if (GameManager.Instance.PrimaryPlayer.HasPickupID(580)) { val3.AdditionalSafeItemDrops.Add(PickupObjectDatabase.GetById(74)); } else { val3.AdditionalSafeItemDrops.Add(PickupObjectDatabase.GetById(580)); } } } else if (((GameActor)val3).ActorName == "Junk Turkey") { if (BraveUtility.RandomBool()) { val3.AdditionalSafeItemDrops.Add(PickupObjectDatabase.GetById(600)); } else { val3.AdditionalSafeItemDrops.Add(PickupObjectDatabase.GetById(78)); } } } } private IntVector2? GetRandomAvailableCellForEnemy(Dungeon dungeon, RoomHandler currentRoom, List validCellsCached, int gridSnap = 1) { //IL_07c6: Unknown result type (might be due to invalid IL or missing references) //IL_07cb: Unknown result type (might be due to invalid IL or missing references) //IL_07cd: Unknown result type (might be due to invalid IL or missing references) //IL_07cf: Unknown result type (might be due to invalid IL or missing references) //IL_07d7: Unknown result type (might be due to invalid IL or missing references) //IL_07e5: Unknown result type (might be due to invalid IL or missing references) //IL_07ed: Unknown result type (might be due to invalid IL or missing references) //IL_07f5: Unknown result type (might be due to invalid IL or missing references) //IL_07fa: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_077e: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)dungeon == (Object)null || currentRoom == null || validCellsCached == null) { return null; } if (validCellsCached.Count == 0) { for (int i = -1; i <= currentRoom.area.dimensions.x; i++) { for (int j = -1; j <= currentRoom.area.dimensions.y; j++) { int num = currentRoom.area.basePosition.x + i; int num2 = currentRoom.area.basePosition.y + j; if (num % gridSnap == 0 && num2 % gridSnap == 0 && dungeon.data[new IntVector2(num, num2)].parentRoom == currentRoom && !dungeon.data.isWall(num - 2, num2 + 2) && !dungeon.data.isWall(num - 1, num2 + 2) && !dungeon.data.isWall(num, num2 + 2) && !dungeon.data.isWall(num + 1, num2 + 2) && !dungeon.data.isWall(num + 2, num2 + 2) && !dungeon.data.isWall(num - 2, num2 + 1) && !dungeon.data.isWall(num - 1, num2 + 1) && !dungeon.data.isWall(num, num2 + 1) && !dungeon.data.isWall(num + 1, num2 + 1) && !dungeon.data.isWall(num + 2, num2 + 1) && !dungeon.data.isWall(num - 2, num2) && !dungeon.data.isWall(num - 1, num2) && !dungeon.data.isWall(num, num2) && !dungeon.data.isWall(num + 1, num2) && !dungeon.data.isWall(num + 2, num2) && !dungeon.data.isWall(num - 2, num2 - 1) && !dungeon.data.isWall(num - 1, num2 - 1) && !dungeon.data.isWall(num, num2 - 1) && !dungeon.data.isWall(num + 1, num2 - 1) && !dungeon.data.isWall(num + 2, num2 - 1) && !dungeon.data.isWall(num - 2, num2 - 2) && !dungeon.data.isWall(num - 1, num2 - 2) && !dungeon.data.isWall(num, num2 - 2) && !dungeon.data.isWall(num + 1, num2 - 2) && !dungeon.data.isWall(num + 2, num2 - 2) && !dungeon.data[num - 2, num2 + 2].isOccupied && !dungeon.data[num - 1, num2 + 2].isOccupied && !dungeon.data[num, num2 + 2].isOccupied && !dungeon.data[num + 1, num2 + 2].isOccupied && !dungeon.data[num + 2, num2 + 2].isOccupied && !dungeon.data[num - 2, num2 + 1].isOccupied && !dungeon.data[num - 1, num2 + 1].isOccupied && !dungeon.data[num, num2 + 1].isOccupied && !dungeon.data[num + 1, num2 + 1].isOccupied && !dungeon.data[num + 2, num2 + 1].isOccupied && !dungeon.data[num - 2, num2].isOccupied && !dungeon.data[num - 1, num2].isOccupied && !dungeon.data[num, num2].isOccupied && !dungeon.data[num + 1, num2].isOccupied && !dungeon.data[num + 2, num2].isOccupied && !dungeon.data[num - 2, num2 - 1].isOccupied && !dungeon.data[num - 1, num2 - 1].isOccupied && !dungeon.data[num, num2 - 1].isOccupied && !dungeon.data[num + 1, num2 - 1].isOccupied && !dungeon.data[num + 2, num2 - 1].isOccupied && !dungeon.data[num - 2, num2 - 2].isOccupied && !dungeon.data[num - 1, num2 - 2].isOccupied && !dungeon.data[num, num2 - 2].isOccupied && !dungeon.data[num + 1, num2 - 2].isOccupied && !dungeon.data[num + 2, num2 - 2].isOccupied && !dungeon.data.isPit(num - 2, num2 + 2) && !dungeon.data.isPit(num - 1, num2 + 2) && !dungeon.data.isPit(num, num2 + 2) && !dungeon.data.isPit(num + 1, num2 + 2) && !dungeon.data.isPit(num + 2, num2 + 2) && !dungeon.data.isPit(num - 2, num2 + 1) && !dungeon.data.isPit(num - 1, num2 + 1) && !dungeon.data.isPit(num, num2 + 1) && !dungeon.data.isPit(num + 1, num2 + 1) && !dungeon.data.isPit(num + 2, num2 + 1) && !dungeon.data.isPit(num - 2, num2) && !dungeon.data.isPit(num - 1, num2) && !dungeon.data.isPit(num, num2) && !dungeon.data.isPit(num + 1, num2) && !dungeon.data.isPit(num + 2, num2) && !dungeon.data.isPit(num - 2, num2 - 1) && !dungeon.data.isPit(num - 1, num2 - 1) && !dungeon.data.isPit(num, num2 - 1) && !dungeon.data.isPit(num + 1, num2 - 1) && !dungeon.data.isPit(num + 2, num2 - 1) && !dungeon.data.isPit(num - 2, num2 - 2) && !dungeon.data.isPit(num - 1, num2 - 2) && !dungeon.data.isPit(num, num2 - 2) && !dungeon.data.isPit(num + 1, num2 - 2) && !dungeon.data.isPit(num + 2, num2 - 2)) { validCellsCached.Add(new IntVector2(num, num2)); } } } } if (validCellsCached.Count > 0) { IntVector2 val = BraveUtility.RandomElement(validCellsCached); IntVector2 val2 = val; dungeon.data[val2].isOccupied = true; validCellsCached.Remove(val); return val - currentRoom.area.basePosition; } return null; } } public class ExpandEnemyReplacements { public static readonly List gigiTargetGUIDs = new List { "ed37fa13e0fa4fcf8239643957c51293" }; public static readonly List gigiParrotReplacementGUIDs = new List { "4b21a913e8c54056bc05cafecf9da880" }; public static readonly List RedShotgunTargetGUIDs = new List { "128db2f0781141bcb505d8f00f9e4d47" }; public static readonly List BlueShotgunTargetGUIDs = new List { "b54d89f9e802455cbb2b8a96a31e8259", "7f665bd7151347e298e4d366f8818284", "2752019b770f473193b08b4005dc781f" }; public static readonly List PirateShotGunKinReplacementGUIDs = new List { "86dfc13486ee4f559189de53cfb84107" }; public static readonly List CowboyShotGunKinReplacementGUIDs = new List { "ddf12a4881eb43cfba04f36dd6377abb" }; public static readonly List CowboyKinTargetGUIDs = new List { "95ec774b5a75467a9ab05fa230c0c143", "336190e29e8a4f75ab7486595b700d4a" }; public static readonly List CowboyKinReplacementGUIDs = new List { "5861e5a077244905a8c25c2b7b4d6ebb" }; public static readonly List snakeofficeReplacementGUIDs = new List { "e861e59012954ab2b9b6977da85cb83c" }; public static readonly List snakeofficeTargetGUIDs = new List { "43426a2e39584871b287ac31df04b544" }; public static readonly List snakeofficeSewersTargetGUIDs = new List { "e5cffcfabfae489da61062ea20539887" }; public static readonly List bulletKinReplacementGUIDs = new List { "6f818f482a5c47fd8f38cce101f6566c", "ff4f54ce606e4604bf8d467c1279be3e", "39e6f47a16ab4c86bec4b12984aece4c", "f020570a42164e2699dcf57cac8a495c", "37de0df92697431baa47894a075ba7e9", "5861e5a077244905a8c25c2b7b4d6ebb", "906d71ccc1934c02a6f4ff2e9c07c9ec", "9eba44a0ea6c4ea386ff02286dd0e6bd", "05cb719e0178478685dc610f8b3e8bfc", "3b0bd258b4c9432db3339665cc61c356" }; public static readonly List bulletKinTargetGUIDs = new List { "01972dee89fc4404a5c408d50007dad5", "db35531e66ce41cbb81d507a34366dfe", "70216cae6c1346309d86d4a0b4603045", "88b6b6a93d4b4234a67844ef4728382c", "5f3abc2d561b4b9c9e72b879c6f10c7e", "1a78cfb776f54641b832e92c44021cf2", "8bb5578fba374e8aae8e10b754e61d62" }; public static readonly List bulletKinSewersReplacementGUIDs = new List { "143be8c9bbb84e3fb3ab98bcd4cf5e5b", "06f5623a351c4f28bc8c6cda56004b80" }; public static readonly List bulletKinSewersTargetGUIDs = new List { "01972dee89fc4404a5c408d50007dad5", "88b6b6a93d4b4234a67844ef4728382c", "db35531e66ce41cbb81d507a34366dfe" }; public static readonly List bulletKinAbbeyTargetGUIDs = new List { "01972dee89fc4404a5c408d50007dad5", "db35531e66ce41cbb81d507a34366dfe", "70216cae6c1346309d86d4a0b4603045", "88b6b6a93d4b4234a67844ef4728382c", "8bb5578fba374e8aae8e10b754e61d62" }; public static readonly List bulletKinAbbeyReplacementGUIDs = new List { "39e6f47a16ab4c86bec4b12984aece4c", "37de0df92697431baa47894a075ba7e9" }; public static readonly List musketKinReplacementGUIDs = new List { "226fd90be3a64958a5b13cb0a4f43e97" }; public static readonly List musketKinTargetGUIDs = new List { "6b7ef9e5d05b4f96b04f05ef4a0d1b18", "98fdf153a4dd4d51bf0bafe43f3c77ff" }; public static readonly List dynamiteKinOfficeReplacementGUIDs = new List { "5f15093e6f684f4fb09d3e7e697216b4", "05cb719e0178478685dc610f8b3e8bfc" }; public static readonly List dynamiteKinOfficeTargetGUIDs = new List { "4d37ce3d666b4ddda8039929225b7ede" }; public static readonly List booksOfficeReplacementGUIDs = new List { "78e0951b097b46d89356f004dda27c42", "216fd3dfb9da439d9bd7ba53e1c76462" }; public static readonly List booksOfficeTargetGUIDs = new List { "6f22935656c54ccfb89fca30ad663a64", "a400523e535f41ac80a43ff6b06dc0bf", "c0ff3744760c4a2eb0bb52ac162056e6" }; public static readonly List bullatGargoyleReplacementGUIDs = new List { "981d358ffc69419bac918ca1bdf0c7f7" }; public static readonly List bullatGargoyleTargetGUIDs = new List { "1a4872dafdb34fd29fe8ac90bd2cea67" }; public static readonly List bigEnemyReplacementGUIDs = new List { "2b6854c0849b4b8fb98eb15519d7db1c", "df4e9fedb8764b5a876517431ca67b86", "1f290ea06a4c416cabc52d6b3cf47266", "c4cf0620f71c4678bb8d77929fd4feff", "9215d1a221904c7386b481a171e52859" }; public static readonly List bigEnemyTargetGUIDs = new List { "ec8ea75b557d4e7b8ceeaacdf6f8238c", "383175a55879441d90933b5c4e60cf6f", "463d16121f884984abe759de38418e48", "3f6d6b0c4a7c4690807435c7b37c35a5", "cd4a4b7f612a4ba9a720b9f97c52f38c", "98ea2fe181ab4323ab6e9981955a9bca", "d5a7b95774cd41f080e517bea07bf495", "88f037c3f93b4362a040a87b30770407", "3e98ccecf7334ff2800188c417e67c15", "98ca70157c364750a60f5e0084f9d3e2", "45192ff6d6cb43ed8f1a874ab6bef316", "21dd14e5ca2a4a388adab5b11b69a1e1" }; public static readonly List hardEnemyTargetGUIDs = new List { "7b0b1b6d9ce7405b86b75ce648025dd6", "c4fba8def15e47b297865b18e36cbef8", "5288e86d20184fa69c91ceb642d31474", "8a9e9bedac014a829a48735da6daf3da", "c50a862d19fc4d30baeba54795e8cb93", "9d50684ce2c044e880878e86dbada919", "f905765488874846b7ff257ff81d6d0c", "cf27dd464a504a428d87a8b2560ad40a", "206405acad4d4c33aac6717d184dc8d4", "8b4a938cdbc64e64822e841e482ba3d2", "ba657723b2904aa79f9e51bce7d23872", "57255ed50ee24794b7aac1ac3cfb8a95", "6e972cd3b11e4b429b888b488e308551", "8a9e9bedac014a829a48735da6daf3da" }; public static readonly List gunCultestGUIDs = new List { "57255ed50ee24794b7aac1ac3cfb8a95" }; public static readonly List bigEnemySewersTargetGUIDs = new List { "cd4a4b7f612a4ba9a720b9f97c52f38c", "ec8ea75b557d4e7b8ceeaacdf6f8238c", "463d16121f884984abe759de38418e48" }; public static readonly List bigEnemySewersReplacementGUIDs = new List { "2b6854c0849b4b8fb98eb15519d7db1c", "9215d1a221904c7386b481a171e52859" }; public static readonly List shotgunKinReplacementGUIDs = new List { "ddf12a4881eb43cfba04f36dd6377abb", "86dfc13486ee4f559189de53cfb84107", "d4f4405e0ff34ab483966fd177f2ece3", "534f1159e7cf4f6aa00aeea92459065e" }; public static readonly List shotgunKinTargetGUIDs = new List { "128db2f0781141bcb505d8f00f9e4d47", "b54d89f9e802455cbb2b8a96a31e8259", "1bd8e49f93614e76b140077ff2e33f2b", "7f665bd7151347e298e4d366f8818284" }; public static readonly List shotgunKin2TargetGUIDs = new List { "128db2f0781141bcb505d8f00f9e4d47", "b54d89f9e802455cbb2b8a96a31e8259", "2752019b770f473193b08b4005dc781f", "1bd8e49f93614e76b140077ff2e33f2b", "7f665bd7151347e298e4d366f8818284" }; public static readonly List mutantBulletKinReplacementGUIDs = new List { "143be8c9bbb84e3fb3ab98bcd4cf5e5b", "06f5623a351c4f28bc8c6cda56004b80" }; public static readonly List mutantBulletKinTargetGUIDs = new List { "d4a9836f8ab14f3fadd0f597438b1f1f" }; public static readonly List mutantBulletKinSewersReplacementGUIDs = new List { "f020570a42164e2699dcf57cac8a495c", "ff4f54ce606e4604bf8d467c1279be3e" }; public static readonly List mutantBulletKinSewersTargetGUIDs = new List { "d4a9836f8ab14f3fadd0f597438b1f1f", "7f665bd7151347e298e4d366f8818284" }; public static readonly List gunzookieTargetGUIDs = new List { "6e972cd3b11e4b429b888b488e308551", "8a9e9bedac014a829a48735da6daf3da" }; public static readonly List gunzookieReplacementGUIDs = new List { "80ab6cd15bfc46668a8844b2975c6c26" }; public static void Init(List m_cachedReplacementTiers) { if (m_cachedReplacementTiers == null) { return; } for (int i = 0; i < m_cachedReplacementTiers.Count; i++) { if (m_cachedReplacementTiers[i].Name.ToLower().EndsWith("_exsewers") | m_cachedReplacementTiers[i].Name.ToLower().EndsWith("_exbbbey") | m_cachedReplacementTiers[i].Name.ToLower().EndsWith("_exbelly")) { m_cachedReplacementTiers.Remove(m_cachedReplacementTiers[i]); } else if (m_cachedReplacementTiers[i].Name.ToLower().StartsWith("exhotshot")) { m_cachedReplacementTiers.Remove(m_cachedReplacementTiers[i]); } } if (!ExpandSettings.IsHardModeBuild) { InitReplacementEnemiesForSewers(m_cachedReplacementTiers); InitReplacementEnemiesForAbbey(m_cachedReplacementTiers); } InitReplacementEnemiesForBelly(m_cachedReplacementTiers); InitHotShotReplacements(m_cachedReplacementTiers); } private static void InitHotShotReplacements(List agdEnemyReplacementTiers) { List replacementGUIDs = new List { ExpandEnemyDatabase.HotShotShotgunKinGUID }; List replacementGUIDs2 = new List { ExpandEnemyDatabase.HotShotBulletKinGUID }; List replacementGUIDs3 = new List { ExpandEnemyDatabase.HotShotCultistGUID }; List targetTilesets = new List { (ValidTilesets)2, (ValidTilesets)4, (ValidTilesets)8192, (ValidTilesets)1, (ValidTilesets)8, (ValidTilesets)4096, (ValidTilesets)16, (ValidTilesets)32768, (ValidTilesets)32, (ValidTilesets)2048, (ValidTilesets)1024, (ValidTilesets)512, (ValidTilesets)64, (ValidTilesets)128, (ValidTilesets)256 }; List list = GenerateEnemyReplacementTiers("EXHotShot", (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], targetTilesets, gunCultestGUIDs, replacementGUIDs3, 0.2f); List list2 = GenerateEnemyReplacementTiers("EXHotShot", (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], targetTilesets, bulletKinTargetGUIDs, replacementGUIDs2, 0.1f); List list3 = GenerateEnemyReplacementTiers("EXHotShot", (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], targetTilesets, shotgunKin2TargetGUIDs, replacementGUIDs, 0.05f); foreach (AGDEnemyReplacementTier item in list) { agdEnemyReplacementTiers.Add(item); } foreach (AGDEnemyReplacementTier item2 in list2) { agdEnemyReplacementTiers.Add(item2); } foreach (AGDEnemyReplacementTier item3 in list3) { agdEnemyReplacementTiers.Add(item3); } } private static void InitReplacementEnemiesForSewers(List agdEnemyReplacementTiers) { //IL_0001: 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_0046: Unknown result type (might be due to invalid IL or missing references) ValidTilesets targetTileset = (ValidTilesets)4; string text = "_EXSewers"; agdEnemyReplacementTiers.Add(GenerateEnemyReplacementTier("bulletKinReplacement" + text, (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], targetTileset, bulletKinSewersTargetGUIDs, bulletKinSewersReplacementGUIDs)); agdEnemyReplacementTiers.Add(GenerateEnemyReplacementTier("rubberKinReplacement" + text, (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], targetTileset, musketKinTargetGUIDs, musketKinReplacementGUIDs, 0.7f)); } private static void InitReplacementEnemiesForBelly(List agdEnemyReplacementTiers) { //IL_0005: 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) ValidTilesets targetTileset = (ValidTilesets)4096; string text = "_EXBelly"; agdEnemyReplacementTiers.Add(GenerateEnemyReplacementTier("bulletKinReplacement" + text, (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], targetTileset, new List { "01972dee89fc4404a5c408d50007dad5" }, new List { ExpandEnemyDatabase.AggressiveCronenbergGUID })); } private static void InitReplacementEnemiesForAbbey(List agdEnemyReplacementTiers) { //IL_0001: 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_0046: Unknown result type (might be due to invalid IL or missing references) ValidTilesets targetTileset = (ValidTilesets)8; string text = "_EXAbbey"; agdEnemyReplacementTiers.Add(GenerateEnemyReplacementTier("kingBullatReplacement" + text, (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], targetTileset, bullatGargoyleTargetGUIDs, bullatGargoyleReplacementGUIDs, 0.6f)); agdEnemyReplacementTiers.Add(GenerateEnemyReplacementTier("bulletKinReplacement" + text, (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], targetTileset, bulletKinAbbeyTargetGUIDs, bulletKinAbbeyReplacementGUIDs, 0.75f)); } public static AGDEnemyReplacementTier GenerateEnemyReplacementTier(string m_name, DungeonPrerequisite[] m_Prereqs, ValidTilesets m_TargetTileset, List m_TargetGuids, List m_ReplacementGUIDs, float m_ChanceToReplace = 1f) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: 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_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_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_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0045: 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_0054: 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_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Expected O, but got Unknown return new AGDEnemyReplacementTier { Name = m_name, Prereqs = m_Prereqs, TargetTileset = m_TargetTileset, ChanceToReplace = m_ChanceToReplace, MaxPerFloor = -1, MaxPerRun = -1, TargetAllNonSignatureEnemies = false, TargetAllSignatureEnemies = false, TargetGuids = m_TargetGuids, ReplacementGuids = m_ReplacementGUIDs, RoomMustHaveColumns = false, RoomMinEnemyCount = -1, RoomMaxEnemyCount = -1, RoomMinSize = -1, RemoveAllOtherEnemies = false, RoomCantContain = new List() }; } public static List GenerateEnemyReplacementTiers(string m_name, DungeonPrerequisite[] m_Prereqs, List m_TargetTilesets, List m_TargetGuids, List m_ReplacementGUIDs, float m_ChanceToReplace = 1f) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0045: 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_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: 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_005b: 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_0069: 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_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008d: 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_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Expected O, but got Unknown List list = new List(); foreach (ValidTilesets m_TargetTileset in m_TargetTilesets) { ValidTilesets current = m_TargetTileset; list.Add(new AGDEnemyReplacementTier { Name = m_name + "_" + ((object)(ValidTilesets)(ref current)).ToString(), Prereqs = m_Prereqs, TargetTileset = current, ChanceToReplace = m_ChanceToReplace, MaxPerFloor = -1, MaxPerRun = -1, TargetAllNonSignatureEnemies = false, TargetAllSignatureEnemies = false, TargetGuids = m_TargetGuids, ReplacementGuids = m_ReplacementGUIDs, RoomMustHaveColumns = false, RoomMinEnemyCount = -1, RoomMaxEnemyCount = -1, RoomMinSize = -1, RemoveAllOtherEnemies = false, RoomCantContain = new List() }); } return list; } } public class ExpandPlaceCorruptedEnemies : MonoBehaviour { private static ExpandPlaceCorruptedEnemies m_Instance; public static ExpandPlaceCorruptedEnemies Instance { get { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)m_Instance)) { m_Instance = new GameObject("Expand Corrupt Enemy Placer", new Type[1] { typeof(ExpandPlaceCorruptedEnemies) }) { layer = 22 }.GetComponent(); } return m_Instance; } } public static void DestroyInstance() { Object.Destroy((Object)(object)((Component)m_Instance).gameObject); m_Instance = null; } public void PlaceRandomEnemies(Dungeon dungeon, int currentFloor, RoomHandler roomHandler = null) { //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_01cf: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Invalid comparison between Unknown and I4 //IL_01d7: Unknown result type (might be due to invalid IL or missing references) //IL_01da: Invalid comparison between Unknown and I4 //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Invalid comparison between Unknown and I4 //IL_01e7: Unknown result type (might be due to invalid IL or missing references) //IL_01ea: Invalid comparison between Unknown and I4 //IL_028a: Unknown result type (might be due to invalid IL or missing references) //IL_02b8: Unknown result type (might be due to invalid IL or missing references) //IL_02e6: Unknown result type (might be due to invalid IL or missing references) //IL_0332: Unknown result type (might be due to invalid IL or missing references) //IL_031a: Unknown result type (might be due to invalid IL or missing references) if (!dungeon.IsGlitchDungeon && roomHandler == null) { return; } List list = new List(); foreach (WeightedRoom element in ExpandPrefabs.MegaMiniBossRoomTable.includedRooms.elements) { if ((Object)(object)element.room != (Object)null) { list.Add(((Object)element.room).name); } } foreach (WeightedRoom element2 in ExpandPrefabs.MegaBossRoomTable.includedRooms.elements) { if ((Object)(object)element2.room != (Object)null) { list.Add(((Object)element2.room).name); } } int num = 0; int num2 = 0; int num3 = 20; float num4 = 0.15f; float num5 = 0.05f; if (dungeon.IsGlitchDungeon) { num3 = 65; num4 = 0.3f; num5 = 0.28f; } List list2 = new List(); if (roomHandler != null) { list2.Add(roomHandler); } else { list2 = dungeon.data.rooms; } if ((list2 == null) | (list2.Count <= 0)) { return; } foreach (RoomHandler item in list2) { RoomCategory prototypeRoomCategory = item.area.PrototypeRoomCategory; try { if (item != null && !string.IsNullOrEmpty(item.GetRoomName()) && item.HasActiveEnemies((ActiveEnemyType)1) && !item.IsMaintenanceRoom() && !item.IsSecretRoom && !item.IsWinchesterArcadeRoom && !item.IsGunslingKingChallengeRoom && !item.GetRoomName().StartsWith("Boss Foyer") && !list.Contains(item.GetRoomName()) && (int)prototypeRoomCategory != 3 && (int)prototypeRoomCategory != 7 && (int)prototypeRoomCategory != 4 && (int)prototypeRoomCategory != 8) { List list3 = new List(); IntVector2? randomAvailableCell = GetRandomAvailableCell(dungeon, item, list3); IntVector2? val = null; IntVector2? val2 = null; IntVector2? val3 = null; if (list3.Count > 0) { val = GetRandomAvailableCell(dungeon, item, list3); } if (list3.Count > 0) { val2 = GetRandomAvailableCell(dungeon, item, list3, 2, 13); } if (list3.Count > 0) { val3 = GetRandomAvailableCell(dungeon, item, list3); } if (randomAvailableCell.HasValue) { ExpandEnemyCorruptor.Instance.SpawnRandomGlitchEnemy(item, randomAvailableCell.Value, autoEngage: false, (AwakenAnimationType)2); } else { num2++; } if (val.HasValue && Random.value <= num5) { ExpandEnemyCorruptor.Instance.SpawnRandomGlitchEnemy(item, val.Value, autoEngage: false, (AwakenAnimationType)2); } else { num2++; } if (val2.HasValue && Random.value <= num4) { ExpandEnemyCorruptor.Instance.SpawnRandomGlitchBoss(item, val2.Value, autoEngage: false, (AwakenAnimationType)2); } if (val3.HasValue && Random.value <= num4) { if (Random.value <= 0.65f) { ExpandEnemyCorruptor.Instance.SpawnGlitchedObjectAsEnemy(item, val3.Value, autoEngage: false, (AwakenAnimationType)2); } else { ExpandEnemyCorruptor.Instance.SpawnGlitchedPlayerAsEnemy(item, val3.Value, autoEngage: false, (AwakenAnimationType)2); } } num++; if (num + num2 >= num3) { break; } } } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] Exception while setting up or placing enemy for current room", false); } if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] Skipping current room...", false); } if (ExpandSettings.debugMode) { ETGModConsole.Log((object)(ex.Message + ex.StackTrace + ex.Source), false); } continue; } AIActor[] array = Object.FindObjectsOfType(); if (array == null || array.Length == 0) { continue; } AIActor[] array2 = array; foreach (AIActor val4 in array2) { if (((Object)val4).name.ToLower().StartsWith("corrupted")) { RoomHandler absoluteRoom = Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)val4).transform.position); if (absoluteRoom != null && !Object.op_Implicit((Object)(object)((Component)val4).gameObject.transform.parent)) { ((BraveBehaviour)val4).transform.parent = absoluteRoom.hierarchyParent; } } } } if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] Max Number of Glitched Enemies assigned to floor: " + num3), false); ETGModConsole.Log((object)("[DEBUG] Number of Glitched Enemies placed: " + num), false); ETGModConsole.Log((object)("[DEBUG] Number of Glitched Enemies skipped: " + num2), false); if (num <= 0) { ETGModConsole.Log((object)"[DEBUG] Error: No Glitched Enemies have been placed!", false); } } } private IntVector2? GetRandomAvailableCell(Dungeon dungeon, RoomHandler currentRoom, List validCellsCached, int Clearence = 2, int ExitClearence = 10, bool avoidExits = false, bool avoidPits = true, bool PositionRelativeToRoom = true) { //IL_0262: Unknown result type (might be due to invalid IL or missing references) //IL_0267: Unknown result type (might be due to invalid IL or missing references) //IL_0269: Unknown result type (might be due to invalid IL or missing references) //IL_026b: Unknown result type (might be due to invalid IL or missing references) //IL_0273: Unknown result type (might be due to invalid IL or missing references) //IL_0281: Unknown result type (might be due to invalid IL or missing references) //IL_02a1: Unknown result type (might be due to invalid IL or missing references) //IL_028d: Unknown result type (might be due to invalid IL or missing references) //IL_0295: Unknown result type (might be due to invalid IL or missing references) //IL_029a: Unknown result type (might be due to invalid IL or missing references) //IL_029f: Unknown result type (might be due to invalid IL or missing references) //IL_0209: 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_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_0213: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_009b: 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_021d: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_019f: 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_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)dungeon == (Object)null || currentRoom == null || validCellsCached == null) { return null; } if (validCellsCached.Count == 0) { IntVector2 val = default(IntVector2); for (int i = 0; i < currentRoom.area.dimensions.x; i++) { for (int j = 0; j < currentRoom.area.dimensions.y; j++) { bool flag = false; ((IntVector2)(ref val))..ctor(currentRoom.area.basePosition.x + i, currentRoom.area.basePosition.y + j); if (avoidExits) { for (int k = -ExitClearence; k <= ExitClearence; k++) { for (int l = -ExitClearence; l <= ExitClearence; l++) { IntVector2 val2 = val + new IntVector2(k, l); if (GameManager.Instance.Dungeon.data.CheckInBoundsAndValid(val2)) { CellData val3 = GameManager.Instance.Dungeon.data[val2]; if (val3.isExitCell | val3.isDoorFrameCell) { flag = true; break; } } } if (flag) { break; } } } for (int m = -Clearence; m <= Clearence; m++) { for (int n = -Clearence; n <= Clearence; n++) { IntVector2 val4 = val + new IntVector2(m, n); if (dungeon.data.CheckInBoundsAndValid(val4)) { CellData val5 = dungeon.data[val4]; if (avoidPits && dungeon.data.isPit(val4.x, val4.y)) { flag = true; break; } if (val5.isWallMimicHideout | val5.IsAnyFaceWall() | val5.IsFireplaceCell | val5.IsTopWall() | val5.isOccludedByTopWall | val5.IsUpperFacewall() | val5.isWallMimicHideout | dungeon.data.isWall(val4.x, val4.y) | dungeon.data[val4.x, val4.y].isOccupied | (val5.parentRoom != currentRoom)) { flag = true; break; } } } if (flag) { break; } } if (!flag && dungeon.data.CheckInBoundsAndValid(val) && !validCellsCached.Contains(val)) { validCellsCached.Add(val); } } } } if (validCellsCached.Count > 0) { IntVector2 val6 = BraveUtility.RandomElement(validCellsCached); IntVector2 val7 = val6; dungeon.data[val7].isOccupied = true; validCellsCached.Remove(val6); if (PositionRelativeToRoom) { val6 -= currentRoom.area.basePosition; } return val6; } return null; } } [HarmonyPatch] public class ExpandHooks { public static Hook cellhook; public static Hook enterRoomHook; public static Hook igniteGoopsCircleHook; public static Hook buildPatchHook; public static Hook escapeRopeCanBeUsedHook; public static Hook clearPerLevelDataHook; public static Hook clearActiveGameDataHook; public static Hook Stringhook; public static Hook objectstamphook; public static Hook placeRoomHook; public static Hook getRandomFlowHook; public static Hook handlePitfallHook; public static Hook arrivalElevatorUpdateHook; public static Hook constructTK2DDungeonHook; public static Hook handleGrabbyGrabHook; public static Hook sellPitConfigureOnPlacementHook; public static Hook playerFiredHook; public static Hook flagCellsHook; public static Hook generateRoomDoorMeshHook; public static Hook animationCompletedHook; public static Hook teardownPunchoutHook; public static Hook buildorderLayerCenterJungleHook; public static Hook buildOcclusionLayerCenterJungle; public static Hook getTypeBorderGridForBorderIndexHook; public static Hook paydayDrillCombatWaveHook; public static Hook postGenerationCleanupHook; public static Hook checkforPlayerCollisionHook; public static Hook doorOpenHook; public static Hook throwGunHook; public static Hook onContinueGameSelectedHook; public static Hook getNextTilesetHook; public static Hook placePlayerInRoomHook; public static Hook floodFillDungeonInteriorHook; public static Hook getNextNearbyTileHook; public static Hook getAllNearbyTilesHook; public static Hook initNearbyTileCheckHook; public static Hook handleLostWoodsMirroringHook; public static Hook getTileHook; public static Hook floorChestPlacerConfigureOnPlacementHook; public static Hook applyBenefitHook; public static Hook flameTrapHook; public static Hook transitionToDepartHook; public static Hook exciseElbowsHook; public static bool IsHooksInstalled; public static void InstallPrimaryHooks(bool InstallHooks = true) { //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Expected O, but got Unknown if (InstallHooks) { if (cellhook == null) { if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing FlagCells Hook...."); } cellhook = new Hook((MethodBase)typeof(OccupiedCells).GetMethod("FlagCells", BindingFlags.Instance | BindingFlags.Public), typeof(ExpandHooks).GetMethod("FlagCellsHook", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(OccupiedCells)); } IsHooksInstalled = true; if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"Primary hooks installed...", false); } } else { if (cellhook != null) { cellhook.Dispose(); cellhook = null; } IsHooksInstalled = false; if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"Primary hooks removed...", false); } } } public static void InstallMidGameSaveHooks() { //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Expected O, but got Unknown //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Expected O, but got Unknown if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing MainMenuFoyerController.OnContinueGameSelected Hook...."); } onContinueGameSelectedHook = new Hook((MethodBase)typeof(MainMenuFoyerController).GetMethod("OnContinueGameSelected", BindingFlags.Instance | BindingFlags.NonPublic), typeof(ExpandHooks).GetMethod("OnContinueGameSelected", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(MainMenuFoyerController)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing GameManager.GetNextTileset Hook...."); } generateRoomDoorMeshHook = new Hook((MethodBase)typeof(GameManager).GetMethod("GetNextTileset", new Type[1] { typeof(ValidTilesets) }), typeof(ExpandHooks).GetMethod("GetNextTileset", BindingFlags.Instance | BindingFlags.Public), (object)typeof(GameManager)); } public static void InstallRequiredHooks() { //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Expected O, but got Unknown //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Expected O, but got Unknown //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Expected O, but got Unknown //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Expected O, but got Unknown //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Expected O, but got Unknown //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Expected O, but got Unknown //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Expected O, but got Unknown //IL_0256: Unknown result type (might be due to invalid IL or missing references) //IL_0260: Expected O, but got Unknown //IL_02a7: Unknown result type (might be due to invalid IL or missing references) //IL_02b1: Expected O, but got Unknown //IL_02f8: Unknown result type (might be due to invalid IL or missing references) //IL_0302: Expected O, but got Unknown //IL_0349: Unknown result type (might be due to invalid IL or missing references) //IL_0353: Expected O, but got Unknown //IL_039a: Unknown result type (might be due to invalid IL or missing references) //IL_03a4: Expected O, but got Unknown //IL_03eb: Unknown result type (might be due to invalid IL or missing references) //IL_03f5: Expected O, but got Unknown //IL_043c: Unknown result type (might be due to invalid IL or missing references) //IL_0446: Expected O, but got Unknown //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_0497: Expected O, but got Unknown //IL_04de: Unknown result type (might be due to invalid IL or missing references) //IL_04e8: Expected O, but got Unknown //IL_0525: Unknown result type (might be due to invalid IL or missing references) //IL_052f: Expected O, but got Unknown //IL_0576: Unknown result type (might be due to invalid IL or missing references) //IL_0580: Expected O, but got Unknown //IL_05c7: Unknown result type (might be due to invalid IL or missing references) //IL_05d1: Expected O, but got Unknown //IL_0618: Unknown result type (might be due to invalid IL or missing references) //IL_0622: Expected O, but got Unknown //IL_0669: Unknown result type (might be due to invalid IL or missing references) //IL_0673: Expected O, but got Unknown //IL_06ba: Unknown result type (might be due to invalid IL or missing references) //IL_06c4: Expected O, but got Unknown //IL_070b: Unknown result type (might be due to invalid IL or missing references) //IL_0715: Expected O, but got Unknown //IL_075c: Unknown result type (might be due to invalid IL or missing references) //IL_07a9: Unknown result type (might be due to invalid IL or missing references) //IL_07b3: Expected O, but got Unknown //IL_07fa: Unknown result type (might be due to invalid IL or missing references) //IL_0804: Expected O, but got Unknown //IL_084b: Unknown result type (might be due to invalid IL or missing references) //IL_0855: Expected O, but got Unknown //IL_089c: Unknown result type (might be due to invalid IL or missing references) //IL_08a6: Expected O, but got Unknown //IL_08ed: Unknown result type (might be due to invalid IL or missing references) //IL_08f7: Expected O, but got Unknown //IL_093e: Unknown result type (might be due to invalid IL or missing references) //IL_0948: Expected O, but got Unknown //IL_0a25: Unknown result type (might be due to invalid IL or missing references) //IL_0a2f: Expected O, but got Unknown //IL_0ad6: Unknown result type (might be due to invalid IL or missing references) //IL_0ae0: Expected O, but got Unknown //IL_0b25: Unknown result type (might be due to invalid IL or missing references) //IL_0b2f: Expected O, but got Unknown //IL_0b74: Unknown result type (might be due to invalid IL or missing references) //IL_0b7e: Expected O, but got Unknown //IL_0bc5: Unknown result type (might be due to invalid IL or missing references) //IL_0bcf: Expected O, but got Unknown //IL_0c69: Unknown result type (might be due to invalid IL or missing references) //IL_0c73: Expected O, but got Unknown //IL_0ce6: Unknown result type (might be due to invalid IL or missing references) //IL_0cf0: Expected O, but got Unknown //IL_0d37: Unknown result type (might be due to invalid IL or missing references) //IL_0d41: Expected O, but got Unknown if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing DeadlyDeadlyGoopManager.IgniteGoopsCircle Hook..."); } igniteGoopsCircleHook = new Hook((MethodBase)typeof(DeadlyDeadlyGoopManager).GetMethod("IgniteGoopsCircle", BindingFlags.Static | BindingFlags.Public), typeof(ExpandHooks).GetMethod("IgniteGoopsCircleHook", BindingFlags.Static | BindingFlags.Public)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing TallGrassPatch.BuildPatch Hook..."); } buildPatchHook = new Hook((MethodBase)typeof(TallGrassPatch).GetMethod("BuildPatch", BindingFlags.Instance | BindingFlags.Public), typeof(ExpandHooks).GetMethod("BuildPatchHook", BindingFlags.Instance | BindingFlags.Public), (object)typeof(TallGrassPatch)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing EscapeRopeItem.CanBeUsed Hook..."); } escapeRopeCanBeUsedHook = new Hook((MethodBase)typeof(EscapeRopeItem).GetMethod("CanBeUsed", BindingFlags.Instance | BindingFlags.Public), typeof(ExpandHooks).GetMethod("EscapeRopCanBeUsedHook", BindingFlags.Instance | BindingFlags.Public), (object)typeof(EscapeRopeItem)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing ClearPerLevelData Hook...."); } clearPerLevelDataHook = new Hook((MethodBase)typeof(GameManager).GetMethod("ClearPerLevelData", BindingFlags.Instance | BindingFlags.Public), typeof(ExpandHooks).GetMethod("ClearPerLevelData", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(GameManager)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing ClearActiveGameData Hook...."); } clearActiveGameDataHook = new Hook((MethodBase)typeof(GameManager).GetMethod("ClearActiveGameData", BindingFlags.Instance | BindingFlags.Public), typeof(ExpandHooks).GetMethod("ClearActiveGameData", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(GameManager)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing GetEnemiesString Hook...."); } Stringhook = new Hook((MethodBase)typeof(StringTableManager).GetMethod("GetEnemiesString", BindingFlags.Static | BindingFlags.Public), typeof(ExpandHooks).GetMethod("GetEnemiesString", BindingFlags.Static | BindingFlags.Public)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing ApplyObjectStamp Hook...."); } objectstamphook = new Hook((MethodBase)typeof(TK2DDungeonAssembler).GetMethod("ApplyObjectStamp", BindingFlags.Static | BindingFlags.Public), typeof(ExpandHooks).GetMethod("ApplyObjectStampHook", BindingFlags.Static | BindingFlags.Public)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing LoopBuilderComposite.PlaceRoom Hook...."); } placeRoomHook = new Hook((MethodBase)typeof(LoopBuilderComposite).GetMethod("PlaceRoom", BindingFlags.Static | BindingFlags.Public), typeof(ExpandHooks).GetMethod("PlaceRoomHook", BindingFlags.Static | BindingFlags.Public)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing SemioticDungeonGenSettings.GetRandomFlow Hook...."); } getRandomFlowHook = new Hook((MethodBase)typeof(SemioticDungeonGenSettings).GetMethod("GetRandomFlow", BindingFlags.Instance | BindingFlags.Public), typeof(ExpandHooks).GetMethod("GetRandomFlowHook", BindingFlags.Instance | BindingFlags.Public), (object)typeof(SemioticDungeonGenSettings)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing GetKicked.HandlePitfall Hook...."); } handlePitfallHook = new Hook((MethodBase)typeof(GetKicked).GetMethod("HandlePitfall", BindingFlags.Instance | BindingFlags.NonPublic), typeof(ExpandHooks).GetMethod("HandlePitfallHook", BindingFlags.Instance | BindingFlags.Public), (object)typeof(GetKicked)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing ElevatorArrivalController.Update Hook...."); } arrivalElevatorUpdateHook = new Hook((MethodBase)typeof(ElevatorArrivalController).GetMethod("Update", BindingFlags.Instance | BindingFlags.NonPublic), typeof(ExpandHooks).GetMethod("ArrivalElevatorUpdateHook", BindingFlags.Instance | BindingFlags.Public), (object)typeof(ElevatorArrivalController)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing TK2DDungeonAssembler.ConstructTK2DDungeon Hook...."); } constructTK2DDungeonHook = new Hook((MethodBase)typeof(TK2DDungeonAssembler).GetMethod("ConstructTK2DDungeon", BindingFlags.Instance | BindingFlags.Public), typeof(ExpandHooks).GetMethod("ConstructTK2DDungeonHook", BindingFlags.Instance | BindingFlags.Public), (object)typeof(TK2DDungeonAssembler)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing HellDragZoneController.HandleGrabbyGrab Hook...."); } handleGrabbyGrabHook = new Hook((MethodBase)typeof(HellDragZoneController).GetMethod("HandleGrabbyGrab", BindingFlags.Instance | BindingFlags.NonPublic), typeof(ExpandHooks).GetMethod("HandleGrabbyGrabHook", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(HellDragZoneController)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing SellCellController.ConfigureOnPlacement Hook...."); } sellPitConfigureOnPlacementHook = new Hook((MethodBase)typeof(SellCellController).GetMethod("ConfigureOnPlacement", BindingFlags.Instance | BindingFlags.Public), typeof(ExpandHooks).GetMethod("SellPitConfigureOnPlacementHook", BindingFlags.Instance | BindingFlags.Public), (object)typeof(SellCellController)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing BaseShopController.PlayerFired Hook...."); } playerFiredHook = new Hook((MethodBase)typeof(BaseShopController).GetMethod("PlayerFired", BindingFlags.Instance | BindingFlags.NonPublic), typeof(ExpandHooks).GetMethod("PlayerFiredHook", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(BaseShopController)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing OccupiedCells.FlagCells Hook...."); } flagCellsHook = new Hook((MethodBase)typeof(OccupiedCells).GetMethod("FlagCells", BindingFlags.Instance | BindingFlags.Public), typeof(ExpandHooks).GetMethod("FlagCellsHook", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(OccupiedCells)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing SecretRoomBuilder.GenerateRoomDoorMesh Hook...."); } generateRoomDoorMeshHook = new Hook((MethodBase)typeof(SecretRoomBuilder).GetMethod("GenerateRoomDoorMesh", BindingFlags.Static | BindingFlags.NonPublic), typeof(ExpandHooks).GetMethod("GenerateRoomDoorMeshHook", BindingFlags.Static | BindingFlags.NonPublic)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing AIAnimator.AnimationCompleted Hook...."); } animationCompletedHook = new Hook((MethodBase)typeof(AIAnimator).GetMethod("AnimationCompleted", BindingFlags.Instance | BindingFlags.NonPublic), typeof(ExpandHooks).GetMethod("AnimationCompletedHook", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(AIAnimator)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing PunchoutController.TeardownPunchout Hook...."); } teardownPunchoutHook = new Hook((MethodBase)typeof(PunchoutController).GetMethod("TeardownPunchout", BindingFlags.Instance | BindingFlags.NonPublic), typeof(ExpandHooks).GetMethod("TeardownPunchout_Hook", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(PunchoutController)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing TK2DDungeonAssembler.BuildBorderLayerCenterJungle Hook...."); } buildorderLayerCenterJungleHook = new Hook((MethodBase)typeof(TK2DDungeonAssembler).GetMethod("BuildBorderLayerCenterJungle", BindingFlags.Instance | BindingFlags.NonPublic), typeof(ExpandHooks).GetMethod("BuildBorderLayerCenterJungleHook", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(TK2DDungeonAssembler)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing TK2DDungeonAssembler.BuildOcclusionLayerCenterJungle Hook...."); } buildOcclusionLayerCenterJungle = new Hook((MethodBase)typeof(TK2DDungeonAssembler).GetMethod("BuildOcclusionLayerCenterJungle", BindingFlags.Instance | BindingFlags.NonPublic), typeof(ExpandHooks).GetMethod("BuildBorderLayerCenterJungleHook", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(TK2DDungeonAssembler)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing TK2DDungeonAssembler.GetTypeBorderGridForBorderIndex Hook...."); } getTypeBorderGridForBorderIndexHook = new Hook((MethodBase)typeof(TK2DDungeonAssembler).GetMethod("GetTypeBorderGridForBorderIndex", BindingFlags.Instance | BindingFlags.NonPublic), typeof(ExpandHooks).GetMethod("GetTypeBorderGridForBorderIndexHook", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(TK2DDungeonAssembler)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing PaydayDrillItem.HandleCombatWaves Hook...."); } paydayDrillCombatWaveHook = new Hook((MethodBase)typeof(PaydayDrillItem).GetMethod("HandleCombatWaves", BindingFlags.Instance | BindingFlags.NonPublic), typeof(ExpandPaydayDrillItemFixes).GetMethod("HandleCombatWavesHook", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(PaydayDrillItem)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing PaydayDrillItem.HandleSeamlessTransitionToCombatRoom Hook...."); } new Hook((MethodBase)typeof(PaydayDrillItem).GetMethod("HandleSeamlessTransitionToCombatRoom", BindingFlags.Instance | BindingFlags.NonPublic), typeof(ExpandPaydayDrillItemFixes).GetMethod("ExpandHandleSeamlessTransitionToCombatRoomHook", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(PaydayDrillItem)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing DungeonData.PostGenerationCleanup Hook...."); } postGenerationCleanupHook = new Hook((MethodBase)typeof(DungeonData).GetMethod("PostGenerationCleanup", BindingFlags.Instance | BindingFlags.Public), typeof(ExpandHooks).GetMethod("PostGenerationCleanupHook", BindingFlags.Instance | BindingFlags.Public), (object)typeof(DungeonData)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing DungeonDoorController.CheckForPlayerCollision Hook...."); } checkforPlayerCollisionHook = new Hook((MethodBase)typeof(DungeonDoorController).GetMethod("CheckForPlayerCollision", BindingFlags.Instance | BindingFlags.NonPublic), typeof(ExpandDungeonDoorManager).GetMethod("CheckForPlayerCollisionHook", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(DungeonDoorController)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing DungeonDoorController.Open Hook...."); } doorOpenHook = new Hook((MethodBase)typeof(DungeonDoorController).GetMethod("Open", BindingFlags.Instance | BindingFlags.Public), typeof(ExpandDungeonDoorManager).GetMethod("Expand_Open", BindingFlags.Instance | BindingFlags.Public), (object)typeof(DungeonDoorController)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing Gun.ThrowGun Hook...."); } throwGunHook = new Hook((MethodBase)typeof(Gun).GetMethod("ThrowGun", BindingFlags.Instance | BindingFlags.NonPublic), typeof(ExpandHooks).GetMethod("ThrowGunHook", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(Gun)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing Dungeon.PlacePlayerInRoom Hook...."); } placePlayerInRoomHook = new Hook((MethodBase)typeof(Dungeon).GetMethod("PlacePlayerInRoom", BindingFlags.Instance | BindingFlags.NonPublic), typeof(ExpandHooks).GetMethod("PlacePlayerInRoomHook", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(Dungeon)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing DungeonData.FloodFillDungeonInterior Hook...."); } floodFillDungeonInteriorHook = new Hook((MethodBase)typeof(DungeonData).GetMethod("FloodFillDungeonInterior", BindingFlags.Instance | BindingFlags.NonPublic), typeof(ExpandHooks).GetMethod("FloodFillDungeonInteriorHook", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(DungeonData)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing PhysicsEngine.InitNearbyTileCheck Hook...."); } initNearbyTileCheckHook = new Hook((MethodBase)typeof(PhysicsEngine).GetMethod("InitNearbyTileCheck", BindingFlags.Instance | BindingFlags.NonPublic, Type.DefaultBinder, CallingConventions.Any, new Type[10] { typeof(float), typeof(float), typeof(float), typeof(float), typeof(tk2dTileMap), typeof(IntVector2), typeof(float), typeof(float), typeof(IntVector2), typeof(DungeonData) }, new ParameterModifier[0]), typeof(ExpandHooks).GetMethod("InitNearbyTileCheck", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(PhysicsEngine)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing PhysicsEngine.GetTile Hook...."); } getTileHook = new Hook((MethodBase)typeof(PhysicsEngine).GetMethod("GetTile", BindingFlags.Instance | BindingFlags.NonPublic, Type.DefaultBinder, CallingConventions.Any, new Type[6] { typeof(int), typeof(int), typeof(tk2dTileMap), typeof(int), typeof(string), typeof(DungeonData) }, new ParameterModifier[0]), typeof(ExpandHooks).GetMethod("GetTile", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(PhysicsEngine)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing FloorChestPlacer.ConfigureOnPlacement Hook...."); } floorChestPlacerConfigureOnPlacementHook = new Hook((MethodBase)typeof(FloorChestPlacer).GetMethod("ConfigureOnPlacement", BindingFlags.Instance | BindingFlags.Public), typeof(ExpandHooks).GetMethod("FloorChestPlacerConfigureOnPlacementHook"), (object)typeof(FloorChestPlacer)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing ShrineBenefit.ApplyBenefit Hook...."); } applyBenefitHook = new Hook((MethodBase)typeof(ShrineBenefit).GetMethod("ApplyBenefit", BindingFlags.Instance | BindingFlags.Public), typeof(ExpandHooks).GetMethod("ApplyBenefit"), (object)typeof(ShrineBenefit)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing ShrineBenefit.ApplyBenefit Hook...."); } flagCellsHook = new Hook((MethodBase)typeof(FlameTrapChallengeModifier).GetMethod("OnDestroy", BindingFlags.Instance | BindingFlags.NonPublic), typeof(ExpandHooks).GetMethod("FlameTrapOnDestroyHook", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(FlameTrapChallengeModifier)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing TK2DDungeonAssembler.HandleLostWoodsMirroring Hook...."); } handleLostWoodsMirroringHook = new Hook((MethodBase)typeof(TK2DDungeonAssembler).GetMethod("HandleLostWoodsMirroring", BindingFlags.Instance | BindingFlags.NonPublic, Type.DefaultBinder, CallingConventions.Any, new Type[5] { typeof(CellData), typeof(Dungeon), typeof(tk2dTileMap), typeof(int), typeof(int) }, new ParameterModifier[0]), typeof(ExpandHooks).GetMethod("HandleLostWoodsMirroringHook", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(TK2DDungeonAssembler)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing ElevatorDepartureController.TransitionToDepart Hook...."); } transitionToDepartHook = new Hook((MethodBase)typeof(ElevatorDepartureController).GetMethod("TransitionToDepart", BindingFlags.Instance | BindingFlags.NonPublic, Type.DefaultBinder, CallingConventions.Any, new Type[2] { typeof(tk2dSpriteAnimator), typeof(tk2dSpriteAnimationClip) }, new ParameterModifier[0]), typeof(ExpandHooks).GetMethod("TransitionToDepartHook", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(ElevatorDepartureController)); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Installing DungeonData.ExciseElbows Hook...."); } exciseElbowsHook = new Hook((MethodBase)typeof(DungeonData).GetMethod("ExciseElbows", BindingFlags.Instance | BindingFlags.NonPublic), typeof(ExpandHooks).GetMethod("ExciseElbowsHook", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(DungeonData)); } [HarmonyPatch(typeof(GameManager), "Awake")] [HarmonyPostfix] private static void GameManager_AwakePatch(GameManager __instance) { __instance.OnNewLevelFullyLoaded += ExpandObjectMods.InitSpecialMods; ExpandDungeonPrefabs.InitFloorDefinitions(__instance); ExpandFoyer.CreateFoyerController(); ExpandSettings.HasVisitedBackrooms = false; ExpandSettings.allowGlitchFloor = false; } [HarmonyPatch(typeof(ChangeToNewCharacter), "HandleCharacterChange")] [HarmonyPostfix] public static void HandleCharacterChangePatch(ChangeToNewCharacter __instance) { ExpandCasinoRoomController expandCasinoRoomController = Object.FindObjectOfType(); if (Object.op_Implicit((Object)(object)expandCasinoRoomController)) { if (Object.op_Implicit((Object)(object)expandCasinoRoomController.CasinoGame_GunBall)) { expandCasinoRoomController.CasinoGame_GunBall.Reset(); } if (Object.op_Implicit((Object)(object)expandCasinoRoomController.CasinoGame_Punchout)) { expandCasinoRoomController.CasinoGame_Punchout.Reset(); } } } private void FloodFillDungeonInteriorHook(Action orig, DungeonData self) { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Invalid comparison between Unknown and I4 //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Invalid comparison between Unknown and I4 Stack stack = new Stack(); for (int i = 0; i < self.rooms.Count; i++) { if (self.rooms[i] != self.Entrance && !self.rooms[i].IsStartOfWarpWing) { continue; } try { stack.Push(self[self.rooms[i].GetRandomAvailableCellDumb()]); } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[ExpandTheGungeon] Warning: Exception caught at DungeonData.FloodFillDungeonInterior!", false); Debug.LogException(ex); } } } try { while (stack.Count > 0) { CellData val = stack.Pop(); if ((int)val.type == 1) { continue; } List cellNeighbors = self.GetCellNeighbors(val, false); val.isGridConnected = true; for (int j = 0; j < cellNeighbors.Count; j++) { if (cellNeighbors[j] != null && (int)cellNeighbors[j].type != 1 && !cellNeighbors[j].isGridConnected) { stack.Push(cellNeighbors[j]); } } } } catch (Exception ex2) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[ExpandTheGungeon] Warning: Exception caught at DungeonData.FloodFillDungeonInterior!", false); Debug.LogException(ex2); } } } public static void IgniteGoopsCircleHook(Action orig, Vector2 position, float radius) { //IL_0001: 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) orig(position, radius); for (int i = 0; i < ExpandStaticReferenceManager.AllGrasses.Count; i++) { ExpandStaticReferenceManager.AllGrasses[i].IgniteCircle(position, radius); } } public void BuildPatchHook(Action orig, TallGrassPatch self) { ExpandTallGrassPatchSystem expandTallGrassPatchSystem = ((Component)self).gameObject.AddComponent(); expandTallGrassPatchSystem.cells = self.cells; Object.Destroy((Object)(object)((Component)self).gameObject.GetComponent()); expandTallGrassPatchSystem.BuildPatch(); } public bool EscapeRopCanBeUsedHook(Func orig, EscapeRopeItem self, PlayerController user) { if (orig(self, user) && ((user != null) ? user.CurrentRoom : null) != null && !user.CurrentRoom.IsActuallyWildWestEntrance()) { return !ExpandTheGungeon.MrCapInUse; } return false; } private void ClearPerLevelData(Action orig, GameManager self) { ExpandStaticReferenceManager.ClearStaticPerLevelData(); orig(self); } private void ClearActiveGameData(Action orig, GameManager self, bool destroyGameManager, bool endSession) { ExpandStaticReferenceManager.ClearStaticPerLevelData(); orig(self, destroyGameManager, endSession); } private void FlagCellsHook(Action orig, OccupiedCells self) { try { orig(self); } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] Warning: Exception caught in OccupiedCells.FlagCells!", false); Debug.Log((object)"Warning: Exception caught in OccupiedCells.FlagCells!"); Debug.LogException(ex); } } } protected virtual void EnteredNewRoomHook(Action orig, RoomHandler self, PlayerController player) { orig(self, player); if (string.IsNullOrEmpty(self.GetRoomName())) { ETGModConsole.Log((object)"[DEBUG] Player entered a room with null name field (hallway room?)", false); } else { ETGModConsole.Log((object)("[DEBUG] Player entered room with name '" + self.GetRoomName() + "' ."), false); } } public static string GetEnemiesString(Func orig, string key, int index = -1) { string text = orig(key, index); if (text != "ENEMIES_STRING_NOT_FOUND") { return text; } return key; } public static GameObject ApplyObjectStampHook(int ix, int iy, ObjectStampData osd, Dungeon d, tk2dTileMap map, bool flipX = false, bool isLightStamp = false) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: 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_0039: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Invalid comparison between Unknown and I4 //IL_0040: 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_0048: 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_0192: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0067: 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_01ed: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: Invalid comparison between Unknown and I4 //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Invalid comparison between Unknown and I4 //IL_020c: Unknown result type (might be due to invalid IL or missing references) //IL_0212: Invalid comparison between Unknown and I4 //IL_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Invalid comparison between Unknown and I4 //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Invalid comparison between Unknown and I4 //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Invalid comparison between Unknown and I4 //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_02c9: Unknown result type (might be due to invalid IL or missing references) //IL_02dd: 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_0271: Unknown result type (might be due to invalid IL or missing references) //IL_0276: Unknown result type (might be due to invalid IL or missing references) //IL_027a: Unknown result type (might be due to invalid IL or missing references) //IL_0299: Unknown result type (might be due to invalid IL or missing references) //IL_02aa: Unknown result type (might be due to invalid IL or missing references) //IL_02af: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_0342: Unknown result type (might be due to invalid IL or missing references) //IL_0347: 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_0354: Unknown result type (might be due to invalid IL or missing references) //IL_0356: Invalid comparison between Unknown and I4 //IL_0360: Unknown result type (might be due to invalid IL or missing references) //IL_0362: Invalid comparison between Unknown and I4 try { StampSpace occupySpace = ((StampDataBase)osd).occupySpace; for (int i = 0; i < ((StampDataBase)osd).width; i++) { for (int j = 0; j < ((StampDataBase)osd).height; j++) { CellData val = d.data.cellData[ix + i][iy + j]; CellVisualData cellVisualData = val.cellVisualData; if ((int)cellVisualData.forcedMatchingStyle != 0 && cellVisualData.forcedMatchingStyle != ((StampDataBase)osd).intermediaryMatchingStyle) { return null; } if ((int)((StampDataBase)osd).placementRule == 3 && isLightStamp) { continue; } bool flag = cellVisualData.containsWallSpaceStamp; if (cellVisualData.facewallGridPreventsWallSpaceStamp && isLightStamp) { flag = false; } if ((int)occupySpace == 2) { if (cellVisualData.containsObjectSpaceStamp || flag || (!isLightStamp && cellVisualData.containsLight)) { return null; } if ((int)val.type == 4) { return null; } } else if ((int)occupySpace == 0) { if (cellVisualData.containsObjectSpaceStamp) { return null; } if ((int)val.type == 4) { return null; } } else if ((int)occupySpace == 1 && (flag || (!isLightStamp && cellVisualData.containsLight))) { return null; } } } int num = (((int)occupySpace != 0) ? GlobalDungeonData.wallStampLayerIndex : GlobalDungeonData.objectStampLayerIndex); float z = map.data.Layers[num].z; Vector3 val2 = osd.objectReference.transform.position; ObjectStampOptions component = osd.objectReference.GetComponent(); if ((Object)(object)component != (Object)null) { val2 = component.GetPositionOffset(); } GameObject val3 = Object.Instantiate(osd.objectReference); val3.transform.position = new Vector3((float)ix, (float)iy, z) + val2; if (!isLightStamp && (int)((StampDataBase)osd).placementRule == 3) { val3.transform.position = new Vector3((float)(ix + 1), (float)iy, z) + Vector3Extensions.WithX(val2, 0f - val2.x); } tk2dSprite component2 = val3.GetComponent(); RoomHandler absoluteRoomFromPosition = GameManager.Instance.Dungeon.data.GetAbsoluteRoomFromPosition(new IntVector2(ix, iy)); MinorBreakable componentInChildren = val3.GetComponentInChildren(); if (Object.op_Implicit((Object)(object)componentInChildren)) { if ((int)((StampDataBase)osd).placementRule == 5) { componentInChildren.IgnoredForPotShotsModifier = true; } componentInChildren.IsDecorativeOnly = true; } IPlaceConfigurable @interface = GameObjectExtensions.GetInterface(val3); if (@interface != null) { @interface.ConfigureOnPlacement(absoluteRoomFromPosition); } SurfaceDecorator component3 = val3.GetComponent(); if ((Object)(object)component3 != (Object)null) { component3.Decorate(absoluteRoomFromPosition); } if (flipX) { if ((Object)(object)component2 != (Object)null) { ((tk2dBaseSprite)component2).FlipX = true; Bounds bounds = ((tk2dBaseSprite)component2).GetBounds(); float num2 = Mathf.Ceil(((Bounds)(ref bounds)).size.x); val3.transform.position = val3.transform.position + new Vector3(num2, 0f, 0f); } else { val3.transform.localScale = Vector3.Scale(val3.transform.localScale, new Vector3(-1f, 1f, 1f)); } } val3.transform.parent = absoluteRoomFromPosition?.hierarchyParent; DepthLookupManager.ProcessRenderer(val3.GetComponentInChildren()); if ((Object)(object)component2 != (Object)null) { ((tk2dBaseSprite)component2).UpdateZDepth(); } for (int k = 0; k < ((StampDataBase)osd).width; k++) { for (int l = 0; l < ((StampDataBase)osd).height; l++) { CellVisualData cellVisualData2 = d.data.cellData[ix + k][iy + l].cellVisualData; if ((int)occupySpace == 0) { cellVisualData2.containsObjectSpaceStamp = true; } if ((int)occupySpace == 1) { cellVisualData2.containsWallSpaceStamp = true; } if ((int)occupySpace == 2) { cellVisualData2.containsObjectSpaceStamp = true; cellVisualData2.containsWallSpaceStamp = true; } } } return val3; } catch (Exception ex) { if (ExpandSettings.debugMode) { Debug.Log((object)"Warning: Exception caught during ApplyObjectStamp method during Dungeon generation!"); Debug.LogException(ex); } return null; } } public static RoomHandler PlaceRoomHook(BuilderFlowNode current, SemioticLayoutManager layout, IntVector2 newRoomPosition) { //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: 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_00fc: Expected O, but got Unknown //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Expected O, but got Unknown //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Invalid comparison between Unknown and I4 try { Dungeon val = ((!Object.op_Implicit((Object)(object)GameManager.Instance.CurrentlyGeneratingDungeonPrefab)) ? GameManager.Instance.Dungeon : GameManager.Instance.BestGenerationDungeonPrefab); if (current.assignedPrototypeRoom.overrideRoomVisualType >= val.roomMaterialDefinitions.Length) { if (ExpandSettings.debugMode) { string text = "Room visual subtype isn't supported by current tileset! Default visual style will be used to prevent exceptions/softlock!"; ETGModConsole.Log((object)"[ExpandTheGungeon] WARNING: Exception prevented during LoopBuilderComposite.PlaceRoom!", false); ETGModConsole.Log((object)text, false); Debug.Log((object)"[ExpandTheGungeon] WARNING: Exception prevented during LoopBuilderComposite.PlaceRoom!"); Debug.Log((object)text); if (!string.IsNullOrEmpty(((Object)current.assignedPrototypeRoom).name)) { ETGModConsole.Log((object)("Name of assigned room: " + ((Object)current.assignedPrototypeRoom).name), false); Debug.Log((object)("Name of assigned room: " + ((Object)current.assignedPrototypeRoom).name)); } } PrototypeDungeonRoom val2 = Object.Instantiate(current.assignedPrototypeRoom); val2.overrideRoomVisualType = -1; current.assignedPrototypeRoom = val2; } IntVector2 val3 = default(IntVector2); ((IntVector2)(ref val3))..ctor(current.assignedPrototypeRoom.Width, current.assignedPrototypeRoom.Height); CellArea val4 = new CellArea(newRoomPosition, val3, 0); val4.prototypeRoom = current.assignedPrototypeRoom; val4.instanceUsedExits = new List(); if (current.usesOverrideCategory) { val4.PrototypeRoomCategory = current.overrideCategory; } RoomHandler val5 = new RoomHandler(val4); val5.distanceFromEntrance = 0; val5.CalculateOpulence(); val5.CanReceiveCaps = current.node.receivesCaps; current.instanceRoom = val5; if ((Object)(object)val5.area.prototypeRoom != (Object)null && (int)current.Category == 6 && current.parentBuilderNode != null && current.parentBuilderNode.instanceRoom != null) { val5.AssignRoomVisualType(current.parentBuilderNode.instanceRoom.RoomVisualSubtype, false); } layout.StampCellAreaToLayout(val5, false); return val5; } catch (Exception ex) { ETGModConsole.Log((object)"[ExpandTheGungeon] [DEBUG] ERROR: Exception during LoopBuilderComposite.PlaceRoom!", false); ETGModConsole.Log((object)("[DEBUG] Name of assigned room: " + ((Object)current.assignedPrototypeRoom).name), false); if (current.instanceRoom != null) { ETGModConsole.Log((object)("[DEBUG] Name of instanced room: " + current.instanceRoom.GetRoomName()), false); } Debug.Log((object)"ERROR: Exception during LoopBuilderComposite.PlaceRoom!"); Debug.Log((object)("Name of assigned room: " + ((Object)current.assignedPrototypeRoom).name)); Debug.LogException(ex); return null; } } public DungeonFlow GetRandomFlowHook(Func orig, SemioticDungeonGenSettings self) { //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Invalid comparison between Unknown and I4 //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Invalid comparison between Unknown and I4 //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Invalid comparison between Unknown and I4 //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Invalid comparison between Unknown and I4 //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Invalid comparison between Unknown and I4 //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Invalid comparison between Unknown and I4 //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Invalid comparison between Unknown and I4 //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Expected I4, but got Unknown //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Invalid comparison between Unknown and I4 //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Invalid comparison between Unknown and I4 //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Invalid comparison between Unknown and I4 //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Invalid comparison between Unknown and I4 try { return orig(self); } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] WARNING: Attempted to return a null DungeonFlow or primary flow list is empty in SemioticDungeonGenSettings.GetRandomFlow!", false); } Debug.Log((object)"[ExpandTheGungeon] WARNING: Attempted to return a null DungeonFlow or primary flow list is empty in SemioticDungeonGenSettings.GetRandomFlow!"); Debug.LogException(ex); if ((int)GameManager.Instance.CurrentLevelOverrideState == 1) { return ExpandAssets.LoadOfficialAsset("Foyer Flow", ExpandAssets.AssetSource.SharedAuto2); } Dungeon dungeon = GameManager.Instance.Dungeon; if (!Object.op_Implicit((Object)(object)dungeon)) { return FlowDatabase.GetOrLoadByName("Complex_Flow_Test"); } List list = new List(); ValidTilesets tilesetId = dungeon.tileIndices.tilesetId; if ((int)tilesetId <= 32) { if ((int)tilesetId <= 8) { switch (tilesetId - 1) { default: { if ((int)tilesetId != 8) { break; } DungeonFlow[] knownFlows = ExpandDungeonFlow.KnownFlows; foreach (DungeonFlow val4 in knownFlows) { if (!string.IsNullOrEmpty((val4 != null) ? ((Object)val4).name : null) && ((Object)val4).name.ToLower().StartsWith("f2a_cathedral_flow")) { list.Add(val4); } } break; } case 1: { DungeonFlow[] knownFlows = ExpandDungeonFlow.KnownFlows; foreach (DungeonFlow val2 in knownFlows) { if (!string.IsNullOrEmpty((val2 != null) ? ((Object)val2).name : null) && ((Object)val2).name.ToLower().StartsWith("f1_castle_flow")) { list.Add(val2); } } break; } case 3: { DungeonFlow[] knownFlows = ExpandDungeonFlow.KnownFlows; foreach (DungeonFlow val3 in knownFlows) { if (!string.IsNullOrEmpty((val3 != null) ? ((Object)val3).name : null) && ((Object)val3).name.ToLower().StartsWith("f1a_sewers_flow")) { list.Add(val3); } } break; } case 0: { DungeonFlow[] knownFlows = ExpandDungeonFlow.KnownFlows; foreach (DungeonFlow val in knownFlows) { if (!string.IsNullOrEmpty((val != null) ? ((Object)val).name : null) && ((Object)val).name.ToLower().StartsWith("f2_gungeon_flow")) { list.Add(val); } } break; } case 2: break; } } else if ((int)tilesetId != 16) { if ((int)tilesetId == 32) { DungeonFlow[] knownFlows = ExpandDungeonFlow.KnownFlows; foreach (DungeonFlow val5 in knownFlows) { if (!string.IsNullOrEmpty((val5 != null) ? ((Object)val5).name : null) && ((Object)val5).name.ToLower().StartsWith("f4_catacomb_flow")) { list.Add(val5); } } } } else { DungeonFlow[] knownFlows = ExpandDungeonFlow.KnownFlows; foreach (DungeonFlow val6 in knownFlows) { if (!string.IsNullOrEmpty((val6 != null) ? ((Object)val6).name : null) && ((Object)val6).name.ToLower().StartsWith("f3_mines_flow")) { list.Add(val6); } } } } else if ((int)tilesetId <= 128) { if ((int)tilesetId != 64) { if ((int)tilesetId == 128) { DungeonFlow[] knownFlows = ExpandDungeonFlow.KnownFlows; foreach (DungeonFlow val7 in knownFlows) { if (!string.IsNullOrEmpty((val7 != null) ? ((Object)val7).name : null) && ((Object)val7).name.ToLower().StartsWith("f6_bullethell_flow")) { list.Add(val7); } } } } else { DungeonFlow[] knownFlows = ExpandDungeonFlow.KnownFlows; foreach (DungeonFlow val8 in knownFlows) { if (!string.IsNullOrEmpty((val8 != null) ? ((Object)val8).name : null) && ((Object)val8).name.ToLower().StartsWith("f5_forge_flow")) { list.Add(val8); } } } } else if ((int)tilesetId != 2048) { if ((int)tilesetId == 32768) { DungeonFlow[] knownFlows = ExpandDungeonFlow.KnownFlows; foreach (DungeonFlow val9 in knownFlows) { if (!string.IsNullOrEmpty((val9 != null) ? ((Object)val9).name : null) && ((Object)val9).name.ToLower().StartsWith("resourcefulratlair_flow")) { list.Add(val9); } } } } else { DungeonFlow[] knownFlows = ExpandDungeonFlow.KnownFlows; foreach (DungeonFlow val10 in knownFlows) { if (!string.IsNullOrEmpty((val10 != null) ? ((Object)val10).name : null) && ((Object)val10).name.ToLower().StartsWith("fs4_nakatomi_flow")) { list.Add(val10); } } } if (list.Count > 0) { if (list.Count == 1) { return list[0]; } return list[BraveRandom.GenerationRandomRange(0, list.Count)]; } if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] WARNING: Could not determine a proper fallback flow! Using a default flow instead!", false); } Debug.Log((object)"WARNING: Could not determine a proper fallback flow! Using a default flow instead!"); return FlowDatabase.GetOrLoadByName("Complex_Flow_Test"); } } public IEnumerator HandlePitfallHook(Func orig, GetKicked self, SpeculativeRigidbody srb) { FieldInfo field = typeof(GetKicked).GetField("m_isFalling", BindingFlags.Instance | BindingFlags.NonPublic); field.SetValue(self, true); RoomHandler firstRoom = Vector3Extensions.GetAbsoluteRoom(srb.UnitCenter); TalkDoerLite talkdoer = ((Component)srb).GetComponent(); firstRoom.DeregisterInteractable((IPlayerInteractable)(object)talkdoer); srb.Velocity = ((Vector2)(ref srb.Velocity)).normalized * 0.125f; AIAnimator anim = ((Component)srb).GetComponent(); anim.PlayUntilFinished("pitfall", false, (string)null, -1f, false); while (anim.IsPlaying("pitfall")) { yield return null; } anim.PlayUntilCancelled("kick1", false, (string)null, -1f, false); srb.Velocity = Vector2.zero; IntVector2 val2; if (firstRoom.TargetPitfallRoom != null) { RoomHandler targetPitfallRoom = firstRoom.TargetPitfallRoom; Transform[] componentsInChildren = ((Component)targetPitfallRoom.hierarchyParent).GetComponentsInChildren(true); Transform val = null; for (int i = 0; i < componentsInChildren.Length; i++) { if (((Object)componentsInChildren[i]).name == "Arrival") { val = componentsInChildren[i]; break; } } if ((Object)(object)val != (Object)null) { ((BraveBehaviour)srb).transform.position = val.position + new Vector3(1f, 1f, 0f); srb.Reinitialize(); RoomHandler.unassignedInteractableObjects.Add((IPlayerInteractable)(object)talkdoer); yield break; } if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] Destination room does not have an Arrival object! Using a random location for the landing spot.", false); } Debug.Log((object)"[HutongGames.PlayMaker.Actions.GetKicked] Destination room does not have an Arrival object! Using a random location for the landing spot."); IntVector2? randomAvailableCellSmart = ExpandUtility.GetRandomAvailableCellSmart(targetPitfallRoom, new IntVector2(2, 2), relativeToRoom: false); if (randomAvailableCellSmart.HasValue && randomAvailableCellSmart.HasValue) { Transform transform = ((BraveBehaviour)srb).transform; val2 = randomAvailableCellSmart.Value; transform.position = ((IntVector2)(ref val2)).ToVector3(((BraveBehaviour)srb).transform.position.z); srb.Reinitialize(); RoomHandler.unassignedInteractableObjects.Add((IPlayerInteractable)(object)talkdoer); field.SetValue(self, false); } else { Object.Destroy((Object)(object)((Component)talkdoer).gameObject); } yield break; } if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] Rat corpse fell into a pit that belonged to a room that didn't have TargetPitFallRoom setup! Using fall back method.", false); } Debug.Log((object)"[HutongGames.PlayMaker.Actions.GetKicked] Rat corpse fell into a pit that belonged to a room that didn't have TargetPitFallRoom setup! Using fall back method instead."); if (GameManager.Instance.Dungeon.data.rooms != null && GameManager.Instance.Dungeon.data.rooms.Count > 0) { RoomHandler absoluteRoom = Vector3Extensions.GetAbsoluteRoom(srb.UnitCenter); RoomHandler val3 = BraveUtility.RandomElement(GameManager.Instance.Dungeon.data.rooms); RoomHandler val4 = null; if (absoluteRoom == null) { Object.Destroy((Object)(object)((Component)talkdoer).gameObject); yield break; } for (int j = 0; j < GameManager.Instance.Dungeon.data.rooms.Count; j++) { if (GameManager.Instance.Dungeon.data.rooms[j] != null && GameManager.Instance.Dungeon.data.rooms[j].GetRoomName() != null && GameManager.Instance.Dungeon.data.rooms[j].GetRoomName() != string.Empty && GameManager.Instance.Dungeon.data.rooms[j].GetRoomName().ToLower().StartsWith("elevatormaintenance")) { val4 = GameManager.Instance.Dungeon.data.rooms[j]; break; } } if (absoluteRoom.GetRoomName().StartsWith(GameManager.Instance.Dungeon.data.Entrance.GetRoomName()) && val4 != null) { Transform transform2 = ((BraveBehaviour)srb).transform; val2 = new IntVector2(6, 6) + val4.area.basePosition; transform2.position = ((IntVector2)(ref val2)).ToVector3(((BraveBehaviour)srb).transform.position.z); srb.Reinitialize(); RoomHandler.unassignedInteractableObjects.Add((IPlayerInteractable)(object)talkdoer); field.SetValue(self, false); yield break; } if (val3 == null) { Object.Destroy((Object)(object)((Component)talkdoer).gameObject); yield break; } IntVector2? randomAvailableCellSmart2 = ExpandUtility.GetRandomAvailableCellSmart(val3, new IntVector2(2, 2), relativeToRoom: false); if (randomAvailableCellSmart2.HasValue) { Transform transform3 = ((BraveBehaviour)srb).transform; val2 = randomAvailableCellSmart2.Value; transform3.position = ((IntVector2)(ref val2)).ToVector3(((BraveBehaviour)srb).transform.position.z); srb.Reinitialize(); RoomHandler.unassignedInteractableObjects.Add((IPlayerInteractable)(object)talkdoer); field.SetValue(self, false); } else { Object.Destroy((Object)(object)((Component)talkdoer).gameObject); } } else { Object.Destroy((Object)(object)((Component)talkdoer).gameObject); } } public void ArrivalElevatorUpdateHook(Action orig, ElevatorArrivalController self) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) if (!Vector3Extensions.GetAbsoluteRoom(((Component)self).gameObject.transform.position).HasActiveEnemies((ActiveEnemyType)1)) { orig(self); } } public IEnumerator ConstructTK2DDungeonHook(Func orig, TK2DDungeonAssembler self, Dungeon d, tk2dTileMap map) { for (int j = 0; j < d.data.Width; j++) { for (int k = 0; k < d.data.Height; k++) { try { self.BuildTileIndicesForCell(d, map, j, k); } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] Exception caught in TK2DDungeonAssembler.ConstructTK2DDungeonHook at TK2DDungeonAssembler.BuildTileIndicesForCell!", false); Debug.Log((object)"Exception caught in TK2DDungeonAssembler.ConstructTK2DDungeonHook at TK2DDungeonAssembler.BuildTileIndicesForCell!"); Debug.LogException(ex); } } } } yield return null; ReflectionHelpers.ReflectGetField(typeof(TK2DDungeonAssembler), "t", self); if ((int)d.tileIndices.tilesetId == 1024 || (int)d.tileIndices.tilesetId == 16384) { for (int l = 0; l < d.data.Width; l++) { for (int m = 0; m < d.data.Height; m++) { CellData val = d.data.cellData[l][m]; ReflectionHelpers.ReflectGetField(typeof(TK2DDungeonAssembler), "t", self); if (val != null) { if ((int)val.type == 2) { ReflectionHelpers.InvokeMethod(typeof(TK2DDungeonAssembler), "BuildShadowIndex", self, new object[5] { val, d, map, l, m }); } else if ((int)val.type == 4) { ReflectionHelpers.InvokeMethod(typeof(TK2DDungeonAssembler), "BuildPitShadowIndex", self, new object[5] { val, d, map, l, m }); } } } } } TK2DInteriorDecorator decorator = new TK2DInteriorDecorator(self); decorator.PlaceLightDecoration(d, map); for (int i = 0; i < d.data.rooms.Count; i++) { if ((Object)(object)d.data.rooms[i].area.prototypeRoom == (Object)null || d.data.rooms[i].area.prototypeRoom.usesProceduralDecoration) { decorator.HandleRoomDecoration(d.data.rooms[i], d, map); } else { decorator.HandleRoomDecorationMinimal(d.data.rooms[i], d, map); } if (i % 5 == 0) { yield return null; } } if ((d.data.rooms.Count - 1) % 5 != 0) { yield return null; } TileIndices val2 = ReflectionHelpers.ReflectGetField(typeof(TK2DDungeonAssembler), "t", self); map.Editor__SpriteCollection = val2.dungeonCollection; if (d.ActuallyGenerateTilemap) { IEnumerator BuildTracker = map.DeferredBuild((BuildFlags)0); while (BuildTracker.MoveNext()) { yield return null; } } } private IEnumerator HandleGrabbyGrabHook(Func orig, HellDragZoneController self, PlayerController grabbedPlayer) { FsmBool m_cryoBool = ReflectionHelpers.ReflectGetField(typeof(HellDragZoneController), "m_cryoBool", self); ((BraveBehaviour)grabbedPlayer).specRigidbody.Velocity = Vector2.zero; ((BraveBehaviour)grabbedPlayer).specRigidbody.CapVelocity = true; ((BraveBehaviour)grabbedPlayer).specRigidbody.MaxVelocity = Vector2.zero; yield return (object)new WaitForSeconds(0.2f); grabbedPlayer.IsVisible = false; yield return (object)new WaitForSeconds(2.3f); ((BraveBehaviour)grabbedPlayer).specRigidbody.CapVelocity = false; if (ExpandDebugCamera.DebugCameraEnabled) { ExpandDebugCamera.SetInitialCameraPosition(Pixelator.Instance, GameManager.Instance.MainCameraController); } else { Pixelator.Instance.FadeToBlack(0.5f, false, 0f); } if (m_cryoBool != null && m_cryoBool.Value) { AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)self).gameObject); GameManager.DoMidgameSave((ValidTilesets)128); float num = 0.6f; GameManager.Instance.DelayedLoadCharacterSelect(num, true, true); } else { GameManager.DoMidgameSave((ValidTilesets)128); GameManager.Instance.DelayedLoadCustomLevel(0.5f, "tt_bullethell"); } } public void SellPitConfigureOnPlacementHook(Action orig, SellCellController self, RoomHandler room) { //IL_0026: 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_0033: 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_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) if (room == null || !room.GetRoomName().StartsWith("SubShop_SellCreep_CatacombsSpecial")) { return; } for (int i = 0; i < ((DungeonPlaceableBehaviour)self).GetWidth(); i++) { for (int j = 0; j < ((DungeonPlaceableBehaviour)self).GetHeight(); j++) { IntVector2 val = Vector3Extensions.IntXY(((BraveBehaviour)self).transform.position, (VectorConversions)2) + new IntVector2(i, j); if (GameManager.Instance.Dungeon.data.CheckInBoundsAndValid(val)) { CellData obj = GameManager.Instance.Dungeon.data[val]; obj.type = (CellType)4; obj.fallingPrevented = true; } } } } private void PlayerFiredHook(Action orig, BaseShopController self) { PlayerController[] allPlayers = GameManager.Instance.AllPlayers; foreach (PlayerController val in allPlayers) { if (Object.op_Implicit((Object)(object)val) && val.IsFiring && !val.HasPassiveItem(187)) { orig(self); } } } private static GameObject GenerateRoomDoorMeshHook(RuntimeExitDefinition exit, RoomHandler room, DungeonData dungeonData) { //IL_0002: 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_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: 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_0167: Expected O, but got Unknown //IL_0020: 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_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_0115: 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_0050: 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_006a: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Invalid comparison between Unknown and I4 //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: 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_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Invalid comparison between Unknown and I4 //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: 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) //IL_00c0: 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_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009b: 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) try { Direction directionFromRoom = exit.GetDirectionFromRoom(room); IntVector2 val = ((exit.upstreamRoom != room) ? exit.GetUpstreamBasePosition() : exit.GetDownstreamBasePosition()); Direction val2 = directionFromRoom; IntVector2 val3 = val; if (!string.IsNullOrEmpty(room.GetRoomName())) { if (room.GetRoomName().StartsWith(((Object)ExpandRoomPrefabs.Expand_GlitchedSecret).name)) { IntVector2 val4 = val3 + new IntVector2(1, 0); IntVector2 areaSize = default(IntVector2); ((IntVector2)(ref areaSize))..ctor(8, 4); int num = 1; int num2 = 3; if ((int)val2 == 0) { val4 += new IntVector2(0, num); } else if ((int)val2 == 4) { val4 += new IntVector2(0, num); } else if ((int)val2 == 2) { val4 += new IntVector2(0, num2); ((IntVector2)(ref areaSize))..ctor(4, 8); } else { val4 += new IntVector2(0, num2); val4 -= new IntVector2(num, 0); ((IntVector2)(ref areaSize))..ctor(4, 8); } GameObject val5 = ExpandUtility.GenerateWallMesh(val2, val3, "secret room door object", dungeonData, abridged: false, isGlitched: true); ExpandUtility.GenerateCorruptedTilesAtPosition(GameManager.Instance.Dungeon, exit.upstreamRoom, val4, areaSize, val5, 0.55f); return val5; } return SecretRoomBuilder.GenerateWallMesh(val2, val3, "secret room door object", dungeonData, false); } return SecretRoomBuilder.GenerateWallMesh(val2, val3, "secret room door object", dungeonData, false); } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[ExpandTheGungeon] Warning: Exception caught in SecretRoomBuilder.GenerateRoomDoorMesh!", false); Debug.Log((object)ex); } return new GameObject("NULL Secret Room Door") { layer = 0 }; } } private void AnimationCompletedHook(Action orig, AIAnimator self, tk2dSpriteAnimator animator, tk2dSpriteAnimationClip clip) { try { orig(self, animator, clip); } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[ExpandTheGungeon] Warning: Exception caught in AIAnimator.AnimationCompleted on object '" + ((Object)((Component)self).gameObject).name + "'!"), false); Debug.Log((object)("[ExpandTheGungeon] Warning: Exception caught in AIAnimator.AnimationCompleted on object '" + ((Object)((Component)self).gameObject).name + "'!")); Debug.LogException(ex); } } } private void TeardownPunchout_Hook(Action orig, PunchoutController self) { //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_0151: 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_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0189: 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_0193: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_01ed: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_01fe: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing references) //IL_0225: Unknown result type (might be due to invalid IL or missing references) //IL_0231: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Unknown result type (might be due to invalid IL or missing references) //IL_023b: Unknown result type (might be due to invalid IL or missing references) //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_0292: Unknown result type (might be due to invalid IL or missing references) //IL_0297: Unknown result type (might be due to invalid IL or missing references) //IL_029c: Unknown result type (might be due to invalid IL or missing references) //IL_02a1: Unknown result type (might be due to invalid IL or missing references) //IL_025d: Unknown result type (might be due to invalid IL or missing references) //IL_0269: Unknown result type (might be due to invalid IL or missing references) //IL_026e: Unknown result type (might be due to invalid IL or missing references) //IL_0273: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: Unknown result type (might be due to invalid IL or missing references) //IL_03cb: Unknown result type (might be due to invalid IL or missing references) //IL_03d7: Unknown result type (might be due to invalid IL or missing references) //IL_03de: Unknown result type (might be due to invalid IL or missing references) //IL_03e3: Unknown result type (might be due to invalid IL or missing references) //IL_03e8: Unknown result type (might be due to invalid IL or missing references) //IL_03ed: Unknown result type (might be due to invalid IL or missing references) //IL_042b: Unknown result type (might be due to invalid IL or missing references) //IL_0437: Unknown result type (might be due to invalid IL or missing references) //IL_043e: Unknown result type (might be due to invalid IL or missing references) //IL_0443: Unknown result type (might be due to invalid IL or missing references) if (GameStatsManager.HasInstance && !GameStatsManager.Instance.IsRainbowRun && !ExpandSettings.PlayingPunchoutArcade) { orig(self); } else if (ReflectionHelpers.ReflectGetField(typeof(PunchoutController), "m_isInitialized", self)) { Minimap.Instance.TemporarilyPreventMinimap = false; GameUIRoot.Instance.ShowCoreUI("punchout"); GameUIRoot.Instance.ShowCoreUI(string.Empty); GameUIRoot.Instance.ToggleLowerPanels(true, false, string.Empty); CameraController mainCameraController = GameManager.Instance.MainCameraController; mainCameraController.SetManualControl(false, false); mainCameraController.LockToRoom = false; mainCameraController.SetZoomScaleImmediate(1f); PlayerController[] allPlayers = GameManager.Instance.AllPlayers; foreach (PlayerController obj in allPlayers) { obj.ClearInputOverride("punchout"); ((BraveBehaviour)obj).healthHaver.IsVulnerable = true; ((GameActor)obj).SuppressEffectUpdates = false; obj.IsOnFire = false; obj.CurrentFireMeterValue = 0f; obj.CurrentPoisonMeterValue = 0f; } GameManager.Instance.DungeonMusicController.EndBossMusic(); if (!ExpandSettings.PlayingPunchoutArcade) { MetalGearRatRoomController val = Object.FindObjectOfType(); if (Object.op_Implicit((Object)(object)val)) { GameObject gameObject = ((Component)PickupObjectDatabase.GetById(GlobalItemIds.RatKey)).gameObject; Vector3 position = ((Component)val).transform.position; if (self.Opponent.NumKeysDropped >= 1) { LootEngine.SpawnItem(gameObject, position + new Vector3(14.25f, 17f), Vector2.zero, 0f, true, false, false); } if (self.Opponent.NumKeysDropped >= 2) { LootEngine.SpawnItem(gameObject, position + new Vector3(13.25f, 14.5f), Vector2.zero, 0f, true, false, false); } if (self.Opponent.NumKeysDropped >= 3) { LootEngine.SpawnItem(gameObject, position + new Vector3(14.25f, 12f), Vector2.zero, 0f, true, false, false); } if (self.Opponent.NumKeysDropped >= 4) { LootEngine.SpawnItem(gameObject, position + new Vector3(30.25f, 17f), Vector2.zero, 0f, true, false, false); } if (self.Opponent.NumKeysDropped >= 5) { LootEngine.SpawnItem(gameObject, position + new Vector3(31.25f, 14.5f), Vector2.zero, 0f, true, false, false); } if (self.Opponent.NumKeysDropped >= 6) { LootEngine.SpawnItem(gameObject, position + new Vector3(30.25f, 12f), Vector2.zero, 0f, true, false, false); } Vector2 val2 = Vector2.op_Implicit(position + new Vector3(22.25f, 14.5f)); List list = new List { GlobalItemIds.SmallHeart, GlobalItemIds.FullHeart, GlobalItemIds.AmmoPickup, GlobalItemIds.SpreadAmmoPickup, GlobalItemIds.Spice, GlobalItemIds.Junk, GlobalItemIds.GoldJunk, GlobalItemIds.Key, GlobalItemIds.GlassGuonStone, GlobalItemIds.Junk, GlobalItemIds.GoldJunk, GlobalItemIds.SackKnightBoon, GlobalItemIds.Blank, GlobalItemIds.RatKey, GlobalItemIds.Map, 120 }; foreach (int droppedRewardId in self.Opponent.DroppedRewardIds) { float num = (float)((!BraveUtility.RandomBool()) ? 180 : 0) + Random.Range(-30f, 30f); RoomHandler absoluteRoom = Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)GameManager.Instance.PrimaryPlayer).transform.position); if (list.Contains(droppedRewardId)) { LootEngine.SpawnItem(((Component)PickupObjectDatabase.GetById(droppedRewardId)).gameObject, Vector2.op_Implicit(val2 + Vector2Extensions.Rotate(new Vector2(11f, 0f), num)), Vector2.zero, 0f, true, false, false); } else if (absoluteRoom != null && Object.op_Implicit((Object)(object)GameManager.Instance.RewardManager.BowlerNoteOtherSource)) { ExpandUtility.SpawnCustomBowlerNote(GameManager.Instance.RewardManager.BowlerNoteOtherSource, val2 + Vector2Extensions.Rotate(new Vector2(11f, 0f), num), absoluteRoom, BraveUtility.RandomElement(ExpandLists.EXBowlerNotes_RatPunchout)); } } } } else { if (((PunchoutGameActor)self.Player).state is WinState) { ExpandPunchoutArcadeController.WonRatGame = true; } ExpandPunchoutArcadeController.RatKeyCount = self.Opponent.NumKeysDropped; } ExpandSettings.PlayingPunchoutArcade = false; GameStatsManager.Instance.SetFlag((GungeonFlags)171003, true); BraveTime.ClearMultiplier(((Component)self.Player).gameObject); Object.Destroy((Object)(object)((Component)self).gameObject); } else { self.Reset(); } } private void BuildOcclusionLayerCenterJungleHook(TK2DDungeonAssembler self, CellData current, Dungeon d, tk2dTileMap map, int ix, int iy) { if (((current == null) | !Object.op_Implicit((Object)(object)d) | !Object.op_Implicit((Object)(object)map)) || !IsValidJungleOcclusionCell(self, current, d, ix, iy)) { return; } bool flag = true; bool flag2 = true; if (!self.BCheck(d, ix, iy)) { flag = false; flag2 = false; } if (current.UniqueHash < 0.05f) { flag = false; flag2 = false; } for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (!IsValidJungleOcclusionCell(self, d.data[ix + i, iy + j], d, ix + i, iy + j)) { flag2 = false; if (i < 2 || j < 2) { flag = false; } } if (!flag2 && !flag) { break; } } if (!flag2 && !flag) { break; } } if (flag2 && current.UniqueHash < 0.75f) { map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, 352); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y, 353); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 2, current.positionInTilemap.y, 354); d.data[ix + 1, iy].cellVisualData.occlusionHasBeenProcessed = true; d.data[ix + 2, iy].cellVisualData.occlusionHasBeenProcessed = true; map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y + 1, 330); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y + 1, 331); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 2, current.positionInTilemap.y + 1, 332); d.data[ix, iy + 1].cellVisualData.occlusionHasBeenProcessed = true; d.data[ix + 1, iy + 1].cellVisualData.occlusionHasBeenProcessed = true; d.data[ix + 2, iy + 1].cellVisualData.occlusionHasBeenProcessed = true; map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y + 2, 308); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y + 2, 309); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 2, current.positionInTilemap.y + 2, 310); d.data[ix, iy + 2].cellVisualData.occlusionHasBeenProcessed = true; d.data[ix + 1, iy + 2].cellVisualData.occlusionHasBeenProcessed = true; d.data[ix + 2, iy + 2].cellVisualData.occlusionHasBeenProcessed = true; } else if (flag) { map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, 418); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y, 419); d.data[ix + 1, iy].cellVisualData.occlusionHasBeenProcessed = true; map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y + 1, 396); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y + 1, 397); d.data[ix, iy + 1].cellVisualData.occlusionHasBeenProcessed = true; d.data[ix + 1, iy + 1].cellVisualData.occlusionHasBeenProcessed = true; } else { map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, 374); } d.data[ix, iy].cellVisualData.occlusionHasBeenProcessed = true; } private void BuildBorderLayerCenterJungleHook(TK2DDungeonAssembler self, CellData current, Dungeon d, tk2dTileMap map, int ix, int iy) { if (((current == null) | !Object.op_Implicit((Object)(object)d) | !Object.op_Implicit((Object)(object)map)) || !IsValidJungleBorderCell(current, d, ix, iy)) { return; } bool flag = true; bool flag2 = true; if (!self.BCheck(d, ix, iy)) { flag = false; flag2 = false; } if (current.UniqueHash < 0.05f) { flag = false; flag2 = false; } for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (!IsValidJungleBorderCell(d.data[ix + i, iy + j], d, ix + i, iy + j)) { flag2 = false; if (i < 2 || j < 2) { flag = false; } } if (!flag2 && !flag) { break; } } if (!flag2 && !flag) { break; } } if (flag2 && current.UniqueHash < 0.75f) { map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, 352); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, 352); map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y, 353); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y, 353); map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x + 2, current.positionInTilemap.y, 354); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 2, current.positionInTilemap.y, 354); d.data[ix + 1, iy].cellVisualData.ceilingHasBeenProcessed = true; d.data[ix + 2, iy].cellVisualData.ceilingHasBeenProcessed = true; map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y + 1, 330); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y + 1, 330); map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y + 1, 331); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y + 1, 331); map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x + 2, current.positionInTilemap.y + 1, 332); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 2, current.positionInTilemap.y + 1, 332); d.data[ix, iy + 1].cellVisualData.ceilingHasBeenProcessed = true; d.data[ix + 1, iy + 1].cellVisualData.ceilingHasBeenProcessed = true; d.data[ix + 2, iy + 1].cellVisualData.ceilingHasBeenProcessed = true; map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y + 2, 308); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y + 2, 308); map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y + 2, 309); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y + 2, 309); map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x + 2, current.positionInTilemap.y + 2, 310); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 2, current.positionInTilemap.y + 2, 310); d.data[ix, iy + 2].cellVisualData.ceilingHasBeenProcessed = true; d.data[ix + 1, iy + 2].cellVisualData.ceilingHasBeenProcessed = true; d.data[ix + 2, iy + 2].cellVisualData.ceilingHasBeenProcessed = true; } else if (flag) { map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, 418); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, 418); map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y, 419); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y, 419); d.data[ix + 1, iy].cellVisualData.ceilingHasBeenProcessed = true; map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y + 1, 396); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y + 1, 396); map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y + 1, 397); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y + 1, 397); d.data[ix, iy + 1].cellVisualData.ceilingHasBeenProcessed = true; d.data[ix + 1, iy + 1].cellVisualData.ceilingHasBeenProcessed = true; } else { map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, 374); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, 374); } d.data[ix, iy].cellVisualData.ceilingHasBeenProcessed = true; } private bool IsValidJungleBorderCell(CellData current, Dungeon d, int ix, int iy) { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Invalid comparison between Unknown and I4 if (!current.cellVisualData.ceilingHasBeenProcessed && !IsCardinalBorder(current, d, ix, iy) && (int)current.type == 1 && (iy < 2 || !d.data.isFaceWallLower(ix, iy))) { return !d.data.isTopDiagonalWall(ix, iy); } return false; } private bool IsValidJungleOcclusionCell(TK2DDungeonAssembler assembler, CellData current, Dungeon d, int ix, int iy) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Invalid comparison between Unknown and I4 if (assembler.BCheck(d, ix, iy, 1) && !current.cellVisualData.ceilingHasBeenProcessed && !current.cellVisualData.occlusionHasBeenProcessed) { if ((int)current.type == 1 && !IsCardinalBorder(current, d, ix, iy)) { if (iy > 2) { if (!d.data.isFaceWallLower(ix, iy)) { return d.data.isFaceWallHigher(ix, iy); } return true; } return false; } return true; } return false; } private bool IsCardinalBorder(CellData current, Dungeon d, int ix, int iy) { if ((d.data[ix, iy + 1] == null) | (d.data[ix + 1, iy] == null) | (d.data[ix, iy - 1] == null) | (d.data[ix - 1, iy] == null)) { return true; } bool num = d.data.isTopWall(ix, iy); bool flag = (!d.data.isWallRight(ix, iy) && !d.data.isRightTopWall(ix, iy)) || d.data.isFaceWallHigher(ix + 1, iy) || d.data.isFaceWallLower(ix + 1, iy); bool flag2 = iy > 3 && d.data.isFaceWallHigher(ix, iy - 1); bool flag3 = (!d.data.isWallLeft(ix, iy) && !d.data.isLeftTopWall(ix, iy)) || d.data.isFaceWallHigher(ix - 1, iy) || d.data.isFaceWallLower(ix - 1, iy); bool num2 = num && !d.data[ix, iy + 1].cellVisualData.shouldIgnoreBorders; flag = flag && !d.data[ix + 1, iy].cellVisualData.shouldIgnoreBorders; flag2 = flag2 && !d.data[ix, iy - 1].cellVisualData.shouldIgnoreBorders; flag3 = flag3 && !d.data[ix - 1, iy].cellVisualData.shouldIgnoreBorders; return num2 || flag || flag2 || flag3; } private TileIndexGrid GetTypeBorderGridForBorderIndexHook(TK2DDungeonAssembler self, CellData current, Dungeon d, out int usedVisualType) { //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Invalid comparison between Unknown and I4 //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Invalid comparison between Unknown and I4 TileIndexGrid roomCeilingBorderGrid; try { roomCeilingBorderGrid = d.roomMaterialDefinitions[current.cellVisualData.roomVisualTypeIndex].roomCeilingBorderGrid; } catch (Exception ex) { if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] [WARNING] Exception caught in TK2DDungeonAssembler.GetTypeBorderGridForBorderIndex !"); Debug.LogException(ex); } roomCeilingBorderGrid = null; usedVisualType = 0; return null; } usedVisualType = current.cellVisualData.roomVisualTypeIndex; if ((int)d.tileIndices.tilesetId == 1024) { if (current.nearestRoom != null && current.distanceFromNearestRoom < 4f) { if (current.cellVisualData.IsFacewallForInteriorTransition) { roomCeilingBorderGrid = d.roomMaterialDefinitions[current.cellVisualData.InteriorTransitionIndex].roomCeilingBorderGrid; usedVisualType = current.cellVisualData.InteriorTransitionIndex; } else if (!current.cellVisualData.IsFeatureCell) { int? num = current.nearestRoom.RoomVisualSubtype; if (num.HasValue) { roomCeilingBorderGrid = d.roomMaterialDefinitions[num.Value].roomCeilingBorderGrid; usedVisualType = current.nearestRoom.RoomVisualSubtype; } } } } else if ((int)d.tileIndices.tilesetId == 2048) { roomCeilingBorderGrid = d.roomMaterialDefinitions[current.nearestRoom.RoomVisualSubtype].roomCeilingBorderGrid; usedVisualType = current.nearestRoom.RoomVisualSubtype; } if ((Object)(object)roomCeilingBorderGrid == (Object)null) { roomCeilingBorderGrid = d.roomMaterialDefinitions[0].roomCeilingBorderGrid; usedVisualType = 0; } return roomCeilingBorderGrid; } public void PostGenerationCleanupHook(Action orig, DungeonData self) { try { orig(self); } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[ExpandTheGungeon] [Warning] Exception caught at DungeonData.PostGenerationCleanup!", false); Debug.Log((object)"[ExpandTheGungeon] [Warning] Exception caught at DungeonData.PostGenerationCleanup!"); Debug.LogException(ex); } } } private IEnumerator HandleBulletDeletionFrames(Func orig, Exploder self, Vector3 centerPosition, float bulletDeletionSqrRadius, float duration) { //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) float elapsed = 0f; while (elapsed < duration) { elapsed += BraveTime.DeltaTime; ReadOnlyCollection allProjectiles = StaticReferenceManager.AllProjectiles; for (int num = allProjectiles.Count - 1; num >= 0; num--) { Projectile val = allProjectiles[num]; if (Object.op_Implicit((Object)(object)val) && !(val.Owner is PlayerController)) { Vector2 val2 = Vector3Extensions.XY(((BraveBehaviour)val).transform.position - centerPosition); if (val.CanBeKilledByExplosions && ((Vector2)(ref val2)).sqrMagnitude < bulletDeletionSqrRadius) { val.DieInAir(false, true, true, false); } } } List allTriggeredTraps = StaticReferenceManager.AllTriggeredTraps; for (int num2 = allTriggeredTraps.Count - 1; num2 >= 0; num2--) { BasicTrapController val3 = allTriggeredTraps[num2]; if (Object.op_Implicit((Object)(object)val3) && val3.triggerOnBlank) { Vector2 val4 = val3.CenterPoint() - Vector3Extensions.XY(centerPosition); if (((Vector2)(ref val4)).sqrMagnitude < bulletDeletionSqrRadius) { val3.Trigger(); } } } yield return null; } } private void ThrowGunHook(Action orig, Gun self) { orig(self); if (!((BraveBehaviour)self).renderer.enabled) { ((BraveBehaviour)self).renderer.enabled = true; } if (Object.op_Implicit((Object)(object)((BraveBehaviour)self).sprite) && !((BraveBehaviour)((BraveBehaviour)self).sprite).renderer.enabled) { ((BraveBehaviour)((BraveBehaviour)self).sprite).renderer.enabled = true; } } public ValidTilesets GetNextTileset(GameManager orig, ValidTilesets tilesetID) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Invalid comparison between Unknown and I4 //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Invalid comparison between Unknown and I4 //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected I4, but got Unknown //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Invalid comparison between Unknown and I4 //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Invalid comparison between Unknown and I4 //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Invalid comparison between Unknown and I4 //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Invalid comparison between Unknown and I4 //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Invalid comparison between Unknown and I4 //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Invalid comparison between Unknown and I4 //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Invalid comparison between Unknown and I4 //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Invalid comparison between Unknown and I4 if ((int)tilesetID <= 8) { switch (tilesetID - 1) { default: if ((int)tilesetID != 8) { break; } return (ValidTilesets)16; case 0: return (ValidTilesets)16; case 1: return (ValidTilesets)1; case 3: return (ValidTilesets)1; case 2: break; } } else { if ((int)tilesetID == 1024) { return (ValidTilesets)64; } if ((int)tilesetID == 4096) { return (ValidTilesets)16; } if ((int)tilesetID == 8192) { return (ValidTilesets)1; } } if ((int)tilesetID != 16) { if ((int)tilesetID != 32) { if ((int)tilesetID != 64) { if ((int)tilesetID != 2048) { if ((int)tilesetID == 32768) { return (ValidTilesets)32; } return (ValidTilesets)2; } return (ValidTilesets)64; } return (ValidTilesets)128; } return (ValidTilesets)64; } return (ValidTilesets)32; } private void OnContinueGameSelected(Action orig, MainMenuFoyerController self, dfControl control, dfMouseEventArgs mouseEvent) { //IL_009b: Unknown result type (might be due to invalid IL or missing references) MidGameSaveData.ContinuePressedDevice = InputManager.ActiveDevice; bool num = ReflectionHelpers.ReflectGetField(typeof(MainMenuFoyerController), "m_faded", self); bool flag = ReflectionHelpers.ReflectGetField(typeof(MainMenuFoyerController), "m_wasFadedThisFrame", self); if (!(num || flag) && IsDioramaRevealed(self, doReveal: true) && Foyer.DoMainMenu) { MidGameSaveData val = null; GameManager.VerifyAndLoadMidgameSave(ref val, true); Dungeon.ShouldAttemptToLoadFromMidgameSave = true; self.DisableMainMenu(); Pixelator.Instance.FadeToBlack(0.15f, false, 0.05f); GameManager.Instance.FlushAudio(); AkSoundEngine.PostEvent("Play_UI_menu_confirm_01", ((Component)self).gameObject); GameManager.Instance.SetNextLevelIndex(GetTargetLevelIndexFromSavedTileset(val.levelSaved)); GameManager.Instance.GeneratePlayersFromMidGameSave(val); GameManager.Instance.IsFoyer = false; Foyer.DoIntroSequence = false; Foyer.DoMainMenu = false; GameManager.Instance.IsSelectingCharacter = false; DelayedLoadMidgameSave(GameManager.Instance, 0.25f, val); } } public void DelayedLoadMidgameSave(GameManager self, float delay, MidGameSaveData saveToContinue) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Invalid comparison between Unknown and I4 //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Invalid comparison between Unknown and I4 //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Invalid comparison between Unknown and I4 //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Invalid comparison between Unknown and I4 //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Invalid comparison between Unknown and I4 //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Invalid comparison between Unknown and I4 //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected I4, but got Unknown //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Invalid comparison between Unknown and I4 //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Invalid comparison between Unknown and I4 //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Invalid comparison between Unknown and I4 //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Invalid comparison between Unknown and I4 //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Invalid comparison between Unknown and I4 //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Invalid comparison between Unknown and I4 //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Invalid comparison between Unknown and I4 //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Invalid comparison between Unknown and I4 //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Invalid comparison between Unknown and I4 //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Invalid comparison between Unknown and I4 //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Invalid comparison between Unknown and I4 //IL_01fa: Unknown result type (might be due to invalid IL or missing references) //IL_01ff: Unknown result type (might be due to invalid IL or missing references) //IL_0201: Unknown result type (might be due to invalid IL or missing references) //IL_0234: Expected I4, but got Unknown ValidTilesets levelSaved = saveToContinue.levelSaved; string text = "tt_castle"; bool flag = false; bool flag2 = false; if ((int)levelSaved <= 256) { if ((int)levelSaved <= 16) { switch (levelSaved - 1) { case 1: goto IL_00e2; case 3: goto IL_00e9; case 0: goto IL_00ff; case 2: goto IL_01da; } if ((int)levelSaved != 8) { if ((int)levelSaved != 16) { goto IL_01da; } flag2 = true; } else { text = "tt_cathedral"; } } else if ((int)levelSaved <= 64) { if ((int)levelSaved != 32) { if ((int)levelSaved != 64) { goto IL_01da; } flag2 = true; } else { flag2 = true; } } else if ((int)levelSaved != 128) { if ((int)levelSaved != 256) { goto IL_01da; } if (self.customFloors != null && self.customFloors.Count > 0) { foreach (GameLevelDefinition customFloor in self.customFloors) { if (!string.IsNullOrEmpty(customFloor.dungeonSceneName) && customFloor.dungeonSceneName.ToLower() == "tt_space") { text = "tt_space"; break; } } } } else { flag2 = true; } } else if ((int)levelSaved <= 2048) { if ((int)levelSaved != 512) { if ((int)levelSaved != 1024) { if ((int)levelSaved != 2048) { goto IL_01da; } text = "tt_nakatomi"; } else { text = "tt_west"; } } else { text = "tt_phobos"; } } else if ((int)levelSaved <= 8192) { if ((int)levelSaved != 4096) { if ((int)levelSaved != 8192) { goto IL_01da; } text = "tt_jungle"; } else { text = "tt_belly"; } } else if ((int)levelSaved != 16384) { if ((int)levelSaved != 32768) { goto IL_01da; } text = "ss_resourcefulrat"; } else { flag = true; } goto IL_01dc; IL_01da: flag2 = true; goto IL_01dc; IL_00e2: flag2 = true; goto IL_01dc; IL_00ff: flag2 = true; goto IL_01dc; IL_00e9: text = "tt_sewer"; goto IL_01dc; IL_01dc: if (flag2 && !flag) { self.DelayedLoadNextLevel(0.25f); } else if (flag) { PlayableCharacters characterIdentity = saveToContinue.playerOneData.CharacterIdentity; switch ((int)characterIdentity) { case 0: self.DelayedLoadCustomLevel(delay, "fs_pilot"); break; case 1: self.DelayedLoadCustomLevel(delay, "fs_convict"); break; case 2: self.DelayedLoadCustomLevel(delay, "fs_robot"); break; case 5: self.DelayedLoadCustomLevel(delay, "fs_soldier"); break; case 6: self.DelayedLoadCustomLevel(delay, "fs_guide"); break; case 8: self.DelayedLoadCustomLevel(delay, "fs_bullet"); break; case 10: GameManager.IsGunslingerPast = true; self.DelayedLoadCustomLevel(delay, "tt_bullethell"); break; default: self.DelayedLoadNextLevel(0.25f); break; } } else if (text == "tt_castle") { self.DelayedLoadNextLevel(0.25f); } else { self.DelayedLoadCustomLevel(delay, text); } } private bool IsDioramaRevealed(MainMenuFoyerController self, bool doReveal = false) { TitleDioramaController val = ReflectionHelpers.ReflectGetField(typeof(MainMenuFoyerController), "m_tdc", self); FieldInfo field = typeof(MainMenuFoyerController).GetField("m_tdc", BindingFlags.Instance | BindingFlags.NonPublic); if ((Object)(object)val == (Object)null) { val = Object.FindObjectOfType(); field.SetValue(self, val); val = ReflectionHelpers.ReflectGetField(typeof(MainMenuFoyerController), "m_tdc", self); } if (Object.op_Implicit((Object)(object)val)) { return val.IsRevealed(doReveal); } return true; } private IEnumerator FadeToBlack(FinalIntroSequenceManager self, float duration, bool startAtCurrent = false, bool force = false) { float elapsed = 0f; float startValue = 0f; if (startAtCurrent) { startValue = self.FadeMaterial.GetColor("_Color").a; } bool m_skipCycle = ReflectionHelpers.ReflectGetField(typeof(FinalIntroSequenceManager), "m_skipCycle", self); while (elapsed < duration) { if (!force && m_skipCycle) { yield break; } m_skipCycle = ReflectionHelpers.ReflectGetField(typeof(FinalIntroSequenceManager), "m_skipCycle", self); elapsed += Time.deltaTime; float num = elapsed / duration; self.FadeMaterial.SetColor("_Color", new Color(0f, 0f, 0f, Mathf.Lerp(startValue, 1f, num))); yield return null; } self.FadeMaterial.SetColor("_Color", new Color(0f, 0f, 0f, 1f)); } public int GetTargetLevelIndexFromSavedTileset(ValidTilesets tilesetID) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Invalid comparison between Unknown and I4 //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Invalid comparison between Unknown and I4 //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Invalid comparison between Unknown and I4 //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Invalid comparison between Unknown and I4 //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Invalid comparison between Unknown and I4 //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Expected I4, but got Unknown //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Invalid comparison between Unknown and I4 //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Invalid comparison between Unknown and I4 //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Invalid comparison between Unknown and I4 //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Invalid comparison between Unknown and I4 //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Invalid comparison between Unknown and I4 //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Invalid comparison between Unknown and I4 //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Invalid comparison between Unknown and I4 //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Invalid comparison between Unknown and I4 //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Invalid comparison between Unknown and I4 //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Invalid comparison between Unknown and I4 //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Invalid comparison between Unknown and I4 if ((int)tilesetID <= 256) { if ((int)tilesetID <= 16) { switch (tilesetID - 1) { default: if ((int)tilesetID != 8) { if ((int)tilesetID != 16) { break; } return 3; } return 3; case 1: return 1; case 3: return 2; case 0: return 2; case 2: break; } } else if ((int)tilesetID <= 64) { if ((int)tilesetID == 32) { return 4; } if ((int)tilesetID == 64) { return 5; } } else { if ((int)tilesetID == 128) { return 6; } if ((int)tilesetID == 256) { return 1; } } } else if ((int)tilesetID <= 2048) { if ((int)tilesetID == 512) { return 1; } if ((int)tilesetID == 1024) { return 5; } if ((int)tilesetID == 2048) { return 5; } } else if ((int)tilesetID <= 8192) { if ((int)tilesetID == 4096) { return 3; } if ((int)tilesetID == 8192) { return 2; } } else { if ((int)tilesetID == 16384) { return 6; } if ((int)tilesetID == 32768) { return 4; } } return 1; } public bool IsWildWestEntranceHook(Func orig, RoomHandler self) { if (self != null && self.GetRoomName() != null) { PrototypeDungeonRoom expand_West_Entrance = ExpandRoomPrefabs.Expand_West_Entrance; if (((expand_West_Entrance != null) ? ((Object)expand_West_Entrance).name : null) != null) { if (!self.GetRoomName().ToLower().StartsWith(((Object)ExpandRoomPrefabs.Expand_West_Entrance).name.ToLower())) { return orig(self); } return true; } } return orig(self); } private void PlacePlayerInRoomHook(Action orig, Dungeon self, tk2dTileMap map, RoomHandler startRoom) { //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_010b: 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_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01da: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: Unknown result type (might be due to invalid IL or missing references) //IL_01e8: Unknown result type (might be due to invalid IL or missing references) //IL_01ed: Unknown result type (might be due to invalid IL or missing references) //IL_01fb: Unknown result type (might be due to invalid IL or missing references) //IL_0205: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Unknown result type (might be due to invalid IL or missing references) //IL_0223: Unknown result type (might be due to invalid IL or missing references) //IL_0230: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_019a: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Unknown result type (might be due to invalid IL or missing references) //IL_0396: Unknown result type (might be due to invalid IL or missing references) //IL_03a0: 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_03be: Unknown result type (might be due to invalid IL or missing references) //IL_03dc: Unknown result type (might be due to invalid IL or missing references) //IL_0325: Unknown result type (might be due to invalid IL or missing references) //IL_032a: Unknown result type (might be due to invalid IL or missing references) //IL_032e: Unknown result type (might be due to invalid IL or missing references) //IL_0333: Unknown result type (might be due to invalid IL or missing references) //IL_033b: Unknown result type (might be due to invalid IL or missing references) //IL_033e: Unknown result type (might be due to invalid IL or missing references) //IL_0348: Unknown result type (might be due to invalid IL or missing references) //IL_034e: Invalid comparison between Unknown and I4 //IL_02e0: Unknown result type (might be due to invalid IL or missing references) //IL_02e5: Unknown result type (might be due to invalid IL or missing references) //IL_02ea: Unknown result type (might be due to invalid IL or missing references) //IL_02ec: Unknown result type (might be due to invalid IL or missing references) //IL_02ee: Unknown result type (might be due to invalid IL or missing references) //IL_02f5: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: 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_0307: Unknown result type (might be due to invalid IL or missing references) //IL_030e: Unknown result type (might be due to invalid IL or missing references) //IL_027c: Unknown result type (might be due to invalid IL or missing references) //IL_0281: Unknown result type (might be due to invalid IL or missing references) //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_0288: Unknown result type (might be due to invalid IL or missing references) //IL_028a: Unknown result type (might be due to invalid IL or missing references) //IL_0291: Unknown result type (might be due to invalid IL or missing references) //IL_0296: Unknown result type (might be due to invalid IL or missing references) //IL_029b: Unknown result type (might be due to invalid IL or missing references) //IL_02a3: Unknown result type (might be due to invalid IL or missing references) //IL_02aa: Unknown result type (might be due to invalid IL or missing references) //IL_0372: Unknown result type (might be due to invalid IL or missing references) //IL_0377: Unknown result type (might be due to invalid IL or missing references) //IL_0356: Unknown result type (might be due to invalid IL or missing references) //IL_0359: Unknown result type (might be due to invalid IL or missing references) //IL_0363: Unknown result type (might be due to invalid IL or missing references) //IL_0369: Invalid comparison between Unknown and I4 //IL_0379: Unknown result type (might be due to invalid IL or missing references) //IL_037b: Unknown result type (might be due to invalid IL or missing references) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) PlayerController[] allPlayers = GameManager.Instance.AllPlayers; if (allPlayers.Length == 0) { return; } if (!Object.op_Implicit((Object)(object)GameManager.Instance.PrimaryPlayer)) { ETGModConsole.Log((object)"[ExpandTheGungeon.PlacePlayerInRoomHook] ERROR: Primary Player is null!", false); return; } int num = ((allPlayers.Length < 2) ? 1 : allPlayers.Length); Vector3 position = default(Vector3); for (int i = 0; i < num; i++) { PlayerController val = ((allPlayers.Length >= 2) ? allPlayers[i] : GameManager.Instance.PrimaryPlayer); EntranceController val2 = Object.FindObjectOfType(); ElevatorArrivalController val3 = Object.FindObjectOfType(); ExpandNewElevatorController[] array = null; ExpandNewElevatorController expandNewElevatorController = null; if (!Object.op_Implicit((Object)(object)val3) && !GameManager.IsReturningToFoyerWithPlayer) { array = Object.FindObjectsOfType(); if (array != null && array.Length != 0) { ExpandNewElevatorController[] array2 = array; foreach (ExpandNewElevatorController expandNewElevatorController2 in array2) { if (expandNewElevatorController2.IsArrivalElevator) { expandNewElevatorController = expandNewElevatorController2; break; } } } } Vector2 zero = Vector2.zero; float num2 = 0.25f; if (GameManager.IsReturningToFoyerWithPlayer) { zero = Vector3Extensions.XY(GameObject.Find("ReturnToFoyerPoint").transform.position); zero += Vector2.right * (float)i; ((BraveBehaviour)val).transform.position = Vector2Extensions.ToVector3ZUp(zero, -0.1f); val.Reinitialize(); continue; } if (Object.op_Implicit((Object)(object)val3) | Object.op_Implicit((Object)(object)expandNewElevatorController)) { if (Object.op_Implicit((Object)(object)val3)) { zero = Vector3Extensions.XY(val3.spawnTransform.position); num2 = 1f; val3.DoArrival(val, num2); num2 += 0.4f; } else { zero = Vector3Extensions.XY(((Component)expandNewElevatorController).gameObject.transform.position) + new Vector2(2f, 2f); num2 = 1f; expandNewElevatorController.DoArrival(num2); num2 += 0.4f; } } else { if (Object.op_Implicit((Object)(object)val2)) { zero = Vector3Extensions.XY(val2.spawnTransform.position); zero += Vector2.right * (float)i; ((BraveBehaviour)val).transform.position = new Vector3(((Component)map).transform.position.x + zero.x - 0.5f, ((Component)map).transform.position.y + zero.y, -0.1f); val.Reinitialize(); num2 += 0.4f; val.DoSpinfallSpawn(num2); continue; } if (i == 1 && (Object)(object)GameObject.Find("SecondaryPlayerSpawnPoint") != (Object)null) { zero = Vector3Extensions.XY(GameObject.Find("SecondaryPlayerSpawnPoint").transform.position); zero += Vector2.right * (float)i; ((BraveBehaviour)val).transform.position = Vector2Extensions.ToVector3ZUp(zero, -0.1f); val.Reinitialize(); continue; } if ((Object)(object)GameObject.Find("PlayerSpawnPoint") != (Object)null) { zero = Vector3Extensions.XY(GameObject.Find("PlayerSpawnPoint").transform.position); zero += Vector2.right * (float)i; ((BraveBehaviour)val).transform.position = Vector2Extensions.ToVector3ZUp(zero, -0.1f); val.Reinitialize(); continue; } IntVector2 centerCell = startRoom.GetCenterCell(); zero = ((IntVector2)(ref centerCell)).ToVector2(); if ((int)self.data[Vector2Extensions.ToIntVector2(zero, (VectorConversions)2)].type == 1 || (int)self.data[Vector2Extensions.ToIntVector2(zero, (VectorConversions)2)].type == 4) { zero = ((IntVector2)(ref startRoom.Epicenter)).ToVector2(); } zero += Vector2.right * (float)i; } ((Vector3)(ref position))..ctor(((Component)map).transform.position.x + zero.x + 0.5f, ((Component)map).transform.position.y + zero.y + 0.5f, -0.1f); ((BraveBehaviour)val).transform.position = position; val.Reinitialize(); val.DoInitialFallSpawn(num2); } GameManager.IsReturningToFoyerWithPlayer = false; GameManager.Instance.MainCameraController.ForceToPlayerPosition(GameManager.Instance.PrimaryPlayer); } private void InitNearbyTileCheck(ReflectionHelpers.ActionEX orig, PhysicsEngine self, float worldMinX, float worldMinY, float worldMaxX, float worldMaxY, tk2dTileMap tileMap, IntVector2 pixelColliderDimensions, float positionX, float positionY, IntVector2 pixelsToMove, DungeonData dungeonData) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) try { orig(self, worldMinX, worldMinY, worldMaxX, worldMaxY, tileMap, pixelColliderDimensions, positionX, positionY, pixelsToMove, dungeonData); } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[ExpandTheGungeon] Warning: Exception caught in PhysicsEngine.InitNearbyTileCheck!", false); Debug.LogException(ex); } } } private Tile GetTile(ReflectionHelpers.FuncEX orig, PhysicsEngine self, int x, int y, tk2dTileMap tileMap, int layer, string layerName, DungeonData dungeonData) { try { return orig(self, x, y, tileMap, layer, layerName, dungeonData); } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[ExpandTheGungeon] Warning: Exception caught in PhysicsEngine.GetTile!", false); Debug.LogException(ex); } return null; } } public void FloorChestPlacerConfigureOnPlacementHook(Action orig, FloorChestPlacer self, RoomHandler room) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Invalid comparison between Unknown and I4 //IL_0031: 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_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0040: 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_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0091: 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) //IL_009b: 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_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: 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_0157: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0167: 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_0171: Unknown result type (might be due to invalid IL or missing references) //IL_0179: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Unknown result type (might be due to invalid IL or missing references) //IL_01da: Unknown result type (might be due to invalid IL or missing references) //IL_01e1: 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_0263: Unknown result type (might be due to invalid IL or missing references) //IL_026d: Expected O, but got Unknown //IL_030e: Unknown result type (might be due to invalid IL or missing references) //IL_0318: Expected O, but got Unknown //IL_029d: Unknown result type (might be due to invalid IL or missing references) //IL_02a7: Expected O, but got Unknown //IL_0281: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Expected O, but got Unknown //IL_0348: Unknown result type (might be due to invalid IL or missing references) //IL_0352: Expected O, but got Unknown //IL_032c: Unknown result type (might be due to invalid IL or missing references) //IL_0336: Expected O, but got Unknown //IL_02bb: Unknown result type (might be due to invalid IL or missing references) //IL_02c5: Expected O, but got Unknown //IL_0366: Unknown result type (might be due to invalid IL or missing references) //IL_0370: Expected O, but got Unknown if (!self.UseOverrideChest && (int)room.area.PrototypeRoomCategory == 4 && Random.value < 0.015f) { IntVector2 val = Vector3Extensions.IntXY(((BraveBehaviour)self).transform.position, (VectorConversions)2); Vector2 val2 = Vector2.op_Implicit(((IntVector2)(ref val)).ToVector3()); bool flag = false; if (!ExpandSettings.HasSpawnedFakePastChest && DateTime.Today.Month == 4 && DateTime.Today.Day == 1) { ExpandSettings.HasSpawnedFakePastChest = true; flag = true; } GameObject val3 = (flag ? Object.Instantiate(ExpandPrefabs.FakePastChest, Vector2.op_Implicit(val2 - new Vector2(1.95f, 1.45f)), Quaternion.identity) : ((!(Random.value < 0.009f)) ? Object.Instantiate(ExpandPrefabs.SurpriseChestObject, Vector2.op_Implicit(val2), Quaternion.identity) : Object.Instantiate(ExpandPrefabs.RickRollChestObject, Vector2.op_Implicit(val2), Quaternion.identity))); if (flag) { ExpandArkController expandArkController = null; if (Object.op_Implicit((Object)(object)val3)) { expandArkController = val3.GetComponent(); } if (Object.op_Implicit((Object)(object)expandArkController)) { expandArkController.ConfigureOnPlacement(room); } Object.Destroy((Object)(object)((Component)self).gameObject); return; } ExpandFakeChest expandFakeChest = null; if (Object.op_Implicit((Object)(object)val3)) { expandFakeChest = val3.GetComponent(); } if (Object.op_Implicit((Object)(object)expandFakeChest)) { if (self.CenterChestInRegion) { SpeculativeRigidbody component = val3.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { Vector2 val4 = component.UnitCenter - Vector3Extensions.XY(val3.transform.position); Vector2 val5 = Vector3Extensions.XY(((BraveBehaviour)self).transform.position) + new Vector2((float)self.xPixelOffset / 16f, (float)self.yPixelOffset / 16f) + new Vector2((float)((DungeonPlaceableBehaviour)self).placeableWidth / 2f, (float)((DungeonPlaceableBehaviour)self).placeableHeight / 2f) - val4; val3.transform.position = dfVectorExtensions.Quantize(Vector2Extensions.ToVector3ZisY(val5, 0f), 0.0625f); component.Reinitialize(); } } if ((expandFakeChest.chestType == ExpandFakeChest.ChestType.RickRoll) | (expandFakeChest.chestType == ExpandFakeChest.ChestType.SurpriseChest)) { if ((Object)(object)room.area.prototypeRoom != (Object)null) { if (room.area.prototypeRoom.roomEvents == null) { room.area.prototypeRoom.roomEvents = new List(); } if (!room.area.prototypeRoom.roomEvents.Contains(new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0))) { room.area.prototypeRoom.roomEvents.Add(new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0)); } if (!room.area.prototypeRoom.roomEvents.Contains(new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1))) { room.area.prototypeRoom.roomEvents.Add(new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1)); } } if (room.area.runtimePrototypeData != null) { if (room.area.runtimePrototypeData.roomEvents == null) { room.area.runtimePrototypeData.roomEvents = new List(); } if (!room.area.runtimePrototypeData.roomEvents.Contains(new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0))) { room.area.runtimePrototypeData.roomEvents.Add(new RoomEventDefinition((RoomEventTriggerCondition)3, (RoomEventTriggerAction)0)); } if (!room.area.runtimePrototypeData.roomEvents.Contains(new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1))) { room.area.runtimePrototypeData.roomEvents.Add(new RoomEventDefinition((RoomEventTriggerCondition)2, (RoomEventTriggerAction)1)); } } } expandFakeChest.ConfigureOnPlacement(room); room.RegisterInteractable((IPlayerInteractable)(object)expandFakeChest); Object.Destroy((Object)(object)((Component)self).gameObject); } else { orig(self, room); } } else { orig(self, room); } } public void ApplyBenefit(Action orig, ShrineBenefit self, PlayerController interactor) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Invalid comparison between Unknown and I4 //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) float num = 0.2f; if ((int)self.benefitType == 10 && Random.value < num) { PickupObject val = null; GameStatsManager.Instance.RegisterStatChange((TrackedStats)88, 1f); if (GameStatsManager.Instance.GetPlayerStatValue((TrackedStats)88) >= 2f) { GameStatsManager.Instance.SetFlag((GungeonFlags)171002, true); if (GameStatsManager.Instance.GetPlayerStatValue((TrackedStats)88) == 2f) { val = PickupObjectDatabase.GetById(self.TurkeyCompanionForCompanionShrine); } } if (GameStatsManager.Instance.IsRainbowRun) { LootEngine.SpawnBowlerNote(GameManager.Instance.RewardManager.BowlerNoteOtherSource, Vector2.op_Implicit(((BraveBehaviour)interactor).transform.position + new Vector3(0f, -0.5f, 0f)), interactor.CurrentRoom, true); } else if (Object.op_Implicit((Object)(object)val)) { LootEngine.GivePrefabToPlayer(((Component)val).gameObject, interactor); } else { LootEngine.GivePrefabToPlayer(BraveUtility.RandomElement(BraveUtility.Shuffle(ExpandLists.CompanionItems)), interactor); } } else { orig(self, interactor); } } private void FlameTrapOnDestroyHook(Action orig, FlameTrapChallengeModifier self) { List list = ReflectionHelpers.ReflectGetField>(typeof(FlameTrapChallengeModifier), "m_activeTraps"); if (list == null || list.Count <= 0) { return; } for (int i = 0; i < list.Count; i++) { if (Object.op_Implicit((Object)(object)list[i])) { list[i].Trigger(); } } list.Clear(); } private void HandleLostWoodsMirroringHook(ReflectionHelpers.ActionEX orig, TK2DDungeonAssembler self, CellData current, Dungeon d, tk2dTileMap map, int ix, int iy) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Invalid comparison between Unknown and I4 //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Invalid comparison between Unknown and I4 try { if ((int)d.tileIndices.tilesetId == 32768 || (int)GameManager.Instance.CurrentLevelOverrideState == 3) { orig(self, current, d, map, ix, iy); } } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[ExpandTheGungeon] Warning: Exception caught in TK2DDungeonAssembler.HandleLostWoodsMirroring!", false); Debug.LogException(ex); } } } private void TransitionToDepartHook(Action orig, ElevatorDepartureController self, tk2dSpriteAnimator animator, tk2dSpriteAnimationClip clip) { if (ReflectionHelpers.ReflectGetField(typeof(ElevatorDepartureController), "m_depatureIsPlayerless", self)) { orig(self, animator, clip); } else { ((MonoBehaviour)GameManager.Instance).StartCoroutine(DoDeparture(self, animator, clip)); } } private static IEnumerator DoDeparture(ElevatorDepartureController self, tk2dSpriteAnimator animator, tk2dSpriteAnimationClip clip) { GameManager.Instance.MainCameraController.DoDelayedScreenShake(self.departureShake, 0.25f, (Vector2?)null); animator.AnimationCompleted = null; bool m_depatureIsPlayerless = ReflectionHelpers.ReflectGetField(typeof(ElevatorDepartureController), "m_depatureIsPlayerless", self); yield return null; if (!m_depatureIsPlayerless) { for (int i = 0; i < GameManager.Instance.AllPlayers.Length; i++) { GameManager.Instance.AllPlayers[i].PrepareForSceneTransition(); } self.elevatorFloor.SetActive(false); yield return null; animator.Play(self.elevatorDepartAnimName); while (!animator.IsPlaying(self.elevatorDepartAnimName)) { yield return null; } while (animator.IsPlaying(self.elevatorDepartAnimName)) { yield return null; } ((BraveBehaviour)animator).renderer.enabled = false; yield return null; if (ExpandDebugCamera.DebugCameraEnabled) { ExpandDebugCamera.SetInitialCameraPosition(Pixelator.Instance, GameManager.Instance.MainCameraController); } else { Pixelator.Instance.FadeToBlack(0.5f, false, 0f); } GameUIRoot.Instance.HideCoreUI(string.Empty); GameUIRoot.Instance.ToggleLowerPanels(false, false, string.Empty); yield return null; float delay = 0.5f; float time = 0f; while (time < delay) { time += BraveTime.DeltaTime; yield return null; } if (self.ReturnToFoyerWithNewInstance) { GameManager.Instance.DelayedReturnToFoyer(delay); } else if ((int)GameManager.Instance.CurrentGameMode == 3) { GameManager.Instance.DelayedLoadBossrushFloor(delay); } else if ((int)GameManager.Instance.CurrentGameMode == 2) { GameManager.Instance.DelayedLoadBossrushFloor(delay); } else { if (!GameManager.Instance.IsFoyer && (int)GameManager.Instance.CurrentLevelOverrideState == 0) { GameManager.DoMidgameSave(GameManager.Instance.GetNextTileset(GameManager.Instance.Dungeon.tileIndices.tilesetId)); yield return null; } if (self.UsesOverrideTargetFloor) { ValidTilesets overrideTargetFloor = self.OverrideTargetFloor; if ((int)overrideTargetFloor != 32) { if ((int)overrideTargetFloor == 64) { GameManager.Instance.DelayedLoadCustomLevel(delay, "tt_forge"); } } else { GameManager.Instance.DelayedLoadCustomLevel(delay, "tt_catacombs"); } } else { GameManager.Instance.DelayedLoadNextLevel(delay); } AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)self).gameObject); } yield return null; } else { self.elevatorFloor.SetActive(false); yield return null; animator.Play(self.elevatorDepartAnimName); while (!animator.IsPlaying(self.elevatorDepartAnimName)) { yield return null; } while (animator.IsPlaying(self.elevatorDepartAnimName)) { yield return null; } ((BraveBehaviour)animator).renderer.enabled = false; yield return null; } ((Component)self).gameObject.SetActive(false); } private void ExciseElbowsHook(Action orig, DungeonData self) { try { orig(self); } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[ExpandTheGungeon] Warning: Exception caught in DungeonData.ExciseElbows!", false); Debug.LogException(ex); } } } [HarmonyPatch(typeof(GameManager), "DelayedLoadNextLevel", new Type[] { typeof(float) })] [HarmonyPrefix] public static bool DelayedLoadNextLevelPatch(GameManager __instance, float delay) { if (!string.IsNullOrEmpty(__instance.InjectedFlowPath) && __instance.InjectedFlowPath.Contains("Core Game Flows/Secret_DoubleBeholster_Flow")) { ExpandLoadingScreen.overrideType = ExpandLoadingScreen.OverrideType.Glitched; if (ExpandSettings.EnableExpandedGlitchFloors) { __instance.InjectedFlowPath = "secret_expandeddoublebeholster_flow"; } } return true; } [HarmonyPatch(typeof(GameManager), "LoadCustomLevel", new Type[] { typeof(string) })] [HarmonyPrefix] public static void LoadCustomLevelPatch(GameManager __instance, ref string custom) { if (ExpandSettings.SewersIsFuture && custom.ToLower().Contains("tt_sewer")) { ExpandSettings.SewersIsFuture = false; custom = "tt_future"; } } [HarmonyPatch(typeof(tk2dSpriteAnimator), "Play", new Type[] { typeof(tk2dSpriteAnimationClip), typeof(float), typeof(float), typeof(bool) })] [HarmonyPrefix] public static bool PlayPatch(tk2dSpriteAnimator __instance, tk2dSpriteAnimationClip clip, float clipStartTime, float overrideFps, bool skipEvents = false) { if (clip == null && Object.op_Implicit((Object)(object)((Component)__instance).gameObject)) { string text = "EX: Calling clip.Play() with a null clip on object '" + ((Object)((Component)__instance).gameObject).name + "'"; text = ((!Object.op_Implicit((Object)(object)((Component)__instance).gameObject.transform.parent) || !Object.op_Implicit((Object)(object)((Component)((Component)__instance).gameObject.transform.parent).gameObject)) ? (text + "!") : (text + " on Parent Object: '" + ((Object)((Component)((Component)__instance).gameObject.transform.parent).gameObject).name + "'.")); Debug.LogWarning((object)text); } return true; } } [HarmonyPatch] public class ExpandPlaceFloorObjects : MonoBehaviour { private static ExpandPlaceFloorObjects m_Instance; public static List BannedWallMimicRoomList = new List { "tutorial_room_007_bosstime", "endtimes_chamber", "dragunroom01", "demonwallroom01", "elevatormaintenanceroom" }; public static bool PlayerHasWallMimicItem = false; public static bool PlayerHasCorruptedJunk = false; public static bool PlayerHasThirdEye = false; public static bool EnemiesHaveCorruptorInstalled = false; private int WallMimicsPlaced; private int WallMimicsPerRoom; private int numWallMimicsForFloor; private int currentFloor; public static ExpandPlaceFloorObjects Instance { get { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)m_Instance)) { m_Instance = new GameObject("Expand Floor Placer", new Type[1] { typeof(ExpandPlaceFloorObjects) }) { layer = 22 }.GetComponent(); } return m_Instance; } } public static void DestroyInstance() { Object.Destroy((Object)(object)((Component)m_Instance).gameObject); m_Instance = null; } [HarmonyPatch(typeof(Dungeon), "PlaceWallMimics", new Type[] { typeof(RoomHandler) })] [HarmonyPrefix] public static bool PlaceWallMimicsPatch(Dungeon __instance, RoomHandler debugRoom) { if (ExpandTheGungeon.loadStatus != ExpandTheGungeon.LoadStatus.LoadFinished && ExpandTheGungeon.loadStatus != ExpandTheGungeon.LoadStatus.Other) { return false; } Instance.PlaceFloorObjects(__instance, debugRoom); DestroyInstance(); return false; } public void PlaceFloorObjects(Dungeon dungeon, RoomHandler roomHandler) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Invalid comparison between Unknown and I4 //IL_006d: 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_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Invalid comparison between Unknown and I4 //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Invalid comparison between Unknown and I4 //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Invalid comparison between Unknown and I4 //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Invalid comparison between Unknown and I4 //IL_0466: Unknown result type (might be due to invalid IL or missing references) //IL_046b: Unknown result type (might be due to invalid IL or missing references) //IL_046d: Unknown result type (might be due to invalid IL or missing references) //IL_0471: Invalid comparison between Unknown and I4 //IL_0486: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Invalid comparison between Unknown and I4 //IL_0473: Unknown result type (might be due to invalid IL or missing references) //IL_0476: Invalid comparison between Unknown and I4 //IL_03ba: Unknown result type (might be due to invalid IL or missing references) //IL_03c0: Invalid comparison between Unknown and I4 //IL_04a3: Unknown result type (might be due to invalid IL or missing references) //IL_04aa: Invalid comparison between Unknown and I4 //IL_048f: Unknown result type (might be due to invalid IL or missing references) //IL_0496: Invalid comparison between Unknown and I4 //IL_0478: Unknown result type (might be due to invalid IL or missing references) //IL_047c: Invalid comparison between Unknown and I4 //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Invalid comparison between Unknown and I4 //IL_04ac: Unknown result type (might be due to invalid IL or missing references) //IL_04b3: Invalid comparison between Unknown and I4 //IL_0498: Unknown result type (might be due to invalid IL or missing references) //IL_049f: Invalid comparison between Unknown and I4 //IL_047e: Unknown result type (might be due to invalid IL or missing references) //IL_0482: Invalid comparison between Unknown and I4 //IL_03e5: Unknown result type (might be due to invalid IL or missing references) //IL_03eb: Invalid comparison between Unknown and I4 WallMimicsPlaced = 0; WallMimicsPerRoom = 1; numWallMimicsForFloor = MetaInjectionData.GetNumWallMimicsForFloor(dungeon.tileIndices.tilesetId); currentFloor = GameManager.Instance.CurrentFloor; if (roomHandler == null) { if ((int)GameManager.Instance.CurrentLevelOverrideState == 1) { ExpandSettings.glitchElevatorHasBeenUsed = false; ExpandSettings.HasVisitedBackrooms = false; ExpandSettings.BackroomsEntrancePlaced = false; } if (currentFloor == 1) { ExpandSettings.HasVisitedBackrooms = false; } LevelOverrideState currentLevelOverrideState = GameManager.Instance.CurrentLevelOverrideState; if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] Current Floor: " + currentFloor), false); } try { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] Number of Wall Mimics RewardManager wants to spawn: " + numWallMimicsForFloor), false); } if (((int)currentLevelOverrideState > 0 || (int)currentLevelOverrideState == 2 || (int)currentLevelOverrideState == 1) | ((int)dungeon.tileIndices.tilesetId == 32768)) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] This floor has been excluded from having Wall Mimics", false); } if (ExpandSettings.debugMode && (int)dungeon.tileIndices.tilesetId == 32768) { ETGModConsole.Log((object)"[DEBUG] The Resourceful Rat Maze/tileset has been excluded from having wall mimics and other floor mods!", false); } return; } if ((dungeon.data == null) | (dungeon.data.rooms.Count <= 0)) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"Dungeon has no rooms or Dungeon.data is null! This is super abnormal!", false); } return; } PlaceGlitchElevator(dungeon, currentFloor); PlaceNoClipZone(dungeon, currentFloor, numWallMimicsForFloor); PlaceBackroomsElevator(dungeon); bool isBackRoomsEntitySpawner = false; if (!string.IsNullOrEmpty(((Object)((Component)dungeon).gameObject).name) && ((Object)((Component)dungeon).gameObject).name.ToLower().StartsWith("base_backrooms")) { isBackRoomsEntitySpawner = true; if (dungeon.data.Entrance != null && dungeon.data.Entrance.area != null && !dungeon.data.Entrance.area.PrototypeLostWoodsRoom) { isBackRoomsEntitySpawner = false; } } ExpandJunkEnemySpawner.Instance.PlaceRandomJunkEnemies(dungeon, roomHandler, isBackRoomsEntitySpawner); ExpandJunkEnemySpawner.DestroyInstance(); if (ExpandSettings.EnableExpandedGlitchFloors) { if (dungeon.IsGlitchDungeon) { if (!EnemiesHaveCorruptorInstalled) { EnemiesHaveCorruptorInstalled = true; AIActor.OnPreStart = (Action)Delegate.Combine(AIActor.OnPreStart, new Action(EnemyModRandomizer)); } } else if (EnemiesHaveCorruptorInstalled) { AIActor.OnPreStart = (Action)Delegate.Remove(AIActor.OnPreStart, new Action(EnemyModRandomizer)); EnemiesHaveCorruptorInstalled = false; } ExpandPlaceCorruptTiles.Instance.PlaceCorruptTiles(dungeon); ExpandPlaceCorruptTiles.DestroyInstance(); } ExpandFloorDecorator.Instance.PlaceFloorDecoration(dungeon); ExpandFloorDecorator.DestroyInstance(); if (PlayerHasCorruptedJunk | PlayerHasThirdEye) { CorruptRandomRooms(dungeon, currentFloor); } } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] Exception caught in early setup code for ExpandMain.ExpandPlaceWallMimics!", false); } Debug.Log((object)"Exception caught in early setup code for ExpandMain.ExpandPlaceWallMimics!"); Debug.LogException(ex); } if (numWallMimicsForFloor <= 0 && !PlayerHasWallMimicItem) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] There will be no Wall Mimics for this floor.", false); } PhysicsEngine.Instance.ClearAllCachedTiles(); return; } } if (roomHandler != null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] Wall Mimics Assigned to specific room: " + numWallMimicsForFloor), false); } if (SpawnWallMimic(dungeon, roomHandler) == 0 && ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] Failed to find valid locations for a Wall Mimic in room: " + numWallMimicsForFloor + "!"), false); } goto IL_05ec; } List list = new List(); foreach (RoomHandler room in dungeon.data.rooms) { if (room.area != null && !room.IsShop && !room.PrecludeTilemapDrawing && !string.IsNullOrEmpty(room.GetRoomName()) && (int)room.area.PrototypeRoomCategory != 6 && (!room.area.IsProceduralRoom || room.area.proceduralCells == null) && ((int)room.area.PrototypeRoomCategory != 3 || !BraveUtility.RandomBool()) && !room.GetRoomName().StartsWith("DraGunRoom") && !room.IsMaintenanceRoom() && !BannedWallMimicRoomList.Contains(room.GetRoomName().ToLower())) { list.Add(room); } } int count = list.Count; int num = 0; if (PlayerHasWallMimicItem) { ValidTilesets tilesetId = dungeon.tileIndices.tilesetId; if ((int)tilesetId <= 64) { if ((int)tilesetId != 8) { if ((int)tilesetId != 32) { if ((int)tilesetId != 64) { goto IL_04f6; } WallMimicsPerRoom = 2; } else { WallMimicsPerRoom = 2; } } else { WallMimicsPerRoom = 2; } } else if ((int)tilesetId <= 1024) { if ((int)tilesetId != 128) { if ((int)tilesetId != 1024) { goto IL_04f6; } WallMimicsPerRoom = 2; } else { WallMimicsPerRoom = 3; } } else if ((int)tilesetId != 2048) { if ((int)tilesetId != 4096) { goto IL_04f6; } WallMimicsPerRoom = 2; } else { WallMimicsPerRoom = 2; } goto IL_04fd; } goto IL_0530; IL_04f6: WallMimicsPerRoom = 1; goto IL_04fd; IL_04fd: numWallMimicsForFloor = count * WallMimicsPerRoom; if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] Wall Mimics assigned by Cursed Bricks: " + count * WallMimicsPerRoom), false); } goto IL_0530; IL_05ec: if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] All valid rooms for Wall Mimics have been checked. Placement complete.", false); ETGModConsole.Log((object)("[DEBUG] Wall Mimics Succewsfully Placed: " + WallMimicsPlaced), false); } PhysicsEngine.Instance.ClearAllCachedTiles(); return; IL_0530: do { if (((WallMimicsPlaced >= numWallMimicsForFloor) | (list.Count <= 0)) || num >= count) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] All valid rooms for Wall Mimics have been checked. Placement complete.", false); ETGModConsole.Log((object)("[DEBUG] Wall Mimics Succewsfully Placed: " + WallMimicsPlaced), false); } PhysicsEngine.Instance.ClearAllCachedTiles(); return; } if (list.Count > 1) { list = BraveUtility.Shuffle(list); } RoomHandler val = BraveUtility.RandomElement(list); list.Remove(val); num++; WallMimicsPlaced += SpawnWallMimic(dungeon, val, WallMimicsPerRoom); } while (num < count && WallMimicsPlaced < numWallMimicsForFloor); goto IL_05ec; } public int SpawnWallMimic(Dungeon dungeon, RoomHandler currentRoom, int WallMimicsPerRoom = 1) { //IL_0796: Unknown result type (might be due to invalid IL or missing references) //IL_079b: Unknown result type (might be due to invalid IL or missing references) //IL_079f: Unknown result type (might be due to invalid IL or missing references) //IL_07a4: Unknown result type (might be due to invalid IL or missing references) //IL_07a6: Invalid comparison between Unknown and I4 //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_07bf: Invalid comparison between Unknown and I4 //IL_07a9: Unknown result type (might be due to invalid IL or missing references) //IL_07b0: 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_07f2: Unknown result type (might be due to invalid IL or missing references) //IL_07c2: Unknown result type (might be due to invalid IL or missing references) //IL_07cb: Unknown result type (might be due to invalid IL or missing references) //IL_06ad: Unknown result type (might be due to invalid IL or missing references) //IL_06b3: Invalid comparison between Unknown and I4 //IL_06b7: Unknown result type (might be due to invalid IL or missing references) //IL_06bd: Invalid comparison between Unknown and I4 //IL_051c: Unknown result type (might be due to invalid IL or missing references) //IL_0646: Unknown result type (might be due to invalid IL or missing references) //IL_03f4: Unknown result type (might be due to invalid IL or missing references) //IL_0270: Unknown result type (might be due to invalid IL or missing references) int num = 0; int num2 = 0; int num3 = 0; int num4 = 0; int num5 = 0; int i = 0; List> list = new List>(); try { for (int j = -1; j <= currentRoom.area.dimensions.x; j++) { for (int k = -1; k <= currentRoom.area.dimensions.y; k++) { int num6 = currentRoom.area.basePosition.x + j; int num7 = currentRoom.area.basePosition.y + k; if (!dungeon.data.isWall(num6, num7) || num6 % 4 != 0 || num7 % 4 != 0 || dungeon.data.GetAbsoluteRoomFromPosition(new IntVector2(num6, num7)) == null || dungeon.data.GetAbsoluteRoomFromPosition(new IntVector2(num6, num7)) != currentRoom) { continue; } int num8 = 0; if (!dungeon.data.isWall(num6 - 1, num7 + 2) && !dungeon.data.isWall(num6, num7 + 2) && !dungeon.data.isWall(num6 + 1, num7 + 2) && !dungeon.data.isWall(num6 + 2, num7 + 2) && !dungeon.data.isWall(num6 - 1, num7 + 1) && !dungeon.data.isWall(num6, num7 + 1) && !dungeon.data.isWall(num6 + 1, num7 + 1) && !dungeon.data.isWall(num6 + 2, num7 + 1) && dungeon.data.isWall(num6 - 1, num7) && dungeon.data.isWall(num6, num7) && dungeon.data.isWall(num6 + 1, num7) && dungeon.data.isWall(num6 + 2, num7) && dungeon.data.isWall(num6 - 1, num7 - 1) && dungeon.data.isWall(num6, num7 - 1) && dungeon.data.isWall(num6 + 1, num7 - 1) && dungeon.data.isWall(num6 + 2, num7 - 1) && !dungeon.data.isPlainEmptyCell(num6 - 1, num7 - 3) && !dungeon.data.isPlainEmptyCell(num6, num7 - 3) && !dungeon.data.isPlainEmptyCell(num6 + 1, num7 - 3) && !dungeon.data.isPlainEmptyCell(num6 + 2, num7 - 3)) { list.Add(Tuple.Create(new IntVector2(num6, num7), (Direction)0)); num8++; num++; } else if (dungeon.data.isWall(num6 - 1, num7 + 2) && dungeon.data.isWall(num6, num7 + 2) && dungeon.data.isWall(num6 + 1, num7 + 2) && dungeon.data.isWall(num6 + 2, num7 + 2) && dungeon.data.isWall(num6 - 1, num7 + 1) && dungeon.data.isWall(num6, num7 + 1) && dungeon.data.isWall(num6 + 1, num7 + 1) && dungeon.data.isWall(num6 + 2, num7 + 1) && dungeon.data.isWall(num6 - 1, num7) && dungeon.data.isWall(num6, num7) && dungeon.data.isWall(num6 + 1, num7) && dungeon.data.isWall(num6 + 2, num7) && dungeon.data.isPlainEmptyCell(num6, num7 - 1) && dungeon.data.isPlainEmptyCell(num6 + 1, num7 - 1) && !dungeon.data.isPlainEmptyCell(num6, num7 + 4) && !dungeon.data.isPlainEmptyCell(num6 + 1, num7 + 4)) { list.Add(Tuple.Create(new IntVector2(num6, num7), (Direction)4)); num8++; num2++; } else if (dungeon.data.isWall(num6, num7 + 2) && dungeon.data.isWall(num6, num7 + 1) && dungeon.data.isWall(num6 - 1, num7) && dungeon.data.isWall(num6, num7 - 1) && dungeon.data.isWall(num6, num7 - 2) && !dungeon.data.isPlainEmptyCell(num6 - 2, num7 + 2) && !dungeon.data.isPlainEmptyCell(num6 - 2, num7 + 1) && !dungeon.data.isPlainEmptyCell(num6 - 2, num7) && dungeon.data.isPlainEmptyCell(num6 + 1, num7) && dungeon.data.isPlainEmptyCell(num6 + 1, num7 - 1) && !dungeon.data.isPlainEmptyCell(num6 - 2, num7 - 1) && !dungeon.data.isPlainEmptyCell(num6 - 2, num7 - 2)) { list.Add(Tuple.Create(new IntVector2(num6, num7), (Direction)2)); num8++; num3++; } else if (dungeon.data.isWall(num6, num7 + 2) && dungeon.data.isWall(num6, num7 + 1) && dungeon.data.isWall(num6 + 1, num7) && dungeon.data.isWall(num6, num7 - 1) && dungeon.data.isWall(num6, num7 - 2) && !dungeon.data.isPlainEmptyCell(num6 + 2, num7 + 2) && !dungeon.data.isPlainEmptyCell(num6 + 2, num7 + 1) && !dungeon.data.isPlainEmptyCell(num6 + 2, num7) && dungeon.data.isPlainEmptyCell(num6 - 1, num7) && dungeon.data.isPlainEmptyCell(num6 - 1, num7 - 1) && !dungeon.data.isPlainEmptyCell(num6 + 2, num7 - 1) && !dungeon.data.isPlainEmptyCell(num6 + 2, num7 - 2)) { list.Add(Tuple.Create(new IntVector2(num6 - 1, num7), (Direction)6)); num8++; num4++; } if (num8 <= 0) { continue; } bool flag = true; for (int l = -5; l <= 5 && flag; l++) { for (int m = -5; m <= 5 && flag; m++) { int num9 = num6 + l; int num10 = num7 + m; if (dungeon.data.CheckInBoundsAndValid(num9, num10)) { CellData val = dungeon.data[num9, num10]; if (val != null && (((int)val.type == 4) | ((int)val.diagonalWallType > 0))) { flag = false; } } } } if (!flag) { while (num8 > 0) { list.RemoveAt(list.Count - 1); num8--; } } } } if (list.Count <= 0) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] No valid locations found for room: " + currentRoom.GetRoomName() + " while attempting Wall Mimic placement!"), false); } return 0; } for (; i < WallMimicsPerRoom; i++) { if (list.Count <= 0) { break; } if (list.Count <= 0) { continue; } Tuple val2 = BraveUtility.RandomElement>(list); IntVector2 first = val2.First; Direction second = val2.Second; if ((int)second != 6) { currentRoom.RuntimeStampCellComplex(first.x, first.y, (CellType)2, (DiagonalWallType)0); } if ((int)second != 2) { currentRoom.RuntimeStampCellComplex(first.x + 1, first.y, (CellType)2, (DiagonalWallType)0); } AIActor val3 = AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(GameManager.Instance.RewardManager.WallMimicChances.EnemyGuid), first, currentRoom, true, (AwakenAnimationType)0, true); if (PlayerHasWallMimicItem && Object.op_Implicit((Object)(object)val3) && Object.op_Implicit((Object)(object)((Component)val3).GetComponent())) { ExpandWallMimicManager component = ((Component)val3).gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.CursedBrickMode = true; } } list.Remove(val2); num5++; } } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] Exception while trying to place WallMimic(s) in room: " + currentRoom.GetRoomName()), false); Debug.LogException(ex); } return num5; } if (num5 > 0) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] Wall Mimic(s) succesfully placed in room: " + currentRoom.GetRoomName()), false); ETGModConsole.Log((object)("[DEBUG] Number of Valid North Wall Mimics locations: " + num2), false); ETGModConsole.Log((object)("[DEBUG] Number of Valid South Wall Mimics locations: " + num), false); ETGModConsole.Log((object)("[DEBUG] Number of Valid East Wall Mimics locations: " + num4), false); ETGModConsole.Log((object)("[DEBUG] Number of Valid West Wall Mimics locations: " + num3), false); ETGModConsole.Log((object)("[DEBUG] Number of Wall Mimics succesfully placed in room: " + num5), false); } return num5; } ETGModConsole.Log((object)("[DEBUG] No valid location found for room: " + currentRoom.GetRoomName() + " while attempting Wall Mimic placement!"), false); return 0; } private void PlaceBackroomsElevator(Dungeon dungeon) { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000a: 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_000d: Invalid comparison between Unknown and I4 //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Invalid comparison between Unknown and I4 //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Invalid comparison between Unknown and I4 //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Invalid comparison between Unknown and I4 //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Invalid comparison between Unknown and I4 //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Invalid comparison between Unknown and I4 //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Invalid comparison between Unknown and I4 //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Invalid comparison between Unknown and I4 LevelOverrideState currentLevelOverrideState = GameManager.Instance.CurrentLevelOverrideState; if ((int)currentLevelOverrideState == 1 || (int)currentLevelOverrideState == 2 || (int)currentLevelOverrideState == 5 || (int)currentLevelOverrideState == 4 || !((Object)((Component)dungeon).gameObject).name.ToLower().StartsWith("base_backrooms") || !Object.op_Implicit((Object)(object)Object.FindObjectOfType()) || (((int)GameManager.Instance.CurrentGameMode == 2) | ((int)GameManager.Instance.CurrentGameMode == 3))) { return; } PlayerController[] allPlayers = GameManager.Instance.AllPlayers; for (int i = 0; i < allPlayers.Length; i++) { ((BraveBehaviour)allPlayers[i]).healthHaver.IsVulnerable = true; } if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] Attempting to place a Backrooms Exit Elevator!", false); } List list = new List(); foreach (RoomHandler room in dungeon.data.rooms) { if (!string.IsNullOrEmpty(room.GetRoomName()) && !room.IsMaintenanceRoom() && (int)room.area.PrototypeRoomCategory != 7 && (int)room.area.PrototypeRoomCategory != 8 && !room.GetRoomName().ToLower().StartsWith("backrooms_entrance_warpwing") && !room.GetRoomName().ToLower().StartsWith("backrooms_voidroom") && !room.GetRoomName().ToLower().StartsWith("backrooms_room105")) { list.Add(room); } } int num = 0; RoomHandler val; do { if (list.Count <= 0) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] No rooms that are allowed to contain an Exit Elevator or have valid locations for one are present on this floor!", false); } break; } if (list.Count > 1) { list = BraveUtility.Shuffle(list); } val = BraveUtility.RandomElement(list); list.Remove(val); num++; } while (!SpawnBackroomsElevator(dungeon, val) && num < dungeon.data.rooms.Count); } public bool SpawnBackroomsElevator(Dungeon dungeon, RoomHandler currentRoom) { //IL_0480: Unknown result type (might be due to invalid IL or missing references) //IL_0485: Unknown result type (might be due to invalid IL or missing references) //IL_0488: Unknown result type (might be due to invalid IL or missing references) //IL_048f: Unknown result type (might be due to invalid IL or missing references) //IL_049e: Unknown result type (might be due to invalid IL or missing references) //IL_04a7: Unknown result type (might be due to invalid IL or missing references) //IL_04bb: Unknown result type (might be due to invalid IL or missing references) //IL_04bf: Unknown result type (might be due to invalid IL or missing references) //IL_04c4: Unknown result type (might be due to invalid IL or missing references) //IL_04cf: Unknown result type (might be due to invalid IL or missing references) //IL_04d4: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_03ab: Unknown result type (might be due to invalid IL or missing references) //IL_03b1: Invalid comparison between Unknown and I4 //IL_03b5: Unknown result type (might be due to invalid IL or missing references) //IL_03bb: Invalid comparison between Unknown and I4 //IL_0344: Unknown result type (might be due to invalid IL or missing references) int num = 0; int num2 = 0; List> list = new List>(); ExpandSecretDoorPlacable[] array = Object.FindObjectsOfType(); if (array != null && array.Length > 1) { return true; } try { for (int i = -1; i <= currentRoom.area.dimensions.x; i++) { for (int j = -1; j <= currentRoom.area.dimensions.y; j++) { int num3 = currentRoom.area.basePosition.x + i; int num4 = currentRoom.area.basePosition.y + j; if (!dungeon.data.isWall(num3, num4) || num3 % 4 != 0 || num4 % 4 != 0 || dungeon.data.GetAbsoluteRoomFromPosition(new IntVector2(num3, num4)) == null || dungeon.data.GetAbsoluteRoomFromPosition(new IntVector2(num3, num4)) != currentRoom) { continue; } int num5 = 0; if (dungeon.data.isWall(num3 - 2, num4 + 2) && dungeon.data.isWall(num3 - 1, num4 + 2) && dungeon.data.isWall(num3, num4 + 2) && dungeon.data.isWall(num3 + 1, num4 + 2) && dungeon.data.isWall(num3 + 3, num4 + 2) && dungeon.data.isWall(num3 + 2, num4 + 2) && dungeon.data.isWall(num3 - 2, num4 + 1) && dungeon.data.isWall(num3 - 1, num4 + 1) && dungeon.data.isWall(num3, num4 + 1) && dungeon.data.isWall(num3 + 1, num4 + 1) && dungeon.data.isWall(num3 + 3, num4 + 1) && dungeon.data.isWall(num3 + 2, num4 + 1) && dungeon.data.isWall(num3 - 1, num4) && dungeon.data.isWall(num3 - 2, num4) && dungeon.data.isWall(num3, num4) && dungeon.data.isWall(num3 + 1, num4) && dungeon.data.isWall(num3 + 2, num4) && dungeon.data.isWall(num3 + 3, num4) && dungeon.data.isPlainEmptyCell(num3 - 2, num4 - 1) && dungeon.data.isPlainEmptyCell(num3 - 1, num4 - 1) && dungeon.data.isPlainEmptyCell(num3, num4 - 1) && dungeon.data.isPlainEmptyCell(num3 + 1, num4 - 1) && dungeon.data.isPlainEmptyCell(num3, num4 - 1) && dungeon.data.isPlainEmptyCell(num3 + 2, num4 - 1) && dungeon.data.isPlainEmptyCell(num3 + 3, num4 - 1) && !dungeon.data.isPlainEmptyCell(num3, num4 + 4) && !dungeon.data.isPlainEmptyCell(num3 + 1, num4 + 4) && !dungeon.data.isPlainEmptyCell(num3 - 2, num4) && !dungeon.data.isPlainEmptyCell(num3 + 3, num4)) { list.Add(Tuple.Create(new IntVector2(num3, num4), (Direction)4)); num5++; num++; } if (num5 <= 0) { continue; } bool flag = true; for (int k = -5; k <= 5 && flag; k++) { for (int l = -5; l <= 5 && flag; l++) { int num6 = num3 + k; int num7 = num4 + l; if (dungeon.data.CheckInBoundsAndValid(num6, num7)) { CellData val = dungeon.data[num6, num7]; if (val != null && (((int)val.type == 4) | ((int)val.diagonalWallType > 0))) { flag = false; } } } } if (!flag) { while (num5 > 0) { list.RemoveAt(list.Count - 1); num5--; } } } } if (list.Count <= 0) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] No valid locations found for room: " + currentRoom.GetRoomName() + " while attempting Elevator placement!"), false); } return false; } Tuple val2 = BraveUtility.RandomElement>(list); IntVector2 first = val2.First; currentRoom.RuntimeStampCellComplex(first.x, first.y, (CellType)2, (DiagonalWallType)0); currentRoom.RuntimeStampCellComplex(first.x + 1, first.y, (CellType)2, (DiagonalWallType)0); GameObject val3 = DungeonPlaceableUtility.InstantiateDungeonPlaceable(ExpandSecretDoorPrefabs.EXSecretBackroomsDoor, currentRoom, first - new IntVector2(1, 0) - currentRoom.area.basePosition, false, (AwakenAnimationType)0, false); if (Object.op_Implicit((Object)(object)val3)) { ExpandSecretDoorPlacable component = val3.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { currentRoom.RegisterInteractable((IPlayerInteractable)(object)component); } } list.Remove(val2); if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] Elevators(s) succesfully placed in room: " + currentRoom.GetRoomName()), false); ETGModConsole.Log((object)("[DEBUG] Number of Elevators succesfully placed in room: " + num2), false); ETGModConsole.Log((object)("[DEBUG] Number of valid Elevator locations: " + num), false); } return false; } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] Exception while trying to place Elevator(s) in room: " + currentRoom.GetRoomName()), false); Debug.LogException(ex); } return true; } } private void PlaceNoClipZone(Dungeon dungeon, int CurrentFloor, int wallMimicCount) { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Invalid comparison between Unknown and I4 //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Invalid comparison between Unknown and I4 //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Invalid comparison between Unknown and I4 //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Invalid comparison between Unknown and I4 //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Invalid comparison between Unknown and I4 //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Invalid comparison between Unknown and I4 LevelOverrideState currentLevelOverrideState = GameManager.Instance.CurrentLevelOverrideState; if (ExpandSettings.HasVisitedBackrooms || ((Object)((Component)dungeon).gameObject).name.ToLower().StartsWith("base_backrooms") || (((int)GameManager.Instance.CurrentGameMode == 2) | ((int)GameManager.Instance.CurrentGameMode == 3)) || (int)currentLevelOverrideState == 1 || (int)currentLevelOverrideState == 2) { return; } if ((int)currentLevelOverrideState == 5) { ExpandSettings.HasVisitedBackrooms = false; ExpandSettings.BackroomsEntrancePlaced = false; } else { if ((int)currentLevelOverrideState == 4) { return; } float num = 0.025f; if (wallMimicCount != 0) { num = 0.075f; } if (Random.value > num) { return; } if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] Attempting to place a BackRooms NoClip Zone!", false); } List list = new List(); foreach (RoomHandler room in dungeon.data.rooms) { if (!string.IsNullOrEmpty(room.GetRoomName()) && !room.IsShop && !room.IsMaintenanceRoom() && !room.GetRoomName().ToLower().StartsWith("exit") && !room.GetRoomName().ToLower().StartsWith("tiny_exit") && !room.GetRoomName().ToLower().StartsWith("elevator") && !room.GetRoomName().ToLower().StartsWith("tiny_entrance") && !room.GetRoomName().ToLower().StartsWith("gungeon entrance") && !room.GetRoomName().ToLower().StartsWith("gungeon_rewardroom") && !room.GetRoomName().ToLower().StartsWith("reward room") && !room.GetRoomName().ToLower().StartsWith(((Object)ExpandRoomPrefabs.Expand_BootlegRoom).name.ToLower()) && !room.area.prototypeRoom.precludeAllTilemapDrawing) { list.Add(room); } } int num2 = 0; int num3 = 0; do { if (list.Count <= 0) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] No rooms that are allowed to contain a NoClip zone or have valid locations for one are present on this floor!", false); } break; } if (list.Count > 1) { list = BraveUtility.Shuffle(list); } RoomHandler val = BraveUtility.RandomElement(list); list.Remove(val); num2++; num3 += SpawnNoClipZone(dungeon, val); } while (num3 <= 0); } } public int SpawnNoClipZone(Dungeon dungeon, RoomHandler currentRoom, int ZonesPerRoom = 1) { //IL_0796: Unknown result type (might be due to invalid IL or missing references) //IL_079b: Unknown result type (might be due to invalid IL or missing references) //IL_079f: Unknown result type (might be due to invalid IL or missing references) //IL_07a4: Unknown result type (might be due to invalid IL or missing references) //IL_07a6: Unknown result type (might be due to invalid IL or missing references) //IL_07a9: Invalid comparison between Unknown and I4 //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_07c1: Unknown result type (might be due to invalid IL or missing references) //IL_07c4: Invalid comparison between Unknown and I4 //IL_07ac: Unknown result type (might be due to invalid IL or missing references) //IL_07b3: 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_07de: Unknown result type (might be due to invalid IL or missing references) //IL_07e0: Unknown result type (might be due to invalid IL or missing references) //IL_07e8: Unknown result type (might be due to invalid IL or missing references) //IL_07ed: Unknown result type (might be due to invalid IL or missing references) //IL_0806: Unknown result type (might be due to invalid IL or missing references) //IL_080d: Expected O, but got Unknown //IL_0816: Unknown result type (might be due to invalid IL or missing references) //IL_0820: Unknown result type (might be due to invalid IL or missing references) //IL_0823: Invalid comparison between Unknown and I4 //IL_07c7: Unknown result type (might be due to invalid IL or missing references) //IL_07d0: Unknown result type (might be due to invalid IL or missing references) //IL_084b: Unknown result type (might be due to invalid IL or missing references) //IL_084e: Invalid comparison between Unknown and I4 //IL_082d: Unknown result type (might be due to invalid IL or missing references) //IL_083c: Unknown result type (might be due to invalid IL or missing references) //IL_0841: Unknown result type (might be due to invalid IL or missing references) //IL_0876: Unknown result type (might be due to invalid IL or missing references) //IL_0858: Unknown result type (might be due to invalid IL or missing references) //IL_0867: Unknown result type (might be due to invalid IL or missing references) //IL_086c: Unknown result type (might be due to invalid IL or missing references) //IL_08a0: Unknown result type (might be due to invalid IL or missing references) //IL_08a3: Invalid comparison between Unknown and I4 //IL_0882: Unknown result type (might be due to invalid IL or missing references) //IL_0891: Unknown result type (might be due to invalid IL or missing references) //IL_0896: Unknown result type (might be due to invalid IL or missing references) //IL_08d5: Unknown result type (might be due to invalid IL or missing references) //IL_08d8: Invalid comparison between Unknown and I4 //IL_08da: Unknown result type (might be due to invalid IL or missing references) //IL_08dd: Invalid comparison between Unknown and I4 //IL_08ad: Unknown result type (might be due to invalid IL or missing references) //IL_08bc: Unknown result type (might be due to invalid IL or missing references) //IL_08c1: Unknown result type (might be due to invalid IL or missing references) //IL_08f9: Unknown result type (might be due to invalid IL or missing references) //IL_06ad: Unknown result type (might be due to invalid IL or missing references) //IL_06b3: Invalid comparison between Unknown and I4 //IL_06b7: Unknown result type (might be due to invalid IL or missing references) //IL_06bd: Invalid comparison between Unknown and I4 //IL_051c: Unknown result type (might be due to invalid IL or missing references) //IL_0646: Unknown result type (might be due to invalid IL or missing references) //IL_03f4: Unknown result type (might be due to invalid IL or missing references) //IL_0270: Unknown result type (might be due to invalid IL or missing references) int num = 0; int num2 = 0; int num3 = 0; int num4 = 0; int num5 = 0; int i = 0; List> list = new List>(); try { for (int j = -1; j <= currentRoom.area.dimensions.x; j++) { for (int k = -1; k <= currentRoom.area.dimensions.y; k++) { int num6 = currentRoom.area.basePosition.x + j; int num7 = currentRoom.area.basePosition.y + k; if (!dungeon.data.isWall(num6, num7) || num6 % 4 != 0 || num7 % 4 != 0 || dungeon.data.GetAbsoluteRoomFromPosition(new IntVector2(num6, num7)) == null || dungeon.data.GetAbsoluteRoomFromPosition(new IntVector2(num6, num7)) != currentRoom) { continue; } int num8 = 0; if (!dungeon.data.isWall(num6 - 1, num7 + 2) && !dungeon.data.isWall(num6, num7 + 2) && !dungeon.data.isWall(num6 + 1, num7 + 2) && !dungeon.data.isWall(num6 + 2, num7 + 2) && !dungeon.data.isWall(num6 - 1, num7 + 1) && !dungeon.data.isWall(num6, num7 + 1) && !dungeon.data.isWall(num6 + 1, num7 + 1) && !dungeon.data.isWall(num6 + 2, num7 + 1) && dungeon.data.isWall(num6 - 1, num7) && dungeon.data.isWall(num6, num7) && dungeon.data.isWall(num6 + 1, num7) && dungeon.data.isWall(num6 + 2, num7) && dungeon.data.isWall(num6 - 1, num7 - 1) && dungeon.data.isWall(num6, num7 - 1) && dungeon.data.isWall(num6 + 1, num7 - 1) && dungeon.data.isWall(num6 + 2, num7 - 1) && !dungeon.data.isPlainEmptyCell(num6 - 1, num7 - 3) && !dungeon.data.isPlainEmptyCell(num6, num7 - 3) && !dungeon.data.isPlainEmptyCell(num6 + 1, num7 - 3) && !dungeon.data.isPlainEmptyCell(num6 + 2, num7 - 3)) { list.Add(Tuple.Create(new IntVector2(num6, num7), (Direction)0)); num8++; num++; } else if (dungeon.data.isWall(num6 - 1, num7 + 2) && dungeon.data.isWall(num6, num7 + 2) && dungeon.data.isWall(num6 + 1, num7 + 2) && dungeon.data.isWall(num6 + 2, num7 + 2) && dungeon.data.isWall(num6 - 1, num7 + 1) && dungeon.data.isWall(num6, num7 + 1) && dungeon.data.isWall(num6 + 1, num7 + 1) && dungeon.data.isWall(num6 + 2, num7 + 1) && dungeon.data.isWall(num6 - 1, num7) && dungeon.data.isWall(num6, num7) && dungeon.data.isWall(num6 + 1, num7) && dungeon.data.isWall(num6 + 2, num7) && dungeon.data.isPlainEmptyCell(num6, num7 - 1) && dungeon.data.isPlainEmptyCell(num6 + 1, num7 - 1) && !dungeon.data.isPlainEmptyCell(num6, num7 + 4) && !dungeon.data.isPlainEmptyCell(num6 + 1, num7 + 4)) { list.Add(Tuple.Create(new IntVector2(num6, num7), (Direction)4)); num8++; num2++; } else if (dungeon.data.isWall(num6, num7 + 2) && dungeon.data.isWall(num6, num7 + 1) && dungeon.data.isWall(num6 - 1, num7) && dungeon.data.isWall(num6, num7 - 1) && dungeon.data.isWall(num6, num7 - 2) && !dungeon.data.isPlainEmptyCell(num6 - 2, num7 + 2) && !dungeon.data.isPlainEmptyCell(num6 - 2, num7 + 1) && !dungeon.data.isPlainEmptyCell(num6 - 2, num7) && dungeon.data.isPlainEmptyCell(num6 + 1, num7) && dungeon.data.isPlainEmptyCell(num6 + 1, num7 - 1) && !dungeon.data.isPlainEmptyCell(num6 - 2, num7 - 1) && !dungeon.data.isPlainEmptyCell(num6 - 2, num7 - 2)) { list.Add(Tuple.Create(new IntVector2(num6, num7), (Direction)2)); num8++; num3++; } else if (dungeon.data.isWall(num6, num7 + 2) && dungeon.data.isWall(num6, num7 + 1) && dungeon.data.isWall(num6 + 1, num7) && dungeon.data.isWall(num6, num7 - 1) && dungeon.data.isWall(num6, num7 - 2) && !dungeon.data.isPlainEmptyCell(num6 + 2, num7 + 2) && !dungeon.data.isPlainEmptyCell(num6 + 2, num7 + 1) && !dungeon.data.isPlainEmptyCell(num6 + 2, num7) && dungeon.data.isPlainEmptyCell(num6 - 1, num7) && dungeon.data.isPlainEmptyCell(num6 - 1, num7 - 1) && !dungeon.data.isPlainEmptyCell(num6 + 2, num7 - 1) && !dungeon.data.isPlainEmptyCell(num6 + 2, num7 - 2)) { list.Add(Tuple.Create(new IntVector2(num6 - 1, num7), (Direction)6)); num8++; num4++; } if (num8 <= 0) { continue; } bool flag = true; for (int l = -5; l <= 5 && flag; l++) { for (int m = -5; m <= 5 && flag; m++) { int num9 = num6 + l; int num10 = num7 + m; if (dungeon.data.CheckInBoundsAndValid(num9, num10)) { CellData val = dungeon.data[num9, num10]; if (val != null && (((int)val.type == 4) | ((int)val.diagonalWallType > 0))) { flag = false; } } } } if (!flag) { while (num8 > 0) { list.RemoveAt(list.Count - 1); num8--; } } } } if (list.Count <= 0) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] No valid locations found for room: " + currentRoom.GetRoomName() + " while attempting NoClip Zone placement!"), false); } return 0; } IntVector2 value = default(IntVector2); for (; i < ZonesPerRoom; i++) { if (list.Count <= 0) { break; } if (list.Count > 0) { Tuple val2 = BraveUtility.RandomElement>(list); IntVector2 first = val2.First; Direction second = val2.Second; if ((int)second != 6) { currentRoom.RuntimeStampCellComplex(first.x, first.y, (CellType)2, (DiagonalWallType)0); } if ((int)second != 2) { currentRoom.RuntimeStampCellComplex(first.x + 1, first.y, (CellType)2, (DiagonalWallType)0); } ExpandUtility.GenerateFakeWall(second, first - currentRoom.area.basePosition, currentRoom, "NoClip Zone", markAsSecret: true); GameObject val3 = new GameObject("NoClip Warp Zone"); val3.transform.position = ((IntVector2)(ref first)).ToVector3(); if ((int)second == 2) { Transform transform = val3.transform; transform.position += new Vector3(0.4f, 0f); } if ((int)second == 6) { Transform transform2 = val3.transform; transform2.position += new Vector3(1.7f, 0f); } if ((int)second == 0) { Transform transform3 = val3.transform; transform3.position += new Vector3(0f, 0.8f); } if ((int)second == 4) { Transform transform4 = val3.transform; transform4.position += new Vector3(0f, 1.4f); } ((IntVector2)(ref value))..ctor(32, 2); if ((int)second == 6 || (int)second == 2) { ((IntVector2)(ref value))..ctor(2, 32); } ExpandUtility.GenerateOrAddToRigidBody(val3, (CollisionLayer)16, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: true, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, value); ExpandWarpManager expandWarpManager = val3.AddComponent(); expandWarpManager.OverrideTargetFloor = "tt_backrooms"; expandWarpManager.warpType = ExpandWarpManager.WarpType.FloorWarp; expandWarpManager.ConfigureOnPlacement(currentRoom); list.Remove(val2); num5++; } } } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] Exception while trying to place NoClip Zone(s) in room: " + currentRoom.GetRoomName()), false); Debug.LogException(ex); } return num5; } if (num5 > 0) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] NoClip Zone(s) succesfully placed in room: " + currentRoom.GetRoomName()), false); ETGModConsole.Log((object)("[DEBUG] Number of Valid North NoClip Zone locations: " + num2), false); ETGModConsole.Log((object)("[DEBUG] Number of Valid South NoClip Zone locations: " + num), false); ETGModConsole.Log((object)("[DEBUG] Number of Valid East NoClip Zone locations: " + num4), false); ETGModConsole.Log((object)("[DEBUG] Number of Valid West NoClip Zone locations: " + num3), false); ETGModConsole.Log((object)("[DEBUG] Number of NoClip Zones succesfully placed in room: " + num5), false); } ExpandSettings.BackroomsEntrancePlaced = true; return num5; } ETGModConsole.Log((object)("[DEBUG] No valid location found for room: " + currentRoom.GetRoomName() + " while attempting NoClip Zone placement!"), false); return 0; } private void PlaceGlitchElevator(Dungeon dungeon, int CurrentFloor) { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000a: 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_0025: Invalid comparison between Unknown and I4 //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Invalid comparison between Unknown and I4 //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Invalid comparison between Unknown and I4 //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Invalid comparison between Unknown and I4 //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Invalid comparison between Unknown and I4 //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Invalid comparison between Unknown and I4 LevelOverrideState currentLevelOverrideState = GameManager.Instance.CurrentLevelOverrideState; if ((dungeon.IsGlitchDungeon | ExpandSettings.glitchElevatorHasBeenUsed) || (((int)GameManager.Instance.CurrentGameMode == 2) | ((int)GameManager.Instance.CurrentGameMode == 3))) { return; } if ((int)currentLevelOverrideState == 1 || (int)currentLevelOverrideState == 2 || (int)currentLevelOverrideState == 5) { ExpandSettings.glitchElevatorHasBeenUsed = false; } else { if ((int)currentLevelOverrideState == 4 || Random.value > 0.004f) { return; } if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] Attempting to place a Glitch Elevator!", false); } List list = new List(); foreach (RoomHandler room in dungeon.data.rooms) { if (!string.IsNullOrEmpty(room.GetRoomName()) && !room.IsShop && !room.IsMaintenanceRoom() && !room.GetRoomName().ToLower().StartsWith("exit") && !room.GetRoomName().ToLower().StartsWith("tiny_exit") && !room.GetRoomName().ToLower().StartsWith("elevator") && !room.GetRoomName().ToLower().StartsWith("tiny_entrance") && !room.GetRoomName().ToLower().StartsWith("gungeon entrance") && !room.GetRoomName().ToLower().StartsWith("gungeon_rewardroom") && !room.GetRoomName().ToLower().StartsWith("reward room") && !room.GetRoomName().ToLower().StartsWith(((Object)ExpandRoomPrefabs.Expand_BootlegRoom).name.ToLower()) && !room.GetRoomName().ToLower().StartsWith("backrooms_entrance_warpwing") && !room.area.prototypeRoom.precludeAllTilemapDrawing) { list.Add(room); } } int num = 0; RoomHandler val; do { if (list.Count <= 0) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] No rooms that are allowed to contain a Glitch Elevator or have valid locations for one are present on this floor!", false); } break; } if (list.Count > 1) { list = BraveUtility.Shuffle(list); } val = BraveUtility.RandomElement(list); list.Remove(val); num++; } while (!SpawnGlitchElevator(dungeon, val) && num < dungeon.data.rooms.Count); } } public bool SpawnGlitchElevator(Dungeon dungeon, RoomHandler currentRoom) { //IL_09b9: Unknown result type (might be due to invalid IL or missing references) //IL_09c4: Unknown result type (might be due to invalid IL or missing references) //IL_09c9: Unknown result type (might be due to invalid IL or missing references) //IL_09ce: Unknown result type (might be due to invalid IL or missing references) //IL_09d6: 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_091f: Unknown result type (might be due to invalid IL or missing references) //IL_0925: Invalid comparison between Unknown and I4 //IL_0929: Unknown result type (might be due to invalid IL or missing references) //IL_08c3: Unknown result type (might be due to invalid IL or missing references) if (currentRoom.area == null) { return false; } List list = new List(); for (int i = -1; i <= currentRoom.area.dimensions.x; i++) { for (int j = -1; j <= currentRoom.area.dimensions.y; j++) { int num = currentRoom.area.basePosition.x + i; int num2 = currentRoom.area.basePosition.y + j; if (!dungeon.data.isWall(num, num2) || dungeon.data.GetAbsoluteRoomFromPosition(new IntVector2(num, num2)) != currentRoom) { continue; } int num3 = 0; if (!dungeon.data.isPlainEmptyCell(num - 3, num2 + 6) && !dungeon.data.isPlainEmptyCell(num - 2, num2 + 6) && !dungeon.data.isPlainEmptyCell(num - 1, num2 + 6) && !dungeon.data.isPlainEmptyCell(num, num2 + 6) && !dungeon.data.isPlainEmptyCell(num + 1, num2 + 6) && !dungeon.data.isPlainEmptyCell(num + 2, num2 + 6) && !dungeon.data.isPlainEmptyCell(num + 3, num2 + 6) && !dungeon.data.isPlainEmptyCell(num + 4, num2 + 6) && !dungeon.data.isPlainEmptyCell(num + 5, num2 + 6) && !dungeon.data.isPlainEmptyCell(num - 3, num2 + 5) && !dungeon.data.isPlainEmptyCell(num - 2, num2 + 5) && !dungeon.data.isPlainEmptyCell(num - 1, num2 + 5) && !dungeon.data.isPlainEmptyCell(num, num2 + 5) && !dungeon.data.isPlainEmptyCell(num + 1, num2 + 5) && !dungeon.data.isPlainEmptyCell(num + 2, num2 + 5) && !dungeon.data.isPlainEmptyCell(num + 3, num2 + 5) && !dungeon.data.isPlainEmptyCell(num + 4, num2 + 5) && !dungeon.data.isPlainEmptyCell(num + 5, num2 + 5) && !dungeon.data.isPlainEmptyCell(num - 3, num2 + 4) && !dungeon.data.isPlainEmptyCell(num - 2, num2 + 4) && !dungeon.data.isPlainEmptyCell(num - 1, num2 + 4) && !dungeon.data.isPlainEmptyCell(num, num2 + 4) && !dungeon.data.isPlainEmptyCell(num + 1, num2 + 4) && !dungeon.data.isPlainEmptyCell(num + 2, num2 + 4) && !dungeon.data.isPlainEmptyCell(num + 3, num2 + 4) && !dungeon.data.isPlainEmptyCell(num + 4, num2 + 4) && !dungeon.data.isPlainEmptyCell(num + 5, num2 + 4) && !dungeon.data.isPlainEmptyCell(num - 3, num2 + 3) && !dungeon.data.isPlainEmptyCell(num - 2, num2 + 3) && !dungeon.data.isPlainEmptyCell(num - 1, num2 + 3) && !dungeon.data.isPlainEmptyCell(num, num2 + 3) && !dungeon.data.isPlainEmptyCell(num + 1, num2 + 3) && !dungeon.data.isPlainEmptyCell(num + 2, num2 + 3) && !dungeon.data.isPlainEmptyCell(num + 3, num2 + 3) && !dungeon.data.isPlainEmptyCell(num + 4, num2 + 3) && !dungeon.data.isPlainEmptyCell(num + 5, num2 + 3) && !dungeon.data.isPlainEmptyCell(num - 3, num2 + 2) && !dungeon.data.isPlainEmptyCell(num - 2, num2 + 2) && !dungeon.data.isPlainEmptyCell(num - 1, num2 + 2) && !dungeon.data.isPlainEmptyCell(num, num2 + 2) && !dungeon.data.isPlainEmptyCell(num + 1, num2 + 2) && !dungeon.data.isPlainEmptyCell(num + 2, num2 + 2) && !dungeon.data.isPlainEmptyCell(num + 3, num2 + 2) && !dungeon.data.isPlainEmptyCell(num + 4, num2 + 2) && !dungeon.data.isPlainEmptyCell(num + 5, num2 + 2) && !dungeon.data.isPlainEmptyCell(num - 4, num2 + 1) && dungeon.data.isWall(num - 3, num2 + 1) && dungeon.data.isWall(num - 2, num2 + 1) && dungeon.data.isWall(num - 1, num2 + 1) && dungeon.data.isWall(num, num2 + 1) && dungeon.data.isWall(num + 1, num2 + 1) && dungeon.data.isWall(num + 2, num2 + 1) && dungeon.data.isWall(num + 3, num2 + 1) && dungeon.data.isWall(num + 4, num2 + 1) && dungeon.data.isWall(num + 5, num2 + 1) && dungeon.data.isWall(num + 6, num2 + 1) && dungeon.data.isWall(num + 7, num2 + 1) && !dungeon.data.isPlainEmptyCell(num + 8, num2 + 1) && !dungeon.data.isPlainEmptyCell(num + 9, num2 + 1) && !dungeon.data.isPlainEmptyCell(num - 4, num2) && dungeon.data.isWall(num - 3, num2) && dungeon.data.isWall(num - 2, num2) && dungeon.data.isWall(num - 1, num2) && dungeon.data.isWall(num, num2) && dungeon.data.isWall(num + 1, num2) && dungeon.data.isWall(num + 2, num2) && dungeon.data.isWall(num + 3, num2) && dungeon.data.isWall(num + 4, num2) && dungeon.data.isWall(num + 5, num2) && dungeon.data.isWall(num + 6, num2) && dungeon.data.isWall(num + 7, num2) && !dungeon.data.isPlainEmptyCell(num + 8, num2) && !dungeon.data.isPlainEmptyCell(num + 9, num2) && dungeon.data.isPlainEmptyCell(num - 3, num2 - 1) && dungeon.data.isPlainEmptyCell(num - 2, num2 - 1) && dungeon.data.isPlainEmptyCell(num - 1, num2 - 1) && dungeon.data.isPlainEmptyCell(num, num2 - 1) && dungeon.data.isPlainEmptyCell(num + 1, num2 - 1) && dungeon.data.isPlainEmptyCell(num + 2, num2 - 1) && dungeon.data.isPlainEmptyCell(num + 3, num2 - 1) && dungeon.data.isPlainEmptyCell(num + 4, num2 - 1) && dungeon.data.isPlainEmptyCell(num + 5, num2 - 1) && dungeon.data.isPlainEmptyCell(num + 6, num2 - 1) && dungeon.data.isPlainEmptyCell(num + 7, num2 - 1) && dungeon.data.isPlainEmptyCell(num - 3, num2 - 2) && dungeon.data.isPlainEmptyCell(num - 2, num2 - 2) && dungeon.data.isPlainEmptyCell(num - 1, num2 - 2) && dungeon.data.isPlainEmptyCell(num, num2 - 2) && dungeon.data.isPlainEmptyCell(num + 1, num2 - 2) && dungeon.data.isPlainEmptyCell(num + 2, num2 - 2) && dungeon.data.isPlainEmptyCell(num + 3, num2 - 2) && dungeon.data.isPlainEmptyCell(num + 4, num2 - 2) && dungeon.data.isPlainEmptyCell(num + 5, num2 - 2) && dungeon.data.isPlainEmptyCell(num + 6, num2 - 2) && dungeon.data.isPlainEmptyCell(num + 7, num2 - 2)) { list.Add(new IntVector2(num, num2)); num3++; } if (num3 <= 0) { continue; } bool flag = true; for (int k = -5; k <= 5 && flag; k++) { for (int l = -5; l <= 5 && flag; l++) { int num4 = num + k; int num5 = num2 + l; if (dungeon.data.CheckInBoundsAndValid(num4, num5)) { CellData val = dungeon.data[num4, num5]; if (val != null && ((int)val.type == 4 || (int)val.diagonalWallType != 0)) { flag = false; } } } } if (!flag) { while (num3 > 0) { list.RemoveAt(list.Count - 1); num3--; } } } } if (list.Count > 0) { IntVector2 val2 = BraveUtility.RandomElement(list) - currentRoom.area.basePosition; GameObject val3 = ExpandPrefabs.ElevatorDeparture.InstantiateObject(currentRoom, val2, false, false); if (Object.op_Implicit((Object)(object)val3.GetComponent())) { val3.AddComponent(); ExpandElevatorDepartureManager component = val3.GetComponent(); component.UsesOverrideTargetFloor = true; component.IsGlitchElevator = true; } else if (Object.op_Implicit((Object)(object)val3.GetComponent())) { val3.GetComponent().IsGlitchElevator = true; } if (val3.GetComponentsInChildren(true) != null) { tk2dBaseSprite[] componentsInChildren = val3.GetComponentsInChildren(true); foreach (tk2dBaseSprite sprite in componentsInChildren) { ExpandShaders.Instance.ApplyGlitchShader(sprite); } } if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] Number of Valid Glitch Elevator locations found: " + list.Count), false); ETGModConsole.Log((object)("[DEBUG] Glitch Elevator Successfully placed in room: " + currentRoom.GetRoomName()), false); } return true; } if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] No valid locations found for room: " + currentRoom.GetRoomName() + ". This room was skipped!"), false); } return false; } private void CorruptRandomRooms(Dungeon dungeon, int currentFloor) { //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Invalid comparison between Unknown and I4 //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Invalid comparison between Unknown and I4 if (dungeon.IsGlitchDungeon | ExpandDungeonFlow.isGlitchFlow) { return; } List list = new List(); List list2 = new List(); foreach (RoomHandler room in dungeon.data.rooms) { try { if ((int)room.area.PrototypeRoomCategory != 3 && (int)room.area.PrototypeRoomCategory != 6 && room.HasActiveEnemies((ActiveEnemyType)1) && !room.PrecludeTilemapDrawing && (!room.area.IsProceduralRoom || room.area.proceduralCells == null) && Random.value <= 0.25f) { list2.Add(room); } } catch (Exception ex) { string roomName = room.GetRoomName(); string empty = string.Empty; empty = (string.IsNullOrEmpty(roomName) ? "Exception caught while building room list in ExpandMain.CorruptRandomRooms!" : ("Exception caught while adding room: " + roomName + "in ExpandMain.CorruptRandomRooms!")); list.Add(empty); Debug.Log((object)empty); Debug.LogException(ex); } } if (list2.Count <= 0) { return; } list2 = BraveUtility.Shuffle(list2); RoomHandler item = BraveUtility.RandomElement(list2); RoomHandler val = null; list2.Remove(item); if (list2.Count > 0) { val = BraveUtility.RandomElement(list2); } list2.Clear(); list2.Add(item); if (val != null && ((Random.value > 0.5f) | PlayerHasThirdEye)) { list2.Add(val); } foreach (RoomHandler item2 in list2) { try { if (PlayerHasCorruptedJunk) { string roomName2 = item2.GetRoomName(); if (!string.IsNullOrEmpty(roomName2)) { item2.area.PrototypeRoomName = "Corrupted " + roomName2; } else { item2.area.PrototypeRoomName = "Corrupted Room"; } ExpandPlaceCorruptTiles.Instance.PlaceCorruptTiles(dungeon, item2, null, corruptWallsOnly: false, isLeadKeyRoom: false, isCorruptedJunkRoom: true); ExpandPlaceCorruptTiles.DestroyInstance(); } ExpandPlaceCorruptedEnemies.Instance.PlaceRandomEnemies(dungeon, currentFloor, item2); ExpandPlaceCorruptedEnemies.DestroyInstance(); } catch (Exception ex2) { string roomName3 = item2.GetRoomName(); string empty2 = string.Empty; empty2 = (string.IsNullOrEmpty(roomName3) ? "Exception caught while corrupting a room in ExpandMain.CorruptRandomRooms!" : ("Exception caught while corrupting room: " + roomName3 + "in ExpandMain.CorruptRandomRooms!")); list.Add(empty2); Debug.Log((object)empty2); Debug.LogException(ex2); } } if (!ExpandSettings.debugMode || list.Count <= 0) { return; } foreach (string item3 in list) { ETGModConsole.Log((object)item3, false); } } private void EnemyModRandomizer(AIActor targetActor) { if (string.IsNullOrEmpty(targetActor.EnemyGuid) || !GameManager.Instance.Dungeon.IsGlitchDungeon || targetActor.IsBlackPhantom || string.IsNullOrEmpty(targetActor.EnemyGuid) || !((double)Random.value <= 0.3) || !((Object)(object)((BraveBehaviour)targetActor).healthHaver != (Object)null) || ExpandLists.DontGlitchMeList.Contains(targetActor.EnemyGuid) || ExpandLists.blobsAndCritters.Contains(targetActor.EnemyGuid) || !(targetActor.EnemyGuid != "5e0af7f7d9de4755a68d2fd3bbc15df4") || ((BraveBehaviour)targetActor).healthHaver.IsBoss || ((BraveBehaviour)targetActor).sprite.usesOverrideMaterial || !((Object)(object)targetActor.optionalPalette == (Object)null)) { return; } float glitchInterval = Random.Range(0.02f, 0.06f); float dispProbability = Random.Range(0.1f, 0.16f); float dispIntensity = Random.Range(0.1f, 0.4f); float colorProbability = Random.Range(0.05f, 0.2f); float colorIntensity = Random.Range(0.1f, 0.25f); ExpandShaders.Instance.BecomeGlitched(targetActor, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); if ((Object)(object)((Component)targetActor).GetComponent() == (Object)null && (double)Random.value <= 0.25) { ((Component)targetActor).gameObject.AddComponent(); } ExpandEnemyCorruptor.CorruptExistingEnemy(targetActor); if (!(Random.value <= 0.1f) || !(targetActor.EnemyGuid != "4d37ce3d666b4ddda8039929225b7ede") || !(targetActor.EnemyGuid != "19b420dec96d4e9ea4aebc3398c0ba7a") || !((Object)(object)((Component)targetActor).GetComponent() == (Object)null) || !((Object)(object)((Component)targetActor).GetComponent() == (Object)null) || !((Object)(object)((Component)targetActor).GetComponent() == (Object)null)) { return; } try { ((Component)targetActor).gameObject.AddComponent(); } catch (Exception) { } } } } namespace ExpandTheGungeon.ExpandComponent { public class ExpandChargeBehavior : BasicAttackBehavior { private enum FireState { Idle, Priming, Charging, Bouncing } [InspectorCategory("Conditions")] public float minRange; [InspectorHeader("Prime")] public float primeTime; public bool stopDuringPrime; [InspectorHeader("Charge")] public float leadAmount; public float chargeSpeed; public float chargeAcceleration; public float maxChargeDistance; public float chargeKnockback; public float chargeDamage; public float wallRecoilForce; public bool stoppedByProjectiles; public bool endWhenChargeAnimFinishes; public bool switchCollidersOnCharge; public bool collidesWithDodgeRollingPlayers; public bool avoidExits; public bool avoidWalls; [InspectorCategory("Attack")] public GameObject ShootPoint; [InspectorCategory("Attack")] public BulletScriptSelector bulletScript; [InspectorCategory("Visuals")] public string primeAnim; [InspectorCategory("Visuals")] public string chargeAnim; [InspectorCategory("Visuals")] public string hitAnim; [InspectorCategory("Visuals")] public bool HideGun; [InspectorCategory("Visuals")] public GameObject launchVfx; [InspectorCategory("Visuals")] public GameObject trailVfx; [InspectorCategory("Visuals")] public Transform trailVfxParent; [InspectorCategory("Visuals")] public GameObject hitVfx; [InspectorCategory("Visuals")] public GameObject nonActorHitVfx; [InspectorCategory("Visuals")] public bool chargeDustUps; [InspectorShowIf("chargeDustUps")] [InspectorCategory("Visuals")] [InspectorIndent] public float chargeDustUpInterval; private BulletScriptSource m_bulletSource; private bool m_initialized; private float m_timer; private float m_chargeTime; private float m_cachedKnockback; private float m_cachedDamage; private VFXPool m_cachedVfx; private VFXPool m_cachedNonActorWallVfx; private float m_currentSpeed; private float m_chargeDirection; private CellTypes m_cachedPathableTiles; private bool m_cachedDoDustUps; private float m_cachedDustUpInterval; private PixelCollider m_enemyCollider; private PixelCollider m_enemyHitbox; private PixelCollider m_projectileCollider; private GameObject m_trailVfx; private Vector2 m_collisionNormal; private FireState m_state; private FireState State { get { return m_state; } set { if (m_state != value) { EndState(m_state); m_state = value; BeginState(m_state); } } } public ExpandChargeBehavior() { primeTime = -1f; stopDuringPrime = true; chargeAcceleration = -1f; maxChargeDistance = -1f; chargeKnockback = 50f; chargeDamage = 0.5f; wallRecoilForce = 10f; stoppedByProjectiles = true; collidesWithDodgeRollingPlayers = true; avoidExits = false; avoidWalls = false; } public override void Start() { //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) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Expected O, but got Unknown //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Expected O, but got Unknown //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Invalid comparison between Unknown and I4 //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Invalid comparison between Unknown and I4 ((BasicAttackBehavior)this).Start(); m_cachedKnockback = ((BehaviorBase)this).m_aiActor.CollisionKnockbackStrength; m_cachedDamage = ((BehaviorBase)this).m_aiActor.CollisionDamage; m_cachedVfx = ((BehaviorBase)this).m_aiActor.CollisionVFX; m_cachedNonActorWallVfx = ((BehaviorBase)this).m_aiActor.NonActorCollisionVFX; m_cachedPathableTiles = ((BehaviorBase)this).m_aiActor.PathableTiles; m_cachedDoDustUps = ((GameActor)((BehaviorBase)this).m_aiActor).DoDustUps; m_cachedDustUpInterval = ((GameActor)((BehaviorBase)this).m_aiActor).DustUpInterval; if (switchCollidersOnCharge) { for (int i = 0; i < ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.PixelColliders.Count; i++) { PixelCollider val = ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.PixelColliders[i]; if ((int)val.CollisionLayer == 3) { m_enemyCollider = val; } if ((int)val.CollisionLayer == 2) { m_enemyHitbox = val; } if (!val.Enabled && (int)val.CollisionLayer == 4) { m_projectileCollider = val; PixelCollider projectileCollider = m_projectileCollider; projectileCollider.CollisionLayerCollidableOverride |= CollisionMask.LayerToMask((CollisionLayer)4); } } } if (!collidesWithDodgeRollingPlayers) { SpeculativeRigidbody specRigidbody = ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody; specRigidbody.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Combine((Delegate?)(object)specRigidbody.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(OnPreRigidbodyCollision)); } } public override void Upkeep() { ((BasicAttackBehavior)this).Upkeep(); ((BehaviorBase)this).DecrementTimer(ref m_timer, false); } public override BehaviorResult Update() { //IL_0001: 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_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) ((BasicAttackBehavior)this).Update(); if (!m_initialized) { SpeculativeRigidbody specRigidbody = ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody; specRigidbody.OnCollision = (Action)Delegate.Combine(specRigidbody.OnCollision, new Action(OnCollision)); m_initialized = true; } BehaviorResult val = ((BasicAttackBehavior)this).Update(); if ((int)val != 0) { return val; } if (((AttackBehaviorBase)this).IsReady()) { if (Object.op_Implicit((Object)(object)((BehaviorBase)this).m_aiActor.TargetRigidbody)) { Vector2 val2 = ((BraveBehaviour)((BehaviorBase)this).m_aiActor.TargetRigidbody).specRigidbody.GetUnitCenter((ColliderType)2); if (leadAmount > 0f) { Vector2 val3 = val2 + ((BraveBehaviour)((BehaviorBase)this).m_aiActor.TargetRigidbody).specRigidbody.Velocity * 0.75f; val3 = BraveMathCollege.GetPredictedPosition(val2, ((BehaviorBase)this).m_aiActor.TargetVelocity, ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.UnitCenter, chargeSpeed); val2 = Vector2.Lerp(val2, val3, leadAmount); } if (Vector2.Distance(((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.UnitCenter, val2) > minRange) { if (!string.IsNullOrEmpty(primeAnim) || primeTime > 0f) { State = FireState.Priming; } else { State = FireState.Charging; } ((BehaviorBase)this).m_updateEveryFrame = true; return (BehaviorResult)4; } return (BehaviorResult)0; } return (BehaviorResult)0; } return (BehaviorResult)0; } public override ContinuousBehaviorResult ContinuousUpdate() { //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_0060: 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_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) switch (State) { case FireState.Priming: if (!Object.op_Implicit((Object)(object)((BehaviorBase)this).m_aiActor.TargetRigidbody)) { return (ContinuousBehaviorResult)1; } if (m_timer > 0f) { float facingDirection = ((BehaviorBase)this).m_aiAnimator.FacingDirection; float num = BraveMathCollege.ClampAngle180(Vector2Extensions.ToAngle(((BraveBehaviour)((BehaviorBase)this).m_aiActor.TargetRigidbody).specRigidbody.GetUnitCenter((ColliderType)2) - ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.UnitCenter) - facingDirection); float facingDirection2 = facingDirection + Mathf.Lerp(0f, num, ((BehaviorBase)this).m_deltaTime / (m_timer + ((BehaviorBase)this).m_deltaTime)); ((BehaviorBase)this).m_aiAnimator.FacingDirection = facingDirection2; } if (!stopDuringPrime) { float num2 = Mathf.Lerp(((Vector2)(ref ((BehaviorBase)this).m_aiActor.BehaviorVelocity)).magnitude, 0f, ((BehaviorBase)this).m_deltaTime / (m_timer + ((BehaviorBase)this).m_deltaTime)); ((BehaviorBase)this).m_aiActor.BehaviorVelocity = BraveMathCollege.DegreesToVector(((BehaviorBase)this).m_aiAnimator.FacingDirection, num2); } if ((primeTime <= 0f) ? (!((BehaviorBase)this).m_aiAnimator.IsPlaying(primeAnim)) : (m_timer <= 0f)) { State = FireState.Charging; } break; case FireState.Charging: if (chargeAcceleration > 0f) { m_currentSpeed = Mathf.Min(chargeSpeed, m_currentSpeed + chargeAcceleration * ((BehaviorBase)this).m_deltaTime); ((BehaviorBase)this).m_aiActor.BehaviorVelocity = BraveMathCollege.DegreesToVector(m_chargeDirection, m_currentSpeed); } if (endWhenChargeAnimFinishes && !((BehaviorBase)this).m_aiAnimator.IsPlaying(chargeAnim)) { return (ContinuousBehaviorResult)1; } if (maxChargeDistance > 0f) { m_chargeTime += ((BehaviorBase)this).m_deltaTime; if (m_chargeTime * chargeSpeed > maxChargeDistance) { return (ContinuousBehaviorResult)1; } } break; case FireState.Bouncing: if (!((BehaviorBase)this).m_aiAnimator.IsPlaying(hitAnim)) { return (ContinuousBehaviorResult)1; } break; case FireState.Idle: return (ContinuousBehaviorResult)1; } return (ContinuousBehaviorResult)0; } public override void EndContinuousUpdate() { ((BehaviorBase)this).EndContinuousUpdate(); ((BehaviorBase)this).m_updateEveryFrame = false; State = FireState.Idle; ((BasicAttackBehavior)this).UpdateCooldowns(); } public override void Destroy() { if (Object.op_Implicit((Object)(object)((BehaviorBase)this).m_aiActor)) { SpeculativeRigidbody specRigidbody = ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody; specRigidbody.OnPostRigidbodyMovement = (Action)Delegate.Remove(specRigidbody.OnPostRigidbodyMovement, new Action(OnPostRigidbodyMovement)); } ((BehaviorBase)this).Destroy(); } private void Fire() { if (!Object.op_Implicit((Object)(object)m_bulletSource)) { m_bulletSource = GameObjectExtensions.GetOrAddComponent(ShootPoint); } m_bulletSource.BulletManager = ((BraveBehaviour)((BehaviorBase)this).m_aiActor).bulletBank; m_bulletSource.BulletScript = bulletScript; m_bulletSource.Initialize(); } private void OnPreRigidbodyCollision(SpeculativeRigidbody myRigidbody, PixelCollider myPixelCollider, SpeculativeRigidbody otherRigidbody, PixelCollider otherPixelCollider) { if (m_state == FireState.Charging) { GameActor gameActor = ((BraveBehaviour)otherRigidbody).gameActor; PlayerController val = (PlayerController)(object)((gameActor is PlayerController) ? gameActor : null); if (Object.op_Implicit((Object)(object)val) && ((BraveBehaviour)val).spriteAnimator.QueryInvulnerabilityFrame()) { PhysicsEngine.SkipCollision = true; } } } private void OnCollision(CollisionData collisionData) { //IL_008f: 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) //IL_0101: Unknown result type (might be due to invalid IL or missing references) if (State != FireState.Charging || ((BraveBehaviour)((BehaviorBase)this).m_aiActor).healthHaver.IsDead) { return; } if (Object.op_Implicit((Object)(object)collisionData.OtherRigidbody)) { Projectile projectile = ((BraveBehaviour)collisionData.OtherRigidbody).projectile; if (Object.op_Implicit((Object)(object)projectile) && (!(projectile.Owner is PlayerController) || !stoppedByProjectiles)) { return; } } if (!string.IsNullOrEmpty(hitAnim)) { State = FireState.Bouncing; } else { State = FireState.Idle; } if (switchCollidersOnCharge) { PhysicsEngine.CollisionHaltsVelocity = true; PhysicsEngine.HaltRemainingMovement = true; PhysicsEngine.PostSliceVelocity = Vector2.zero; m_collisionNormal = ((CastResult)collisionData).Normal; SpeculativeRigidbody specRigidbody = ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody; specRigidbody.OnPostRigidbodyMovement = (Action)Delegate.Combine(specRigidbody.OnPostRigidbodyMovement, new Action(OnPostRigidbodyMovement)); } if (!Object.op_Implicit((Object)(object)collisionData.OtherRigidbody) || !Object.op_Implicit((Object)(object)((BraveBehaviour)collisionData.OtherRigidbody).knockbackDoer)) { ((BraveBehaviour)((BehaviorBase)this).m_aiActor).knockbackDoer.ApplyKnockback(((CastResult)collisionData).Normal, wallRecoilForce, false); } } private void OnPostRigidbodyMovement(SpeculativeRigidbody specRigidbody, Vector2 unitDelta, IntVector2 pixelDelta) { //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: 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_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)base.m_behaviorSpeculator)) { return; } List list = new List(); bool flag = false; if (PhysicsEngine.Instance.OverlapCast(((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody, list, true, true, (int?)null, (int?)null, false, (Vector2?)null, (Func)null, (SpeculativeRigidbody[])(object)new SpeculativeRigidbody[0])) { for (int i = 0; i < list.Count; i++) { SpeculativeRigidbody otherRigidbody = list[i].OtherRigidbody; if (Object.op_Implicit((Object)(object)otherRigidbody) && Object.op_Implicit((Object)(object)((BraveBehaviour)otherRigidbody).transform.parent) && (Object.op_Implicit((Object)(object)((Component)((BraveBehaviour)otherRigidbody).transform.parent).GetComponent()) || Object.op_Implicit((Object)(object)((Component)((BraveBehaviour)otherRigidbody).transform.parent).GetComponent()))) { flag = true; break; } } } if (flag) { if (m_collisionNormal.y >= 0.5f) { Transform transform = ((BraveBehaviour)((BehaviorBase)this).m_aiActor).transform; transform.position += new Vector3(0f, 0.5f); } if (m_collisionNormal.x <= -0.5f) { Transform transform2 = ((BraveBehaviour)((BehaviorBase)this).m_aiActor).transform; transform2.position += new Vector3(-0.3125f, 0f); } if (m_collisionNormal.x >= 0.5f) { Transform transform3 = ((BraveBehaviour)((BehaviorBase)this).m_aiActor).transform; transform3.position += new Vector3(0.3125f, 0f); } ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.Reinitialize(); } else { PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody, (int?)null, false); } SpeculativeRigidbody specRigidbody2 = ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody; specRigidbody2.OnPostRigidbodyMovement = (Action)Delegate.Remove(specRigidbody2.OnPostRigidbodyMovement, new Action(OnPostRigidbodyMovement)); } private void BeginState(FireState state) { //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_0148: 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_0163: Unknown result type (might be due to invalid IL or missing references) //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_0196: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_019e: 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_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_01e8: Unknown result type (might be due to invalid IL or missing references) //IL_01ed: Unknown result type (might be due to invalid IL or missing references) //IL_020e: Unknown result type (might be due to invalid IL or missing references) //IL_0213: Unknown result type (might be due to invalid IL or missing references) //IL_0264: Unknown result type (might be due to invalid IL or missing references) //IL_026a: Expected O, but got Unknown //IL_0276: Unknown result type (might be due to invalid IL or missing references) //IL_027c: Expected O, but got Unknown //IL_028c: Unknown result type (might be due to invalid IL or missing references) //IL_0293: Expected O, but got Unknown //IL_0296: Unknown result type (might be due to invalid IL or missing references) //IL_0328: 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_02cd: Expected O, but got Unknown //IL_02da: Unknown result type (might be due to invalid IL or missing references) //IL_02e1: Expected O, but got Unknown //IL_02f3: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: Expected O, but got Unknown //IL_02fd: Unknown result type (might be due to invalid IL or missing references) //IL_033d: 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_03b9: Unknown result type (might be due to invalid IL or missing references) //IL_03be: Unknown result type (might be due to invalid IL or missing references) //IL_03eb: Unknown result type (might be due to invalid IL or missing references) //IL_03f0: Unknown result type (might be due to invalid IL or missing references) //IL_0405: Unknown result type (might be due to invalid IL or missing references) switch (state) { case FireState.Idle: if (HideGun) { ((BehaviorBase)this).m_aiShooter.ToggleGunAndHandRenderers(true, "ChargeBehavior"); } ((BehaviorBase)this).m_aiActor.BehaviorOverridesVelocity = false; ((BehaviorBase)this).m_aiAnimator.LockFacingDirection = false; break; case FireState.Priming: if (HideGun) { ((BehaviorBase)this).m_aiShooter.ToggleGunAndHandRenderers(false, "ChargeBehavior"); } ((BehaviorBase)this).m_aiAnimator.PlayUntilFinished(primeAnim, true, (string)null, -1f, false); if (primeTime > 0f) { m_timer = primeTime; } else { m_timer = ((BehaviorBase)this).m_aiAnimator.CurrentClipLength; } if (stopDuringPrime) { ((BehaviorBase)this).m_aiActor.ClearPath(); ((BehaviorBase)this).m_aiActor.BehaviorOverridesVelocity = true; ((BehaviorBase)this).m_aiActor.BehaviorVelocity = Vector2.zero; } else { ((BehaviorBase)this).m_aiActor.BehaviorOverridesVelocity = true; ((BehaviorBase)this).m_aiActor.BehaviorVelocity = ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.Velocity; } break; case FireState.Charging: { if (HideGun) { ((BehaviorBase)this).m_aiShooter.ToggleGunAndHandRenderers(false, "ChargeBehavior"); } m_chargeTime = 0f; Vector2 val = ((BraveBehaviour)((BehaviorBase)this).m_aiActor.TargetRigidbody).specRigidbody.GetUnitCenter((ColliderType)2); if (leadAmount > 0f) { Vector2 val2 = val + ((BraveBehaviour)((BehaviorBase)this).m_aiActor.TargetRigidbody).specRigidbody.Velocity * 0.75f; val2 = BraveMathCollege.GetPredictedPosition(val, ((BehaviorBase)this).m_aiActor.TargetVelocity, ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.UnitCenter, chargeSpeed); val = Vector2.Lerp(val, val2, leadAmount); } ((BehaviorBase)this).m_aiActor.ClearPath(); ((BehaviorBase)this).m_aiActor.BehaviorOverridesVelocity = true; m_currentSpeed = ((chargeAcceleration <= 0f) ? chargeSpeed : 0f); m_chargeDirection = Vector2Extensions.ToAngle(val - ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.UnitCenter); ((BehaviorBase)this).m_aiActor.BehaviorVelocity = BraveMathCollege.DegreesToVector(m_chargeDirection, m_currentSpeed); ((BehaviorBase)this).m_aiAnimator.LockFacingDirection = true; ((BehaviorBase)this).m_aiAnimator.FacingDirection = m_chargeDirection; ((BehaviorBase)this).m_aiActor.CollisionKnockbackStrength = chargeKnockback; ((BehaviorBase)this).m_aiActor.CollisionDamage = chargeDamage; if (Object.op_Implicit((Object)(object)hitVfx)) { VFXObject val3 = new VFXObject(); val3.effect = hitVfx; VFXComplex val4 = new VFXComplex(); val4.effects = (VFXObject[])(object)new VFXObject[1] { val3 }; VFXPool val5 = new VFXPool(); val5.type = (VFXPoolType)4; val5.effects = (VFXComplex[])(object)new VFXComplex[1] { val4 }; ((BehaviorBase)this).m_aiActor.CollisionVFX = val5; } if (Object.op_Implicit((Object)(object)nonActorHitVfx)) { VFXObject val6 = new VFXObject(); val6.effect = nonActorHitVfx; VFXComplex val7 = new VFXComplex(); val7.effects = (VFXObject[])(object)new VFXObject[1] { val6 }; VFXPool val8 = new VFXPool(); val8.type = (VFXPoolType)4; val8.effects = (VFXComplex[])(object)new VFXComplex[1] { val7 }; ((BehaviorBase)this).m_aiActor.NonActorCollisionVFX = val8; } ((BehaviorBase)this).m_aiActor.PathableTiles = (CellTypes)6; if (switchCollidersOnCharge) { m_enemyCollider.CollisionLayer = (CollisionLayer)14; m_enemyHitbox.Enabled = false; m_projectileCollider.Enabled = true; } ((GameActor)((BehaviorBase)this).m_aiActor).DoDustUps = chargeDustUps; ((GameActor)((BehaviorBase)this).m_aiActor).DustUpInterval = chargeDustUpInterval; ((BehaviorBase)this).m_aiAnimator.PlayUntilFinished(chargeAnim, true, (string)null, -1f, false); if (Object.op_Implicit((Object)(object)launchVfx)) { SpawnManager.SpawnVFX(launchVfx, Vector2.op_Implicit(((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.UnitCenter), Quaternion.identity); } if (Object.op_Implicit((Object)(object)trailVfx)) { m_trailVfx = SpawnManager.SpawnParticleSystem(trailVfx, Vector2.op_Implicit(((BraveBehaviour)((BehaviorBase)this).m_aiActor).sprite.WorldCenter), Quaternion.Euler(0f, 0f, m_chargeDirection)); if (Object.op_Implicit((Object)(object)trailVfxParent)) { m_trailVfx.transform.parent = trailVfxParent; } else { m_trailVfx.transform.parent = ((BraveBehaviour)((BehaviorBase)this).m_aiActor).transform; } ParticleKiller component = m_trailVfx.GetComponent(); if ((Object)(object)component != (Object)null) { component.Awake(); } } if (bulletScript != null && !bulletScript.IsNull) { Fire(); } ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.ForceRegenerate((bool?)null, (bool?)null); break; } case FireState.Bouncing: ((BehaviorBase)this).m_aiAnimator.PlayUntilFinished(hitAnim, true, (string)null, -1f, false); break; } } private void EndState(FireState state) { //IL_000d: 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_00c0: 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_00d9: Unknown result type (might be due to invalid IL or missing references) if (state != FireState.Charging) { return; } ((BehaviorBase)this).m_aiActor.BehaviorVelocity = Vector2.zero; ((BehaviorBase)this).m_aiActor.CollisionKnockbackStrength = m_cachedKnockback; ((BehaviorBase)this).m_aiActor.CollisionDamage = m_cachedDamage; ((BehaviorBase)this).m_aiActor.CollisionVFX = m_cachedVfx; ((BehaviorBase)this).m_aiActor.NonActorCollisionVFX = m_cachedNonActorWallVfx; if (Object.op_Implicit((Object)(object)m_trailVfx)) { ParticleKiller component = m_trailVfx.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.StopEmitting(); } else { SpawnManager.Despawn(m_trailVfx); } m_trailVfx = null; } ((GameActor)((BehaviorBase)this).m_aiActor).DoDustUps = m_cachedDoDustUps; ((GameActor)((BehaviorBase)this).m_aiActor).DustUpInterval = m_cachedDustUpInterval; ((BehaviorBase)this).m_aiActor.PathableTiles = m_cachedPathableTiles; if (switchCollidersOnCharge) { m_enemyCollider.CollisionLayer = (CollisionLayer)3; m_enemyHitbox.Enabled = true; m_projectileCollider.Enabled = false; } if ((Object)(object)m_bulletSource != (Object)null) { m_bulletSource.ForceStop(); } ((BehaviorBase)this).m_aiAnimator.EndAnimationIf(chargeAnim); } public override bool IsReady() { //IL_0068: 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) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_0187: 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_0192: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: 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_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01fe: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing references) //IL_0209: Unknown result type (might be due to invalid IL or missing references) if (avoidExits) { if (!Object.op_Implicit((Object)(object)GameManager.Instance.Dungeon) | (GameManager.Instance.Dungeon.data == null) | !Object.op_Implicit((Object)(object)((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody)) { return false; } DungeonData data = GameManager.Instance.Dungeon.data; CellData cellSafe = data.GetCellSafe(Vector2Extensions.ToIntVector2(PhysicsEngine.PixelToUnit(((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.PrimaryPixelCollider.LowerLeft), (VectorConversions)0)); CellData cellSafe2 = data.GetCellSafe(Vector2Extensions.ToIntVector2(PhysicsEngine.PixelToUnit(((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.PrimaryPixelCollider.LowerRight), (VectorConversions)0)); CellData cellSafe3 = data.GetCellSafe(Vector2Extensions.ToIntVector2(PhysicsEngine.PixelToUnit(((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.PrimaryPixelCollider.UpperLeft), (VectorConversions)0)); CellData cellSafe4 = data.GetCellSafe(Vector2Extensions.ToIntVector2(PhysicsEngine.PixelToUnit(((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.PrimaryPixelCollider.UpperRight), (VectorConversions)0)); if (cellSafe == null || cellSafe2 == null || cellSafe3 == null || cellSafe4 == null) { return false; } if (cellSafe.isExitCell | cellSafe2.isExitCell | cellSafe3.isExitCell | cellSafe4.isExitCell) { return false; } } if (avoidWalls) { if (!Object.op_Implicit((Object)(object)GameManager.Instance.Dungeon) | (GameManager.Instance.Dungeon.data == null) | !Object.op_Implicit((Object)(object)((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody)) { return false; } DungeonData data2 = GameManager.Instance.Dungeon.data; CellData cellSafe5 = data2.GetCellSafe(Vector2Extensions.ToIntVector2(PhysicsEngine.PixelToUnit(((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.PrimaryPixelCollider.LowerLeft), (VectorConversions)0)); CellData cellSafe6 = data2.GetCellSafe(Vector2Extensions.ToIntVector2(PhysicsEngine.PixelToUnit(((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.PrimaryPixelCollider.LowerRight), (VectorConversions)0)); CellData cellSafe7 = data2.GetCellSafe(Vector2Extensions.ToIntVector2(PhysicsEngine.PixelToUnit(((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.PrimaryPixelCollider.UpperLeft), (VectorConversions)0)); CellData cellSafe8 = data2.GetCellSafe(Vector2Extensions.ToIntVector2(PhysicsEngine.PixelToUnit(((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.PrimaryPixelCollider.UpperRight), (VectorConversions)0)); if (cellSafe5 == null || cellSafe6 == null || cellSafe7 == null || cellSafe8 == null) { return false; } if (cellSafe5.isNextToWall | cellSafe6.isNextToWall | cellSafe7.isNextToWall | cellSafe8.isNextToWall) { return false; } } return ((BasicAttackBehavior)this).IsReady(); } } } namespace ExpandTheGungeon.ExpandLoadingScreens { [HarmonyPatch] public class ExpandLoadingScreen : FoyerPreloader { public enum OverrideType { None, West, Jungle, Belly, Backrooms, Glitched } public static GameObject EXDebugObject; public static FoyerPreloader Instance; public static GameObject LoadingScreenObject; public static GameObject LoadingBarFrameObject; public static GameObject LoadingBarObject; public static GameObject OptionalLoadingScreenObject; public static dfLabel LoadTextInstance; public static dfTextureSprite EXLoadingScreenSprite; public static dfTextureSprite EXLoadingBarFrameSprite; public static dfTextureSprite EXLoadingBarSprite; public static dfTextureSprite EXAdditionalLogoSprite; public static Texture2D EXLoadScreenLogo; public static Texture2D EXLoadScreenLogoLoadBarFrame; public static Texture2D EXLoadScreenLogoLoadBar; public static Texture2D CachedVanillaThrobberTexture; public static Texture2D CachedVanillaRatThrobberTexture; public static Texture2D ExternalLogoOverride = null; public static float? ProgressBarWidthOverride = null; public static Color? ProgressBarColorOverride = null; public static dfAnchorStyle? ExternalLogoAnchorStyle = null; private static dfTextureSprite m_EXLoadingScreenSprite; private static dfTextureSprite m_EXLoadingBarFrameSprite; private static dfTextureSprite m_EXLoadingBarSprite; public static Texture2D EXLoadScreenThrobber_Error; public static Texture2D EXLoadScreenThrobber_West; public static Texture2D EXLoadScreenThrobber_ThirdEye; public static Texture2D EXLoadScreenThrobber_Glitch; public static Texture2D EXLoadScreenThrobber_Glitch2; public static readonly string txtCloser = "..."; public static Dictionary LoadText = new Dictionary { [ExpandTheGungeon.LoadStatus.PreStartup] = "Preparing Gungeon Expansion...", [ExpandTheGungeon.LoadStatus.PreInit] = "Building Mod Assets. Please Wait!", [ExpandTheGungeon.LoadStatus.LoadAudio] = "Loading Audio Assetbundle", [ExpandTheGungeon.LoadStatus.LoadSprites] = "Building Sprite Collections", [ExpandTheGungeon.LoadStatus.LoadItems] = "Building Item Prefabs", [ExpandTheGungeon.LoadStatus.LoadPrefabs] = "Building Main Prefabs", [ExpandTheGungeon.LoadStatus.LoadEnemies] = "Building AIActor Prefabs", [ExpandTheGungeon.LoadStatus.LoadRooms] = "Building Room Prefabs", [ExpandTheGungeon.LoadStatus.LoadFloors] = "Building Gungeon Floor Prefabs", [ExpandTheGungeon.LoadStatus.LoadCleanup] = "Final Cleanup", [ExpandTheGungeon.LoadStatus.LoadFinished] = "Gungeon Expansion Completed", [ExpandTheGungeon.LoadStatus.LoadError] = "ERROR", [ExpandTheGungeon.LoadStatus.Other] = "Insert Message Here" }; public static OverrideType overrideType = OverrideType.None; public static bool KeepLoading = false; public static bool HookActive = true; public static bool AssetsReady = false; public static bool InitialScreenInit = false; public static bool RefreshText = true; public static int MaxProgressBarWidth; public static int MinProgressBarWidth; public static void Init() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0048: 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_0084: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) EXLoadScreenLogo = ExpandUtility.GetTextureFromResource("ExpandLoadingScreens/EXLoadScreenLogo.png", new IntVector2(218, 96)); EXLoadScreenThrobber_Error = ExpandUtility.GetTextureFromResource("ExpandLoadingScreens/EXLoadingScreen_Error.png", new IntVector2(1024, 512)); EXLoadScreenThrobber_ThirdEye = ExpandUtility.GetTextureFromResource("ExpandLoadingScreens/EXLoadingScreen_ThirdEye.png", new IntVector2(1024, 512)); EXLoadScreenThrobber_Glitch = ExpandUtility.GetTextureFromResource("ExpandLoadingScreens/EXLoadingScreen_Glitch.png", new IntVector2(1024, 512)); EXLoadScreenThrobber_Glitch2 = ExpandUtility.GetTextureFromResource("ExpandLoadingScreens/EXLoadingScreen_Glitch2.png", new IntVector2(1024, 512)); EXLoadScreenThrobber_West = ExpandUtility.GetTextureFromResource("ExpandLoadingScreens/EXLoadingScreen_West.png", new IntVector2(1024, 512)); EXLoadScreenLogoLoadBarFrame = ExpandUtility.GetTextureFromResource("ExpandLoadingScreens/EXLoadScreenLogo_LoadBarFrame.png", new IntVector2(218, 24)); EXLoadScreenLogoLoadBar = ExpandUtility.GetTextureFromResource("ExpandLoadingScreens/EXLoadScreenLogo_LoadBar.png", new IntVector2(218, 24)); MaxProgressBarWidth = ((Texture)EXLoadScreenLogoLoadBar).width - 2; MinProgressBarWidth = 5; AssetsReady = true; } [HarmonyPatch(typeof(FoyerPreloader), "Update")] [HarmonyPrefix] public static bool EXUpdate(FoyerPreloader __instance) { if (!HookActive) { ExpandSettings.EnableAsyncAssetLoading = false; return true; } if (!Object.op_Implicit((Object)(object)__instance)) { return true; } if (!Object.op_Implicit((Object)(object)Instance)) { Instance = __instance; } bool flag = ReflectionHelpers.ReflectGetField(typeof(FoyerPreloader), "m_wasFirstLoadScreen", __instance); bool flag2 = ReflectionHelpers.ReflectGetField(typeof(FoyerPreloader), "m_isLoading", __instance); if (!AssetsReady) { return false; } if (ExpandSettings.EnableAsyncAssetLoading) { if (ExpandTheGungeon.loadStatus != ExpandTheGungeon.LoadStatus.LoadFinished && ExpandTheGungeon.PreventInput) { if (UnityInput.Current != null) { UnityInput.Current.ResetInputAxes(); } } else if (ExpandTheGungeon.loadStatus == ExpandTheGungeon.LoadStatus.LoadFinished && ExpandTheGungeon.PreventInput) { ExpandTheGungeon.PreventInput = false; } } if (flag && RefreshText) { string value = string.Empty; if (!InitialScreenInit) { if (ExpandSettings.EnableAsyncAssetLoading) { LoadText.TryGetValue(ExpandTheGungeon.LoadStatus.PreStartup, out value); } else { LoadText.TryGetValue(ExpandTheGungeon.LoadStatus.PreInit, out value); } if (!Object.op_Implicit((Object)(object)LoadingScreenObject)) { CreateInitialLoadingScreen(__instance, value); } UpdateLoadingBar(ExpandTheGungeon.loadStatus); InitialScreenInit = true; } else { LoadText.TryGetValue(ExpandTheGungeon.loadStatus, out value); if (!string.IsNullOrEmpty(value)) { UpdateText(value, ExpandTheGungeon.loadStatus == ExpandTheGungeon.LoadStatus.LoadError); } UpdateLoadingBar(ExpandTheGungeon.loadStatus); } RefreshText = false; } if (flag && Time.frameCount > 4 && !flag2) { ((MonoBehaviour)__instance).StartCoroutine(EXAsyncLoadFoyer(__instance, flag)); typeof(FoyerPreloader).GetField("m_isLoading", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(__instance, true); return false; } if (!flag) { if (Object.op_Implicit((Object)(object)Instance) && !Object.op_Implicit((Object)(object)((Component)Instance).gameObject.GetComponent())) { ((Component)Instance).gameObject.AddComponent(); } if (Object.op_Implicit((Object)(object)Instance) && overrideType != 0) { MaybeOverrideGraphics(__instance); } if (Object.op_Implicit((Object)(object)Instance) && ExpandDebugCamera.DebugCameraEnabled) { CreateThirdEyeLoadingScreen(Instance); ExpandDebugCamera.ClearLoadScreenBackground(Instance); } } return false; } public static IEnumerator WaitForTextUpdate() { RefreshText = true; while (RefreshText && Object.op_Implicit((Object)(object)Instance)) { yield return null; } yield return (object)new WaitForEndOfFrame(); } private static void MaybeOverrideGraphics(FoyerPreloader foyerPreloader) { switch (overrideType) { case OverrideType.None: break; case OverrideType.West: overrideType = OverrideType.None; CreateOldWestLoadingScreen(foyerPreloader); break; case OverrideType.Jungle: overrideType = OverrideType.None; break; case OverrideType.Belly: overrideType = OverrideType.None; break; case OverrideType.Backrooms: overrideType = OverrideType.None; CreateBackroomsLoadingScreen(foyerPreloader); break; case OverrideType.Glitched: overrideType = OverrideType.None; CreateGlitchedLoadingScreen(foyerPreloader); break; } } public static void UpdateText(string Text, bool noCloser = false) { //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)Instance)) { if (noCloser) { Instance.LoadingLabel.Text = Text; } else { Instance.LoadingLabel.Text = Text + txtCloser; } if (ExpandTheGungeon.loadStatus == ExpandTheGungeon.LoadStatus.LoadError) { ((dfControl)Instance.LoadingLabel).Color = Color32.op_Implicit(new Color(1f, 0f, 0f, 1f)); } if (ExpandSettings.debugMode) { Debug.Log((object)("[ExpandTheGungeon] " + Text)); } } } private static IEnumerator EXAsyncLoadFoyer(FoyerPreloader preloader, bool m_wasFirstLoadScreen) { DebugTime.Log("FoyerLoader.AsyncLoadFoyer()", new object[0]); GameManager.AttemptSoundEngineInitializationAsync(); yield return ((MonoBehaviour)preloader).StartCoroutine(ResourceManager.InitAsync()); DebugTime.RecordStartTime(); Object obj = BraveResources.Load("_GameManager", ".prefab"); ((GameObject)((obj is GameObject) ? obj : null)).GetComponent(); DebugTime.Log("Preloaded GameManager", new object[0]); yield return null; _ = EnemyDatabase.Instance; yield return null; _ = EncounterDatabase.Instance; yield return null; while (!GameManager.AUDIO_ENABLED) { yield return null; } if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Successfully hijacked FoyerPreloader. Preventing FoyerPreloader self delete ..."); } if (m_wasFirstLoadScreen) { Object.DontDestroyOnLoad((Object)(object)((Component)preloader).gameObject); } AssetBundle obj2 = ResourceManager.LoadAssetBundle("foyer_001"); DebugTime.RecordStartTime(); ResourceManager.LoadLevelFromBundle(obj2); if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Finishing Foyer Load..."); } DebugTime.Log("Application.LoadLevel(foyer)", new object[0]); } public static IEnumerator DestroyLoadScreen(FoyerPreloader Preloader, int skipFrames = 3) { bool DontDestroyItAfterAll = false; for (int j = 0; j < ((Component)Preloader).gameObject.transform.childCount; j++) { if (((Object)((Component)Preloader).gameObject.transform.GetChild(j)).name == "DontDestroyMePlease") { DontDestroyItAfterAll = true; } } DebugTime.Log("Starting to destroy the load screen", new object[0]); for (int i = 0; i < skipFrames; i++) { yield return null; } DebugTime.Log("Finished destroying the load screen", new object[0]); if (!DontDestroyItAfterAll) { Object.Destroy((Object)(object)((Component)Preloader).gameObject); } } public static void UpdateLoadingBar(ExpandTheGungeon.LoadStatus status) { //IL_02b5: Unknown result type (might be due to invalid IL or missing references) //IL_02ba: Unknown result type (might be due to invalid IL or missing references) //IL_0330: Unknown result type (might be due to invalid IL or missing references) //IL_0335: Unknown result type (might be due to invalid IL or missing references) if (!ExpandSettings.EnableAsyncAssetLoading) { return; } switch (status) { case ExpandTheGungeon.LoadStatus.LoadStart: if (Object.op_Implicit((Object)(object)m_EXLoadingBarFrameSprite)) { ((dfControl)m_EXLoadingBarFrameSprite).IsVisible = true; } if (Object.op_Implicit((Object)(object)m_EXLoadingBarSprite)) { ((dfControl)m_EXLoadingBarSprite).IsVisible = true; } if (Object.op_Implicit((Object)(object)m_EXLoadingBarSprite)) { ((dfControl)m_EXLoadingBarSprite).Width = (int)Mathf.Lerp((float)MinProgressBarWidth, (float)MaxProgressBarWidth, 0.025f); } break; case ExpandTheGungeon.LoadStatus.LoadAudio: if (Object.op_Implicit((Object)(object)m_EXLoadingBarFrameSprite)) { ((dfControl)m_EXLoadingBarFrameSprite).IsVisible = true; } if (Object.op_Implicit((Object)(object)m_EXLoadingBarSprite)) { ((dfControl)m_EXLoadingBarSprite).IsVisible = true; } if (Object.op_Implicit((Object)(object)m_EXLoadingBarSprite)) { ((dfControl)m_EXLoadingBarSprite).Width = (int)Mathf.Lerp((float)MinProgressBarWidth, (float)MaxProgressBarWidth, 0.03f); } break; case ExpandTheGungeon.LoadStatus.LoadSprites: if (Object.op_Implicit((Object)(object)m_EXLoadingBarSprite)) { ((dfControl)m_EXLoadingBarSprite).Width = (int)Mathf.Lerp((float)MinProgressBarWidth, (float)MaxProgressBarWidth, 0.04f); } break; case ExpandTheGungeon.LoadStatus.LoadItems: if (Object.op_Implicit((Object)(object)m_EXLoadingBarSprite)) { ((dfControl)m_EXLoadingBarSprite).Width = (int)Mathf.Lerp((float)MinProgressBarWidth, (float)MaxProgressBarWidth, 0.06f); } break; case ExpandTheGungeon.LoadStatus.LoadPrefabs: if (Object.op_Implicit((Object)(object)m_EXLoadingBarSprite)) { ((dfControl)m_EXLoadingBarSprite).Width = (int)Mathf.Lerp((float)MinProgressBarWidth, (float)MaxProgressBarWidth, 0.1f); } break; case ExpandTheGungeon.LoadStatus.LoadEnemies: if (Object.op_Implicit((Object)(object)m_EXLoadingBarSprite)) { ((dfControl)m_EXLoadingBarSprite).Width = (int)Mathf.Lerp((float)MinProgressBarWidth, (float)MaxProgressBarWidth, 0.4f); } break; case ExpandTheGungeon.LoadStatus.LoadRooms: if (Object.op_Implicit((Object)(object)m_EXLoadingBarSprite)) { ((dfControl)m_EXLoadingBarSprite).Width = (int)Mathf.Lerp((float)MinProgressBarWidth, (float)MaxProgressBarWidth, 0.5f); } break; case ExpandTheGungeon.LoadStatus.LoadFloors: if (Object.op_Implicit((Object)(object)m_EXLoadingBarSprite)) { ((dfControl)m_EXLoadingBarSprite).Width = (int)Mathf.Lerp((float)MinProgressBarWidth, (float)MaxProgressBarWidth, 0.7f); } break; case ExpandTheGungeon.LoadStatus.LoadCleanup: if (Object.op_Implicit((Object)(object)m_EXLoadingBarSprite)) { ((dfControl)m_EXLoadingBarSprite).Width = (int)Mathf.Lerp((float)MinProgressBarWidth, (float)MaxProgressBarWidth, 0.85f); } break; case ExpandTheGungeon.LoadStatus.LoadFinished: if (Object.op_Implicit((Object)(object)m_EXLoadingBarSprite)) { ((dfControl)m_EXLoadingBarSprite).Width = (int)Mathf.Lerp((float)MinProgressBarWidth, (float)MaxProgressBarWidth, 1f); } break; case ExpandTheGungeon.LoadStatus.LoadError: if (Object.op_Implicit((Object)(object)m_EXLoadingBarSprite)) { ((dfControl)m_EXLoadingBarSprite).Color = Color32.op_Implicit(new Color(1f, 0f, 0f)); } if (Object.op_Implicit((Object)(object)Instance)) { Instance.Throbber.Atlas.Material.mainTexture = (Texture)(object)EXLoadScreenThrobber_Error; } break; case ExpandTheGungeon.LoadStatus.Other: if (ProgressBarWidthOverride.HasValue) { ((dfControl)m_EXLoadingBarSprite).Width = ProgressBarWidthOverride.Value; ProgressBarWidthOverride = null; } if (ProgressBarColorOverride.HasValue) { ((dfControl)m_EXLoadingBarSprite).Color = Color32.op_Implicit(ProgressBarColorOverride.Value); } break; case ExpandTheGungeon.LoadStatus.PreInit: break; } } public static void CreateInitialLoadingScreen(FoyerPreloader foyerPreloader, string InitialText) { //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Expected O, but got Unknown //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Expected O, but got Unknown //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Expected O, but got Unknown //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_0135: 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_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_022e: Unknown result type (might be due to invalid IL or missing references) //IL_023d: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Unknown result type (might be due to invalid IL or missing references) //IL_032a: Unknown result type (might be due to invalid IL or missing references) //IL_038a: Unknown result type (might be due to invalid IL or missing references) //IL_0399: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: Unknown result type (might be due to invalid IL or missing references) //IL_03f9: Unknown result type (might be due to invalid IL or missing references) //IL_0450: Unknown result type (might be due to invalid IL or missing references) //IL_0486: Unknown result type (might be due to invalid IL or missing references) //IL_04af: Unknown result type (might be due to invalid IL or missing references) //IL_04b4: Unknown result type (might be due to invalid IL or missing references) //IL_0531: Unknown result type (might be due to invalid IL or missing references) //IL_0541: Unknown result type (might be due to invalid IL or missing references) //IL_0550: Unknown result type (might be due to invalid IL or missing references) //IL_0555: Unknown result type (might be due to invalid IL or missing references) //IL_05dc: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)foyerPreloader)) { ((Component)foyerPreloader.LoadingLabel).gameObject.SetActive(true); ((Behaviour)foyerPreloader.LanguageManager).enabled = true; LoadingScreenObject = new GameObject("Expand Startup Loading Screen Panel Child"); LoadingBarFrameObject = new GameObject("Expand Startup LoadBar Frame Panel Child"); LoadingBarObject = new GameObject("Expand LoadBar Panel Child"); Object.DontDestroyOnLoad((Object)(object)LoadingScreenObject); Object.DontDestroyOnLoad((Object)(object)LoadingBarFrameObject); Object.DontDestroyOnLoad((Object)(object)LoadingBarObject); EXLoadingScreenSprite = LoadingScreenObject.AddComponent(); ((dfControl)EXLoadingScreenSprite).Anchor = (dfAnchorStyle)6; ((dfControl)EXLoadingScreenSprite).IsVisible = true; ((dfControl)EXLoadingScreenSprite).IsInteractive = true; ((dfControl)EXLoadingScreenSprite).Size = new Vector2((float)((Texture)EXLoadScreenLogo).width, (float)((Texture)EXLoadScreenLogo).height); ((dfControl)EXLoadingScreenSprite).MinimumSize = ((dfControl)EXLoadingScreenSprite).Size; ((dfControl)EXLoadingScreenSprite).MaximumSize = ((dfControl)EXLoadingScreenSprite).Size; ((dfControl)EXLoadingScreenSprite).ClipChildren = false; ((dfControl)EXLoadingScreenSprite).InverseClipChildren = false; ((dfControl)EXLoadingScreenSprite).TabIndex = -1; ((dfControl)EXLoadingScreenSprite).CanFocus = false; ((dfControl)EXLoadingScreenSprite).AutoFocus = false; ((dfControl)EXLoadingScreenSprite).IsLocalized = false; ((dfControl)EXLoadingScreenSprite).HotZoneScale = Vector2.one; ((dfControl)EXLoadingScreenSprite).AllowSignalEvents = true; ((dfControl)EXLoadingScreenSprite).PrecludeUpdateCycle = false; EXLoadingScreenSprite.Flip = (dfSpriteFlip)0; EXLoadingScreenSprite.FillDirection = (dfFillDirection)0; EXLoadingScreenSprite.FillAmount = 1f; EXLoadingScreenSprite.InvertFill = false; dfTextureSprite eXLoadingScreenSprite = EXLoadingScreenSprite; Rect cropRect = default(Rect); ((Rect)(ref cropRect)).x = 0f; ((Rect)(ref cropRect)).y = 0f; ((Rect)(ref cropRect)).width = 1f; ((Rect)(ref cropRect)).height = 1f; eXLoadingScreenSprite.CropRect = cropRect; EXLoadingScreenSprite.Texture = (Texture)(object)EXLoadScreenLogo; EXLoadingBarFrameSprite = LoadingBarFrameObject.AddComponent(); ((dfControl)EXLoadingBarFrameSprite).Anchor = (dfAnchorStyle)66; ((dfControl)EXLoadingBarFrameSprite).Pivot = (dfPivotPoint)6; ((dfControl)EXLoadingBarFrameSprite).IsVisible = true; ((dfControl)EXLoadingBarFrameSprite).IsInteractive = true; ((dfControl)EXLoadingBarFrameSprite).Size = new Vector2((float)((Texture)EXLoadScreenLogoLoadBarFrame).width, (float)((Texture)EXLoadScreenLogoLoadBarFrame).height); ((dfControl)EXLoadingBarFrameSprite).MinimumSize = Vector2.zero; ((dfControl)EXLoadingBarFrameSprite).MaximumSize = Vector2.zero; ((dfControl)EXLoadingBarFrameSprite).ClipChildren = false; ((dfControl)EXLoadingBarFrameSprite).InverseClipChildren = false; ((dfControl)EXLoadingBarFrameSprite).TabIndex = -1; ((dfControl)EXLoadingBarFrameSprite).CanFocus = false; ((dfControl)EXLoadingBarFrameSprite).AutoFocus = false; ((dfControl)EXLoadingBarFrameSprite).IsLocalized = false; ((dfControl)EXLoadingBarFrameSprite).HotZoneScale = Vector2.one; ((dfControl)EXLoadingBarFrameSprite).AllowSignalEvents = true; ((dfControl)EXLoadingBarFrameSprite).PrecludeUpdateCycle = false; EXLoadingBarFrameSprite.Flip = (dfSpriteFlip)0; EXLoadingBarFrameSprite.FillDirection = (dfFillDirection)0; EXLoadingBarFrameSprite.FillAmount = 1f; EXLoadingBarFrameSprite.InvertFill = false; dfTextureSprite eXLoadingBarFrameSprite = EXLoadingBarFrameSprite; cropRect = default(Rect); ((Rect)(ref cropRect)).x = 0f; ((Rect)(ref cropRect)).y = 0f; ((Rect)(ref cropRect)).width = 1f; ((Rect)(ref cropRect)).height = 1f; eXLoadingBarFrameSprite.CropRect = cropRect; EXLoadingBarFrameSprite.Texture = (Texture)(object)EXLoadScreenLogoLoadBarFrame; EXLoadingBarSprite = LoadingBarObject.AddComponent(); ((dfControl)EXLoadingBarSprite).Anchor = (dfAnchorStyle)6; ((dfControl)EXLoadingBarSprite).IsVisible = true; ((dfControl)EXLoadingBarSprite).IsInteractive = true; ((dfControl)EXLoadingBarSprite).Size = new Vector2((float)((Texture)EXLoadScreenLogoLoadBar).width, (float)((Texture)EXLoadScreenLogoLoadBar).height); ((dfControl)EXLoadingBarSprite).MinimumSize = Vector2.zero; ((dfControl)EXLoadingBarSprite).MaximumSize = Vector2.zero; ((dfControl)EXLoadingBarSprite).ClipChildren = false; ((dfControl)EXLoadingBarSprite).InverseClipChildren = false; ((dfControl)EXLoadingBarSprite).TabIndex = -1; ((dfControl)EXLoadingBarSprite).CanFocus = false; ((dfControl)EXLoadingBarSprite).AutoFocus = false; ((dfControl)EXLoadingBarSprite).IsLocalized = false; ((dfControl)EXLoadingBarSprite).HotZoneScale = Vector2.one; ((dfControl)EXLoadingBarSprite).AllowSignalEvents = true; ((dfControl)EXLoadingBarSprite).PrecludeUpdateCycle = false; EXLoadingBarSprite.Flip = (dfSpriteFlip)0; EXLoadingBarSprite.FillDirection = (dfFillDirection)0; EXLoadingBarSprite.FillAmount = 1f; EXLoadingBarSprite.InvertFill = false; dfTextureSprite eXLoadingBarSprite = EXLoadingBarSprite; cropRect = default(Rect); ((Rect)(ref cropRect)).x = 0f; ((Rect)(ref cropRect)).y = 0f; ((Rect)(ref cropRect)).width = 1f; ((Rect)(ref cropRect)).height = 1f; eXLoadingBarSprite.CropRect = cropRect; EXLoadingBarSprite.Texture = (Texture)(object)EXLoadScreenLogoLoadBar; ((dfControl)EXLoadingBarSprite).Color = Color32.op_Implicit(new Color(0f, 1f, 0f)); LoadTextInstance = foyerPreloader.LoadingLabel; LoadTextInstance.Text = InitialText; ((dfControl)LoadTextInstance).IsLocalized = false; LoadTextInstance.TextAlignment = (TextAlignment)1; LoadTextInstance.VerticalAlignment = (dfVerticalAlignment)2; LoadTextInstance.AutoSize = false; ((dfControl)LoadTextInstance).ClipChildren = true; LoadTextInstance.AutoHeight = false; ((dfControl)LoadTextInstance).Size = new Vector2((float)((Texture)EXLoadScreenLogo).width, (float)((Texture)EXLoadScreenLogo).height); dfLabel loadTextInstance = LoadTextInstance; ((dfControl)loadTextInstance).Position = ((dfControl)loadTextInstance).Position + new Vector3(0f, 28f); m_EXLoadingBarSprite = AddPrefab(LoadTextInstance, LoadingBarObject); m_EXLoadingBarFrameSprite = AddPrefab(LoadTextInstance, LoadingBarFrameObject); m_EXLoadingScreenSprite = AddPrefab(LoadTextInstance, LoadingScreenObject); ((Object)((Component)m_EXLoadingBarSprite).gameObject).name = "EXBarChild"; ((Object)((Component)m_EXLoadingBarFrameSprite).gameObject).name = "EXBarFrameChild"; ((Object)((Component)m_EXLoadingScreenSprite).gameObject).name = "EXLogoChild"; new GameObject("ExpandLoadingScreenDummy").gameObject.transform.SetParent(((Component)foyerPreloader).gameObject.transform); ((dfControl)m_EXLoadingBarFrameSprite).IsVisible = false; ((dfControl)m_EXLoadingBarSprite).IsVisible = false; Texture mainTexture = foyerPreloader.Throbber.Atlas.Material.mainTexture; CachedVanillaThrobberTexture = (Texture2D)(object)((mainTexture is Texture2D) ? mainTexture : null); Texture mainTexture2 = foyerPreloader.RatThrobber.Atlas.Material.mainTexture; CachedVanillaRatThrobberTexture = (Texture2D)(object)((mainTexture2 is Texture2D) ? mainTexture2 : null); } } public static dfControl CreateAdditionalLoadingScreen(FoyerPreloader foyerPreloader, Texture2D logoTexture, dfAnchorStyle anchorStyle, Vector2 textureSize) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Expected O, but got Unknown //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_006c: 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_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_0136: 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) if (!Object.op_Implicit((Object)(object)foyerPreloader)) { return null; } if (!Object.op_Implicit((Object)(object)((Component)foyerPreloader).gameObject.GetComponentInChildren())) { return null; } OptionalLoadingScreenObject = new GameObject("Optional Startup Loading Screen Panel Child"); Object.DontDestroyOnLoad((Object)(object)OptionalLoadingScreenObject); EXAdditionalLogoSprite = OptionalLoadingScreenObject.AddComponent(); ((dfControl)EXAdditionalLogoSprite).Anchor = anchorStyle; ((dfControl)EXAdditionalLogoSprite).IsVisible = true; ((dfControl)EXAdditionalLogoSprite).IsInteractive = false; ((dfControl)EXAdditionalLogoSprite).Size = new Vector2(textureSize.x, textureSize.y); ((dfControl)EXAdditionalLogoSprite).MinimumSize = textureSize; ((dfControl)EXAdditionalLogoSprite).MaximumSize = textureSize; ((dfControl)EXAdditionalLogoSprite).ClipChildren = false; ((dfControl)EXAdditionalLogoSprite).InverseClipChildren = false; ((dfControl)EXAdditionalLogoSprite).TabIndex = -1; ((dfControl)EXAdditionalLogoSprite).CanFocus = false; ((dfControl)EXAdditionalLogoSprite).AutoFocus = false; ((dfControl)EXAdditionalLogoSprite).IsLocalized = false; ((dfControl)EXAdditionalLogoSprite).HotZoneScale = Vector2.one; ((dfControl)EXAdditionalLogoSprite).AllowSignalEvents = true; ((dfControl)EXAdditionalLogoSprite).PrecludeUpdateCycle = false; EXAdditionalLogoSprite.Flip = (dfSpriteFlip)0; EXAdditionalLogoSprite.FillDirection = (dfFillDirection)0; EXAdditionalLogoSprite.FillAmount = 1f; EXAdditionalLogoSprite.InvertFill = false; dfTextureSprite eXAdditionalLogoSprite = EXAdditionalLogoSprite; Rect cropRect = default(Rect); ((Rect)(ref cropRect)).x = 0f; ((Rect)(ref cropRect)).y = 0f; ((Rect)(ref cropRect)).width = 1f; ((Rect)(ref cropRect)).height = 1f; eXAdditionalLogoSprite.CropRect = cropRect; EXAdditionalLogoSprite.Texture = (Texture)(object)logoTexture; return ((Component)foyerPreloader).gameObject.GetComponentInChildren().AddPrefab(OptionalLoadingScreenObject); } public static dfTextureSprite AddPrefab(dfLabel parentLabel, GameObject prefab) { if (!Object.op_Implicit((Object)(object)prefab.GetComponent())) { throw new InvalidCastException(); } GameObject obj = Object.Instantiate(prefab); obj.transform.parent = ((Component)parentLabel).transform; obj.layer = ((Component)parentLabel).gameObject.layer; dfTextureSprite component = obj.GetComponent(); typeof(dfTextureSprite).GetField("parent", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(component, parentLabel); ((dfControl)component).zindex = -1; ((dfControl)parentLabel).AddControl((dfControl)(object)component); return component; } public static dfTextureSprite AddPrefab(dfGUIManager parentLabel, GameObject prefab) { if (!Object.op_Implicit((Object)(object)prefab.GetComponent())) { throw new InvalidCastException(); } GameObject obj = Object.Instantiate(prefab); obj.transform.parent = ((Component)parentLabel).transform; obj.layer = ((Component)parentLabel).gameObject.layer; dfTextureSprite component = obj.GetComponent(); typeof(dfTextureSprite).GetField("parent", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(component, parentLabel); ((dfControl)component).zindex = -1; return component; } public static void CreateOldWestLoadingScreen(FoyerPreloader foyerPreloader) { if (!ExpandDebugCamera.DebugCameraEnabled) { foyerPreloader.Throbber.Atlas.Material.mainTexture = (Texture)(object)EXLoadScreenThrobber_West; } } public static void CreateThirdEyeLoadingScreen(FoyerPreloader foyerPreloader) { if ((Object)(object)foyerPreloader.Throbber.Atlas.Material.mainTexture != (Object)(object)EXLoadScreenThrobber_ThirdEye && (Object)(object)foyerPreloader.Throbber.Atlas.Material.mainTexture != (Object)(object)EXLoadScreenThrobber_Glitch && (Object)(object)foyerPreloader.Throbber.Atlas.Material.mainTexture != (Object)(object)EXLoadScreenThrobber_Glitch2) { foyerPreloader.Throbber.Atlas.Material.mainTexture = (Texture)(object)EXLoadScreenThrobber_ThirdEye; } } public static void CreateGlitchedLoadingScreen(FoyerPreloader foyerPreloader) { foyerPreloader.LoadingLabel.Glitchy = true; if (BraveUtility.RandomBool()) { foyerPreloader.Throbber.Atlas.Material.mainTexture = (Texture)(object)EXLoadScreenThrobber_Glitch; } else { foyerPreloader.Throbber.Atlas.Material.mainTexture = (Texture)(object)EXLoadScreenThrobber_Glitch2; } } public static void CreateBackroomsLoadingScreen(FoyerPreloader foyerPreloader) { foyerPreloader.LoadingLabel.Text = "No-Clipping" + txtCloser; } } public class EXLoadingScreenResetThrobbersOnDestroy : BraveBehaviour { private FoyerPreloader m_foyerPreloader; public void Awake() { m_foyerPreloader = ((Component)this).gameObject.GetComponent(); } protected override void OnDestroy() { if (!Object.op_Implicit((Object)(object)m_foyerPreloader)) { ((Component)m_foyerPreloader).gameObject.GetComponent(); } if (Object.op_Implicit((Object)(object)m_foyerPreloader)) { Texture mainTexture = m_foyerPreloader.Throbber.Atlas.Material.mainTexture; if ((Object)(object)((mainTexture is Texture2D) ? mainTexture : null) != (Object)(object)ExpandLoadingScreen.CachedVanillaThrobberTexture) { m_foyerPreloader.Throbber.Atlas.Material.mainTexture = (Texture)(object)ExpandLoadingScreen.CachedVanillaThrobberTexture; } Texture mainTexture2 = m_foyerPreloader.RatThrobber.Atlas.Material.mainTexture; if ((Object)(object)((mainTexture2 is Texture2D) ? mainTexture2 : null) != (Object)(object)ExpandLoadingScreen.CachedVanillaThrobberTexture) { m_foyerPreloader.RatThrobber.Atlas.Material.mainTexture = (Texture)(object)ExpandLoadingScreen.CachedVanillaRatThrobberTexture; } } ((BraveBehaviour)this).OnDestroy(); } } } namespace ExpandTheGungeon.ExpandDungeonFlows { public class f1b_future_flows { private static DungeonFlow m_f1b_future_flow_01; private static DungeonFlow m_f1b_future_flow_02; public static DungeonFlow F1b_Future_Flow_01 { get { if (!Object.op_Implicit((Object)(object)m_f1b_future_flow_01)) { m_f1b_future_flow_01 = m_F1b_Future_Flow_01(); } return m_f1b_future_flow_01; } } public static DungeonFlow F1b_Future_Flow_02 { get { if (!Object.op_Implicit((Object)(object)m_f1b_future_flow_02)) { m_f1b_future_flow_02 = m_F1b_Future_Flow_02(); } return m_f1b_future_flow_02; } } private static DungeonFlow m_F1b_Future_Flow_01() { DungeonFlow obj = ScriptableObject.CreateInstance(); ((Object)obj).name = "F1b_Future_Flow_01"; obj.fallbackRoomTable = ExpandPrefabs.FutureRoomTable; obj.phantomRoomTable = null; obj.subtypeRestrictions = new List(0); obj.flowInjectionData = new List(0); obj.sharedInjectionData = new List { ExpandDungeonFlow.BaseSharedInjectionData, ExpandDungeonFlow.FutureInjectionData }; obj.Initialize(); DungeonFlowNode val = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)7, null, ExpandPrefabs.FutureEntranceRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val2 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, null, oneWayLoopTarget: true, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val3 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val4 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val5 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val6 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val7 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val8 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val9 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val10 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val11 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val12 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val13 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val14 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val15 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val16 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val17 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val18 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val19 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val20 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)1, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val21 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)1, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val22 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)5, ExpandRoomPrefabs.Expand_Future_ShopRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val23 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)4, ExpandRoomPrefabs.Expand_Future_RewardRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val24 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)4, ExpandRoomPrefabs.Expand_Future_RewardRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val25 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)4, ExpandRoomPrefabs.Expand_Future_RewardRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val26 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)3, ExpandRoomPrefabs.Expand_Future_BossRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val27 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)5, null, ExpandPrefabs.FutureFoyerRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val28 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)8, ExpandRoomPrefabs.Expand_Future_ExitRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); obj.AddNodeToFlow(val, (DungeonFlowNode)null); obj.AddNodeToFlow(val4, val); obj.AddNodeToFlow(val2, val4); obj.AddNodeToFlow(val20, val2); obj.AddNodeToFlow(val5, val20); obj.AddNodeToFlow(val6, val5); obj.AddNodeToFlow(val7, val6); obj.AddNodeToFlow(val8, val7); obj.AddNodeToFlow(val9, val8); obj.AddNodeToFlow(val23, val9); obj.LoopConnectNodes(val23, val2); obj.AddNodeToFlow(val10, val20); obj.AddNodeToFlow(val11, val20); obj.AddNodeToFlow(val12, val); obj.AddNodeToFlow(val3, val12); obj.AddNodeToFlow(val21, val3); obj.AddNodeToFlow(val13, val21); obj.AddNodeToFlow(val14, val13); obj.AddNodeToFlow(val15, val14); obj.AddNodeToFlow(val16, val15); obj.AddNodeToFlow(val24, val16); obj.AddNodeToFlow(val17, val21); obj.AddNodeToFlow(val22, val17); obj.AddNodeToFlow(val25, val17); obj.AddNodeToFlow(val18, val21); obj.AddNodeToFlow(val19, val18); obj.AddNodeToFlow(val27, val19); obj.AddNodeToFlow(val26, val27); obj.AddNodeToFlow(val28, val26); obj.FirstNode = val; return obj; } private static DungeonFlow m_F1b_Future_Flow_02() { DungeonFlow obj = ScriptableObject.CreateInstance(); ((Object)obj).name = "F1b_Future_Flow_02"; obj.fallbackRoomTable = ExpandPrefabs.FutureRoomTable; obj.subtypeRestrictions = new List(0); obj.flowInjectionData = new List(0); obj.sharedInjectionData = new List { ExpandDungeonFlow.FutureInjectionData }; obj.phantomRoomTable = null; obj.Initialize(); DungeonFlowNode val = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)7, ExpandRoomPrefabs.Expand_Future_EntranceRoom_01, null, oneWayLoopTarget: true, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val2 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val3 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val4 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val5 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val6 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val7 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val8 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val9 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val10 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val11 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val12 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val13 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val14 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val15 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val16 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val17 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val18 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)1, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val19 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)1, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val20 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)5, ExpandRoomPrefabs.Expand_Future_ShopRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val21 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)4, ExpandRoomPrefabs.Expand_Future_RewardRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val22 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)4, ExpandRoomPrefabs.Expand_Future_RewardRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val23 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)4, ExpandRoomPrefabs.Expand_Future_RewardRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val24 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)3, ExpandRoomPrefabs.Expand_Future_BossRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val25 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)5, null, ExpandPrefabs.FutureFoyerRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val26 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)8, ExpandRoomPrefabs.Expand_Future_ExitRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); obj.AddNodeToFlow(val, (DungeonFlowNode)null); obj.AddNodeToFlow(val2, val); obj.AddNodeToFlow(val4, val2); obj.AddNodeToFlow(val5, val4); obj.AddNodeToFlow(val6, val5); obj.AddNodeToFlow(val18, val6); obj.AddNodeToFlow(val7, val6); obj.AddNodeToFlow(val8, val7); obj.AddNodeToFlow(val9, val8); obj.AddNodeToFlow(val21, val9); obj.LoopConnectNodes(val21, val); obj.AddNodeToFlow(val10, val18); obj.AddNodeToFlow(val11, val10); obj.AddNodeToFlow(val22, val11); obj.AddNodeToFlow(val12, val11); obj.AddNodeToFlow(val13, val18); obj.AddNodeToFlow(val20, val13); obj.AddNodeToFlow(val14, val13); obj.AddNodeToFlow(val15, val14); obj.AddNodeToFlow(val19, val15); obj.AddNodeToFlow(val16, val19); obj.AddNodeToFlow(val17, val19); obj.AddNodeToFlow(val3, val19); obj.AddNodeToFlow(val25, val3); obj.AddNodeToFlow(val24, val25); obj.AddNodeToFlow(val26, val24); obj.AddNodeToFlow(val23, val26); obj.FirstNode = val; return obj; } } public class apache_fucking_around_flow { private static DungeonFlow m_apache_fucking_around_flow; public static DungeonFlow Apache_Fucking_Around_Flow { get { if (!Object.op_Implicit((Object)(object)m_apache_fucking_around_flow)) { m_apache_fucking_around_flow = m_Apache_Fucking_Around_Flow(); } return m_apache_fucking_around_flow; } } private static DungeonFlow m_Apache_Fucking_Around_Flow() { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0007: 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_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_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_001c: 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_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Expected O, but got Unknown DungeonFlowSubtypeRestriction item = new DungeonFlowSubtypeRestriction { baseCategoryRestriction = (RoomCategory)2, normalSubcategoryRestriction = (RoomNormalSubCategory)1, bossSubcategoryRestriction = (RoomBossSubCategory)0, specialSubcategoryRestriction = (RoomSpecialSubCategory)0, secretSubcategoryRestriction = (RoomSecretSubCategory)0, maximumRoomsOfSubtype = 1 }; DungeonFlow val = ScriptableObject.CreateInstance(); bool flag = BraveUtility.RandomBool(); ((Object)val).name = "Apache_Fucking_Around_Flow"; val.fallbackRoomTable = ExpandPrefabs.CustomRoomTable2; val.subtypeRestrictions = new List { item }; val.flowInjectionData = new List(0); val.sharedInjectionData = new List(0); val.Initialize(); DungeonFlowNode val2 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)7, ExpandPrefabs.elevator_entrance, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val3 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)8, ExpandPrefabs.tiny_exit, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val4 = ((!Object.op_Implicit((Object)(object)ExpandPrefabs.doublebeholstertable)) ? ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)3, ExpandPrefabs.doublebeholsterroom01, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0) : ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)3, null, ExpandPrefabs.doublebeholstertable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0)); DungeonFlowNode val5 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, ExpandPrefabs.boss_foyer, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val6 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val7 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val8 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val9 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)5, null, ExpandPrefabs.shop_room_table, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val10 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)1, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val11 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, ExpandPrefabs.reward_room, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val12 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, ExpandPrefabs.reward_room, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val13 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, ExpandPrefabs.gungeon_rewardroom_1, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val14 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val15 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val16 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val17 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val18 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val19 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val20 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val21 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val22 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val23 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val24 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)6, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val25 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)6, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val26 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, null, oneWayLoopTarget: true, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val27 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, ExpandRoomPrefabs.Expand_SecretElevatorDestinationRoom, null, oneWayLoopTarget: false, isWarpWingNode: true, null, (NodePriority)0); DungeonFlowNode val28 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val29 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val30 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val31 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val32 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val33 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val34 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, ExpandPrefabs.reward_room, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); if (flag) { val24.overrideExactRoom = ExpandRoomPrefabs.Expand_SecretElevatorEntranceRoom; } else { val25.overrideExactRoom = ExpandRoomPrefabs.Expand_SecretElevatorEntranceRoom; } val.AddNodeToFlow(val2, (DungeonFlowNode)null); val.AddNodeToFlow(val6, val2); val.AddNodeToFlow(val7, val6); val.AddNodeToFlow(val8, val7); val.AddNodeToFlow(val9, val6); val.AddNodeToFlow(val10, val6); val.AddNodeToFlow(val11, val10); val.AddNodeToFlow(val14, val10); val.AddNodeToFlow(val5, val14); val.AddNodeToFlow(val4, val5); val.AddNodeToFlow(val3, val4); val.AddNodeToFlow(val15, val3); val.AddNodeToFlow(val26, val3); val.AddNodeToFlow(val16, val26); val.AddNodeToFlow(val12, val16); val.LoopConnectNodes(val12, val26); val.AddNodeToFlow(val17, val10); val.AddNodeToFlow(val18, val17); val.AddNodeToFlow(val19, val18); val.AddNodeToFlow(val20, val19); val.AddNodeToFlow(val24, val19); val.AddNodeToFlow(val21, val18); val.AddNodeToFlow(val22, val21); val.AddNodeToFlow(val23, val22); val.AddNodeToFlow(val25, val23); val.AddNodeToFlow(val13, val23); val.AddNodeToFlow(val27, val10); val.AddNodeToFlow(val31, val27); val.AddNodeToFlow(val34, val31); val.AddNodeToFlow(val28, val27); val.AddNodeToFlow(val32, val28); val.AddNodeToFlow(val29, val32); val.AddNodeToFlow(val30, val29); val.AddNodeToFlow(val33, val30); val.FirstNode = val2; return val; } } public class backrooms_flow_01 { private static DungeonFlow m_backrooms_flow_01; public static DungeonFlow BackRooms_Flow_01 { get { if (!Object.op_Implicit((Object)(object)m_backrooms_flow_01)) { m_backrooms_flow_01 = m_BackRooms_Flow_01(); } return m_backrooms_flow_01; } } private static DungeonFlow m_BackRooms_Flow_01() { DungeonFlow obj = ScriptableObject.CreateInstance(); DungeonFlowNode val = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)7, null, ExpandPrefabs.BackRoomsEntranceRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val2 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)8, ExpandRoomPrefabs.Expand_BackRooms_Exit, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val3 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: true, null, (NodePriority)0); DungeonFlowNode val4 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val5 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val6 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val7 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val8 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val9 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val10 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val11 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val12 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val13 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val14 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val15 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val16 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val17 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val18 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val19 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val20 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val21 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val22 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val23 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val24 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val25 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val26 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val27 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val28 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val29 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val30 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val31 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val32 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val33 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val34 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val35 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val36 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val37 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val38 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val39 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val40 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val41 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val42 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val43 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val44 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val45 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val46 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val47 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val48 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val49 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val50 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val51 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val52 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val53 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val54 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val55 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val56 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val57 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val58 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val59 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val60 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val61 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val62 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val63 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val64 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val65 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val66 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val67 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val68 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val69 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val70 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val71 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val72 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val73 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val74 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val75 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val76 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val77 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val78 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val79 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val80 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val81 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val82 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val83 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val84 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val85 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val86 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val87 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val88 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val89 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); ((Object)obj).name = "BackRooms_Flow_01"; obj.fallbackRoomTable = null; obj.phantomRoomTable = null; obj.subtypeRestrictions = new List(0); obj.flowInjectionData = new List(0); obj.sharedInjectionData = new List(0); obj.Initialize(); obj.AddNodeToFlow(val, (DungeonFlowNode)null); obj.AddNodeToFlow(val3, val); obj.AddNodeToFlow(val2, val3); obj.AddNodeToFlow(val4, val); obj.AddNodeToFlow(val5, val); obj.AddNodeToFlow(val6, val); obj.AddNodeToFlow(val7, val); obj.AddNodeToFlow(val8, val7); obj.AddNodeToFlow(val9, val8); obj.AddNodeToFlow(val10, val9); obj.AddNodeToFlow(val11, val10); obj.AddNodeToFlow(val12, val11); obj.AddNodeToFlow(val13, val12); obj.AddNodeToFlow(val14, val13); obj.AddNodeToFlow(val15, val14); obj.AddNodeToFlow(val16, val15); obj.AddNodeToFlow(val17, val16); obj.AddNodeToFlow(val18, val17); obj.AddNodeToFlow(val15, val14); obj.AddNodeToFlow(val16, val15); obj.AddNodeToFlow(val17, val16); obj.AddNodeToFlow(val18, val17); obj.AddNodeToFlow(val19, val18); obj.AddNodeToFlow(val20, val19); obj.AddNodeToFlow(val21, val26); obj.AddNodeToFlow(val22, val27); obj.AddNodeToFlow(val23, val28); obj.AddNodeToFlow(val24, val29); obj.AddNodeToFlow(val25, val30); obj.AddNodeToFlow(val31, val6); obj.AddNodeToFlow(val32, val31); obj.AddNodeToFlow(val33, val32); obj.AddNodeToFlow(val34, val33); obj.AddNodeToFlow(val35, val34); obj.AddNodeToFlow(val36, val35); obj.AddNodeToFlow(val37, val36); obj.AddNodeToFlow(val38, val37); obj.AddNodeToFlow(val39, val38); obj.AddNodeToFlow(val40, val39); obj.AddNodeToFlow(val41, val40); obj.AddNodeToFlow(val42, val36); obj.AddNodeToFlow(val43, val42); obj.AddNodeToFlow(val44, val43); obj.AddNodeToFlow(val45, val38); obj.AddNodeToFlow(val46, val45); obj.AddNodeToFlow(val47, val46); obj.AddNodeToFlow(val48, val46); obj.AddNodeToFlow(val49, val5); obj.AddNodeToFlow(val50, val49); obj.AddNodeToFlow(val51, val50); obj.AddNodeToFlow(val52, val51); obj.AddNodeToFlow(val53, val52); obj.AddNodeToFlow(val54, val53); obj.AddNodeToFlow(val55, val54); obj.AddNodeToFlow(val56, val55); obj.AddNodeToFlow(val57, val56); obj.AddNodeToFlow(val58, val57); obj.AddNodeToFlow(val59, val58); obj.AddNodeToFlow(val60, val53); obj.AddNodeToFlow(val61, val55); obj.AddNodeToFlow(val62, val55); obj.AddNodeToFlow(val63, val56); obj.AddNodeToFlow(val64, val4); obj.AddNodeToFlow(val65, val64); obj.AddNodeToFlow(val66, val65); obj.AddNodeToFlow(val67, val66); obj.AddNodeToFlow(val68, val67); obj.AddNodeToFlow(val69, val68); obj.AddNodeToFlow(val70, val69); obj.AddNodeToFlow(val71, val70); obj.AddNodeToFlow(val72, val71); obj.AddNodeToFlow(val73, val72); obj.AddNodeToFlow(val74, val73); obj.AddNodeToFlow(val75, val68); obj.AddNodeToFlow(val76, val75); obj.AddNodeToFlow(val77, val6); obj.AddNodeToFlow(val78, val77); obj.AddNodeToFlow(val79, val78); obj.AddNodeToFlow(val80, val79); obj.AddNodeToFlow(val80, val7); obj.AddNodeToFlow(val81, val80); obj.AddNodeToFlow(val82, val81); obj.AddNodeToFlow(val83, val82); obj.AddNodeToFlow(val84, val83); obj.AddNodeToFlow(val85, val81); obj.AddNodeToFlow(val86, val85); obj.AddNodeToFlow(val87, val86); obj.AddNodeToFlow(val88, val87); obj.AddNodeToFlow(val89, val86); obj.FirstNode = val; return obj; } } public class backrooms_flow_02 { private static DungeonFlow m_backrooms_flow_02; public static DungeonFlow BackRooms_Flow_02 { get { if (!Object.op_Implicit((Object)(object)m_backrooms_flow_02)) { m_backrooms_flow_02 = m_BackRooms_Flow_02(); } return m_backrooms_flow_02; } } private static DungeonFlow m_BackRooms_Flow_02() { DungeonFlow obj = ScriptableObject.CreateInstance(); DungeonFlowNode val = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)7, null, ExpandPrefabs.BackRoomsEntranceRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val2 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)8, ExpandRoomPrefabs.Expand_BackRooms_Exit, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val3 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: true, null, (NodePriority)0); ((Object)obj).name = "BackRooms_Flow_02"; obj.fallbackRoomTable = null; obj.phantomRoomTable = null; obj.subtypeRestrictions = new List(0); obj.flowInjectionData = new List(0); obj.sharedInjectionData = new List(0); obj.Initialize(); obj.AddNodeToFlow(val, (DungeonFlowNode)null); obj.AddNodeToFlow(val3, val); obj.AddNodeToFlow(val2, val3); DungeonFlowNode val4 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val5 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val6 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val7 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val8 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val9 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val10 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val11 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val12 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val13 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); obj.AddNodeToFlow(val4, val); obj.AddNodeToFlow(val5, val4); obj.AddNodeToFlow(val6, val5); obj.AddNodeToFlow(val7, val6); obj.AddNodeToFlow(val8, val7); obj.AddNodeToFlow(val9, val8); obj.AddNodeToFlow(val10, val9); obj.AddNodeToFlow(val11, val10); obj.AddNodeToFlow(val12, val11); obj.AddNodeToFlow(val13, val12); DungeonFlowNode val14 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val15 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val16 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val17 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val18 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val19 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val20 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val21 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val22 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val23 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); obj.AddNodeToFlow(val14, val5); obj.AddNodeToFlow(val15, val14); obj.AddNodeToFlow(val16, val15); obj.AddNodeToFlow(val17, val7); obj.AddNodeToFlow(val18, val17); obj.AddNodeToFlow(val19, val19); obj.AddNodeToFlow(val20, val20); obj.AddNodeToFlow(val21, val19); obj.AddNodeToFlow(val22, val21); obj.AddNodeToFlow(val23, val22); DungeonFlowNode val24 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val25 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val26 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val27 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val28 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val29 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val30 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val31 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val32 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val33 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); obj.AddNodeToFlow(val24, val); obj.AddNodeToFlow(val25, val24); obj.AddNodeToFlow(val26, val25); obj.AddNodeToFlow(val27, val26); obj.AddNodeToFlow(val28, val27); obj.AddNodeToFlow(val29, val28); obj.AddNodeToFlow(val30, val29); obj.AddNodeToFlow(val31, val30); obj.AddNodeToFlow(val32, val31); obj.AddNodeToFlow(val33, val32); DungeonFlowNode val34 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val35 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val36 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val37 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val38 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val39 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val40 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val41 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val42 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val43 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); obj.AddNodeToFlow(val34, val26); obj.AddNodeToFlow(val35, val27); obj.AddNodeToFlow(val36, val28); obj.AddNodeToFlow(val37, val29); obj.AddNodeToFlow(val38, val30); obj.AddNodeToFlow(val39, val31); obj.AddNodeToFlow(val40, val32); obj.AddNodeToFlow(val41, val33); obj.AddNodeToFlow(val42, val33); obj.AddNodeToFlow(val43, val33); DungeonFlowNode val44 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val45 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val46 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val47 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val48 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val49 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val50 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val51 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val52 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val53 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); obj.AddNodeToFlow(val44, val); obj.AddNodeToFlow(val45, val44); obj.AddNodeToFlow(val46, val45); obj.AddNodeToFlow(val47, val46); obj.AddNodeToFlow(val48, val47); obj.AddNodeToFlow(val49, val48); obj.AddNodeToFlow(val50, val49); obj.AddNodeToFlow(val51, val50); obj.AddNodeToFlow(val52, val51); obj.AddNodeToFlow(val53, val52); DungeonFlowNode val54 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val55 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val56 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val57 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val58 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); obj.AddNodeToFlow(val54, val47); obj.AddNodeToFlow(val55, val54); obj.AddNodeToFlow(val56, val55); obj.AddNodeToFlow(val57, val56); obj.AddNodeToFlow(val58, val56); DungeonFlowNode val59 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val60 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val61 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val62 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val63 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); obj.AddNodeToFlow(val59, val); obj.AddNodeToFlow(val60, val); obj.AddNodeToFlow(val61, val); obj.AddNodeToFlow(val62, val3); obj.AddNodeToFlow(val63, val62); DungeonFlowNode val64 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val65 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val66 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val67 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val68 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val69 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val70 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val71 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val72 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val73 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val74 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val75 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val76 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val77 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val78 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); obj.AddNodeToFlow(val64, val); obj.AddNodeToFlow(val65, val64); obj.AddNodeToFlow(val66, val65); obj.AddNodeToFlow(val67, val66); obj.AddNodeToFlow(val68, val67); obj.AddNodeToFlow(val69, val68); obj.AddNodeToFlow(val70, val69); obj.AddNodeToFlow(val71, val70); obj.AddNodeToFlow(val72, val71); obj.AddNodeToFlow(val73, val72); obj.AddNodeToFlow(val74, val73); obj.AddNodeToFlow(val75, val74); obj.AddNodeToFlow(val76, val75); obj.AddNodeToFlow(val77, val76); obj.AddNodeToFlow(val78, val77); DungeonFlowNode val79 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val80 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val81 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val82 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val83 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val84 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val85 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val86 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val87 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val88 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); obj.AddNodeToFlow(val79, val69); obj.AddNodeToFlow(val80, val70); obj.AddNodeToFlow(val81, val71); obj.AddNodeToFlow(val82, val72); obj.AddNodeToFlow(val83, val73); obj.AddNodeToFlow(val84, val74); obj.AddNodeToFlow(val85, val75); obj.AddNodeToFlow(val86, val76); obj.AddNodeToFlow(val87, val77); obj.AddNodeToFlow(val88, val78); obj.FirstNode = val; return obj; } } public class backrooms_flow_03 { private static DungeonFlow m_backrooms_flow_03; public static DungeonFlow BackRooms_Flow_03 { get { if (!Object.op_Implicit((Object)(object)m_backrooms_flow_03)) { m_backrooms_flow_03 = m_BackRooms_Flow_03(); } return m_backrooms_flow_03; } } private static DungeonFlow m_BackRooms_Flow_03() { DungeonFlow obj = ScriptableObject.CreateInstance(); DungeonFlowNode val = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)7, ExpandRoomPrefabs.Expand_BackRooms_Entrance_WarpWing, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0, 1f, handlesOwnWarping: false); DungeonFlowNode val2 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)8, ExpandRoomPrefabs.Expand_BackRooms_Exit, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val3 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: true, null, (NodePriority)0); DungeonFlowNode val4 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, ExpandPrefabs.BackRoomsWarpWingTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0, 1f, handlesOwnWarping: false); DungeonFlowNode val5 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, ExpandPrefabs.BackRoomsWarpWingTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0, 1f, handlesOwnWarping: false); DungeonFlowNode val6 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, ExpandPrefabs.BackRoomsWarpWingTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0, 1f, handlesOwnWarping: false); DungeonFlowNode val7 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, ExpandPrefabs.BackRoomsWarpWingTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0, 1f, handlesOwnWarping: false); DungeonFlowNode val8 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, ExpandPrefabs.BackRoomsWarpWingTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0, 1f, handlesOwnWarping: false); DungeonFlowNode val9 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, ExpandPrefabs.BackRoomsWarpWingTable, oneWayLoopTarget: false, isWarpWingNode: true, null, (NodePriority)0, 1f, handlesOwnWarping: false); DungeonFlowNode val10 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, ExpandPrefabs.BackRoomsWarpWingTable, oneWayLoopTarget: false, isWarpWingNode: true, null, (NodePriority)0, 1f, handlesOwnWarping: false); DungeonFlowNode val11 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, ExpandPrefabs.BackRoomsWarpWingTable, oneWayLoopTarget: false, isWarpWingNode: true, null, (NodePriority)0, 1f, handlesOwnWarping: false); DungeonFlowNode val12 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, ExpandPrefabs.BackRoomsWarpWingTable, oneWayLoopTarget: false, isWarpWingNode: true, null, (NodePriority)0, 1f, handlesOwnWarping: false); DungeonFlowNode val13 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, ExpandPrefabs.BackRoomsWarpWingTable, oneWayLoopTarget: false, isWarpWingNode: true, null, (NodePriority)0, 1f, handlesOwnWarping: false); ((Object)obj).name = "BackRooms_Flow_03"; obj.fallbackRoomTable = null; obj.phantomRoomTable = null; obj.subtypeRestrictions = new List(0); obj.flowInjectionData = new List(0); obj.sharedInjectionData = new List(0); obj.Initialize(); obj.AddNodeToFlow(val, (DungeonFlowNode)null); obj.AddNodeToFlow(val3, val); obj.AddNodeToFlow(val2, val3); DungeonFlowNode val14 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val15 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val16 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val17 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val18 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val19 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val20 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val21 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val22 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val23 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val24 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val25 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val26 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val27 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val28 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val29 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val30 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val31 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val32 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val33 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, ExpandPrefabs.BackRoomsWarpWingTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0, 1f, handlesOwnWarping: false); DungeonFlowNode val34 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, ExpandPrefabs.BackRoomsWarpWingTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0, 1f, handlesOwnWarping: false); DungeonFlowNode val35 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, ExpandPrefabs.BackRoomsWarpWingTable, oneWayLoopTarget: false, isWarpWingNode: true, null, (NodePriority)0, 1f, handlesOwnWarping: false); DungeonFlowNode val36 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, ExpandPrefabs.BackRoomsWarpWingTable, oneWayLoopTarget: false, isWarpWingNode: true, null, (NodePriority)0, 1f, handlesOwnWarping: false); obj.AddNodeToFlow(val4, val); obj.AddNodeToFlow(val9, val4); obj.AddNodeToFlow(val14, val9); obj.AddNodeToFlow(val15, val14); obj.AddNodeToFlow(val16, val15); obj.AddNodeToFlow(val17, val16); obj.AddNodeToFlow(val18, val16); obj.AddNodeToFlow(val19, val18); obj.AddNodeToFlow(val20, val18); obj.AddNodeToFlow(val21, val20); obj.AddNodeToFlow(val22, val21); obj.AddNodeToFlow(val33, val19); obj.AddNodeToFlow(val35, val33); obj.AddNodeToFlow(val23, val35); obj.AddNodeToFlow(val24, val23); obj.AddNodeToFlow(val25, val24); obj.AddNodeToFlow(val26, val25); obj.AddNodeToFlow(val34, val16); obj.AddNodeToFlow(val27, val34); obj.AddNodeToFlow(val36, val34); obj.AddNodeToFlow(val28, val36); obj.AddNodeToFlow(val29, val28); obj.AddNodeToFlow(val30, val29); obj.AddNodeToFlow(val31, val36); obj.AddNodeToFlow(val32, val36); DungeonFlowNode val37 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val38 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val39 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val40 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val41 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val42 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val43 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val44 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val45 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val46 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val47 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val48 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val49 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val50 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val51 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val52 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val53 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val54 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val55 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val56 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val57 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, ExpandPrefabs.BackRoomsWarpWingTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0, 1f, handlesOwnWarping: false); DungeonFlowNode val58 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, ExpandPrefabs.BackRoomsWarpWingTable, oneWayLoopTarget: false, isWarpWingNode: true, null, (NodePriority)0, 1f, handlesOwnWarping: false); obj.AddNodeToFlow(val5, val); obj.AddNodeToFlow(val10, val5); obj.AddNodeToFlow(val37, val10); obj.AddNodeToFlow(val38, val37); obj.AddNodeToFlow(val39, val38); obj.AddNodeToFlow(val40, val39); obj.AddNodeToFlow(val41, val40); obj.AddNodeToFlow(val42, val41); obj.AddNodeToFlow(val43, val41); obj.AddNodeToFlow(val44, val43); obj.AddNodeToFlow(val45, val44); obj.AddNodeToFlow(val46, val45); obj.AddNodeToFlow(val57, val43); obj.AddNodeToFlow(val58, val57); obj.AddNodeToFlow(val47, val58); obj.AddNodeToFlow(val48, val47); obj.AddNodeToFlow(val49, val48); obj.AddNodeToFlow(val50, val49); obj.AddNodeToFlow(val51, val49); obj.AddNodeToFlow(val52, val51); obj.AddNodeToFlow(val53, val52); obj.AddNodeToFlow(val54, val52); obj.AddNodeToFlow(val55, val54); obj.AddNodeToFlow(val56, val55); DungeonFlowNode val59 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val60 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val61 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val62 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val63 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val64 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val65 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val66 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val67 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val68 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val69 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val70 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val71 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val72 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val73 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val74 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val75 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val76 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val77 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val78 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val79 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, ExpandPrefabs.BackRoomsWarpWingTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0, 1f, handlesOwnWarping: false); DungeonFlowNode val80 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, ExpandPrefabs.BackRoomsWarpWingTable, oneWayLoopTarget: false, isWarpWingNode: true, null, (NodePriority)0, 1f, handlesOwnWarping: false); obj.AddNodeToFlow(val6, val); obj.AddNodeToFlow(val11, val6); obj.AddNodeToFlow(val59, val11); obj.AddNodeToFlow(val60, val59); obj.AddNodeToFlow(val61, val60); obj.AddNodeToFlow(val62, val61); obj.AddNodeToFlow(val63, val62); obj.AddNodeToFlow(val64, val63); obj.AddNodeToFlow(val65, val63); obj.AddNodeToFlow(val66, val65); obj.AddNodeToFlow(val67, val65); obj.AddNodeToFlow(val68, val67); obj.AddNodeToFlow(val79, val68); obj.AddNodeToFlow(val80, val79); obj.AddNodeToFlow(val69, val80); obj.AddNodeToFlow(val70, val69); obj.AddNodeToFlow(val71, val70); obj.AddNodeToFlow(val72, val71); obj.AddNodeToFlow(val73, val72); obj.AddNodeToFlow(val74, val73); obj.AddNodeToFlow(val75, val74); obj.AddNodeToFlow(val76, val74); obj.AddNodeToFlow(val77, val76); obj.AddNodeToFlow(val78, val77); DungeonFlowNode val81 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val82 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val83 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val84 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val85 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val86 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val87 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val88 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val89 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val90 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val91 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val92 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val93 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val94 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val95 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val96 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val97 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val98 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val99 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val100 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); obj.AddNodeToFlow(val7, val); obj.AddNodeToFlow(val12, val7); obj.AddNodeToFlow(val81, val12); obj.AddNodeToFlow(val82, val81); obj.AddNodeToFlow(val83, val82); obj.AddNodeToFlow(val84, val83); obj.AddNodeToFlow(val85, val84); obj.AddNodeToFlow(val86, val85); obj.AddNodeToFlow(val87, val86); obj.AddNodeToFlow(val88, val87); obj.AddNodeToFlow(val89, val88); obj.AddNodeToFlow(val90, val89); obj.AddNodeToFlow(val91, val82); obj.AddNodeToFlow(val92, val91); obj.AddNodeToFlow(val93, val92); obj.AddNodeToFlow(val94, val85); obj.AddNodeToFlow(val95, val94); obj.AddNodeToFlow(val96, val95); obj.AddNodeToFlow(val96, val87); obj.AddNodeToFlow(val97, val96); obj.AddNodeToFlow(val98, val97); obj.AddNodeToFlow(val99, val89); obj.AddNodeToFlow(val100, val99); DungeonFlowNode val101 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val102 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val103 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val104 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val105 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val106 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val107 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val108 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val109 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val110 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, ExpandPrefabs.BackRoomsRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val111 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, ExpandPrefabs.BackRoomsWarpWingTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0, 1f, handlesOwnWarping: false); DungeonFlowNode val112 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, ExpandPrefabs.BackRoomsWarpWingTable, oneWayLoopTarget: false, isWarpWingNode: true, null, (NodePriority)0, 1f, handlesOwnWarping: false); obj.AddNodeToFlow(val8, val); obj.AddNodeToFlow(val13, val8); obj.AddNodeToFlow(val101, val13); obj.AddNodeToFlow(val102, val101); obj.AddNodeToFlow(val103, val102); obj.AddNodeToFlow(val104, val103); obj.AddNodeToFlow(val105, val104); obj.AddNodeToFlow(val111, val104); obj.AddNodeToFlow(val112, val111); obj.AddNodeToFlow(val106, val112); obj.AddNodeToFlow(val107, val106); obj.AddNodeToFlow(val108, val106); obj.AddNodeToFlow(val109, val108); obj.AddNodeToFlow(val110, val108); obj.FirstNode = val; return obj; } } public class f0b_office_flows { private static DungeonFlow m_f0b_office_flow_01; public static DungeonFlow F0b_Office_Flow_01 { get { if (!Object.op_Implicit((Object)(object)m_f0b_office_flow_01)) { m_f0b_office_flow_01 = m_F0b_Office_Flow_01(); } return m_f0b_office_flow_01; } } private static DungeonFlow m_F0b_Office_Flow_01() { DungeonFlow obj = FlowHelpers.DuplicateDungeonFlow(DungeonDatabase.GetOrLoadByName("Base_Cathedral").PatternSettings.flows[0]); ((Object)obj).name = "F0b_Office_Flow_01"; obj.phantomRoomTable = null; obj.fallbackRoomTable = ExpandPrefabs.AbbeyRoomTableForOffice; obj.subtypeRestrictions = new List(0); obj.flowInjectionData = new List(0); obj.sharedInjectionData = new List { ExpandDungeonFlow.BaseSharedInjectionData, ExpandDungeonFlow.PhobosInjectionData }; obj.FirstNode.overrideExactRoom = ExpandPrefabs.elevator_entrance; obj.AllNodes[2].overrideExactRoom = ExpandPrefabs.oldbulletking_room_01; return obj; } } public class f0b_phobos_flows { private static DungeonFlow m_f0b_phobos_flow_01; private static DungeonFlow m_f0b_phobos_flow_02; public static DungeonFlow F0b_Phobos_Flow_01 { get { if (!Object.op_Implicit((Object)(object)m_f0b_phobos_flow_01)) { m_f0b_phobos_flow_01 = m_F0b_Phobos_Flow_01(); } return m_f0b_phobos_flow_01; } } public static DungeonFlow F0b_Phobos_Flow_02 { get { if (!Object.op_Implicit((Object)(object)m_f0b_phobos_flow_02)) { m_f0b_phobos_flow_02 = m_F0b_Phobos_Flow_02(); } return m_f0b_phobos_flow_02; } } private static DungeonFlow m_F0b_Phobos_Flow_01() { DungeonFlow obj = FlowHelpers.DuplicateDungeonFlow(DungeonDatabase.GetOrLoadByName("Base_Sewer").PatternSettings.flows[0]); ((Object)obj).name = "F0b_Phobos_Flow_01"; obj.phantomRoomTable = null; obj.subtypeRestrictions = new List(0); obj.flowInjectionData = new List(0); obj.sharedInjectionData = new List { ExpandDungeonFlow.BaseSharedInjectionData, ExpandDungeonFlow.PhobosInjectionData }; obj.FirstNode.overrideExactRoom = ExpandPrefabs.big_entrance; obj.AllNodes[2].overrideExactRoom = ExpandRoomPrefabs.Expand_Future_BossRoom; return obj; } public static DungeonFlow m_F0b_Phobos_Flow_02() { DungeonFlow obj = FlowHelpers.DuplicateDungeonFlow(DungeonDatabase.GetOrLoadByName("Base_Sewer").PatternSettings.flows[1]); ((Object)obj).name = "F0b_Phobos_Flow_02"; obj.phantomRoomTable = null; obj.subtypeRestrictions = new List(0); obj.flowInjectionData = new List(0); obj.sharedInjectionData = new List { ExpandDungeonFlow.BaseSharedInjectionData, ExpandDungeonFlow.PhobosInjectionData }; obj.FirstNode.overrideExactRoom = ExpandPrefabs.big_entrance; obj.AllNodes[2].overrideExactRoom = ExpandRoomPrefabs.Expand_Future_BossRoom; return obj; } } public class f1b_jungle_flow_01 { private static DungeonFlow m_f1b_jungle_flow_01; public static DungeonFlow F1b_Jungle_Flow_01 { get { if (!Object.op_Implicit((Object)(object)m_f1b_jungle_flow_01)) { m_f1b_jungle_flow_01 = m_F1b_Jungle_Flow_01(); } return m_f1b_jungle_flow_01; } } private static DungeonFlow m_F1b_Jungle_Flow_01() { //IL_007c: Unknown result type (might be due to invalid IL or missing references) DungeonFlow obj = ScriptableObject.CreateInstance(); if (!Object.op_Implicit((Object)(object)ExpandDungeonFlow.JungleInjectionData)) { ExpandDungeonFlow.BuildJungleInjectionData(); } DungeonFlowNode val = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)7, ExpandRoomPrefabs.Expand_Jungle_Entrance, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val2 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)8, ExpandRoomPrefabs.Expand_Jungle_Exit, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val3 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)5, null, ExpandPrefabs.boss_foyertable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val4 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)3, ExpandRoomPrefabs.Expand_Jungle_Boss, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val5 = ExpandDungeonFlow.GenerateDefaultNode(obj, ExpandPrefabs.shop02.category, null, ExpandPrefabs.shop_room_table, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val6 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, ExpandPrefabs.reward_room, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val7 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, ExpandPrefabs.reward_room, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val8 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)1, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val9 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val10 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val11 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val12 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val13 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val14 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val15 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val16 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val17 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val18 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val19 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val20 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val21 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val22 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val23 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); ((Object)obj).name = "F1b_Jungle_Flow_01"; obj.fallbackRoomTable = ExpandPrefabs.JungleRoomTable; obj.phantomRoomTable = null; obj.subtypeRestrictions = new List(0); obj.flowInjectionData = new List(0); obj.sharedInjectionData = new List { ExpandDungeonFlow.BaseSharedInjectionData, ExpandDungeonFlow.JungleInjectionData }; obj.Initialize(); obj.AddNodeToFlow(val, (DungeonFlowNode)null); obj.AddNodeToFlow(val8, val); obj.AddNodeToFlow(val9, val8); obj.AddNodeToFlow(val10, val9); obj.AddNodeToFlow(val11, val9); obj.AddNodeToFlow(val12, val11); obj.AddNodeToFlow(val6, val11); obj.AddNodeToFlow(val13, val8); obj.AddNodeToFlow(val14, val13); obj.AddNodeToFlow(val7, val14); obj.AddNodeToFlow(val16, val14); obj.AddNodeToFlow(val15, val13); obj.AddNodeToFlow(val17, val8); obj.AddNodeToFlow(val18, val17); obj.AddNodeToFlow(val22, val18); obj.AddNodeToFlow(val21, val18); obj.AddNodeToFlow(val19, val17); obj.AddNodeToFlow(val20, val19); obj.AddNodeToFlow(val23, val19); obj.AddNodeToFlow(val5, val20); obj.AddNodeToFlow(val3, val21); obj.AddNodeToFlow(val4, val3); obj.AddNodeToFlow(val2, val4); obj.FirstNode = val; return obj; } } public class f1b_jungle_flow_02 { private static DungeonFlow m_f1b_jungle_flow_02; public static DungeonFlow F1b_Jungle_Flow_02 { get { if (!Object.op_Implicit((Object)(object)m_f1b_jungle_flow_02)) { m_f1b_jungle_flow_02 = m_F1b_Jungle_Flow_02(); } return m_f1b_jungle_flow_02; } } private static DungeonFlow m_F1b_Jungle_Flow_02() { //IL_007c: Unknown result type (might be due to invalid IL or missing references) DungeonFlow obj = ScriptableObject.CreateInstance(); if (!Object.op_Implicit((Object)(object)ExpandDungeonFlow.JungleInjectionData)) { ExpandDungeonFlow.BuildJungleInjectionData(); } DungeonFlowNode val = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)7, ExpandRoomPrefabs.Expand_Jungle_Entrance, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val2 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)8, ExpandRoomPrefabs.Expand_Jungle_Exit, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val3 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)5, null, ExpandPrefabs.boss_foyertable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val4 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)3, ExpandRoomPrefabs.Expand_Jungle_Boss, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val5 = ExpandDungeonFlow.GenerateDefaultNode(obj, ExpandPrefabs.shop02.category, null, ExpandPrefabs.shop_room_table, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val6 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, ExpandPrefabs.gungeon_rewardroom_1, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val7 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, ExpandPrefabs.gungeon_rewardroom_1, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val8 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)1, null, null, oneWayLoopTarget: true, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val9 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val10 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val11 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val12 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)1, null, null, oneWayLoopTarget: true, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val13 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val14 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val15 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val16 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)1, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val17 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val18 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val19 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val20 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val21 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val22 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); ((Object)obj).name = "F1b_Jungle_Flow_02"; obj.fallbackRoomTable = ExpandPrefabs.JungleRoomTable; obj.phantomRoomTable = null; obj.subtypeRestrictions = new List(0); obj.flowInjectionData = new List(0); obj.sharedInjectionData = new List { ExpandDungeonFlow.BaseSharedInjectionData, ExpandDungeonFlow.JungleInjectionData }; obj.Initialize(); obj.AddNodeToFlow(val, (DungeonFlowNode)null); obj.AddNodeToFlow(val20, val); obj.AddNodeToFlow(val8, val20); obj.AddNodeToFlow(val11, val8); obj.AddNodeToFlow(val9, val8); obj.AddNodeToFlow(val10, val9); obj.AddNodeToFlow(val6, val10); obj.LoopConnectNodes(val6, val8); obj.AddNodeToFlow(val21, val); obj.AddNodeToFlow(val12, val21); obj.AddNodeToFlow(val15, val12); obj.AddNodeToFlow(val13, val12); obj.AddNodeToFlow(val14, val13); obj.AddNodeToFlow(val7, val14); obj.LoopConnectNodes(val7, val12); obj.AddNodeToFlow(val22, val); obj.AddNodeToFlow(val16, val22); obj.AddNodeToFlow(val17, val16); obj.AddNodeToFlow(val18, val16); obj.AddNodeToFlow(val5, val18); obj.AddNodeToFlow(val19, val16); obj.AddNodeToFlow(val3, val17); obj.AddNodeToFlow(val4, val3); obj.AddNodeToFlow(val2, val4); obj.FirstNode = val; return obj; } } public class f2b_belly_flow_01 { private static DungeonFlow m_f2b_belly_flow_01; public static DungeonFlow F2b_Belly_Flow_01 { get { if (!Object.op_Implicit((Object)(object)m_f2b_belly_flow_01)) { m_f2b_belly_flow_01 = m_F2b_Belly_Flow_01(); } return m_f2b_belly_flow_01; } } private static DungeonFlow m_F2b_Belly_Flow_01() { DungeonFlow obj = ScriptableObject.CreateInstance(); if (!Object.op_Implicit((Object)(object)ExpandDungeonFlow.BellyInjectionData)) { ExpandDungeonFlow.BellyInjectionData = ScriptableObject.CreateInstance(); ((Object)ExpandDungeonFlow.BellyInjectionData).name = "Belly Common Injection Data"; ExpandDungeonFlow.BellyInjectionData.UseInvalidWeightAsNoInjection = true; ExpandDungeonFlow.BellyInjectionData.PreventInjectionOfFailedPrerequisites = false; ExpandDungeonFlow.BellyInjectionData.IsNPCCell = false; ExpandDungeonFlow.BellyInjectionData.IgnoreUnmetPrerequisiteEntries = false; ExpandDungeonFlow.BellyInjectionData.OnlyOne = false; ExpandDungeonFlow.BellyInjectionData.ChanceToSpawnOne = 0.5f; ExpandDungeonFlow.BellyInjectionData.AttachedInjectionData = new List(0); ExpandDungeonFlow.BellyInjectionData.InjectionData = new List(0); } DungeonFlowNode val = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)7, ExpandRoomPrefabs.Expand_Belly_Entrance, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val2 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)8, ExpandRoomPrefabs.Expand_Belly_ExitHub, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val3 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, ExpandRoomPrefabs.Expand_Belly_RealExit, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val4 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)5, null, ExpandPrefabs.boss_foyertable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val5 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)3, ExpandRoomPrefabs.Expand_Belly_BossRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val6 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, ExpandPrefabs.gungeon_rewardroom_1, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val7 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, ExpandPrefabs.gungeon_rewardroom_1, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val8 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, ExpandRoomPrefabs.Expand_Belly_Reward, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val9 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, ExpandRoomPrefabs.Expand_Belly_Shrine, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val10 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val11 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)1, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val12 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val13 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val14 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val15 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val16 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val17 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val18 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val19 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val20 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val21 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val22 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val23 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val24 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val25 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val26 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); ((Object)obj).name = "F2b_Belly_Flow_01"; obj.fallbackRoomTable = ExpandPrefabs.BellyRoomTable; obj.phantomRoomTable = null; obj.subtypeRestrictions = new List { ExpandDungeonFlow.BaseSubTypeRestrictions }; obj.flowInjectionData = new List(0); obj.sharedInjectionData = new List { ExpandDungeonFlow.BaseSharedInjectionData }; obj.Initialize(); obj.AddNodeToFlow(val, (DungeonFlowNode)null); obj.AddNodeToFlow(val12, val); obj.AddNodeToFlow(val13, val12); obj.AddNodeToFlow(val14, val13); obj.AddNodeToFlow(val10, val14); obj.AddNodeToFlow(val15, val10); obj.AddNodeToFlow(val16, val10); obj.AddNodeToFlow(val6, val16); obj.AddNodeToFlow(val17, val10); obj.AddNodeToFlow(val18, val17); obj.AddNodeToFlow(val19, val18); obj.AddNodeToFlow(val20, val19); obj.AddNodeToFlow(val11, val20); obj.AddNodeToFlow(val21, val11); obj.AddNodeToFlow(val22, val11); obj.AddNodeToFlow(val7, val22); obj.AddNodeToFlow(val23, val11); obj.AddNodeToFlow(val24, val11); obj.AddNodeToFlow(val25, val24); obj.AddNodeToFlow(val26, val25); obj.AddNodeToFlow(val4, val26); obj.AddNodeToFlow(val5, val4); obj.AddNodeToFlow(val2, val5); obj.AddNodeToFlow(val8, val2); obj.AddNodeToFlow(val9, val2); obj.AddNodeToFlow(val3, val2); obj.FirstNode = val; return obj; } } public class f4c_west_flow_01 { private static DungeonFlow m_f4c_west_flow_01; public static DungeonFlow F4c_West_Flow_01 { get { if (!Object.op_Implicit((Object)(object)m_f4c_west_flow_01)) { m_f4c_west_flow_01 = m_F4c_West_Flow_01(); } return m_f4c_west_flow_01; } } private static DungeonFlow m_F4c_West_Flow_01() { //IL_0456: Unknown result type (might be due to invalid IL or missing references) DungeonFlow val = ScriptableObject.CreateInstance(); ((Object)val).name = "F4c_West_Flow_01"; val.fallbackRoomTable = ExpandPrefabs.CustomRoomTableSecretGlitchFloor; val.phantomRoomTable = null; val.subtypeRestrictions = new List(0); val.flowInjectionData = new List(0); val.sharedInjectionData = new List { ExpandDungeonFlow.CustomSecretFloorSharedInjectionData }; val.Initialize(); DungeonFlowNode val2 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)7, ExpandRoomPrefabs.Expand_West_Entrance, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val3 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)8, ExpandRoomPrefabs.SecretExitRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val4 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)5, null, ExpandPrefabs.boss_foyertable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val5 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)3, ExpandRoomPrefabs.FakeBossRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val6 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)5, null, ExpandPrefabs.boss_foyertable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val7 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)3, ExpandRoomPrefabs.Expand_West_WestBrosBossRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val8 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); List list = new List(); foreach (WeightedRoom element in ExpandPrefabs.winchesterroomtable.includedRooms.elements) { if ((Object)(object)element.room != (Object)null) { list.Add(element.room); } } if (list.Count > 0) { list = BraveUtility.Shuffle(list); val8.overrideExactRoom = BraveUtility.RandomElement(list); } DungeonFlowNode val9 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)5, ExpandPrefabs.subshop_muncher_01, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val10 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)5, null, ExpandPrefabs.shop_room_table, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val11 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, ExpandRoomPrefabs.Expand_West_SecretShopWarp, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0, 1f, handlesOwnWarping: false); DungeonFlowNode val12 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)4, ExpandRoomPrefabs.Expand_West_ChestRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val13 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)4, ExpandRoomPrefabs.Expand_West_ChestRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val14 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)6, ExpandRoomPrefabs.Expand_West_SecretKeyShop, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val15 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)6, ExpandRoomPrefabs.Expand_TinySecretEmpty, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val16 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, ExpandRoomPrefabs.Expand_West_SecretWarp, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0, 1f, handlesOwnWarping: false); DungeonFlowNode val17 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)1, ExpandRoomPrefabs.Expand_West_SecretHub, null, oneWayLoopTarget: false, isWarpWingNode: true, null, (NodePriority)0, 1f, handlesOwnWarping: false); DungeonFlowNode val18 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)1, ExpandRoomPrefabs.Expand_West_SecretHub2, null, oneWayLoopTarget: false, isWarpWingNode: true, null, (NodePriority)0, 1f, handlesOwnWarping: false); DungeonFlowNode val19 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, ExpandPrefabs.WestTinyCanyonRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val20 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, ExpandPrefabs.WestCanyonRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val21 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, ExpandPrefabs.WestTinyCanyonRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val22 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, ExpandPrefabs.WestTinyCanyonRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val23 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, ExpandPrefabs.WestTinyCanyonRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val24 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, ExpandPrefabs.WestTinyCanyonRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val25 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, ExpandPrefabs.WestTinyCanyonRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val26 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, ExpandPrefabs.WestCanyonRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val27 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, ExpandPrefabs.WestTinyCanyonRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val28 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, ExpandPrefabs.WestCanyonRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val29 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, ExpandPrefabs.WestTinyCanyonRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val30 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, ExpandPrefabs.WestTinyCanyonRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val31 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, ExpandPrefabs.WestInterior1RoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val32 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, ExpandPrefabs.WestInterior1RoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val33 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, ExpandPrefabs.WestInterior1RoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val34 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, ExpandPrefabs.WestInterior1RoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val35 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, ExpandPrefabs.MegaMiniBossRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val36 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)5, null, ExpandPrefabs.MegaChallengeShrineTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val37 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)5, ExpandRoomPrefabs.Expand_West_ShrineRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); val37.forcedDoorType = (ForcedDoorType)1; DungeonFlowNode val38 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)5, null, ExpandPrefabs.basic_special_rooms_noBlackMarket, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val39 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, ExpandRoomPrefabs.Expand_West_BlankPedestalRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val40 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, ExpandRoomPrefabs.Expand_West_BlankPedestalRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val41 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, ExpandRoomPrefabs.Expand_West_RatKeyPedestalRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val42 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)6, ExpandRoomPrefabs.Expand_West_SecretRatKeyPedestalRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val43 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)6, ExpandRoomPrefabs.Expand_West_SecretRatKeyPedestalRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val44 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, ExpandRoomPrefabs.PuzzleRoom1, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val45 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, ExpandRoomPrefabs.PuzzleRoom2, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val46 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, ExpandRoomPrefabs.PuzzleRoom3, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val47 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, ExpandRoomPrefabs.SecretRewardRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val48 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)3, ExpandRoomPrefabs.GungeoneerMimicBossRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val49 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)5, ExpandRoomPrefabs.GungeoneerMimicBossFoyerRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); val.AddNodeToFlow(val2, (DungeonFlowNode)null); val.AddNodeToFlow(val19, val2); val.AddNodeToFlow(val21, val2); val.AddNodeToFlow(val22, val2); val.AddNodeToFlow(val23, val2); val.AddNodeToFlow(val24, val2); val.AddNodeToFlow(val25, val2); val.AddNodeToFlow(val27, val2); val.AddNodeToFlow(val29, val2); val.AddNodeToFlow(val30, val2); val.AddNodeToFlow(val9, val21); val.AddNodeToFlow(val8, val29); val.AddNodeToFlow(val26, val25); val.AddNodeToFlow(val39, val26); val.AddNodeToFlow(val40, val23); val.AddNodeToFlow(val12, val19); val.AddNodeToFlow(val13, val27); val.AddNodeToFlow(val14, val13); val.AddNodeToFlow(val15, val14); val.AddNodeToFlow(val16, val15); val.AddNodeToFlow(val17, val16); val.AddNodeToFlow(val42, val17); val.AddNodeToFlow(val31, val17); val.AddNodeToFlow(val37, val31); val.AddNodeToFlow(val38, val31); val.AddNodeToFlow(val36, val17); val.AddNodeToFlow(val32, val36); val.AddNodeToFlow(val33, val32); val.AddNodeToFlow(val43, val33); val.AddNodeToFlow(val34, val32); val.AddNodeToFlow(val35, val34); val.AddNodeToFlow(val41, val35); val.AddNodeToFlow(val10, val24); val.AddNodeToFlow(val11, val10); val.AddNodeToFlow(val18, val11); val.AddNodeToFlow(val44, val18); val.AddNodeToFlow(val45, val18); val.AddNodeToFlow(val46, val18); val.AddNodeToFlow(val47, val18); val.AddNodeToFlow(val49, val47); val.AddNodeToFlow(val48, val49); val.AddNodeToFlow(val20, val30); val.AddNodeToFlow(val6, val20); val.AddNodeToFlow(val7, val6); val.AddNodeToFlow(val3, val7); val.AddNodeToFlow(val28, val22); val.AddNodeToFlow(val4, val28); val.AddNodeToFlow(val5, val4); val.FirstNode = val2; return val; } } public class test_customroom_flow { private static DungeonFlow m_test_customroom_flow; public static DungeonFlow Test_CustomRoom_Flow { get { if (!Object.op_Implicit((Object)(object)m_test_customroom_flow)) { m_test_customroom_flow = m_Test_CustomRoom_Flow(); } return m_test_customroom_flow; } } private static DungeonFlow m_Test_CustomRoom_Flow() { //IL_00d2: Unknown result type (might be due to invalid IL or missing references) DungeonFlow obj = ScriptableObject.CreateInstance(); DungeonFlowNode val = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)7, ExpandPrefabs.elevator_entrance, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val2 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)8, ExpandPrefabs.exit_room_basic, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val3 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)5, null, ExpandPrefabs.boss_foyertable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val4 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)3, ExpandRoomPrefabs.Expand_Future_BossRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val5 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, ExpandRoomPrefabs.Expand_Apache_RickRollChest, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val6 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, ExpandRoomPrefabs.Expand_Backrooms_Rooms[104], null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val7 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, ExpandRoomPrefabs.ForgeHammerTestRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val8 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, ExpandRoomPrefabs.Expand_Apache_SurpriseChest, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val9 = ExpandDungeonFlow.GenerateDefaultNode(obj, ExpandPrefabs.shop02.category, null, ExpandPrefabs.shop_room_table, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val10 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)0, ExpandPrefabs.gungeon_rewardroom_1, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val11 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)6, ExpandRoomPrefabs.Expand_GlitchedSecret, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val12 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, ExpandRoomPrefabs.Expand_BootlegRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val13 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, ExpandRoomPrefabs.Expand_Apache_PitTraps, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val14 = ExpandDungeonFlow.GenerateDefaultNode(obj, (RoomCategory)2, ExpandRoomPrefabs.SecretRewardRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); ((Object)obj).name = "Test_CustomRoom_Flow"; obj.fallbackRoomTable = null; obj.phantomRoomTable = null; obj.subtypeRestrictions = new List(0); obj.flowInjectionData = new List(0); obj.sharedInjectionData = new List(0); obj.sharedInjectionData.Add(ExpandDungeonFlow.HollowsInjectionData); obj.Initialize(); obj.AddNodeToFlow(val, (DungeonFlowNode)null); obj.AddNodeToFlow(val8, val); obj.AddNodeToFlow(val5, val); obj.AddNodeToFlow(val6, val5); obj.AddNodeToFlow(val7, val6); obj.AddNodeToFlow(val10, val8); obj.AddNodeToFlow(val11, val10); obj.AddNodeToFlow(val9, val8); obj.AddNodeToFlow(val3, val9); obj.AddNodeToFlow(val4, val3); obj.AddNodeToFlow(val2, val4); obj.AddNodeToFlow(val12, val8); obj.AddNodeToFlow(val13, val12); obj.AddNodeToFlow(val14, val13); obj.FirstNode = val; return obj; } } [HarmonyPatch] public class ExpandDungeonFlow { public static bool isGlitchFlow = false; public static List GlitchChestFlows = new List { "custom_glitch_flow", "custom_glitchchest_flow", "apache_fucking_around_flow" }; public static DungeonFlow[] KnownFlows; public static SharedInjectionData BaseSharedInjectionData; public static SharedInjectionData GungeonInjectionData; public static SharedInjectionData SewersInjectionData; public static SharedInjectionData HollowsInjectionData; public static SharedInjectionData CastleInjectionData; public static SharedInjectionData JungleInjectionData; public static SharedInjectionData BellyInjectionData; public static SharedInjectionData PhobosInjectionData; public static SharedInjectionData FutureInjectionData; public static SharedInjectionData OfficeInjectionData; public static ProceduralFlowModifierData JunkSecretRoomInjector; public static ProceduralFlowModifierData SecretFloorEntranceInjector; public static ProceduralFlowModifierData SecretMiniElevatorInjector; public static ProceduralFlowModifierData SecretJungleEntranceInjector; public static ProceduralFlowModifierData SecretFutureSignRoomInjector; public static ProceduralFlowModifierData BellySpecialEntranceRoomInjector; public static ProceduralFlowModifierData BellySpecialMonsterRoomInjector; public static DungeonFlowSubtypeRestriction BaseSubTypeRestrictions = new DungeonFlowSubtypeRestriction { baseCategoryRestriction = (RoomCategory)2, normalSubcategoryRestriction = (RoomNormalSubCategory)1, bossSubcategoryRestriction = (RoomBossSubCategory)0, specialSubcategoryRestriction = (RoomSpecialSubCategory)0, secretSubcategoryRestriction = (RoomSecretSubCategory)0, maximumRoomsOfSubtype = 1 }; public static GenericRoomTable m_KeepJungleEntranceRooms; public static ProceduralFlowModifierData RickRollSecretRoomInjector; public static SharedInjectionData CustomSecretFloorSharedInjectionData; public static DungeonFlow GetRandomFlowFromNextDungeonPrefabForGlitchFloor() { //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Invalid comparison between Unknown and I4 int? num = null; if (GameManager.HasInstance) { num = ReflectionHelpers.ReflectGetField(typeof(GameManager), "nextLevelIndex", GameManager.Instance); } Dungeon val = null; bool flag = true; bool flag2 = false; if (num.HasValue) { switch (num.Value) { case 2: val = DungeonDatabase.GetOrLoadByName("Base_Castle"); break; case 3: val = DungeonDatabase.GetOrLoadByName("Base_Gungeon"); break; case 4: val = DungeonDatabase.GetOrLoadByName("Base_Mines"); break; case 5: val = DungeonDatabase.GetOrLoadByName("Base_Catacombs"); break; case 6: val = DungeonDatabase.GetOrLoadByName("Base_Forge"); break; case 7: val = DungeonDatabase.GetOrLoadByName("Base_Bullethell"); isGlitchFlow = true; flag2 = true; break; default: val = DungeonDatabase.GetOrLoadByName("Base_Mines"); break; } } DungeonFlow orLoadByName = FlowDatabase.GetOrLoadByName(BraveUtility.RandomElement(GlitchChestFlows)); DungeonFlow val2 = null; if (val != null && val.PatternSettings?.flows?.Count > 0) { val2 = FlowHelpers.DuplicateDungeonFlow(BraveUtility.RandomElement(val.PatternSettings.flows)); } if (Object.op_Implicit((Object)(object)val2)) { string name = ((Object)val2).name + "_glitched"; ((Object)val2).name = name; } val = null; if (flag2 && Object.op_Implicit((Object)(object)val2)) { return val2; } if (Object.op_Implicit((Object)(object)val2)) { foreach (DungeonFlowNode allNode in val2.AllNodes) { if ((int)allNode.roomCategory == 3) { if (Object.op_Implicit((Object)(object)ExpandPrefabs.doublebeholstertable)) { allNode.overrideRoomTable = ExpandPrefabs.doublebeholstertable; allNode.overrideExactRoom = null; flag = false; } else if (Object.op_Implicit((Object)(object)ExpandPrefabs.doublebeholsterroom01)) { allNode.overrideExactRoom = ExpandPrefabs.doublebeholsterroom01; allNode.overrideRoomTable = null; flag = false; } break; } } } if (flag | !Object.op_Implicit((Object)(object)val2)) { return orLoadByName; } return val2; } [HarmonyPatch(typeof(FlowDatabase), "GetOrLoadByName", new Type[] { typeof(string) })] [HarmonyPrefix] private static bool GetOrLoadByNamePatch(FlowDatabase __instance, string name, ref DungeonFlow __result) { if (KnownFlows == null) { return true; } if (KnownFlows.Length == 0) { return true; } string text = name; if (text.Contains("/")) { text = name.Substring(name.LastIndexOf("/") + 1); } if (text.ToLower().EndsWith("secret_expandeddoublebeholster_flow")) { __result = GetRandomFlowFromNextDungeonPrefabForGlitchFloor(); return false; } if (text.ToLower().EndsWith("secret_doublebeholster_flow_orig")) { __result = LoadOfficialFlow("secret_doublebeholster_flow"); return false; } DungeonFlow[] knownFlows = KnownFlows; foreach (DungeonFlow val in knownFlows) { if (!string.IsNullOrEmpty(((Object)val).name) && text.ToLower() == ((Object)val).name.ToLower()) { __result = val; return false; } } return true; } public static DungeonFlow LoadOfficialFlow(string target) { string text = target; if (text.Contains("/")) { text = target.Substring(target.LastIndexOf("/") + 1); } AssetBundle obj = ResourceManager.LoadAssetBundle("flows_base_001"); DebugTime.RecordStartTime(); DungeonFlow val = obj.LoadAsset(text); DebugTime.Log("AssetBundle.LoadAsset({0})", new object[1] { text }); if ((Object)(object)val == (Object)null) { Debug.Log((object)"ERROR: Requested DungeonFlow not found!\nCheck that you provided correct DungeonFlow name and that it actually exists!"); return null; } return val; } public static DungeonFlowNode GenerateDefaultNode(DungeonFlow targetflow, RoomCategory roomType, PrototypeDungeonRoom overrideRoom = null, GenericRoomTable overrideTable = null, bool oneWayLoopTarget = false, bool isWarpWingNode = false, string nodeGUID = null, NodePriority priority = 0, float percentChance = 1f, bool handlesOwnWarping = true) { //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_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) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: 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_0057: 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_0069: 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_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) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_009a: 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_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00af: 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_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Expected O, but got Unknown if (string.IsNullOrEmpty(nodeGUID)) { nodeGUID = Guid.NewGuid().ToString(); } return new DungeonFlowNode(targetflow) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = roomType, percentChance = percentChance, priority = priority, overrideExactRoom = overrideRoom, overrideRoomTable = overrideTable, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = isWarpWingNode, handlesOwnWarping = handlesOwnWarping, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, guidAsString = nodeGUID, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = oneWayLoopTarget, flow = targetflow }; } public static List RetrieveSharedInjectionDataListFromCurrentFloor() { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Invalid comparison between Unknown and I4 //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Invalid comparison between Unknown and I4 //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Invalid comparison between Unknown and I4 //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Invalid comparison between Unknown and I4 //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Invalid comparison between Unknown and I4 //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Invalid comparison between Unknown and I4 Dungeon val = GameManager.Instance.CurrentlyGeneratingDungeonPrefab; if ((Object)(object)val == (Object)null) { val = GameManager.Instance.Dungeon; if ((Object)(object)val == (Object)null) { return new List(0); } } if (((int)val.tileIndices.tilesetId == 64) | ((int)val.tileIndices.tilesetId == 1024) | ((int)val.tileIndices.tilesetId == 16384) | ((int)val.tileIndices.tilesetId == 128) | ((int)val.tileIndices.tilesetId == 2048) | ((int)val.tileIndices.tilesetId == 32768)) { return new List(0); } List result = new List(0); if (val.PatternSettings != null && val.PatternSettings.flows != null && val.PatternSettings.flows.Count > 0 && val.PatternSettings.flows[0].sharedInjectionData != null && val.PatternSettings.flows[0].sharedInjectionData.Count > 0) { result = val.PatternSettings.flows[0].sharedInjectionData; } return result; } public static void InitDungeonFlows(AssetBundle sharedAssets2, bool refreshFlows = false) { //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_011a: 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_012c: 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_0145: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_0157: 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_0165: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Expected O, but got Unknown //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Expected O, but got Unknown //IL_024a: Unknown result type (might be due to invalid IL or missing references) //IL_024f: Unknown result type (might be due to invalid IL or missing references) //IL_0251: Unknown result type (might be due to invalid IL or missing references) //IL_0256: Unknown result type (might be due to invalid IL or missing references) //IL_0258: Unknown result type (might be due to invalid IL or missing references) //IL_025d: Unknown result type (might be due to invalid IL or missing references) //IL_025f: Unknown result type (might be due to invalid IL or missing references) //IL_0264: Unknown result type (might be due to invalid IL or missing references) //IL_026b: Unknown result type (might be due to invalid IL or missing references) //IL_0276: Unknown result type (might be due to invalid IL or missing references) //IL_0281: Unknown result type (might be due to invalid IL or missing references) //IL_0283: Unknown result type (might be due to invalid IL or missing references) //IL_0288: Unknown result type (might be due to invalid IL or missing references) //IL_028f: Unknown result type (might be due to invalid IL or missing references) //IL_0296: 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) //IL_029d: Unknown result type (might be due to invalid IL or missing references) //IL_02a4: Unknown result type (might be due to invalid IL or missing references) //IL_02ab: Unknown result type (might be due to invalid IL or missing references) //IL_02b2: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02bf: Unknown result type (might be due to invalid IL or missing references) //IL_02c4: Unknown result type (might be due to invalid IL or missing references) //IL_02c7: Unknown result type (might be due to invalid IL or missing references) //IL_02cd: Expected O, but got Unknown //IL_02f9: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Expected O, but got Unknown //IL_0389: Unknown result type (might be due to invalid IL or missing references) //IL_038e: Unknown result type (might be due to invalid IL or missing references) //IL_0390: Unknown result type (might be due to invalid IL or missing references) //IL_0395: Unknown result type (might be due to invalid IL or missing references) //IL_0397: Unknown result type (might be due to invalid IL or missing references) //IL_039c: Unknown result type (might be due to invalid IL or missing references) //IL_039e: Unknown result type (might be due to invalid IL or missing references) //IL_03a3: Unknown result type (might be due to invalid IL or missing references) //IL_03aa: Unknown result type (might be due to invalid IL or missing references) //IL_03b5: Unknown result type (might be due to invalid IL or missing references) //IL_03c0: Unknown result type (might be due to invalid IL or missing references) //IL_03c2: Unknown result type (might be due to invalid IL or missing references) //IL_03c7: Unknown result type (might be due to invalid IL or missing references) //IL_03ce: Unknown result type (might be due to invalid IL or missing references) //IL_03d5: Unknown result type (might be due to invalid IL or missing references) //IL_03d7: Unknown result type (might be due to invalid IL or missing references) //IL_03dc: Unknown result type (might be due to invalid IL or missing references) //IL_03e3: Unknown result type (might be due to invalid IL or missing references) //IL_03ea: Unknown result type (might be due to invalid IL or missing references) //IL_03f1: Unknown result type (might be due to invalid IL or missing references) //IL_03f8: Unknown result type (might be due to invalid IL or missing references) //IL_03fe: Unknown result type (might be due to invalid IL or missing references) //IL_0403: Unknown result type (might be due to invalid IL or missing references) //IL_0406: Unknown result type (might be due to invalid IL or missing references) //IL_040c: Expected O, but got Unknown //IL_0474: Unknown result type (might be due to invalid IL or missing references) //IL_0479: Unknown result type (might be due to invalid IL or missing references) //IL_0484: Unknown result type (might be due to invalid IL or missing references) //IL_048b: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_04a4: Unknown result type (might be due to invalid IL or missing references) //IL_04ab: Unknown result type (might be due to invalid IL or missing references) //IL_04b6: Unknown result type (might be due to invalid IL or missing references) //IL_04bd: Unknown result type (might be due to invalid IL or missing references) //IL_04c4: Unknown result type (might be due to invalid IL or missing references) //IL_04cf: Unknown result type (might be due to invalid IL or missing references) //IL_04da: Unknown result type (might be due to invalid IL or missing references) //IL_04e5: Unknown result type (might be due to invalid IL or missing references) //IL_04ec: Unknown result type (might be due to invalid IL or missing references) //IL_04f8: Unknown result type (might be due to invalid IL or missing references) //IL_04ff: Unknown result type (might be due to invalid IL or missing references) //IL_0506: Unknown result type (might be due to invalid IL or missing references) //IL_050d: Unknown result type (might be due to invalid IL or missing references) //IL_0519: Expected O, but got Unknown //IL_0519: Unknown result type (might be due to invalid IL or missing references) //IL_051e: Unknown result type (might be due to invalid IL or missing references) //IL_0529: Unknown result type (might be due to invalid IL or missing references) //IL_0530: Unknown result type (might be due to invalid IL or missing references) //IL_0537: Unknown result type (might be due to invalid IL or missing references) //IL_0549: Unknown result type (might be due to invalid IL or missing references) //IL_0550: Unknown result type (might be due to invalid IL or missing references) //IL_055b: Unknown result type (might be due to invalid IL or missing references) //IL_0562: Unknown result type (might be due to invalid IL or missing references) //IL_0569: Unknown result type (might be due to invalid IL or missing references) //IL_0574: Unknown result type (might be due to invalid IL or missing references) //IL_057f: Unknown result type (might be due to invalid IL or missing references) //IL_058a: Unknown result type (might be due to invalid IL or missing references) //IL_0591: Unknown result type (might be due to invalid IL or missing references) //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_05a4: Unknown result type (might be due to invalid IL or missing references) //IL_05ab: Unknown result type (might be due to invalid IL or missing references) //IL_05b2: Unknown result type (might be due to invalid IL or missing references) //IL_05be: Expected O, but got Unknown //IL_05dd: Unknown result type (might be due to invalid IL or missing references) //IL_05e2: Unknown result type (might be due to invalid IL or missing references) //IL_0652: Expected O, but got Unknown //IL_0652: Unknown result type (might be due to invalid IL or missing references) //IL_0659: Expected O, but got Unknown //IL_06e2: Unknown result type (might be due to invalid IL or missing references) //IL_06e7: Unknown result type (might be due to invalid IL or missing references) //IL_06e9: Unknown result type (might be due to invalid IL or missing references) //IL_06ee: Unknown result type (might be due to invalid IL or missing references) //IL_06f0: Unknown result type (might be due to invalid IL or missing references) //IL_06f5: Unknown result type (might be due to invalid IL or missing references) //IL_06f7: Unknown result type (might be due to invalid IL or missing references) //IL_06fc: Unknown result type (might be due to invalid IL or missing references) //IL_0703: Unknown result type (might be due to invalid IL or missing references) //IL_070e: Unknown result type (might be due to invalid IL or missing references) //IL_0719: Unknown result type (might be due to invalid IL or missing references) //IL_071b: Unknown result type (might be due to invalid IL or missing references) //IL_0720: Unknown result type (might be due to invalid IL or missing references) //IL_0727: Unknown result type (might be due to invalid IL or missing references) //IL_072e: Unknown result type (might be due to invalid IL or missing references) //IL_0730: Unknown result type (might be due to invalid IL or missing references) //IL_0735: Unknown result type (might be due to invalid IL or missing references) //IL_073c: Unknown result type (might be due to invalid IL or missing references) //IL_0743: Unknown result type (might be due to invalid IL or missing references) //IL_074a: Unknown result type (might be due to invalid IL or missing references) //IL_0751: Unknown result type (might be due to invalid IL or missing references) //IL_0757: Unknown result type (might be due to invalid IL or missing references) //IL_075c: Unknown result type (might be due to invalid IL or missing references) //IL_075f: Unknown result type (might be due to invalid IL or missing references) //IL_0765: Expected O, but got Unknown //IL_0791: Unknown result type (might be due to invalid IL or missing references) //IL_0798: Expected O, but got Unknown //IL_0821: Unknown result type (might be due to invalid IL or missing references) //IL_0826: Unknown result type (might be due to invalid IL or missing references) //IL_0828: Unknown result type (might be due to invalid IL or missing references) //IL_082d: Unknown result type (might be due to invalid IL or missing references) //IL_082f: Unknown result type (might be due to invalid IL or missing references) //IL_0834: Unknown result type (might be due to invalid IL or missing references) //IL_0836: Unknown result type (might be due to invalid IL or missing references) //IL_083b: Unknown result type (might be due to invalid IL or missing references) //IL_0842: Unknown result type (might be due to invalid IL or missing references) //IL_084d: Unknown result type (might be due to invalid IL or missing references) //IL_0858: Unknown result type (might be due to invalid IL or missing references) //IL_085a: Unknown result type (might be due to invalid IL or missing references) //IL_085f: Unknown result type (might be due to invalid IL or missing references) //IL_0866: Unknown result type (might be due to invalid IL or missing references) //IL_086d: Unknown result type (might be due to invalid IL or missing references) //IL_086f: Unknown result type (might be due to invalid IL or missing references) //IL_0874: Unknown result type (might be due to invalid IL or missing references) //IL_087b: Unknown result type (might be due to invalid IL or missing references) //IL_0882: Unknown result type (might be due to invalid IL or missing references) //IL_0889: Unknown result type (might be due to invalid IL or missing references) //IL_0890: Unknown result type (might be due to invalid IL or missing references) //IL_0896: Unknown result type (might be due to invalid IL or missing references) //IL_089b: Unknown result type (might be due to invalid IL or missing references) //IL_089e: Unknown result type (might be due to invalid IL or missing references) //IL_08a4: Expected O, but got Unknown //IL_08a6: Unknown result type (might be due to invalid IL or missing references) //IL_08ab: Unknown result type (might be due to invalid IL or missing references) //IL_08ad: Unknown result type (might be due to invalid IL or missing references) //IL_08b2: Unknown result type (might be due to invalid IL or missing references) //IL_08b4: Unknown result type (might be due to invalid IL or missing references) //IL_08b9: Unknown result type (might be due to invalid IL or missing references) //IL_08bb: Unknown result type (might be due to invalid IL or missing references) //IL_08c0: Unknown result type (might be due to invalid IL or missing references) //IL_08c7: Unknown result type (might be due to invalid IL or missing references) //IL_08d2: Unknown result type (might be due to invalid IL or missing references) //IL_08dd: Unknown result type (might be due to invalid IL or missing references) //IL_08df: Unknown result type (might be due to invalid IL or missing references) //IL_08e4: Unknown result type (might be due to invalid IL or missing references) //IL_08eb: Unknown result type (might be due to invalid IL or missing references) //IL_08f2: Unknown result type (might be due to invalid IL or missing references) //IL_08f4: Unknown result type (might be due to invalid IL or missing references) //IL_08f9: Unknown result type (might be due to invalid IL or missing references) //IL_0900: Unknown result type (might be due to invalid IL or missing references) //IL_0907: Unknown result type (might be due to invalid IL or missing references) //IL_090e: Unknown result type (might be due to invalid IL or missing references) //IL_0915: Unknown result type (might be due to invalid IL or missing references) //IL_091b: Unknown result type (might be due to invalid IL or missing references) //IL_0920: Unknown result type (might be due to invalid IL or missing references) //IL_0923: Unknown result type (might be due to invalid IL or missing references) //IL_0929: Expected O, but got Unknown //IL_09a5: Unknown result type (might be due to invalid IL or missing references) //IL_09aa: Unknown result type (might be due to invalid IL or missing references) //IL_09b5: Unknown result type (might be due to invalid IL or missing references) //IL_09bc: Unknown result type (might be due to invalid IL or missing references) //IL_09c3: Unknown result type (might be due to invalid IL or missing references) //IL_09d5: Unknown result type (might be due to invalid IL or missing references) //IL_09dc: Unknown result type (might be due to invalid IL or missing references) //IL_09e7: Unknown result type (might be due to invalid IL or missing references) //IL_09ee: Unknown result type (might be due to invalid IL or missing references) //IL_09f5: Unknown result type (might be due to invalid IL or missing references) //IL_0a00: Unknown result type (might be due to invalid IL or missing references) //IL_0a0b: Unknown result type (might be due to invalid IL or missing references) //IL_0a16: Unknown result type (might be due to invalid IL or missing references) //IL_0a1d: Unknown result type (might be due to invalid IL or missing references) //IL_0a29: Unknown result type (might be due to invalid IL or missing references) //IL_0a30: Unknown result type (might be due to invalid IL or missing references) //IL_0a37: Unknown result type (might be due to invalid IL or missing references) //IL_0a3e: Unknown result type (might be due to invalid IL or missing references) //IL_0a4a: Expected O, but got Unknown Dungeon orLoadByName = DungeonDatabase.GetOrLoadByName("Base_Tutorial"); Dungeon orLoadByName2 = DungeonDatabase.GetOrLoadByName("Base_Castle"); Dungeon orLoadByName3 = DungeonDatabase.GetOrLoadByName("Base_Sewer"); Dungeon orLoadByName4 = DungeonDatabase.GetOrLoadByName("Base_Gungeon"); Dungeon orLoadByName5 = DungeonDatabase.GetOrLoadByName("Base_Cathedral"); Dungeon orLoadByName6 = DungeonDatabase.GetOrLoadByName("Base_Mines"); Dungeon orLoadByName7 = DungeonDatabase.GetOrLoadByName("Base_ResourcefulRat"); Dungeon orLoadByName8 = DungeonDatabase.GetOrLoadByName("Base_Catacombs"); Dungeon orLoadByName9 = DungeonDatabase.GetOrLoadByName("Base_Nakatomi"); Dungeon orLoadByName10 = DungeonDatabase.GetOrLoadByName("Base_Forge"); Dungeon orLoadByName11 = DungeonDatabase.GetOrLoadByName("Base_BulletHell"); BaseSharedInjectionData = sharedAssets2.LoadAsset("Base Shared Injection Data"); GungeonInjectionData = orLoadByName4.PatternSettings.flows[0].sharedInjectionData[1]; SewersInjectionData = orLoadByName3.PatternSettings.flows[0].sharedInjectionData[1]; HollowsInjectionData = orLoadByName8.PatternSettings.flows[0].sharedInjectionData[1]; CastleInjectionData = orLoadByName2.PatternSettings.flows[0].sharedInjectionData[0]; JunkSecretRoomInjector = new ProceduralFlowModifierData { annotation = "Tiny Secret Room", DEBUG_FORCE_SPAWN = false, OncePerRun = false, placementRules = new List { (FlowModifierPlacementType)4 }, roomTable = null, exactRoom = ExpandRoomPrefabs.Expand_TinySecret, IsWarpWing = false, RequiresMasteryToken = false, chanceToLock = 0f, selectionWeight = 1f, chanceToSpawn = 1f, RequiredValidPlaceable = null, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], CanBeForcedSecret = true, RandomNodeChildMinDistanceFromEntrance = 0, exactSecondaryRoom = null, framedCombatNodes = 0 }; ProceduralFlowModifierData val = new ProceduralFlowModifierData(); val.annotation = "Secret Belly Entrance Room"; val.DEBUG_FORCE_SPAWN = false; val.OncePerRun = false; val.placementRules = new List { (FlowModifierPlacementType)1 }; val.roomTable = null; val.exactRoom = ExpandRoomPrefabs.Expand_Gungeon_BellyEntranceRoom; val.IsWarpWing = false; val.RequiresMasteryToken = false; val.chanceToLock = 0f; val.selectionWeight = 1f; val.chanceToSpawn = 1f; val.RequiredValidPlaceable = null; val.prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[1] { new DungeonPrerequisite { prerequisiteOperation = (PrerequisiteOperation)1, prerequisiteType = (PrerequisiteType)3, requiredTileset = (ValidTilesets)1, requireTileset = true, comparisonValue = 1f, encounteredObjectGuid = string.Empty, maxToCheck = (TrackedMaximums)0, requireDemoMode = false, requireCharacter = false, requiredCharacter = (PlayableCharacters)0, requireFlag = false, useSessionStatValue = false, encounteredRoom = null, requiredNumberOfEncounters = -1, saveFlagToCheck = (GungeonFlags)2001, statToCheck = (TrackedStats)57 } }; val.CanBeForcedSecret = true; val.RandomNodeChildMinDistanceFromEntrance = 0; val.exactSecondaryRoom = null; val.framedCombatNodes = 0; BellySpecialEntranceRoomInjector = val; val = new ProceduralFlowModifierData(); val.annotation = "Secret Belly Monster Room"; val.DEBUG_FORCE_SPAWN = false; val.OncePerRun = false; val.placementRules = new List { (FlowModifierPlacementType)6 }; val.roomTable = null; val.exactRoom = ExpandRoomPrefabs.Expand_Gungeon_HiddenMonsterRoom; val.IsWarpWing = true; val.RequiresMasteryToken = false; val.chanceToLock = 0f; val.selectionWeight = 1f; val.chanceToSpawn = 1f; val.RequiredValidPlaceable = null; val.prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[1] { new DungeonPrerequisite { prerequisiteOperation = (PrerequisiteOperation)1, prerequisiteType = (PrerequisiteType)3, requiredTileset = (ValidTilesets)1, requireTileset = true, comparisonValue = 1f, encounteredObjectGuid = string.Empty, maxToCheck = (TrackedMaximums)0, requireDemoMode = false, requireCharacter = false, requiredCharacter = (PlayableCharacters)0, requireFlag = false, useSessionStatValue = false, encounteredRoom = null, requiredNumberOfEncounters = -1, saveFlagToCheck = (GungeonFlags)2001, statToCheck = (TrackedStats)57 } }; val.CanBeForcedSecret = true; val.RandomNodeChildMinDistanceFromEntrance = 0; val.exactSecondaryRoom = null; val.framedCombatNodes = 0; BellySpecialMonsterRoomInjector = val; GungeonInjectionData.InjectionData.Add(BellySpecialEntranceRoomInjector); GungeonInjectionData.InjectionData.Add(BellySpecialMonsterRoomInjector); SewersInjectionData.InjectionData.Add(JunkSecretRoomInjector); SecretFloorEntranceInjector = new ProceduralFlowModifierData { annotation = "Secret Floor Entrance Room", DEBUG_FORCE_SPAWN = false, OncePerRun = false, placementRules = new List { (FlowModifierPlacementType)6 }, roomTable = null, exactRoom = ExpandRoomPrefabs.SecretExitRoom2, IsWarpWing = true, RequiresMasteryToken = false, chanceToLock = 0f, selectionWeight = 1f, chanceToSpawn = 1f, RequiredValidPlaceable = null, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], CanBeForcedSecret = true, RandomNodeChildMinDistanceFromEntrance = 0, exactSecondaryRoom = null, framedCombatNodes = 0 }; SecretMiniElevatorInjector = new ProceduralFlowModifierData { annotation = "Secret MiniElevator Room with Glitched Rats", DEBUG_FORCE_SPAWN = false, OncePerRun = false, placementRules = new List { (FlowModifierPlacementType)4 }, roomTable = null, exactRoom = ExpandRoomPrefabs.SecretRatEntranceRoom, IsWarpWing = false, RequiresMasteryToken = false, chanceToLock = 0.25f, selectionWeight = 1f, chanceToSpawn = 1f, RequiredValidPlaceable = null, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], CanBeForcedSecret = true, RandomNodeChildMinDistanceFromEntrance = 0, exactSecondaryRoom = null, framedCombatNodes = 0 }; m_KeepJungleEntranceRooms = ScriptableObject.CreateInstance(); m_KeepJungleEntranceRooms.includedRoomTables = new List(0); m_KeepJungleEntranceRooms.includedRooms = new WeightedRoomCollection { elements = new List { ExpandRoomPrefabs.GenerateWeightedRoom(ExpandRoomPrefabs.Expand_Keep_TreeRoom), ExpandRoomPrefabs.GenerateWeightedRoom(ExpandRoomPrefabs.Expand_Keep_TreeRoom2), ExpandRoomPrefabs.GenerateWeightedRoom(ExpandRoomPrefabs.Expand_Keep_TreeRoom3), ExpandRoomPrefabs.GenerateWeightedRoom(ExpandRoomPrefabs.Expand_Keep_TreeRoom4) } }; val = new ProceduralFlowModifierData(); val.annotation = "Secret Jungle Entrance Room"; val.DEBUG_FORCE_SPAWN = false; val.OncePerRun = false; val.placementRules = new List { (FlowModifierPlacementType)4 }; val.roomTable = m_KeepJungleEntranceRooms; val.exactRoom = null; val.IsWarpWing = false; val.RequiresMasteryToken = false; val.chanceToLock = 0f; val.selectionWeight = 1f; val.chanceToSpawn = 1f; val.RequiredValidPlaceable = null; val.prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[1] { new DungeonPrerequisite { prerequisiteOperation = (PrerequisiteOperation)1, prerequisiteType = (PrerequisiteType)3, requiredTileset = (ValidTilesets)2, requireTileset = true, comparisonValue = 1f, encounteredObjectGuid = string.Empty, maxToCheck = (TrackedMaximums)0, requireDemoMode = false, requireCharacter = false, requiredCharacter = (PlayableCharacters)0, requireFlag = false, useSessionStatValue = false, encounteredRoom = null, requiredNumberOfEncounters = -1, saveFlagToCheck = (GungeonFlags)2001, statToCheck = (TrackedStats)57 } }; val.CanBeForcedSecret = true; val.RandomNodeChildMinDistanceFromEntrance = 0; val.exactSecondaryRoom = null; val.framedCombatNodes = 0; SecretJungleEntranceInjector = val; val = new ProceduralFlowModifierData(); val.annotation = "Secret SignPost Entrance Room"; val.DEBUG_FORCE_SPAWN = false; val.OncePerRun = false; val.placementRules = new List { (FlowModifierPlacementType)4 }; val.roomTable = null; val.exactRoom = ExpandRoomPrefabs.Expand_FutureSignPostRoom; val.IsWarpWing = false; val.RequiresMasteryToken = false; val.chanceToLock = 0f; val.selectionWeight = 1f; val.chanceToSpawn = 0.6f; val.RequiredValidPlaceable = null; val.prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[2] { new DungeonPrerequisite { prerequisiteOperation = (PrerequisiteOperation)1, prerequisiteType = (PrerequisiteType)3, requiredTileset = (ValidTilesets)2, requireTileset = true, comparisonValue = 1f, encounteredObjectGuid = string.Empty, maxToCheck = (TrackedMaximums)0, requireDemoMode = false, requireCharacter = false, requiredCharacter = (PlayableCharacters)0, requireFlag = true, useSessionStatValue = false, encounteredRoom = null, requiredNumberOfEncounters = -1, saveFlagToCheck = (GungeonFlags)300020, statToCheck = (TrackedStats)71 }, new DungeonPrerequisite { prerequisiteOperation = (PrerequisiteOperation)2, prerequisiteType = (PrerequisiteType)7, requiredTileset = (ValidTilesets)4, requireTileset = false, comparisonValue = 1f, encounteredObjectGuid = string.Empty, maxToCheck = (TrackedMaximums)0, requireDemoMode = false, requireCharacter = false, requiredCharacter = (PlayableCharacters)0, requireFlag = true, useSessionStatValue = false, encounteredRoom = null, requiredNumberOfEncounters = 1, saveFlagToCheck = (GungeonFlags)300020, statToCheck = (TrackedStats)71 } }; val.CanBeForcedSecret = true; val.RandomNodeChildMinDistanceFromEntrance = 1; val.exactSecondaryRoom = null; val.framedCombatNodes = 0; SecretFutureSignRoomInjector = val; HollowsInjectionData.InjectionData.Add(SecretFloorEntranceInjector); HollowsInjectionData.InjectionData.Add(SecretMiniElevatorInjector); CastleInjectionData.InjectionData.Add(SecretJungleEntranceInjector); CastleInjectionData.InjectionData.Add(SecretFutureSignRoomInjector); RickRollSecretRoomInjector = new ProceduralFlowModifierData { annotation = "RickRoll Secret Room", DEBUG_FORCE_SPAWN = false, OncePerRun = false, placementRules = new List { (FlowModifierPlacementType)1 }, roomTable = null, exactRoom = ExpandRoomPrefabs.Expand_RickRollSecret, IsWarpWing = false, RequiresMasteryToken = false, chanceToLock = 0f, selectionWeight = 1f, chanceToSpawn = 0.25f, RequiredValidPlaceable = null, prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[0], CanBeForcedSecret = true, RandomNodeChildMinDistanceFromEntrance = 1, exactSecondaryRoom = null, framedCombatNodes = 0 }; CustomSecretFloorSharedInjectionData = ScriptableObject.CreateInstance(); ((Object)CustomSecretFloorSharedInjectionData).name = "Rick Roll Secret Room Injection Data"; CustomSecretFloorSharedInjectionData.InjectionData = new List { RickRollSecretRoomInjector }; CustomSecretFloorSharedInjectionData.UseInvalidWeightAsNoInjection = true; CustomSecretFloorSharedInjectionData.IsNPCCell = false; CustomSecretFloorSharedInjectionData.PreventInjectionOfFailedPrerequisites = false; CustomSecretFloorSharedInjectionData.OnlyOne = false; CustomSecretFloorSharedInjectionData.ChanceToSpawnOne = 1f; CustomSecretFloorSharedInjectionData.AttachedInjectionData = new List(0); BuildFutureInjectionData(); FutureInjectionData.InjectionData.Add(JunkSecretRoomInjector); PhobosInjectionData = ScriptableObject.CreateInstance(); ((Object)PhobosInjectionData).name = "Phobos Common Injection Data"; PhobosInjectionData.UseInvalidWeightAsNoInjection = true; PhobosInjectionData.PreventInjectionOfFailedPrerequisites = false; PhobosInjectionData.IsNPCCell = false; PhobosInjectionData.IgnoreUnmetPrerequisiteEntries = false; PhobosInjectionData.OnlyOne = false; PhobosInjectionData.ChanceToSpawnOne = 0.5f; PhobosInjectionData.AttachedInjectionData = new List(0); PhobosInjectionData.InjectionData = new List(0); OfficeInjectionData = ScriptableObject.CreateInstance(); ((Object)OfficeInjectionData).name = "Office Common Injection Data"; OfficeInjectionData.UseInvalidWeightAsNoInjection = true; OfficeInjectionData.PreventInjectionOfFailedPrerequisites = false; OfficeInjectionData.IsNPCCell = false; OfficeInjectionData.IgnoreUnmetPrerequisiteEntries = false; OfficeInjectionData.OnlyOne = false; OfficeInjectionData.ChanceToSpawnOne = 0.5f; OfficeInjectionData.AttachedInjectionData = new List(0); OfficeInjectionData.InjectionData = new List(0); List list = new List(); BossrushFlows.InitBossrushFlows(); list.Add(custom_glitchchest_flow.Custom_GlitchChest_Flow); list.Add(test_west_floor_03a_flow.TEST_West_Floor_03a_Flow); list.Add(demo_stage_flow.DEMO_STAGE_FLOW); list.Add(complex_flow_test.Complex_Flow_Test); list.Add(custom_glitch_flow.Custom_Glitch_Flow); list.Add(really_big_flow.Really_Big_Flow); list.Add(fruit_loops.Fruit_Loops); list.Add(custom_glitchchestalt_flow.Custom_GlitchChestAlt_Flow); list.Add(test_traproom_flow.Test_TrapRoom_Flow); list.Add(test_customroom_flow.Test_CustomRoom_Flow); list.Add(apache_fucking_around_flow.Apache_Fucking_Around_Flow); list.Add(f1b_jungle_flow_01.F1b_Jungle_Flow_01); list.Add(f1b_jungle_flow_02.F1b_Jungle_Flow_02); list.Add(f2b_belly_flow_01.F2b_Belly_Flow_01); list.Add(f4c_west_flow_01.F4c_West_Flow_01); list.Add(f0b_phobos_flows.F0b_Phobos_Flow_01); list.Add(f0b_phobos_flows.F0b_Phobos_Flow_02); list.Add(f0b_office_flows.F0b_Office_Flow_01); list.Add(f1b_future_flows.F1b_Future_Flow_01); list.Add(f1b_future_flows.F1b_Future_Flow_02); list.Add(backrooms_flow_01.BackRooms_Flow_01); list.Add(backrooms_flow_02.BackRooms_Flow_02); list.Add(backrooms_flow_03.BackRooms_Flow_03); list.Add(BossrushFlows.Bossrush_01_Castle); list.Add(BossrushFlows.Bossrush_01a_Sewer); list.Add(BossrushFlows.Bossrush_02_Gungeon); list.Add(BossrushFlows.Bossrush_02a_Cathedral); list.Add(BossrushFlows.Bossrush_03_Mines); list.Add(BossrushFlows.Bossrush_04_Catacombs); list.Add(BossrushFlows.Bossrush_05_Forge); list.Add(BossrushFlows.Bossrush_06_BulletHell); list.Add(BossrushFlows.MiniBossrush_01); foreach (DungeonFlow flow in orLoadByName.PatternSettings.flows) { DungeonFlow val2 = FlowHelpers.DuplicateDungeonFlow(flow); ((Object)val2).name = ((Object)val2).name + "_Copy"; list.Add(val2); } foreach (DungeonFlow flow2 in orLoadByName2.PatternSettings.flows) { DungeonFlow val3 = FlowHelpers.DuplicateDungeonFlow(flow2); ((Object)val3).name = ((Object)val3).name + "_Copy"; list.Add(val3); } foreach (DungeonFlow flow3 in orLoadByName3.PatternSettings.flows) { DungeonFlow val4 = FlowHelpers.DuplicateDungeonFlow(flow3); ((Object)val4).name = ((Object)val4).name + "_Copy"; list.Add(val4); } foreach (DungeonFlow flow4 in orLoadByName4.PatternSettings.flows) { DungeonFlow val5 = FlowHelpers.DuplicateDungeonFlow(flow4); ((Object)val5).name = ((Object)val5).name + "_Copy"; list.Add(val5); } foreach (DungeonFlow flow5 in orLoadByName5.PatternSettings.flows) { DungeonFlow val6 = FlowHelpers.DuplicateDungeonFlow(flow5); ((Object)val6).name = ((Object)val6).name + "_Copy"; list.Add(val6); } foreach (DungeonFlow flow6 in orLoadByName6.PatternSettings.flows) { DungeonFlow val7 = FlowHelpers.DuplicateDungeonFlow(flow6); ((Object)val7).name = ((Object)val7).name + "_Copy"; list.Add(val7); } foreach (DungeonFlow flow7 in orLoadByName7.PatternSettings.flows) { DungeonFlow val8 = FlowHelpers.DuplicateDungeonFlow(flow7); ((Object)val8).name = ((Object)val8).name + "_Copy"; list.Add(val8); } foreach (DungeonFlow flow8 in orLoadByName8.PatternSettings.flows) { DungeonFlow val9 = FlowHelpers.DuplicateDungeonFlow(flow8); ((Object)val9).name = ((Object)val9).name + "_Copy"; list.Add(val9); } foreach (DungeonFlow flow9 in orLoadByName9.PatternSettings.flows) { DungeonFlow val10 = FlowHelpers.DuplicateDungeonFlow(flow9); ((Object)val10).name = ((Object)val10).name + "_Copy"; list.Add(val10); } foreach (DungeonFlow flow10 in orLoadByName10.PatternSettings.flows) { DungeonFlow val11 = FlowHelpers.DuplicateDungeonFlow(flow10); ((Object)val11).name = ((Object)val11).name + "_Copy"; list.Add(val11); } foreach (DungeonFlow flow11 in orLoadByName11.PatternSettings.flows) { DungeonFlow val12 = FlowHelpers.DuplicateDungeonFlow(flow11); ((Object)val12).name = ((Object)val12).name + "_Copy"; list.Add(val12); } BossrushFlows.Bossrush_01a_Sewer.AllNodes[2].overrideExactRoom = ExpandPrefabs.tiny_exit; BossrushFlows.Bossrush_02_Gungeon.AllNodes[6].overrideExactRoom = ExpandPrefabs.tiny_exit; BossrushFlows.Bossrush_02a_Cathedral.AllNodes[2].overrideExactRoom = ExpandPrefabs.oldbulletking_room_01; BossrushFlows.Bossrush_02a_Cathedral.AllNodes[3].overrideExactRoom = ExpandPrefabs.tiny_exit; BossrushFlows.Bossrush_03_Mines.AllNodes[6].overrideExactRoom = ExpandPrefabs.tiny_exit; BossrushFlows.Bossrush_04_Catacombs.AllNodes[6].overrideExactRoom = ExpandPrefabs.tiny_exit; BossrushFlows.Bossrush_05_Forge.AllNodes[1].overrideExactRoom = ExpandPrefabs.DragunBossFoyerRoom; BossrushFlows.Bossrush_05_Forge.AllNodes[3].overrideExactRoom = ExpandPrefabs.tiny_exit; KnownFlows = list.ToArray(); orLoadByName = null; orLoadByName2 = null; orLoadByName3 = null; orLoadByName4 = null; orLoadByName5 = null; orLoadByName6 = null; orLoadByName7 = null; orLoadByName8 = null; orLoadByName9 = null; orLoadByName10 = null; orLoadByName11 = null; } public static void BuildJungleInjectionData() { //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Expected O, but got Unknown //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_0120: 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_0127: 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_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0189: Unknown result type (might be due to invalid IL or missing references) //IL_0191: Expected O, but got Unknown //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Expected O, but got Unknown //IL_023b: Unknown result type (might be due to invalid IL or missing references) //IL_0240: 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_0247: Unknown result type (might be due to invalid IL or missing references) //IL_0249: Unknown result type (might be due to invalid IL or missing references) //IL_024e: Unknown result type (might be due to invalid IL or missing references) //IL_0251: Unknown result type (might be due to invalid IL or missing references) //IL_0256: Unknown result type (might be due to invalid IL or missing references) //IL_0258: Unknown result type (might be due to invalid IL or missing references) //IL_025d: Unknown result type (might be due to invalid IL or missing references) //IL_0268: Unknown result type (might be due to invalid IL or missing references) //IL_0273: Unknown result type (might be due to invalid IL or missing references) //IL_027a: Unknown result type (might be due to invalid IL or missing references) //IL_0281: Unknown result type (might be due to invalid IL or missing references) //IL_0283: Unknown result type (might be due to invalid IL or missing references) //IL_0288: Unknown result type (might be due to invalid IL or missing references) //IL_028f: Unknown result type (might be due to invalid IL or missing references) //IL_0291: Unknown result type (might be due to invalid IL or missing references) //IL_0296: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Unknown result type (might be due to invalid IL or missing references) //IL_029f: Unknown result type (might be due to invalid IL or missing references) //IL_02a4: Unknown result type (might be due to invalid IL or missing references) //IL_02ab: Unknown result type (might be due to invalid IL or missing references) //IL_02b3: Expected O, but got Unknown //IL_02bf: Unknown result type (might be due to invalid IL or missing references) //IL_02c5: Expected O, but got Unknown //IL_035d: Unknown result type (might be due to invalid IL or missing references) //IL_0362: Unknown result type (might be due to invalid IL or missing references) //IL_0364: Unknown result type (might be due to invalid IL or missing references) //IL_0369: Unknown result type (might be due to invalid IL or missing references) //IL_036b: Unknown result type (might be due to invalid IL or missing references) //IL_0370: Unknown result type (might be due to invalid IL or missing references) //IL_0373: Unknown result type (might be due to invalid IL or missing references) //IL_0378: Unknown result type (might be due to invalid IL or missing references) //IL_037a: Unknown result type (might be due to invalid IL or missing references) //IL_037f: Unknown result type (might be due to invalid IL or missing references) //IL_038a: Unknown result type (might be due to invalid IL or missing references) //IL_0395: Unknown result type (might be due to invalid IL or missing references) //IL_039c: Unknown result type (might be due to invalid IL or missing references) //IL_03a3: Unknown result type (might be due to invalid IL or missing references) //IL_03a5: Unknown result type (might be due to invalid IL or missing references) //IL_03aa: 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_03b7: Unknown result type (might be due to invalid IL or missing references) //IL_03bc: Unknown result type (might be due to invalid IL or missing references) //IL_03c3: 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) //IL_03ca: Unknown result type (might be due to invalid IL or missing references) //IL_03d1: Unknown result type (might be due to invalid IL or missing references) //IL_03d9: Expected O, but got Unknown JungleInjectionData = ScriptableObject.CreateInstance(); ((Object)JungleInjectionData).name = "Jungle Common Injection Data"; JungleInjectionData.UseInvalidWeightAsNoInjection = true; JungleInjectionData.PreventInjectionOfFailedPrerequisites = false; JungleInjectionData.IsNPCCell = false; JungleInjectionData.IgnoreUnmetPrerequisiteEntries = false; JungleInjectionData.OnlyOne = false; JungleInjectionData.ChanceToSpawnOne = 0.5f; JungleInjectionData.AttachedInjectionData = new List(0); SharedInjectionData jungleInjectionData = JungleInjectionData; List list = new List(); ProceduralFlowModifierData val = new ProceduralFlowModifierData(); val.annotation = "Jungle Crest Room"; val.DEBUG_FORCE_SPAWN = false; val.OncePerRun = false; val.placementRules = new List { (FlowModifierPlacementType)1 }; val.roomTable = null; val.exactRoom = ExpandRoomPrefabs.Expand_Jungle_OldCrest; val.IsWarpWing = false; val.RequiresMasteryToken = false; val.chanceToLock = 0.5f; val.selectionWeight = 1f; val.chanceToSpawn = 1f; val.RequiredValidPlaceable = null; val.CanBeForcedSecret = true; val.RandomNodeChildMinDistanceFromEntrance = 0; val.exactSecondaryRoom = null; val.framedCombatNodes = 0; val.prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[1] { new DungeonPrerequisite { prerequisiteType = (PrerequisiteType)5, prerequisiteOperation = (PrerequisiteOperation)2, statToCheck = (TrackedStats)28, maxToCheck = (TrackedMaximums)0, comparisonValue = 0f, encounteredObjectGuid = string.Empty, encounteredRoom = null, requiredNumberOfEncounters = 0, requiredCharacter = (PlayableCharacters)0, requireCharacter = false, requiredTileset = (ValidTilesets)0, requireTileset = false, saveFlagToCheck = (GungeonFlags)0, requireFlag = false, requireDemoMode = false } }; list.Add(val); val = new ProceduralFlowModifierData(); val.annotation = "Bonus Chest Room"; val.DEBUG_FORCE_SPAWN = false; val.OncePerRun = false; val.placementRules = new List { (FlowModifierPlacementType)1 }; val.roomTable = null; val.exactRoom = ExpandRoomPrefabs.Expand_Jungle_RewardRoom; val.IsWarpWing = false; val.RequiresMasteryToken = false; val.chanceToLock = 0f; val.selectionWeight = 1f; val.chanceToSpawn = 1f; val.RequiredValidPlaceable = null; val.CanBeForcedSecret = true; val.RandomNodeChildMinDistanceFromEntrance = 0; val.exactSecondaryRoom = null; val.framedCombatNodes = 0; val.prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[1] { new DungeonPrerequisite { prerequisiteType = (PrerequisiteType)5, prerequisiteOperation = (PrerequisiteOperation)2, statToCheck = (TrackedStats)28, maxToCheck = (TrackedMaximums)0, comparisonValue = 0f, encounteredObjectGuid = string.Empty, encounteredRoom = null, requiredNumberOfEncounters = 0, requiredCharacter = (PlayableCharacters)0, requireCharacter = false, requiredTileset = (ValidTilesets)0, requireTileset = false, saveFlagToCheck = (GungeonFlags)0, requireFlag = false, requireDemoMode = false } }; list.Add(val); val = new ProceduralFlowModifierData(); val.annotation = "Lost Baby Dragun"; val.DEBUG_FORCE_SPAWN = false; val.OncePerRun = false; val.placementRules = new List { (FlowModifierPlacementType)4 }; val.roomTable = null; val.exactRoom = ExpandRoomPrefabs.Expand_Jungle_SecretDragun; val.IsWarpWing = false; val.RequiresMasteryToken = false; val.chanceToLock = 1f; val.selectionWeight = 1f; val.chanceToSpawn = 1f; val.RequiredValidPlaceable = null; val.CanBeForcedSecret = true; val.RandomNodeChildMinDistanceFromEntrance = 0; val.exactSecondaryRoom = null; val.framedCombatNodes = 0; val.prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[1] { new DungeonPrerequisite { prerequisiteType = (PrerequisiteType)3, prerequisiteOperation = (PrerequisiteOperation)1, statToCheck = (TrackedStats)28, maxToCheck = (TrackedMaximums)0, comparisonValue = 0f, encounteredObjectGuid = string.Empty, encounteredRoom = null, requiredNumberOfEncounters = 0, requiredCharacter = (PlayableCharacters)0, requireCharacter = false, requiredTileset = (ValidTilesets)8192, requireTileset = true, saveFlagToCheck = (GungeonFlags)0, requireFlag = false, requireDemoMode = false } }; list.Add(val); jungleInjectionData.InjectionData = list; } public static void BuildFutureInjectionData() { //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Expected O, but got Unknown //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_0120: 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_0127: 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_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0189: Unknown result type (might be due to invalid IL or missing references) //IL_0191: Expected O, but got Unknown FutureInjectionData = ScriptableObject.CreateInstance(); ((Object)FutureInjectionData).name = "Future Common Injection Data"; FutureInjectionData.UseInvalidWeightAsNoInjection = true; FutureInjectionData.PreventInjectionOfFailedPrerequisites = false; FutureInjectionData.IsNPCCell = false; FutureInjectionData.IgnoreUnmetPrerequisiteEntries = false; FutureInjectionData.OnlyOne = false; FutureInjectionData.ChanceToSpawnOne = 0.5f; FutureInjectionData.AttachedInjectionData = new List(0); SharedInjectionData futureInjectionData = FutureInjectionData; List list = new List(); ProceduralFlowModifierData val = new ProceduralFlowModifierData(); val.annotation = "Future Crest Room"; val.DEBUG_FORCE_SPAWN = false; val.OncePerRun = false; val.placementRules = new List { (FlowModifierPlacementType)1 }; val.roomTable = null; val.exactRoom = ExpandRoomPrefabs.Expand_Future_CrestRoom; val.IsWarpWing = false; val.RequiresMasteryToken = false; val.chanceToLock = 0.25f; val.selectionWeight = 1f; val.chanceToSpawn = 1f; val.RequiredValidPlaceable = null; val.CanBeForcedSecret = true; val.RandomNodeChildMinDistanceFromEntrance = 2; val.exactSecondaryRoom = null; val.framedCombatNodes = 0; val.prerequisites = (DungeonPrerequisite[])(object)new DungeonPrerequisite[1] { new DungeonPrerequisite { prerequisiteType = (PrerequisiteType)5, prerequisiteOperation = (PrerequisiteOperation)2, statToCheck = (TrackedStats)28, maxToCheck = (TrackedMaximums)0, comparisonValue = 0f, encounteredObjectGuid = string.Empty, encounteredRoom = null, requiredNumberOfEncounters = 0, requiredCharacter = (PlayableCharacters)0, requireCharacter = false, requiredTileset = (ValidTilesets)0, requireTileset = false, saveFlagToCheck = (GungeonFlags)0, requireFlag = false, requireDemoMode = false } }; list.Add(val); futureInjectionData.InjectionData = list; } } public class BossrushFlows { public static DungeonFlow Bossrush_01_Castle; public static DungeonFlow Bossrush_01a_Sewer; public static DungeonFlow Bossrush_02_Gungeon; public static DungeonFlow Bossrush_02a_Cathedral; public static DungeonFlow Bossrush_03_Mines; public static DungeonFlow Bossrush_04_Catacombs; public static DungeonFlow Bossrush_05_Forge; public static DungeonFlow Bossrush_06_BulletHell; public static DungeonFlow Bossrush_01_Castle_Modded; public static DungeonFlow MiniBossrush_01; private static DungeonFlowNode BossRushCurseShrineNode = new DungeonFlowNode(Bossrush_01_Castle) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode BossRush01CastleNode_Entrance = new DungeonFlowNode(Bossrush_01_Castle) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)1, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.elevator_entrance, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode BossRush01CastleNode_FirstBossFoyer = new DungeonFlowNode(Bossrush_01_Castle) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.boss_foyer, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode BossRush01CastleNode_FirstBossRoom = new DungeonFlowNode(Bossrush_01_Castle) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)3, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = ExpandPrefabs.bosstable_01_bulletbros, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode BossRush01CastleNode_SecondBossFoyer = new DungeonFlowNode(Bossrush_01_Castle) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.boss_foyer, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode BossRush01CastleNode_SecondBossRoom = new DungeonFlowNode(Bossrush_01_Castle) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)3, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = ExpandPrefabs.bosstable_01_bulletking, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode BossRush01CastleNode_ThirdBossFoyer = new DungeonFlowNode(Bossrush_01_Castle) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.boss_foyer, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode BossRush01CastleNode_ThirdBossRoom = new DungeonFlowNode(Bossrush_01_Castle) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)3, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = ExpandPrefabs.bosstable_01_gatlinggull, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode BossRush01CastleNode_Exit = new DungeonFlowNode(Bossrush_01_Castle) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)8, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.tiny_exit, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode MiniBossRushNode_Entrance = new DungeonFlowNode(MiniBossrush_01) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)7, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.tiny_entrance, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode MiniBossRushNode_Exit = new DungeonFlowNode(MiniBossrush_01) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)8, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.tiny_exit, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode MiniBossRushNode_FirstBossFoyer = new DungeonFlowNode(MiniBossrush_01) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.boss_foyer, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode MiniBossRushNode_FirstBossRoom = new DungeonFlowNode(MiniBossrush_01) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)3, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.tutorial_minibossroom, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode MiniBossRushNode_SecondBossFoyer = new DungeonFlowNode(MiniBossrush_01) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.boss_foyer, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode MiniBossRushNode_SecondBossRoom = new DungeonFlowNode(MiniBossrush_01) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)3, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.blocknerminiboss_table_01.includedRooms.elements[Random.Range(0, ExpandPrefabs.blocknerminiboss_table_01.includedRooms.elements.Count)].room, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode MiniBossRushNode_ThirdBossFoyer = new DungeonFlowNode(MiniBossrush_01) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.boss_foyer, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode MiniBossRushNode_ThirdBossRoom = new DungeonFlowNode(MiniBossrush_01) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.phantomagunim_table_01.includedRooms.elements[Random.Range(0, ExpandPrefabs.phantomagunim_table_01.includedRooms.elements.Count)].room, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode MiniBossRushNode_FourthBossFoyer = new DungeonFlowNode(MiniBossrush_01) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandRoomPrefabs.Utiliroom, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode MiniBossRushNode_FourthBossRoom = new DungeonFlowNode(MiniBossrush_01) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.fusebombroom01, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode Bossrush_01_Castle_Miniboss_ElevatorShaftEntrance = new DungeonFlowNode(Bossrush_01_Castle_Modded) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)5, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.bossrush_alternate_entrance, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = true, handlesOwnWarping = true, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode Bossrush_01_Castle_Miniboss_FirstBossFoyer = new DungeonFlowNode(Bossrush_01_Castle_Modded) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.boss_foyer, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode Bossrush_01_Castle_Miniboss_FirstBossRoom = new DungeonFlowNode(Bossrush_01_Castle_Modded) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)3, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.tutorial_minibossroom, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode Bossrush_01_Castle_Miniboss_SecondBossFoyer = new DungeonFlowNode(Bossrush_01_Castle_Modded) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.boss_foyer, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode Bossrush_01_Castle_Miniboss_SecondBossRoom = new DungeonFlowNode(Bossrush_01_Castle_Modded) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)3, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.blocknerminiboss_table_01.includedRooms.elements[Random.Range(0, ExpandPrefabs.blocknerminiboss_table_01.includedRooms.elements.Count)].room, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode Bossrush_01_Castle_Miniboss_ThirdBossFoyer = new DungeonFlowNode(Bossrush_01_Castle_Modded) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.boss_foyer, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode Bossrush_01_Castle_Miniboss_ThirdBossRoom = new DungeonFlowNode(Bossrush_01_Castle_Modded) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.phantomagunim_table_01.includedRooms.elements[Random.Range(0, ExpandPrefabs.phantomagunim_table_01.includedRooms.elements.Count)].room, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode Bossrush_01_Castle_Miniboss_FourthBossFoyer = new DungeonFlowNode(Bossrush_01_Castle_Modded) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandRoomPrefabs.Utiliroom, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; private static DungeonFlowNode Bossrush_01_Castle_Miniboss_FourthBossRoom = new DungeonFlowNode(Bossrush_01_Castle_Modded) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.fusebombroom01, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; public static void InitBossrushFlows() { Bossrush_01_Castle_Modded = ScriptableObject.CreateInstance(); MiniBossrush_01 = ScriptableObject.CreateInstance(); BossRushCurseShrineNode.overrideExactRoom = ExpandPrefabs.gungeon_entrance_bossrush; Bossrush_01_Castle = FlowHelpers.DuplicateDungeonFlow(ExpandDungeonFlow.LoadOfficialFlow("Bossrush_01_Castle")); Bossrush_01a_Sewer = FlowHelpers.DuplicateDungeonFlow(ExpandDungeonFlow.LoadOfficialFlow("Bossrush_01a_Sewer")); Bossrush_02_Gungeon = FlowHelpers.DuplicateDungeonFlow(ExpandDungeonFlow.LoadOfficialFlow("Bossrush_02_Gungeon")); Bossrush_02a_Cathedral = FlowHelpers.DuplicateDungeonFlow(ExpandDungeonFlow.LoadOfficialFlow("Bossrush_02a_Cathedral")); Bossrush_03_Mines = FlowHelpers.DuplicateDungeonFlow(ExpandDungeonFlow.LoadOfficialFlow("Bossrush_03_Mines")); Bossrush_04_Catacombs = FlowHelpers.DuplicateDungeonFlow(ExpandDungeonFlow.LoadOfficialFlow("Bossrush_04_Catacombs")); Bossrush_05_Forge = FlowHelpers.DuplicateDungeonFlow(ExpandDungeonFlow.LoadOfficialFlow("Bossrush_05_Forge")); Bossrush_06_BulletHell = FlowHelpers.DuplicateDungeonFlow(ExpandDungeonFlow.LoadOfficialFlow("Bossrush_06_BulletHell")); Bossrush_01_Castle.AllNodes.Clear(); Bossrush_01_Castle.Initialize(); Bossrush_01_Castle.AddNodeToFlow(Bossrush_01_Castle_Miniboss_FourthBossRoom, Bossrush_01_Castle_Miniboss_FourthBossFoyer); Bossrush_01_Castle.AddNodeToFlow(Bossrush_01_Castle_Miniboss_FourthBossFoyer, Bossrush_01_Castle_Miniboss_ThirdBossRoom); Bossrush_01_Castle.AddNodeToFlow(Bossrush_01_Castle_Miniboss_ThirdBossRoom, Bossrush_01_Castle_Miniboss_ThirdBossFoyer); Bossrush_01_Castle.AddNodeToFlow(Bossrush_01_Castle_Miniboss_ThirdBossFoyer, Bossrush_01_Castle_Miniboss_SecondBossRoom); Bossrush_01_Castle.AddNodeToFlow(Bossrush_01_Castle_Miniboss_SecondBossRoom, Bossrush_01_Castle_Miniboss_SecondBossFoyer); Bossrush_01_Castle.AddNodeToFlow(Bossrush_01_Castle_Miniboss_SecondBossFoyer, Bossrush_01_Castle_Miniboss_FirstBossRoom); Bossrush_01_Castle.AddNodeToFlow(Bossrush_01_Castle_Miniboss_FirstBossRoom, Bossrush_01_Castle_Miniboss_FirstBossFoyer); Bossrush_01_Castle.AddNodeToFlow(Bossrush_01_Castle_Miniboss_FirstBossFoyer, Bossrush_01_Castle_Miniboss_ElevatorShaftEntrance); Bossrush_01_Castle.AddNodeToFlow(Bossrush_01_Castle_Miniboss_ElevatorShaftEntrance, BossRush01CastleNode_Entrance); Bossrush_01_Castle.AddNodeToFlow(BossRush01CastleNode_Entrance, BossRushCurseShrineNode); Bossrush_01_Castle.AddNodeToFlow(BossRushCurseShrineNode, (DungeonFlowNode)null); Bossrush_01_Castle.AddNodeToFlow(BossRush01CastleNode_Exit, BossRush01CastleNode_ThirdBossRoom); Bossrush_01_Castle.AddNodeToFlow(BossRush01CastleNode_ThirdBossRoom, BossRush01CastleNode_ThirdBossFoyer); Bossrush_01_Castle.AddNodeToFlow(BossRush01CastleNode_ThirdBossFoyer, BossRush01CastleNode_SecondBossRoom); Bossrush_01_Castle.AddNodeToFlow(BossRush01CastleNode_SecondBossRoom, BossRush01CastleNode_SecondBossFoyer); Bossrush_01_Castle.AddNodeToFlow(BossRush01CastleNode_SecondBossFoyer, BossRush01CastleNode_FirstBossRoom); Bossrush_01_Castle.AddNodeToFlow(BossRush01CastleNode_FirstBossRoom, BossRush01CastleNode_FirstBossFoyer); Bossrush_01_Castle.AddNodeToFlow(BossRush01CastleNode_FirstBossFoyer, BossRushCurseShrineNode); Bossrush_01_Castle.FirstNode = BossRushCurseShrineNode; ((Object)MiniBossrush_01).name = "MiniBossRush_01"; MiniBossrush_01.fallbackRoomTable = null; MiniBossrush_01.phantomRoomTable = null; MiniBossrush_01.subtypeRestrictions = new List(0); MiniBossrush_01.flowInjectionData = new List(0); MiniBossrush_01.sharedInjectionData = new List(0); MiniBossrush_01.Initialize(); MiniBossrush_01.AddNodeToFlow(MiniBossRushNode_Entrance, (DungeonFlowNode)null); MiniBossrush_01.AddNodeToFlow(MiniBossRushNode_Exit, MiniBossRushNode_FourthBossRoom); MiniBossrush_01.AddNodeToFlow(MiniBossRushNode_FourthBossRoom, MiniBossRushNode_FourthBossFoyer); MiniBossrush_01.AddNodeToFlow(MiniBossRushNode_FourthBossFoyer, MiniBossRushNode_ThirdBossRoom); MiniBossrush_01.AddNodeToFlow(MiniBossRushNode_ThirdBossRoom, MiniBossRushNode_ThirdBossFoyer); MiniBossrush_01.AddNodeToFlow(MiniBossRushNode_ThirdBossFoyer, MiniBossRushNode_SecondBossRoom); MiniBossrush_01.AddNodeToFlow(MiniBossRushNode_SecondBossRoom, MiniBossRushNode_SecondBossFoyer); MiniBossrush_01.AddNodeToFlow(MiniBossRushNode_SecondBossFoyer, MiniBossRushNode_FirstBossRoom); MiniBossrush_01.AddNodeToFlow(MiniBossRushNode_FirstBossRoom, MiniBossRushNode_FirstBossFoyer); MiniBossrush_01.AddNodeToFlow(MiniBossRushNode_FirstBossFoyer, MiniBossRushNode_Entrance); MiniBossrush_01.FirstNode = MiniBossRushNode_Entrance; } } public class complex_flow_test { private static DungeonFlow m_complex_flow_test; public static DungeonFlow Complex_Flow_Test { get { if (!Object.op_Implicit((Object)(object)m_complex_flow_test)) { m_complex_flow_test = m_Complex_Flow_Test(); } return m_complex_flow_test; } } private static DungeonFlow m_Complex_Flow_Test() { //IL_0007: 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_0013: 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) //IL_001a: 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_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_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004c: 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_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0094: 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_00a6: 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_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Expected O, but got Unknown //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_0154: 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_0162: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_0187: 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_0195: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_019e: 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_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01b1: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01cf: Unknown result type (might be due to invalid IL or missing references) //IL_01d6: Unknown result type (might be due to invalid IL or missing references) //IL_01dd: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: 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_01f6: Unknown result type (might be due to invalid IL or missing references) //IL_0202: Unknown result type (might be due to invalid IL or missing references) //IL_020d: Unknown result type (might be due to invalid IL or missing references) //IL_0214: Unknown result type (might be due to invalid IL or missing references) //IL_022e: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Expected O, but got Unknown //IL_0237: Unknown result type (might be due to invalid IL or missing references) //IL_023c: Unknown result type (might be due to invalid IL or missing references) //IL_0243: Unknown result type (might be due to invalid IL or missing references) //IL_0245: Unknown result type (might be due to invalid IL or missing references) //IL_024a: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Unknown result type (might be due to invalid IL or missing references) //IL_0251: 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_025e: Unknown result type (might be due to invalid IL or missing references) //IL_0263: Unknown result type (might be due to invalid IL or missing references) //IL_026a: Unknown result type (might be due to invalid IL or missing references) //IL_0271: Unknown result type (might be due to invalid IL or missing references) //IL_0278: Unknown result type (might be due to invalid IL or missing references) //IL_0283: Unknown result type (might be due to invalid IL or missing references) //IL_028a: Unknown result type (might be due to invalid IL or missing references) //IL_0291: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Unknown result type (might be due to invalid IL or missing references) //IL_02a4: Unknown result type (might be due to invalid IL or missing references) //IL_02ab: Unknown result type (might be due to invalid IL or missing references) //IL_02b2: Unknown result type (might be due to invalid IL or missing references) //IL_02b4: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02bb: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Unknown result type (might be due to invalid IL or missing references) //IL_02c7: Unknown result type (might be due to invalid IL or missing references) //IL_02d2: Unknown result type (might be due to invalid IL or missing references) //IL_02de: Unknown result type (might be due to invalid IL or missing references) //IL_02e5: Unknown result type (might be due to invalid IL or missing references) //IL_02ec: Unknown result type (might be due to invalid IL or missing references) //IL_02f3: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: Unknown result type (might be due to invalid IL or missing references) //IL_0301: Unknown result type (might be due to invalid IL or missing references) //IL_030c: Unknown result type (might be due to invalid IL or missing references) //IL_0318: Unknown result type (might be due to invalid IL or missing references) //IL_0323: Unknown result type (might be due to invalid IL or missing references) //IL_032a: Unknown result type (might be due to invalid IL or missing references) //IL_0344: Unknown result type (might be due to invalid IL or missing references) //IL_034c: Expected O, but got Unknown //IL_034d: Unknown result type (might be due to invalid IL or missing references) //IL_0352: Unknown result type (might be due to invalid IL or missing references) //IL_0359: Unknown result type (might be due to invalid IL or missing references) //IL_035b: Unknown result type (might be due to invalid IL or missing references) //IL_0360: Unknown result type (might be due to invalid IL or missing references) //IL_0362: Unknown result type (might be due to invalid IL or missing references) //IL_0367: Unknown result type (might be due to invalid IL or missing references) //IL_0372: Unknown result type (might be due to invalid IL or missing references) //IL_0374: Unknown result type (might be due to invalid IL or missing references) //IL_0379: Unknown result type (might be due to invalid IL or missing references) //IL_0380: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_038e: Unknown result type (might be due to invalid IL or missing references) //IL_0399: Unknown result type (might be due to invalid IL or missing references) //IL_03a0: Unknown result type (might be due to invalid IL or missing references) //IL_03a7: Unknown result type (might be due to invalid IL or missing references) //IL_03b3: Unknown result type (might be due to invalid IL or missing references) //IL_03ba: Unknown result type (might be due to invalid IL or missing references) //IL_03c1: Unknown result type (might be due to invalid IL or missing references) //IL_03c8: Unknown result type (might be due to invalid IL or missing references) //IL_03ca: Unknown result type (might be due to invalid IL or missing references) //IL_03cf: Unknown result type (might be due to invalid IL or missing references) //IL_03d1: Unknown result type (might be due to invalid IL or missing references) //IL_03d6: Unknown result type (might be due to invalid IL or missing references) //IL_03dd: Unknown result type (might be due to invalid IL or missing references) //IL_03e8: Unknown result type (might be due to invalid IL or missing references) //IL_03f4: Unknown result type (might be due to invalid IL or missing references) //IL_03fb: Unknown result type (might be due to invalid IL or missing references) //IL_0402: Unknown result type (might be due to invalid IL or missing references) //IL_0409: Unknown result type (might be due to invalid IL or missing references) //IL_0410: Unknown result type (might be due to invalid IL or missing references) //IL_0417: Unknown result type (might be due to invalid IL or missing references) //IL_0422: Unknown result type (might be due to invalid IL or missing references) //IL_042e: Unknown result type (might be due to invalid IL or missing references) //IL_0439: Unknown result type (might be due to invalid IL or missing references) //IL_0440: Unknown result type (might be due to invalid IL or missing references) //IL_045a: Unknown result type (might be due to invalid IL or missing references) //IL_0463: Expected O, but got Unknown //IL_0464: Unknown result type (might be due to invalid IL or missing references) //IL_0469: Unknown result type (might be due to invalid IL or missing references) //IL_0470: Unknown result type (might be due to invalid IL or missing references) //IL_0472: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_0479: Unknown result type (might be due to invalid IL or missing references) //IL_047e: Unknown result type (might be due to invalid IL or missing references) //IL_0489: Unknown result type (might be due to invalid IL or missing references) //IL_048b: Unknown result type (might be due to invalid IL or missing references) //IL_0490: Unknown result type (might be due to invalid IL or missing references) //IL_0497: Unknown result type (might be due to invalid IL or missing references) //IL_049e: Unknown result type (might be due to invalid IL or missing references) //IL_04a5: Unknown result type (might be due to invalid IL or missing references) //IL_04b0: Unknown result type (might be due to invalid IL or missing references) //IL_04b7: Unknown result type (might be due to invalid IL or missing references) //IL_04be: Unknown result type (might be due to invalid IL or missing references) //IL_04ca: Unknown result type (might be due to invalid IL or missing references) //IL_04d1: Unknown result type (might be due to invalid IL or missing references) //IL_04d8: Unknown result type (might be due to invalid IL or missing references) //IL_04df: Unknown result type (might be due to invalid IL or missing references) //IL_04e1: Unknown result type (might be due to invalid IL or missing references) //IL_04e6: Unknown result type (might be due to invalid IL or missing references) //IL_04e8: Unknown result type (might be due to invalid IL or missing references) //IL_04ed: Unknown result type (might be due to invalid IL or missing references) //IL_04f4: Unknown result type (might be due to invalid IL or missing references) //IL_04ff: Unknown result type (might be due to invalid IL or missing references) //IL_050b: Unknown result type (might be due to invalid IL or missing references) //IL_0512: Unknown result type (might be due to invalid IL or missing references) //IL_0519: Unknown result type (might be due to invalid IL or missing references) //IL_0520: Unknown result type (might be due to invalid IL or missing references) //IL_0527: Unknown result type (might be due to invalid IL or missing references) //IL_052e: Unknown result type (might be due to invalid IL or missing references) //IL_0539: Unknown result type (might be due to invalid IL or missing references) //IL_0545: Unknown result type (might be due to invalid IL or missing references) //IL_0550: Unknown result type (might be due to invalid IL or missing references) //IL_0557: Unknown result type (might be due to invalid IL or missing references) //IL_0571: Unknown result type (might be due to invalid IL or missing references) //IL_057a: Expected O, but got Unknown //IL_057b: Unknown result type (might be due to invalid IL or missing references) //IL_0580: Unknown result type (might be due to invalid IL or missing references) //IL_0587: Unknown result type (might be due to invalid IL or missing references) //IL_0589: Unknown result type (might be due to invalid IL or missing references) //IL_058e: Unknown result type (might be due to invalid IL or missing references) //IL_0590: Unknown result type (might be due to invalid IL or missing references) //IL_0595: Unknown result type (might be due to invalid IL or missing references) //IL_05a0: Unknown result type (might be due to invalid IL or missing references) //IL_05a2: Unknown result type (might be due to invalid IL or missing references) //IL_05a7: Unknown result type (might be due to invalid IL or missing references) //IL_05ae: Unknown result type (might be due to invalid IL or missing references) //IL_05b5: Unknown result type (might be due to invalid IL or missing references) //IL_05bc: Unknown result type (might be due to invalid IL or missing references) //IL_05c7: Unknown result type (might be due to invalid IL or missing references) //IL_05ce: Unknown result type (might be due to invalid IL or missing references) //IL_05d5: Unknown result type (might be due to invalid IL or missing references) //IL_05e1: Unknown result type (might be due to invalid IL or missing references) //IL_05e8: Unknown result type (might be due to invalid IL or missing references) //IL_05ef: Unknown result type (might be due to invalid IL or missing references) //IL_05f6: Unknown result type (might be due to invalid IL or missing references) //IL_05f8: Unknown result type (might be due to invalid IL or missing references) //IL_05fd: Unknown result type (might be due to invalid IL or missing references) //IL_05ff: Unknown result type (might be due to invalid IL or missing references) //IL_0604: Unknown result type (might be due to invalid IL or missing references) //IL_060b: Unknown result type (might be due to invalid IL or missing references) //IL_0616: Unknown result type (might be due to invalid IL or missing references) //IL_0622: Unknown result type (might be due to invalid IL or missing references) //IL_0629: Unknown result type (might be due to invalid IL or missing references) //IL_0630: Unknown result type (might be due to invalid IL or missing references) //IL_0637: Unknown result type (might be due to invalid IL or missing references) //IL_063e: Unknown result type (might be due to invalid IL or missing references) //IL_0645: Unknown result type (might be due to invalid IL or missing references) //IL_0650: Unknown result type (might be due to invalid IL or missing references) //IL_065c: Unknown result type (might be due to invalid IL or missing references) //IL_0667: Unknown result type (might be due to invalid IL or missing references) //IL_066e: Unknown result type (might be due to invalid IL or missing references) //IL_0688: Unknown result type (might be due to invalid IL or missing references) //IL_0691: Expected O, but got Unknown //IL_0692: Unknown result type (might be due to invalid IL or missing references) //IL_0697: Unknown result type (might be due to invalid IL or missing references) //IL_069e: Unknown result type (might be due to invalid IL or missing references) //IL_06a0: Unknown result type (might be due to invalid IL or missing references) //IL_06a5: Unknown result type (might be due to invalid IL or missing references) //IL_06a7: Unknown result type (might be due to invalid IL or missing references) //IL_06ac: Unknown result type (might be due to invalid IL or missing references) //IL_06b7: Unknown result type (might be due to invalid IL or missing references) //IL_06b9: Unknown result type (might be due to invalid IL or missing references) //IL_06be: Unknown result type (might be due to invalid IL or missing references) //IL_06c5: Unknown result type (might be due to invalid IL or missing references) //IL_06cc: Unknown result type (might be due to invalid IL or missing references) //IL_06d3: Unknown result type (might be due to invalid IL or missing references) //IL_06de: Unknown result type (might be due to invalid IL or missing references) //IL_06e5: Unknown result type (might be due to invalid IL or missing references) //IL_06ec: Unknown result type (might be due to invalid IL or missing references) //IL_06f8: Unknown result type (might be due to invalid IL or missing references) //IL_06ff: Unknown result type (might be due to invalid IL or missing references) //IL_0706: Unknown result type (might be due to invalid IL or missing references) //IL_070d: Unknown result type (might be due to invalid IL or missing references) //IL_070f: Unknown result type (might be due to invalid IL or missing references) //IL_0714: Unknown result type (might be due to invalid IL or missing references) //IL_0716: Unknown result type (might be due to invalid IL or missing references) //IL_071b: Unknown result type (might be due to invalid IL or missing references) //IL_0722: Unknown result type (might be due to invalid IL or missing references) //IL_072d: Unknown result type (might be due to invalid IL or missing references) //IL_0739: Unknown result type (might be due to invalid IL or missing references) //IL_0740: Unknown result type (might be due to invalid IL or missing references) //IL_0747: Unknown result type (might be due to invalid IL or missing references) //IL_074e: Unknown result type (might be due to invalid IL or missing references) //IL_0755: Unknown result type (might be due to invalid IL or missing references) //IL_075c: Unknown result type (might be due to invalid IL or missing references) //IL_0767: Unknown result type (might be due to invalid IL or missing references) //IL_0773: Unknown result type (might be due to invalid IL or missing references) //IL_077e: Unknown result type (might be due to invalid IL or missing references) //IL_0785: Unknown result type (might be due to invalid IL or missing references) //IL_079f: Unknown result type (might be due to invalid IL or missing references) //IL_07a8: Expected O, but got Unknown //IL_07a9: Unknown result type (might be due to invalid IL or missing references) //IL_07ae: Unknown result type (might be due to invalid IL or missing references) //IL_07b5: Unknown result type (might be due to invalid IL or missing references) //IL_07b7: Unknown result type (might be due to invalid IL or missing references) //IL_07bc: Unknown result type (might be due to invalid IL or missing references) //IL_07be: Unknown result type (might be due to invalid IL or missing references) //IL_07c3: Unknown result type (might be due to invalid IL or missing references) //IL_07ce: Unknown result type (might be due to invalid IL or missing references) //IL_07d0: Unknown result type (might be due to invalid IL or missing references) //IL_07d5: Unknown result type (might be due to invalid IL or missing references) //IL_07dc: Unknown result type (might be due to invalid IL or missing references) //IL_07e3: Unknown result type (might be due to invalid IL or missing references) //IL_07ea: Unknown result type (might be due to invalid IL or missing references) //IL_07f5: Unknown result type (might be due to invalid IL or missing references) //IL_07fc: Unknown result type (might be due to invalid IL or missing references) //IL_0803: Unknown result type (might be due to invalid IL or missing references) //IL_080f: Unknown result type (might be due to invalid IL or missing references) //IL_0816: Unknown result type (might be due to invalid IL or missing references) //IL_081d: Unknown result type (might be due to invalid IL or missing references) //IL_0824: Unknown result type (might be due to invalid IL or missing references) //IL_0826: Unknown result type (might be due to invalid IL or missing references) //IL_082b: Unknown result type (might be due to invalid IL or missing references) //IL_082d: Unknown result type (might be due to invalid IL or missing references) //IL_0832: Unknown result type (might be due to invalid IL or missing references) //IL_0839: Unknown result type (might be due to invalid IL or missing references) //IL_0844: Unknown result type (might be due to invalid IL or missing references) //IL_0850: Unknown result type (might be due to invalid IL or missing references) //IL_0857: Unknown result type (might be due to invalid IL or missing references) //IL_085e: Unknown result type (might be due to invalid IL or missing references) //IL_0865: Unknown result type (might be due to invalid IL or missing references) //IL_086c: Unknown result type (might be due to invalid IL or missing references) //IL_0873: Unknown result type (might be due to invalid IL or missing references) //IL_087e: Unknown result type (might be due to invalid IL or missing references) //IL_088a: Unknown result type (might be due to invalid IL or missing references) //IL_0895: Unknown result type (might be due to invalid IL or missing references) //IL_089c: Unknown result type (might be due to invalid IL or missing references) //IL_08b6: Unknown result type (might be due to invalid IL or missing references) //IL_08bf: Expected O, but got Unknown //IL_08c0: Unknown result type (might be due to invalid IL or missing references) //IL_08c5: Unknown result type (might be due to invalid IL or missing references) //IL_08cc: Unknown result type (might be due to invalid IL or missing references) //IL_08ce: Unknown result type (might be due to invalid IL or missing references) //IL_08d3: Unknown result type (might be due to invalid IL or missing references) //IL_08d5: Unknown result type (might be due to invalid IL or missing references) //IL_08da: Unknown result type (might be due to invalid IL or missing references) //IL_08e5: Unknown result type (might be due to invalid IL or missing references) //IL_08e7: Unknown result type (might be due to invalid IL or missing references) //IL_08ec: Unknown result type (might be due to invalid IL or missing references) //IL_08f3: Unknown result type (might be due to invalid IL or missing references) //IL_08fa: Unknown result type (might be due to invalid IL or missing references) //IL_0901: Unknown result type (might be due to invalid IL or missing references) //IL_090c: Unknown result type (might be due to invalid IL or missing references) //IL_0913: Unknown result type (might be due to invalid IL or missing references) //IL_091a: Unknown result type (might be due to invalid IL or missing references) //IL_0926: Unknown result type (might be due to invalid IL or missing references) //IL_092d: Unknown result type (might be due to invalid IL or missing references) //IL_0934: Unknown result type (might be due to invalid IL or missing references) //IL_093b: Unknown result type (might be due to invalid IL or missing references) //IL_093d: Unknown result type (might be due to invalid IL or missing references) //IL_0942: Unknown result type (might be due to invalid IL or missing references) //IL_0944: Unknown result type (might be due to invalid IL or missing references) //IL_0949: Unknown result type (might be due to invalid IL or missing references) //IL_0950: Unknown result type (might be due to invalid IL or missing references) //IL_095b: Unknown result type (might be due to invalid IL or missing references) //IL_0967: Unknown result type (might be due to invalid IL or missing references) //IL_096e: Unknown result type (might be due to invalid IL or missing references) //IL_0975: Unknown result type (might be due to invalid IL or missing references) //IL_097c: Unknown result type (might be due to invalid IL or missing references) //IL_0983: Unknown result type (might be due to invalid IL or missing references) //IL_098a: Unknown result type (might be due to invalid IL or missing references) //IL_0995: Unknown result type (might be due to invalid IL or missing references) //IL_09a1: Unknown result type (might be due to invalid IL or missing references) //IL_09ac: Unknown result type (might be due to invalid IL or missing references) //IL_09b3: Unknown result type (might be due to invalid IL or missing references) //IL_09cd: Unknown result type (might be due to invalid IL or missing references) //IL_09d6: Expected O, but got Unknown //IL_09d7: Unknown result type (might be due to invalid IL or missing references) //IL_09dc: Unknown result type (might be due to invalid IL or missing references) //IL_09e3: Unknown result type (might be due to invalid IL or missing references) //IL_09e5: Unknown result type (might be due to invalid IL or missing references) //IL_09ea: Unknown result type (might be due to invalid IL or missing references) //IL_09ec: Unknown result type (might be due to invalid IL or missing references) //IL_09f1: Unknown result type (might be due to invalid IL or missing references) //IL_09fc: Unknown result type (might be due to invalid IL or missing references) //IL_09fe: Unknown result type (might be due to invalid IL or missing references) //IL_0a03: Unknown result type (might be due to invalid IL or missing references) //IL_0a0a: Unknown result type (might be due to invalid IL or missing references) //IL_0a11: Unknown result type (might be due to invalid IL or missing references) //IL_0a18: Unknown result type (might be due to invalid IL or missing references) //IL_0a23: Unknown result type (might be due to invalid IL or missing references) //IL_0a2a: Unknown result type (might be due to invalid IL or missing references) //IL_0a31: Unknown result type (might be due to invalid IL or missing references) //IL_0a3d: Unknown result type (might be due to invalid IL or missing references) //IL_0a44: Unknown result type (might be due to invalid IL or missing references) //IL_0a4b: Unknown result type (might be due to invalid IL or missing references) //IL_0a52: Unknown result type (might be due to invalid IL or missing references) //IL_0a54: Unknown result type (might be due to invalid IL or missing references) //IL_0a59: Unknown result type (might be due to invalid IL or missing references) //IL_0a5b: Unknown result type (might be due to invalid IL or missing references) //IL_0a60: Unknown result type (might be due to invalid IL or missing references) //IL_0a67: Unknown result type (might be due to invalid IL or missing references) //IL_0a72: Unknown result type (might be due to invalid IL or missing references) //IL_0a7e: Unknown result type (might be due to invalid IL or missing references) //IL_0a85: Unknown result type (might be due to invalid IL or missing references) //IL_0a8c: Unknown result type (might be due to invalid IL or missing references) //IL_0a93: Unknown result type (might be due to invalid IL or missing references) //IL_0a9a: Unknown result type (might be due to invalid IL or missing references) //IL_0aa1: Unknown result type (might be due to invalid IL or missing references) //IL_0aac: Unknown result type (might be due to invalid IL or missing references) //IL_0ab8: Unknown result type (might be due to invalid IL or missing references) //IL_0ac3: Unknown result type (might be due to invalid IL or missing references) //IL_0aca: Unknown result type (might be due to invalid IL or missing references) //IL_0ae4: Unknown result type (might be due to invalid IL or missing references) //IL_0aed: Expected O, but got Unknown //IL_0aee: Unknown result type (might be due to invalid IL or missing references) //IL_0af3: Unknown result type (might be due to invalid IL or missing references) //IL_0afa: Unknown result type (might be due to invalid IL or missing references) //IL_0afc: Unknown result type (might be due to invalid IL or missing references) //IL_0b01: Unknown result type (might be due to invalid IL or missing references) //IL_0b03: Unknown result type (might be due to invalid IL or missing references) //IL_0b08: Unknown result type (might be due to invalid IL or missing references) //IL_0b13: Unknown result type (might be due to invalid IL or missing references) //IL_0b15: Unknown result type (might be due to invalid IL or missing references) //IL_0b1a: Unknown result type (might be due to invalid IL or missing references) //IL_0b21: Unknown result type (might be due to invalid IL or missing references) //IL_0b28: Unknown result type (might be due to invalid IL or missing references) //IL_0b2f: Unknown result type (might be due to invalid IL or missing references) //IL_0b3a: Unknown result type (might be due to invalid IL or missing references) //IL_0b41: Unknown result type (might be due to invalid IL or missing references) //IL_0b48: Unknown result type (might be due to invalid IL or missing references) //IL_0b54: Unknown result type (might be due to invalid IL or missing references) //IL_0b5b: Unknown result type (might be due to invalid IL or missing references) //IL_0b62: Unknown result type (might be due to invalid IL or missing references) //IL_0b69: Unknown result type (might be due to invalid IL or missing references) //IL_0b6b: Unknown result type (might be due to invalid IL or missing references) //IL_0b70: Unknown result type (might be due to invalid IL or missing references) //IL_0b72: Unknown result type (might be due to invalid IL or missing references) //IL_0b77: Unknown result type (might be due to invalid IL or missing references) //IL_0b7e: Unknown result type (might be due to invalid IL or missing references) //IL_0b89: Unknown result type (might be due to invalid IL or missing references) //IL_0b95: Unknown result type (might be due to invalid IL or missing references) //IL_0b9c: Unknown result type (might be due to invalid IL or missing references) //IL_0ba3: Unknown result type (might be due to invalid IL or missing references) //IL_0baa: Unknown result type (might be due to invalid IL or missing references) //IL_0bb1: Unknown result type (might be due to invalid IL or missing references) //IL_0bb8: Unknown result type (might be due to invalid IL or missing references) //IL_0bc3: Unknown result type (might be due to invalid IL or missing references) //IL_0bcf: Unknown result type (might be due to invalid IL or missing references) //IL_0bda: Unknown result type (might be due to invalid IL or missing references) //IL_0be1: Unknown result type (might be due to invalid IL or missing references) //IL_0bfb: Unknown result type (might be due to invalid IL or missing references) //IL_0c04: Expected O, but got Unknown //IL_0c05: Unknown result type (might be due to invalid IL or missing references) //IL_0c0a: Unknown result type (might be due to invalid IL or missing references) //IL_0c11: Unknown result type (might be due to invalid IL or missing references) //IL_0c13: Unknown result type (might be due to invalid IL or missing references) //IL_0c18: Unknown result type (might be due to invalid IL or missing references) //IL_0c1a: Unknown result type (might be due to invalid IL or missing references) //IL_0c1f: Unknown result type (might be due to invalid IL or missing references) //IL_0c2a: Unknown result type (might be due to invalid IL or missing references) //IL_0c2c: Unknown result type (might be due to invalid IL or missing references) //IL_0c31: Unknown result type (might be due to invalid IL or missing references) //IL_0c3c: Unknown result type (might be due to invalid IL or missing references) //IL_0c43: Unknown result type (might be due to invalid IL or missing references) //IL_0c4a: Unknown result type (might be due to invalid IL or missing references) //IL_0c55: Unknown result type (might be due to invalid IL or missing references) //IL_0c5c: Unknown result type (might be due to invalid IL or missing references) //IL_0c63: Unknown result type (might be due to invalid IL or missing references) //IL_0c6f: Unknown result type (might be due to invalid IL or missing references) //IL_0c76: Unknown result type (might be due to invalid IL or missing references) //IL_0c7d: Unknown result type (might be due to invalid IL or missing references) //IL_0c84: Unknown result type (might be due to invalid IL or missing references) //IL_0c86: Unknown result type (might be due to invalid IL or missing references) //IL_0c8b: Unknown result type (might be due to invalid IL or missing references) //IL_0c8d: Unknown result type (might be due to invalid IL or missing references) //IL_0c92: Unknown result type (might be due to invalid IL or missing references) //IL_0c99: Unknown result type (might be due to invalid IL or missing references) //IL_0ca4: Unknown result type (might be due to invalid IL or missing references) //IL_0cb0: Unknown result type (might be due to invalid IL or missing references) //IL_0cb7: Unknown result type (might be due to invalid IL or missing references) //IL_0cbe: Unknown result type (might be due to invalid IL or missing references) //IL_0cc5: Unknown result type (might be due to invalid IL or missing references) //IL_0ccc: Unknown result type (might be due to invalid IL or missing references) //IL_0cd3: Unknown result type (might be due to invalid IL or missing references) //IL_0cde: Unknown result type (might be due to invalid IL or missing references) //IL_0cea: Unknown result type (might be due to invalid IL or missing references) //IL_0cf5: Unknown result type (might be due to invalid IL or missing references) //IL_0cfc: Unknown result type (might be due to invalid IL or missing references) //IL_0d16: Unknown result type (might be due to invalid IL or missing references) //IL_0d1f: Expected O, but got Unknown //IL_0d20: Unknown result type (might be due to invalid IL or missing references) //IL_0d25: Unknown result type (might be due to invalid IL or missing references) //IL_0d2c: Unknown result type (might be due to invalid IL or missing references) //IL_0d2e: Unknown result type (might be due to invalid IL or missing references) //IL_0d33: Unknown result type (might be due to invalid IL or missing references) //IL_0d35: Unknown result type (might be due to invalid IL or missing references) //IL_0d3a: Unknown result type (might be due to invalid IL or missing references) //IL_0d45: Unknown result type (might be due to invalid IL or missing references) //IL_0d47: Unknown result type (might be due to invalid IL or missing references) //IL_0d4c: Unknown result type (might be due to invalid IL or missing references) //IL_0d53: Unknown result type (might be due to invalid IL or missing references) //IL_0d5e: Unknown result type (might be due to invalid IL or missing references) //IL_0d65: Unknown result type (might be due to invalid IL or missing references) //IL_0d70: Unknown result type (might be due to invalid IL or missing references) //IL_0d77: Unknown result type (might be due to invalid IL or missing references) //IL_0d7e: Unknown result type (might be due to invalid IL or missing references) //IL_0d8a: Unknown result type (might be due to invalid IL or missing references) //IL_0d91: Unknown result type (might be due to invalid IL or missing references) //IL_0d98: Unknown result type (might be due to invalid IL or missing references) //IL_0d9f: Unknown result type (might be due to invalid IL or missing references) //IL_0da1: Unknown result type (might be due to invalid IL or missing references) //IL_0da6: Unknown result type (might be due to invalid IL or missing references) //IL_0da8: Unknown result type (might be due to invalid IL or missing references) //IL_0dad: Unknown result type (might be due to invalid IL or missing references) //IL_0db4: Unknown result type (might be due to invalid IL or missing references) //IL_0dbf: Unknown result type (might be due to invalid IL or missing references) //IL_0dcb: Unknown result type (might be due to invalid IL or missing references) //IL_0dd2: Unknown result type (might be due to invalid IL or missing references) //IL_0dd9: Unknown result type (might be due to invalid IL or missing references) //IL_0de0: Unknown result type (might be due to invalid IL or missing references) //IL_0de7: Unknown result type (might be due to invalid IL or missing references) //IL_0dee: Unknown result type (might be due to invalid IL or missing references) //IL_0df9: Unknown result type (might be due to invalid IL or missing references) //IL_0e05: Unknown result type (might be due to invalid IL or missing references) //IL_0e10: Unknown result type (might be due to invalid IL or missing references) //IL_0e17: Unknown result type (might be due to invalid IL or missing references) //IL_0e31: Unknown result type (might be due to invalid IL or missing references) //IL_0e3a: Expected O, but got Unknown //IL_0e3b: Unknown result type (might be due to invalid IL or missing references) //IL_0e40: Unknown result type (might be due to invalid IL or missing references) //IL_0e47: Unknown result type (might be due to invalid IL or missing references) //IL_0e49: Unknown result type (might be due to invalid IL or missing references) //IL_0e4e: Unknown result type (might be due to invalid IL or missing references) //IL_0e50: Unknown result type (might be due to invalid IL or missing references) //IL_0e55: Unknown result type (might be due to invalid IL or missing references) //IL_0e60: Unknown result type (might be due to invalid IL or missing references) //IL_0e62: Unknown result type (might be due to invalid IL or missing references) //IL_0e67: Unknown result type (might be due to invalid IL or missing references) //IL_0e72: Unknown result type (might be due to invalid IL or missing references) //IL_0e79: Unknown result type (might be due to invalid IL or missing references) //IL_0e80: Unknown result type (might be due to invalid IL or missing references) //IL_0e8b: Unknown result type (might be due to invalid IL or missing references) //IL_0e92: Unknown result type (might be due to invalid IL or missing references) //IL_0e99: Unknown result type (might be due to invalid IL or missing references) //IL_0ea5: Unknown result type (might be due to invalid IL or missing references) //IL_0eac: Unknown result type (might be due to invalid IL or missing references) //IL_0eb3: Unknown result type (might be due to invalid IL or missing references) //IL_0eba: Unknown result type (might be due to invalid IL or missing references) //IL_0ebc: Unknown result type (might be due to invalid IL or missing references) //IL_0ec1: Unknown result type (might be due to invalid IL or missing references) //IL_0ec3: Unknown result type (might be due to invalid IL or missing references) //IL_0ec8: Unknown result type (might be due to invalid IL or missing references) //IL_0ecf: Unknown result type (might be due to invalid IL or missing references) //IL_0eda: Unknown result type (might be due to invalid IL or missing references) //IL_0ee6: Unknown result type (might be due to invalid IL or missing references) //IL_0eed: Unknown result type (might be due to invalid IL or missing references) //IL_0ef4: Unknown result type (might be due to invalid IL or missing references) //IL_0efb: Unknown result type (might be due to invalid IL or missing references) //IL_0f02: Unknown result type (might be due to invalid IL or missing references) //IL_0f09: Unknown result type (might be due to invalid IL or missing references) //IL_0f14: Unknown result type (might be due to invalid IL or missing references) //IL_0f20: Unknown result type (might be due to invalid IL or missing references) //IL_0f2b: Unknown result type (might be due to invalid IL or missing references) //IL_0f32: Unknown result type (might be due to invalid IL or missing references) //IL_0f4c: Unknown result type (might be due to invalid IL or missing references) //IL_0f55: Expected O, but got Unknown //IL_0f56: Unknown result type (might be due to invalid IL or missing references) //IL_0f5b: Unknown result type (might be due to invalid IL or missing references) //IL_0f62: Unknown result type (might be due to invalid IL or missing references) //IL_0f64: Unknown result type (might be due to invalid IL or missing references) //IL_0f69: Unknown result type (might be due to invalid IL or missing references) //IL_0f6b: Unknown result type (might be due to invalid IL or missing references) //IL_0f70: Unknown result type (might be due to invalid IL or missing references) //IL_0f7b: Unknown result type (might be due to invalid IL or missing references) //IL_0f7d: Unknown result type (might be due to invalid IL or missing references) //IL_0f82: Unknown result type (might be due to invalid IL or missing references) //IL_0f89: Unknown result type (might be due to invalid IL or missing references) //IL_0f90: Unknown result type (might be due to invalid IL or missing references) //IL_0f97: Unknown result type (might be due to invalid IL or missing references) //IL_0fa2: Unknown result type (might be due to invalid IL or missing references) //IL_0fa9: Unknown result type (might be due to invalid IL or missing references) //IL_0fb0: Unknown result type (might be due to invalid IL or missing references) //IL_0fbc: Unknown result type (might be due to invalid IL or missing references) //IL_0fc3: Unknown result type (might be due to invalid IL or missing references) //IL_0fca: Unknown result type (might be due to invalid IL or missing references) //IL_0fd1: Unknown result type (might be due to invalid IL or missing references) //IL_0fd3: Unknown result type (might be due to invalid IL or missing references) //IL_0fd8: Unknown result type (might be due to invalid IL or missing references) //IL_0fda: Unknown result type (might be due to invalid IL or missing references) //IL_0fdf: Unknown result type (might be due to invalid IL or missing references) //IL_0fe6: Unknown result type (might be due to invalid IL or missing references) //IL_0ff1: Unknown result type (might be due to invalid IL or missing references) //IL_0ffd: Unknown result type (might be due to invalid IL or missing references) //IL_1004: Unknown result type (might be due to invalid IL or missing references) //IL_100b: Unknown result type (might be due to invalid IL or missing references) //IL_1012: Unknown result type (might be due to invalid IL or missing references) //IL_1019: Unknown result type (might be due to invalid IL or missing references) //IL_1020: Unknown result type (might be due to invalid IL or missing references) //IL_102b: Unknown result type (might be due to invalid IL or missing references) //IL_1037: Unknown result type (might be due to invalid IL or missing references) //IL_1042: Unknown result type (might be due to invalid IL or missing references) //IL_1049: Unknown result type (might be due to invalid IL or missing references) //IL_1063: Unknown result type (might be due to invalid IL or missing references) //IL_106c: Expected O, but got Unknown //IL_106d: Unknown result type (might be due to invalid IL or missing references) //IL_1072: Unknown result type (might be due to invalid IL or missing references) //IL_1079: Unknown result type (might be due to invalid IL or missing references) //IL_107b: Unknown result type (might be due to invalid IL or missing references) //IL_1080: Unknown result type (might be due to invalid IL or missing references) //IL_1082: Unknown result type (might be due to invalid IL or missing references) //IL_1087: Unknown result type (might be due to invalid IL or missing references) //IL_1092: Unknown result type (might be due to invalid IL or missing references) //IL_1094: Unknown result type (might be due to invalid IL or missing references) //IL_1099: Unknown result type (might be due to invalid IL or missing references) //IL_10a0: Unknown result type (might be due to invalid IL or missing references) //IL_10a7: Unknown result type (might be due to invalid IL or missing references) //IL_10ae: Unknown result type (might be due to invalid IL or missing references) //IL_10b9: Unknown result type (might be due to invalid IL or missing references) //IL_10c0: Unknown result type (might be due to invalid IL or missing references) //IL_10c7: Unknown result type (might be due to invalid IL or missing references) //IL_10d3: Unknown result type (might be due to invalid IL or missing references) //IL_10da: Unknown result type (might be due to invalid IL or missing references) //IL_10e1: Unknown result type (might be due to invalid IL or missing references) //IL_10e8: Unknown result type (might be due to invalid IL or missing references) //IL_10ea: Unknown result type (might be due to invalid IL or missing references) //IL_10ef: Unknown result type (might be due to invalid IL or missing references) //IL_10f1: Unknown result type (might be due to invalid IL or missing references) //IL_10f6: Unknown result type (might be due to invalid IL or missing references) //IL_10fd: Unknown result type (might be due to invalid IL or missing references) //IL_1108: Unknown result type (might be due to invalid IL or missing references) //IL_1114: Unknown result type (might be due to invalid IL or missing references) //IL_111b: Unknown result type (might be due to invalid IL or missing references) //IL_1122: Unknown result type (might be due to invalid IL or missing references) //IL_1129: Unknown result type (might be due to invalid IL or missing references) //IL_1130: Unknown result type (might be due to invalid IL or missing references) //IL_1137: Unknown result type (might be due to invalid IL or missing references) //IL_1142: Unknown result type (might be due to invalid IL or missing references) //IL_114e: Unknown result type (might be due to invalid IL or missing references) //IL_1159: Unknown result type (might be due to invalid IL or missing references) //IL_1160: Unknown result type (might be due to invalid IL or missing references) //IL_117a: Unknown result type (might be due to invalid IL or missing references) //IL_1183: Expected O, but got Unknown //IL_1184: Unknown result type (might be due to invalid IL or missing references) //IL_1189: Unknown result type (might be due to invalid IL or missing references) //IL_1190: Unknown result type (might be due to invalid IL or missing references) //IL_1192: Unknown result type (might be due to invalid IL or missing references) //IL_1197: Unknown result type (might be due to invalid IL or missing references) //IL_1199: Unknown result type (might be due to invalid IL or missing references) //IL_119e: Unknown result type (might be due to invalid IL or missing references) //IL_11a9: Unknown result type (might be due to invalid IL or missing references) //IL_11ab: Unknown result type (might be due to invalid IL or missing references) //IL_11b0: Unknown result type (might be due to invalid IL or missing references) //IL_11b7: Unknown result type (might be due to invalid IL or missing references) //IL_11be: Unknown result type (might be due to invalid IL or missing references) //IL_11c5: Unknown result type (might be due to invalid IL or missing references) //IL_11d0: Unknown result type (might be due to invalid IL or missing references) //IL_11d7: Unknown result type (might be due to invalid IL or missing references) //IL_11de: Unknown result type (might be due to invalid IL or missing references) //IL_11ea: Unknown result type (might be due to invalid IL or missing references) //IL_11f1: Unknown result type (might be due to invalid IL or missing references) //IL_11f8: Unknown result type (might be due to invalid IL or missing references) //IL_11ff: Unknown result type (might be due to invalid IL or missing references) //IL_1201: Unknown result type (might be due to invalid IL or missing references) //IL_1206: Unknown result type (might be due to invalid IL or missing references) //IL_1208: Unknown result type (might be due to invalid IL or missing references) //IL_120d: Unknown result type (might be due to invalid IL or missing references) //IL_1214: Unknown result type (might be due to invalid IL or missing references) //IL_121f: Unknown result type (might be due to invalid IL or missing references) //IL_122b: Unknown result type (might be due to invalid IL or missing references) //IL_1232: Unknown result type (might be due to invalid IL or missing references) //IL_1239: Unknown result type (might be due to invalid IL or missing references) //IL_1240: Unknown result type (might be due to invalid IL or missing references) //IL_1247: Unknown result type (might be due to invalid IL or missing references) //IL_124e: Unknown result type (might be due to invalid IL or missing references) //IL_1259: Unknown result type (might be due to invalid IL or missing references) //IL_1265: Unknown result type (might be due to invalid IL or missing references) //IL_1270: Unknown result type (might be due to invalid IL or missing references) //IL_1277: Unknown result type (might be due to invalid IL or missing references) //IL_1291: Unknown result type (might be due to invalid IL or missing references) //IL_129a: Expected O, but got Unknown //IL_129b: Unknown result type (might be due to invalid IL or missing references) //IL_12a0: Unknown result type (might be due to invalid IL or missing references) //IL_12a7: Unknown result type (might be due to invalid IL or missing references) //IL_12a9: Unknown result type (might be due to invalid IL or missing references) //IL_12ae: Unknown result type (might be due to invalid IL or missing references) //IL_12b0: Unknown result type (might be due to invalid IL or missing references) //IL_12b5: Unknown result type (might be due to invalid IL or missing references) //IL_12c0: Unknown result type (might be due to invalid IL or missing references) //IL_12c2: Unknown result type (might be due to invalid IL or missing references) //IL_12c7: Unknown result type (might be due to invalid IL or missing references) //IL_12ce: Unknown result type (might be due to invalid IL or missing references) //IL_12d5: Unknown result type (might be due to invalid IL or missing references) //IL_12dc: Unknown result type (might be due to invalid IL or missing references) //IL_12e7: Unknown result type (might be due to invalid IL or missing references) //IL_12ee: Unknown result type (might be due to invalid IL or missing references) //IL_12f5: Unknown result type (might be due to invalid IL or missing references) //IL_1301: Unknown result type (might be due to invalid IL or missing references) //IL_1308: Unknown result type (might be due to invalid IL or missing references) //IL_130f: Unknown result type (might be due to invalid IL or missing references) //IL_1316: Unknown result type (might be due to invalid IL or missing references) //IL_1318: Unknown result type (might be due to invalid IL or missing references) //IL_131d: Unknown result type (might be due to invalid IL or missing references) //IL_131f: Unknown result type (might be due to invalid IL or missing references) //IL_1324: Unknown result type (might be due to invalid IL or missing references) //IL_132b: Unknown result type (might be due to invalid IL or missing references) //IL_1336: Unknown result type (might be due to invalid IL or missing references) //IL_1342: Unknown result type (might be due to invalid IL or missing references) //IL_1349: Unknown result type (might be due to invalid IL or missing references) //IL_1350: Unknown result type (might be due to invalid IL or missing references) //IL_1357: Unknown result type (might be due to invalid IL or missing references) //IL_135e: Unknown result type (might be due to invalid IL or missing references) //IL_1365: Unknown result type (might be due to invalid IL or missing references) //IL_1370: Unknown result type (might be due to invalid IL or missing references) //IL_137c: Unknown result type (might be due to invalid IL or missing references) //IL_1387: Unknown result type (might be due to invalid IL or missing references) //IL_138e: Unknown result type (might be due to invalid IL or missing references) //IL_13a8: Unknown result type (might be due to invalid IL or missing references) //IL_13b1: Expected O, but got Unknown //IL_13b2: Unknown result type (might be due to invalid IL or missing references) //IL_13b7: Unknown result type (might be due to invalid IL or missing references) //IL_13be: Unknown result type (might be due to invalid IL or missing references) //IL_13c0: Unknown result type (might be due to invalid IL or missing references) //IL_13c5: Unknown result type (might be due to invalid IL or missing references) //IL_13c7: Unknown result type (might be due to invalid IL or missing references) //IL_13cc: Unknown result type (might be due to invalid IL or missing references) //IL_13d7: Unknown result type (might be due to invalid IL or missing references) //IL_13d9: Unknown result type (might be due to invalid IL or missing references) //IL_13de: Unknown result type (might be due to invalid IL or missing references) //IL_13e5: Unknown result type (might be due to invalid IL or missing references) //IL_13ec: Unknown result type (might be due to invalid IL or missing references) //IL_13f3: Unknown result type (might be due to invalid IL or missing references) //IL_13fe: Unknown result type (might be due to invalid IL or missing references) //IL_1405: Unknown result type (might be due to invalid IL or missing references) //IL_140c: Unknown result type (might be due to invalid IL or missing references) //IL_1418: Unknown result type (might be due to invalid IL or missing references) //IL_141f: Unknown result type (might be due to invalid IL or missing references) //IL_1426: Unknown result type (might be due to invalid IL or missing references) //IL_142d: Unknown result type (might be due to invalid IL or missing references) //IL_142f: Unknown result type (might be due to invalid IL or missing references) //IL_1434: Unknown result type (might be due to invalid IL or missing references) //IL_1436: Unknown result type (might be due to invalid IL or missing references) //IL_143b: Unknown result type (might be due to invalid IL or missing references) //IL_1442: Unknown result type (might be due to invalid IL or missing references) //IL_144d: Unknown result type (might be due to invalid IL or missing references) //IL_1459: Unknown result type (might be due to invalid IL or missing references) //IL_1460: Unknown result type (might be due to invalid IL or missing references) //IL_1467: Unknown result type (might be due to invalid IL or missing references) //IL_146e: Unknown result type (might be due to invalid IL or missing references) //IL_1475: Unknown result type (might be due to invalid IL or missing references) //IL_147c: Unknown result type (might be due to invalid IL or missing references) //IL_1487: Unknown result type (might be due to invalid IL or missing references) //IL_1493: Unknown result type (might be due to invalid IL or missing references) //IL_149e: Unknown result type (might be due to invalid IL or missing references) //IL_14a5: Unknown result type (might be due to invalid IL or missing references) //IL_14bf: Unknown result type (might be due to invalid IL or missing references) //IL_14c8: Expected O, but got Unknown //IL_14c9: Unknown result type (might be due to invalid IL or missing references) //IL_14ce: Unknown result type (might be due to invalid IL or missing references) //IL_14d5: Unknown result type (might be due to invalid IL or missing references) //IL_14d7: Unknown result type (might be due to invalid IL or missing references) //IL_14dc: Unknown result type (might be due to invalid IL or missing references) //IL_14de: Unknown result type (might be due to invalid IL or missing references) //IL_14e3: Unknown result type (might be due to invalid IL or missing references) //IL_14ee: Unknown result type (might be due to invalid IL or missing references) //IL_14f0: Unknown result type (might be due to invalid IL or missing references) //IL_14f5: Unknown result type (might be due to invalid IL or missing references) //IL_1500: Unknown result type (might be due to invalid IL or missing references) //IL_1507: Unknown result type (might be due to invalid IL or missing references) //IL_150e: Unknown result type (might be due to invalid IL or missing references) //IL_1519: Unknown result type (might be due to invalid IL or missing references) //IL_1520: Unknown result type (might be due to invalid IL or missing references) //IL_1527: Unknown result type (might be due to invalid IL or missing references) //IL_1533: Unknown result type (might be due to invalid IL or missing references) //IL_153a: Unknown result type (might be due to invalid IL or missing references) //IL_1541: Unknown result type (might be due to invalid IL or missing references) //IL_1548: Unknown result type (might be due to invalid IL or missing references) //IL_154a: Unknown result type (might be due to invalid IL or missing references) //IL_154f: Unknown result type (might be due to invalid IL or missing references) //IL_1551: Unknown result type (might be due to invalid IL or missing references) //IL_1556: Unknown result type (might be due to invalid IL or missing references) //IL_155d: Unknown result type (might be due to invalid IL or missing references) //IL_1568: Unknown result type (might be due to invalid IL or missing references) //IL_1574: Unknown result type (might be due to invalid IL or missing references) //IL_157b: Unknown result type (might be due to invalid IL or missing references) //IL_1582: Unknown result type (might be due to invalid IL or missing references) //IL_1589: Unknown result type (might be due to invalid IL or missing references) //IL_1590: Unknown result type (might be due to invalid IL or missing references) //IL_1597: Unknown result type (might be due to invalid IL or missing references) //IL_15a2: Unknown result type (might be due to invalid IL or missing references) //IL_15ae: Unknown result type (might be due to invalid IL or missing references) //IL_15b9: Unknown result type (might be due to invalid IL or missing references) //IL_15c0: Unknown result type (might be due to invalid IL or missing references) //IL_15da: Unknown result type (might be due to invalid IL or missing references) //IL_15e3: Expected O, but got Unknown //IL_15e4: Unknown result type (might be due to invalid IL or missing references) //IL_15e9: Unknown result type (might be due to invalid IL or missing references) //IL_15f0: Unknown result type (might be due to invalid IL or missing references) //IL_15f2: Unknown result type (might be due to invalid IL or missing references) //IL_15f7: Unknown result type (might be due to invalid IL or missing references) //IL_15f9: Unknown result type (might be due to invalid IL or missing references) //IL_15fe: Unknown result type (might be due to invalid IL or missing references) //IL_1609: Unknown result type (might be due to invalid IL or missing references) //IL_160b: Unknown result type (might be due to invalid IL or missing references) //IL_1610: Unknown result type (might be due to invalid IL or missing references) //IL_1617: Unknown result type (might be due to invalid IL or missing references) //IL_161e: Unknown result type (might be due to invalid IL or missing references) //IL_1625: Unknown result type (might be due to invalid IL or missing references) //IL_1630: Unknown result type (might be due to invalid IL or missing references) //IL_1637: Unknown result type (might be due to invalid IL or missing references) //IL_163e: Unknown result type (might be due to invalid IL or missing references) //IL_164a: Unknown result type (might be due to invalid IL or missing references) //IL_1651: Unknown result type (might be due to invalid IL or missing references) //IL_1658: Unknown result type (might be due to invalid IL or missing references) //IL_165f: Unknown result type (might be due to invalid IL or missing references) //IL_1661: Unknown result type (might be due to invalid IL or missing references) //IL_1666: Unknown result type (might be due to invalid IL or missing references) //IL_1668: Unknown result type (might be due to invalid IL or missing references) //IL_166d: Unknown result type (might be due to invalid IL or missing references) //IL_1674: Unknown result type (might be due to invalid IL or missing references) //IL_167f: Unknown result type (might be due to invalid IL or missing references) //IL_168b: Unknown result type (might be due to invalid IL or missing references) //IL_1692: Unknown result type (might be due to invalid IL or missing references) //IL_1699: Unknown result type (might be due to invalid IL or missing references) //IL_16a0: Unknown result type (might be due to invalid IL or missing references) //IL_16a7: Unknown result type (might be due to invalid IL or missing references) //IL_16ae: Unknown result type (might be due to invalid IL or missing references) //IL_16b9: Unknown result type (might be due to invalid IL or missing references) //IL_16c5: Unknown result type (might be due to invalid IL or missing references) //IL_16d0: Unknown result type (might be due to invalid IL or missing references) //IL_16d7: Unknown result type (might be due to invalid IL or missing references) //IL_16f1: Unknown result type (might be due to invalid IL or missing references) //IL_16fa: Expected O, but got Unknown //IL_16fb: Unknown result type (might be due to invalid IL or missing references) //IL_1700: Unknown result type (might be due to invalid IL or missing references) //IL_1707: Unknown result type (might be due to invalid IL or missing references) //IL_1709: Unknown result type (might be due to invalid IL or missing references) //IL_170e: Unknown result type (might be due to invalid IL or missing references) //IL_1710: Unknown result type (might be due to invalid IL or missing references) //IL_1715: Unknown result type (might be due to invalid IL or missing references) //IL_1720: Unknown result type (might be due to invalid IL or missing references) //IL_1722: Unknown result type (might be due to invalid IL or missing references) //IL_1727: Unknown result type (might be due to invalid IL or missing references) //IL_172e: Unknown result type (might be due to invalid IL or missing references) //IL_1735: Unknown result type (might be due to invalid IL or missing references) //IL_173c: Unknown result type (might be due to invalid IL or missing references) //IL_1747: Unknown result type (might be due to invalid IL or missing references) //IL_174e: Unknown result type (might be due to invalid IL or missing references) //IL_1755: Unknown result type (might be due to invalid IL or missing references) //IL_1761: Unknown result type (might be due to invalid IL or missing references) //IL_1768: Unknown result type (might be due to invalid IL or missing references) //IL_176f: Unknown result type (might be due to invalid IL or missing references) //IL_1776: Unknown result type (might be due to invalid IL or missing references) //IL_1778: Unknown result type (might be due to invalid IL or missing references) //IL_177d: Unknown result type (might be due to invalid IL or missing references) //IL_177f: Unknown result type (might be due to invalid IL or missing references) //IL_1784: Unknown result type (might be due to invalid IL or missing references) //IL_178b: Unknown result type (might be due to invalid IL or missing references) //IL_1796: Unknown result type (might be due to invalid IL or missing references) //IL_17a2: Unknown result type (might be due to invalid IL or missing references) //IL_17a9: Unknown result type (might be due to invalid IL or missing references) //IL_17b0: Unknown result type (might be due to invalid IL or missing references) //IL_17b7: Unknown result type (might be due to invalid IL or missing references) //IL_17be: Unknown result type (might be due to invalid IL or missing references) //IL_17c5: Unknown result type (might be due to invalid IL or missing references) //IL_17d0: Unknown result type (might be due to invalid IL or missing references) //IL_17dc: Unknown result type (might be due to invalid IL or missing references) //IL_17e7: Unknown result type (might be due to invalid IL or missing references) //IL_17ee: Unknown result type (might be due to invalid IL or missing references) //IL_1808: Unknown result type (might be due to invalid IL or missing references) //IL_1811: Expected O, but got Unknown //IL_1812: Unknown result type (might be due to invalid IL or missing references) //IL_1817: Unknown result type (might be due to invalid IL or missing references) //IL_181e: Unknown result type (might be due to invalid IL or missing references) //IL_1820: Unknown result type (might be due to invalid IL or missing references) //IL_1825: Unknown result type (might be due to invalid IL or missing references) //IL_1827: Unknown result type (might be due to invalid IL or missing references) //IL_182c: Unknown result type (might be due to invalid IL or missing references) //IL_1837: Unknown result type (might be due to invalid IL or missing references) //IL_1839: Unknown result type (might be due to invalid IL or missing references) //IL_183e: Unknown result type (might be due to invalid IL or missing references) //IL_1845: Unknown result type (might be due to invalid IL or missing references) //IL_184c: Unknown result type (might be due to invalid IL or missing references) //IL_1853: Unknown result type (might be due to invalid IL or missing references) //IL_185e: Unknown result type (might be due to invalid IL or missing references) //IL_1865: Unknown result type (might be due to invalid IL or missing references) //IL_186c: Unknown result type (might be due to invalid IL or missing references) //IL_1878: Unknown result type (might be due to invalid IL or missing references) //IL_187f: Unknown result type (might be due to invalid IL or missing references) //IL_1886: Unknown result type (might be due to invalid IL or missing references) //IL_188d: Unknown result type (might be due to invalid IL or missing references) //IL_188f: Unknown result type (might be due to invalid IL or missing references) //IL_1894: Unknown result type (might be due to invalid IL or missing references) //IL_1896: Unknown result type (might be due to invalid IL or missing references) //IL_189b: Unknown result type (might be due to invalid IL or missing references) //IL_18a2: Unknown result type (might be due to invalid IL or missing references) //IL_18ad: Unknown result type (might be due to invalid IL or missing references) //IL_18b9: Unknown result type (might be due to invalid IL or missing references) //IL_18c0: Unknown result type (might be due to invalid IL or missing references) //IL_18c7: Unknown result type (might be due to invalid IL or missing references) //IL_18ce: Unknown result type (might be due to invalid IL or missing references) //IL_18d5: Unknown result type (might be due to invalid IL or missing references) //IL_18dc: Unknown result type (might be due to invalid IL or missing references) //IL_18e7: Unknown result type (might be due to invalid IL or missing references) //IL_18f3: Unknown result type (might be due to invalid IL or missing references) //IL_18fe: Unknown result type (might be due to invalid IL or missing references) //IL_1905: Unknown result type (might be due to invalid IL or missing references) //IL_191f: Unknown result type (might be due to invalid IL or missing references) //IL_1928: Expected O, but got Unknown //IL_1929: Unknown result type (might be due to invalid IL or missing references) //IL_192e: Unknown result type (might be due to invalid IL or missing references) //IL_1935: Unknown result type (might be due to invalid IL or missing references) //IL_1937: Unknown result type (might be due to invalid IL or missing references) //IL_193c: Unknown result type (might be due to invalid IL or missing references) //IL_193e: Unknown result type (might be due to invalid IL or missing references) //IL_1943: Unknown result type (might be due to invalid IL or missing references) //IL_194e: Unknown result type (might be due to invalid IL or missing references) //IL_1950: Unknown result type (might be due to invalid IL or missing references) //IL_1955: Unknown result type (might be due to invalid IL or missing references) //IL_195c: Unknown result type (might be due to invalid IL or missing references) //IL_1963: Unknown result type (might be due to invalid IL or missing references) //IL_196a: Unknown result type (might be due to invalid IL or missing references) //IL_1975: Unknown result type (might be due to invalid IL or missing references) //IL_197c: Unknown result type (might be due to invalid IL or missing references) //IL_1983: Unknown result type (might be due to invalid IL or missing references) //IL_198f: Unknown result type (might be due to invalid IL or missing references) //IL_1996: Unknown result type (might be due to invalid IL or missing references) //IL_199d: Unknown result type (might be due to invalid IL or missing references) //IL_19a4: Unknown result type (might be due to invalid IL or missing references) //IL_19a6: Unknown result type (might be due to invalid IL or missing references) //IL_19ab: Unknown result type (might be due to invalid IL or missing references) //IL_19ad: Unknown result type (might be due to invalid IL or missing references) //IL_19b2: Unknown result type (might be due to invalid IL or missing references) //IL_19b9: Unknown result type (might be due to invalid IL or missing references) //IL_19c4: Unknown result type (might be due to invalid IL or missing references) //IL_19d0: Unknown result type (might be due to invalid IL or missing references) //IL_19d7: Unknown result type (might be due to invalid IL or missing references) //IL_19de: Unknown result type (might be due to invalid IL or missing references) //IL_19e5: Unknown result type (might be due to invalid IL or missing references) //IL_19ec: Unknown result type (might be due to invalid IL or missing references) //IL_19f3: Unknown result type (might be due to invalid IL or missing references) //IL_19fe: Unknown result type (might be due to invalid IL or missing references) //IL_1a0a: Unknown result type (might be due to invalid IL or missing references) //IL_1a15: Unknown result type (might be due to invalid IL or missing references) //IL_1a1c: Unknown result type (might be due to invalid IL or missing references) //IL_1a36: Unknown result type (might be due to invalid IL or missing references) //IL_1a3f: Expected O, but got Unknown //IL_1a40: Unknown result type (might be due to invalid IL or missing references) //IL_1a45: Unknown result type (might be due to invalid IL or missing references) //IL_1a4c: Unknown result type (might be due to invalid IL or missing references) //IL_1a4e: Unknown result type (might be due to invalid IL or missing references) //IL_1a53: Unknown result type (might be due to invalid IL or missing references) //IL_1a55: Unknown result type (might be due to invalid IL or missing references) //IL_1a5a: Unknown result type (might be due to invalid IL or missing references) //IL_1a65: Unknown result type (might be due to invalid IL or missing references) //IL_1a67: Unknown result type (might be due to invalid IL or missing references) //IL_1a6c: Unknown result type (might be due to invalid IL or missing references) //IL_1a73: Unknown result type (might be due to invalid IL or missing references) //IL_1a7a: Unknown result type (might be due to invalid IL or missing references) //IL_1a81: Unknown result type (might be due to invalid IL or missing references) //IL_1a8c: Unknown result type (might be due to invalid IL or missing references) //IL_1a93: Unknown result type (might be due to invalid IL or missing references) //IL_1a9a: Unknown result type (might be due to invalid IL or missing references) //IL_1aa6: Unknown result type (might be due to invalid IL or missing references) //IL_1aad: Unknown result type (might be due to invalid IL or missing references) //IL_1ab4: Unknown result type (might be due to invalid IL or missing references) //IL_1abb: Unknown result type (might be due to invalid IL or missing references) //IL_1abd: Unknown result type (might be due to invalid IL or missing references) //IL_1ac2: Unknown result type (might be due to invalid IL or missing references) //IL_1ac4: Unknown result type (might be due to invalid IL or missing references) //IL_1ac9: Unknown result type (might be due to invalid IL or missing references) //IL_1ad0: Unknown result type (might be due to invalid IL or missing references) //IL_1adb: Unknown result type (might be due to invalid IL or missing references) //IL_1ae7: Unknown result type (might be due to invalid IL or missing references) //IL_1aee: Unknown result type (might be due to invalid IL or missing references) //IL_1af5: Unknown result type (might be due to invalid IL or missing references) //IL_1afc: Unknown result type (might be due to invalid IL or missing references) //IL_1b03: Unknown result type (might be due to invalid IL or missing references) //IL_1b0a: Unknown result type (might be due to invalid IL or missing references) //IL_1b15: Unknown result type (might be due to invalid IL or missing references) //IL_1b21: Unknown result type (might be due to invalid IL or missing references) //IL_1b2c: Unknown result type (might be due to invalid IL or missing references) //IL_1b33: Unknown result type (might be due to invalid IL or missing references) //IL_1b4d: Unknown result type (might be due to invalid IL or missing references) //IL_1b56: Expected O, but got Unknown //IL_1b57: Unknown result type (might be due to invalid IL or missing references) //IL_1b5c: Unknown result type (might be due to invalid IL or missing references) //IL_1b63: Unknown result type (might be due to invalid IL or missing references) //IL_1b65: Unknown result type (might be due to invalid IL or missing references) //IL_1b6a: Unknown result type (might be due to invalid IL or missing references) //IL_1b6c: Unknown result type (might be due to invalid IL or missing references) //IL_1b71: Unknown result type (might be due to invalid IL or missing references) //IL_1b7c: Unknown result type (might be due to invalid IL or missing references) //IL_1b7e: Unknown result type (might be due to invalid IL or missing references) //IL_1b83: Unknown result type (might be due to invalid IL or missing references) //IL_1b8a: Unknown result type (might be due to invalid IL or missing references) //IL_1b91: Unknown result type (might be due to invalid IL or missing references) //IL_1b98: Unknown result type (might be due to invalid IL or missing references) //IL_1ba3: Unknown result type (might be due to invalid IL or missing references) //IL_1baa: Unknown result type (might be due to invalid IL or missing references) //IL_1bb1: Unknown result type (might be due to invalid IL or missing references) //IL_1bbd: Unknown result type (might be due to invalid IL or missing references) //IL_1bc4: Unknown result type (might be due to invalid IL or missing references) //IL_1bcb: Unknown result type (might be due to invalid IL or missing references) //IL_1bd2: Unknown result type (might be due to invalid IL or missing references) //IL_1bd4: Unknown result type (might be due to invalid IL or missing references) //IL_1bd9: Unknown result type (might be due to invalid IL or missing references) //IL_1bdb: Unknown result type (might be due to invalid IL or missing references) //IL_1be0: Unknown result type (might be due to invalid IL or missing references) //IL_1be7: Unknown result type (might be due to invalid IL or missing references) //IL_1bf2: Unknown result type (might be due to invalid IL or missing references) //IL_1bfe: Unknown result type (might be due to invalid IL or missing references) //IL_1c05: Unknown result type (might be due to invalid IL or missing references) //IL_1c0c: Unknown result type (might be due to invalid IL or missing references) //IL_1c13: Unknown result type (might be due to invalid IL or missing references) //IL_1c1a: Unknown result type (might be due to invalid IL or missing references) //IL_1c21: Unknown result type (might be due to invalid IL or missing references) //IL_1c2c: Unknown result type (might be due to invalid IL or missing references) //IL_1c38: Unknown result type (might be due to invalid IL or missing references) //IL_1c43: Unknown result type (might be due to invalid IL or missing references) //IL_1c4a: Unknown result type (might be due to invalid IL or missing references) //IL_1c64: Unknown result type (might be due to invalid IL or missing references) //IL_1c6d: Expected O, but got Unknown //IL_1c6e: Unknown result type (might be due to invalid IL or missing references) //IL_1c73: Unknown result type (might be due to invalid IL or missing references) //IL_1c7a: Unknown result type (might be due to invalid IL or missing references) //IL_1c7c: Unknown result type (might be due to invalid IL or missing references) //IL_1c81: Unknown result type (might be due to invalid IL or missing references) //IL_1c83: Unknown result type (might be due to invalid IL or missing references) //IL_1c88: Unknown result type (might be due to invalid IL or missing references) //IL_1c93: Unknown result type (might be due to invalid IL or missing references) //IL_1c95: Unknown result type (might be due to invalid IL or missing references) //IL_1c9a: Unknown result type (might be due to invalid IL or missing references) //IL_1ca1: Unknown result type (might be due to invalid IL or missing references) //IL_1ca8: Unknown result type (might be due to invalid IL or missing references) //IL_1caf: Unknown result type (might be due to invalid IL or missing references) //IL_1cba: Unknown result type (might be due to invalid IL or missing references) //IL_1cc1: Unknown result type (might be due to invalid IL or missing references) //IL_1cc8: Unknown result type (might be due to invalid IL or missing references) //IL_1cd4: Unknown result type (might be due to invalid IL or missing references) //IL_1cdb: Unknown result type (might be due to invalid IL or missing references) //IL_1ce2: Unknown result type (might be due to invalid IL or missing references) //IL_1ce9: Unknown result type (might be due to invalid IL or missing references) //IL_1ceb: Unknown result type (might be due to invalid IL or missing references) //IL_1cf0: Unknown result type (might be due to invalid IL or missing references) //IL_1cf2: Unknown result type (might be due to invalid IL or missing references) //IL_1cf7: Unknown result type (might be due to invalid IL or missing references) //IL_1cfe: Unknown result type (might be due to invalid IL or missing references) //IL_1d09: Unknown result type (might be due to invalid IL or missing references) //IL_1d15: Unknown result type (might be due to invalid IL or missing references) //IL_1d1c: Unknown result type (might be due to invalid IL or missing references) //IL_1d23: Unknown result type (might be due to invalid IL or missing references) //IL_1d2a: Unknown result type (might be due to invalid IL or missing references) //IL_1d31: Unknown result type (might be due to invalid IL or missing references) //IL_1d38: Unknown result type (might be due to invalid IL or missing references) //IL_1d43: Unknown result type (might be due to invalid IL or missing references) //IL_1d4f: Unknown result type (might be due to invalid IL or missing references) //IL_1d5a: Unknown result type (might be due to invalid IL or missing references) //IL_1d61: Unknown result type (might be due to invalid IL or missing references) //IL_1d7b: Unknown result type (might be due to invalid IL or missing references) //IL_1d84: Expected O, but got Unknown //IL_1d85: Unknown result type (might be due to invalid IL or missing references) //IL_1d8a: Unknown result type (might be due to invalid IL or missing references) //IL_1d91: Unknown result type (might be due to invalid IL or missing references) //IL_1d93: Unknown result type (might be due to invalid IL or missing references) //IL_1d98: Unknown result type (might be due to invalid IL or missing references) //IL_1d9a: Unknown result type (might be due to invalid IL or missing references) //IL_1d9f: Unknown result type (might be due to invalid IL or missing references) //IL_1daa: Unknown result type (might be due to invalid IL or missing references) //IL_1dac: Unknown result type (might be due to invalid IL or missing references) //IL_1db1: Unknown result type (might be due to invalid IL or missing references) //IL_1db8: Unknown result type (might be due to invalid IL or missing references) //IL_1dbf: Unknown result type (might be due to invalid IL or missing references) //IL_1dc6: Unknown result type (might be due to invalid IL or missing references) //IL_1dd1: Unknown result type (might be due to invalid IL or missing references) //IL_1dd8: Unknown result type (might be due to invalid IL or missing references) //IL_1ddf: Unknown result type (might be due to invalid IL or missing references) //IL_1deb: Unknown result type (might be due to invalid IL or missing references) //IL_1df2: Unknown result type (might be due to invalid IL or missing references) //IL_1df9: Unknown result type (might be due to invalid IL or missing references) //IL_1e00: Unknown result type (might be due to invalid IL or missing references) //IL_1e02: Unknown result type (might be due to invalid IL or missing references) //IL_1e07: Unknown result type (might be due to invalid IL or missing references) //IL_1e09: Unknown result type (might be due to invalid IL or missing references) //IL_1e0e: Unknown result type (might be due to invalid IL or missing references) //IL_1e15: Unknown result type (might be due to invalid IL or missing references) //IL_1e20: Unknown result type (might be due to invalid IL or missing references) //IL_1e2c: Unknown result type (might be due to invalid IL or missing references) //IL_1e33: Unknown result type (might be due to invalid IL or missing references) //IL_1e3a: Unknown result type (might be due to invalid IL or missing references) //IL_1e41: Unknown result type (might be due to invalid IL or missing references) //IL_1e48: Unknown result type (might be due to invalid IL or missing references) //IL_1e4f: Unknown result type (might be due to invalid IL or missing references) //IL_1e5a: Unknown result type (might be due to invalid IL or missing references) //IL_1e66: Unknown result type (might be due to invalid IL or missing references) //IL_1e71: Unknown result type (might be due to invalid IL or missing references) //IL_1e78: Unknown result type (might be due to invalid IL or missing references) //IL_1e92: Unknown result type (might be due to invalid IL or missing references) //IL_1e9b: Expected O, but got Unknown //IL_1e9c: Unknown result type (might be due to invalid IL or missing references) //IL_1ea1: Unknown result type (might be due to invalid IL or missing references) //IL_1ea8: Unknown result type (might be due to invalid IL or missing references) //IL_1eaa: Unknown result type (might be due to invalid IL or missing references) //IL_1eaf: Unknown result type (might be due to invalid IL or missing references) //IL_1eb1: Unknown result type (might be due to invalid IL or missing references) //IL_1eb6: Unknown result type (might be due to invalid IL or missing references) //IL_1ec1: Unknown result type (might be due to invalid IL or missing references) //IL_1ec3: Unknown result type (might be due to invalid IL or missing references) //IL_1ec8: Unknown result type (might be due to invalid IL or missing references) //IL_1ecf: Unknown result type (might be due to invalid IL or missing references) //IL_1ed6: Unknown result type (might be due to invalid IL or missing references) //IL_1edd: Unknown result type (might be due to invalid IL or missing references) //IL_1ee8: Unknown result type (might be due to invalid IL or missing references) //IL_1eef: Unknown result type (might be due to invalid IL or missing references) //IL_1ef6: Unknown result type (might be due to invalid IL or missing references) //IL_1f02: Unknown result type (might be due to invalid IL or missing references) //IL_1f09: Unknown result type (might be due to invalid IL or missing references) //IL_1f10: Unknown result type (might be due to invalid IL or missing references) //IL_1f17: Unknown result type (might be due to invalid IL or missing references) //IL_1f19: Unknown result type (might be due to invalid IL or missing references) //IL_1f1e: Unknown result type (might be due to invalid IL or missing references) //IL_1f20: Unknown result type (might be due to invalid IL or missing references) //IL_1f25: Unknown result type (might be due to invalid IL or missing references) //IL_1f2c: Unknown result type (might be due to invalid IL or missing references) //IL_1f37: Unknown result type (might be due to invalid IL or missing references) //IL_1f43: Unknown result type (might be due to invalid IL or missing references) //IL_1f4a: Unknown result type (might be due to invalid IL or missing references) //IL_1f51: Unknown result type (might be due to invalid IL or missing references) //IL_1f58: Unknown result type (might be due to invalid IL or missing references) //IL_1f5f: Unknown result type (might be due to invalid IL or missing references) //IL_1f66: Unknown result type (might be due to invalid IL or missing references) //IL_1f71: Unknown result type (might be due to invalid IL or missing references) //IL_1f7d: Unknown result type (might be due to invalid IL or missing references) //IL_1f88: Unknown result type (might be due to invalid IL or missing references) //IL_1f8f: Unknown result type (might be due to invalid IL or missing references) //IL_1fa9: Unknown result type (might be due to invalid IL or missing references) //IL_1fb2: Expected O, but got Unknown //IL_1fb3: Unknown result type (might be due to invalid IL or missing references) //IL_1fb8: Unknown result type (might be due to invalid IL or missing references) //IL_1fbf: Unknown result type (might be due to invalid IL or missing references) //IL_1fc1: Unknown result type (might be due to invalid IL or missing references) //IL_1fc6: Unknown result type (might be due to invalid IL or missing references) //IL_1fc8: Unknown result type (might be due to invalid IL or missing references) //IL_1fcd: Unknown result type (might be due to invalid IL or missing references) //IL_1fd8: Unknown result type (might be due to invalid IL or missing references) //IL_1fda: Unknown result type (might be due to invalid IL or missing references) //IL_1fdf: Unknown result type (might be due to invalid IL or missing references) //IL_1fea: Unknown result type (might be due to invalid IL or missing references) //IL_1ff1: Unknown result type (might be due to invalid IL or missing references) //IL_1ff8: Unknown result type (might be due to invalid IL or missing references) //IL_2003: Unknown result type (might be due to invalid IL or missing references) //IL_200a: Unknown result type (might be due to invalid IL or missing references) //IL_2011: Unknown result type (might be due to invalid IL or missing references) //IL_201d: Unknown result type (might be due to invalid IL or missing references) //IL_2024: Unknown result type (might be due to invalid IL or missing references) //IL_202b: Unknown result type (might be due to invalid IL or missing references) //IL_2032: Unknown result type (might be due to invalid IL or missing references) //IL_2034: Unknown result type (might be due to invalid IL or missing references) //IL_2039: Unknown result type (might be due to invalid IL or missing references) //IL_203b: Unknown result type (might be due to invalid IL or missing references) //IL_2040: Unknown result type (might be due to invalid IL or missing references) //IL_2047: Unknown result type (might be due to invalid IL or missing references) //IL_2052: Unknown result type (might be due to invalid IL or missing references) //IL_205e: Unknown result type (might be due to invalid IL or missing references) //IL_2065: Unknown result type (might be due to invalid IL or missing references) //IL_206c: Unknown result type (might be due to invalid IL or missing references) //IL_2073: Unknown result type (might be due to invalid IL or missing references) //IL_207a: Unknown result type (might be due to invalid IL or missing references) //IL_2081: Unknown result type (might be due to invalid IL or missing references) //IL_208c: Unknown result type (might be due to invalid IL or missing references) //IL_2098: Unknown result type (might be due to invalid IL or missing references) //IL_20a3: Unknown result type (might be due to invalid IL or missing references) //IL_20aa: Unknown result type (might be due to invalid IL or missing references) //IL_20c4: Unknown result type (might be due to invalid IL or missing references) //IL_20cd: Expected O, but got Unknown //IL_20ce: Unknown result type (might be due to invalid IL or missing references) //IL_20d3: Unknown result type (might be due to invalid IL or missing references) //IL_20da: Unknown result type (might be due to invalid IL or missing references) //IL_20dc: Unknown result type (might be due to invalid IL or missing references) //IL_20e1: Unknown result type (might be due to invalid IL or missing references) //IL_20e3: Unknown result type (might be due to invalid IL or missing references) //IL_20e8: Unknown result type (might be due to invalid IL or missing references) //IL_20f3: Unknown result type (might be due to invalid IL or missing references) //IL_20f5: Unknown result type (might be due to invalid IL or missing references) //IL_20fa: Unknown result type (might be due to invalid IL or missing references) //IL_2101: Unknown result type (might be due to invalid IL or missing references) //IL_2108: Unknown result type (might be due to invalid IL or missing references) //IL_210f: Unknown result type (might be due to invalid IL or missing references) //IL_211a: Unknown result type (might be due to invalid IL or missing references) //IL_2121: Unknown result type (might be due to invalid IL or missing references) //IL_2128: Unknown result type (might be due to invalid IL or missing references) //IL_2134: Unknown result type (might be due to invalid IL or missing references) //IL_213b: Unknown result type (might be due to invalid IL or missing references) //IL_2142: Unknown result type (might be due to invalid IL or missing references) //IL_2149: Unknown result type (might be due to invalid IL or missing references) //IL_214b: Unknown result type (might be due to invalid IL or missing references) //IL_2150: Unknown result type (might be due to invalid IL or missing references) //IL_2152: Unknown result type (might be due to invalid IL or missing references) //IL_2157: Unknown result type (might be due to invalid IL or missing references) //IL_215e: Unknown result type (might be due to invalid IL or missing references) //IL_2169: Unknown result type (might be due to invalid IL or missing references) //IL_2175: Unknown result type (might be due to invalid IL or missing references) //IL_217c: Unknown result type (might be due to invalid IL or missing references) //IL_2183: Unknown result type (might be due to invalid IL or missing references) //IL_218a: Unknown result type (might be due to invalid IL or missing references) //IL_2191: Unknown result type (might be due to invalid IL or missing references) //IL_2198: Unknown result type (might be due to invalid IL or missing references) //IL_21a3: Unknown result type (might be due to invalid IL or missing references) //IL_21af: Unknown result type (might be due to invalid IL or missing references) //IL_21ba: Unknown result type (might be due to invalid IL or missing references) //IL_21c1: Unknown result type (might be due to invalid IL or missing references) //IL_21db: Unknown result type (might be due to invalid IL or missing references) //IL_21e4: Expected O, but got Unknown //IL_21e5: Unknown result type (might be due to invalid IL or missing references) //IL_21ea: Unknown result type (might be due to invalid IL or missing references) //IL_21f1: Unknown result type (might be due to invalid IL or missing references) //IL_21f3: Unknown result type (might be due to invalid IL or missing references) //IL_21f8: Unknown result type (might be due to invalid IL or missing references) //IL_21fa: Unknown result type (might be due to invalid IL or missing references) //IL_21ff: Unknown result type (might be due to invalid IL or missing references) //IL_220a: Unknown result type (might be due to invalid IL or missing references) //IL_220c: Unknown result type (might be due to invalid IL or missing references) //IL_2211: Unknown result type (might be due to invalid IL or missing references) //IL_2218: Unknown result type (might be due to invalid IL or missing references) //IL_221f: Unknown result type (might be due to invalid IL or missing references) //IL_2226: Unknown result type (might be due to invalid IL or missing references) //IL_2231: Unknown result type (might be due to invalid IL or missing references) //IL_2238: Unknown result type (might be due to invalid IL or missing references) //IL_223f: Unknown result type (might be due to invalid IL or missing references) //IL_224b: Unknown result type (might be due to invalid IL or missing references) //IL_2252: Unknown result type (might be due to invalid IL or missing references) //IL_2259: Unknown result type (might be due to invalid IL or missing references) //IL_2260: Unknown result type (might be due to invalid IL or missing references) //IL_2262: Unknown result type (might be due to invalid IL or missing references) //IL_2267: Unknown result type (might be due to invalid IL or missing references) //IL_2269: Unknown result type (might be due to invalid IL or missing references) //IL_226e: Unknown result type (might be due to invalid IL or missing references) //IL_2275: Unknown result type (might be due to invalid IL or missing references) //IL_2280: Unknown result type (might be due to invalid IL or missing references) //IL_228c: Unknown result type (might be due to invalid IL or missing references) //IL_2293: Unknown result type (might be due to invalid IL or missing references) //IL_229a: Unknown result type (might be due to invalid IL or missing references) //IL_22a1: Unknown result type (might be due to invalid IL or missing references) //IL_22a8: Unknown result type (might be due to invalid IL or missing references) //IL_22af: Unknown result type (might be due to invalid IL or missing references) //IL_22ba: Unknown result type (might be due to invalid IL or missing references) //IL_22c6: Unknown result type (might be due to invalid IL or missing references) //IL_22d1: Unknown result type (might be due to invalid IL or missing references) //IL_22d8: Unknown result type (might be due to invalid IL or missing references) //IL_22f2: Unknown result type (might be due to invalid IL or missing references) //IL_22fb: Expected O, but got Unknown //IL_22fc: Unknown result type (might be due to invalid IL or missing references) //IL_2301: Unknown result type (might be due to invalid IL or missing references) //IL_2308: Unknown result type (might be due to invalid IL or missing references) //IL_230a: Unknown result type (might be due to invalid IL or missing references) //IL_230f: Unknown result type (might be due to invalid IL or missing references) //IL_2311: Unknown result type (might be due to invalid IL or missing references) //IL_2316: Unknown result type (might be due to invalid IL or missing references) //IL_2321: Unknown result type (might be due to invalid IL or missing references) //IL_2323: Unknown result type (might be due to invalid IL or missing references) //IL_2328: Unknown result type (might be due to invalid IL or missing references) //IL_232f: Unknown result type (might be due to invalid IL or missing references) //IL_233a: Unknown result type (might be due to invalid IL or missing references) //IL_2341: Unknown result type (might be due to invalid IL or missing references) //IL_234c: Unknown result type (might be due to invalid IL or missing references) //IL_2353: Unknown result type (might be due to invalid IL or missing references) //IL_235a: Unknown result type (might be due to invalid IL or missing references) //IL_2366: Unknown result type (might be due to invalid IL or missing references) //IL_236d: Unknown result type (might be due to invalid IL or missing references) //IL_2374: Unknown result type (might be due to invalid IL or missing references) //IL_237b: Unknown result type (might be due to invalid IL or missing references) //IL_237d: Unknown result type (might be due to invalid IL or missing references) //IL_2382: Unknown result type (might be due to invalid IL or missing references) //IL_2384: Unknown result type (might be due to invalid IL or missing references) //IL_2389: Unknown result type (might be due to invalid IL or missing references) //IL_2390: Unknown result type (might be due to invalid IL or missing references) //IL_239b: Unknown result type (might be due to invalid IL or missing references) //IL_23a7: Unknown result type (might be due to invalid IL or missing references) //IL_23ae: Unknown result type (might be due to invalid IL or missing references) //IL_23b5: Unknown result type (might be due to invalid IL or missing references) //IL_23bc: Unknown result type (might be due to invalid IL or missing references) //IL_23c3: Unknown result type (might be due to invalid IL or missing references) //IL_23ca: Unknown result type (might be due to invalid IL or missing references) //IL_23d5: Unknown result type (might be due to invalid IL or missing references) //IL_23e1: Unknown result type (might be due to invalid IL or missing references) //IL_23ec: Unknown result type (might be due to invalid IL or missing references) //IL_23f3: Unknown result type (might be due to invalid IL or missing references) //IL_240d: Unknown result type (might be due to invalid IL or missing references) //IL_2416: Expected O, but got Unknown DungeonFlow val = ScriptableObject.CreateInstance(); DungeonFlowNode val2 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.elevator_entrance, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val3 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val4 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val5 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val6 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)1, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val7 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = true, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val8 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val9 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val10 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val11 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val12 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val13 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.boss_foyer, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val14 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)3, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = ExpandPrefabs.bosstable_02_beholster, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val15 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)8, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.exit_room_basic, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val16 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val17 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val18 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val19 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val20 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val21 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)4, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.gungeon_rewardroom_1, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = true, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val22 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val23 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)1, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val24 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val25 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val26 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val27 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val28 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = true, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val29 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val30 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val31 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)4, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.gungeon_rewardroom_1, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val32 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val33 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)6, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val34 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)5, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = ExpandPrefabs.shop_room_table, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; ((Object)val).name = "Complex_Flow_Test"; val.fallbackRoomTable = BossrushFlows.Bossrush_01_Castle.fallbackRoomTable; val.subtypeRestrictions = new List(0); val.flowInjectionData = new List(0); val.sharedInjectionData = new List(0); val.Initialize(); val.AddNodeToFlow(val2, (DungeonFlowNode)null); val.AddNodeToFlow(val3, val32); val.AddNodeToFlow(val4, val3); val.AddNodeToFlow(val5, val4); val.AddNodeToFlow(val6, val5); val.AddNodeToFlow(val7, val9); val.AddNodeToFlow(val8, val6); val.AddNodeToFlow(val9, val7); val.AddNodeToFlow(val10, val11); val.AddNodeToFlow(val11, val6); val.AddNodeToFlow(val12, val8); val.AddNodeToFlow(val13, val12); val.AddNodeToFlow(val14, val13); val.AddNodeToFlow(val15, val14); val.AddNodeToFlow(val16, (DungeonFlowNode)null); val.AddNodeToFlow(val17, val16); val.AddNodeToFlow(val18, val17); val.AddNodeToFlow(val19, val18); val.AddNodeToFlow(val20, val12); val.AddNodeToFlow(val21, val20); val.AddNodeToFlow(val22, val2); val.AddNodeToFlow(val23, val22); val.AddNodeToFlow(val24, val25); val.AddNodeToFlow(val25, val26); val.AddNodeToFlow(val26, val27); val.AddNodeToFlow(val27, val23); val.AddNodeToFlow(val28, val23); val.AddNodeToFlow(val29, val28); val.AddNodeToFlow(val30, val29); val.AddNodeToFlow(val31, val30); val.AddNodeToFlow(val32, val26); val.AddNodeToFlow(val33, val3); val.AddNodeToFlow(val34, val24); val.LoopConnectNodes(val7, val11); val.LoopConnectNodes(val21, val6); val.LoopConnectNodes(val28, val31); val.FirstNode = val2; return val; } } public class custom_glitchchestalt_flow { public static int LoopRoomCount = 4; public static int SingleChainRoomCount = 3; private static DungeonFlow m_custom_glitchchestalt_flow; public static DungeonFlow Custom_GlitchChestAlt_Flow { get { if (!Object.op_Implicit((Object)(object)m_custom_glitchchestalt_flow)) { m_custom_glitchchestalt_flow = m_Custom_GlitchChestAlt_Flow(); } return m_custom_glitchchestalt_flow; } } private static DungeonFlow m_Custom_GlitchChestAlt_Flow() { //IL_0207: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Unknown result type (might be due to invalid IL or missing references) //IL_0225: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Unknown result type (might be due to invalid IL or missing references) //IL_0243: Unknown result type (might be due to invalid IL or missing references) //IL_0254: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Unknown result type (might be due to invalid IL or missing references) //IL_0274: Unknown result type (might be due to invalid IL or missing references) DungeonFlow val = ScriptableObject.CreateInstance(); List list = new List(); List list2 = new List(); List list3 = new List(); List list4 = new List(); DungeonFlowNode val2 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)7, ExpandPrefabs.big_entrance, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val3 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)1, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val4 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)5, null, ExpandPrefabs.shop_room_table, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val5 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, ExpandPrefabs.reward_room, null, oneWayLoopTarget: true, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val6 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)4, ExpandPrefabs.gungeon_rewardroom_1, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val7 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)4, ExpandPrefabs.gungeon_rewardroom_1, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val8 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, ExpandPrefabs.reward_room, null, oneWayLoopTarget: true, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val9 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)8, ExpandPrefabs.tiny_exit, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val10 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, ExpandPrefabs.boss_foyer, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val11 = ((!Object.op_Implicit((Object)(object)ExpandPrefabs.doublebeholstertable)) ? ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)3, ExpandPrefabs.doublebeholsterroom01, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0) : ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)3, null, ExpandPrefabs.doublebeholstertable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0)); DungeonFlowNode val12 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)3, ExpandPrefabs.tutorial_minibossroom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val13 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, ExpandPrefabs.boss_foyer, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); for (int i = 0; i < LoopRoomCount + 1; i++) { list.Add(ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0)); list4.Add(ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0)); } for (int j = 0; j < SingleChainRoomCount + 1; j++) { list2.Add(ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0)); list3.Add(ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0)); } list[0].roomCategory = (RoomCategory)0; list[LoopRoomCount].roomCategory = (RoomCategory)0; list2[0].roomCategory = (RoomCategory)0; list2[SingleChainRoomCount].roomCategory = (RoomCategory)0; list3[0].roomCategory = (RoomCategory)0; list3[SingleChainRoomCount].roomCategory = (RoomCategory)0; list4[0].roomCategory = (RoomCategory)0; list4[LoopRoomCount].roomCategory = (RoomCategory)0; bool flag = BraveUtility.RandomBool(); ((Object)val).name = "Custom_GlitchChestAlt_Flow"; val.fallbackRoomTable = ExpandPrefabs.CustomRoomTable2; val.subtypeRestrictions = new List { ExpandDungeonFlow.BaseSubTypeRestrictions }; val.flowInjectionData = new List(0); val.sharedInjectionData = new List { ExpandDungeonFlow.BaseSharedInjectionData }; val.Initialize(); val.AddNodeToFlow(val3, (DungeonFlowNode)null); val.AddNodeToFlow(val2, val3); val.AddNodeToFlow(list[0], val3); for (int k = 1; k < LoopRoomCount + 1; k++) { val.AddNodeToFlow(list[k], list[k - 1]); } val.AddNodeToFlow(val4, list[LoopRoomCount]); val.AddNodeToFlow(val5, val4); val.LoopConnectNodes(val3, val5); val.AddNodeToFlow(list2[0], val3); for (int l = 1; l < SingleChainRoomCount + 1; l++) { val.AddNodeToFlow(list2[l], list2[l - 1]); } val.AddNodeToFlow(val6, list2[SingleChainRoomCount]); if (flag) { val.AddNodeToFlow(val10, val6); val.AddNodeToFlow(val11, val10); val.AddNodeToFlow(val9, val11); } else { val.AddNodeToFlow(val13, val6); val.AddNodeToFlow(val12, val13); } val.AddNodeToFlow(list3[0], val2); for (int m = 1; m < SingleChainRoomCount + 1; m++) { val.AddNodeToFlow(list3[m], list3[m - 1]); } val.AddNodeToFlow(val7, list3[SingleChainRoomCount]); if (flag) { val.AddNodeToFlow(val13, val7); val.AddNodeToFlow(val12, val13); } else { val.AddNodeToFlow(val10, val7); val.AddNodeToFlow(val11, val10); val.AddNodeToFlow(val9, val11); } val.AddNodeToFlow(list4[0], val2); for (int n = 1; n < LoopRoomCount + 1; n++) { val.AddNodeToFlow(list4[n], list4[n - 1]); } val.AddNodeToFlow(val8, list4[LoopRoomCount]); val.LoopConnectNodes(val8, val2); val.FirstNode = val3; return val; } } public class custom_glitchchest_flow { private static DungeonFlow m_custom_glitchchest_flow; public static DungeonFlow Custom_GlitchChest_Flow { get { if (!Object.op_Implicit((Object)(object)m_custom_glitchchest_flow)) { m_custom_glitchchest_flow = m_Custom_GlitchChest_Flow(); } return m_custom_glitchchest_flow; } } private static DungeonFlow m_Custom_GlitchChest_Flow() { //IL_0006: 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_000d: 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_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0043: 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_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_006e: 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_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0091: 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_009a: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: 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: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0110: 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_0123: Expected O, but got Unknown //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_0130: 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_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0150: 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_0162: 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_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_0187: 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_018e: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_019a: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Unknown result type (might be due to invalid IL or missing references) //IL_01b3: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: Unknown result type (might be due to invalid IL or missing references) //IL_01e0: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: 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_0208: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_021b: Expected O, but got Unknown //IL_021c: 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_0228: Unknown result type (might be due to invalid IL or missing references) //IL_022a: Unknown result type (might be due to invalid IL or missing references) //IL_022f: Unknown result type (might be due to invalid IL or missing references) //IL_0231: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_0243: Unknown result type (might be due to invalid IL or missing references) //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_024f: Unknown result type (might be due to invalid IL or missing references) //IL_0256: Unknown result type (might be due to invalid IL or missing references) //IL_025d: Unknown result type (might be due to invalid IL or missing references) //IL_0264: Unknown result type (might be due to invalid IL or missing references) //IL_026b: Unknown result type (might be due to invalid IL or missing references) //IL_0272: Unknown result type (might be due to invalid IL or missing references) //IL_0279: Unknown result type (might be due to invalid IL or missing references) //IL_027b: Unknown result type (might be due to invalid IL or missing references) //IL_0280: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_0287: Unknown result type (might be due to invalid IL or missing references) //IL_028e: Unknown result type (might be due to invalid IL or missing references) //IL_0299: 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_02a7: Unknown result type (might be due to invalid IL or missing references) //IL_02ae: 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) //IL_02bc: Unknown result type (might be due to invalid IL or missing references) //IL_02c8: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02db: Unknown result type (might be due to invalid IL or missing references) //IL_02e6: Unknown result type (might be due to invalid IL or missing references) //IL_02fc: Unknown result type (might be due to invalid IL or missing references) //IL_0303: Unknown result type (might be due to invalid IL or missing references) //IL_0310: Expected O, but got Unknown //IL_0337: Unknown result type (might be due to invalid IL or missing references) //IL_033c: Unknown result type (might be due to invalid IL or missing references) //IL_0343: Unknown result type (might be due to invalid IL or missing references) //IL_0345: Unknown result type (might be due to invalid IL or missing references) //IL_034a: Unknown result type (might be due to invalid IL or missing references) //IL_034c: Unknown result type (might be due to invalid IL or missing references) //IL_0351: Unknown result type (might be due to invalid IL or missing references) //IL_035c: Unknown result type (might be due to invalid IL or missing references) //IL_035e: Unknown result type (might be due to invalid IL or missing references) //IL_0363: Unknown result type (might be due to invalid IL or missing references) //IL_036e: Unknown result type (might be due to invalid IL or missing references) //IL_0375: Unknown result type (might be due to invalid IL or missing references) //IL_037c: Unknown result type (might be due to invalid IL or missing references) //IL_0383: Unknown result type (might be due to invalid IL or missing references) //IL_038a: 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_0398: Unknown result type (might be due to invalid IL or missing references) //IL_039a: Unknown result type (might be due to invalid IL or missing references) //IL_039f: Unknown result type (might be due to invalid IL or missing references) //IL_03a1: Unknown result type (might be due to invalid IL or missing references) //IL_03a6: Unknown result type (might be due to invalid IL or missing references) //IL_03ad: Unknown result type (might be due to invalid IL or missing references) //IL_03b8: Unknown result type (might be due to invalid IL or missing references) //IL_03bf: Unknown result type (might be due to invalid IL or missing references) //IL_03c6: Unknown result type (might be due to invalid IL or missing references) //IL_03cd: Unknown result type (might be due to invalid IL or missing references) //IL_03d4: Unknown result type (might be due to invalid IL or missing references) //IL_03db: 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_03f3: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_0405: Unknown result type (might be due to invalid IL or missing references) //IL_0411: Unknown result type (might be due to invalid IL or missing references) //IL_0418: Unknown result type (might be due to invalid IL or missing references) //IL_0425: Expected O, but got Unknown //IL_0426: Unknown result type (might be due to invalid IL or missing references) //IL_042b: Unknown result type (might be due to invalid IL or missing references) //IL_0432: Unknown result type (might be due to invalid IL or missing references) //IL_0434: Unknown result type (might be due to invalid IL or missing references) //IL_0439: Unknown result type (might be due to invalid IL or missing references) //IL_043b: Unknown result type (might be due to invalid IL or missing references) //IL_0440: Unknown result type (might be due to invalid IL or missing references) //IL_044b: Unknown result type (might be due to invalid IL or missing references) //IL_044d: Unknown result type (might be due to invalid IL or missing references) //IL_0452: Unknown result type (might be due to invalid IL or missing references) //IL_0459: Unknown result type (might be due to invalid IL or missing references) //IL_0460: Unknown result type (might be due to invalid IL or missing references) //IL_0467: Unknown result type (might be due to invalid IL or missing references) //IL_046e: Unknown result type (might be due to invalid IL or missing references) //IL_0475: Unknown result type (might be due to invalid IL or missing references) //IL_047c: Unknown result type (might be due to invalid IL or missing references) //IL_047e: Unknown result type (might be due to invalid IL or missing references) //IL_0483: Unknown result type (might be due to invalid IL or missing references) //IL_0485: Unknown result type (might be due to invalid IL or missing references) //IL_048a: Unknown result type (might be due to invalid IL or missing references) //IL_0491: Unknown result type (might be due to invalid IL or missing references) //IL_049c: Unknown result type (might be due to invalid IL or missing references) //IL_04a3: Unknown result type (might be due to invalid IL or missing references) //IL_04aa: Unknown result type (might be due to invalid IL or missing references) //IL_04b1: Unknown result type (might be due to invalid IL or missing references) //IL_04b8: Unknown result type (might be due to invalid IL or missing references) //IL_04bf: Unknown result type (might be due to invalid IL or missing references) //IL_04cb: Unknown result type (might be due to invalid IL or missing references) //IL_04d7: Unknown result type (might be due to invalid IL or missing references) //IL_04de: Unknown result type (might be due to invalid IL or missing references) //IL_04e9: Unknown result type (might be due to invalid IL or missing references) //IL_04ff: Unknown result type (might be due to invalid IL or missing references) //IL_0506: Unknown result type (might be due to invalid IL or missing references) //IL_0513: Expected O, but got Unknown //IL_0514: Unknown result type (might be due to invalid IL or missing references) //IL_0519: Unknown result type (might be due to invalid IL or missing references) //IL_0520: Unknown result type (might be due to invalid IL or missing references) //IL_0522: Unknown result type (might be due to invalid IL or missing references) //IL_0527: Unknown result type (might be due to invalid IL or missing references) //IL_0529: Unknown result type (might be due to invalid IL or missing references) //IL_052e: Unknown result type (might be due to invalid IL or missing references) //IL_0539: Unknown result type (might be due to invalid IL or missing references) //IL_053b: Unknown result type (might be due to invalid IL or missing references) //IL_0540: Unknown result type (might be due to invalid IL or missing references) //IL_0547: Unknown result type (might be due to invalid IL or missing references) //IL_054e: Unknown result type (might be due to invalid IL or missing references) //IL_0555: Unknown result type (might be due to invalid IL or missing references) //IL_055c: Unknown result type (might be due to invalid IL or missing references) //IL_0563: Unknown result type (might be due to invalid IL or missing references) //IL_056a: Unknown result type (might be due to invalid IL or missing references) //IL_056c: Unknown result type (might be due to invalid IL or missing references) //IL_0571: Unknown result type (might be due to invalid IL or missing references) //IL_0573: Unknown result type (might be due to invalid IL or missing references) //IL_0578: Unknown result type (might be due to invalid IL or missing references) //IL_057f: Unknown result type (might be due to invalid IL or missing references) //IL_058a: Unknown result type (might be due to invalid IL or missing references) //IL_0591: Unknown result type (might be due to invalid IL or missing references) //IL_0598: Unknown result type (might be due to invalid IL or missing references) //IL_059f: Unknown result type (might be due to invalid IL or missing references) //IL_05a6: Unknown result type (might be due to invalid IL or missing references) //IL_05ad: Unknown result type (might be due to invalid IL or missing references) //IL_05b9: Unknown result type (might be due to invalid IL or missing references) //IL_05c5: Unknown result type (might be due to invalid IL or missing references) //IL_05cc: Unknown result type (might be due to invalid IL or missing references) //IL_05d7: Unknown result type (might be due to invalid IL or missing references) //IL_05ed: Unknown result type (might be due to invalid IL or missing references) //IL_05f4: Unknown result type (might be due to invalid IL or missing references) //IL_0601: Expected O, but got Unknown //IL_0602: Unknown result type (might be due to invalid IL or missing references) //IL_0607: Unknown result type (might be due to invalid IL or missing references) //IL_060e: Unknown result type (might be due to invalid IL or missing references) //IL_0610: Unknown result type (might be due to invalid IL or missing references) //IL_0615: Unknown result type (might be due to invalid IL or missing references) //IL_0617: Unknown result type (might be due to invalid IL or missing references) //IL_061c: Unknown result type (might be due to invalid IL or missing references) //IL_0627: Unknown result type (might be due to invalid IL or missing references) //IL_0629: Unknown result type (might be due to invalid IL or missing references) //IL_062e: Unknown result type (might be due to invalid IL or missing references) //IL_0635: Unknown result type (might be due to invalid IL or missing references) //IL_063c: Unknown result type (might be due to invalid IL or missing references) //IL_0643: Unknown result type (might be due to invalid IL or missing references) //IL_064a: Unknown result type (might be due to invalid IL or missing references) //IL_0651: Unknown result type (might be due to invalid IL or missing references) //IL_0658: Unknown result type (might be due to invalid IL or missing references) //IL_065a: Unknown result type (might be due to invalid IL or missing references) //IL_065f: Unknown result type (might be due to invalid IL or missing references) //IL_0661: Unknown result type (might be due to invalid IL or missing references) //IL_0666: Unknown result type (might be due to invalid IL or missing references) //IL_066d: Unknown result type (might be due to invalid IL or missing references) //IL_0678: Unknown result type (might be due to invalid IL or missing references) //IL_067f: Unknown result type (might be due to invalid IL or missing references) //IL_0686: Unknown result type (might be due to invalid IL or missing references) //IL_068d: Unknown result type (might be due to invalid IL or missing references) //IL_0694: Unknown result type (might be due to invalid IL or missing references) //IL_069b: Unknown result type (might be due to invalid IL or missing references) //IL_06a7: Unknown result type (might be due to invalid IL or missing references) //IL_06b3: Unknown result type (might be due to invalid IL or missing references) //IL_06ba: Unknown result type (might be due to invalid IL or missing references) //IL_06c5: Unknown result type (might be due to invalid IL or missing references) //IL_06db: Unknown result type (might be due to invalid IL or missing references) //IL_06e2: Unknown result type (might be due to invalid IL or missing references) //IL_06ef: Expected O, but got Unknown //IL_06f0: Unknown result type (might be due to invalid IL or missing references) //IL_06f5: Unknown result type (might be due to invalid IL or missing references) //IL_06fc: Unknown result type (might be due to invalid IL or missing references) //IL_06fe: Unknown result type (might be due to invalid IL or missing references) //IL_0703: Unknown result type (might be due to invalid IL or missing references) //IL_0705: Unknown result type (might be due to invalid IL or missing references) //IL_070a: Unknown result type (might be due to invalid IL or missing references) //IL_0715: Unknown result type (might be due to invalid IL or missing references) //IL_0717: Unknown result type (might be due to invalid IL or missing references) //IL_071c: Unknown result type (might be due to invalid IL or missing references) //IL_0723: Unknown result type (might be due to invalid IL or missing references) //IL_072a: Unknown result type (might be due to invalid IL or missing references) //IL_0731: Unknown result type (might be due to invalid IL or missing references) //IL_0738: Unknown result type (might be due to invalid IL or missing references) //IL_073f: Unknown result type (might be due to invalid IL or missing references) //IL_0746: Unknown result type (might be due to invalid IL or missing references) //IL_0748: Unknown result type (might be due to invalid IL or missing references) //IL_074d: Unknown result type (might be due to invalid IL or missing references) //IL_074f: Unknown result type (might be due to invalid IL or missing references) //IL_0754: Unknown result type (might be due to invalid IL or missing references) //IL_075b: Unknown result type (might be due to invalid IL or missing references) //IL_0766: Unknown result type (might be due to invalid IL or missing references) //IL_076d: Unknown result type (might be due to invalid IL or missing references) //IL_0774: Unknown result type (might be due to invalid IL or missing references) //IL_077b: Unknown result type (might be due to invalid IL or missing references) //IL_0782: Unknown result type (might be due to invalid IL or missing references) //IL_0789: Unknown result type (might be due to invalid IL or missing references) //IL_0795: Unknown result type (might be due to invalid IL or missing references) //IL_07a1: Unknown result type (might be due to invalid IL or missing references) //IL_07a8: Unknown result type (might be due to invalid IL or missing references) //IL_07b3: Unknown result type (might be due to invalid IL or missing references) //IL_07d4: Unknown result type (might be due to invalid IL or missing references) //IL_07db: Unknown result type (might be due to invalid IL or missing references) //IL_07e8: Expected O, but got Unknown //IL_07e9: Unknown result type (might be due to invalid IL or missing references) //IL_07ee: Unknown result type (might be due to invalid IL or missing references) //IL_07f5: Unknown result type (might be due to invalid IL or missing references) //IL_07f7: Unknown result type (might be due to invalid IL or missing references) //IL_07fc: Unknown result type (might be due to invalid IL or missing references) //IL_07fe: Unknown result type (might be due to invalid IL or missing references) //IL_0803: Unknown result type (might be due to invalid IL or missing references) //IL_080e: Unknown result type (might be due to invalid IL or missing references) //IL_0810: Unknown result type (might be due to invalid IL or missing references) //IL_0815: Unknown result type (might be due to invalid IL or missing references) //IL_081c: Unknown result type (might be due to invalid IL or missing references) //IL_0823: Unknown result type (might be due to invalid IL or missing references) //IL_082a: Unknown result type (might be due to invalid IL or missing references) //IL_0831: Unknown result type (might be due to invalid IL or missing references) //IL_0838: Unknown result type (might be due to invalid IL or missing references) //IL_083f: Unknown result type (might be due to invalid IL or missing references) //IL_0841: Unknown result type (might be due to invalid IL or missing references) //IL_0846: Unknown result type (might be due to invalid IL or missing references) //IL_0848: Unknown result type (might be due to invalid IL or missing references) //IL_084d: Unknown result type (might be due to invalid IL or missing references) //IL_0854: Unknown result type (might be due to invalid IL or missing references) //IL_085f: Unknown result type (might be due to invalid IL or missing references) //IL_0866: Unknown result type (might be due to invalid IL or missing references) //IL_086d: Unknown result type (might be due to invalid IL or missing references) //IL_0874: Unknown result type (might be due to invalid IL or missing references) //IL_087b: Unknown result type (might be due to invalid IL or missing references) //IL_0882: Unknown result type (might be due to invalid IL or missing references) //IL_088e: Unknown result type (might be due to invalid IL or missing references) //IL_089a: Unknown result type (might be due to invalid IL or missing references) //IL_08a1: Unknown result type (might be due to invalid IL or missing references) //IL_08ac: Unknown result type (might be due to invalid IL or missing references) //IL_08c2: Unknown result type (might be due to invalid IL or missing references) //IL_08c9: Unknown result type (might be due to invalid IL or missing references) //IL_08d6: Expected O, but got Unknown //IL_08d7: Unknown result type (might be due to invalid IL or missing references) //IL_08dc: Unknown result type (might be due to invalid IL or missing references) //IL_08e3: Unknown result type (might be due to invalid IL or missing references) //IL_08e5: Unknown result type (might be due to invalid IL or missing references) //IL_08ea: Unknown result type (might be due to invalid IL or missing references) //IL_08ec: Unknown result type (might be due to invalid IL or missing references) //IL_08f1: Unknown result type (might be due to invalid IL or missing references) //IL_08fc: Unknown result type (might be due to invalid IL or missing references) //IL_08fe: Unknown result type (might be due to invalid IL or missing references) //IL_0903: Unknown result type (might be due to invalid IL or missing references) //IL_090a: Unknown result type (might be due to invalid IL or missing references) //IL_0911: Unknown result type (might be due to invalid IL or missing references) //IL_0918: Unknown result type (might be due to invalid IL or missing references) //IL_091f: Unknown result type (might be due to invalid IL or missing references) //IL_0926: Unknown result type (might be due to invalid IL or missing references) //IL_092d: Unknown result type (might be due to invalid IL or missing references) //IL_092f: Unknown result type (might be due to invalid IL or missing references) //IL_0934: Unknown result type (might be due to invalid IL or missing references) //IL_0936: Unknown result type (might be due to invalid IL or missing references) //IL_093b: Unknown result type (might be due to invalid IL or missing references) //IL_0942: Unknown result type (might be due to invalid IL or missing references) //IL_094d: Unknown result type (might be due to invalid IL or missing references) //IL_0954: Unknown result type (might be due to invalid IL or missing references) //IL_095b: Unknown result type (might be due to invalid IL or missing references) //IL_0962: Unknown result type (might be due to invalid IL or missing references) //IL_0969: Unknown result type (might be due to invalid IL or missing references) //IL_0970: Unknown result type (might be due to invalid IL or missing references) //IL_097c: Unknown result type (might be due to invalid IL or missing references) //IL_0988: Unknown result type (might be due to invalid IL or missing references) //IL_098f: Unknown result type (might be due to invalid IL or missing references) //IL_099a: Unknown result type (might be due to invalid IL or missing references) //IL_09bb: Unknown result type (might be due to invalid IL or missing references) //IL_09c2: Unknown result type (might be due to invalid IL or missing references) //IL_09cf: Expected O, but got Unknown //IL_09d0: Unknown result type (might be due to invalid IL or missing references) //IL_09d5: Unknown result type (might be due to invalid IL or missing references) //IL_09dc: Unknown result type (might be due to invalid IL or missing references) //IL_09de: Unknown result type (might be due to invalid IL or missing references) //IL_09e3: Unknown result type (might be due to invalid IL or missing references) //IL_09e5: Unknown result type (might be due to invalid IL or missing references) //IL_09ea: Unknown result type (might be due to invalid IL or missing references) //IL_09f5: Unknown result type (might be due to invalid IL or missing references) //IL_09f7: Unknown result type (might be due to invalid IL or missing references) //IL_09fc: Unknown result type (might be due to invalid IL or missing references) //IL_0a03: Unknown result type (might be due to invalid IL or missing references) //IL_0a0a: Unknown result type (might be due to invalid IL or missing references) //IL_0a11: Unknown result type (might be due to invalid IL or missing references) //IL_0a18: Unknown result type (might be due to invalid IL or missing references) //IL_0a1f: Unknown result type (might be due to invalid IL or missing references) //IL_0a26: Unknown result type (might be due to invalid IL or missing references) //IL_0a28: Unknown result type (might be due to invalid IL or missing references) //IL_0a2d: Unknown result type (might be due to invalid IL or missing references) //IL_0a2f: Unknown result type (might be due to invalid IL or missing references) //IL_0a34: Unknown result type (might be due to invalid IL or missing references) //IL_0a3b: Unknown result type (might be due to invalid IL or missing references) //IL_0a46: Unknown result type (might be due to invalid IL or missing references) //IL_0a4d: Unknown result type (might be due to invalid IL or missing references) //IL_0a54: Unknown result type (might be due to invalid IL or missing references) //IL_0a5b: Unknown result type (might be due to invalid IL or missing references) //IL_0a62: Unknown result type (might be due to invalid IL or missing references) //IL_0a69: Unknown result type (might be due to invalid IL or missing references) //IL_0a75: Unknown result type (might be due to invalid IL or missing references) //IL_0a81: Unknown result type (might be due to invalid IL or missing references) //IL_0a88: Unknown result type (might be due to invalid IL or missing references) //IL_0a93: Unknown result type (might be due to invalid IL or missing references) //IL_0ab4: Unknown result type (might be due to invalid IL or missing references) //IL_0abb: Unknown result type (might be due to invalid IL or missing references) //IL_0ac8: Expected O, but got Unknown //IL_0ac9: Unknown result type (might be due to invalid IL or missing references) //IL_0ace: Unknown result type (might be due to invalid IL or missing references) //IL_0ad5: Unknown result type (might be due to invalid IL or missing references) //IL_0ad7: Unknown result type (might be due to invalid IL or missing references) //IL_0adc: Unknown result type (might be due to invalid IL or missing references) //IL_0ade: Unknown result type (might be due to invalid IL or missing references) //IL_0ae3: Unknown result type (might be due to invalid IL or missing references) //IL_0aee: Unknown result type (might be due to invalid IL or missing references) //IL_0af0: Unknown result type (might be due to invalid IL or missing references) //IL_0af5: Unknown result type (might be due to invalid IL or missing references) //IL_0afc: Unknown result type (might be due to invalid IL or missing references) //IL_0b03: Unknown result type (might be due to invalid IL or missing references) //IL_0b0a: Unknown result type (might be due to invalid IL or missing references) //IL_0b11: Unknown result type (might be due to invalid IL or missing references) //IL_0b18: Unknown result type (might be due to invalid IL or missing references) //IL_0b1f: Unknown result type (might be due to invalid IL or missing references) //IL_0b21: Unknown result type (might be due to invalid IL or missing references) //IL_0b26: Unknown result type (might be due to invalid IL or missing references) //IL_0b28: Unknown result type (might be due to invalid IL or missing references) //IL_0b2d: Unknown result type (might be due to invalid IL or missing references) //IL_0b34: Unknown result type (might be due to invalid IL or missing references) //IL_0b3f: Unknown result type (might be due to invalid IL or missing references) //IL_0b46: Unknown result type (might be due to invalid IL or missing references) //IL_0b4d: Unknown result type (might be due to invalid IL or missing references) //IL_0b54: Unknown result type (might be due to invalid IL or missing references) //IL_0b5b: Unknown result type (might be due to invalid IL or missing references) //IL_0b62: Unknown result type (might be due to invalid IL or missing references) //IL_0b6e: Unknown result type (might be due to invalid IL or missing references) //IL_0b7a: Unknown result type (might be due to invalid IL or missing references) //IL_0b81: Unknown result type (might be due to invalid IL or missing references) //IL_0b8c: Unknown result type (might be due to invalid IL or missing references) //IL_0bad: Unknown result type (might be due to invalid IL or missing references) //IL_0bb4: Unknown result type (might be due to invalid IL or missing references) //IL_0bc1: Expected O, but got Unknown //IL_0bc2: Unknown result type (might be due to invalid IL or missing references) //IL_0bc7: Unknown result type (might be due to invalid IL or missing references) //IL_0bce: Unknown result type (might be due to invalid IL or missing references) //IL_0bd0: Unknown result type (might be due to invalid IL or missing references) //IL_0bd5: Unknown result type (might be due to invalid IL or missing references) //IL_0bd7: Unknown result type (might be due to invalid IL or missing references) //IL_0bdc: Unknown result type (might be due to invalid IL or missing references) //IL_0be7: Unknown result type (might be due to invalid IL or missing references) //IL_0be9: Unknown result type (might be due to invalid IL or missing references) //IL_0bee: Unknown result type (might be due to invalid IL or missing references) //IL_0bf9: Unknown result type (might be due to invalid IL or missing references) //IL_0c00: Unknown result type (might be due to invalid IL or missing references) //IL_0c07: Unknown result type (might be due to invalid IL or missing references) //IL_0c0e: Unknown result type (might be due to invalid IL or missing references) //IL_0c15: Unknown result type (might be due to invalid IL or missing references) //IL_0c1c: Unknown result type (might be due to invalid IL or missing references) //IL_0c23: Unknown result type (might be due to invalid IL or missing references) //IL_0c25: Unknown result type (might be due to invalid IL or missing references) //IL_0c2a: Unknown result type (might be due to invalid IL or missing references) //IL_0c2c: Unknown result type (might be due to invalid IL or missing references) //IL_0c31: Unknown result type (might be due to invalid IL or missing references) //IL_0c38: Unknown result type (might be due to invalid IL or missing references) //IL_0c43: Unknown result type (might be due to invalid IL or missing references) //IL_0c4a: Unknown result type (might be due to invalid IL or missing references) //IL_0c51: Unknown result type (might be due to invalid IL or missing references) //IL_0c58: Unknown result type (might be due to invalid IL or missing references) //IL_0c5f: Unknown result type (might be due to invalid IL or missing references) //IL_0c66: Unknown result type (might be due to invalid IL or missing references) //IL_0c72: Unknown result type (might be due to invalid IL or missing references) //IL_0c7e: Unknown result type (might be due to invalid IL or missing references) //IL_0c85: Unknown result type (might be due to invalid IL or missing references) //IL_0c90: Unknown result type (might be due to invalid IL or missing references) //IL_0ca6: Unknown result type (might be due to invalid IL or missing references) //IL_0cad: Unknown result type (might be due to invalid IL or missing references) //IL_0cba: Expected O, but got Unknown //IL_0cbb: Unknown result type (might be due to invalid IL or missing references) //IL_0cc0: Unknown result type (might be due to invalid IL or missing references) //IL_0cc7: Unknown result type (might be due to invalid IL or missing references) //IL_0cc9: Unknown result type (might be due to invalid IL or missing references) //IL_0cce: Unknown result type (might be due to invalid IL or missing references) //IL_0cd0: Unknown result type (might be due to invalid IL or missing references) //IL_0cd5: Unknown result type (might be due to invalid IL or missing references) //IL_0ce0: Unknown result type (might be due to invalid IL or missing references) //IL_0ce2: Unknown result type (might be due to invalid IL or missing references) //IL_0ce7: Unknown result type (might be due to invalid IL or missing references) //IL_0cee: Unknown result type (might be due to invalid IL or missing references) //IL_0cf5: Unknown result type (might be due to invalid IL or missing references) //IL_0cfc: Unknown result type (might be due to invalid IL or missing references) //IL_0d03: Unknown result type (might be due to invalid IL or missing references) //IL_0d0a: Unknown result type (might be due to invalid IL or missing references) //IL_0d11: Unknown result type (might be due to invalid IL or missing references) //IL_0d13: Unknown result type (might be due to invalid IL or missing references) //IL_0d18: Unknown result type (might be due to invalid IL or missing references) //IL_0d1a: Unknown result type (might be due to invalid IL or missing references) //IL_0d1f: Unknown result type (might be due to invalid IL or missing references) //IL_0d26: Unknown result type (might be due to invalid IL or missing references) //IL_0d31: Unknown result type (might be due to invalid IL or missing references) //IL_0d38: Unknown result type (might be due to invalid IL or missing references) //IL_0d3f: Unknown result type (might be due to invalid IL or missing references) //IL_0d46: Unknown result type (might be due to invalid IL or missing references) //IL_0d4d: Unknown result type (might be due to invalid IL or missing references) //IL_0d54: Unknown result type (might be due to invalid IL or missing references) //IL_0d60: Unknown result type (might be due to invalid IL or missing references) //IL_0d6c: Unknown result type (might be due to invalid IL or missing references) //IL_0d73: Unknown result type (might be due to invalid IL or missing references) //IL_0d7e: Unknown result type (might be due to invalid IL or missing references) //IL_0d8a: Unknown result type (might be due to invalid IL or missing references) //IL_0d95: Unknown result type (might be due to invalid IL or missing references) //IL_0d9c: Unknown result type (might be due to invalid IL or missing references) //IL_0da9: Expected O, but got Unknown //IL_0daa: Unknown result type (might be due to invalid IL or missing references) //IL_0daf: Unknown result type (might be due to invalid IL or missing references) //IL_0db6: Unknown result type (might be due to invalid IL or missing references) //IL_0db8: Unknown result type (might be due to invalid IL or missing references) //IL_0dbd: Unknown result type (might be due to invalid IL or missing references) //IL_0dbf: Unknown result type (might be due to invalid IL or missing references) //IL_0dc4: Unknown result type (might be due to invalid IL or missing references) //IL_0dcf: Unknown result type (might be due to invalid IL or missing references) //IL_0dd1: Unknown result type (might be due to invalid IL or missing references) //IL_0dd6: Unknown result type (might be due to invalid IL or missing references) //IL_0ddd: Unknown result type (might be due to invalid IL or missing references) //IL_0de4: Unknown result type (might be due to invalid IL or missing references) //IL_0deb: Unknown result type (might be due to invalid IL or missing references) //IL_0df2: Unknown result type (might be due to invalid IL or missing references) //IL_0df9: Unknown result type (might be due to invalid IL or missing references) //IL_0e00: Unknown result type (might be due to invalid IL or missing references) //IL_0e02: Unknown result type (might be due to invalid IL or missing references) //IL_0e07: Unknown result type (might be due to invalid IL or missing references) //IL_0e09: Unknown result type (might be due to invalid IL or missing references) //IL_0e0e: Unknown result type (might be due to invalid IL or missing references) //IL_0e15: Unknown result type (might be due to invalid IL or missing references) //IL_0e20: Unknown result type (might be due to invalid IL or missing references) //IL_0e27: Unknown result type (might be due to invalid IL or missing references) //IL_0e2e: Unknown result type (might be due to invalid IL or missing references) //IL_0e35: Unknown result type (might be due to invalid IL or missing references) //IL_0e3c: Unknown result type (might be due to invalid IL or missing references) //IL_0e43: Unknown result type (might be due to invalid IL or missing references) //IL_0e4f: Unknown result type (might be due to invalid IL or missing references) //IL_0e5b: Unknown result type (might be due to invalid IL or missing references) //IL_0e62: Unknown result type (might be due to invalid IL or missing references) //IL_0e6d: Unknown result type (might be due to invalid IL or missing references) //IL_0e83: Unknown result type (might be due to invalid IL or missing references) //IL_0e8a: Unknown result type (might be due to invalid IL or missing references) //IL_0e97: Expected O, but got Unknown //IL_0e98: Unknown result type (might be due to invalid IL or missing references) //IL_0e9d: Unknown result type (might be due to invalid IL or missing references) //IL_0ea4: Unknown result type (might be due to invalid IL or missing references) //IL_0ea6: Unknown result type (might be due to invalid IL or missing references) //IL_0eab: Unknown result type (might be due to invalid IL or missing references) //IL_0ead: Unknown result type (might be due to invalid IL or missing references) //IL_0eb2: Unknown result type (might be due to invalid IL or missing references) //IL_0ebd: Unknown result type (might be due to invalid IL or missing references) //IL_0ebf: Unknown result type (might be due to invalid IL or missing references) //IL_0ec4: Unknown result type (might be due to invalid IL or missing references) //IL_0ecb: Unknown result type (might be due to invalid IL or missing references) //IL_0ed2: Unknown result type (might be due to invalid IL or missing references) //IL_0ed9: Unknown result type (might be due to invalid IL or missing references) //IL_0ee0: Unknown result type (might be due to invalid IL or missing references) //IL_0ee7: Unknown result type (might be due to invalid IL or missing references) //IL_0eee: Unknown result type (might be due to invalid IL or missing references) //IL_0ef0: Unknown result type (might be due to invalid IL or missing references) //IL_0ef5: Unknown result type (might be due to invalid IL or missing references) //IL_0ef7: Unknown result type (might be due to invalid IL or missing references) //IL_0efc: Unknown result type (might be due to invalid IL or missing references) //IL_0f03: Unknown result type (might be due to invalid IL or missing references) //IL_0f0e: Unknown result type (might be due to invalid IL or missing references) //IL_0f15: Unknown result type (might be due to invalid IL or missing references) //IL_0f1c: Unknown result type (might be due to invalid IL or missing references) //IL_0f23: Unknown result type (might be due to invalid IL or missing references) //IL_0f2a: Unknown result type (might be due to invalid IL or missing references) //IL_0f31: Unknown result type (might be due to invalid IL or missing references) //IL_0f3d: Unknown result type (might be due to invalid IL or missing references) //IL_0f49: Unknown result type (might be due to invalid IL or missing references) //IL_0f50: Unknown result type (might be due to invalid IL or missing references) //IL_0f5b: Unknown result type (might be due to invalid IL or missing references) //IL_0f71: Unknown result type (might be due to invalid IL or missing references) //IL_0f78: Unknown result type (might be due to invalid IL or missing references) //IL_0f85: Expected O, but got Unknown //IL_0f86: Unknown result type (might be due to invalid IL or missing references) //IL_0f8b: Unknown result type (might be due to invalid IL or missing references) //IL_0f92: Unknown result type (might be due to invalid IL or missing references) //IL_0f94: Unknown result type (might be due to invalid IL or missing references) //IL_0f99: Unknown result type (might be due to invalid IL or missing references) //IL_0f9b: Unknown result type (might be due to invalid IL or missing references) //IL_0fa0: Unknown result type (might be due to invalid IL or missing references) //IL_0fab: Unknown result type (might be due to invalid IL or missing references) //IL_0fad: Unknown result type (might be due to invalid IL or missing references) //IL_0fb2: Unknown result type (might be due to invalid IL or missing references) //IL_0fb9: Unknown result type (might be due to invalid IL or missing references) //IL_0fc4: Unknown result type (might be due to invalid IL or missing references) //IL_0fcb: Unknown result type (might be due to invalid IL or missing references) //IL_0fd2: Unknown result type (might be due to invalid IL or missing references) //IL_0fd9: Unknown result type (might be due to invalid IL or missing references) //IL_0fe0: Unknown result type (might be due to invalid IL or missing references) //IL_0fe7: Unknown result type (might be due to invalid IL or missing references) //IL_0fee: Unknown result type (might be due to invalid IL or missing references) //IL_0ff0: Unknown result type (might be due to invalid IL or missing references) //IL_0ff5: Unknown result type (might be due to invalid IL or missing references) //IL_0ff7: Unknown result type (might be due to invalid IL or missing references) //IL_0ffc: Unknown result type (might be due to invalid IL or missing references) //IL_1003: Unknown result type (might be due to invalid IL or missing references) //IL_100e: Unknown result type (might be due to invalid IL or missing references) //IL_1015: Unknown result type (might be due to invalid IL or missing references) //IL_101c: Unknown result type (might be due to invalid IL or missing references) //IL_1023: Unknown result type (might be due to invalid IL or missing references) //IL_102a: Unknown result type (might be due to invalid IL or missing references) //IL_1031: Unknown result type (might be due to invalid IL or missing references) //IL_103d: Unknown result type (might be due to invalid IL or missing references) //IL_1049: Unknown result type (might be due to invalid IL or missing references) //IL_1050: Unknown result type (might be due to invalid IL or missing references) //IL_105b: Unknown result type (might be due to invalid IL or missing references) //IL_1067: Unknown result type (might be due to invalid IL or missing references) //IL_106e: Unknown result type (might be due to invalid IL or missing references) //IL_107b: Expected O, but got Unknown //IL_107c: Unknown result type (might be due to invalid IL or missing references) //IL_1081: Unknown result type (might be due to invalid IL or missing references) //IL_1088: Unknown result type (might be due to invalid IL or missing references) //IL_108a: Unknown result type (might be due to invalid IL or missing references) //IL_108f: Unknown result type (might be due to invalid IL or missing references) //IL_1091: Unknown result type (might be due to invalid IL or missing references) //IL_1096: Unknown result type (might be due to invalid IL or missing references) //IL_10a1: Unknown result type (might be due to invalid IL or missing references) //IL_10a3: Unknown result type (might be due to invalid IL or missing references) //IL_10a8: Unknown result type (might be due to invalid IL or missing references) //IL_10af: Unknown result type (might be due to invalid IL or missing references) //IL_10b6: Unknown result type (might be due to invalid IL or missing references) //IL_10bd: Unknown result type (might be due to invalid IL or missing references) //IL_10c4: Unknown result type (might be due to invalid IL or missing references) //IL_10cb: Unknown result type (might be due to invalid IL or missing references) //IL_10d2: Unknown result type (might be due to invalid IL or missing references) //IL_10d4: Unknown result type (might be due to invalid IL or missing references) //IL_10d9: Unknown result type (might be due to invalid IL or missing references) //IL_10db: Unknown result type (might be due to invalid IL or missing references) //IL_10e0: Unknown result type (might be due to invalid IL or missing references) //IL_10e7: Unknown result type (might be due to invalid IL or missing references) //IL_10f2: Unknown result type (might be due to invalid IL or missing references) //IL_10f9: Unknown result type (might be due to invalid IL or missing references) //IL_1100: Unknown result type (might be due to invalid IL or missing references) //IL_1107: Unknown result type (might be due to invalid IL or missing references) //IL_110e: Unknown result type (might be due to invalid IL or missing references) //IL_1115: Unknown result type (might be due to invalid IL or missing references) //IL_1121: Unknown result type (might be due to invalid IL or missing references) //IL_112d: Unknown result type (might be due to invalid IL or missing references) //IL_1134: Unknown result type (might be due to invalid IL or missing references) //IL_113f: Unknown result type (might be due to invalid IL or missing references) //IL_1155: Unknown result type (might be due to invalid IL or missing references) //IL_115c: Unknown result type (might be due to invalid IL or missing references) //IL_1169: Expected O, but got Unknown //IL_116a: Unknown result type (might be due to invalid IL or missing references) //IL_116f: Unknown result type (might be due to invalid IL or missing references) //IL_1176: Unknown result type (might be due to invalid IL or missing references) //IL_1178: Unknown result type (might be due to invalid IL or missing references) //IL_117d: Unknown result type (might be due to invalid IL or missing references) //IL_117f: Unknown result type (might be due to invalid IL or missing references) //IL_1184: Unknown result type (might be due to invalid IL or missing references) //IL_118f: Unknown result type (might be due to invalid IL or missing references) //IL_1191: Unknown result type (might be due to invalid IL or missing references) //IL_1196: Unknown result type (might be due to invalid IL or missing references) //IL_119d: Unknown result type (might be due to invalid IL or missing references) //IL_11a4: Unknown result type (might be due to invalid IL or missing references) //IL_11ab: Unknown result type (might be due to invalid IL or missing references) //IL_11b2: Unknown result type (might be due to invalid IL or missing references) //IL_11b9: Unknown result type (might be due to invalid IL or missing references) //IL_11c0: Unknown result type (might be due to invalid IL or missing references) //IL_11c2: Unknown result type (might be due to invalid IL or missing references) //IL_11c7: Unknown result type (might be due to invalid IL or missing references) //IL_11c9: Unknown result type (might be due to invalid IL or missing references) //IL_11ce: Unknown result type (might be due to invalid IL or missing references) //IL_11d5: Unknown result type (might be due to invalid IL or missing references) //IL_11e0: Unknown result type (might be due to invalid IL or missing references) //IL_11e7: Unknown result type (might be due to invalid IL or missing references) //IL_11ee: Unknown result type (might be due to invalid IL or missing references) //IL_11f5: Unknown result type (might be due to invalid IL or missing references) //IL_11fc: Unknown result type (might be due to invalid IL or missing references) //IL_1203: Unknown result type (might be due to invalid IL or missing references) //IL_120f: Unknown result type (might be due to invalid IL or missing references) //IL_121b: Unknown result type (might be due to invalid IL or missing references) //IL_1222: Unknown result type (might be due to invalid IL or missing references) //IL_122d: Unknown result type (might be due to invalid IL or missing references) //IL_124e: Unknown result type (might be due to invalid IL or missing references) //IL_1255: Unknown result type (might be due to invalid IL or missing references) //IL_1262: Expected O, but got Unknown //IL_1263: Unknown result type (might be due to invalid IL or missing references) //IL_1268: Unknown result type (might be due to invalid IL or missing references) //IL_126f: Unknown result type (might be due to invalid IL or missing references) //IL_1271: Unknown result type (might be due to invalid IL or missing references) //IL_1276: Unknown result type (might be due to invalid IL or missing references) //IL_1278: Unknown result type (might be due to invalid IL or missing references) //IL_127d: Unknown result type (might be due to invalid IL or missing references) //IL_1288: Unknown result type (might be due to invalid IL or missing references) //IL_128a: Unknown result type (might be due to invalid IL or missing references) //IL_128f: Unknown result type (might be due to invalid IL or missing references) //IL_1296: Unknown result type (might be due to invalid IL or missing references) //IL_129d: Unknown result type (might be due to invalid IL or missing references) //IL_12a4: Unknown result type (might be due to invalid IL or missing references) //IL_12ab: Unknown result type (might be due to invalid IL or missing references) //IL_12b2: Unknown result type (might be due to invalid IL or missing references) //IL_12b9: Unknown result type (might be due to invalid IL or missing references) //IL_12bb: Unknown result type (might be due to invalid IL or missing references) //IL_12c0: Unknown result type (might be due to invalid IL or missing references) //IL_12c2: Unknown result type (might be due to invalid IL or missing references) //IL_12c7: Unknown result type (might be due to invalid IL or missing references) //IL_12ce: Unknown result type (might be due to invalid IL or missing references) //IL_12d9: Unknown result type (might be due to invalid IL or missing references) //IL_12e0: Unknown result type (might be due to invalid IL or missing references) //IL_12e7: Unknown result type (might be due to invalid IL or missing references) //IL_12ee: Unknown result type (might be due to invalid IL or missing references) //IL_12f5: Unknown result type (might be due to invalid IL or missing references) //IL_12fc: Unknown result type (might be due to invalid IL or missing references) //IL_1308: Unknown result type (might be due to invalid IL or missing references) //IL_1314: Unknown result type (might be due to invalid IL or missing references) //IL_131b: Unknown result type (might be due to invalid IL or missing references) //IL_1326: Unknown result type (might be due to invalid IL or missing references) //IL_133c: Unknown result type (might be due to invalid IL or missing references) //IL_1343: Unknown result type (might be due to invalid IL or missing references) //IL_1350: Expected O, but got Unknown //IL_1351: Unknown result type (might be due to invalid IL or missing references) //IL_1356: Unknown result type (might be due to invalid IL or missing references) //IL_135d: Unknown result type (might be due to invalid IL or missing references) //IL_135f: Unknown result type (might be due to invalid IL or missing references) //IL_1364: Unknown result type (might be due to invalid IL or missing references) //IL_1366: Unknown result type (might be due to invalid IL or missing references) //IL_136b: Unknown result type (might be due to invalid IL or missing references) //IL_1376: Unknown result type (might be due to invalid IL or missing references) //IL_1378: Unknown result type (might be due to invalid IL or missing references) //IL_137d: Unknown result type (might be due to invalid IL or missing references) //IL_1388: Unknown result type (might be due to invalid IL or missing references) //IL_138f: Unknown result type (might be due to invalid IL or missing references) //IL_1396: Unknown result type (might be due to invalid IL or missing references) //IL_139d: Unknown result type (might be due to invalid IL or missing references) //IL_13a4: Unknown result type (might be due to invalid IL or missing references) //IL_13ab: Unknown result type (might be due to invalid IL or missing references) //IL_13b2: Unknown result type (might be due to invalid IL or missing references) //IL_13b4: Unknown result type (might be due to invalid IL or missing references) //IL_13b9: Unknown result type (might be due to invalid IL or missing references) //IL_13bb: Unknown result type (might be due to invalid IL or missing references) //IL_13c0: Unknown result type (might be due to invalid IL or missing references) //IL_13c7: Unknown result type (might be due to invalid IL or missing references) //IL_13d2: Unknown result type (might be due to invalid IL or missing references) //IL_13d9: Unknown result type (might be due to invalid IL or missing references) //IL_13e0: Unknown result type (might be due to invalid IL or missing references) //IL_13e7: Unknown result type (might be due to invalid IL or missing references) //IL_13ee: Unknown result type (might be due to invalid IL or missing references) //IL_13f5: Unknown result type (might be due to invalid IL or missing references) //IL_1401: Unknown result type (might be due to invalid IL or missing references) //IL_140d: Unknown result type (might be due to invalid IL or missing references) //IL_1414: Unknown result type (might be due to invalid IL or missing references) //IL_141f: Unknown result type (might be due to invalid IL or missing references) //IL_142a: Unknown result type (might be due to invalid IL or missing references) //IL_1431: Unknown result type (might be due to invalid IL or missing references) //IL_143e: Expected O, but got Unknown //IL_143f: Unknown result type (might be due to invalid IL or missing references) //IL_1444: Unknown result type (might be due to invalid IL or missing references) //IL_144b: Unknown result type (might be due to invalid IL or missing references) //IL_144d: Unknown result type (might be due to invalid IL or missing references) //IL_1452: Unknown result type (might be due to invalid IL or missing references) //IL_1454: Unknown result type (might be due to invalid IL or missing references) //IL_1459: Unknown result type (might be due to invalid IL or missing references) //IL_1464: Unknown result type (might be due to invalid IL or missing references) //IL_1466: Unknown result type (might be due to invalid IL or missing references) //IL_146b: Unknown result type (might be due to invalid IL or missing references) //IL_1472: Unknown result type (might be due to invalid IL or missing references) //IL_1479: Unknown result type (might be due to invalid IL or missing references) //IL_1480: Unknown result type (might be due to invalid IL or missing references) //IL_1487: Unknown result type (might be due to invalid IL or missing references) //IL_148e: Unknown result type (might be due to invalid IL or missing references) //IL_1495: Unknown result type (might be due to invalid IL or missing references) //IL_1497: Unknown result type (might be due to invalid IL or missing references) //IL_149c: Unknown result type (might be due to invalid IL or missing references) //IL_149e: Unknown result type (might be due to invalid IL or missing references) //IL_14a3: Unknown result type (might be due to invalid IL or missing references) //IL_14aa: Unknown result type (might be due to invalid IL or missing references) //IL_14b5: Unknown result type (might be due to invalid IL or missing references) //IL_14bc: Unknown result type (might be due to invalid IL or missing references) //IL_14c3: Unknown result type (might be due to invalid IL or missing references) //IL_14ca: Unknown result type (might be due to invalid IL or missing references) //IL_14d1: Unknown result type (might be due to invalid IL or missing references) //IL_14d8: Unknown result type (might be due to invalid IL or missing references) //IL_14e4: Unknown result type (might be due to invalid IL or missing references) //IL_14f0: Unknown result type (might be due to invalid IL or missing references) //IL_14f7: Unknown result type (might be due to invalid IL or missing references) //IL_1502: Unknown result type (might be due to invalid IL or missing references) //IL_1523: Unknown result type (might be due to invalid IL or missing references) //IL_152a: Unknown result type (might be due to invalid IL or missing references) //IL_1537: Expected O, but got Unknown //IL_1538: Unknown result type (might be due to invalid IL or missing references) //IL_153d: Unknown result type (might be due to invalid IL or missing references) //IL_1544: Unknown result type (might be due to invalid IL or missing references) //IL_1546: Unknown result type (might be due to invalid IL or missing references) //IL_154b: Unknown result type (might be due to invalid IL or missing references) //IL_154d: Unknown result type (might be due to invalid IL or missing references) //IL_1552: Unknown result type (might be due to invalid IL or missing references) //IL_155d: Unknown result type (might be due to invalid IL or missing references) //IL_155f: Unknown result type (might be due to invalid IL or missing references) //IL_1564: Unknown result type (might be due to invalid IL or missing references) //IL_156b: Unknown result type (might be due to invalid IL or missing references) //IL_1572: Unknown result type (might be due to invalid IL or missing references) //IL_1579: Unknown result type (might be due to invalid IL or missing references) //IL_1580: Unknown result type (might be due to invalid IL or missing references) //IL_1587: Unknown result type (might be due to invalid IL or missing references) //IL_158e: Unknown result type (might be due to invalid IL or missing references) //IL_1590: Unknown result type (might be due to invalid IL or missing references) //IL_1595: Unknown result type (might be due to invalid IL or missing references) //IL_1597: Unknown result type (might be due to invalid IL or missing references) //IL_159c: Unknown result type (might be due to invalid IL or missing references) //IL_15a3: Unknown result type (might be due to invalid IL or missing references) //IL_15ae: Unknown result type (might be due to invalid IL or missing references) //IL_15b5: Unknown result type (might be due to invalid IL or missing references) //IL_15bc: Unknown result type (might be due to invalid IL or missing references) //IL_15c3: Unknown result type (might be due to invalid IL or missing references) //IL_15ca: Unknown result type (might be due to invalid IL or missing references) //IL_15d1: Unknown result type (might be due to invalid IL or missing references) //IL_15dd: Unknown result type (might be due to invalid IL or missing references) //IL_15e9: Unknown result type (might be due to invalid IL or missing references) //IL_15f0: Unknown result type (might be due to invalid IL or missing references) //IL_15fb: Unknown result type (might be due to invalid IL or missing references) //IL_1607: Unknown result type (might be due to invalid IL or missing references) //IL_160e: Unknown result type (might be due to invalid IL or missing references) //IL_161b: Expected O, but got Unknown //IL_161c: Unknown result type (might be due to invalid IL or missing references) //IL_1621: Unknown result type (might be due to invalid IL or missing references) //IL_1628: Unknown result type (might be due to invalid IL or missing references) //IL_162a: Unknown result type (might be due to invalid IL or missing references) //IL_162f: Unknown result type (might be due to invalid IL or missing references) //IL_1631: Unknown result type (might be due to invalid IL or missing references) //IL_1636: Unknown result type (might be due to invalid IL or missing references) //IL_1641: Unknown result type (might be due to invalid IL or missing references) //IL_1643: Unknown result type (might be due to invalid IL or missing references) //IL_1648: Unknown result type (might be due to invalid IL or missing references) //IL_164f: Unknown result type (might be due to invalid IL or missing references) //IL_1656: Unknown result type (might be due to invalid IL or missing references) //IL_165d: Unknown result type (might be due to invalid IL or missing references) //IL_1664: Unknown result type (might be due to invalid IL or missing references) //IL_166b: Unknown result type (might be due to invalid IL or missing references) //IL_1672: Unknown result type (might be due to invalid IL or missing references) //IL_1674: Unknown result type (might be due to invalid IL or missing references) //IL_1679: Unknown result type (might be due to invalid IL or missing references) //IL_167b: Unknown result type (might be due to invalid IL or missing references) //IL_1680: Unknown result type (might be due to invalid IL or missing references) //IL_1687: Unknown result type (might be due to invalid IL or missing references) //IL_1692: Unknown result type (might be due to invalid IL or missing references) //IL_1699: Unknown result type (might be due to invalid IL or missing references) //IL_16a0: Unknown result type (might be due to invalid IL or missing references) //IL_16a7: Unknown result type (might be due to invalid IL or missing references) //IL_16ae: Unknown result type (might be due to invalid IL or missing references) //IL_16b5: Unknown result type (might be due to invalid IL or missing references) //IL_16c1: Unknown result type (might be due to invalid IL or missing references) //IL_16cd: Unknown result type (might be due to invalid IL or missing references) //IL_16d4: Unknown result type (might be due to invalid IL or missing references) //IL_16df: Unknown result type (might be due to invalid IL or missing references) //IL_16eb: Unknown result type (might be due to invalid IL or missing references) //IL_16f2: Unknown result type (might be due to invalid IL or missing references) //IL_16ff: Expected O, but got Unknown //IL_1700: Unknown result type (might be due to invalid IL or missing references) //IL_1705: Unknown result type (might be due to invalid IL or missing references) //IL_170c: Unknown result type (might be due to invalid IL or missing references) //IL_170e: Unknown result type (might be due to invalid IL or missing references) //IL_1713: Unknown result type (might be due to invalid IL or missing references) //IL_1715: Unknown result type (might be due to invalid IL or missing references) //IL_171a: Unknown result type (might be due to invalid IL or missing references) //IL_1725: Unknown result type (might be due to invalid IL or missing references) //IL_1727: Unknown result type (might be due to invalid IL or missing references) //IL_172c: Unknown result type (might be due to invalid IL or missing references) //IL_1733: Unknown result type (might be due to invalid IL or missing references) //IL_173a: Unknown result type (might be due to invalid IL or missing references) //IL_1741: Unknown result type (might be due to invalid IL or missing references) //IL_1748: Unknown result type (might be due to invalid IL or missing references) //IL_174f: Unknown result type (might be due to invalid IL or missing references) //IL_1756: Unknown result type (might be due to invalid IL or missing references) //IL_1758: Unknown result type (might be due to invalid IL or missing references) //IL_175d: Unknown result type (might be due to invalid IL or missing references) //IL_175f: Unknown result type (might be due to invalid IL or missing references) //IL_1764: Unknown result type (might be due to invalid IL or missing references) //IL_176b: Unknown result type (might be due to invalid IL or missing references) //IL_1776: Unknown result type (might be due to invalid IL or missing references) //IL_177d: Unknown result type (might be due to invalid IL or missing references) //IL_1784: Unknown result type (might be due to invalid IL or missing references) //IL_178b: Unknown result type (might be due to invalid IL or missing references) //IL_1792: Unknown result type (might be due to invalid IL or missing references) //IL_1799: Unknown result type (might be due to invalid IL or missing references) //IL_17a5: Unknown result type (might be due to invalid IL or missing references) //IL_17b1: Unknown result type (might be due to invalid IL or missing references) //IL_17b8: Unknown result type (might be due to invalid IL or missing references) //IL_17c3: Unknown result type (might be due to invalid IL or missing references) //IL_17cf: Unknown result type (might be due to invalid IL or missing references) //IL_17d6: Unknown result type (might be due to invalid IL or missing references) //IL_17e3: Expected O, but got Unknown DungeonFlow val = ScriptableObject.CreateInstance(); DungeonFlowSubtypeRestriction item = new DungeonFlowSubtypeRestriction { baseCategoryRestriction = (RoomCategory)2, normalSubcategoryRestriction = (RoomNormalSubCategory)1, bossSubcategoryRestriction = (RoomBossSubCategory)0, specialSubcategoryRestriction = (RoomSpecialSubCategory)0, secretSubcategoryRestriction = (RoomSecretSubCategory)0, maximumRoomsOfSubtype = 1 }; DungeonFlowNode val2 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)7, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.tiny_entrance, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, childNodeGuids = new List { "5160f844-ff79-4d19-b813-38496a344e8e" }, loopTargetIsOneWay = false, guidAsString = "d9be71d3-8d97-48af-8eda-54aa897862be" }; DungeonFlowNode val3 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.boss_foyer, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "bd36ddc7-e687-4355-a69b-e799c9d857de", childNodeGuids = new List { "a0098d24-7733-4baf-82c0-11ce3e068261" }, loopTargetIsOneWay = false, guidAsString = "036aafaf-a754-4410-94c5-2c4e5139a5bf" }; DungeonFlowNode val4 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "036aafaf-a754-4410-94c5-2c4e5139a5bf", childNodeGuids = new List { "f06e0430-437a-481e-9b34-604d145cc77d" }, loopTargetIsOneWay = false, guidAsString = "a0098d24-7733-4baf-82c0-11ce3e068261" }; if (Object.op_Implicit((Object)(object)ExpandPrefabs.doublebeholstertable)) { val4.overrideRoomTable = ExpandPrefabs.doublebeholstertable; } else { val4.overrideExactRoom = ExpandPrefabs.doublebeholsterroom01; } DungeonFlowNode val5 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.tiny_exit, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "a0098d24-7733-4baf-82c0-11ce3e068261", childNodeGuids = new List(0), loopTargetIsOneWay = false, guidAsString = "f06e0430-437a-481e-9b34-604d145cc77d" }; DungeonFlowNode val6 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "d9be71d3-8d97-48af-8eda-54aa897862be", childNodeGuids = new List { "0c8ee6c4-31b4-4226-9ddb-90c7eca8f2d3" }, loopTargetIsOneWay = false, guidAsString = "5160f844-ff79-4d19-b813-38496a344e8e" }; DungeonFlowNode val7 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "5160f844-ff79-4d19-b813-38496a344e8e", childNodeGuids = new List { "2439b6f0-b59e-4b46-8521-3195d72748f7" }, loopTargetIsOneWay = false, guidAsString = "0c8ee6c4-31b4-4226-9ddb-90c7eca8f2d3" }; DungeonFlowNode val8 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "2439b6f0-b59e-4b46-8521-3195d72748f7", childNodeGuids = new List { "989ad791-cfc8-4f4e-afc6-fd9512a789b7" }, loopTargetIsOneWay = false, guidAsString = "a919a262-edf3-47e7-aae9-0eb77fa49262" }; DungeonFlowNode val9 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "919a262-edf3-47e7-aae9-0eb77fa49262", childNodeGuids = new List { "b1da2e8a-afeb-41cc-8840-be1c46aa4401", "3a6325a4-d2c0-4b93-a82e-7f09b007e190" }, loopTargetIsOneWay = false, guidAsString = "989ad791-cfc8-4f4e-afc6-fd9512a789b7" }; DungeonFlowNode val10 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "8267eaa8-ed7f-403b-97a6-421d15a21ef3", childNodeGuids = new List { "3956174b-a5ee-4716-b021-889db041a070" }, loopTargetIsOneWay = false, guidAsString = "8b4c640e-b835-4a6b-9326-7b11d856fcde" }; DungeonFlowNode val11 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "8b4c640e-b835-4a6b-9326-7b11d856fcde", childNodeGuids = new List { "bd36ddc7-e687-4355-a69b-e799c9d857de", "31a9f731-24ba-49dd-9086-2f01cb3fcb1d" }, loopTargetIsOneWay = false, guidAsString = "3956174b-a5ee-4716-b021-889db041a070" }; DungeonFlowNode val12 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "3956174b-a5ee-4716-b021-889db041a070", childNodeGuids = new List { "036aafaf-a754-4410-94c5-2c4e5139a5bf", "17f291e0-37c3-4d03-ba6a-b5b534256c07" }, loopTargetIsOneWay = false, guidAsString = "bd36ddc7-e687-4355-a69b-e799c9d857de" }; DungeonFlowNode val13 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "0c8ee6c4-31b4-4226-9ddb-90c7eca8f2d3", childNodeGuids = new List { "dc3ba41b-dc99-42d3-ab9b-088991bc1741", "a919a262-edf3-47e7-aae9-0eb77fa49262" }, loopTargetIsOneWay = false, guidAsString = "2439b6f0-b59e-4b46-8521-3195d72748f7" }; DungeonFlowNode val14 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.reward_room, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "2439b6f0-b59e-4b46-8521-3195d72748f7", childNodeGuids = new List { "55ebfb7d-b617-4da1-853c-209d3bd36f8e" }, loopTargetIsOneWay = false, guidAsString = "dc3ba41b-dc99-42d3-ab9b-088991bc1741" }; DungeonFlowNode val15 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "dc3ba41b-dc99-42d3-ab9b-088991bc1741", childNodeGuids = new List(0), loopTargetNodeGuid = "0c8ee6c4-31b4-4226-9ddb-90c7eca8f2d3", loopTargetIsOneWay = false, guidAsString = "55ebfb7d-b617-4da1-853c-209d3bd36f8e" }; DungeonFlowNode val16 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "8267eaa8-ed7f-403b-97a6-421d15a21ef3", childNodeGuids = new List { "44fc3013-6fa2-4436-a0db-1d3b99484703" }, loopTargetIsOneWay = false, guidAsString = "0fbff154-f8cb-4367-a11f-16f5dd56fe4f" }; DungeonFlowNode val17 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "989ad791-cfc8-4f4e-afc6-fd9512a789b7", childNodeGuids = new List { "8267eaa8-ed7f-403b-97a6-421d15a21ef3" }, loopTargetIsOneWay = false, guidAsString = "b1da2e8a-afeb-41cc-8840-be1c46aa4401" }; DungeonFlowNode val18 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)5, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = ExpandPrefabs.shop_room_table, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "0fbff154-f8cb-4367-a11f-16f5dd56fe4f", childNodeGuids = new List(0), loopTargetIsOneWay = false, guidAsString = "44fc3013-6fa2-4436-a0db-1d3b99484703" }; DungeonFlowNode val19 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "bd36ddc7-e687-4355-a69b-e799c9d857de", childNodeGuids = new List { "56753489-2944-42ed-8c1f-c0daa03417b0" }, loopTargetIsOneWay = false, guidAsString = "17f291e0-37c3-4d03-ba6a-b5b534256c07" }; DungeonFlowNode val20 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "17f291e0-37c3-4d03-ba6a-b5b534256c07", childNodeGuids = new List { "1d489c84-f1b5-431d-bdf3-e61e74cd7f15", "3e0b1ce9-3862-4041-bfa9-bb82474e567a" }, loopTargetIsOneWay = false, guidAsString = "56753489-2944-42ed-8c1f-c0daa03417b0" }; DungeonFlowNode val21 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "56753489-2944-42ed-8c1f-c0daa03417b0", childNodeGuids = new List { "9fc6fab9-fe0f-458c-b1a4-e69077243acc" }, loopTargetIsOneWay = false, guidAsString = "1d489c84-f1b5-431d-bdf3-e61e74cd7f15" }; DungeonFlowNode val22 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.reward_room, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "1d489c84-f1b5-431d-bdf3-e61e74cd7f15", loopTargetNodeGuid = "bd36ddc7-e687-4355-a69b-e799c9d857de", loopTargetIsOneWay = true, guidAsString = "9fc6fab9-fe0f-458c-b1a4-e69077243acc" }; DungeonFlowNode val23 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)1, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "b1da2e8a-afeb-41cc-8840-be1c46aa4401", childNodeGuids = new List { "0fbff154-f8cb-4367-a11f-16f5dd56fe4f", "8b4c640e-b835-4a6b-9326-7b11d856fcde" }, loopTargetIsOneWay = false, guidAsString = "8267eaa8-ed7f-403b-97a6-421d15a21ef3" }; DungeonFlowNode val24 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)6, percentChance = 0.197f, priority = (NodePriority)1, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "989ad791-cfc8-4f4e-afc6-fd9512a789b7", childNodeGuids = new List(0), loopTargetIsOneWay = false, guidAsString = "3a6325a4-d2c0-4b93-a82e-7f09b007e190" }; DungeonFlowNode val25 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)6, percentChance = 1f, priority = (NodePriority)1, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "3956174b-a5ee-4716-b021-889db041a070", childNodeGuids = new List(0), loopTargetIsOneWay = false, guidAsString = "31a9f731-24ba-49dd-9086-2f01cb3fcb1d" }; DungeonFlowNode val26 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)6, percentChance = 0.292f, priority = (NodePriority)1, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "56753489-2944-42ed-8c1f-c0daa03417b0", childNodeGuids = new List(0), loopTargetIsOneWay = false, guidAsString = "3e0b1ce9-3862-4041-bfa9-bb82474e567a" }; ((Object)val).name = "Custom_GlitchChest_Flow"; val.fallbackRoomTable = ExpandPrefabs.CustomRoomTable2; val.subtypeRestrictions = new List { item }; val.flowInjectionData = new List(0); val.sharedInjectionData = new List(0); val.Initialize(); val.AddNodeToFlow(val2, (DungeonFlowNode)null); val.AddNodeToFlow(val3, val12); val.AddNodeToFlow(val4, val3); val.AddNodeToFlow(val5, val4); val.AddNodeToFlow(val6, val2); val.AddNodeToFlow(val7, val6); val.AddNodeToFlow(val8, val13); val.AddNodeToFlow(val9, val8); val.AddNodeToFlow(val10, val23); val.AddNodeToFlow(val11, val10); val.AddNodeToFlow(val12, val11); val.AddNodeToFlow(val13, val7); val.AddNodeToFlow(val14, val13); val.AddNodeToFlow(val15, val14); val.AddNodeToFlow(val16, val23); val.AddNodeToFlow(val17, val9); val.AddNodeToFlow(val18, val16); val.AddNodeToFlow(val19, val12); val.AddNodeToFlow(val20, val19); val.AddNodeToFlow(val21, val20); val.AddNodeToFlow(val22, val21); val.AddNodeToFlow(val23, val17); val.AddNodeToFlow(val24, val9); val.AddNodeToFlow(val25, val11); val.AddNodeToFlow(val26, val20); val.LoopConnectNodes(val15, val7); val.LoopConnectNodes(val22, val12); val.FirstNode = val2; return val; } } public class custom_glitch_flow { private static DungeonFlow m_custom_glitch_flow; public static DungeonFlow Custom_Glitch_Flow { get { if (!Object.op_Implicit((Object)(object)m_custom_glitch_flow)) { m_custom_glitch_flow = m_Custom_Glitch_Flow(); } return m_custom_glitch_flow; } } private static DungeonFlow m_Custom_Glitch_Flow() { //IL_0007: 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_0013: 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) //IL_001a: 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_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_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004c: 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_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0094: 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_00a6: 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_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Expected O, but got Unknown //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_0154: 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_0162: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_0187: 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_0195: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_019e: 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_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01b1: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01cf: Unknown result type (might be due to invalid IL or missing references) //IL_01d6: Unknown result type (might be due to invalid IL or missing references) //IL_01dd: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: 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_01f6: Unknown result type (might be due to invalid IL or missing references) //IL_0202: Unknown result type (might be due to invalid IL or missing references) //IL_020d: Unknown result type (might be due to invalid IL or missing references) //IL_0214: Unknown result type (might be due to invalid IL or missing references) //IL_022e: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Expected O, but got Unknown //IL_0237: Unknown result type (might be due to invalid IL or missing references) //IL_023c: Unknown result type (might be due to invalid IL or missing references) //IL_0243: Unknown result type (might be due to invalid IL or missing references) //IL_0245: Unknown result type (might be due to invalid IL or missing references) //IL_024a: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Unknown result type (might be due to invalid IL or missing references) //IL_0251: 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_025e: Unknown result type (might be due to invalid IL or missing references) //IL_0263: Unknown result type (might be due to invalid IL or missing references) //IL_026a: Unknown result type (might be due to invalid IL or missing references) //IL_0271: Unknown result type (might be due to invalid IL or missing references) //IL_0278: Unknown result type (might be due to invalid IL or missing references) //IL_0283: Unknown result type (might be due to invalid IL or missing references) //IL_028a: Unknown result type (might be due to invalid IL or missing references) //IL_0291: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Unknown result type (might be due to invalid IL or missing references) //IL_02a4: Unknown result type (might be due to invalid IL or missing references) //IL_02ab: Unknown result type (might be due to invalid IL or missing references) //IL_02b2: Unknown result type (might be due to invalid IL or missing references) //IL_02b4: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02bb: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Unknown result type (might be due to invalid IL or missing references) //IL_02c7: Unknown result type (might be due to invalid IL or missing references) //IL_02d2: Unknown result type (might be due to invalid IL or missing references) //IL_02de: Unknown result type (might be due to invalid IL or missing references) //IL_02e5: Unknown result type (might be due to invalid IL or missing references) //IL_02ec: Unknown result type (might be due to invalid IL or missing references) //IL_02f3: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: Unknown result type (might be due to invalid IL or missing references) //IL_0301: Unknown result type (might be due to invalid IL or missing references) //IL_030c: Unknown result type (might be due to invalid IL or missing references) //IL_0318: Unknown result type (might be due to invalid IL or missing references) //IL_0323: Unknown result type (might be due to invalid IL or missing references) //IL_032a: Unknown result type (might be due to invalid IL or missing references) //IL_0344: Unknown result type (might be due to invalid IL or missing references) //IL_034c: Expected O, but got Unknown //IL_034d: Unknown result type (might be due to invalid IL or missing references) //IL_0352: Unknown result type (might be due to invalid IL or missing references) //IL_0359: Unknown result type (might be due to invalid IL or missing references) //IL_035b: Unknown result type (might be due to invalid IL or missing references) //IL_0360: Unknown result type (might be due to invalid IL or missing references) //IL_0362: Unknown result type (might be due to invalid IL or missing references) //IL_0367: Unknown result type (might be due to invalid IL or missing references) //IL_0372: Unknown result type (might be due to invalid IL or missing references) //IL_0374: Unknown result type (might be due to invalid IL or missing references) //IL_0379: Unknown result type (might be due to invalid IL or missing references) //IL_0380: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_038e: Unknown result type (might be due to invalid IL or missing references) //IL_0399: Unknown result type (might be due to invalid IL or missing references) //IL_03a0: Unknown result type (might be due to invalid IL or missing references) //IL_03a7: Unknown result type (might be due to invalid IL or missing references) //IL_03b3: Unknown result type (might be due to invalid IL or missing references) //IL_03ba: Unknown result type (might be due to invalid IL or missing references) //IL_03c1: Unknown result type (might be due to invalid IL or missing references) //IL_03c8: Unknown result type (might be due to invalid IL or missing references) //IL_03ca: Unknown result type (might be due to invalid IL or missing references) //IL_03cf: Unknown result type (might be due to invalid IL or missing references) //IL_03d1: Unknown result type (might be due to invalid IL or missing references) //IL_03d6: Unknown result type (might be due to invalid IL or missing references) //IL_03dd: Unknown result type (might be due to invalid IL or missing references) //IL_03e8: Unknown result type (might be due to invalid IL or missing references) //IL_03f4: Unknown result type (might be due to invalid IL or missing references) //IL_03fb: Unknown result type (might be due to invalid IL or missing references) //IL_0402: Unknown result type (might be due to invalid IL or missing references) //IL_0409: Unknown result type (might be due to invalid IL or missing references) //IL_0410: Unknown result type (might be due to invalid IL or missing references) //IL_0417: Unknown result type (might be due to invalid IL or missing references) //IL_0422: Unknown result type (might be due to invalid IL or missing references) //IL_042e: Unknown result type (might be due to invalid IL or missing references) //IL_0439: Unknown result type (might be due to invalid IL or missing references) //IL_0440: Unknown result type (might be due to invalid IL or missing references) //IL_045a: Unknown result type (might be due to invalid IL or missing references) //IL_0463: Expected O, but got Unknown //IL_0464: Unknown result type (might be due to invalid IL or missing references) //IL_0469: Unknown result type (might be due to invalid IL or missing references) //IL_0470: Unknown result type (might be due to invalid IL or missing references) //IL_0472: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_0479: Unknown result type (might be due to invalid IL or missing references) //IL_047e: Unknown result type (might be due to invalid IL or missing references) //IL_0489: Unknown result type (might be due to invalid IL or missing references) //IL_048b: Unknown result type (might be due to invalid IL or missing references) //IL_0490: Unknown result type (might be due to invalid IL or missing references) //IL_0497: Unknown result type (might be due to invalid IL or missing references) //IL_049e: Unknown result type (might be due to invalid IL or missing references) //IL_04a5: Unknown result type (might be due to invalid IL or missing references) //IL_04b0: Unknown result type (might be due to invalid IL or missing references) //IL_04b7: Unknown result type (might be due to invalid IL or missing references) //IL_04be: Unknown result type (might be due to invalid IL or missing references) //IL_04ca: Unknown result type (might be due to invalid IL or missing references) //IL_04d1: Unknown result type (might be due to invalid IL or missing references) //IL_04d8: Unknown result type (might be due to invalid IL or missing references) //IL_04df: Unknown result type (might be due to invalid IL or missing references) //IL_04e1: Unknown result type (might be due to invalid IL or missing references) //IL_04e6: Unknown result type (might be due to invalid IL or missing references) //IL_04e8: Unknown result type (might be due to invalid IL or missing references) //IL_04ed: Unknown result type (might be due to invalid IL or missing references) //IL_04f4: Unknown result type (might be due to invalid IL or missing references) //IL_04ff: Unknown result type (might be due to invalid IL or missing references) //IL_050b: Unknown result type (might be due to invalid IL or missing references) //IL_0512: Unknown result type (might be due to invalid IL or missing references) //IL_0519: Unknown result type (might be due to invalid IL or missing references) //IL_0520: Unknown result type (might be due to invalid IL or missing references) //IL_0527: Unknown result type (might be due to invalid IL or missing references) //IL_052e: Unknown result type (might be due to invalid IL or missing references) //IL_0539: Unknown result type (might be due to invalid IL or missing references) //IL_0545: Unknown result type (might be due to invalid IL or missing references) //IL_0550: Unknown result type (might be due to invalid IL or missing references) //IL_0557: Unknown result type (might be due to invalid IL or missing references) //IL_0571: Unknown result type (might be due to invalid IL or missing references) //IL_057a: Expected O, but got Unknown //IL_057b: Unknown result type (might be due to invalid IL or missing references) //IL_0580: Unknown result type (might be due to invalid IL or missing references) //IL_0587: Unknown result type (might be due to invalid IL or missing references) //IL_0589: Unknown result type (might be due to invalid IL or missing references) //IL_058e: Unknown result type (might be due to invalid IL or missing references) //IL_0590: Unknown result type (might be due to invalid IL or missing references) //IL_0595: Unknown result type (might be due to invalid IL or missing references) //IL_05a0: Unknown result type (might be due to invalid IL or missing references) //IL_05a2: Unknown result type (might be due to invalid IL or missing references) //IL_05a7: Unknown result type (might be due to invalid IL or missing references) //IL_05ae: Unknown result type (might be due to invalid IL or missing references) //IL_05b5: Unknown result type (might be due to invalid IL or missing references) //IL_05bc: Unknown result type (might be due to invalid IL or missing references) //IL_05c7: Unknown result type (might be due to invalid IL or missing references) //IL_05ce: Unknown result type (might be due to invalid IL or missing references) //IL_05d5: Unknown result type (might be due to invalid IL or missing references) //IL_05e1: Unknown result type (might be due to invalid IL or missing references) //IL_05e8: Unknown result type (might be due to invalid IL or missing references) //IL_05ef: Unknown result type (might be due to invalid IL or missing references) //IL_05f6: Unknown result type (might be due to invalid IL or missing references) //IL_05f8: Unknown result type (might be due to invalid IL or missing references) //IL_05fd: Unknown result type (might be due to invalid IL or missing references) //IL_05ff: Unknown result type (might be due to invalid IL or missing references) //IL_0604: Unknown result type (might be due to invalid IL or missing references) //IL_060b: Unknown result type (might be due to invalid IL or missing references) //IL_0616: Unknown result type (might be due to invalid IL or missing references) //IL_0622: Unknown result type (might be due to invalid IL or missing references) //IL_0629: Unknown result type (might be due to invalid IL or missing references) //IL_0630: Unknown result type (might be due to invalid IL or missing references) //IL_0637: Unknown result type (might be due to invalid IL or missing references) //IL_063e: Unknown result type (might be due to invalid IL or missing references) //IL_0645: Unknown result type (might be due to invalid IL or missing references) //IL_0650: Unknown result type (might be due to invalid IL or missing references) //IL_065c: Unknown result type (might be due to invalid IL or missing references) //IL_0667: Unknown result type (might be due to invalid IL or missing references) //IL_066e: Unknown result type (might be due to invalid IL or missing references) //IL_0688: Unknown result type (might be due to invalid IL or missing references) //IL_0691: Expected O, but got Unknown //IL_0692: Unknown result type (might be due to invalid IL or missing references) //IL_0697: Unknown result type (might be due to invalid IL or missing references) //IL_069e: Unknown result type (might be due to invalid IL or missing references) //IL_06a0: Unknown result type (might be due to invalid IL or missing references) //IL_06a5: Unknown result type (might be due to invalid IL or missing references) //IL_06a7: Unknown result type (might be due to invalid IL or missing references) //IL_06ac: Unknown result type (might be due to invalid IL or missing references) //IL_06b7: Unknown result type (might be due to invalid IL or missing references) //IL_06b9: Unknown result type (might be due to invalid IL or missing references) //IL_06be: Unknown result type (might be due to invalid IL or missing references) //IL_06c5: Unknown result type (might be due to invalid IL or missing references) //IL_06cc: Unknown result type (might be due to invalid IL or missing references) //IL_06d3: Unknown result type (might be due to invalid IL or missing references) //IL_06de: Unknown result type (might be due to invalid IL or missing references) //IL_06e5: Unknown result type (might be due to invalid IL or missing references) //IL_06ec: Unknown result type (might be due to invalid IL or missing references) //IL_06f8: Unknown result type (might be due to invalid IL or missing references) //IL_06ff: Unknown result type (might be due to invalid IL or missing references) //IL_0706: Unknown result type (might be due to invalid IL or missing references) //IL_070d: Unknown result type (might be due to invalid IL or missing references) //IL_070f: Unknown result type (might be due to invalid IL or missing references) //IL_0714: Unknown result type (might be due to invalid IL or missing references) //IL_0716: Unknown result type (might be due to invalid IL or missing references) //IL_071b: Unknown result type (might be due to invalid IL or missing references) //IL_0722: Unknown result type (might be due to invalid IL or missing references) //IL_072d: Unknown result type (might be due to invalid IL or missing references) //IL_0739: Unknown result type (might be due to invalid IL or missing references) //IL_0740: Unknown result type (might be due to invalid IL or missing references) //IL_0747: Unknown result type (might be due to invalid IL or missing references) //IL_074e: Unknown result type (might be due to invalid IL or missing references) //IL_0755: Unknown result type (might be due to invalid IL or missing references) //IL_075c: Unknown result type (might be due to invalid IL or missing references) //IL_0767: Unknown result type (might be due to invalid IL or missing references) //IL_0773: Unknown result type (might be due to invalid IL or missing references) //IL_077e: Unknown result type (might be due to invalid IL or missing references) //IL_0785: Unknown result type (might be due to invalid IL or missing references) //IL_079f: Unknown result type (might be due to invalid IL or missing references) //IL_07a8: Expected O, but got Unknown //IL_07a9: Unknown result type (might be due to invalid IL or missing references) //IL_07ae: Unknown result type (might be due to invalid IL or missing references) //IL_07b5: Unknown result type (might be due to invalid IL or missing references) //IL_07b7: Unknown result type (might be due to invalid IL or missing references) //IL_07bc: Unknown result type (might be due to invalid IL or missing references) //IL_07be: Unknown result type (might be due to invalid IL or missing references) //IL_07c3: Unknown result type (might be due to invalid IL or missing references) //IL_07ce: Unknown result type (might be due to invalid IL or missing references) //IL_07d0: Unknown result type (might be due to invalid IL or missing references) //IL_07d5: Unknown result type (might be due to invalid IL or missing references) //IL_07dc: Unknown result type (might be due to invalid IL or missing references) //IL_07e3: Unknown result type (might be due to invalid IL or missing references) //IL_07ea: Unknown result type (might be due to invalid IL or missing references) //IL_07f5: Unknown result type (might be due to invalid IL or missing references) //IL_07fc: Unknown result type (might be due to invalid IL or missing references) //IL_0803: Unknown result type (might be due to invalid IL or missing references) //IL_080f: Unknown result type (might be due to invalid IL or missing references) //IL_0816: Unknown result type (might be due to invalid IL or missing references) //IL_081d: Unknown result type (might be due to invalid IL or missing references) //IL_0824: Unknown result type (might be due to invalid IL or missing references) //IL_0826: Unknown result type (might be due to invalid IL or missing references) //IL_082b: Unknown result type (might be due to invalid IL or missing references) //IL_082d: Unknown result type (might be due to invalid IL or missing references) //IL_0832: Unknown result type (might be due to invalid IL or missing references) //IL_0839: Unknown result type (might be due to invalid IL or missing references) //IL_0844: Unknown result type (might be due to invalid IL or missing references) //IL_0850: Unknown result type (might be due to invalid IL or missing references) //IL_0857: Unknown result type (might be due to invalid IL or missing references) //IL_085e: Unknown result type (might be due to invalid IL or missing references) //IL_0865: Unknown result type (might be due to invalid IL or missing references) //IL_086c: Unknown result type (might be due to invalid IL or missing references) //IL_0873: Unknown result type (might be due to invalid IL or missing references) //IL_087e: Unknown result type (might be due to invalid IL or missing references) //IL_088a: Unknown result type (might be due to invalid IL or missing references) //IL_0895: Unknown result type (might be due to invalid IL or missing references) //IL_089c: Unknown result type (might be due to invalid IL or missing references) //IL_08b6: Unknown result type (might be due to invalid IL or missing references) //IL_08bf: Expected O, but got Unknown //IL_08c0: Unknown result type (might be due to invalid IL or missing references) //IL_08c5: Unknown result type (might be due to invalid IL or missing references) //IL_08cc: Unknown result type (might be due to invalid IL or missing references) //IL_08ce: Unknown result type (might be due to invalid IL or missing references) //IL_08d3: Unknown result type (might be due to invalid IL or missing references) //IL_08d5: Unknown result type (might be due to invalid IL or missing references) //IL_08da: Unknown result type (might be due to invalid IL or missing references) //IL_08e5: Unknown result type (might be due to invalid IL or missing references) //IL_08e7: Unknown result type (might be due to invalid IL or missing references) //IL_08ec: Unknown result type (might be due to invalid IL or missing references) //IL_08f3: Unknown result type (might be due to invalid IL or missing references) //IL_08fa: Unknown result type (might be due to invalid IL or missing references) //IL_0901: Unknown result type (might be due to invalid IL or missing references) //IL_090c: Unknown result type (might be due to invalid IL or missing references) //IL_0913: Unknown result type (might be due to invalid IL or missing references) //IL_091a: Unknown result type (might be due to invalid IL or missing references) //IL_0926: Unknown result type (might be due to invalid IL or missing references) //IL_092d: Unknown result type (might be due to invalid IL or missing references) //IL_0934: Unknown result type (might be due to invalid IL or missing references) //IL_093b: Unknown result type (might be due to invalid IL or missing references) //IL_093d: Unknown result type (might be due to invalid IL or missing references) //IL_0942: Unknown result type (might be due to invalid IL or missing references) //IL_0944: Unknown result type (might be due to invalid IL or missing references) //IL_0949: Unknown result type (might be due to invalid IL or missing references) //IL_0950: Unknown result type (might be due to invalid IL or missing references) //IL_095b: Unknown result type (might be due to invalid IL or missing references) //IL_0967: Unknown result type (might be due to invalid IL or missing references) //IL_096e: Unknown result type (might be due to invalid IL or missing references) //IL_0975: Unknown result type (might be due to invalid IL or missing references) //IL_097c: Unknown result type (might be due to invalid IL or missing references) //IL_0983: Unknown result type (might be due to invalid IL or missing references) //IL_098a: Unknown result type (might be due to invalid IL or missing references) //IL_0995: Unknown result type (might be due to invalid IL or missing references) //IL_09a1: Unknown result type (might be due to invalid IL or missing references) //IL_09ac: Unknown result type (might be due to invalid IL or missing references) //IL_09b3: Unknown result type (might be due to invalid IL or missing references) //IL_09cd: Unknown result type (might be due to invalid IL or missing references) //IL_09d6: Expected O, but got Unknown //IL_09d7: Unknown result type (might be due to invalid IL or missing references) //IL_09dc: Unknown result type (might be due to invalid IL or missing references) //IL_09e3: Unknown result type (might be due to invalid IL or missing references) //IL_09e5: Unknown result type (might be due to invalid IL or missing references) //IL_09ea: Unknown result type (might be due to invalid IL or missing references) //IL_09ec: Unknown result type (might be due to invalid IL or missing references) //IL_09f1: Unknown result type (might be due to invalid IL or missing references) //IL_09fc: Unknown result type (might be due to invalid IL or missing references) //IL_09fe: Unknown result type (might be due to invalid IL or missing references) //IL_0a03: Unknown result type (might be due to invalid IL or missing references) //IL_0a0a: Unknown result type (might be due to invalid IL or missing references) //IL_0a11: Unknown result type (might be due to invalid IL or missing references) //IL_0a18: Unknown result type (might be due to invalid IL or missing references) //IL_0a23: Unknown result type (might be due to invalid IL or missing references) //IL_0a2a: Unknown result type (might be due to invalid IL or missing references) //IL_0a31: Unknown result type (might be due to invalid IL or missing references) //IL_0a3d: Unknown result type (might be due to invalid IL or missing references) //IL_0a44: Unknown result type (might be due to invalid IL or missing references) //IL_0a4b: Unknown result type (might be due to invalid IL or missing references) //IL_0a52: Unknown result type (might be due to invalid IL or missing references) //IL_0a54: Unknown result type (might be due to invalid IL or missing references) //IL_0a59: Unknown result type (might be due to invalid IL or missing references) //IL_0a5b: Unknown result type (might be due to invalid IL or missing references) //IL_0a60: Unknown result type (might be due to invalid IL or missing references) //IL_0a67: Unknown result type (might be due to invalid IL or missing references) //IL_0a72: Unknown result type (might be due to invalid IL or missing references) //IL_0a7e: Unknown result type (might be due to invalid IL or missing references) //IL_0a85: Unknown result type (might be due to invalid IL or missing references) //IL_0a8c: Unknown result type (might be due to invalid IL or missing references) //IL_0a93: Unknown result type (might be due to invalid IL or missing references) //IL_0a9a: Unknown result type (might be due to invalid IL or missing references) //IL_0aa1: Unknown result type (might be due to invalid IL or missing references) //IL_0aac: Unknown result type (might be due to invalid IL or missing references) //IL_0ab8: Unknown result type (might be due to invalid IL or missing references) //IL_0ac3: Unknown result type (might be due to invalid IL or missing references) //IL_0aca: Unknown result type (might be due to invalid IL or missing references) //IL_0ae4: Unknown result type (might be due to invalid IL or missing references) //IL_0aed: Expected O, but got Unknown //IL_0aee: Unknown result type (might be due to invalid IL or missing references) //IL_0af3: Unknown result type (might be due to invalid IL or missing references) //IL_0afa: Unknown result type (might be due to invalid IL or missing references) //IL_0afc: Unknown result type (might be due to invalid IL or missing references) //IL_0b01: Unknown result type (might be due to invalid IL or missing references) //IL_0b03: Unknown result type (might be due to invalid IL or missing references) //IL_0b08: Unknown result type (might be due to invalid IL or missing references) //IL_0b13: Unknown result type (might be due to invalid IL or missing references) //IL_0b15: Unknown result type (might be due to invalid IL or missing references) //IL_0b1a: Unknown result type (might be due to invalid IL or missing references) //IL_0b21: Unknown result type (might be due to invalid IL or missing references) //IL_0b28: Unknown result type (might be due to invalid IL or missing references) //IL_0b2f: Unknown result type (might be due to invalid IL or missing references) //IL_0b3a: Unknown result type (might be due to invalid IL or missing references) //IL_0b41: Unknown result type (might be due to invalid IL or missing references) //IL_0b48: Unknown result type (might be due to invalid IL or missing references) //IL_0b54: Unknown result type (might be due to invalid IL or missing references) //IL_0b5b: Unknown result type (might be due to invalid IL or missing references) //IL_0b62: Unknown result type (might be due to invalid IL or missing references) //IL_0b69: Unknown result type (might be due to invalid IL or missing references) //IL_0b6b: Unknown result type (might be due to invalid IL or missing references) //IL_0b70: Unknown result type (might be due to invalid IL or missing references) //IL_0b72: Unknown result type (might be due to invalid IL or missing references) //IL_0b77: Unknown result type (might be due to invalid IL or missing references) //IL_0b7e: Unknown result type (might be due to invalid IL or missing references) //IL_0b89: Unknown result type (might be due to invalid IL or missing references) //IL_0b95: Unknown result type (might be due to invalid IL or missing references) //IL_0b9c: Unknown result type (might be due to invalid IL or missing references) //IL_0ba3: Unknown result type (might be due to invalid IL or missing references) //IL_0baa: Unknown result type (might be due to invalid IL or missing references) //IL_0bb1: Unknown result type (might be due to invalid IL or missing references) //IL_0bb8: Unknown result type (might be due to invalid IL or missing references) //IL_0bc3: Unknown result type (might be due to invalid IL or missing references) //IL_0bcf: Unknown result type (might be due to invalid IL or missing references) //IL_0bda: Unknown result type (might be due to invalid IL or missing references) //IL_0be1: Unknown result type (might be due to invalid IL or missing references) //IL_0bfb: Unknown result type (might be due to invalid IL or missing references) //IL_0c04: Expected O, but got Unknown //IL_0c05: Unknown result type (might be due to invalid IL or missing references) //IL_0c0a: Unknown result type (might be due to invalid IL or missing references) //IL_0c11: Unknown result type (might be due to invalid IL or missing references) //IL_0c13: Unknown result type (might be due to invalid IL or missing references) //IL_0c18: Unknown result type (might be due to invalid IL or missing references) //IL_0c1a: Unknown result type (might be due to invalid IL or missing references) //IL_0c1f: Unknown result type (might be due to invalid IL or missing references) //IL_0c2a: Unknown result type (might be due to invalid IL or missing references) //IL_0c2c: Unknown result type (might be due to invalid IL or missing references) //IL_0c31: Unknown result type (might be due to invalid IL or missing references) //IL_0c3c: Unknown result type (might be due to invalid IL or missing references) //IL_0c43: Unknown result type (might be due to invalid IL or missing references) //IL_0c4a: Unknown result type (might be due to invalid IL or missing references) //IL_0c55: Unknown result type (might be due to invalid IL or missing references) //IL_0c5c: Unknown result type (might be due to invalid IL or missing references) //IL_0c63: Unknown result type (might be due to invalid IL or missing references) //IL_0c6f: Unknown result type (might be due to invalid IL or missing references) //IL_0c76: Unknown result type (might be due to invalid IL or missing references) //IL_0c7d: Unknown result type (might be due to invalid IL or missing references) //IL_0c84: Unknown result type (might be due to invalid IL or missing references) //IL_0c86: Unknown result type (might be due to invalid IL or missing references) //IL_0c8b: Unknown result type (might be due to invalid IL or missing references) //IL_0c8d: Unknown result type (might be due to invalid IL or missing references) //IL_0c92: Unknown result type (might be due to invalid IL or missing references) //IL_0c99: Unknown result type (might be due to invalid IL or missing references) //IL_0ca4: Unknown result type (might be due to invalid IL or missing references) //IL_0cb0: Unknown result type (might be due to invalid IL or missing references) //IL_0cb7: Unknown result type (might be due to invalid IL or missing references) //IL_0cbe: Unknown result type (might be due to invalid IL or missing references) //IL_0cc5: Unknown result type (might be due to invalid IL or missing references) //IL_0ccc: Unknown result type (might be due to invalid IL or missing references) //IL_0cd3: Unknown result type (might be due to invalid IL or missing references) //IL_0cde: Unknown result type (might be due to invalid IL or missing references) //IL_0cea: Unknown result type (might be due to invalid IL or missing references) //IL_0cf5: Unknown result type (might be due to invalid IL or missing references) //IL_0cfc: Unknown result type (might be due to invalid IL or missing references) //IL_0d16: Unknown result type (might be due to invalid IL or missing references) //IL_0d1f: Expected O, but got Unknown //IL_0d20: Unknown result type (might be due to invalid IL or missing references) //IL_0d25: Unknown result type (might be due to invalid IL or missing references) //IL_0d2c: Unknown result type (might be due to invalid IL or missing references) //IL_0d2e: Unknown result type (might be due to invalid IL or missing references) //IL_0d33: Unknown result type (might be due to invalid IL or missing references) //IL_0d35: Unknown result type (might be due to invalid IL or missing references) //IL_0d3a: Unknown result type (might be due to invalid IL or missing references) //IL_0d45: Unknown result type (might be due to invalid IL or missing references) //IL_0d47: Unknown result type (might be due to invalid IL or missing references) //IL_0d4c: Unknown result type (might be due to invalid IL or missing references) //IL_0d57: Unknown result type (might be due to invalid IL or missing references) //IL_0d5e: Unknown result type (might be due to invalid IL or missing references) //IL_0d65: Unknown result type (might be due to invalid IL or missing references) //IL_0d70: Unknown result type (might be due to invalid IL or missing references) //IL_0d77: Unknown result type (might be due to invalid IL or missing references) //IL_0d7e: Unknown result type (might be due to invalid IL or missing references) //IL_0d8a: Unknown result type (might be due to invalid IL or missing references) //IL_0d91: Unknown result type (might be due to invalid IL or missing references) //IL_0d98: Unknown result type (might be due to invalid IL or missing references) //IL_0d9f: Unknown result type (might be due to invalid IL or missing references) //IL_0da1: Unknown result type (might be due to invalid IL or missing references) //IL_0da6: Unknown result type (might be due to invalid IL or missing references) //IL_0da8: Unknown result type (might be due to invalid IL or missing references) //IL_0dad: Unknown result type (might be due to invalid IL or missing references) //IL_0db4: Unknown result type (might be due to invalid IL or missing references) //IL_0dbf: Unknown result type (might be due to invalid IL or missing references) //IL_0dcb: Unknown result type (might be due to invalid IL or missing references) //IL_0dd2: Unknown result type (might be due to invalid IL or missing references) //IL_0dd9: Unknown result type (might be due to invalid IL or missing references) //IL_0de0: Unknown result type (might be due to invalid IL or missing references) //IL_0de7: Unknown result type (might be due to invalid IL or missing references) //IL_0dee: Unknown result type (might be due to invalid IL or missing references) //IL_0df9: Unknown result type (might be due to invalid IL or missing references) //IL_0e05: Unknown result type (might be due to invalid IL or missing references) //IL_0e10: Unknown result type (might be due to invalid IL or missing references) //IL_0e17: Unknown result type (might be due to invalid IL or missing references) //IL_0e31: Unknown result type (might be due to invalid IL or missing references) //IL_0e3a: Expected O, but got Unknown //IL_0e61: Unknown result type (might be due to invalid IL or missing references) //IL_0e66: Unknown result type (might be due to invalid IL or missing references) //IL_0e6d: Unknown result type (might be due to invalid IL or missing references) //IL_0e6f: Unknown result type (might be due to invalid IL or missing references) //IL_0e74: Unknown result type (might be due to invalid IL or missing references) //IL_0e76: Unknown result type (might be due to invalid IL or missing references) //IL_0e7b: Unknown result type (might be due to invalid IL or missing references) //IL_0e86: Unknown result type (might be due to invalid IL or missing references) //IL_0e88: Unknown result type (might be due to invalid IL or missing references) //IL_0e8d: Unknown result type (might be due to invalid IL or missing references) //IL_0e98: Unknown result type (might be due to invalid IL or missing references) //IL_0e9f: Unknown result type (might be due to invalid IL or missing references) //IL_0ea6: Unknown result type (might be due to invalid IL or missing references) //IL_0eb1: Unknown result type (might be due to invalid IL or missing references) //IL_0eb8: Unknown result type (might be due to invalid IL or missing references) //IL_0ebf: Unknown result type (might be due to invalid IL or missing references) //IL_0ecb: Unknown result type (might be due to invalid IL or missing references) //IL_0ed2: Unknown result type (might be due to invalid IL or missing references) //IL_0ed9: Unknown result type (might be due to invalid IL or missing references) //IL_0ee0: Unknown result type (might be due to invalid IL or missing references) //IL_0ee2: Unknown result type (might be due to invalid IL or missing references) //IL_0ee7: Unknown result type (might be due to invalid IL or missing references) //IL_0ee9: Unknown result type (might be due to invalid IL or missing references) //IL_0eee: Unknown result type (might be due to invalid IL or missing references) //IL_0ef5: Unknown result type (might be due to invalid IL or missing references) //IL_0f00: Unknown result type (might be due to invalid IL or missing references) //IL_0f0c: Unknown result type (might be due to invalid IL or missing references) //IL_0f13: Unknown result type (might be due to invalid IL or missing references) //IL_0f1a: Unknown result type (might be due to invalid IL or missing references) //IL_0f21: Unknown result type (might be due to invalid IL or missing references) //IL_0f28: Unknown result type (might be due to invalid IL or missing references) //IL_0f2f: Unknown result type (might be due to invalid IL or missing references) //IL_0f3a: Unknown result type (might be due to invalid IL or missing references) //IL_0f46: Unknown result type (might be due to invalid IL or missing references) //IL_0f51: Unknown result type (might be due to invalid IL or missing references) //IL_0f58: Unknown result type (might be due to invalid IL or missing references) //IL_0f72: Unknown result type (might be due to invalid IL or missing references) //IL_0f7b: Expected O, but got Unknown //IL_0f7c: Unknown result type (might be due to invalid IL or missing references) //IL_0f81: Unknown result type (might be due to invalid IL or missing references) //IL_0f88: Unknown result type (might be due to invalid IL or missing references) //IL_0f8a: Unknown result type (might be due to invalid IL or missing references) //IL_0f8f: Unknown result type (might be due to invalid IL or missing references) //IL_0f91: Unknown result type (might be due to invalid IL or missing references) //IL_0f96: Unknown result type (might be due to invalid IL or missing references) //IL_0fa1: Unknown result type (might be due to invalid IL or missing references) //IL_0fa3: Unknown result type (might be due to invalid IL or missing references) //IL_0fa8: Unknown result type (might be due to invalid IL or missing references) //IL_0faf: Unknown result type (might be due to invalid IL or missing references) //IL_0fb6: Unknown result type (might be due to invalid IL or missing references) //IL_0fbd: Unknown result type (might be due to invalid IL or missing references) //IL_0fc8: Unknown result type (might be due to invalid IL or missing references) //IL_0fcf: Unknown result type (might be due to invalid IL or missing references) //IL_0fd6: Unknown result type (might be due to invalid IL or missing references) //IL_0fe2: Unknown result type (might be due to invalid IL or missing references) //IL_0fe9: Unknown result type (might be due to invalid IL or missing references) //IL_0ff0: Unknown result type (might be due to invalid IL or missing references) //IL_0ff7: Unknown result type (might be due to invalid IL or missing references) //IL_0ff9: Unknown result type (might be due to invalid IL or missing references) //IL_0ffe: Unknown result type (might be due to invalid IL or missing references) //IL_1000: Unknown result type (might be due to invalid IL or missing references) //IL_1005: Unknown result type (might be due to invalid IL or missing references) //IL_100c: Unknown result type (might be due to invalid IL or missing references) //IL_1017: Unknown result type (might be due to invalid IL or missing references) //IL_1023: Unknown result type (might be due to invalid IL or missing references) //IL_102a: Unknown result type (might be due to invalid IL or missing references) //IL_1031: Unknown result type (might be due to invalid IL or missing references) //IL_1038: Unknown result type (might be due to invalid IL or missing references) //IL_103f: Unknown result type (might be due to invalid IL or missing references) //IL_1046: Unknown result type (might be due to invalid IL or missing references) //IL_1051: Unknown result type (might be due to invalid IL or missing references) //IL_105d: Unknown result type (might be due to invalid IL or missing references) //IL_1068: Unknown result type (might be due to invalid IL or missing references) //IL_106f: Unknown result type (might be due to invalid IL or missing references) //IL_1089: Unknown result type (might be due to invalid IL or missing references) //IL_1092: Expected O, but got Unknown //IL_1093: Unknown result type (might be due to invalid IL or missing references) //IL_1098: Unknown result type (might be due to invalid IL or missing references) //IL_109f: Unknown result type (might be due to invalid IL or missing references) //IL_10a1: Unknown result type (might be due to invalid IL or missing references) //IL_10a6: Unknown result type (might be due to invalid IL or missing references) //IL_10a8: Unknown result type (might be due to invalid IL or missing references) //IL_10ad: Unknown result type (might be due to invalid IL or missing references) //IL_10b8: Unknown result type (might be due to invalid IL or missing references) //IL_10ba: Unknown result type (might be due to invalid IL or missing references) //IL_10bf: Unknown result type (might be due to invalid IL or missing references) //IL_10c6: Unknown result type (might be due to invalid IL or missing references) //IL_10cd: Unknown result type (might be due to invalid IL or missing references) //IL_10d4: Unknown result type (might be due to invalid IL or missing references) //IL_10df: Unknown result type (might be due to invalid IL or missing references) //IL_10e6: Unknown result type (might be due to invalid IL or missing references) //IL_10ed: Unknown result type (might be due to invalid IL or missing references) //IL_10f9: Unknown result type (might be due to invalid IL or missing references) //IL_1100: Unknown result type (might be due to invalid IL or missing references) //IL_1107: Unknown result type (might be due to invalid IL or missing references) //IL_110e: Unknown result type (might be due to invalid IL or missing references) //IL_1110: Unknown result type (might be due to invalid IL or missing references) //IL_1115: Unknown result type (might be due to invalid IL or missing references) //IL_1117: Unknown result type (might be due to invalid IL or missing references) //IL_111c: Unknown result type (might be due to invalid IL or missing references) //IL_1123: Unknown result type (might be due to invalid IL or missing references) //IL_112e: Unknown result type (might be due to invalid IL or missing references) //IL_113a: Unknown result type (might be due to invalid IL or missing references) //IL_1141: Unknown result type (might be due to invalid IL or missing references) //IL_1148: Unknown result type (might be due to invalid IL or missing references) //IL_114f: Unknown result type (might be due to invalid IL or missing references) //IL_1156: Unknown result type (might be due to invalid IL or missing references) //IL_115d: Unknown result type (might be due to invalid IL or missing references) //IL_1168: Unknown result type (might be due to invalid IL or missing references) //IL_1174: Unknown result type (might be due to invalid IL or missing references) //IL_117f: Unknown result type (might be due to invalid IL or missing references) //IL_1186: Unknown result type (might be due to invalid IL or missing references) //IL_11a0: Unknown result type (might be due to invalid IL or missing references) //IL_11a9: Expected O, but got Unknown //IL_11aa: Unknown result type (might be due to invalid IL or missing references) //IL_11af: Unknown result type (might be due to invalid IL or missing references) //IL_11b6: Unknown result type (might be due to invalid IL or missing references) //IL_11b8: Unknown result type (might be due to invalid IL or missing references) //IL_11bd: Unknown result type (might be due to invalid IL or missing references) //IL_11bf: Unknown result type (might be due to invalid IL or missing references) //IL_11c4: Unknown result type (might be due to invalid IL or missing references) //IL_11cf: Unknown result type (might be due to invalid IL or missing references) //IL_11d1: Unknown result type (might be due to invalid IL or missing references) //IL_11d6: Unknown result type (might be due to invalid IL or missing references) //IL_11dd: Unknown result type (might be due to invalid IL or missing references) //IL_11e4: Unknown result type (might be due to invalid IL or missing references) //IL_11eb: Unknown result type (might be due to invalid IL or missing references) //IL_11f6: Unknown result type (might be due to invalid IL or missing references) //IL_11fd: Unknown result type (might be due to invalid IL or missing references) //IL_1204: Unknown result type (might be due to invalid IL or missing references) //IL_1210: Unknown result type (might be due to invalid IL or missing references) //IL_1217: Unknown result type (might be due to invalid IL or missing references) //IL_121e: Unknown result type (might be due to invalid IL or missing references) //IL_1225: Unknown result type (might be due to invalid IL or missing references) //IL_1227: Unknown result type (might be due to invalid IL or missing references) //IL_122c: Unknown result type (might be due to invalid IL or missing references) //IL_122e: Unknown result type (might be due to invalid IL or missing references) //IL_1233: Unknown result type (might be due to invalid IL or missing references) //IL_123a: Unknown result type (might be due to invalid IL or missing references) //IL_1245: Unknown result type (might be due to invalid IL or missing references) //IL_1251: Unknown result type (might be due to invalid IL or missing references) //IL_1258: Unknown result type (might be due to invalid IL or missing references) //IL_125f: Unknown result type (might be due to invalid IL or missing references) //IL_1266: Unknown result type (might be due to invalid IL or missing references) //IL_126d: Unknown result type (might be due to invalid IL or missing references) //IL_1274: Unknown result type (might be due to invalid IL or missing references) //IL_127f: Unknown result type (might be due to invalid IL or missing references) //IL_128b: Unknown result type (might be due to invalid IL or missing references) //IL_1296: Unknown result type (might be due to invalid IL or missing references) //IL_129d: Unknown result type (might be due to invalid IL or missing references) //IL_12b7: Unknown result type (might be due to invalid IL or missing references) //IL_12c0: Expected O, but got Unknown //IL_12c1: Unknown result type (might be due to invalid IL or missing references) //IL_12c6: Unknown result type (might be due to invalid IL or missing references) //IL_12cd: Unknown result type (might be due to invalid IL or missing references) //IL_12cf: Unknown result type (might be due to invalid IL or missing references) //IL_12d4: Unknown result type (might be due to invalid IL or missing references) //IL_12d6: Unknown result type (might be due to invalid IL or missing references) //IL_12db: Unknown result type (might be due to invalid IL or missing references) //IL_12e6: Unknown result type (might be due to invalid IL or missing references) //IL_12e8: Unknown result type (might be due to invalid IL or missing references) //IL_12ed: Unknown result type (might be due to invalid IL or missing references) //IL_12f4: Unknown result type (might be due to invalid IL or missing references) //IL_12fb: Unknown result type (might be due to invalid IL or missing references) //IL_1302: Unknown result type (might be due to invalid IL or missing references) //IL_130d: Unknown result type (might be due to invalid IL or missing references) //IL_1314: Unknown result type (might be due to invalid IL or missing references) //IL_131b: Unknown result type (might be due to invalid IL or missing references) //IL_1327: Unknown result type (might be due to invalid IL or missing references) //IL_132e: Unknown result type (might be due to invalid IL or missing references) //IL_1335: Unknown result type (might be due to invalid IL or missing references) //IL_133c: Unknown result type (might be due to invalid IL or missing references) //IL_133e: Unknown result type (might be due to invalid IL or missing references) //IL_1343: Unknown result type (might be due to invalid IL or missing references) //IL_1345: Unknown result type (might be due to invalid IL or missing references) //IL_134a: Unknown result type (might be due to invalid IL or missing references) //IL_1351: Unknown result type (might be due to invalid IL or missing references) //IL_135c: Unknown result type (might be due to invalid IL or missing references) //IL_1368: Unknown result type (might be due to invalid IL or missing references) //IL_136f: Unknown result type (might be due to invalid IL or missing references) //IL_1376: Unknown result type (might be due to invalid IL or missing references) //IL_137d: Unknown result type (might be due to invalid IL or missing references) //IL_1384: Unknown result type (might be due to invalid IL or missing references) //IL_138b: Unknown result type (might be due to invalid IL or missing references) //IL_1396: Unknown result type (might be due to invalid IL or missing references) //IL_13a2: Unknown result type (might be due to invalid IL or missing references) //IL_13ad: Unknown result type (might be due to invalid IL or missing references) //IL_13b4: Unknown result type (might be due to invalid IL or missing references) //IL_13ce: Unknown result type (might be due to invalid IL or missing references) //IL_13d7: Expected O, but got Unknown //IL_13d8: Unknown result type (might be due to invalid IL or missing references) //IL_13dd: Unknown result type (might be due to invalid IL or missing references) //IL_13e4: Unknown result type (might be due to invalid IL or missing references) //IL_13e6: Unknown result type (might be due to invalid IL or missing references) //IL_13eb: Unknown result type (might be due to invalid IL or missing references) //IL_13ed: Unknown result type (might be due to invalid IL or missing references) //IL_13f2: Unknown result type (might be due to invalid IL or missing references) //IL_13fd: Unknown result type (might be due to invalid IL or missing references) //IL_13ff: Unknown result type (might be due to invalid IL or missing references) //IL_1404: Unknown result type (might be due to invalid IL or missing references) //IL_140b: Unknown result type (might be due to invalid IL or missing references) //IL_1412: Unknown result type (might be due to invalid IL or missing references) //IL_1419: Unknown result type (might be due to invalid IL or missing references) //IL_1424: Unknown result type (might be due to invalid IL or missing references) //IL_142b: Unknown result type (might be due to invalid IL or missing references) //IL_1432: Unknown result type (might be due to invalid IL or missing references) //IL_143e: Unknown result type (might be due to invalid IL or missing references) //IL_1445: Unknown result type (might be due to invalid IL or missing references) //IL_144c: Unknown result type (might be due to invalid IL or missing references) //IL_1453: Unknown result type (might be due to invalid IL or missing references) //IL_1455: Unknown result type (might be due to invalid IL or missing references) //IL_145a: Unknown result type (might be due to invalid IL or missing references) //IL_145c: Unknown result type (might be due to invalid IL or missing references) //IL_1461: Unknown result type (might be due to invalid IL or missing references) //IL_1468: Unknown result type (might be due to invalid IL or missing references) //IL_1473: Unknown result type (might be due to invalid IL or missing references) //IL_147f: Unknown result type (might be due to invalid IL or missing references) //IL_1486: Unknown result type (might be due to invalid IL or missing references) //IL_148d: Unknown result type (might be due to invalid IL or missing references) //IL_1494: Unknown result type (might be due to invalid IL or missing references) //IL_149b: Unknown result type (might be due to invalid IL or missing references) //IL_14a2: Unknown result type (might be due to invalid IL or missing references) //IL_14ad: Unknown result type (might be due to invalid IL or missing references) //IL_14b9: Unknown result type (might be due to invalid IL or missing references) //IL_14c4: Unknown result type (might be due to invalid IL or missing references) //IL_14cb: Unknown result type (might be due to invalid IL or missing references) //IL_14e5: Unknown result type (might be due to invalid IL or missing references) //IL_14ee: Expected O, but got Unknown //IL_14ef: Unknown result type (might be due to invalid IL or missing references) //IL_14f4: Unknown result type (might be due to invalid IL or missing references) //IL_14fb: Unknown result type (might be due to invalid IL or missing references) //IL_14fd: Unknown result type (might be due to invalid IL or missing references) //IL_1502: Unknown result type (might be due to invalid IL or missing references) //IL_1504: Unknown result type (might be due to invalid IL or missing references) //IL_1509: Unknown result type (might be due to invalid IL or missing references) //IL_1514: Unknown result type (might be due to invalid IL or missing references) //IL_1516: Unknown result type (might be due to invalid IL or missing references) //IL_151b: Unknown result type (might be due to invalid IL or missing references) //IL_1526: Unknown result type (might be due to invalid IL or missing references) //IL_152d: Unknown result type (might be due to invalid IL or missing references) //IL_1534: Unknown result type (might be due to invalid IL or missing references) //IL_153f: Unknown result type (might be due to invalid IL or missing references) //IL_1546: Unknown result type (might be due to invalid IL or missing references) //IL_154d: Unknown result type (might be due to invalid IL or missing references) //IL_1559: Unknown result type (might be due to invalid IL or missing references) //IL_1560: Unknown result type (might be due to invalid IL or missing references) //IL_1567: Unknown result type (might be due to invalid IL or missing references) //IL_156e: Unknown result type (might be due to invalid IL or missing references) //IL_1570: Unknown result type (might be due to invalid IL or missing references) //IL_1575: Unknown result type (might be due to invalid IL or missing references) //IL_1577: Unknown result type (might be due to invalid IL or missing references) //IL_157c: Unknown result type (might be due to invalid IL or missing references) //IL_1583: Unknown result type (might be due to invalid IL or missing references) //IL_158e: Unknown result type (might be due to invalid IL or missing references) //IL_159a: Unknown result type (might be due to invalid IL or missing references) //IL_15a1: Unknown result type (might be due to invalid IL or missing references) //IL_15a8: Unknown result type (might be due to invalid IL or missing references) //IL_15af: Unknown result type (might be due to invalid IL or missing references) //IL_15b6: Unknown result type (might be due to invalid IL or missing references) //IL_15bd: Unknown result type (might be due to invalid IL or missing references) //IL_15c8: Unknown result type (might be due to invalid IL or missing references) //IL_15d4: Unknown result type (might be due to invalid IL or missing references) //IL_15df: Unknown result type (might be due to invalid IL or missing references) //IL_15e6: Unknown result type (might be due to invalid IL or missing references) //IL_1600: Unknown result type (might be due to invalid IL or missing references) //IL_1609: Expected O, but got Unknown //IL_160a: Unknown result type (might be due to invalid IL or missing references) //IL_160f: Unknown result type (might be due to invalid IL or missing references) //IL_1616: Unknown result type (might be due to invalid IL or missing references) //IL_1618: Unknown result type (might be due to invalid IL or missing references) //IL_161d: Unknown result type (might be due to invalid IL or missing references) //IL_161f: Unknown result type (might be due to invalid IL or missing references) //IL_1624: Unknown result type (might be due to invalid IL or missing references) //IL_162f: Unknown result type (might be due to invalid IL or missing references) //IL_1631: Unknown result type (might be due to invalid IL or missing references) //IL_1636: Unknown result type (might be due to invalid IL or missing references) //IL_163d: Unknown result type (might be due to invalid IL or missing references) //IL_1644: Unknown result type (might be due to invalid IL or missing references) //IL_164b: Unknown result type (might be due to invalid IL or missing references) //IL_1656: Unknown result type (might be due to invalid IL or missing references) //IL_165d: Unknown result type (might be due to invalid IL or missing references) //IL_1664: Unknown result type (might be due to invalid IL or missing references) //IL_1670: Unknown result type (might be due to invalid IL or missing references) //IL_1677: Unknown result type (might be due to invalid IL or missing references) //IL_167e: Unknown result type (might be due to invalid IL or missing references) //IL_1685: Unknown result type (might be due to invalid IL or missing references) //IL_1687: Unknown result type (might be due to invalid IL or missing references) //IL_168c: Unknown result type (might be due to invalid IL or missing references) //IL_168e: Unknown result type (might be due to invalid IL or missing references) //IL_1693: Unknown result type (might be due to invalid IL or missing references) //IL_169a: Unknown result type (might be due to invalid IL or missing references) //IL_16a5: Unknown result type (might be due to invalid IL or missing references) //IL_16b1: Unknown result type (might be due to invalid IL or missing references) //IL_16b8: Unknown result type (might be due to invalid IL or missing references) //IL_16bf: Unknown result type (might be due to invalid IL or missing references) //IL_16c6: Unknown result type (might be due to invalid IL or missing references) //IL_16cd: Unknown result type (might be due to invalid IL or missing references) //IL_16d4: Unknown result type (might be due to invalid IL or missing references) //IL_16df: Unknown result type (might be due to invalid IL or missing references) //IL_16eb: Unknown result type (might be due to invalid IL or missing references) //IL_16f6: Unknown result type (might be due to invalid IL or missing references) //IL_16fd: Unknown result type (might be due to invalid IL or missing references) //IL_1717: Unknown result type (might be due to invalid IL or missing references) //IL_1720: Expected O, but got Unknown //IL_1721: Unknown result type (might be due to invalid IL or missing references) //IL_1726: Unknown result type (might be due to invalid IL or missing references) //IL_172d: Unknown result type (might be due to invalid IL or missing references) //IL_172f: Unknown result type (might be due to invalid IL or missing references) //IL_1734: Unknown result type (might be due to invalid IL or missing references) //IL_1736: Unknown result type (might be due to invalid IL or missing references) //IL_173b: Unknown result type (might be due to invalid IL or missing references) //IL_1746: Unknown result type (might be due to invalid IL or missing references) //IL_1748: Unknown result type (might be due to invalid IL or missing references) //IL_174d: Unknown result type (might be due to invalid IL or missing references) //IL_1754: Unknown result type (might be due to invalid IL or missing references) //IL_175b: Unknown result type (might be due to invalid IL or missing references) //IL_1762: Unknown result type (might be due to invalid IL or missing references) //IL_176d: Unknown result type (might be due to invalid IL or missing references) //IL_1774: Unknown result type (might be due to invalid IL or missing references) //IL_177b: Unknown result type (might be due to invalid IL or missing references) //IL_1787: Unknown result type (might be due to invalid IL or missing references) //IL_178e: Unknown result type (might be due to invalid IL or missing references) //IL_1795: Unknown result type (might be due to invalid IL or missing references) //IL_179c: Unknown result type (might be due to invalid IL or missing references) //IL_179e: Unknown result type (might be due to invalid IL or missing references) //IL_17a3: Unknown result type (might be due to invalid IL or missing references) //IL_17a5: Unknown result type (might be due to invalid IL or missing references) //IL_17aa: Unknown result type (might be due to invalid IL or missing references) //IL_17b1: Unknown result type (might be due to invalid IL or missing references) //IL_17bc: Unknown result type (might be due to invalid IL or missing references) //IL_17c8: Unknown result type (might be due to invalid IL or missing references) //IL_17cf: Unknown result type (might be due to invalid IL or missing references) //IL_17d6: Unknown result type (might be due to invalid IL or missing references) //IL_17dd: Unknown result type (might be due to invalid IL or missing references) //IL_17e4: Unknown result type (might be due to invalid IL or missing references) //IL_17eb: Unknown result type (might be due to invalid IL or missing references) //IL_17f6: Unknown result type (might be due to invalid IL or missing references) //IL_1802: Unknown result type (might be due to invalid IL or missing references) //IL_180d: Unknown result type (might be due to invalid IL or missing references) //IL_1814: Unknown result type (might be due to invalid IL or missing references) //IL_182e: Unknown result type (might be due to invalid IL or missing references) //IL_1837: Expected O, but got Unknown //IL_1838: Unknown result type (might be due to invalid IL or missing references) //IL_183d: Unknown result type (might be due to invalid IL or missing references) //IL_1844: Unknown result type (might be due to invalid IL or missing references) //IL_1846: Unknown result type (might be due to invalid IL or missing references) //IL_184b: Unknown result type (might be due to invalid IL or missing references) //IL_184d: Unknown result type (might be due to invalid IL or missing references) //IL_1852: Unknown result type (might be due to invalid IL or missing references) //IL_185d: Unknown result type (might be due to invalid IL or missing references) //IL_185f: Unknown result type (might be due to invalid IL or missing references) //IL_1864: Unknown result type (might be due to invalid IL or missing references) //IL_186b: Unknown result type (might be due to invalid IL or missing references) //IL_1872: Unknown result type (might be due to invalid IL or missing references) //IL_1879: Unknown result type (might be due to invalid IL or missing references) //IL_1884: Unknown result type (might be due to invalid IL or missing references) //IL_188b: Unknown result type (might be due to invalid IL or missing references) //IL_1892: Unknown result type (might be due to invalid IL or missing references) //IL_189e: Unknown result type (might be due to invalid IL or missing references) //IL_18a5: Unknown result type (might be due to invalid IL or missing references) //IL_18ac: Unknown result type (might be due to invalid IL or missing references) //IL_18b3: Unknown result type (might be due to invalid IL or missing references) //IL_18b5: Unknown result type (might be due to invalid IL or missing references) //IL_18ba: Unknown result type (might be due to invalid IL or missing references) //IL_18bc: Unknown result type (might be due to invalid IL or missing references) //IL_18c1: Unknown result type (might be due to invalid IL or missing references) //IL_18c8: Unknown result type (might be due to invalid IL or missing references) //IL_18d3: Unknown result type (might be due to invalid IL or missing references) //IL_18df: Unknown result type (might be due to invalid IL or missing references) //IL_18e6: Unknown result type (might be due to invalid IL or missing references) //IL_18ed: Unknown result type (might be due to invalid IL or missing references) //IL_18f4: Unknown result type (might be due to invalid IL or missing references) //IL_18fb: Unknown result type (might be due to invalid IL or missing references) //IL_1902: Unknown result type (might be due to invalid IL or missing references) //IL_190d: Unknown result type (might be due to invalid IL or missing references) //IL_1919: Unknown result type (might be due to invalid IL or missing references) //IL_1924: Unknown result type (might be due to invalid IL or missing references) //IL_192b: Unknown result type (might be due to invalid IL or missing references) //IL_1945: Unknown result type (might be due to invalid IL or missing references) //IL_194e: Expected O, but got Unknown //IL_194f: Unknown result type (might be due to invalid IL or missing references) //IL_1954: Unknown result type (might be due to invalid IL or missing references) //IL_195b: Unknown result type (might be due to invalid IL or missing references) //IL_195d: Unknown result type (might be due to invalid IL or missing references) //IL_1962: Unknown result type (might be due to invalid IL or missing references) //IL_1964: Unknown result type (might be due to invalid IL or missing references) //IL_1969: Unknown result type (might be due to invalid IL or missing references) //IL_1974: Unknown result type (might be due to invalid IL or missing references) //IL_1976: Unknown result type (might be due to invalid IL or missing references) //IL_197b: Unknown result type (might be due to invalid IL or missing references) //IL_1982: Unknown result type (might be due to invalid IL or missing references) //IL_1989: Unknown result type (might be due to invalid IL or missing references) //IL_1990: Unknown result type (might be due to invalid IL or missing references) //IL_199b: Unknown result type (might be due to invalid IL or missing references) //IL_19a2: Unknown result type (might be due to invalid IL or missing references) //IL_19a9: Unknown result type (might be due to invalid IL or missing references) //IL_19b5: Unknown result type (might be due to invalid IL or missing references) //IL_19bc: Unknown result type (might be due to invalid IL or missing references) //IL_19c3: Unknown result type (might be due to invalid IL or missing references) //IL_19ca: Unknown result type (might be due to invalid IL or missing references) //IL_19cc: Unknown result type (might be due to invalid IL or missing references) //IL_19d1: Unknown result type (might be due to invalid IL or missing references) //IL_19d3: Unknown result type (might be due to invalid IL or missing references) //IL_19d8: Unknown result type (might be due to invalid IL or missing references) //IL_19df: Unknown result type (might be due to invalid IL or missing references) //IL_19ea: Unknown result type (might be due to invalid IL or missing references) //IL_19f6: Unknown result type (might be due to invalid IL or missing references) //IL_19fd: Unknown result type (might be due to invalid IL or missing references) //IL_1a04: Unknown result type (might be due to invalid IL or missing references) //IL_1a0b: Unknown result type (might be due to invalid IL or missing references) //IL_1a12: Unknown result type (might be due to invalid IL or missing references) //IL_1a19: Unknown result type (might be due to invalid IL or missing references) //IL_1a24: Unknown result type (might be due to invalid IL or missing references) //IL_1a30: Unknown result type (might be due to invalid IL or missing references) //IL_1a3b: Unknown result type (might be due to invalid IL or missing references) //IL_1a42: Unknown result type (might be due to invalid IL or missing references) //IL_1a5c: Unknown result type (might be due to invalid IL or missing references) //IL_1a65: Expected O, but got Unknown //IL_1a66: Unknown result type (might be due to invalid IL or missing references) //IL_1a6b: Unknown result type (might be due to invalid IL or missing references) //IL_1a72: Unknown result type (might be due to invalid IL or missing references) //IL_1a74: Unknown result type (might be due to invalid IL or missing references) //IL_1a79: Unknown result type (might be due to invalid IL or missing references) //IL_1a7b: Unknown result type (might be due to invalid IL or missing references) //IL_1a80: Unknown result type (might be due to invalid IL or missing references) //IL_1a8b: Unknown result type (might be due to invalid IL or missing references) //IL_1a8d: Unknown result type (might be due to invalid IL or missing references) //IL_1a92: Unknown result type (might be due to invalid IL or missing references) //IL_1a99: Unknown result type (might be due to invalid IL or missing references) //IL_1aa0: Unknown result type (might be due to invalid IL or missing references) //IL_1aa7: Unknown result type (might be due to invalid IL or missing references) //IL_1ab2: Unknown result type (might be due to invalid IL or missing references) //IL_1ab9: Unknown result type (might be due to invalid IL or missing references) //IL_1ac0: Unknown result type (might be due to invalid IL or missing references) //IL_1acc: Unknown result type (might be due to invalid IL or missing references) //IL_1ad3: Unknown result type (might be due to invalid IL or missing references) //IL_1ada: Unknown result type (might be due to invalid IL or missing references) //IL_1ae1: Unknown result type (might be due to invalid IL or missing references) //IL_1ae3: Unknown result type (might be due to invalid IL or missing references) //IL_1ae8: Unknown result type (might be due to invalid IL or missing references) //IL_1aea: Unknown result type (might be due to invalid IL or missing references) //IL_1aef: Unknown result type (might be due to invalid IL or missing references) //IL_1af6: Unknown result type (might be due to invalid IL or missing references) //IL_1b01: Unknown result type (might be due to invalid IL or missing references) //IL_1b0d: Unknown result type (might be due to invalid IL or missing references) //IL_1b14: Unknown result type (might be due to invalid IL or missing references) //IL_1b1b: Unknown result type (might be due to invalid IL or missing references) //IL_1b22: Unknown result type (might be due to invalid IL or missing references) //IL_1b29: Unknown result type (might be due to invalid IL or missing references) //IL_1b30: Unknown result type (might be due to invalid IL or missing references) //IL_1b3b: Unknown result type (might be due to invalid IL or missing references) //IL_1b47: Unknown result type (might be due to invalid IL or missing references) //IL_1b52: Unknown result type (might be due to invalid IL or missing references) //IL_1b59: Unknown result type (might be due to invalid IL or missing references) //IL_1b73: Unknown result type (might be due to invalid IL or missing references) //IL_1b7c: Expected O, but got Unknown //IL_1b7d: Unknown result type (might be due to invalid IL or missing references) //IL_1b82: Unknown result type (might be due to invalid IL or missing references) //IL_1b89: Unknown result type (might be due to invalid IL or missing references) //IL_1b8b: Unknown result type (might be due to invalid IL or missing references) //IL_1b90: Unknown result type (might be due to invalid IL or missing references) //IL_1b92: Unknown result type (might be due to invalid IL or missing references) //IL_1b97: Unknown result type (might be due to invalid IL or missing references) //IL_1ba2: Unknown result type (might be due to invalid IL or missing references) //IL_1ba4: Unknown result type (might be due to invalid IL or missing references) //IL_1ba9: Unknown result type (might be due to invalid IL or missing references) //IL_1bb0: Unknown result type (might be due to invalid IL or missing references) //IL_1bb7: Unknown result type (might be due to invalid IL or missing references) //IL_1bbe: Unknown result type (might be due to invalid IL or missing references) //IL_1bc9: Unknown result type (might be due to invalid IL or missing references) //IL_1bd0: Unknown result type (might be due to invalid IL or missing references) //IL_1bd7: Unknown result type (might be due to invalid IL or missing references) //IL_1be3: Unknown result type (might be due to invalid IL or missing references) //IL_1bea: Unknown result type (might be due to invalid IL or missing references) //IL_1bf1: Unknown result type (might be due to invalid IL or missing references) //IL_1bf8: Unknown result type (might be due to invalid IL or missing references) //IL_1bfa: Unknown result type (might be due to invalid IL or missing references) //IL_1bff: Unknown result type (might be due to invalid IL or missing references) //IL_1c01: Unknown result type (might be due to invalid IL or missing references) //IL_1c06: Unknown result type (might be due to invalid IL or missing references) //IL_1c0d: Unknown result type (might be due to invalid IL or missing references) //IL_1c18: Unknown result type (might be due to invalid IL or missing references) //IL_1c24: Unknown result type (might be due to invalid IL or missing references) //IL_1c2b: Unknown result type (might be due to invalid IL or missing references) //IL_1c32: Unknown result type (might be due to invalid IL or missing references) //IL_1c39: Unknown result type (might be due to invalid IL or missing references) //IL_1c40: Unknown result type (might be due to invalid IL or missing references) //IL_1c47: Unknown result type (might be due to invalid IL or missing references) //IL_1c52: Unknown result type (might be due to invalid IL or missing references) //IL_1c5e: Unknown result type (might be due to invalid IL or missing references) //IL_1c69: Unknown result type (might be due to invalid IL or missing references) //IL_1c70: Unknown result type (might be due to invalid IL or missing references) //IL_1c8a: Unknown result type (might be due to invalid IL or missing references) //IL_1c93: Expected O, but got Unknown //IL_1c94: Unknown result type (might be due to invalid IL or missing references) //IL_1c99: Unknown result type (might be due to invalid IL or missing references) //IL_1ca0: Unknown result type (might be due to invalid IL or missing references) //IL_1ca2: Unknown result type (might be due to invalid IL or missing references) //IL_1ca7: Unknown result type (might be due to invalid IL or missing references) //IL_1ca9: Unknown result type (might be due to invalid IL or missing references) //IL_1cae: Unknown result type (might be due to invalid IL or missing references) //IL_1cb9: Unknown result type (might be due to invalid IL or missing references) //IL_1cbb: Unknown result type (might be due to invalid IL or missing references) //IL_1cc0: Unknown result type (might be due to invalid IL or missing references) //IL_1cc7: Unknown result type (might be due to invalid IL or missing references) //IL_1cce: Unknown result type (might be due to invalid IL or missing references) //IL_1cd5: Unknown result type (might be due to invalid IL or missing references) //IL_1ce0: Unknown result type (might be due to invalid IL or missing references) //IL_1ce7: Unknown result type (might be due to invalid IL or missing references) //IL_1cee: Unknown result type (might be due to invalid IL or missing references) //IL_1cfa: Unknown result type (might be due to invalid IL or missing references) //IL_1d01: Unknown result type (might be due to invalid IL or missing references) //IL_1d08: Unknown result type (might be due to invalid IL or missing references) //IL_1d0f: Unknown result type (might be due to invalid IL or missing references) //IL_1d11: Unknown result type (might be due to invalid IL or missing references) //IL_1d16: Unknown result type (might be due to invalid IL or missing references) //IL_1d18: Unknown result type (might be due to invalid IL or missing references) //IL_1d1d: Unknown result type (might be due to invalid IL or missing references) //IL_1d24: Unknown result type (might be due to invalid IL or missing references) //IL_1d2f: Unknown result type (might be due to invalid IL or missing references) //IL_1d3b: Unknown result type (might be due to invalid IL or missing references) //IL_1d42: Unknown result type (might be due to invalid IL or missing references) //IL_1d49: Unknown result type (might be due to invalid IL or missing references) //IL_1d50: Unknown result type (might be due to invalid IL or missing references) //IL_1d57: Unknown result type (might be due to invalid IL or missing references) //IL_1d5e: Unknown result type (might be due to invalid IL or missing references) //IL_1d69: Unknown result type (might be due to invalid IL or missing references) //IL_1d75: Unknown result type (might be due to invalid IL or missing references) //IL_1d80: Unknown result type (might be due to invalid IL or missing references) //IL_1d87: Unknown result type (might be due to invalid IL or missing references) //IL_1da1: Unknown result type (might be due to invalid IL or missing references) //IL_1daa: Expected O, but got Unknown //IL_1dab: Unknown result type (might be due to invalid IL or missing references) //IL_1db0: Unknown result type (might be due to invalid IL or missing references) //IL_1db7: Unknown result type (might be due to invalid IL or missing references) //IL_1db9: Unknown result type (might be due to invalid IL or missing references) //IL_1dbe: Unknown result type (might be due to invalid IL or missing references) //IL_1dc0: Unknown result type (might be due to invalid IL or missing references) //IL_1dc5: Unknown result type (might be due to invalid IL or missing references) //IL_1dd0: Unknown result type (might be due to invalid IL or missing references) //IL_1dd2: Unknown result type (might be due to invalid IL or missing references) //IL_1dd7: Unknown result type (might be due to invalid IL or missing references) //IL_1dde: Unknown result type (might be due to invalid IL or missing references) //IL_1de5: Unknown result type (might be due to invalid IL or missing references) //IL_1dec: Unknown result type (might be due to invalid IL or missing references) //IL_1df7: Unknown result type (might be due to invalid IL or missing references) //IL_1dfe: Unknown result type (might be due to invalid IL or missing references) //IL_1e05: Unknown result type (might be due to invalid IL or missing references) //IL_1e11: Unknown result type (might be due to invalid IL or missing references) //IL_1e18: Unknown result type (might be due to invalid IL or missing references) //IL_1e1f: Unknown result type (might be due to invalid IL or missing references) //IL_1e26: Unknown result type (might be due to invalid IL or missing references) //IL_1e28: Unknown result type (might be due to invalid IL or missing references) //IL_1e2d: Unknown result type (might be due to invalid IL or missing references) //IL_1e2f: Unknown result type (might be due to invalid IL or missing references) //IL_1e34: Unknown result type (might be due to invalid IL or missing references) //IL_1e3b: Unknown result type (might be due to invalid IL or missing references) //IL_1e46: Unknown result type (might be due to invalid IL or missing references) //IL_1e52: Unknown result type (might be due to invalid IL or missing references) //IL_1e59: Unknown result type (might be due to invalid IL or missing references) //IL_1e60: Unknown result type (might be due to invalid IL or missing references) //IL_1e67: Unknown result type (might be due to invalid IL or missing references) //IL_1e6e: Unknown result type (might be due to invalid IL or missing references) //IL_1e75: Unknown result type (might be due to invalid IL or missing references) //IL_1e80: Unknown result type (might be due to invalid IL or missing references) //IL_1e8c: Unknown result type (might be due to invalid IL or missing references) //IL_1e97: Unknown result type (might be due to invalid IL or missing references) //IL_1e9e: Unknown result type (might be due to invalid IL or missing references) //IL_1eb8: Unknown result type (might be due to invalid IL or missing references) //IL_1ec1: Expected O, but got Unknown //IL_1ec2: Unknown result type (might be due to invalid IL or missing references) //IL_1ec7: Unknown result type (might be due to invalid IL or missing references) //IL_1ece: Unknown result type (might be due to invalid IL or missing references) //IL_1ed0: Unknown result type (might be due to invalid IL or missing references) //IL_1ed5: Unknown result type (might be due to invalid IL or missing references) //IL_1ed7: Unknown result type (might be due to invalid IL or missing references) //IL_1edc: Unknown result type (might be due to invalid IL or missing references) //IL_1ee7: Unknown result type (might be due to invalid IL or missing references) //IL_1ee9: Unknown result type (might be due to invalid IL or missing references) //IL_1eee: Unknown result type (might be due to invalid IL or missing references) //IL_1ef5: Unknown result type (might be due to invalid IL or missing references) //IL_1efc: Unknown result type (might be due to invalid IL or missing references) //IL_1f03: Unknown result type (might be due to invalid IL or missing references) //IL_1f0e: Unknown result type (might be due to invalid IL or missing references) //IL_1f15: Unknown result type (might be due to invalid IL or missing references) //IL_1f1c: Unknown result type (might be due to invalid IL or missing references) //IL_1f28: Unknown result type (might be due to invalid IL or missing references) //IL_1f2f: Unknown result type (might be due to invalid IL or missing references) //IL_1f36: Unknown result type (might be due to invalid IL or missing references) //IL_1f3d: Unknown result type (might be due to invalid IL or missing references) //IL_1f3f: Unknown result type (might be due to invalid IL or missing references) //IL_1f44: Unknown result type (might be due to invalid IL or missing references) //IL_1f46: Unknown result type (might be due to invalid IL or missing references) //IL_1f4b: Unknown result type (might be due to invalid IL or missing references) //IL_1f52: Unknown result type (might be due to invalid IL or missing references) //IL_1f5d: Unknown result type (might be due to invalid IL or missing references) //IL_1f69: Unknown result type (might be due to invalid IL or missing references) //IL_1f70: Unknown result type (might be due to invalid IL or missing references) //IL_1f77: Unknown result type (might be due to invalid IL or missing references) //IL_1f7e: Unknown result type (might be due to invalid IL or missing references) //IL_1f85: Unknown result type (might be due to invalid IL or missing references) //IL_1f8c: Unknown result type (might be due to invalid IL or missing references) //IL_1f97: Unknown result type (might be due to invalid IL or missing references) //IL_1fa3: Unknown result type (might be due to invalid IL or missing references) //IL_1fae: Unknown result type (might be due to invalid IL or missing references) //IL_1fb5: Unknown result type (might be due to invalid IL or missing references) //IL_1fcf: Unknown result type (might be due to invalid IL or missing references) //IL_1fd8: Expected O, but got Unknown //IL_1fd9: Unknown result type (might be due to invalid IL or missing references) //IL_1fde: Unknown result type (might be due to invalid IL or missing references) //IL_1fe5: Unknown result type (might be due to invalid IL or missing references) //IL_1fe7: Unknown result type (might be due to invalid IL or missing references) //IL_1fec: Unknown result type (might be due to invalid IL or missing references) //IL_1fee: Unknown result type (might be due to invalid IL or missing references) //IL_1ff3: Unknown result type (might be due to invalid IL or missing references) //IL_1ffe: Unknown result type (might be due to invalid IL or missing references) //IL_2000: Unknown result type (might be due to invalid IL or missing references) //IL_2005: Unknown result type (might be due to invalid IL or missing references) //IL_2010: Unknown result type (might be due to invalid IL or missing references) //IL_2017: Unknown result type (might be due to invalid IL or missing references) //IL_201e: Unknown result type (might be due to invalid IL or missing references) //IL_2029: Unknown result type (might be due to invalid IL or missing references) //IL_2030: Unknown result type (might be due to invalid IL or missing references) //IL_2037: Unknown result type (might be due to invalid IL or missing references) //IL_2043: Unknown result type (might be due to invalid IL or missing references) //IL_204a: Unknown result type (might be due to invalid IL or missing references) //IL_2051: Unknown result type (might be due to invalid IL or missing references) //IL_2058: Unknown result type (might be due to invalid IL or missing references) //IL_205a: Unknown result type (might be due to invalid IL or missing references) //IL_205f: Unknown result type (might be due to invalid IL or missing references) //IL_2061: Unknown result type (might be due to invalid IL or missing references) //IL_2066: Unknown result type (might be due to invalid IL or missing references) //IL_206d: Unknown result type (might be due to invalid IL or missing references) //IL_2078: Unknown result type (might be due to invalid IL or missing references) //IL_2084: Unknown result type (might be due to invalid IL or missing references) //IL_208b: Unknown result type (might be due to invalid IL or missing references) //IL_2092: Unknown result type (might be due to invalid IL or missing references) //IL_2099: Unknown result type (might be due to invalid IL or missing references) //IL_20a0: Unknown result type (might be due to invalid IL or missing references) //IL_20a7: Unknown result type (might be due to invalid IL or missing references) //IL_20b2: Unknown result type (might be due to invalid IL or missing references) //IL_20be: Unknown result type (might be due to invalid IL or missing references) //IL_20c9: Unknown result type (might be due to invalid IL or missing references) //IL_20d0: Unknown result type (might be due to invalid IL or missing references) //IL_20ea: Unknown result type (might be due to invalid IL or missing references) //IL_20f3: Expected O, but got Unknown //IL_20f4: Unknown result type (might be due to invalid IL or missing references) //IL_20f9: Unknown result type (might be due to invalid IL or missing references) //IL_2100: Unknown result type (might be due to invalid IL or missing references) //IL_2102: Unknown result type (might be due to invalid IL or missing references) //IL_2107: Unknown result type (might be due to invalid IL or missing references) //IL_2109: Unknown result type (might be due to invalid IL or missing references) //IL_210e: Unknown result type (might be due to invalid IL or missing references) //IL_2119: Unknown result type (might be due to invalid IL or missing references) //IL_211b: Unknown result type (might be due to invalid IL or missing references) //IL_2120: Unknown result type (might be due to invalid IL or missing references) //IL_2127: Unknown result type (might be due to invalid IL or missing references) //IL_212e: Unknown result type (might be due to invalid IL or missing references) //IL_2135: Unknown result type (might be due to invalid IL or missing references) //IL_2140: Unknown result type (might be due to invalid IL or missing references) //IL_2147: Unknown result type (might be due to invalid IL or missing references) //IL_214e: Unknown result type (might be due to invalid IL or missing references) //IL_215a: Unknown result type (might be due to invalid IL or missing references) //IL_2161: Unknown result type (might be due to invalid IL or missing references) //IL_2168: Unknown result type (might be due to invalid IL or missing references) //IL_216f: Unknown result type (might be due to invalid IL or missing references) //IL_2171: Unknown result type (might be due to invalid IL or missing references) //IL_2176: Unknown result type (might be due to invalid IL or missing references) //IL_2178: Unknown result type (might be due to invalid IL or missing references) //IL_217d: Unknown result type (might be due to invalid IL or missing references) //IL_2184: Unknown result type (might be due to invalid IL or missing references) //IL_218f: Unknown result type (might be due to invalid IL or missing references) //IL_219b: Unknown result type (might be due to invalid IL or missing references) //IL_21a2: Unknown result type (might be due to invalid IL or missing references) //IL_21a9: Unknown result type (might be due to invalid IL or missing references) //IL_21b0: Unknown result type (might be due to invalid IL or missing references) //IL_21b7: Unknown result type (might be due to invalid IL or missing references) //IL_21be: Unknown result type (might be due to invalid IL or missing references) //IL_21c9: Unknown result type (might be due to invalid IL or missing references) //IL_21d5: Unknown result type (might be due to invalid IL or missing references) //IL_21e0: Unknown result type (might be due to invalid IL or missing references) //IL_21e7: Unknown result type (might be due to invalid IL or missing references) //IL_2201: Unknown result type (might be due to invalid IL or missing references) //IL_220a: Expected O, but got Unknown //IL_220b: Unknown result type (might be due to invalid IL or missing references) //IL_2210: Unknown result type (might be due to invalid IL or missing references) //IL_2217: Unknown result type (might be due to invalid IL or missing references) //IL_2219: Unknown result type (might be due to invalid IL or missing references) //IL_221e: Unknown result type (might be due to invalid IL or missing references) //IL_2220: Unknown result type (might be due to invalid IL or missing references) //IL_2225: Unknown result type (might be due to invalid IL or missing references) //IL_2230: Unknown result type (might be due to invalid IL or missing references) //IL_2232: Unknown result type (might be due to invalid IL or missing references) //IL_2237: Unknown result type (might be due to invalid IL or missing references) //IL_223e: Unknown result type (might be due to invalid IL or missing references) //IL_2245: Unknown result type (might be due to invalid IL or missing references) //IL_224c: Unknown result type (might be due to invalid IL or missing references) //IL_2257: Unknown result type (might be due to invalid IL or missing references) //IL_225e: Unknown result type (might be due to invalid IL or missing references) //IL_2265: Unknown result type (might be due to invalid IL or missing references) //IL_2271: Unknown result type (might be due to invalid IL or missing references) //IL_2278: Unknown result type (might be due to invalid IL or missing references) //IL_227f: Unknown result type (might be due to invalid IL or missing references) //IL_2286: Unknown result type (might be due to invalid IL or missing references) //IL_2288: Unknown result type (might be due to invalid IL or missing references) //IL_228d: Unknown result type (might be due to invalid IL or missing references) //IL_228f: Unknown result type (might be due to invalid IL or missing references) //IL_2294: Unknown result type (might be due to invalid IL or missing references) //IL_229b: Unknown result type (might be due to invalid IL or missing references) //IL_22a6: Unknown result type (might be due to invalid IL or missing references) //IL_22b2: Unknown result type (might be due to invalid IL or missing references) //IL_22b9: Unknown result type (might be due to invalid IL or missing references) //IL_22c0: Unknown result type (might be due to invalid IL or missing references) //IL_22c7: Unknown result type (might be due to invalid IL or missing references) //IL_22ce: Unknown result type (might be due to invalid IL or missing references) //IL_22d5: Unknown result type (might be due to invalid IL or missing references) //IL_22e0: Unknown result type (might be due to invalid IL or missing references) //IL_22ec: Unknown result type (might be due to invalid IL or missing references) //IL_22f7: Unknown result type (might be due to invalid IL or missing references) //IL_22fe: Unknown result type (might be due to invalid IL or missing references) //IL_2318: Unknown result type (might be due to invalid IL or missing references) //IL_2321: Expected O, but got Unknown //IL_2322: Unknown result type (might be due to invalid IL or missing references) //IL_2327: Unknown result type (might be due to invalid IL or missing references) //IL_232e: Unknown result type (might be due to invalid IL or missing references) //IL_2330: Unknown result type (might be due to invalid IL or missing references) //IL_2335: Unknown result type (might be due to invalid IL or missing references) //IL_2337: Unknown result type (might be due to invalid IL or missing references) //IL_233c: Unknown result type (might be due to invalid IL or missing references) //IL_2347: Unknown result type (might be due to invalid IL or missing references) //IL_2349: Unknown result type (might be due to invalid IL or missing references) //IL_234e: Unknown result type (might be due to invalid IL or missing references) //IL_2355: Unknown result type (might be due to invalid IL or missing references) //IL_2360: Unknown result type (might be due to invalid IL or missing references) //IL_2367: Unknown result type (might be due to invalid IL or missing references) //IL_2372: Unknown result type (might be due to invalid IL or missing references) //IL_2379: Unknown result type (might be due to invalid IL or missing references) //IL_2380: Unknown result type (might be due to invalid IL or missing references) //IL_238c: Unknown result type (might be due to invalid IL or missing references) //IL_2393: Unknown result type (might be due to invalid IL or missing references) //IL_239a: Unknown result type (might be due to invalid IL or missing references) //IL_23a1: Unknown result type (might be due to invalid IL or missing references) //IL_23a3: Unknown result type (might be due to invalid IL or missing references) //IL_23a8: Unknown result type (might be due to invalid IL or missing references) //IL_23aa: Unknown result type (might be due to invalid IL or missing references) //IL_23af: Unknown result type (might be due to invalid IL or missing references) //IL_23b6: Unknown result type (might be due to invalid IL or missing references) //IL_23c1: Unknown result type (might be due to invalid IL or missing references) //IL_23cd: Unknown result type (might be due to invalid IL or missing references) //IL_23d4: Unknown result type (might be due to invalid IL or missing references) //IL_23db: Unknown result type (might be due to invalid IL or missing references) //IL_23e2: Unknown result type (might be due to invalid IL or missing references) //IL_23e9: Unknown result type (might be due to invalid IL or missing references) //IL_23f0: Unknown result type (might be due to invalid IL or missing references) //IL_23fb: Unknown result type (might be due to invalid IL or missing references) //IL_2407: Unknown result type (might be due to invalid IL or missing references) //IL_2412: Unknown result type (might be due to invalid IL or missing references) //IL_2419: Unknown result type (might be due to invalid IL or missing references) //IL_2433: Unknown result type (might be due to invalid IL or missing references) //IL_243c: Expected O, but got Unknown DungeonFlow val = ScriptableObject.CreateInstance(); DungeonFlowNode val2 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)7, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.tiny_entrance, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val3 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val4 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val5 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val6 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)1, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val7 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = true, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val8 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val9 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val10 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val11 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val12 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val13 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.boss_foyer, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val14 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)3, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.doublebeholsterroom01, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; if (Object.op_Implicit((Object)(object)ExpandPrefabs.doublebeholstertable)) { val14.overrideRoomTable = ExpandPrefabs.doublebeholstertable; } else { val14.overrideExactRoom = ExpandPrefabs.doublebeholsterroom01; } DungeonFlowNode val15 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)8, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.tiny_exit, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val16 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val17 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val18 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val19 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val20 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val21 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)4, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.reward_room, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = true, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val22 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val23 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)1, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val24 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val25 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val26 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val27 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val28 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = true, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val29 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val30 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val31 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)4, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.reward_room, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val32 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val33 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)6, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; DungeonFlowNode val34 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)5, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = ExpandPrefabs.shop_room_table, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), flow = val }; ((Object)val).name = "Custom_Glitch_Flow"; val.fallbackRoomTable = ExpandPrefabs.CustomRoomTable2; val.subtypeRestrictions = new List(0); val.flowInjectionData = new List(0); val.sharedInjectionData = new List(0); val.Initialize(); val.AddNodeToFlow(val2, (DungeonFlowNode)null); val.AddNodeToFlow(val3, val32); val.AddNodeToFlow(val4, val3); val.AddNodeToFlow(val5, val4); val.AddNodeToFlow(val6, val5); val.AddNodeToFlow(val7, val9); val.AddNodeToFlow(val8, val6); val.AddNodeToFlow(val9, val7); val.AddNodeToFlow(val10, val11); val.AddNodeToFlow(val11, val6); val.AddNodeToFlow(val12, val8); val.AddNodeToFlow(val13, val12); val.AddNodeToFlow(val14, val13); val.AddNodeToFlow(val15, val14); val.AddNodeToFlow(val16, (DungeonFlowNode)null); val.AddNodeToFlow(val17, val16); val.AddNodeToFlow(val18, val17); val.AddNodeToFlow(val19, val18); val.AddNodeToFlow(val20, val12); val.AddNodeToFlow(val21, val20); val.AddNodeToFlow(val22, val2); val.AddNodeToFlow(val23, val22); val.AddNodeToFlow(val24, val25); val.AddNodeToFlow(val25, val26); val.AddNodeToFlow(val26, val27); val.AddNodeToFlow(val27, val23); val.AddNodeToFlow(val28, val23); val.AddNodeToFlow(val29, val28); val.AddNodeToFlow(val30, val29); val.AddNodeToFlow(val31, val30); val.AddNodeToFlow(val32, val26); val.AddNodeToFlow(val33, val3); val.AddNodeToFlow(val34, val24); val.LoopConnectNodes(val7, val11); val.LoopConnectNodes(val21, val6); val.LoopConnectNodes(val28, val31); val.FirstNode = val2; return val; } } public class demo_stage_flow { private static DungeonFlow m_demo_stage_flow; public static DungeonFlow DEMO_STAGE_FLOW { get { if (!Object.op_Implicit((Object)(object)m_demo_stage_flow)) { m_demo_stage_flow = m_DEMO_STAGE_FLOW(); } return m_demo_stage_flow; } } private static DungeonFlow m_DEMO_STAGE_FLOW() { //IL_0006: 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_000d: 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_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0043: 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_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_006e: 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_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0087: 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_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: 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_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_0110: 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_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Expected O, but got Unknown //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0167: 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_016e: Unknown result type (might be due to invalid IL or missing references) //IL_0179: Unknown result type (might be due to invalid IL or missing references) //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Unknown result type (might be due to invalid IL or missing references) //IL_01b3: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01c3: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_01cf: Unknown result type (might be due to invalid IL or missing references) //IL_01d6: Unknown result type (might be due to invalid IL or missing references) //IL_01e1: Unknown result type (might be due to invalid IL or missing references) //IL_01ed: 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_01fb: Unknown result type (might be due to invalid IL or missing references) //IL_0202: Unknown result type (might be due to invalid IL or missing references) //IL_0209: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Unknown result type (might be due to invalid IL or missing references) //IL_021b: Unknown result type (might be due to invalid IL or missing references) //IL_0227: Unknown result type (might be due to invalid IL or missing references) //IL_0232: 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_0244: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Expected O, but got Unknown //IL_024d: Unknown result type (might be due to invalid IL or missing references) //IL_0252: 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_025b: Unknown result type (might be due to invalid IL or missing references) //IL_0260: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Unknown result type (might be due to invalid IL or missing references) //IL_0267: Unknown result type (might be due to invalid IL or missing references) //IL_0272: Unknown result type (might be due to invalid IL or missing references) //IL_0274: Unknown result type (might be due to invalid IL or missing references) //IL_0279: Unknown result type (might be due to invalid IL or missing references) //IL_0284: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_0292: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Unknown result type (might be due to invalid IL or missing references) //IL_02a4: Unknown result type (might be due to invalid IL or missing references) //IL_02ab: Unknown result type (might be due to invalid IL or missing references) //IL_02b7: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02c5: Unknown result type (might be due to invalid IL or missing references) //IL_02cc: Unknown result type (might be due to invalid IL or missing references) //IL_02ce: Unknown result type (might be due to invalid IL or missing references) //IL_02d3: Unknown result type (might be due to invalid IL or missing references) //IL_02d5: Unknown result type (might be due to invalid IL or missing references) //IL_02da: Unknown result type (might be due to invalid IL or missing references) //IL_02e1: Unknown result type (might be due to invalid IL or missing references) //IL_02ec: Unknown result type (might be due to invalid IL or missing references) //IL_02f8: 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_0306: Unknown result type (might be due to invalid IL or missing references) //IL_030d: Unknown result type (might be due to invalid IL or missing references) //IL_0314: Unknown result type (might be due to invalid IL or missing references) //IL_031b: Unknown result type (might be due to invalid IL or missing references) //IL_0326: Unknown result type (might be due to invalid IL or missing references) //IL_0332: Unknown result type (might be due to invalid IL or missing references) //IL_033d: Unknown result type (might be due to invalid IL or missing references) //IL_0344: Unknown result type (might be due to invalid IL or missing references) //IL_034f: Unknown result type (might be due to invalid IL or missing references) //IL_0358: Expected O, but got Unknown //IL_0359: Unknown result type (might be due to invalid IL or missing references) //IL_035e: Unknown result type (might be due to invalid IL or missing references) //IL_0365: Unknown result type (might be due to invalid IL or missing references) //IL_0367: Unknown result type (might be due to invalid IL or missing references) //IL_036c: Unknown result type (might be due to invalid IL or missing references) //IL_036e: Unknown result type (might be due to invalid IL or missing references) //IL_0373: Unknown result type (might be due to invalid IL or missing references) //IL_037e: Unknown result type (might be due to invalid IL or missing references) //IL_0380: Unknown result type (might be due to invalid IL or missing references) //IL_0385: Unknown result type (might be due to invalid IL or missing references) //IL_0390: Unknown result type (might be due to invalid IL or missing references) //IL_0397: Unknown result type (might be due to invalid IL or missing references) //IL_039e: Unknown result type (might be due to invalid IL or missing references) //IL_03a9: Unknown result type (might be due to invalid IL or missing references) //IL_03b0: Unknown result type (might be due to invalid IL or missing references) //IL_03b7: Unknown result type (might be due to invalid IL or missing references) //IL_03c3: Unknown result type (might be due to invalid IL or missing references) //IL_03ca: Unknown result type (might be due to invalid IL or missing references) //IL_03d1: Unknown result type (might be due to invalid IL or missing references) //IL_03d8: Unknown result type (might be due to invalid IL or missing references) //IL_03da: Unknown result type (might be due to invalid IL or missing references) //IL_03df: Unknown result type (might be due to invalid IL or missing references) //IL_03e1: Unknown result type (might be due to invalid IL or missing references) //IL_03e6: Unknown result type (might be due to invalid IL or missing references) //IL_03ed: Unknown result type (might be due to invalid IL or missing references) //IL_03f8: Unknown result type (might be due to invalid IL or missing references) //IL_0404: Unknown result type (might be due to invalid IL or missing references) //IL_040b: Unknown result type (might be due to invalid IL or missing references) //IL_0412: Unknown result type (might be due to invalid IL or missing references) //IL_0419: Unknown result type (might be due to invalid IL or missing references) //IL_0420: Unknown result type (might be due to invalid IL or missing references) //IL_0427: Unknown result type (might be due to invalid IL or missing references) //IL_0432: Unknown result type (might be due to invalid IL or missing references) //IL_043e: Unknown result type (might be due to invalid IL or missing references) //IL_0449: Unknown result type (might be due to invalid IL or missing references) //IL_0450: Unknown result type (might be due to invalid IL or missing references) //IL_045b: Unknown result type (might be due to invalid IL or missing references) //IL_0464: Expected O, but got Unknown //IL_0465: Unknown result type (might be due to invalid IL or missing references) //IL_046a: Unknown result type (might be due to invalid IL or missing references) //IL_0471: Unknown result type (might be due to invalid IL or missing references) //IL_0473: Unknown result type (might be due to invalid IL or missing references) //IL_0478: Unknown result type (might be due to invalid IL or missing references) //IL_047a: Unknown result type (might be due to invalid IL or missing references) //IL_047f: Unknown result type (might be due to invalid IL or missing references) //IL_048a: Unknown result type (might be due to invalid IL or missing references) //IL_048c: Unknown result type (might be due to invalid IL or missing references) //IL_0491: Unknown result type (might be due to invalid IL or missing references) //IL_0498: Unknown result type (might be due to invalid IL or missing references) //IL_049f: Unknown result type (might be due to invalid IL or missing references) //IL_04a6: Unknown result type (might be due to invalid IL or missing references) //IL_04b1: Unknown result type (might be due to invalid IL or missing references) //IL_04b8: Unknown result type (might be due to invalid IL or missing references) //IL_04bf: Unknown result type (might be due to invalid IL or missing references) //IL_04cb: Unknown result type (might be due to invalid IL or missing references) //IL_04d2: Unknown result type (might be due to invalid IL or missing references) //IL_04d9: Unknown result type (might be due to invalid IL or missing references) //IL_04e0: Unknown result type (might be due to invalid IL or missing references) //IL_04e2: Unknown result type (might be due to invalid IL or missing references) //IL_04e7: Unknown result type (might be due to invalid IL or missing references) //IL_04e9: Unknown result type (might be due to invalid IL or missing references) //IL_04ee: Unknown result type (might be due to invalid IL or missing references) //IL_04f5: Unknown result type (might be due to invalid IL or missing references) //IL_0500: Unknown result type (might be due to invalid IL or missing references) //IL_050c: Unknown result type (might be due to invalid IL or missing references) //IL_0513: Unknown result type (might be due to invalid IL or missing references) //IL_051a: Unknown result type (might be due to invalid IL or missing references) //IL_0521: Unknown result type (might be due to invalid IL or missing references) //IL_0528: Unknown result type (might be due to invalid IL or missing references) //IL_052f: Unknown result type (might be due to invalid IL or missing references) //IL_053a: Unknown result type (might be due to invalid IL or missing references) //IL_0546: Unknown result type (might be due to invalid IL or missing references) //IL_0551: Unknown result type (might be due to invalid IL or missing references) //IL_0558: Unknown result type (might be due to invalid IL or missing references) //IL_0563: Unknown result type (might be due to invalid IL or missing references) //IL_056c: Expected O, but got Unknown //IL_056d: Unknown result type (might be due to invalid IL or missing references) //IL_0572: Unknown result type (might be due to invalid IL or missing references) //IL_0579: Unknown result type (might be due to invalid IL or missing references) //IL_057b: Unknown result type (might be due to invalid IL or missing references) //IL_0580: Unknown result type (might be due to invalid IL or missing references) //IL_0582: Unknown result type (might be due to invalid IL or missing references) //IL_0587: Unknown result type (might be due to invalid IL or missing references) //IL_0592: Unknown result type (might be due to invalid IL or missing references) //IL_0594: Unknown result type (might be due to invalid IL or missing references) //IL_0599: Unknown result type (might be due to invalid IL or missing references) //IL_05a0: Unknown result type (might be due to invalid IL or missing references) //IL_05a7: Unknown result type (might be due to invalid IL or missing references) //IL_05ae: Unknown result type (might be due to invalid IL or missing references) //IL_05b9: Unknown result type (might be due to invalid IL or missing references) //IL_05c0: Unknown result type (might be due to invalid IL or missing references) //IL_05c7: Unknown result type (might be due to invalid IL or missing references) //IL_05d3: Unknown result type (might be due to invalid IL or missing references) //IL_05da: Unknown result type (might be due to invalid IL or missing references) //IL_05e1: Unknown result type (might be due to invalid IL or missing references) //IL_05e8: Unknown result type (might be due to invalid IL or missing references) //IL_05ea: Unknown result type (might be due to invalid IL or missing references) //IL_05ef: Unknown result type (might be due to invalid IL or missing references) //IL_05f1: Unknown result type (might be due to invalid IL or missing references) //IL_05f6: Unknown result type (might be due to invalid IL or missing references) //IL_05fd: Unknown result type (might be due to invalid IL or missing references) //IL_0608: Unknown result type (might be due to invalid IL or missing references) //IL_0614: Unknown result type (might be due to invalid IL or missing references) //IL_061b: Unknown result type (might be due to invalid IL or missing references) //IL_0622: Unknown result type (might be due to invalid IL or missing references) //IL_0629: Unknown result type (might be due to invalid IL or missing references) //IL_0630: Unknown result type (might be due to invalid IL or missing references) //IL_0637: Unknown result type (might be due to invalid IL or missing references) //IL_0642: Unknown result type (might be due to invalid IL or missing references) //IL_064e: Unknown result type (might be due to invalid IL or missing references) //IL_0659: Unknown result type (might be due to invalid IL or missing references) //IL_0660: Unknown result type (might be due to invalid IL or missing references) //IL_066b: Unknown result type (might be due to invalid IL or missing references) //IL_0674: Expected O, but got Unknown //IL_0675: Unknown result type (might be due to invalid IL or missing references) //IL_067a: Unknown result type (might be due to invalid IL or missing references) //IL_0681: Unknown result type (might be due to invalid IL or missing references) //IL_0683: Unknown result type (might be due to invalid IL or missing references) //IL_0688: Unknown result type (might be due to invalid IL or missing references) //IL_068a: Unknown result type (might be due to invalid IL or missing references) //IL_068f: Unknown result type (might be due to invalid IL or missing references) //IL_069a: Unknown result type (might be due to invalid IL or missing references) //IL_069c: Unknown result type (might be due to invalid IL or missing references) //IL_06a1: Unknown result type (might be due to invalid IL or missing references) //IL_06ac: Unknown result type (might be due to invalid IL or missing references) //IL_06b3: Unknown result type (might be due to invalid IL or missing references) //IL_06ba: Unknown result type (might be due to invalid IL or missing references) //IL_06c5: Unknown result type (might be due to invalid IL or missing references) //IL_06cc: Unknown result type (might be due to invalid IL or missing references) //IL_06d3: Unknown result type (might be due to invalid IL or missing references) //IL_06df: Unknown result type (might be due to invalid IL or missing references) //IL_06e6: Unknown result type (might be due to invalid IL or missing references) //IL_06ed: Unknown result type (might be due to invalid IL or missing references) //IL_06f4: Unknown result type (might be due to invalid IL or missing references) //IL_06f6: Unknown result type (might be due to invalid IL or missing references) //IL_06fb: Unknown result type (might be due to invalid IL or missing references) //IL_06fd: Unknown result type (might be due to invalid IL or missing references) //IL_0702: Unknown result type (might be due to invalid IL or missing references) //IL_0709: Unknown result type (might be due to invalid IL or missing references) //IL_0714: Unknown result type (might be due to invalid IL or missing references) //IL_0720: Unknown result type (might be due to invalid IL or missing references) //IL_0727: Unknown result type (might be due to invalid IL or missing references) //IL_072e: Unknown result type (might be due to invalid IL or missing references) //IL_0735: Unknown result type (might be due to invalid IL or missing references) //IL_073c: Unknown result type (might be due to invalid IL or missing references) //IL_0743: Unknown result type (might be due to invalid IL or missing references) //IL_074e: Unknown result type (might be due to invalid IL or missing references) //IL_075a: Unknown result type (might be due to invalid IL or missing references) //IL_0765: Unknown result type (might be due to invalid IL or missing references) //IL_076c: Unknown result type (might be due to invalid IL or missing references) //IL_0777: Unknown result type (might be due to invalid IL or missing references) //IL_0780: Expected O, but got Unknown //IL_0781: Unknown result type (might be due to invalid IL or missing references) //IL_0786: Unknown result type (might be due to invalid IL or missing references) //IL_078d: Unknown result type (might be due to invalid IL or missing references) //IL_078f: Unknown result type (might be due to invalid IL or missing references) //IL_0794: Unknown result type (might be due to invalid IL or missing references) //IL_0796: Unknown result type (might be due to invalid IL or missing references) //IL_079b: Unknown result type (might be due to invalid IL or missing references) //IL_07a6: Unknown result type (might be due to invalid IL or missing references) //IL_07a8: Unknown result type (might be due to invalid IL or missing references) //IL_07ad: Unknown result type (might be due to invalid IL or missing references) //IL_07b4: Unknown result type (might be due to invalid IL or missing references) //IL_07bf: Unknown result type (might be due to invalid IL or missing references) //IL_07c6: Unknown result type (might be due to invalid IL or missing references) //IL_07d1: Unknown result type (might be due to invalid IL or missing references) //IL_07d8: Unknown result type (might be due to invalid IL or missing references) //IL_07df: Unknown result type (might be due to invalid IL or missing references) //IL_07eb: Unknown result type (might be due to invalid IL or missing references) //IL_07f2: Unknown result type (might be due to invalid IL or missing references) //IL_07f9: Unknown result type (might be due to invalid IL or missing references) //IL_0800: Unknown result type (might be due to invalid IL or missing references) //IL_0802: Unknown result type (might be due to invalid IL or missing references) //IL_0807: Unknown result type (might be due to invalid IL or missing references) //IL_0809: Unknown result type (might be due to invalid IL or missing references) //IL_080e: Unknown result type (might be due to invalid IL or missing references) //IL_0815: Unknown result type (might be due to invalid IL or missing references) //IL_0820: Unknown result type (might be due to invalid IL or missing references) //IL_082c: Unknown result type (might be due to invalid IL or missing references) //IL_0833: Unknown result type (might be due to invalid IL or missing references) //IL_083a: Unknown result type (might be due to invalid IL or missing references) //IL_0841: Unknown result type (might be due to invalid IL or missing references) //IL_0848: Unknown result type (might be due to invalid IL or missing references) //IL_084f: Unknown result type (might be due to invalid IL or missing references) //IL_085a: Unknown result type (might be due to invalid IL or missing references) //IL_0866: Unknown result type (might be due to invalid IL or missing references) //IL_0871: Unknown result type (might be due to invalid IL or missing references) //IL_0878: Unknown result type (might be due to invalid IL or missing references) //IL_0883: Unknown result type (might be due to invalid IL or missing references) //IL_088c: Expected O, but got Unknown //IL_088d: Unknown result type (might be due to invalid IL or missing references) //IL_0892: Unknown result type (might be due to invalid IL or missing references) //IL_0899: Unknown result type (might be due to invalid IL or missing references) //IL_089b: Unknown result type (might be due to invalid IL or missing references) //IL_08a0: Unknown result type (might be due to invalid IL or missing references) //IL_08a2: Unknown result type (might be due to invalid IL or missing references) //IL_08a7: Unknown result type (might be due to invalid IL or missing references) //IL_08b2: Unknown result type (might be due to invalid IL or missing references) //IL_08b4: Unknown result type (might be due to invalid IL or missing references) //IL_08b9: Unknown result type (might be due to invalid IL or missing references) //IL_08c0: Unknown result type (might be due to invalid IL or missing references) //IL_08c7: Unknown result type (might be due to invalid IL or missing references) //IL_08ce: Unknown result type (might be due to invalid IL or missing references) //IL_08d9: Unknown result type (might be due to invalid IL or missing references) //IL_08e0: Unknown result type (might be due to invalid IL or missing references) //IL_08e7: Unknown result type (might be due to invalid IL or missing references) //IL_08f3: Unknown result type (might be due to invalid IL or missing references) //IL_08fa: Unknown result type (might be due to invalid IL or missing references) //IL_0901: Unknown result type (might be due to invalid IL or missing references) //IL_0908: Unknown result type (might be due to invalid IL or missing references) //IL_090a: Unknown result type (might be due to invalid IL or missing references) //IL_090f: Unknown result type (might be due to invalid IL or missing references) //IL_0911: Unknown result type (might be due to invalid IL or missing references) //IL_0916: Unknown result type (might be due to invalid IL or missing references) //IL_091d: Unknown result type (might be due to invalid IL or missing references) //IL_0928: Unknown result type (might be due to invalid IL or missing references) //IL_0934: Unknown result type (might be due to invalid IL or missing references) //IL_093b: Unknown result type (might be due to invalid IL or missing references) //IL_0942: Unknown result type (might be due to invalid IL or missing references) //IL_0949: Unknown result type (might be due to invalid IL or missing references) //IL_0950: Unknown result type (might be due to invalid IL or missing references) //IL_0957: Unknown result type (might be due to invalid IL or missing references) //IL_0962: Unknown result type (might be due to invalid IL or missing references) //IL_096e: Unknown result type (might be due to invalid IL or missing references) //IL_0979: Unknown result type (might be due to invalid IL or missing references) //IL_0980: Unknown result type (might be due to invalid IL or missing references) //IL_098b: Unknown result type (might be due to invalid IL or missing references) //IL_0994: Expected O, but got Unknown //IL_0995: Unknown result type (might be due to invalid IL or missing references) //IL_099a: Unknown result type (might be due to invalid IL or missing references) //IL_09a1: Unknown result type (might be due to invalid IL or missing references) //IL_09a3: Unknown result type (might be due to invalid IL or missing references) //IL_09a8: Unknown result type (might be due to invalid IL or missing references) //IL_09aa: Unknown result type (might be due to invalid IL or missing references) //IL_09af: Unknown result type (might be due to invalid IL or missing references) //IL_09ba: Unknown result type (might be due to invalid IL or missing references) //IL_09bc: Unknown result type (might be due to invalid IL or missing references) //IL_09c1: Unknown result type (might be due to invalid IL or missing references) //IL_09c8: Unknown result type (might be due to invalid IL or missing references) //IL_09cf: Unknown result type (might be due to invalid IL or missing references) //IL_09d6: Unknown result type (might be due to invalid IL or missing references) //IL_09e1: Unknown result type (might be due to invalid IL or missing references) //IL_09e8: Unknown result type (might be due to invalid IL or missing references) //IL_09ef: Unknown result type (might be due to invalid IL or missing references) //IL_09fb: Unknown result type (might be due to invalid IL or missing references) //IL_0a02: Unknown result type (might be due to invalid IL or missing references) //IL_0a09: Unknown result type (might be due to invalid IL or missing references) //IL_0a10: Unknown result type (might be due to invalid IL or missing references) //IL_0a12: Unknown result type (might be due to invalid IL or missing references) //IL_0a17: Unknown result type (might be due to invalid IL or missing references) //IL_0a19: Unknown result type (might be due to invalid IL or missing references) //IL_0a1e: Unknown result type (might be due to invalid IL or missing references) //IL_0a25: Unknown result type (might be due to invalid IL or missing references) //IL_0a30: Unknown result type (might be due to invalid IL or missing references) //IL_0a3c: Unknown result type (might be due to invalid IL or missing references) //IL_0a43: Unknown result type (might be due to invalid IL or missing references) //IL_0a4a: Unknown result type (might be due to invalid IL or missing references) //IL_0a51: Unknown result type (might be due to invalid IL or missing references) //IL_0a58: Unknown result type (might be due to invalid IL or missing references) //IL_0a5f: Unknown result type (might be due to invalid IL or missing references) //IL_0a6a: Unknown result type (might be due to invalid IL or missing references) //IL_0a76: Unknown result type (might be due to invalid IL or missing references) //IL_0a81: Unknown result type (might be due to invalid IL or missing references) //IL_0a88: Unknown result type (might be due to invalid IL or missing references) //IL_0a93: Unknown result type (might be due to invalid IL or missing references) //IL_0a9c: Expected O, but got Unknown DungeonFlow val = ScriptableObject.CreateInstance(); DungeonFlowSubtypeRestriction item = new DungeonFlowSubtypeRestriction { baseCategoryRestriction = (RoomCategory)2, normalSubcategoryRestriction = (RoomNormalSubCategory)1, bossSubcategoryRestriction = (RoomBossSubCategory)0, specialSubcategoryRestriction = (RoomSpecialSubCategory)0, secretSubcategoryRestriction = (RoomSecretSubCategory)0, maximumRoomsOfSubtype = 1 }; DungeonFlowNode val2 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.elevator_entrance, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = "d9be71d3-8d97-48af-8eda-54aa897862be", flow = val }; DungeonFlowNode val3 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.boss_foyer, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = "036aafaf-a754-4410-94c5-2c4e5139a5bf", flow = val }; DungeonFlowNode val4 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.bossstatuesroom01, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = "a0098d24-7733-4baf-82c0-11ce3e068261", flow = val }; DungeonFlowNode val5 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.exit_room_basic, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = "f06e0430-437a-481e-9b34-604d145cc77d", flow = val }; DungeonFlowNode val6 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = "5160f844-ff79-4d19-b813-38496a344e8e", flow = val }; DungeonFlowNode val7 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = "0c8ee6c4-31b4-4226-9ddb-90c7eca8f2d3", flow = val }; DungeonFlowNode val8 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)4, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.gungeon_rewardroom_1, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = "2de735f8-22aa-4ee0-9cc4-6841182c8715", flow = val }; DungeonFlowNode val9 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)5, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = ExpandPrefabs.shop_room_table, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = "8aef8326-0006-4504-8646-4fa7f6664e13", flow = val }; DungeonFlowNode val10 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = "5460810c-546c-471a-8467-0c89cfce0dc9", flow = val }; DungeonFlowNode val11 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = "10f1e930-a72b-4f12-a313-378622ba01a8", flow = val }; ((Object)val).name = "DEMO_STAGE_FLOW"; val.fallbackRoomTable = ExpandPrefabs.CatacombsRoomTable; val.subtypeRestrictions = new List { item }; val.flowInjectionData = new List(0); val.sharedInjectionData = new List(0); val.Initialize(); val.AddNodeToFlow(val2, (DungeonFlowNode)null); val.AddNodeToFlow(val3, val10); val.AddNodeToFlow(val4, val3); val.AddNodeToFlow(val5, val4); val.AddNodeToFlow(val6, val8); val.AddNodeToFlow(val7, val6); val.AddNodeToFlow(val8, val2); val.AddNodeToFlow(val9, val8); val.AddNodeToFlow(val10, val7); val.AddNodeToFlow(val11, val9); val.LoopConnectNodes(val11, val10); val.FirstNode = val2; return val; } } public class really_big_flow { private static DungeonFlow m_really_big_flow; public static DungeonFlow Really_Big_Flow { get { if (!Object.op_Implicit((Object)(object)m_really_big_flow)) { m_really_big_flow = m_Really_Big_Flow(); } return m_really_big_flow; } } private static DungeonFlow m_Really_Big_Flow() { //IL_0006: 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_000d: 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_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: 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_003c: 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_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_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_006e: 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_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0087: 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_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: 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_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_0110: 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_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Expected O, but got Unknown //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_014f: 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_0158: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) //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_0181: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_018f: Unknown result type (might be due to invalid IL or missing references) //IL_019a: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01a8: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01bb: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_01d0: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: 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: Unknown result type (might be due to invalid IL or missing references) //IL_01e9: Unknown result type (might be due to invalid IL or missing references) //IL_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_01fc: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing references) //IL_020a: Unknown result type (might be due to invalid IL or missing references) //IL_0211: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Unknown result type (might be due to invalid IL or missing references) //IL_0223: Unknown result type (might be due to invalid IL or missing references) //IL_022f: Unknown result type (might be due to invalid IL or missing references) //IL_023a: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_025c: Expected O, but got Unknown //IL_025d: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Unknown result type (might be due to invalid IL or missing references) //IL_0269: Unknown result type (might be due to invalid IL or missing references) //IL_026b: Unknown result type (might be due to invalid IL or missing references) //IL_0270: Unknown result type (might be due to invalid IL or missing references) //IL_0272: Unknown result type (might be due to invalid IL or missing references) //IL_0277: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_0284: Unknown result type (might be due to invalid IL or missing references) //IL_0289: Unknown result type (might be due to invalid IL or missing references) //IL_0294: Unknown result type (might be due to invalid IL or missing references) //IL_029b: Unknown result type (might be due to invalid IL or missing references) //IL_02a2: 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_02b4: Unknown result type (might be due to invalid IL or missing references) //IL_02bb: Unknown result type (might be due to invalid IL or missing references) //IL_02c7: Unknown result type (might be due to invalid IL or missing references) //IL_02ce: Unknown result type (might be due to invalid IL or missing references) //IL_02d5: Unknown result type (might be due to invalid IL or missing references) //IL_02dc: Unknown result type (might be due to invalid IL or missing references) //IL_02de: Unknown result type (might be due to invalid IL or missing references) //IL_02e3: Unknown result type (might be due to invalid IL or missing references) //IL_02e5: Unknown result type (might be due to invalid IL or missing references) //IL_02ea: Unknown result type (might be due to invalid IL or missing references) //IL_02f1: Unknown result type (might be due to invalid IL or missing references) //IL_02fc: Unknown result type (might be due to invalid IL or missing references) //IL_0308: Unknown result type (might be due to invalid IL or missing references) //IL_030f: Unknown result type (might be due to invalid IL or missing references) //IL_0316: Unknown result type (might be due to invalid IL or missing references) //IL_031d: Unknown result type (might be due to invalid IL or missing references) //IL_0324: Unknown result type (might be due to invalid IL or missing references) //IL_032b: Unknown result type (might be due to invalid IL or missing references) //IL_0336: Unknown result type (might be due to invalid IL or missing references) //IL_0342: Unknown result type (might be due to invalid IL or missing references) //IL_034d: Unknown result type (might be due to invalid IL or missing references) //IL_0354: Unknown result type (might be due to invalid IL or missing references) //IL_036f: Expected O, but got Unknown //IL_0370: Unknown result type (might be due to invalid IL or missing references) //IL_0375: Unknown result type (might be due to invalid IL or missing references) //IL_037c: Unknown result type (might be due to invalid IL or missing references) //IL_037e: Unknown result type (might be due to invalid IL or missing references) //IL_0383: Unknown result type (might be due to invalid IL or missing references) //IL_0385: Unknown result type (might be due to invalid IL or missing references) //IL_038a: Unknown result type (might be due to invalid IL or missing references) //IL_0395: Unknown result type (might be due to invalid IL or missing references) //IL_0397: Unknown result type (might be due to invalid IL or missing references) //IL_039c: Unknown result type (might be due to invalid IL or missing references) //IL_03a7: Unknown result type (might be due to invalid IL or missing references) //IL_03ae: Unknown result type (might be due to invalid IL or missing references) //IL_03b5: Unknown result type (might be due to invalid IL or missing references) //IL_03c0: Unknown result type (might be due to invalid IL or missing references) //IL_03c7: Unknown result type (might be due to invalid IL or missing references) //IL_03ce: Unknown result type (might be due to invalid IL or missing references) //IL_03da: Unknown result type (might be due to invalid IL or missing references) //IL_03e1: Unknown result type (might be due to invalid IL or missing references) //IL_03e8: Unknown result type (might be due to invalid IL or missing references) //IL_03ef: Unknown result type (might be due to invalid IL or missing references) //IL_03f1: Unknown result type (might be due to invalid IL or missing references) //IL_03f6: Unknown result type (might be due to invalid IL or missing references) //IL_03f8: Unknown result type (might be due to invalid IL or missing references) //IL_03fd: Unknown result type (might be due to invalid IL or missing references) //IL_0404: Unknown result type (might be due to invalid IL or missing references) //IL_040f: Unknown result type (might be due to invalid IL or missing references) //IL_041b: Unknown result type (might be due to invalid IL or missing references) //IL_0422: Unknown result type (might be due to invalid IL or missing references) //IL_0429: Unknown result type (might be due to invalid IL or missing references) //IL_0430: Unknown result type (might be due to invalid IL or missing references) //IL_0437: Unknown result type (might be due to invalid IL or missing references) //IL_043e: Unknown result type (might be due to invalid IL or missing references) //IL_0449: Unknown result type (might be due to invalid IL or missing references) //IL_0455: Unknown result type (might be due to invalid IL or missing references) //IL_0460: Unknown result type (might be due to invalid IL or missing references) //IL_0467: Unknown result type (might be due to invalid IL or missing references) //IL_0483: Expected O, but got Unknown //IL_0484: Unknown result type (might be due to invalid IL or missing references) //IL_0489: Unknown result type (might be due to invalid IL or missing references) //IL_0490: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_0497: Unknown result type (might be due to invalid IL or missing references) //IL_0499: Unknown result type (might be due to invalid IL or missing references) //IL_049e: Unknown result type (might be due to invalid IL or missing references) //IL_04a9: Unknown result type (might be due to invalid IL or missing references) //IL_04ab: Unknown result type (might be due to invalid IL or missing references) //IL_04b0: Unknown result type (might be due to invalid IL or missing references) //IL_04bb: Unknown result type (might be due to invalid IL or missing references) //IL_04c2: Unknown result type (might be due to invalid IL or missing references) //IL_04c9: Unknown result type (might be due to invalid IL or missing references) //IL_04d4: Unknown result type (might be due to invalid IL or missing references) //IL_04db: Unknown result type (might be due to invalid IL or missing references) //IL_04e2: Unknown result type (might be due to invalid IL or missing references) //IL_04ee: Unknown result type (might be due to invalid IL or missing references) //IL_04f5: Unknown result type (might be due to invalid IL or missing references) //IL_04fc: Unknown result type (might be due to invalid IL or missing references) //IL_0503: Unknown result type (might be due to invalid IL or missing references) //IL_0505: Unknown result type (might be due to invalid IL or missing references) //IL_050a: Unknown result type (might be due to invalid IL or missing references) //IL_050c: Unknown result type (might be due to invalid IL or missing references) //IL_0511: Unknown result type (might be due to invalid IL or missing references) //IL_0518: Unknown result type (might be due to invalid IL or missing references) //IL_0523: Unknown result type (might be due to invalid IL or missing references) //IL_052f: Unknown result type (might be due to invalid IL or missing references) //IL_0536: Unknown result type (might be due to invalid IL or missing references) //IL_053d: Unknown result type (might be due to invalid IL or missing references) //IL_0544: Unknown result type (might be due to invalid IL or missing references) //IL_054b: Unknown result type (might be due to invalid IL or missing references) //IL_0552: Unknown result type (might be due to invalid IL or missing references) //IL_055d: Unknown result type (might be due to invalid IL or missing references) //IL_0569: Unknown result type (might be due to invalid IL or missing references) //IL_0574: Unknown result type (might be due to invalid IL or missing references) //IL_057b: Unknown result type (might be due to invalid IL or missing references) //IL_0597: Expected O, but got Unknown //IL_0598: Unknown result type (might be due to invalid IL or missing references) //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_05a4: Unknown result type (might be due to invalid IL or missing references) //IL_05a6: Unknown result type (might be due to invalid IL or missing references) //IL_05ab: Unknown result type (might be due to invalid IL or missing references) //IL_05ad: Unknown result type (might be due to invalid IL or missing references) //IL_05b2: Unknown result type (might be due to invalid IL or missing references) //IL_05bd: Unknown result type (might be due to invalid IL or missing references) //IL_05bf: Unknown result type (might be due to invalid IL or missing references) //IL_05c4: Unknown result type (might be due to invalid IL or missing references) //IL_05cf: Unknown result type (might be due to invalid IL or missing references) //IL_05d6: Unknown result type (might be due to invalid IL or missing references) //IL_05dd: Unknown result type (might be due to invalid IL or missing references) //IL_05e8: Unknown result type (might be due to invalid IL or missing references) //IL_05ef: Unknown result type (might be due to invalid IL or missing references) //IL_05f6: Unknown result type (might be due to invalid IL or missing references) //IL_0602: Unknown result type (might be due to invalid IL or missing references) //IL_0609: Unknown result type (might be due to invalid IL or missing references) //IL_0610: Unknown result type (might be due to invalid IL or missing references) //IL_0617: Unknown result type (might be due to invalid IL or missing references) //IL_0619: Unknown result type (might be due to invalid IL or missing references) //IL_061e: Unknown result type (might be due to invalid IL or missing references) //IL_0620: Unknown result type (might be due to invalid IL or missing references) //IL_0625: Unknown result type (might be due to invalid IL or missing references) //IL_062c: Unknown result type (might be due to invalid IL or missing references) //IL_0637: Unknown result type (might be due to invalid IL or missing references) //IL_0643: Unknown result type (might be due to invalid IL or missing references) //IL_064a: Unknown result type (might be due to invalid IL or missing references) //IL_0651: Unknown result type (might be due to invalid IL or missing references) //IL_0658: Unknown result type (might be due to invalid IL or missing references) //IL_065f: Unknown result type (might be due to invalid IL or missing references) //IL_0666: Unknown result type (might be due to invalid IL or missing references) //IL_0671: Unknown result type (might be due to invalid IL or missing references) //IL_067d: Unknown result type (might be due to invalid IL or missing references) //IL_0688: Unknown result type (might be due to invalid IL or missing references) //IL_068f: Unknown result type (might be due to invalid IL or missing references) //IL_06ab: Expected O, but got Unknown //IL_06ac: Unknown result type (might be due to invalid IL or missing references) //IL_06b1: Unknown result type (might be due to invalid IL or missing references) //IL_06b8: Unknown result type (might be due to invalid IL or missing references) //IL_06ba: Unknown result type (might be due to invalid IL or missing references) //IL_06bf: Unknown result type (might be due to invalid IL or missing references) //IL_06c1: Unknown result type (might be due to invalid IL or missing references) //IL_06c6: Unknown result type (might be due to invalid IL or missing references) //IL_06d1: Unknown result type (might be due to invalid IL or missing references) //IL_06d3: Unknown result type (might be due to invalid IL or missing references) //IL_06d8: Unknown result type (might be due to invalid IL or missing references) //IL_06df: Unknown result type (might be due to invalid IL or missing references) //IL_06ea: Unknown result type (might be due to invalid IL or missing references) //IL_06f1: Unknown result type (might be due to invalid IL or missing references) //IL_06fc: Unknown result type (might be due to invalid IL or missing references) //IL_0703: Unknown result type (might be due to invalid IL or missing references) //IL_070a: Unknown result type (might be due to invalid IL or missing references) //IL_0716: Unknown result type (might be due to invalid IL or missing references) //IL_071d: Unknown result type (might be due to invalid IL or missing references) //IL_0724: Unknown result type (might be due to invalid IL or missing references) //IL_072b: Unknown result type (might be due to invalid IL or missing references) //IL_072d: Unknown result type (might be due to invalid IL or missing references) //IL_0732: Unknown result type (might be due to invalid IL or missing references) //IL_0734: Unknown result type (might be due to invalid IL or missing references) //IL_0739: Unknown result type (might be due to invalid IL or missing references) //IL_0740: Unknown result type (might be due to invalid IL or missing references) //IL_074b: Unknown result type (might be due to invalid IL or missing references) //IL_0757: Unknown result type (might be due to invalid IL or missing references) //IL_075e: Unknown result type (might be due to invalid IL or missing references) //IL_0765: Unknown result type (might be due to invalid IL or missing references) //IL_076c: Unknown result type (might be due to invalid IL or missing references) //IL_0773: Unknown result type (might be due to invalid IL or missing references) //IL_077a: Unknown result type (might be due to invalid IL or missing references) //IL_0785: Unknown result type (might be due to invalid IL or missing references) //IL_0791: Unknown result type (might be due to invalid IL or missing references) //IL_079c: Unknown result type (might be due to invalid IL or missing references) //IL_07a3: Unknown result type (might be due to invalid IL or missing references) //IL_07bf: Expected O, but got Unknown //IL_07c0: Unknown result type (might be due to invalid IL or missing references) //IL_07c5: Unknown result type (might be due to invalid IL or missing references) //IL_07cc: Unknown result type (might be due to invalid IL or missing references) //IL_07ce: Unknown result type (might be due to invalid IL or missing references) //IL_07d3: Unknown result type (might be due to invalid IL or missing references) //IL_07d5: Unknown result type (might be due to invalid IL or missing references) //IL_07da: Unknown result type (might be due to invalid IL or missing references) //IL_07e5: Unknown result type (might be due to invalid IL or missing references) //IL_07e7: Unknown result type (might be due to invalid IL or missing references) //IL_07ec: Unknown result type (might be due to invalid IL or missing references) //IL_07f7: Unknown result type (might be due to invalid IL or missing references) //IL_07fe: Unknown result type (might be due to invalid IL or missing references) //IL_0805: Unknown result type (might be due to invalid IL or missing references) //IL_0810: Unknown result type (might be due to invalid IL or missing references) //IL_0817: Unknown result type (might be due to invalid IL or missing references) //IL_081e: Unknown result type (might be due to invalid IL or missing references) //IL_082a: Unknown result type (might be due to invalid IL or missing references) //IL_0831: Unknown result type (might be due to invalid IL or missing references) //IL_0838: Unknown result type (might be due to invalid IL or missing references) //IL_083f: Unknown result type (might be due to invalid IL or missing references) //IL_0841: Unknown result type (might be due to invalid IL or missing references) //IL_0846: Unknown result type (might be due to invalid IL or missing references) //IL_0848: Unknown result type (might be due to invalid IL or missing references) //IL_084d: Unknown result type (might be due to invalid IL or missing references) //IL_0854: Unknown result type (might be due to invalid IL or missing references) //IL_085f: Unknown result type (might be due to invalid IL or missing references) //IL_086b: Unknown result type (might be due to invalid IL or missing references) //IL_0872: Unknown result type (might be due to invalid IL or missing references) //IL_0879: Unknown result type (might be due to invalid IL or missing references) //IL_0880: Unknown result type (might be due to invalid IL or missing references) //IL_0887: Unknown result type (might be due to invalid IL or missing references) //IL_088e: Unknown result type (might be due to invalid IL or missing references) //IL_0899: Unknown result type (might be due to invalid IL or missing references) //IL_08a5: Unknown result type (might be due to invalid IL or missing references) //IL_08b0: Unknown result type (might be due to invalid IL or missing references) //IL_08b7: Unknown result type (might be due to invalid IL or missing references) //IL_08d3: Expected O, but got Unknown //IL_08d4: Unknown result type (might be due to invalid IL or missing references) //IL_08d9: Unknown result type (might be due to invalid IL or missing references) //IL_08e0: Unknown result type (might be due to invalid IL or missing references) //IL_08e2: Unknown result type (might be due to invalid IL or missing references) //IL_08e7: Unknown result type (might be due to invalid IL or missing references) //IL_08e9: Unknown result type (might be due to invalid IL or missing references) //IL_08ee: Unknown result type (might be due to invalid IL or missing references) //IL_08f9: Unknown result type (might be due to invalid IL or missing references) //IL_08fb: Unknown result type (might be due to invalid IL or missing references) //IL_0900: Unknown result type (might be due to invalid IL or missing references) //IL_090b: Unknown result type (might be due to invalid IL or missing references) //IL_0912: Unknown result type (might be due to invalid IL or missing references) //IL_0919: Unknown result type (might be due to invalid IL or missing references) //IL_0924: Unknown result type (might be due to invalid IL or missing references) //IL_092b: Unknown result type (might be due to invalid IL or missing references) //IL_0932: Unknown result type (might be due to invalid IL or missing references) //IL_093e: Unknown result type (might be due to invalid IL or missing references) //IL_0945: Unknown result type (might be due to invalid IL or missing references) //IL_094c: Unknown result type (might be due to invalid IL or missing references) //IL_0953: Unknown result type (might be due to invalid IL or missing references) //IL_0955: Unknown result type (might be due to invalid IL or missing references) //IL_095a: Unknown result type (might be due to invalid IL or missing references) //IL_095c: Unknown result type (might be due to invalid IL or missing references) //IL_0961: Unknown result type (might be due to invalid IL or missing references) //IL_0968: Unknown result type (might be due to invalid IL or missing references) //IL_0973: Unknown result type (might be due to invalid IL or missing references) //IL_097f: Unknown result type (might be due to invalid IL or missing references) //IL_0986: Unknown result type (might be due to invalid IL or missing references) //IL_098d: Unknown result type (might be due to invalid IL or missing references) //IL_0994: Unknown result type (might be due to invalid IL or missing references) //IL_099b: Unknown result type (might be due to invalid IL or missing references) //IL_09a2: Unknown result type (might be due to invalid IL or missing references) //IL_09ad: Unknown result type (might be due to invalid IL or missing references) //IL_09b9: Unknown result type (might be due to invalid IL or missing references) //IL_09c4: Unknown result type (might be due to invalid IL or missing references) //IL_09cb: Unknown result type (might be due to invalid IL or missing references) //IL_09e7: Expected O, but got Unknown //IL_0ca4: Unknown result type (might be due to invalid IL or missing references) DungeonFlow val = ScriptableObject.CreateInstance(); new DungeonFlowSubtypeRestriction { baseCategoryRestriction = (RoomCategory)2, normalSubcategoryRestriction = (RoomNormalSubCategory)1, bossSubcategoryRestriction = (RoomBossSubCategory)0, specialSubcategoryRestriction = (RoomSpecialSubCategory)0, secretSubcategoryRestriction = (RoomSecretSubCategory)0, maximumRoomsOfSubtype = 1 }; DungeonFlowNode val2 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)7, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.big_entrance, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; DungeonFlowNode val3 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.DragunBossFoyerRoom, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; DungeonFlowNode val4 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)3, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.DraGunRoom01, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; DungeonFlowNode val5 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)8, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.DraGunExitRoom, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; DungeonFlowNode val6 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)8, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.DraGunEndTimesRoom, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = true, handlesOwnWarping = true, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; DungeonFlowNode val7 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.BlacksmithShop, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; DungeonFlowNode val8 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)5, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = null, overrideRoomTable = ExpandPrefabs.shop_room_table, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; DungeonFlowNode val9 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.DragunBossFoyerRoom, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; DungeonFlowNode val10 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.tutorial_fakeboss, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", chainRules = new List(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString() }; List list = new List(); List list2 = new List(); List list3 = new List(); for (int i = 0; i < 11; i++) { list.Add(ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0)); } for (int j = 0; j < 89; j++) { list2.Add(ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0)); } list3.Add(ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)4, ExpandPrefabs.reward_room, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0)); list3.Add(ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, ExpandPrefabs.reward_room, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0)); list3.Add(ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, ExpandPrefabs.reward_room, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0)); list3.Add(ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, ExpandPrefabs.reward_room, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0)); ((Object)val).name = "Really_Big_Flow"; val.fallbackRoomTable = ExpandPrefabs.CustomRoomTable2; val.subtypeRestrictions = new List(0); val.flowInjectionData = new List(0); val.sharedInjectionData = new List(0); val.Initialize(); val.AddNodeToFlow(val2, (DungeonFlowNode)null); val.AddNodeToFlow(list[10], val2); val.AddNodeToFlow(val7, list[10]); val.AddNodeToFlow(list2[88], list[10]); val.AddNodeToFlow(list2[87], list2[88]); val.AddNodeToFlow(list2[86], list2[87]); val.AddNodeToFlow(list2[85], list2[86]); val.AddNodeToFlow(list2[84], list2[85]); val.AddNodeToFlow(list2[83], list2[84]); val.AddNodeToFlow(list2[82], list2[83]); val.AddNodeToFlow(list2[81], list2[82]); val.AddNodeToFlow(list2[80], list2[81]); val.AddNodeToFlow(list2[79], list2[80]); val.AddNodeToFlow(list2[78], list2[79]); val.AddNodeToFlow(list2[77], list2[78]); val.AddNodeToFlow(list2[76], list2[77]); val.AddNodeToFlow(list2[75], list2[76]); val.AddNodeToFlow(list3[0], list2[75]); list[9].roomCategory = (RoomCategory)1; val.AddNodeToFlow(list[9], list2[75]); val.AddNodeToFlow(list2[74], list[9]); val.AddNodeToFlow(list2[73], list2[74]); val.AddNodeToFlow(list2[72], list2[73]); val.AddNodeToFlow(list2[71], list2[72]); val.AddNodeToFlow(list2[70], list2[71]); val.AddNodeToFlow(list2[69], list2[70]); val.AddNodeToFlow(list2[68], list2[69]); val.AddNodeToFlow(list2[67], list2[68]); val.AddNodeToFlow(list2[66], list2[67]); val.AddNodeToFlow(list2[65], list2[66]); val.AddNodeToFlow(list2[64], list2[65]); val.AddNodeToFlow(list2[63], list2[64]); val.AddNodeToFlow(list2[62], list2[63]); val.AddNodeToFlow(list2[61], list2[62]); val.AddNodeToFlow(list2[60], list2[61]); val.AddNodeToFlow(list2[59], list2[60]); val.AddNodeToFlow(list2[58], list2[59]); val.AddNodeToFlow(list2[57], list2[58]); val.AddNodeToFlow(list2[56], list2[57]); val.AddNodeToFlow(list2[55], list2[56]); val.AddNodeToFlow(list2[54], list2[55]); val.AddNodeToFlow(list2[53], list2[54]); val.AddNodeToFlow(list2[52], list2[53]); val.AddNodeToFlow(list2[51], list2[52]); val.AddNodeToFlow(list2[50], list2[51]); val.AddNodeToFlow(list3[1], list2[50]); val.AddNodeToFlow(val8, list3[1]); val.AddNodeToFlow(list2[49], list[9]); val.AddNodeToFlow(list2[48], list2[49]); val.AddNodeToFlow(list2[47], list2[48]); val.AddNodeToFlow(list2[46], list2[47]); val.AddNodeToFlow(list2[45], list2[46]); val.AddNodeToFlow(list2[44], list2[45]); val.AddNodeToFlow(list2[43], list2[44]); val.AddNodeToFlow(list2[42], list2[43]); val.AddNodeToFlow(list2[41], list2[42]); val.AddNodeToFlow(list2[40], list2[41]); val.AddNodeToFlow(list2[39], list2[40]); val.AddNodeToFlow(list2[38], list2[39]); val.AddNodeToFlow(list2[37], list2[38]); val.AddNodeToFlow(list2[36], list2[37]); val.AddNodeToFlow(list2[35], list2[36]); val.AddNodeToFlow(list2[34], list2[35]); val.AddNodeToFlow(list2[33], list2[34]); val.AddNodeToFlow(list2[32], list2[33]); val.AddNodeToFlow(list2[31], list2[32]); val.AddNodeToFlow(list2[30], list2[31]); val.AddNodeToFlow(list2[29], list2[30]); val.AddNodeToFlow(list2[28], list2[29]); val.AddNodeToFlow(list2[27], list2[28]); val.AddNodeToFlow(list2[26], list2[27]); val.AddNodeToFlow(list2[25], list2[26]); val.AddNodeToFlow(list3[2], list2[25]); val.AddNodeToFlow(val9, list3[2]); val.AddNodeToFlow(val10, val9); val.AddNodeToFlow(list2[24], list[9]); val.AddNodeToFlow(list2[23], list2[24]); val.AddNodeToFlow(list2[22], list2[23]); val.AddNodeToFlow(list2[21], list2[22]); val.AddNodeToFlow(list2[20], list2[21]); val.AddNodeToFlow(list2[19], list2[20]); val.AddNodeToFlow(list2[18], list2[19]); val.AddNodeToFlow(list2[17], list2[18]); val.AddNodeToFlow(list2[16], list2[17]); val.AddNodeToFlow(list2[15], list2[16]); val.AddNodeToFlow(list2[14], list2[15]); val.AddNodeToFlow(list2[13], list2[14]); val.AddNodeToFlow(list2[12], list2[13]); val.AddNodeToFlow(list2[11], list2[12]); val.AddNodeToFlow(list2[10], list2[11]); val.AddNodeToFlow(list2[9], list2[10]); val.AddNodeToFlow(list2[8], list2[9]); val.AddNodeToFlow(list2[7], list2[8]); val.AddNodeToFlow(list2[6], list2[7]); val.AddNodeToFlow(list2[5], list2[6]); val.AddNodeToFlow(list2[4], list2[5]); val.AddNodeToFlow(list2[3], list2[4]); val.AddNodeToFlow(list2[2], list2[3]); val.AddNodeToFlow(list2[1], list2[2]); val.AddNodeToFlow(list2[0], list2[1]); val.AddNodeToFlow(list3[3], list2[0]); val.AddNodeToFlow(val3, list3[3]); val.AddNodeToFlow(val4, val3); val.AddNodeToFlow(val5, val4); val.AddNodeToFlow(val6, val5); val.FirstNode = val2; return val; } } public class test_traproom_flow { private static DungeonFlow m_test_traproom_flow; private static GenericRoomTable m_TrapRoomTable; public static DungeonFlow Test_TrapRoom_Flow { get { if (!Object.op_Implicit((Object)(object)m_test_traproom_flow)) { m_test_traproom_flow = m_Test_TrapRoom_Flow(); } return m_test_traproom_flow; } } public static GenericRoomTable TrapRoomTable { get { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Expected O, but got Unknown if (!Object.op_Implicit((Object)(object)m_TrapRoomTable)) { m_TrapRoomTable = ScriptableObject.CreateInstance(); m_TrapRoomTable.includedRooms = new WeightedRoomCollection(); m_TrapRoomTable.includedRooms.elements = new List(); } return m_TrapRoomTable; } } private static DungeonFlow m_Test_TrapRoom_Flow() { //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Expected O, but got Unknown //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Invalid comparison between Unknown and I4 //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Invalid comparison between Unknown and I4 DungeonFlow val = ScriptableObject.CreateInstance(); DungeonFlowNode val2 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)7, ExpandPrefabs.tiny_entrance, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val3 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)8, ExpandRoomPrefabs.SecretExitRoom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val4 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, ExpandRoomPrefabs.Utiliroom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val5 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, ExpandRoomPrefabs.Utiliroom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val6 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, ExpandRoomPrefabs.Expand_FakePastChest, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); ((Object)TrapRoomTable).name = "Test Trap Room Table"; TrapRoomTable.includedRooms = new WeightedRoomCollection(); TrapRoomTable.includedRooms.elements = new List(); TrapRoomTable.includedRoomTables = new List(0); foreach (WeightedRoom element in ExpandPrefabs.CustomRoomTable.includedRooms.elements) { if ((Object)(object)element.room != (Object)null && (int)element.room.category == 2 && (int)element.room.subCategoryNormal == 1) { TrapRoomTable.includedRooms.elements.Add(element); } } DungeonFlowNode val7 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, TrapRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val8 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, TrapRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val9 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, TrapRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val10 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, TrapRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val11 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, TrapRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val12 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, TrapRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val13 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, TrapRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val14 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, TrapRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val15 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, TrapRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val16 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, TrapRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val17 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, TrapRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val18 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, TrapRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val19 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, TrapRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val20 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, TrapRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val21 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, TrapRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val22 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, TrapRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val23 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, TrapRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val24 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, TrapRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val25 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, TrapRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val26 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, TrapRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val27 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, TrapRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val28 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, TrapRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val29 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, TrapRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val30 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, TrapRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val31 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, TrapRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); ((Object)val).name = "Test_TrapRoom_Flow"; val.fallbackRoomTable = null; val.phantomRoomTable = null; val.subtypeRestrictions = new List(0); val.flowInjectionData = new List(0); val.sharedInjectionData = new List(0); val.Initialize(); val.AddNodeToFlow(val2, (DungeonFlowNode)null); val.AddNodeToFlow(val4, val2); val.AddNodeToFlow(val6, val4); val.AddNodeToFlow(val7, val6); val.AddNodeToFlow(val8, val7); val.AddNodeToFlow(val9, val8); val.AddNodeToFlow(val10, val9); val.AddNodeToFlow(val11, val10); val.AddNodeToFlow(val12, val11); val.AddNodeToFlow(val13, val12); val.AddNodeToFlow(val14, val13); val.AddNodeToFlow(val15, val14); val.AddNodeToFlow(val16, val15); val.AddNodeToFlow(val17, val16); val.AddNodeToFlow(val18, val17); val.AddNodeToFlow(val19, val18); val.AddNodeToFlow(val20, val19); val.AddNodeToFlow(val21, val20); val.AddNodeToFlow(val22, val21); val.AddNodeToFlow(val23, val22); val.AddNodeToFlow(val24, val23); val.AddNodeToFlow(val25, val24); val.AddNodeToFlow(val26, val25); val.AddNodeToFlow(val27, val26); val.AddNodeToFlow(val28, val27); val.AddNodeToFlow(val29, val28); val.AddNodeToFlow(val30, val29); val.AddNodeToFlow(val31, val30); val.AddNodeToFlow(val5, val31); val.AddNodeToFlow(val3, val5); val.FirstNode = val2; return val; } } public class test_west_floor_03a_flow { private static DungeonFlow m_test_west_floor_03a_flow; public static DungeonFlow TEST_West_Floor_03a_Flow { get { if (!Object.op_Implicit((Object)(object)m_test_west_floor_03a_flow)) { m_test_west_floor_03a_flow = m_TEST_West_Floor_03a_Flow(); } return m_test_west_floor_03a_flow; } } private static DungeonFlow m_TEST_West_Floor_03a_Flow() { //IL_0006: 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_000d: 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_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0043: 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_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_006e: 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_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0091: 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_009a: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: 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: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0110: 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_0123: Expected O, but got Unknown //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_0130: 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_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0150: 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_0162: 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_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_0187: 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_018e: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_019a: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Unknown result type (might be due to invalid IL or missing references) //IL_01b3: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: Unknown result type (might be due to invalid IL or missing references) //IL_01e0: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: 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_0208: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_021b: Expected O, but got Unknown //IL_021c: 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_0228: Unknown result type (might be due to invalid IL or missing references) //IL_022a: Unknown result type (might be due to invalid IL or missing references) //IL_022f: Unknown result type (might be due to invalid IL or missing references) //IL_0231: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_0243: Unknown result type (might be due to invalid IL or missing references) //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_0253: 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_0261: Unknown result type (might be due to invalid IL or missing references) //IL_0268: Unknown result type (might be due to invalid IL or missing references) //IL_026f: Unknown result type (might be due to invalid IL or missing references) //IL_0276: Unknown result type (might be due to invalid IL or missing references) //IL_027d: Unknown result type (might be due to invalid IL or missing references) //IL_027f: Unknown result type (might be due to invalid IL or missing references) //IL_0284: Unknown result type (might be due to invalid IL or missing references) //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_0292: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Unknown result type (might be due to invalid IL or missing references) //IL_02a4: Unknown result type (might be due to invalid IL or missing references) //IL_02ab: Unknown result type (might be due to invalid IL or missing references) //IL_02b2: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Unknown result type (might be due to invalid IL or missing references) //IL_02cc: Unknown result type (might be due to invalid IL or missing references) //IL_02d8: Unknown result type (might be due to invalid IL or missing references) //IL_02df: Unknown result type (might be due to invalid IL or missing references) //IL_02ea: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Unknown result type (might be due to invalid IL or missing references) //IL_0307: Unknown result type (might be due to invalid IL or missing references) //IL_0314: Expected O, but got Unknown //IL_0315: Unknown result type (might be due to invalid IL or missing references) //IL_031a: Unknown result type (might be due to invalid IL or missing references) //IL_0321: Unknown result type (might be due to invalid IL or missing references) //IL_0323: Unknown result type (might be due to invalid IL or missing references) //IL_0328: Unknown result type (might be due to invalid IL or missing references) //IL_032a: Unknown result type (might be due to invalid IL or missing references) //IL_032f: Unknown result type (might be due to invalid IL or missing references) //IL_033a: Unknown result type (might be due to invalid IL or missing references) //IL_033c: Unknown result type (might be due to invalid IL or missing references) //IL_0341: Unknown result type (might be due to invalid IL or missing references) //IL_034c: Unknown result type (might be due to invalid IL or missing references) //IL_0353: Unknown result type (might be due to invalid IL or missing references) //IL_035a: Unknown result type (might be due to invalid IL or missing references) //IL_0361: Unknown result type (might be due to invalid IL or missing references) //IL_0368: Unknown result type (might be due to invalid IL or missing references) //IL_036f: Unknown result type (might be due to invalid IL or missing references) //IL_0376: Unknown result type (might be due to invalid IL or missing references) //IL_0378: 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_037f: Unknown result type (might be due to invalid IL or missing references) //IL_0384: Unknown result type (might be due to invalid IL or missing references) //IL_038b: Unknown result type (might be due to invalid IL or missing references) //IL_0396: Unknown result type (might be due to invalid IL or missing references) //IL_039d: Unknown result type (might be due to invalid IL or missing references) //IL_03a4: Unknown result type (might be due to invalid IL or missing references) //IL_03ab: Unknown result type (might be due to invalid IL or missing references) //IL_03b2: Unknown result type (might be due to invalid IL or missing references) //IL_03b9: 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) //IL_03d1: Unknown result type (might be due to invalid IL or missing references) //IL_03d8: Unknown result type (might be due to invalid IL or missing references) //IL_03e3: Unknown result type (might be due to invalid IL or missing references) //IL_03ef: Unknown result type (might be due to invalid IL or missing references) //IL_03f6: Unknown result type (might be due to invalid IL or missing references) //IL_0403: Expected O, but got Unknown //IL_0404: Unknown result type (might be due to invalid IL or missing references) //IL_0409: Unknown result type (might be due to invalid IL or missing references) //IL_0410: Unknown result type (might be due to invalid IL or missing references) //IL_0412: Unknown result type (might be due to invalid IL or missing references) //IL_0417: Unknown result type (might be due to invalid IL or missing references) //IL_0419: Unknown result type (might be due to invalid IL or missing references) //IL_041e: Unknown result type (might be due to invalid IL or missing references) //IL_0429: Unknown result type (might be due to invalid IL or missing references) //IL_042b: Unknown result type (might be due to invalid IL or missing references) //IL_0430: Unknown result type (might be due to invalid IL or missing references) //IL_0437: Unknown result type (might be due to invalid IL or missing references) //IL_043e: Unknown result type (might be due to invalid IL or missing references) //IL_0445: Unknown result type (might be due to invalid IL or missing references) //IL_044c: Unknown result type (might be due to invalid IL or missing references) //IL_0453: Unknown result type (might be due to invalid IL or missing references) //IL_045a: Unknown result type (might be due to invalid IL or missing references) //IL_045c: Unknown result type (might be due to invalid IL or missing references) //IL_0461: Unknown result type (might be due to invalid IL or missing references) //IL_0463: Unknown result type (might be due to invalid IL or missing references) //IL_0468: Unknown result type (might be due to invalid IL or missing references) //IL_046f: Unknown result type (might be due to invalid IL or missing references) //IL_047a: Unknown result type (might be due to invalid IL or missing references) //IL_0481: Unknown result type (might be due to invalid IL or missing references) //IL_0488: Unknown result type (might be due to invalid IL or missing references) //IL_048f: Unknown result type (might be due to invalid IL or missing references) //IL_0496: Unknown result type (might be due to invalid IL or missing references) //IL_049d: Unknown result type (might be due to invalid IL or missing references) //IL_04a9: Unknown result type (might be due to invalid IL or missing references) //IL_04b5: Unknown result type (might be due to invalid IL or missing references) //IL_04bc: Unknown result type (might be due to invalid IL or missing references) //IL_04c7: Unknown result type (might be due to invalid IL or missing references) //IL_04dd: Unknown result type (might be due to invalid IL or missing references) //IL_04e4: Unknown result type (might be due to invalid IL or missing references) //IL_04f1: Expected O, but got Unknown //IL_04f2: Unknown result type (might be due to invalid IL or missing references) //IL_04f7: Unknown result type (might be due to invalid IL or missing references) //IL_04fe: Unknown result type (might be due to invalid IL or missing references) //IL_0500: Unknown result type (might be due to invalid IL or missing references) //IL_0505: Unknown result type (might be due to invalid IL or missing references) //IL_0507: Unknown result type (might be due to invalid IL or missing references) //IL_050c: Unknown result type (might be due to invalid IL or missing references) //IL_0517: Unknown result type (might be due to invalid IL or missing references) //IL_0519: Unknown result type (might be due to invalid IL or missing references) //IL_051e: Unknown result type (might be due to invalid IL or missing references) //IL_0525: Unknown result type (might be due to invalid IL or missing references) //IL_052c: Unknown result type (might be due to invalid IL or missing references) //IL_0533: Unknown result type (might be due to invalid IL or missing references) //IL_053a: Unknown result type (might be due to invalid IL or missing references) //IL_0541: Unknown result type (might be due to invalid IL or missing references) //IL_0548: Unknown result type (might be due to invalid IL or missing references) //IL_054a: Unknown result type (might be due to invalid IL or missing references) //IL_054f: Unknown result type (might be due to invalid IL or missing references) //IL_0551: Unknown result type (might be due to invalid IL or missing references) //IL_0556: Unknown result type (might be due to invalid IL or missing references) //IL_055d: Unknown result type (might be due to invalid IL or missing references) //IL_0568: Unknown result type (might be due to invalid IL or missing references) //IL_056f: Unknown result type (might be due to invalid IL or missing references) //IL_0576: Unknown result type (might be due to invalid IL or missing references) //IL_057d: Unknown result type (might be due to invalid IL or missing references) //IL_0584: Unknown result type (might be due to invalid IL or missing references) //IL_058b: Unknown result type (might be due to invalid IL or missing references) //IL_0597: Unknown result type (might be due to invalid IL or missing references) //IL_05a3: Unknown result type (might be due to invalid IL or missing references) //IL_05aa: Unknown result type (might be due to invalid IL or missing references) //IL_05b5: Unknown result type (might be due to invalid IL or missing references) //IL_05cb: Unknown result type (might be due to invalid IL or missing references) //IL_05d2: Unknown result type (might be due to invalid IL or missing references) //IL_05df: Expected O, but got Unknown //IL_05e0: Unknown result type (might be due to invalid IL or missing references) //IL_05e5: Unknown result type (might be due to invalid IL or missing references) //IL_05ec: Unknown result type (might be due to invalid IL or missing references) //IL_05ee: Unknown result type (might be due to invalid IL or missing references) //IL_05f3: Unknown result type (might be due to invalid IL or missing references) //IL_05f5: Unknown result type (might be due to invalid IL or missing references) //IL_05fa: Unknown result type (might be due to invalid IL or missing references) //IL_0605: Unknown result type (might be due to invalid IL or missing references) //IL_0607: Unknown result type (might be due to invalid IL or missing references) //IL_060c: Unknown result type (might be due to invalid IL or missing references) //IL_0613: Unknown result type (might be due to invalid IL or missing references) //IL_061a: Unknown result type (might be due to invalid IL or missing references) //IL_0621: Unknown result type (might be due to invalid IL or missing references) //IL_0628: Unknown result type (might be due to invalid IL or missing references) //IL_062f: Unknown result type (might be due to invalid IL or missing references) //IL_0636: Unknown result type (might be due to invalid IL or missing references) //IL_0638: Unknown result type (might be due to invalid IL or missing references) //IL_063d: Unknown result type (might be due to invalid IL or missing references) //IL_063f: Unknown result type (might be due to invalid IL or missing references) //IL_0644: Unknown result type (might be due to invalid IL or missing references) //IL_064b: Unknown result type (might be due to invalid IL or missing references) //IL_0656: Unknown result type (might be due to invalid IL or missing references) //IL_065d: Unknown result type (might be due to invalid IL or missing references) //IL_0664: Unknown result type (might be due to invalid IL or missing references) //IL_066b: Unknown result type (might be due to invalid IL or missing references) //IL_0672: Unknown result type (might be due to invalid IL or missing references) //IL_0679: Unknown result type (might be due to invalid IL or missing references) //IL_0685: Unknown result type (might be due to invalid IL or missing references) //IL_0691: Unknown result type (might be due to invalid IL or missing references) //IL_0698: Unknown result type (might be due to invalid IL or missing references) //IL_06a3: Unknown result type (might be due to invalid IL or missing references) //IL_06b9: Unknown result type (might be due to invalid IL or missing references) //IL_06c0: Unknown result type (might be due to invalid IL or missing references) //IL_06cd: Expected O, but got Unknown //IL_06ce: Unknown result type (might be due to invalid IL or missing references) //IL_06d3: Unknown result type (might be due to invalid IL or missing references) //IL_06da: Unknown result type (might be due to invalid IL or missing references) //IL_06dc: Unknown result type (might be due to invalid IL or missing references) //IL_06e1: Unknown result type (might be due to invalid IL or missing references) //IL_06e3: Unknown result type (might be due to invalid IL or missing references) //IL_06e8: Unknown result type (might be due to invalid IL or missing references) //IL_06f3: Unknown result type (might be due to invalid IL or missing references) //IL_06f5: Unknown result type (might be due to invalid IL or missing references) //IL_06fa: Unknown result type (might be due to invalid IL or missing references) //IL_0701: Unknown result type (might be due to invalid IL or missing references) //IL_0708: Unknown result type (might be due to invalid IL or missing references) //IL_070f: Unknown result type (might be due to invalid IL or missing references) //IL_0716: Unknown result type (might be due to invalid IL or missing references) //IL_071d: Unknown result type (might be due to invalid IL or missing references) //IL_0724: Unknown result type (might be due to invalid IL or missing references) //IL_0726: Unknown result type (might be due to invalid IL or missing references) //IL_072b: Unknown result type (might be due to invalid IL or missing references) //IL_072d: Unknown result type (might be due to invalid IL or missing references) //IL_0732: Unknown result type (might be due to invalid IL or missing references) //IL_0739: Unknown result type (might be due to invalid IL or missing references) //IL_0744: Unknown result type (might be due to invalid IL or missing references) //IL_074b: Unknown result type (might be due to invalid IL or missing references) //IL_0752: Unknown result type (might be due to invalid IL or missing references) //IL_0759: Unknown result type (might be due to invalid IL or missing references) //IL_0760: Unknown result type (might be due to invalid IL or missing references) //IL_0767: Unknown result type (might be due to invalid IL or missing references) //IL_0773: Unknown result type (might be due to invalid IL or missing references) //IL_077f: Unknown result type (might be due to invalid IL or missing references) //IL_0786: Unknown result type (might be due to invalid IL or missing references) //IL_0791: Unknown result type (might be due to invalid IL or missing references) //IL_07b2: Unknown result type (might be due to invalid IL or missing references) //IL_07b9: Unknown result type (might be due to invalid IL or missing references) //IL_07c6: Expected O, but got Unknown //IL_07c7: Unknown result type (might be due to invalid IL or missing references) //IL_07cc: Unknown result type (might be due to invalid IL or missing references) //IL_07d3: Unknown result type (might be due to invalid IL or missing references) //IL_07d5: Unknown result type (might be due to invalid IL or missing references) //IL_07da: Unknown result type (might be due to invalid IL or missing references) //IL_07dc: Unknown result type (might be due to invalid IL or missing references) //IL_07e1: Unknown result type (might be due to invalid IL or missing references) //IL_07ec: Unknown result type (might be due to invalid IL or missing references) //IL_07ee: Unknown result type (might be due to invalid IL or missing references) //IL_07f3: Unknown result type (might be due to invalid IL or missing references) //IL_07fa: Unknown result type (might be due to invalid IL or missing references) //IL_0801: Unknown result type (might be due to invalid IL or missing references) //IL_0808: Unknown result type (might be due to invalid IL or missing references) //IL_080f: Unknown result type (might be due to invalid IL or missing references) //IL_0816: Unknown result type (might be due to invalid IL or missing references) //IL_081d: Unknown result type (might be due to invalid IL or missing references) //IL_081f: Unknown result type (might be due to invalid IL or missing references) //IL_0824: Unknown result type (might be due to invalid IL or missing references) //IL_0826: Unknown result type (might be due to invalid IL or missing references) //IL_082b: Unknown result type (might be due to invalid IL or missing references) //IL_0832: Unknown result type (might be due to invalid IL or missing references) //IL_083d: Unknown result type (might be due to invalid IL or missing references) //IL_0844: Unknown result type (might be due to invalid IL or missing references) //IL_084b: Unknown result type (might be due to invalid IL or missing references) //IL_0852: Unknown result type (might be due to invalid IL or missing references) //IL_0859: Unknown result type (might be due to invalid IL or missing references) //IL_0860: Unknown result type (might be due to invalid IL or missing references) //IL_086c: Unknown result type (might be due to invalid IL or missing references) //IL_0878: Unknown result type (might be due to invalid IL or missing references) //IL_087f: Unknown result type (might be due to invalid IL or missing references) //IL_088a: Unknown result type (might be due to invalid IL or missing references) //IL_08a0: Unknown result type (might be due to invalid IL or missing references) //IL_08a7: Unknown result type (might be due to invalid IL or missing references) //IL_08b4: Expected O, but got Unknown //IL_08b5: Unknown result type (might be due to invalid IL or missing references) //IL_08ba: Unknown result type (might be due to invalid IL or missing references) //IL_08c1: Unknown result type (might be due to invalid IL or missing references) //IL_08c3: Unknown result type (might be due to invalid IL or missing references) //IL_08c8: Unknown result type (might be due to invalid IL or missing references) //IL_08ca: Unknown result type (might be due to invalid IL or missing references) //IL_08cf: Unknown result type (might be due to invalid IL or missing references) //IL_08da: Unknown result type (might be due to invalid IL or missing references) //IL_08dc: Unknown result type (might be due to invalid IL or missing references) //IL_08e1: Unknown result type (might be due to invalid IL or missing references) //IL_08e8: Unknown result type (might be due to invalid IL or missing references) //IL_08ef: Unknown result type (might be due to invalid IL or missing references) //IL_08f6: Unknown result type (might be due to invalid IL or missing references) //IL_08fd: Unknown result type (might be due to invalid IL or missing references) //IL_0904: Unknown result type (might be due to invalid IL or missing references) //IL_090b: Unknown result type (might be due to invalid IL or missing references) //IL_090d: Unknown result type (might be due to invalid IL or missing references) //IL_0912: Unknown result type (might be due to invalid IL or missing references) //IL_0914: Unknown result type (might be due to invalid IL or missing references) //IL_0919: Unknown result type (might be due to invalid IL or missing references) //IL_0920: Unknown result type (might be due to invalid IL or missing references) //IL_092b: Unknown result type (might be due to invalid IL or missing references) //IL_0932: Unknown result type (might be due to invalid IL or missing references) //IL_0939: Unknown result type (might be due to invalid IL or missing references) //IL_0940: Unknown result type (might be due to invalid IL or missing references) //IL_0947: Unknown result type (might be due to invalid IL or missing references) //IL_094e: Unknown result type (might be due to invalid IL or missing references) //IL_095a: Unknown result type (might be due to invalid IL or missing references) //IL_0966: Unknown result type (might be due to invalid IL or missing references) //IL_096d: Unknown result type (might be due to invalid IL or missing references) //IL_0978: Unknown result type (might be due to invalid IL or missing references) //IL_0999: Unknown result type (might be due to invalid IL or missing references) //IL_09a0: Unknown result type (might be due to invalid IL or missing references) //IL_09ad: Expected O, but got Unknown //IL_09ae: Unknown result type (might be due to invalid IL or missing references) //IL_09b3: Unknown result type (might be due to invalid IL or missing references) //IL_09ba: Unknown result type (might be due to invalid IL or missing references) //IL_09bc: Unknown result type (might be due to invalid IL or missing references) //IL_09c1: Unknown result type (might be due to invalid IL or missing references) //IL_09c3: Unknown result type (might be due to invalid IL or missing references) //IL_09c8: Unknown result type (might be due to invalid IL or missing references) //IL_09d3: Unknown result type (might be due to invalid IL or missing references) //IL_09d5: Unknown result type (might be due to invalid IL or missing references) //IL_09da: Unknown result type (might be due to invalid IL or missing references) //IL_09e1: Unknown result type (might be due to invalid IL or missing references) //IL_09e8: Unknown result type (might be due to invalid IL or missing references) //IL_09ef: Unknown result type (might be due to invalid IL or missing references) //IL_09f6: Unknown result type (might be due to invalid IL or missing references) //IL_09fd: Unknown result type (might be due to invalid IL or missing references) //IL_0a04: Unknown result type (might be due to invalid IL or missing references) //IL_0a06: Unknown result type (might be due to invalid IL or missing references) //IL_0a0b: Unknown result type (might be due to invalid IL or missing references) //IL_0a0d: Unknown result type (might be due to invalid IL or missing references) //IL_0a12: Unknown result type (might be due to invalid IL or missing references) //IL_0a19: Unknown result type (might be due to invalid IL or missing references) //IL_0a24: Unknown result type (might be due to invalid IL or missing references) //IL_0a2b: Unknown result type (might be due to invalid IL or missing references) //IL_0a32: Unknown result type (might be due to invalid IL or missing references) //IL_0a39: Unknown result type (might be due to invalid IL or missing references) //IL_0a40: Unknown result type (might be due to invalid IL or missing references) //IL_0a47: Unknown result type (might be due to invalid IL or missing references) //IL_0a53: Unknown result type (might be due to invalid IL or missing references) //IL_0a5f: Unknown result type (might be due to invalid IL or missing references) //IL_0a66: Unknown result type (might be due to invalid IL or missing references) //IL_0a71: Unknown result type (might be due to invalid IL or missing references) //IL_0a92: Unknown result type (might be due to invalid IL or missing references) //IL_0a99: Unknown result type (might be due to invalid IL or missing references) //IL_0aa6: Expected O, but got Unknown //IL_0aa7: Unknown result type (might be due to invalid IL or missing references) //IL_0aac: Unknown result type (might be due to invalid IL or missing references) //IL_0ab3: Unknown result type (might be due to invalid IL or missing references) //IL_0ab5: Unknown result type (might be due to invalid IL or missing references) //IL_0aba: Unknown result type (might be due to invalid IL or missing references) //IL_0abc: Unknown result type (might be due to invalid IL or missing references) //IL_0ac1: Unknown result type (might be due to invalid IL or missing references) //IL_0acc: Unknown result type (might be due to invalid IL or missing references) //IL_0ace: Unknown result type (might be due to invalid IL or missing references) //IL_0ad3: Unknown result type (might be due to invalid IL or missing references) //IL_0ada: Unknown result type (might be due to invalid IL or missing references) //IL_0ae1: Unknown result type (might be due to invalid IL or missing references) //IL_0ae8: Unknown result type (might be due to invalid IL or missing references) //IL_0aef: Unknown result type (might be due to invalid IL or missing references) //IL_0af6: Unknown result type (might be due to invalid IL or missing references) //IL_0afd: Unknown result type (might be due to invalid IL or missing references) //IL_0aff: Unknown result type (might be due to invalid IL or missing references) //IL_0b04: Unknown result type (might be due to invalid IL or missing references) //IL_0b06: Unknown result type (might be due to invalid IL or missing references) //IL_0b0b: Unknown result type (might be due to invalid IL or missing references) //IL_0b12: Unknown result type (might be due to invalid IL or missing references) //IL_0b1d: Unknown result type (might be due to invalid IL or missing references) //IL_0b24: Unknown result type (might be due to invalid IL or missing references) //IL_0b2b: Unknown result type (might be due to invalid IL or missing references) //IL_0b32: Unknown result type (might be due to invalid IL or missing references) //IL_0b39: Unknown result type (might be due to invalid IL or missing references) //IL_0b40: Unknown result type (might be due to invalid IL or missing references) //IL_0b4c: Unknown result type (might be due to invalid IL or missing references) //IL_0b58: Unknown result type (might be due to invalid IL or missing references) //IL_0b5f: Unknown result type (might be due to invalid IL or missing references) //IL_0b6a: Unknown result type (might be due to invalid IL or missing references) //IL_0b8b: Unknown result type (might be due to invalid IL or missing references) //IL_0b92: Unknown result type (might be due to invalid IL or missing references) //IL_0b9f: Expected O, but got Unknown //IL_0ba0: Unknown result type (might be due to invalid IL or missing references) //IL_0ba5: Unknown result type (might be due to invalid IL or missing references) //IL_0bac: Unknown result type (might be due to invalid IL or missing references) //IL_0bae: Unknown result type (might be due to invalid IL or missing references) //IL_0bb3: Unknown result type (might be due to invalid IL or missing references) //IL_0bb5: Unknown result type (might be due to invalid IL or missing references) //IL_0bba: Unknown result type (might be due to invalid IL or missing references) //IL_0bc5: Unknown result type (might be due to invalid IL or missing references) //IL_0bc7: Unknown result type (might be due to invalid IL or missing references) //IL_0bcc: Unknown result type (might be due to invalid IL or missing references) //IL_0bd7: Unknown result type (might be due to invalid IL or missing references) //IL_0bde: Unknown result type (might be due to invalid IL or missing references) //IL_0be5: Unknown result type (might be due to invalid IL or missing references) //IL_0bec: Unknown result type (might be due to invalid IL or missing references) //IL_0bf3: Unknown result type (might be due to invalid IL or missing references) //IL_0bfa: Unknown result type (might be due to invalid IL or missing references) //IL_0c01: Unknown result type (might be due to invalid IL or missing references) //IL_0c03: Unknown result type (might be due to invalid IL or missing references) //IL_0c08: Unknown result type (might be due to invalid IL or missing references) //IL_0c0a: Unknown result type (might be due to invalid IL or missing references) //IL_0c0f: Unknown result type (might be due to invalid IL or missing references) //IL_0c16: Unknown result type (might be due to invalid IL or missing references) //IL_0c21: Unknown result type (might be due to invalid IL or missing references) //IL_0c28: Unknown result type (might be due to invalid IL or missing references) //IL_0c2f: Unknown result type (might be due to invalid IL or missing references) //IL_0c36: Unknown result type (might be due to invalid IL or missing references) //IL_0c3d: Unknown result type (might be due to invalid IL or missing references) //IL_0c44: Unknown result type (might be due to invalid IL or missing references) //IL_0c50: Unknown result type (might be due to invalid IL or missing references) //IL_0c5c: Unknown result type (might be due to invalid IL or missing references) //IL_0c63: Unknown result type (might be due to invalid IL or missing references) //IL_0c6e: Unknown result type (might be due to invalid IL or missing references) //IL_0c84: Unknown result type (might be due to invalid IL or missing references) //IL_0c8b: Unknown result type (might be due to invalid IL or missing references) //IL_0c98: Expected O, but got Unknown //IL_0c99: Unknown result type (might be due to invalid IL or missing references) //IL_0c9e: Unknown result type (might be due to invalid IL or missing references) //IL_0ca5: Unknown result type (might be due to invalid IL or missing references) //IL_0ca7: Unknown result type (might be due to invalid IL or missing references) //IL_0cac: Unknown result type (might be due to invalid IL or missing references) //IL_0cae: Unknown result type (might be due to invalid IL or missing references) //IL_0cb3: Unknown result type (might be due to invalid IL or missing references) //IL_0cbe: Unknown result type (might be due to invalid IL or missing references) //IL_0cc0: Unknown result type (might be due to invalid IL or missing references) //IL_0cc5: Unknown result type (might be due to invalid IL or missing references) //IL_0ccc: Unknown result type (might be due to invalid IL or missing references) //IL_0cd3: Unknown result type (might be due to invalid IL or missing references) //IL_0cda: Unknown result type (might be due to invalid IL or missing references) //IL_0ce1: Unknown result type (might be due to invalid IL or missing references) //IL_0ce8: Unknown result type (might be due to invalid IL or missing references) //IL_0cef: Unknown result type (might be due to invalid IL or missing references) //IL_0cf1: Unknown result type (might be due to invalid IL or missing references) //IL_0cf6: Unknown result type (might be due to invalid IL or missing references) //IL_0cf8: Unknown result type (might be due to invalid IL or missing references) //IL_0cfd: Unknown result type (might be due to invalid IL or missing references) //IL_0d04: Unknown result type (might be due to invalid IL or missing references) //IL_0d0f: Unknown result type (might be due to invalid IL or missing references) //IL_0d16: Unknown result type (might be due to invalid IL or missing references) //IL_0d1d: Unknown result type (might be due to invalid IL or missing references) //IL_0d24: Unknown result type (might be due to invalid IL or missing references) //IL_0d2b: Unknown result type (might be due to invalid IL or missing references) //IL_0d32: Unknown result type (might be due to invalid IL or missing references) //IL_0d3e: Unknown result type (might be due to invalid IL or missing references) //IL_0d4a: Unknown result type (might be due to invalid IL or missing references) //IL_0d51: Unknown result type (might be due to invalid IL or missing references) //IL_0d5c: Unknown result type (might be due to invalid IL or missing references) //IL_0d68: Unknown result type (might be due to invalid IL or missing references) //IL_0d73: Unknown result type (might be due to invalid IL or missing references) //IL_0d7a: Unknown result type (might be due to invalid IL or missing references) //IL_0d87: Expected O, but got Unknown //IL_0d88: Unknown result type (might be due to invalid IL or missing references) //IL_0d8d: Unknown result type (might be due to invalid IL or missing references) //IL_0d94: Unknown result type (might be due to invalid IL or missing references) //IL_0d96: Unknown result type (might be due to invalid IL or missing references) //IL_0d9b: Unknown result type (might be due to invalid IL or missing references) //IL_0d9d: Unknown result type (might be due to invalid IL or missing references) //IL_0da2: Unknown result type (might be due to invalid IL or missing references) //IL_0dad: Unknown result type (might be due to invalid IL or missing references) //IL_0daf: Unknown result type (might be due to invalid IL or missing references) //IL_0db4: Unknown result type (might be due to invalid IL or missing references) //IL_0dbb: Unknown result type (might be due to invalid IL or missing references) //IL_0dc2: Unknown result type (might be due to invalid IL or missing references) //IL_0dc9: Unknown result type (might be due to invalid IL or missing references) //IL_0dd0: Unknown result type (might be due to invalid IL or missing references) //IL_0dd7: Unknown result type (might be due to invalid IL or missing references) //IL_0dde: Unknown result type (might be due to invalid IL or missing references) //IL_0de0: Unknown result type (might be due to invalid IL or missing references) //IL_0de5: Unknown result type (might be due to invalid IL or missing references) //IL_0de7: Unknown result type (might be due to invalid IL or missing references) //IL_0dec: Unknown result type (might be due to invalid IL or missing references) //IL_0df3: Unknown result type (might be due to invalid IL or missing references) //IL_0dfe: Unknown result type (might be due to invalid IL or missing references) //IL_0e05: Unknown result type (might be due to invalid IL or missing references) //IL_0e0c: Unknown result type (might be due to invalid IL or missing references) //IL_0e13: Unknown result type (might be due to invalid IL or missing references) //IL_0e1a: Unknown result type (might be due to invalid IL or missing references) //IL_0e21: Unknown result type (might be due to invalid IL or missing references) //IL_0e2d: Unknown result type (might be due to invalid IL or missing references) //IL_0e39: Unknown result type (might be due to invalid IL or missing references) //IL_0e40: Unknown result type (might be due to invalid IL or missing references) //IL_0e4b: Unknown result type (might be due to invalid IL or missing references) //IL_0e61: Unknown result type (might be due to invalid IL or missing references) //IL_0e68: Unknown result type (might be due to invalid IL or missing references) //IL_0e75: Expected O, but got Unknown //IL_0e76: Unknown result type (might be due to invalid IL or missing references) //IL_0e7b: Unknown result type (might be due to invalid IL or missing references) //IL_0e82: Unknown result type (might be due to invalid IL or missing references) //IL_0e84: Unknown result type (might be due to invalid IL or missing references) //IL_0e89: Unknown result type (might be due to invalid IL or missing references) //IL_0e8b: Unknown result type (might be due to invalid IL or missing references) //IL_0e90: Unknown result type (might be due to invalid IL or missing references) //IL_0e9b: Unknown result type (might be due to invalid IL or missing references) //IL_0e9d: Unknown result type (might be due to invalid IL or missing references) //IL_0ea2: Unknown result type (might be due to invalid IL or missing references) //IL_0ea9: Unknown result type (might be due to invalid IL or missing references) //IL_0eb0: Unknown result type (might be due to invalid IL or missing references) //IL_0eb7: Unknown result type (might be due to invalid IL or missing references) //IL_0ebe: Unknown result type (might be due to invalid IL or missing references) //IL_0ec5: Unknown result type (might be due to invalid IL or missing references) //IL_0ecc: Unknown result type (might be due to invalid IL or missing references) //IL_0ece: Unknown result type (might be due to invalid IL or missing references) //IL_0ed3: Unknown result type (might be due to invalid IL or missing references) //IL_0ed5: Unknown result type (might be due to invalid IL or missing references) //IL_0eda: Unknown result type (might be due to invalid IL or missing references) //IL_0ee1: Unknown result type (might be due to invalid IL or missing references) //IL_0eec: Unknown result type (might be due to invalid IL or missing references) //IL_0ef3: Unknown result type (might be due to invalid IL or missing references) //IL_0efa: Unknown result type (might be due to invalid IL or missing references) //IL_0f01: Unknown result type (might be due to invalid IL or missing references) //IL_0f08: Unknown result type (might be due to invalid IL or missing references) //IL_0f0f: Unknown result type (might be due to invalid IL or missing references) //IL_0f1b: Unknown result type (might be due to invalid IL or missing references) //IL_0f27: Unknown result type (might be due to invalid IL or missing references) //IL_0f2e: Unknown result type (might be due to invalid IL or missing references) //IL_0f39: Unknown result type (might be due to invalid IL or missing references) //IL_0f4f: Unknown result type (might be due to invalid IL or missing references) //IL_0f56: Unknown result type (might be due to invalid IL or missing references) //IL_0f63: Expected O, but got Unknown //IL_0f64: Unknown result type (might be due to invalid IL or missing references) //IL_0f69: Unknown result type (might be due to invalid IL or missing references) //IL_0f70: Unknown result type (might be due to invalid IL or missing references) //IL_0f72: Unknown result type (might be due to invalid IL or missing references) //IL_0f77: Unknown result type (might be due to invalid IL or missing references) //IL_0f79: Unknown result type (might be due to invalid IL or missing references) //IL_0f7e: Unknown result type (might be due to invalid IL or missing references) //IL_0f89: Unknown result type (might be due to invalid IL or missing references) //IL_0f8b: Unknown result type (might be due to invalid IL or missing references) //IL_0f90: Unknown result type (might be due to invalid IL or missing references) //IL_0f9b: Unknown result type (might be due to invalid IL or missing references) //IL_0fa2: Unknown result type (might be due to invalid IL or missing references) //IL_0fa9: Unknown result type (might be due to invalid IL or missing references) //IL_0fb0: Unknown result type (might be due to invalid IL or missing references) //IL_0fb7: Unknown result type (might be due to invalid IL or missing references) //IL_0fbe: Unknown result type (might be due to invalid IL or missing references) //IL_0fc5: Unknown result type (might be due to invalid IL or missing references) //IL_0fc7: Unknown result type (might be due to invalid IL or missing references) //IL_0fcc: Unknown result type (might be due to invalid IL or missing references) //IL_0fce: Unknown result type (might be due to invalid IL or missing references) //IL_0fd3: Unknown result type (might be due to invalid IL or missing references) //IL_0fda: Unknown result type (might be due to invalid IL or missing references) //IL_0fe5: Unknown result type (might be due to invalid IL or missing references) //IL_0fec: Unknown result type (might be due to invalid IL or missing references) //IL_0ff3: Unknown result type (might be due to invalid IL or missing references) //IL_0ffa: Unknown result type (might be due to invalid IL or missing references) //IL_1001: Unknown result type (might be due to invalid IL or missing references) //IL_1008: Unknown result type (might be due to invalid IL or missing references) //IL_1014: Unknown result type (might be due to invalid IL or missing references) //IL_1020: Unknown result type (might be due to invalid IL or missing references) //IL_1027: Unknown result type (might be due to invalid IL or missing references) //IL_1032: Unknown result type (might be due to invalid IL or missing references) //IL_103e: Unknown result type (might be due to invalid IL or missing references) //IL_1045: Unknown result type (might be due to invalid IL or missing references) //IL_1052: Expected O, but got Unknown //IL_1053: Unknown result type (might be due to invalid IL or missing references) //IL_1058: Unknown result type (might be due to invalid IL or missing references) //IL_105f: Unknown result type (might be due to invalid IL or missing references) //IL_1061: Unknown result type (might be due to invalid IL or missing references) //IL_1066: Unknown result type (might be due to invalid IL or missing references) //IL_1068: Unknown result type (might be due to invalid IL or missing references) //IL_106d: Unknown result type (might be due to invalid IL or missing references) //IL_1078: Unknown result type (might be due to invalid IL or missing references) //IL_107a: Unknown result type (might be due to invalid IL or missing references) //IL_107f: Unknown result type (might be due to invalid IL or missing references) //IL_1086: Unknown result type (might be due to invalid IL or missing references) //IL_108d: Unknown result type (might be due to invalid IL or missing references) //IL_1094: Unknown result type (might be due to invalid IL or missing references) //IL_109b: Unknown result type (might be due to invalid IL or missing references) //IL_10a2: Unknown result type (might be due to invalid IL or missing references) //IL_10a9: Unknown result type (might be due to invalid IL or missing references) //IL_10ab: Unknown result type (might be due to invalid IL or missing references) //IL_10b0: Unknown result type (might be due to invalid IL or missing references) //IL_10b2: Unknown result type (might be due to invalid IL or missing references) //IL_10b7: Unknown result type (might be due to invalid IL or missing references) //IL_10be: Unknown result type (might be due to invalid IL or missing references) //IL_10c9: Unknown result type (might be due to invalid IL or missing references) //IL_10d0: Unknown result type (might be due to invalid IL or missing references) //IL_10d7: Unknown result type (might be due to invalid IL or missing references) //IL_10de: Unknown result type (might be due to invalid IL or missing references) //IL_10e5: Unknown result type (might be due to invalid IL or missing references) //IL_10ec: Unknown result type (might be due to invalid IL or missing references) //IL_10f8: Unknown result type (might be due to invalid IL or missing references) //IL_1104: Unknown result type (might be due to invalid IL or missing references) //IL_110b: Unknown result type (might be due to invalid IL or missing references) //IL_1116: Unknown result type (might be due to invalid IL or missing references) //IL_112c: Unknown result type (might be due to invalid IL or missing references) //IL_1133: Unknown result type (might be due to invalid IL or missing references) //IL_1140: Expected O, but got Unknown //IL_1141: Unknown result type (might be due to invalid IL or missing references) //IL_1146: Unknown result type (might be due to invalid IL or missing references) //IL_114d: Unknown result type (might be due to invalid IL or missing references) //IL_114f: Unknown result type (might be due to invalid IL or missing references) //IL_1154: Unknown result type (might be due to invalid IL or missing references) //IL_1156: Unknown result type (might be due to invalid IL or missing references) //IL_115b: Unknown result type (might be due to invalid IL or missing references) //IL_1166: Unknown result type (might be due to invalid IL or missing references) //IL_1168: Unknown result type (might be due to invalid IL or missing references) //IL_116d: Unknown result type (might be due to invalid IL or missing references) //IL_1174: Unknown result type (might be due to invalid IL or missing references) //IL_117b: Unknown result type (might be due to invalid IL or missing references) //IL_1182: Unknown result type (might be due to invalid IL or missing references) //IL_1189: Unknown result type (might be due to invalid IL or missing references) //IL_1190: Unknown result type (might be due to invalid IL or missing references) //IL_1197: Unknown result type (might be due to invalid IL or missing references) //IL_1199: Unknown result type (might be due to invalid IL or missing references) //IL_119e: Unknown result type (might be due to invalid IL or missing references) //IL_11a0: Unknown result type (might be due to invalid IL or missing references) //IL_11a5: Unknown result type (might be due to invalid IL or missing references) //IL_11ac: Unknown result type (might be due to invalid IL or missing references) //IL_11b7: Unknown result type (might be due to invalid IL or missing references) //IL_11be: Unknown result type (might be due to invalid IL or missing references) //IL_11c5: Unknown result type (might be due to invalid IL or missing references) //IL_11cc: Unknown result type (might be due to invalid IL or missing references) //IL_11d3: Unknown result type (might be due to invalid IL or missing references) //IL_11da: Unknown result type (might be due to invalid IL or missing references) //IL_11e6: Unknown result type (might be due to invalid IL or missing references) //IL_11f2: Unknown result type (might be due to invalid IL or missing references) //IL_11f9: Unknown result type (might be due to invalid IL or missing references) //IL_1204: Unknown result type (might be due to invalid IL or missing references) //IL_1225: Unknown result type (might be due to invalid IL or missing references) //IL_122c: Unknown result type (might be due to invalid IL or missing references) //IL_1239: Expected O, but got Unknown //IL_123a: Unknown result type (might be due to invalid IL or missing references) //IL_123f: Unknown result type (might be due to invalid IL or missing references) //IL_1246: Unknown result type (might be due to invalid IL or missing references) //IL_1248: Unknown result type (might be due to invalid IL or missing references) //IL_124d: Unknown result type (might be due to invalid IL or missing references) //IL_124f: Unknown result type (might be due to invalid IL or missing references) //IL_1254: Unknown result type (might be due to invalid IL or missing references) //IL_125f: Unknown result type (might be due to invalid IL or missing references) //IL_1261: Unknown result type (might be due to invalid IL or missing references) //IL_1266: Unknown result type (might be due to invalid IL or missing references) //IL_126d: Unknown result type (might be due to invalid IL or missing references) //IL_1274: Unknown result type (might be due to invalid IL or missing references) //IL_127b: Unknown result type (might be due to invalid IL or missing references) //IL_1282: Unknown result type (might be due to invalid IL or missing references) //IL_1289: Unknown result type (might be due to invalid IL or missing references) //IL_1290: Unknown result type (might be due to invalid IL or missing references) //IL_1292: Unknown result type (might be due to invalid IL or missing references) //IL_1297: Unknown result type (might be due to invalid IL or missing references) //IL_1299: Unknown result type (might be due to invalid IL or missing references) //IL_129e: Unknown result type (might be due to invalid IL or missing references) //IL_12a5: Unknown result type (might be due to invalid IL or missing references) //IL_12b0: Unknown result type (might be due to invalid IL or missing references) //IL_12b7: Unknown result type (might be due to invalid IL or missing references) //IL_12be: Unknown result type (might be due to invalid IL or missing references) //IL_12c5: Unknown result type (might be due to invalid IL or missing references) //IL_12cc: Unknown result type (might be due to invalid IL or missing references) //IL_12d3: Unknown result type (might be due to invalid IL or missing references) //IL_12df: Unknown result type (might be due to invalid IL or missing references) //IL_12eb: Unknown result type (might be due to invalid IL or missing references) //IL_12f2: Unknown result type (might be due to invalid IL or missing references) //IL_12fd: Unknown result type (might be due to invalid IL or missing references) //IL_1313: Unknown result type (might be due to invalid IL or missing references) //IL_131a: Unknown result type (might be due to invalid IL or missing references) //IL_1327: Expected O, but got Unknown //IL_1328: Unknown result type (might be due to invalid IL or missing references) //IL_132d: Unknown result type (might be due to invalid IL or missing references) //IL_1334: Unknown result type (might be due to invalid IL or missing references) //IL_1336: Unknown result type (might be due to invalid IL or missing references) //IL_133b: Unknown result type (might be due to invalid IL or missing references) //IL_133d: Unknown result type (might be due to invalid IL or missing references) //IL_1342: Unknown result type (might be due to invalid IL or missing references) //IL_134d: Unknown result type (might be due to invalid IL or missing references) //IL_134f: Unknown result type (might be due to invalid IL or missing references) //IL_1354: Unknown result type (might be due to invalid IL or missing references) //IL_135f: Unknown result type (might be due to invalid IL or missing references) //IL_1366: Unknown result type (might be due to invalid IL or missing references) //IL_136d: Unknown result type (might be due to invalid IL or missing references) //IL_1374: Unknown result type (might be due to invalid IL or missing references) //IL_137b: Unknown result type (might be due to invalid IL or missing references) //IL_1382: Unknown result type (might be due to invalid IL or missing references) //IL_1389: Unknown result type (might be due to invalid IL or missing references) //IL_138b: Unknown result type (might be due to invalid IL or missing references) //IL_1390: Unknown result type (might be due to invalid IL or missing references) //IL_1392: Unknown result type (might be due to invalid IL or missing references) //IL_1397: Unknown result type (might be due to invalid IL or missing references) //IL_139e: Unknown result type (might be due to invalid IL or missing references) //IL_13a9: Unknown result type (might be due to invalid IL or missing references) //IL_13b0: Unknown result type (might be due to invalid IL or missing references) //IL_13b7: Unknown result type (might be due to invalid IL or missing references) //IL_13be: Unknown result type (might be due to invalid IL or missing references) //IL_13c5: Unknown result type (might be due to invalid IL or missing references) //IL_13cc: Unknown result type (might be due to invalid IL or missing references) //IL_13d8: Unknown result type (might be due to invalid IL or missing references) //IL_13e4: Unknown result type (might be due to invalid IL or missing references) //IL_13eb: Unknown result type (might be due to invalid IL or missing references) //IL_13f6: Unknown result type (might be due to invalid IL or missing references) //IL_1401: Unknown result type (might be due to invalid IL or missing references) //IL_1408: Unknown result type (might be due to invalid IL or missing references) //IL_1415: Expected O, but got Unknown //IL_1416: Unknown result type (might be due to invalid IL or missing references) //IL_141b: Unknown result type (might be due to invalid IL or missing references) //IL_1422: Unknown result type (might be due to invalid IL or missing references) //IL_1424: Unknown result type (might be due to invalid IL or missing references) //IL_1429: Unknown result type (might be due to invalid IL or missing references) //IL_142b: Unknown result type (might be due to invalid IL or missing references) //IL_1430: Unknown result type (might be due to invalid IL or missing references) //IL_143b: Unknown result type (might be due to invalid IL or missing references) //IL_143d: Unknown result type (might be due to invalid IL or missing references) //IL_1442: Unknown result type (might be due to invalid IL or missing references) //IL_1449: Unknown result type (might be due to invalid IL or missing references) //IL_1450: Unknown result type (might be due to invalid IL or missing references) //IL_1457: Unknown result type (might be due to invalid IL or missing references) //IL_145e: Unknown result type (might be due to invalid IL or missing references) //IL_1465: Unknown result type (might be due to invalid IL or missing references) //IL_146c: Unknown result type (might be due to invalid IL or missing references) //IL_146e: Unknown result type (might be due to invalid IL or missing references) //IL_1473: Unknown result type (might be due to invalid IL or missing references) //IL_1475: Unknown result type (might be due to invalid IL or missing references) //IL_147a: Unknown result type (might be due to invalid IL or missing references) //IL_1481: Unknown result type (might be due to invalid IL or missing references) //IL_148c: Unknown result type (might be due to invalid IL or missing references) //IL_1493: Unknown result type (might be due to invalid IL or missing references) //IL_149a: Unknown result type (might be due to invalid IL or missing references) //IL_14a1: Unknown result type (might be due to invalid IL or missing references) //IL_14a8: Unknown result type (might be due to invalid IL or missing references) //IL_14af: Unknown result type (might be due to invalid IL or missing references) //IL_14bb: Unknown result type (might be due to invalid IL or missing references) //IL_14c7: Unknown result type (might be due to invalid IL or missing references) //IL_14ce: Unknown result type (might be due to invalid IL or missing references) //IL_14d9: Unknown result type (might be due to invalid IL or missing references) //IL_14fa: Unknown result type (might be due to invalid IL or missing references) //IL_1501: Unknown result type (might be due to invalid IL or missing references) //IL_150e: Expected O, but got Unknown //IL_150f: Unknown result type (might be due to invalid IL or missing references) //IL_1514: Unknown result type (might be due to invalid IL or missing references) //IL_151b: Unknown result type (might be due to invalid IL or missing references) //IL_151d: Unknown result type (might be due to invalid IL or missing references) //IL_1522: Unknown result type (might be due to invalid IL or missing references) //IL_1524: Unknown result type (might be due to invalid IL or missing references) //IL_1529: Unknown result type (might be due to invalid IL or missing references) //IL_1534: Unknown result type (might be due to invalid IL or missing references) //IL_1536: Unknown result type (might be due to invalid IL or missing references) //IL_153b: Unknown result type (might be due to invalid IL or missing references) //IL_1542: Unknown result type (might be due to invalid IL or missing references) //IL_1549: Unknown result type (might be due to invalid IL or missing references) //IL_1550: Unknown result type (might be due to invalid IL or missing references) //IL_1557: Unknown result type (might be due to invalid IL or missing references) //IL_155e: Unknown result type (might be due to invalid IL or missing references) //IL_1565: Unknown result type (might be due to invalid IL or missing references) //IL_1567: Unknown result type (might be due to invalid IL or missing references) //IL_156c: Unknown result type (might be due to invalid IL or missing references) //IL_156e: Unknown result type (might be due to invalid IL or missing references) //IL_1573: Unknown result type (might be due to invalid IL or missing references) //IL_157a: Unknown result type (might be due to invalid IL or missing references) //IL_1585: Unknown result type (might be due to invalid IL or missing references) //IL_158c: Unknown result type (might be due to invalid IL or missing references) //IL_1593: Unknown result type (might be due to invalid IL or missing references) //IL_159a: Unknown result type (might be due to invalid IL or missing references) //IL_15a1: Unknown result type (might be due to invalid IL or missing references) //IL_15a8: Unknown result type (might be due to invalid IL or missing references) //IL_15b4: Unknown result type (might be due to invalid IL or missing references) //IL_15c0: Unknown result type (might be due to invalid IL or missing references) //IL_15c7: Unknown result type (might be due to invalid IL or missing references) //IL_15d2: Unknown result type (might be due to invalid IL or missing references) //IL_15de: Unknown result type (might be due to invalid IL or missing references) //IL_15e5: Unknown result type (might be due to invalid IL or missing references) //IL_15f2: Expected O, but got Unknown //IL_15f3: Unknown result type (might be due to invalid IL or missing references) //IL_15f8: Unknown result type (might be due to invalid IL or missing references) //IL_15ff: Unknown result type (might be due to invalid IL or missing references) //IL_1601: Unknown result type (might be due to invalid IL or missing references) //IL_1606: Unknown result type (might be due to invalid IL or missing references) //IL_1608: Unknown result type (might be due to invalid IL or missing references) //IL_160d: Unknown result type (might be due to invalid IL or missing references) //IL_1618: Unknown result type (might be due to invalid IL or missing references) //IL_161a: Unknown result type (might be due to invalid IL or missing references) //IL_161f: Unknown result type (might be due to invalid IL or missing references) //IL_1626: Unknown result type (might be due to invalid IL or missing references) //IL_162d: Unknown result type (might be due to invalid IL or missing references) //IL_1634: Unknown result type (might be due to invalid IL or missing references) //IL_163b: Unknown result type (might be due to invalid IL or missing references) //IL_1642: Unknown result type (might be due to invalid IL or missing references) //IL_1649: Unknown result type (might be due to invalid IL or missing references) //IL_164b: Unknown result type (might be due to invalid IL or missing references) //IL_1650: Unknown result type (might be due to invalid IL or missing references) //IL_1652: Unknown result type (might be due to invalid IL or missing references) //IL_1657: Unknown result type (might be due to invalid IL or missing references) //IL_165e: Unknown result type (might be due to invalid IL or missing references) //IL_1669: Unknown result type (might be due to invalid IL or missing references) //IL_1670: Unknown result type (might be due to invalid IL or missing references) //IL_1677: Unknown result type (might be due to invalid IL or missing references) //IL_167e: Unknown result type (might be due to invalid IL or missing references) //IL_1685: Unknown result type (might be due to invalid IL or missing references) //IL_168c: Unknown result type (might be due to invalid IL or missing references) //IL_1698: Unknown result type (might be due to invalid IL or missing references) //IL_16a4: Unknown result type (might be due to invalid IL or missing references) //IL_16ab: Unknown result type (might be due to invalid IL or missing references) //IL_16b6: Unknown result type (might be due to invalid IL or missing references) //IL_16c2: Unknown result type (might be due to invalid IL or missing references) //IL_16c9: Unknown result type (might be due to invalid IL or missing references) //IL_16d6: Expected O, but got Unknown //IL_16d7: Unknown result type (might be due to invalid IL or missing references) //IL_16dc: Unknown result type (might be due to invalid IL or missing references) //IL_16e3: Unknown result type (might be due to invalid IL or missing references) //IL_16e5: Unknown result type (might be due to invalid IL or missing references) //IL_16ea: Unknown result type (might be due to invalid IL or missing references) //IL_16ec: Unknown result type (might be due to invalid IL or missing references) //IL_16f1: Unknown result type (might be due to invalid IL or missing references) //IL_16fc: Unknown result type (might be due to invalid IL or missing references) //IL_16fe: Unknown result type (might be due to invalid IL or missing references) //IL_1703: Unknown result type (might be due to invalid IL or missing references) //IL_170a: Unknown result type (might be due to invalid IL or missing references) //IL_1711: Unknown result type (might be due to invalid IL or missing references) //IL_1718: Unknown result type (might be due to invalid IL or missing references) //IL_171f: Unknown result type (might be due to invalid IL or missing references) //IL_1726: Unknown result type (might be due to invalid IL or missing references) //IL_172d: Unknown result type (might be due to invalid IL or missing references) //IL_172f: Unknown result type (might be due to invalid IL or missing references) //IL_1734: Unknown result type (might be due to invalid IL or missing references) //IL_1736: Unknown result type (might be due to invalid IL or missing references) //IL_173b: Unknown result type (might be due to invalid IL or missing references) //IL_1742: Unknown result type (might be due to invalid IL or missing references) //IL_174d: Unknown result type (might be due to invalid IL or missing references) //IL_1754: Unknown result type (might be due to invalid IL or missing references) //IL_175b: Unknown result type (might be due to invalid IL or missing references) //IL_1762: Unknown result type (might be due to invalid IL or missing references) //IL_1769: Unknown result type (might be due to invalid IL or missing references) //IL_1770: Unknown result type (might be due to invalid IL or missing references) //IL_177c: Unknown result type (might be due to invalid IL or missing references) //IL_1788: Unknown result type (might be due to invalid IL or missing references) //IL_178f: Unknown result type (might be due to invalid IL or missing references) //IL_179a: Unknown result type (might be due to invalid IL or missing references) //IL_17a6: Unknown result type (might be due to invalid IL or missing references) //IL_17ad: Unknown result type (might be due to invalid IL or missing references) //IL_17ba: Expected O, but got Unknown DungeonFlow val = ScriptableObject.CreateInstance(); DungeonFlowSubtypeRestriction item = new DungeonFlowSubtypeRestriction { baseCategoryRestriction = (RoomCategory)2, normalSubcategoryRestriction = (RoomNormalSubCategory)1, bossSubcategoryRestriction = (RoomBossSubCategory)0, specialSubcategoryRestriction = (RoomSpecialSubCategory)0, secretSubcategoryRestriction = (RoomSecretSubCategory)0, maximumRoomsOfSubtype = 1 }; DungeonFlowNode val2 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.elevator_entrance, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, childNodeGuids = new List { "5160f844-ff79-4d19-b813-38496a344e8e" }, loopTargetIsOneWay = false, guidAsString = "d9be71d3-8d97-48af-8eda-54aa897862be" }; DungeonFlowNode val3 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.boss_foyer, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "bd36ddc7-e687-4355-a69b-e799c9d857de", childNodeGuids = new List { "a0098d24-7733-4baf-82c0-11ce3e068261" }, loopTargetIsOneWay = false, guidAsString = "036aafaf-a754-4410-94c5-2c4e5139a5bf" }; DungeonFlowNode val4 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.oldbulletking_room_01, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "036aafaf-a754-4410-94c5-2c4e5139a5bf", childNodeGuids = new List { "f06e0430-437a-481e-9b34-604d145cc77d" }, loopTargetIsOneWay = false, guidAsString = "a0098d24-7733-4baf-82c0-11ce3e068261" }; DungeonFlowNode val5 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.exit_room_basic, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "a0098d24-7733-4baf-82c0-11ce3e068261", childNodeGuids = new List(0), loopTargetIsOneWay = false, guidAsString = "f06e0430-437a-481e-9b34-604d145cc77d" }; DungeonFlowNode val6 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "d9be71d3-8d97-48af-8eda-54aa897862be", childNodeGuids = new List { "0c8ee6c4-31b4-4226-9ddb-90c7eca8f2d3" }, loopTargetIsOneWay = false, guidAsString = "5160f844-ff79-4d19-b813-38496a344e8e" }; DungeonFlowNode val7 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "5160f844-ff79-4d19-b813-38496a344e8e", childNodeGuids = new List { "2439b6f0-b59e-4b46-8521-3195d72748f7" }, loopTargetIsOneWay = false, guidAsString = "0c8ee6c4-31b4-4226-9ddb-90c7eca8f2d3" }; DungeonFlowNode val8 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "2439b6f0-b59e-4b46-8521-3195d72748f7", childNodeGuids = new List { "989ad791-cfc8-4f4e-afc6-fd9512a789b7" }, loopTargetIsOneWay = false, guidAsString = "a919a262-edf3-47e7-aae9-0eb77fa49262" }; DungeonFlowNode val9 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "919a262-edf3-47e7-aae9-0eb77fa49262", childNodeGuids = new List { "b1da2e8a-afeb-41cc-8840-be1c46aa4401", "3a6325a4-d2c0-4b93-a82e-7f09b007e190" }, loopTargetIsOneWay = false, guidAsString = "989ad791-cfc8-4f4e-afc6-fd9512a789b7" }; DungeonFlowNode val10 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "8267eaa8-ed7f-403b-97a6-421d15a21ef3", childNodeGuids = new List { "3956174b-a5ee-4716-b021-889db041a070" }, loopTargetIsOneWay = false, guidAsString = "8b4c640e-b835-4a6b-9326-7b11d856fcde" }; DungeonFlowNode val11 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "8b4c640e-b835-4a6b-9326-7b11d856fcde", childNodeGuids = new List { "bd36ddc7-e687-4355-a69b-e799c9d857de", "31a9f731-24ba-49dd-9086-2f01cb3fcb1d" }, loopTargetIsOneWay = false, guidAsString = "3956174b-a5ee-4716-b021-889db041a070" }; DungeonFlowNode val12 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "3956174b-a5ee-4716-b021-889db041a070", childNodeGuids = new List { "036aafaf-a754-4410-94c5-2c4e5139a5bf", "17f291e0-37c3-4d03-ba6a-b5b534256c07" }, loopTargetIsOneWay = false, guidAsString = "bd36ddc7-e687-4355-a69b-e799c9d857de" }; DungeonFlowNode val13 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "0c8ee6c4-31b4-4226-9ddb-90c7eca8f2d3", childNodeGuids = new List { "dc3ba41b-dc99-42d3-ab9b-088991bc1741", "a919a262-edf3-47e7-aae9-0eb77fa49262" }, loopTargetIsOneWay = false, guidAsString = "2439b6f0-b59e-4b46-8521-3195d72748f7" }; DungeonFlowNode val14 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.gungeon_rewardroom_1, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "2439b6f0-b59e-4b46-8521-3195d72748f7", childNodeGuids = new List { "55ebfb7d-b617-4da1-853c-209d3bd36f8e" }, loopTargetIsOneWay = false, guidAsString = "dc3ba41b-dc99-42d3-ab9b-088991bc1741" }; DungeonFlowNode val15 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "dc3ba41b-dc99-42d3-ab9b-088991bc1741", childNodeGuids = new List(0), loopTargetNodeGuid = "0c8ee6c4-31b4-4226-9ddb-90c7eca8f2d3", loopTargetIsOneWay = false, guidAsString = "55ebfb7d-b617-4da1-853c-209d3bd36f8e" }; DungeonFlowNode val16 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "8267eaa8-ed7f-403b-97a6-421d15a21ef3", childNodeGuids = new List { "44fc3013-6fa2-4436-a0db-1d3b99484703" }, loopTargetIsOneWay = false, guidAsString = "0fbff154-f8cb-4367-a11f-16f5dd56fe4f" }; DungeonFlowNode val17 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "989ad791-cfc8-4f4e-afc6-fd9512a789b7", childNodeGuids = new List { "8267eaa8-ed7f-403b-97a6-421d15a21ef3" }, loopTargetIsOneWay = false, guidAsString = "b1da2e8a-afeb-41cc-8840-be1c46aa4401" }; DungeonFlowNode val18 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.shop02, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "0fbff154-f8cb-4367-a11f-16f5dd56fe4f", childNodeGuids = new List(0), loopTargetIsOneWay = false, guidAsString = "44fc3013-6fa2-4436-a0db-1d3b99484703" }; DungeonFlowNode val19 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "bd36ddc7-e687-4355-a69b-e799c9d857de", childNodeGuids = new List { "56753489-2944-42ed-8c1f-c0daa03417b0" }, loopTargetIsOneWay = false, guidAsString = "17f291e0-37c3-4d03-ba6a-b5b534256c07" }; DungeonFlowNode val20 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "17f291e0-37c3-4d03-ba6a-b5b534256c07", childNodeGuids = new List { "1d489c84-f1b5-431d-bdf3-e61e74cd7f15", "3e0b1ce9-3862-4041-bfa9-bb82474e567a" }, loopTargetIsOneWay = false, guidAsString = "56753489-2944-42ed-8c1f-c0daa03417b0" }; DungeonFlowNode val21 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)2, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "56753489-2944-42ed-8c1f-c0daa03417b0", childNodeGuids = new List { "9fc6fab9-fe0f-458c-b1a4-e69077243acc" }, loopTargetIsOneWay = false, guidAsString = "1d489c84-f1b5-431d-bdf3-e61e74cd7f15" }; DungeonFlowNode val22 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)0, percentChance = 1f, priority = (NodePriority)0, overrideExactRoom = ExpandPrefabs.gungeon_rewardroom_1, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "1d489c84-f1b5-431d-bdf3-e61e74cd7f15", loopTargetNodeGuid = "bd36ddc7-e687-4355-a69b-e799c9d857de", loopTargetIsOneWay = true, guidAsString = "9fc6fab9-fe0f-458c-b1a4-e69077243acc" }; DungeonFlowNode val23 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)1, percentChance = 1f, priority = (NodePriority)0, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "b1da2e8a-afeb-41cc-8840-be1c46aa4401", childNodeGuids = new List { "0fbff154-f8cb-4367-a11f-16f5dd56fe4f", "8b4c640e-b835-4a6b-9326-7b11d856fcde" }, loopTargetIsOneWay = false, guidAsString = "8267eaa8-ed7f-403b-97a6-421d15a21ef3" }; DungeonFlowNode val24 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)6, percentChance = 0.197f, priority = (NodePriority)1, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "989ad791-cfc8-4f4e-afc6-fd9512a789b7", childNodeGuids = new List(0), loopTargetIsOneWay = false, guidAsString = "3a6325a4-d2c0-4b93-a82e-7f09b007e190" }; DungeonFlowNode val25 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)6, percentChance = 1f, priority = (NodePriority)1, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "3956174b-a5ee-4716-b021-889db041a070", childNodeGuids = new List(0), loopTargetIsOneWay = false, guidAsString = "31a9f731-24ba-49dd-9086-2f01cb3fcb1d" }; DungeonFlowNode val26 = new DungeonFlowNode(val) { isSubchainStandin = false, nodeType = (ControlNodeType)0, roomCategory = (RoomCategory)6, percentChance = 0.292f, priority = (NodePriority)1, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = (ForcedDoorType)0, loopForcedDoorType = (ForcedDoorType)0, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List(0), chainRules = new List(0), flow = val, parentNodeGuid = "56753489-2944-42ed-8c1f-c0daa03417b0", childNodeGuids = new List(0), loopTargetIsOneWay = false, guidAsString = "3e0b1ce9-3862-4041-bfa9-bb82474e567a" }; ((Object)val).name = "TEST_West_Floor_03a_Flow"; val.fallbackRoomTable = ExpandPrefabs.CatacombsRoomTable; val.subtypeRestrictions = new List { item }; val.flowInjectionData = new List(0); val.sharedInjectionData = new List(0); val.Initialize(); val.AddNodeToFlow(val2, (DungeonFlowNode)null); val.AddNodeToFlow(val3, val12); val.AddNodeToFlow(val4, val3); val.AddNodeToFlow(val5, val4); val.AddNodeToFlow(val6, val2); val.AddNodeToFlow(val7, val6); val.AddNodeToFlow(val8, val13); val.AddNodeToFlow(val9, val8); val.AddNodeToFlow(val10, val23); val.AddNodeToFlow(val11, val10); val.AddNodeToFlow(val12, val11); val.AddNodeToFlow(val13, val7); val.AddNodeToFlow(val14, val13); val.AddNodeToFlow(val15, val14); val.AddNodeToFlow(val16, val23); val.AddNodeToFlow(val17, val9); val.AddNodeToFlow(val18, val16); val.AddNodeToFlow(val19, val12); val.AddNodeToFlow(val20, val19); val.AddNodeToFlow(val21, val20); val.AddNodeToFlow(val22, val21); val.AddNodeToFlow(val23, val17); val.AddNodeToFlow(val24, val9); val.AddNodeToFlow(val25, val11); val.AddNodeToFlow(val26, val20); val.LoopConnectNodes(val15, val7); val.LoopConnectNodes(val22, val12); val.FirstNode = val2; return val; } } public class fruit_loops { public static int LoopRoomCount = 8; public static int SingleChainRoomCount = 10; private static DungeonFlow m_fruit_loops; public static DungeonFlow Fruit_Loops { get { if (!Object.op_Implicit((Object)(object)m_fruit_loops)) { m_fruit_loops = m_Fruit_Loops(); } return m_fruit_loops; } } private static DungeonFlow m_Fruit_Loops() { //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_020a: 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_0228: Unknown result type (might be due to invalid IL or missing references) //IL_0235: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_0254: Unknown result type (might be due to invalid IL or missing references) //IL_0266: Unknown result type (might be due to invalid IL or missing references) DungeonFlow val = ScriptableObject.CreateInstance(); List list = new List(); List list2 = new List(); List list3 = new List(); List list4 = new List(); DungeonFlowNode val2 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)7, ExpandRoomPrefabs.Giant_Elevator_Room, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val3 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)1, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val4 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)5, null, ExpandPrefabs.shop_room_table, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val5 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)5, null, ExpandPrefabs.shop_room_table, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val6 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, ExpandPrefabs.reward_room, null, oneWayLoopTarget: true, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val7 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)4, ExpandPrefabs.gungeon_rewardroom_1, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val8 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)4, ExpandPrefabs.gungeon_rewardroom_1, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val9 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, ExpandPrefabs.reward_room, null, oneWayLoopTarget: true, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val10 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)8, ExpandPrefabs.tiny_exit, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val11 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, ExpandPrefabs.boss_foyer, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val12 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)3, null, ExpandPrefabs.MegaBossRoomTable, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val13 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)3, ExpandPrefabs.tutorial_minibossroom, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); DungeonFlowNode val14 = ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)0, ExpandPrefabs.boss_foyer, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0); for (int i = 0; i < LoopRoomCount + 1; i++) { list.Add(ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0)); list4.Add(ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0)); } for (int j = 0; j < SingleChainRoomCount + 1; j++) { list2.Add(ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0)); list3.Add(ExpandDungeonFlow.GenerateDefaultNode(val, (RoomCategory)2, null, null, oneWayLoopTarget: false, isWarpWingNode: false, null, (NodePriority)0)); } list[0].roomCategory = (RoomCategory)0; list[LoopRoomCount].roomCategory = (RoomCategory)0; list2[0].roomCategory = (RoomCategory)0; list2[SingleChainRoomCount].roomCategory = (RoomCategory)0; list3[0].roomCategory = (RoomCategory)0; list3[SingleChainRoomCount].roomCategory = (RoomCategory)0; list4[0].roomCategory = (RoomCategory)0; list4[LoopRoomCount].roomCategory = (RoomCategory)0; bool flag = BraveUtility.RandomBool(); ((Object)val).name = "Fruit_Loops"; val.fallbackRoomTable = ExpandPrefabs.CustomRoomTable2; val.subtypeRestrictions = new List { ExpandDungeonFlow.BaseSubTypeRestrictions }; val.flowInjectionData = new List(0); val.sharedInjectionData = new List { ExpandDungeonFlow.BaseSharedInjectionData }; val.Initialize(); val.AddNodeToFlow(val3, (DungeonFlowNode)null); val.AddNodeToFlow(val2, val3); val.AddNodeToFlow(list[0], val3); for (int k = 1; k < LoopRoomCount + 1; k++) { val.AddNodeToFlow(list[k], list[k - 1]); } val.AddNodeToFlow(val4, list[LoopRoomCount]); val.AddNodeToFlow(val6, val4); val.LoopConnectNodes(val3, val6); val.AddNodeToFlow(list2[0], val3); for (int l = 1; l < SingleChainRoomCount + 1; l++) { val.AddNodeToFlow(list2[l], list2[l - 1]); } val.AddNodeToFlow(val7, list2[SingleChainRoomCount]); if (flag) { val.AddNodeToFlow(val11, val7); val.AddNodeToFlow(val12, val11); val.AddNodeToFlow(val10, val12); } else { val.AddNodeToFlow(val14, val7); val.AddNodeToFlow(val13, val14); } val.AddNodeToFlow(list3[0], val2); for (int m = 1; m < SingleChainRoomCount + 1; m++) { val.AddNodeToFlow(list3[m], list3[m - 1]); } val.AddNodeToFlow(val8, list3[SingleChainRoomCount]); if (flag) { val.AddNodeToFlow(val14, val8); val.AddNodeToFlow(val13, val14); } else { val.AddNodeToFlow(val11, val8); val.AddNodeToFlow(val12, val11); val.AddNodeToFlow(val10, val12); } val.AddNodeToFlow(list4[0], val2); for (int n = 1; n < LoopRoomCount + 1; n++) { val.AddNodeToFlow(list4[n], list4[n - 1]); } val.AddNodeToFlow(val5, list4[LoopRoomCount]); val.AddNodeToFlow(val9, val5); val.LoopConnectNodes(val9, val2); val.FirstNode = val3; return val; } } } namespace ExpandTheGungeon.ExpandComponents { public class ExpandArkController : BraveBehaviour, IPlaceConfigurable, IPlayerInteractable { public tk2dSpriteAnimator LidAnimator; public tk2dSpriteAnimator ChestAnimator; public tk2dSpriteAnimator PoofAnimator; public tk2dSprite LightSpriteBeam; public tk2dSprite HellCrackSprite; public Transform GunSpawnPoint; public GameObject GunPrefab; public GameObject HeldGunPrefab; public bool IsTrollChest; public static bool IsResettingPlayers; public string TrollText; public List CultistCutoutNames; public List CultistCutoutDialog; public string CultistCutoutFreakoutAnim; public string CultistNPCName; public string CultistEnemyGUID; [NonSerialized] public RoomHandler ParentRoom; [NonSerialized] private Transform m_heldPastGun; [NonSerialized] private GameObject minimapIconInstance; [NonSerialized] private bool m_hasBeenInteracted; [NonSerialized] protected bool m_isLocalPointing; [NonSerialized] private bool m_InitFinished; [NonSerialized] private bool m_Configured; [NonSerialized] private ExpandNPCController m_CultistNPC; [NonSerialized] private List m_CultistCutouts; [NonSerialized] private PlayerController m_ShotPlayer; public ExpandArkController() { HellCrackSprite = null; IsTrollChest = true; TrollText = "HaHa April Fools!"; CultistCutoutNames = new List { "cultistbaldbowbackleft_cutout", "cultistbaldbowbackright_cutout", "cultistbaldbowback_cutout", "cultisthoodbowback_cutout", "cultisthoodbowleft_cutout", "cultisthoodbowright_cutout" }; CultistCutoutFreakoutAnim = "freakout"; CultistNPCName = "cultistbaldbowleft_cutout"; CultistEnemyGUID = "57255ed50ee24794b7aac1ac3cfb8a95"; CultistCutoutDialog = new List { "Blasphemy! Begone with you!", "How could you!", "You monster!", "You'll pay for that!", "You were supposed to die! Not him!", "We will have our revenge!", "You'll die for this!", "We will pump you full of lead!", "How dare you!" }; m_InitFinished = false; m_Configured = false; } public void Init() { ChestAnimator = ((Component)this).gameObject.GetComponent(); LidAnimator = ((Component)((Component)this).gameObject.transform.Find("G_Lid")).gameObject.GetComponent(); PoofAnimator = ((Component)((Component)this).gameObject.transform.Find("G_Poof")).gameObject.GetComponent(); LightSpriteBeam = ((Component)((Component)this).gameObject.transform.Find("G_Light")).gameObject.GetComponent(); GunSpawnPoint = ((Component)this).gameObject.transform.Find("Spawn"); GunPrefab = ExpandObjectDatabase.EndTimesChest.GetComponent().GunPrefab; HeldGunPrefab = ExpandObjectDatabase.EndTimesChest.GetComponent().HeldGunPrefab; m_InitFinished = true; } public void Awake() { if (!m_InitFinished) { Init(); } } public void Update() { //IL_004c: 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) if (m_Configured | !m_InitFinished | Dungeon.IsGenerating | GameManager.Instance.IsLoadingLevel | (ParentRoom == null)) { return; } if (ParentRoom != null) { ParentRoom = GameManager.Instance.Dungeon.data.GetAbsoluteRoomFromPosition(Vector3Extensions.IntXY(((BraveBehaviour)this).transform.position, (VectorConversions)0)); } if (IsTrollChest && CultistCutoutNames != null && CultistCutoutNames.Count > 0) { int num = 0; Transform hierarchyParent = ParentRoom.hierarchyParent; if (hierarchyParent != null && hierarchyParent.childCount > 0) { m_CultistCutouts = new List(); num = ParentRoom.hierarchyParent.childCount; for (int i = 0; i < num; i++) { foreach (string cultistCutoutName in CultistCutoutNames) { if (((Object)((Component)ParentRoom.hierarchyParent.GetChild(i)).gameObject).name.ToLower().StartsWith(cultistCutoutName)) { if (Object.op_Implicit((Object)(object)((Component)ParentRoom.hierarchyParent.GetChild(i)).gameObject.GetComponent()) && !Object.op_Implicit((Object)(object)((Component)ParentRoom.hierarchyParent.GetChild(i)).gameObject.GetComponent())) { m_CultistCutouts.Add(((Component)ParentRoom.hierarchyParent.GetChild(i)).gameObject.GetComponent()); break; } } else if (((Object)((Component)ParentRoom.hierarchyParent.GetChild(i)).gameObject).name.ToLower().StartsWith(CultistNPCName) && Object.op_Implicit((Object)(object)((Component)ParentRoom.hierarchyParent.GetChild(i)).gameObject.GetComponent())) { m_CultistNPC = ((Component)ParentRoom.hierarchyParent.GetChild(i)).gameObject.AddComponent(); m_CultistNPC.ConfigureOnPlacement(ParentRoom); break; } } } } } else { RoomHandler.unassignedInteractableObjects.Add((IPlayerInteractable)(object)this); } m_Configured = true; } public float GetDistanceToPoint(Vector2 point) { //IL_000e: 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) if (m_hasBeenInteracted) { return 100000f; } return Vector2.Distance(point, ((BraveBehaviour)this).specRigidbody.UnitCenter) / 2f; } public void OnEnteredRange(PlayerController interactor) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) SpriteOutlineManager.AddOutlineToSprite(((BraveBehaviour)this).sprite, Color.white); SpriteOutlineManager.AddOutlineToSprite(((BraveBehaviour)LidAnimator).sprite, Color.white); } public void OnExitRange(PlayerController interactor) { SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)this).sprite, true); SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)LidAnimator).sprite, true); } public void Interact(PlayerController interactor) { //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Invalid comparison between Unknown and I4 //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0081: 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_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: 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_00c9: Unknown result type (might be due to invalid IL or missing references) SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)this).sprite, false); SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)LidAnimator).sprite, false); if (!m_hasBeenInteracted) { m_hasBeenInteracted = true; } for (int i = 0; i < GameManager.Instance.AllPlayers.Length; i++) { GameManager.Instance.AllPlayers[i].RemoveBrokenInteractable((IPlayerInteractable)(object)this); } BraveInput.DoVibrationForAllPlayers((Time)20, (Strength)20); if ((int)GameManager.Instance.CurrentGameType == 1) { PlayerController otherPlayer = GameManager.Instance.GetOtherPlayer(interactor); float num = Vector2.Distance(((GameActor)otherPlayer).CenterPosition, ((GameActor)interactor).CenterPosition); if (num > 8f || num < 0.75f) { Vector2 val = Vector2.right; if (((GameActor)interactor).CenterPosition.x < ((BraveBehaviour)ChestAnimator).sprite.WorldCenter.x) { val = Vector2.left; } otherPlayer.WarpToPoint(Vector3Extensions.XY(((BraveBehaviour)otherPlayer).transform.position) + val * 2f, true, false); } } ((MonoBehaviour)this).StartCoroutine(Open(interactor)); if (IsTrollChest && Object.op_Implicit((Object)(object)m_CultistNPC)) { m_CultistNPC.InteractPlayerless(ExpandNPCController.CultistDialogState.OpenedChest); } } private IEnumerator HandleLightSprite() { yield return (object)new WaitForSeconds(0.5f); float elapsed = 0f; float duration = 1f; ((BraveBehaviour)LightSpriteBeam).renderer.enabled = true; while (elapsed < duration) { elapsed += BraveTime.DeltaTime; float num = Mathf.SmoothStep(0f, 1f, elapsed / duration); ((BraveBehaviour)LightSpriteBeam).transform.localScale = new Vector3(1f, Mathf.Lerp(0f, 1f, num), 1f); ((BraveBehaviour)LightSpriteBeam).transform.localPosition = new Vector3(0f, Mathf.Lerp(1.375f, 0f, num), 0f); ((tk2dBaseSprite)LightSpriteBeam).UpdateZDepth(); yield return null; } } private IEnumerator Open(PlayerController interactor) { if (IsTrollChest) { DeregisterChestOnMinimap(); } for (int i = 0; i < GameManager.Instance.AllPlayers.Length; i++) { if (((BraveBehaviour)GameManager.Instance.AllPlayers[i]).healthHaver.IsAlive) { GameManager.Instance.AllPlayers[i].SetInputOverride("fakeArk"); } } LidAnimator.Play(); ChestAnimator.Play(); PoofAnimator.PlayAndDisableObject(string.Empty, (GameObject)null); ((BraveBehaviour)this).specRigidbody.Reinitialize(); GameManager.Instance.MainCameraController.OverrideRecoverySpeed = 2f; GameManager.Instance.MainCameraController.OverridePosition = Vector2.op_Implicit(((BraveBehaviour)ChestAnimator).sprite.WorldCenter + new Vector2(0f, 2f)); GameManager.Instance.MainCameraController.SetManualControl(true, true); ((MonoBehaviour)this).StartCoroutine(HandleLightSprite()); while (LidAnimator.IsPlaying(LidAnimator.CurrentClip)) { yield return null; } yield return ((MonoBehaviour)this).StartCoroutine(HandleGun(interactor)); yield return (object)new WaitForSeconds(0.5f); Pixelator.Instance.DoFinalNonFadedLayer = true; yield return ((MonoBehaviour)this).StartCoroutine(HandleClockhair(interactor)); interactor.ClearInputOverride("fakeArk"); } private Vector2 GetTargetClockhairPosition(BraveInput input, Vector2 currentClockhairPosition) { //IL_003e: 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_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_0018: 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) //IL_0022: 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_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0089: 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_008f: Unknown result type (might be due to invalid IL or missing references) Vector2 val = ((!input.IsKeyboardAndMouse(false)) ? (currentClockhairPosition + ((TwoAxisInputControl)input.ActiveActions.Aim).Vector * 10f * BraveTime.DeltaTime) : (Vector3Extensions.XY(GameManager.Instance.MainCameraController.Camera.ScreenToWorldPoint(Input.mousePosition)) + new Vector2(0.375f, -0.25f))); val = Vector2.Max(GameManager.Instance.MainCameraController.MinVisiblePoint, val); return Vector2.Min(GameManager.Instance.MainCameraController.MaxVisiblePoint, val); } private void UpdateCameraPositionDuringClockhair(Vector2 targetPosition) { //IL_0000: 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_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: 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_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002d: 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_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_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008c: 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) if (Vector2.Distance(targetPosition, ((BraveBehaviour)ChestAnimator).sprite.WorldCenter) > 8f) { targetPosition = ((BraveBehaviour)ChestAnimator).sprite.WorldCenter; } Vector2 val = Vector2.op_Implicit(GameManager.Instance.MainCameraController.OverridePosition); if (Vector2.Distance(val, targetPosition) > 10f) { val = Vector3Extensions.XY(((BraveBehaviour)GameManager.Instance.MainCameraController).transform.position); } GameManager.Instance.MainCameraController.OverridePosition = Vector3.MoveTowards(Vector2.op_Implicit(val), Vector2.op_Implicit(targetPosition), BraveTime.DeltaTime); } private bool CheckPlayerTarget(PlayerController target, Transform clockhairTransform) { //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_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) if (target.IsGhost | ((BraveBehaviour)target).healthHaver.IsDead) { return false; } return Vector2.Distance(Vector3Extensions.XY(clockhairTransform.position) + new Vector2(-0.375f, 0.25f), ((GameActor)target).CenterPosition) < 0.625f; } private bool CheckNPCTarget(ExpandNPCController target, Transform clockhairTransform) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: 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) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) return Vector2.Distance(Vector3Extensions.XY(clockhairTransform.position) + new Vector2(-0.375f, 0.25f), ((BraveBehaviour)target).sprite.WorldCenter) < 0.625f; } private bool CheckEnemyTarget(AIActor target, Transform clockhairTransform) { //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_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) if (((GameActor)target).IsGone | ((BraveBehaviour)target).healthHaver.IsDead) { return false; } return Vector2.Distance(Vector3Extensions.XY(clockhairTransform.position) + new Vector2(-0.375f, 0.25f), ((GameActor)target).CenterPosition) < 0.625f; } private bool CheckHellTarget(tk2dBaseSprite hellTarget, Transform clockhairTransform) { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)hellTarget == (Object)null) { return false; } return Vector2.Distance(Vector3Extensions.XY(clockhairTransform.position) + new Vector2(-0.375f, 0.25f), hellTarget.WorldCenter) < 0.625f; } public void HandleHeldGunSpriteFlip(bool flipped) { //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: 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_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) tk2dSprite component = ((Component)m_heldPastGun).GetComponent(); if (flipped) { if (!((tk2dBaseSprite)component).FlipY) { ((tk2dBaseSprite)component).FlipY = true; } } else if (((tk2dBaseSprite)component).FlipY) { ((tk2dBaseSprite)component).FlipY = false; } Transform val = m_heldPastGun.Find("PrimaryHand"); m_heldPastGun.localPosition = -val.localPosition; if (flipped) { m_heldPastGun.localPosition = Vector3.Scale(m_heldPastGun.localPosition, new Vector3(1f, -1f, 1f)); } m_heldPastGun.localPosition = BraveUtility.QuantizeVector(m_heldPastGun.localPosition, 16f); ((tk2dBaseSprite)component).ForceRotationRebuild(); ((tk2dBaseSprite)component).UpdateZDepth(); } private void PointGunAtClockhair(PlayerController interactor, Transform clockhairTransform) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: 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_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006e: 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_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_009a: 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) Vector2 centerPosition = ((GameActor)interactor).CenterPosition; Vector2 val = Vector3Extensions.XY(clockhairTransform.position) - centerPosition; if (m_isLocalPointing && ((Vector2)(ref val)).sqrMagnitude > 9f) { m_isLocalPointing = false; } else if (m_isLocalPointing || ((Vector2)(ref val)).sqrMagnitude < 4f) { m_isLocalPointing = true; float num = ((Vector2)(ref val)).sqrMagnitude / 4f - 0.05f; val = Vector2.Lerp(Vector2.right, val, num); } float num2 = BraveMathCollege.Atan2Degrees(val); num2 = dfNumberExtensions.Quantize(num2, 3f); ((GameActor)interactor).GunPivot.rotation = Quaternion.Euler(0f, 0f, num2); interactor.ForceIdleFacePoint(val, false); HandleHeldGunSpriteFlip(((GameActor)interactor).SpriteFlipped); } private IEnumerator HandleClockhair(PlayerController interactor) { Transform clockhairTransform = Object.Instantiate(BraveResources.Load("Clockhair", ".prefab")).transform; ClockhairController clockhair = ((Component)clockhairTransform).GetComponent(); float elapsed = 0f; float duration = clockhair.ClockhairInDuration; Vector3 clockhairTargetPosition = Vector2.op_Implicit(((GameActor)interactor).CenterPosition); Vector3 clockhairStartPosition = clockhairTargetPosition + new Vector3(-20f, 5f, 0f); ((BraveBehaviour)clockhair).renderer.enabled = true; ((BraveBehaviour)clockhair).spriteAnimator.alwaysUpdateOffscreen = true; ((BraveBehaviour)clockhair).spriteAnimator.Play("clockhair_intro"); clockhair.hourAnimator.Play("hour_hand_intro"); clockhair.minuteAnimator.Play("minute_hand_intro"); clockhair.secondAnimator.Play("second_hand_intro"); BraveInput currentInput = BraveInput.GetInstanceForPlayer(interactor.PlayerIDX); while (elapsed < duration) { UpdateCameraPositionDuringClockhair(((GameActor)interactor).CenterPosition); if (GameManager.INVARIANT_DELTA_TIME == 0f) { elapsed += 0.05f; } elapsed += GameManager.INVARIANT_DELTA_TIME; float num = elapsed / duration; float num2 = Mathf.SmoothStep(0f, 1f, num); clockhairTargetPosition = Vector2.op_Implicit(GetTargetClockhairPosition(currentInput, Vector2.op_Implicit(clockhairTargetPosition))); Vector3 val = Vector3.Slerp(clockhairStartPosition, clockhairTargetPosition, num2); clockhairTransform.position = Vector3Extensions.WithZ(val, 0f); if (num > 0.5f) { ((BraveBehaviour)clockhair).renderer.enabled = true; } if (num > 0.75f) { ((Component)clockhair.hourAnimator).GetComponent().enabled = true; ((Component)clockhair.minuteAnimator).GetComponent().enabled = true; ((Component)clockhair.secondAnimator).GetComponent().enabled = true; GameCursorController.CursorOverride.SetOverride("fakeArk", true, (float?)null); } ((BraveBehaviour)clockhair).sprite.UpdateZDepth(); PointGunAtClockhair(interactor, clockhairTransform); yield return null; } clockhair.SetMotionType(1f); float shotTargetTime = 0f; float holdDuration = 4f; PlayerController shotPlayer = interactor; AIActor m_EnemyTarget = null; AIActor[] m_Enemies = null; ExpandNPCController m_NPCTarget = null; if (IsTrollChest) { m_Enemies = Object.FindObjectsOfType(); } bool didShootHellTrigger = false; Vector3 lastJitterAmount = Vector3.zero; bool m_isPlayingChargeAudio = false; bool isTargetingEnemy = false; bool isTargetingNPC = false; while (true) { UpdateCameraPositionDuringClockhair(((GameActor)interactor).CenterPosition); ((BraveBehaviour)clockhair).transform.position = ((BraveBehaviour)clockhair).transform.position - lastJitterAmount; ((BraveBehaviour)clockhair).transform.position = Vector2.op_Implicit(GetTargetClockhairPosition(currentInput, Vector3Extensions.XY(((BraveBehaviour)clockhair).transform.position))); ((BraveBehaviour)clockhair).sprite.UpdateZDepth(); bool flag = CheckPlayerTarget(interactor, clockhairTransform); if (flag) { shotPlayer = interactor; } if (IsTrollChest && !flag) { if (m_Enemies != null && m_Enemies.Length != 0) { for (int i = 0; i < m_Enemies.Length; i++) { if (Object.op_Implicit((Object)(object)m_Enemies[i]) && ((Component)m_Enemies[i]).gameObject.activeInHierarchy && ((Component)m_Enemies[i]).gameObject.activeSelf && !((GameActor)m_Enemies[i]).IsGone && Object.op_Implicit((Object)(object)((BraveBehaviour)m_Enemies[i]).healthHaver) && !((BraveBehaviour)m_Enemies[i]).healthHaver.IsDead) { isTargetingEnemy = CheckEnemyTarget(m_Enemies[i], clockhairTransform); if (isTargetingEnemy) { m_EnemyTarget = m_Enemies[i]; m_NPCTarget = null; isTargetingNPC = false; break; } } } } if (!isTargetingEnemy) { m_EnemyTarget = null; m_NPCTarget = null; isTargetingNPC = false; if (Object.op_Implicit((Object)(object)m_CultistNPC)) { isTargetingNPC = CheckNPCTarget(m_CultistNPC, clockhairTransform); m_NPCTarget = ((!isTargetingNPC) ? null : m_CultistNPC); } } } else { m_NPCTarget = null; m_EnemyTarget = null; isTargetingNPC = false; isTargetingEnemy = false; } if (!flag && !isTargetingEnemy && !isTargetingNPC && (int)GameManager.Instance.CurrentGameType == 1) { flag = CheckPlayerTarget(GameManager.Instance.GetOtherPlayer(interactor), clockhairTransform); shotPlayer = GameManager.Instance.GetOtherPlayer(interactor); } if (!flag && !isTargetingEnemy && !isTargetingNPC && GameStatsManager.Instance.AllCorePastsBeaten()) { flag = CheckHellTarget((tk2dBaseSprite)(object)HellCrackSprite, clockhairTransform); didShootHellTrigger = flag; } if (flag || isTargetingEnemy || isTargetingNPC) { clockhair.SetMotionType(-10f); } else { clockhair.SetMotionType(1f); } if ((((OneAxisInputControl)currentInput.ActiveActions.ShootAction).IsPressed || ((OneAxisInputControl)currentInput.ActiveActions.InteractAction).IsPressed) && (flag || isTargetingEnemy || isTargetingNPC)) { if (!m_isPlayingChargeAudio) { m_isPlayingChargeAudio = true; AkSoundEngine.PostEvent("Play_OBJ_pastkiller_charge_01", ((Component)this).gameObject); } shotTargetTime += BraveTime.DeltaTime; } else { shotTargetTime = Mathf.Max(0f, shotTargetTime - BraveTime.DeltaTime * 3f); if (m_isPlayingChargeAudio) { m_isPlayingChargeAudio = false; AkSoundEngine.PostEvent("Stop_OBJ_pastkiller_charge_01", ((Component)this).gameObject); } } if ((((OneAxisInputControl)currentInput.ActiveActions.ShootAction).WasReleased || ((OneAxisInputControl)currentInput.ActiveActions.InteractAction).WasReleased) && (flag || isTargetingEnemy || isTargetingNPC) && shotTargetTime > holdDuration && !GameManager.Instance.IsPaused) { break; } if (shotTargetTime > 0f) { float num3 = Mathf.Lerp(0f, 0.35f, shotTargetTime / holdDuration); float num4 = 0.5f; float num5 = Mathf.Lerp(4f, 7f, shotTargetTime / holdDuration); clockhair.UpdateDistortion(num3, num4, num5); float num6 = Mathf.Lerp(2f, 0.25f, shotTargetTime / holdDuration); clockhair.UpdateDesat(true, num6); shotTargetTime = Mathf.Min(holdDuration + 0.25f, shotTargetTime + BraveTime.DeltaTime); float num7 = Mathf.Lerp(0f, 0.5f, (shotTargetTime - 1f) / (holdDuration - 1f)); Vector3 val2 = Vector2Extensions.ToVector3ZUp(Random.insideUnitCircle * num7, 0f); BraveInput.DoSustainedScreenShakeVibration(shotTargetTime / holdDuration * 0.8f); ((BraveBehaviour)clockhair).transform.position = ((BraveBehaviour)clockhair).transform.position + val2; lastJitterAmount = val2; clockhair.SetMotionType(Mathf.Lerp(-10f, -2400f, shotTargetTime / holdDuration)); } else { lastJitterAmount = Vector3.zero; clockhair.UpdateDistortion(0f, 0f, 0f); clockhair.UpdateDesat(false, 0f); shotTargetTime = 0f; BraveInput.DoSustainedScreenShakeVibration(0f); } PointGunAtClockhair(interactor, clockhairTransform); yield return null; } if (IsTrollChest) { currentInput.ConsumeButtonDown((GungeonActionType)8); } BraveInput.DoSustainedScreenShakeVibration(0f); BraveInput.DoVibrationForAllPlayers((Time)20, (Strength)30); ((MonoBehaviour)clockhair).StartCoroutine(clockhair.WipeoutDistortionAndFade(0.5f)); GameObjectExtensions.SetLayerRecursively(((Component)clockhair).gameObject, LayerMask.NameToLayer("Unoccluded")); if (!IsTrollChest) { Pixelator.Instance.FadeToColor(1f, Color.white, true, 0.2f); } Pixelator.Instance.DoRenderGBuffer = false; ((BraveBehaviour)clockhair).spriteAnimator.Play("clockhair_fire"); ((Component)clockhair.hourAnimator).GetComponent().enabled = false; ((Component)clockhair.minuteAnimator).GetComponent().enabled = false; ((Component)clockhair.secondAnimator).GetComponent().enabled = false; yield return null; if (IsTrollChest) { Object.Destroy((Object)(object)((Component)m_heldPastGun).gameObject); interactor.ToggleGunRenderers(true, "fakeArk"); GameCursorController.CursorOverride.RemoveOverride("fakeArk"); Pixelator.Instance.LerpToLetterbox(0.35f, 0.25f); yield return ((MonoBehaviour)this).StartCoroutine(HandleCrosshairShot(shotPlayer, m_EnemyTarget, m_NPCTarget)); yield break; } yield return null; TimeTubeCreditsController val3 = new TimeTubeCreditsController(); bool isShortTunnel = didShootHellTrigger || (int)shotPlayer.characterIdentity == 7 || CharacterStoryComplete(shotPlayer.characterIdentity); Object.Destroy((Object)(object)((Component)m_heldPastGun).gameObject); interactor.ToggleGunRenderers(true, "fakeArk"); GameCursorController.CursorOverride.RemoveOverride("fakeArk"); Pixelator.Instance.LerpToLetterbox(0.35f, 0.25f); yield return ((MonoBehaviour)this).StartCoroutine(val3.HandleTimeTubeCredits(((BraveBehaviour)clockhair).sprite.WorldCenter, isShortTunnel, ((BraveBehaviour)clockhair).spriteAnimator, (!didShootHellTrigger) ? shotPlayer.PlayerIDX : 0, false)); if (!IsTrollChest) { if (isShortTunnel) { Pixelator.Instance.FadeToBlack(1f, false, 0f); yield return (object)new WaitForSeconds(1f); } if (didShootHellTrigger) { GameManager.DoMidgameSave((ValidTilesets)128); GameManager.Instance.LoadCustomLevel("tt_bullethell"); } else if ((int)shotPlayer.characterIdentity == 7) { GameManager.IsCoopPast = true; ResetPlayers(); GameManager.Instance.LoadCustomLevel("fs_coop"); } else if (CharacterStoryComplete(shotPlayer.characterIdentity) && (int)shotPlayer.characterIdentity == 10) { GameManager.DoMidgameSave((ValidTilesets)16384); GameManager.IsGunslingerPast = true; ResetPlayers(isGunslingerPast: true); GameManager.Instance.LoadCustomLevel("tt_bullethell"); } else if (CharacterStoryComplete(shotPlayer.characterIdentity)) { bool flag2 = false; GameManager.DoMidgameSave((ValidTilesets)16384); PlayableCharacters characterIdentity = shotPlayer.characterIdentity; switch ((int)characterIdentity) { case 0: flag2 = true; ResetPlayers(); GameManager.Instance.LoadCustomLevel("fs_pilot"); break; case 1: flag2 = true; ResetPlayers(); GameManager.Instance.LoadCustomLevel("fs_convict"); break; case 2: flag2 = true; ResetPlayers(); GameManager.Instance.LoadCustomLevel("fs_robot"); break; case 5: flag2 = true; ResetPlayers(); GameManager.Instance.LoadCustomLevel("fs_soldier"); break; case 6: flag2 = true; ResetPlayers(); GameManager.Instance.LoadCustomLevel("fs_guide"); break; case 8: flag2 = true; ResetPlayers(); GameManager.Instance.LoadCustomLevel("fs_bullet"); break; } if (!flag2) { AmmonomiconController.Instance.OpenAmmonomicon(true, true); } else { GameUIRoot.Instance.ToggleUICamera(false); } } else { AmmonomiconController.Instance.OpenAmmonomicon(true, true); } } while (true) { yield return null; } } private void ResetPlayers(bool isGunslingerPast = false, bool survivedTrollChest = false) { IsResettingPlayers = true; for (int i = 0; i < GameManager.Instance.AllPlayers.Length; i++) { if (((BraveBehaviour)GameManager.Instance.AllPlayers[i]).healthHaver.IsAlive || survivedTrollChest) { if (!isGunslingerPast && !survivedTrollChest) { GameManager.Instance.AllPlayers[i].ResetToFactorySettings(true, true, false); GameManager.Instance.AllPlayers[i].CharacterUsesRandomGuns = false; } GameManager.Instance.AllPlayers[i].IsVisible = true; GameManager.Instance.AllPlayers[i].ClearInputOverride("fakeArk"); GameManager.Instance.AllPlayers[i].ClearAllInputOverrides(); } } IsResettingPlayers = false; } private void DestroyPlayers() { for (int i = 0; i < GameManager.Instance.AllPlayers.Length; i++) { Object.Destroy((Object)(object)((Component)GameManager.Instance.AllPlayers[i]).gameObject); } } private bool CharacterStoryComplete(PlayableCharacters shotCharacter) { if (GameStatsManager.Instance.GetFlag((GungeonFlags)50120)) { return GameManager.Instance.PrimaryPlayer.PastAccessible; } return false; } private void SpawnVFX(string vfxResourcePath, Vector2 pos) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Expected O, but got Unknown //IL_0025: 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) tk2dSprite component = Object.Instantiate((GameObject)BraveResources.Load(vfxResourcePath, typeof(GameObject), ".prefab")).GetComponent(); ((tk2dBaseSprite)component).PlaceAtPositionByAnchor(Vector2.op_Implicit(pos), (Anchor)4); ((tk2dBaseSprite)component).UpdateZDepth(); } private IEnumerator HandleGun(PlayerController interactor) { interactor.ToggleGunRenderers(false, "fakeArk"); GameObject instanceGun = Object.Instantiate(GunPrefab, GunSpawnPoint.position, Quaternion.identity); Material gunMaterial = ((Renderer)((Component)instanceGun.transform.Find("GunThatCanKillThePast")).GetComponent()).sharedMaterial; tk2dSprite instanceGunSprite = ((Component)instanceGun.transform.Find("GunThatCanKillThePast")).GetComponent(); ((tk2dBaseSprite)instanceGunSprite).HeightOffGround = 5f; gunMaterial.SetColor("_OverrideColor", Color.white); float elapsed3 = 0f; float raiseTime = 4f; Vector3 targetMidHeightPosition = GunSpawnPoint.position + new Vector3(0f, 6.5f, 0f); interactor.ForceIdleFacePoint(new Vector2(1f, -1f), false); while (elapsed3 < raiseTime) { elapsed3 += BraveTime.DeltaTime; float num = Mathf.Clamp01(elapsed3 / raiseTime); num = BraveMathCollege.LinearToSmoothStepInterpolate(0f, 1f, num); instanceGun.transform.position = Vector3.Lerp(GunSpawnPoint.position, targetMidHeightPosition, num); instanceGun.transform.localScale = Vector3.Lerp(Vector3.one, Vector3.one * 2f, num); yield return null; } yield return (object)new WaitForSeconds(1f); while (((BraveBehaviour)instanceGunSprite).spriteAnimator.CurrentFrame != 0) { yield return null; } ((BraveBehaviour)instanceGunSprite).spriteAnimator.Pause(); Pixelator.Instance.FadeToColor(0.2f, Color.white, true, 0.2f); yield return (object)new WaitForSeconds(0.1f); Transform val = instanceGun.transform.Find("GTCKTP_Burst"); if ((Object)(object)val != (Object)null) { ((Component)val).gameObject.SetActive(true); } BraveInput.DoVibrationForAllPlayers((Time)30, (Strength)20); yield return (object)new WaitForSeconds(0.2f); ((BraveBehaviour)instanceGunSprite).spriteAnimator.Resume(); elapsed3 = 0f; float fadeTime = 1f; while (elapsed3 < fadeTime) { elapsed3 += BraveTime.DeltaTime; float num2 = Mathf.Clamp01(elapsed3 / fadeTime); gunMaterial.SetColor("_OverrideColor", Color.Lerp(Color.white, new Color(1f, 1f, 1f, 0f), num2)); yield return null; } yield return (object)new WaitForSeconds(2f); elapsed3 = 0f; float reraiseTime = 2f; while (elapsed3 < reraiseTime) { elapsed3 += BraveTime.DeltaTime; float num3 = Mathf.Clamp01(elapsed3 / reraiseTime); num3 = BraveMathCollege.SmoothStepToLinearStepInterpolate(0f, 1f, num3); instanceGun.transform.position = Vector3.Lerp(targetMidHeightPosition, Vector2Extensions.ToVector3ZUp(((GameActor)interactor).CenterPosition, targetMidHeightPosition.z - 10f), num3); instanceGun.transform.localScale = Vector3.Lerp(Vector3.one * 2f, Vector3.one, num3); yield return null; } Object obj = ResourceCache.Acquire("Global VFX/VFX_Item_Pickup"); GameObject val2 = (GameObject)(object)((obj is GameObject) ? obj : null); ((GameActor)interactor).PlayEffectOnActor(val2, Vector3.zero, true, false, false); GameObject val3 = Object.Instantiate(HeldGunPrefab); AkSoundEngine.PostEvent("Play_OBJ_weapon_pickup_01", ((Component)this).gameObject); tk2dSprite component = val3.GetComponent(); ((tk2dBaseSprite)component).HeightOffGround = 2f; ((tk2dBaseSprite)component).attachParent = ((BraveBehaviour)interactor).sprite; m_heldPastGun = val3.transform; m_heldPastGun.parent = ((GameActor)interactor).GunPivot; Transform val4 = m_heldPastGun.Find("PrimaryHand"); m_heldPastGun.localRotation = Quaternion.identity; m_heldPastGun.localPosition = -val4.localPosition; ((tk2dBaseSprite)component).UpdateZDepth(); Object.Destroy((Object)(object)instanceGun); } private IEnumerator HandleCrosshairShot(PlayerController interactor, AIActor EnemyTarget = null, ExpandNPCController m_CultistTarget = null) { bool m_KilledCultist = false; bool m_KilledCompanion = false; bool m_ExtraLifeTriggered = false; if (Object.op_Implicit((Object)(object)GameManager.Instance.GetOtherPlayer(interactor))) { _ = GameManager.Instance.GetOtherPlayer(interactor).IsGhost; } bool m_SecondPlayerExistsAndIsNotGhost = Object.op_Implicit((Object)(object)GameManager.Instance.GetOtherPlayer(interactor)) && !GameManager.Instance.GetOtherPlayer(interactor).IsGhost; bool m_AllowExtraLife = true; if (m_SecondPlayerExistsAndIsNotGhost) { m_AllowExtraLife = false; } if (DateTime.Now.Day == 1 && DateTime.Now.Month == 4) { m_AllowExtraLife = false; } m_ShotPlayer = interactor; if (Object.op_Implicit((Object)(object)EnemyTarget)) { m_KilledCompanion = true; Vector2 m_EnemyTargetPosition = ((BraveBehaviour)EnemyTarget).sprite.WorldCenter; yield return null; ((BraveBehaviour)EnemyTarget).healthHaver.lastIncurredDamageSource = TrollText; ((BraveBehaviour)EnemyTarget).healthHaver.ForceSetCurrentHealth(0f); ((BraveBehaviour)EnemyTarget).healthHaver.IsVulnerable = true; ((BraveBehaviour)EnemyTarget).healthHaver.ApplyDamage(100000f, Vector2.zero, "PastGunKill", (CoreDamageTypes)0, (DamageCategory)0, true, (PixelCollider)null, false); yield return null; HandleAIActorLoot(m_EnemyTargetPosition); } else if (!Object.op_Implicit((Object)(object)m_CultistTarget)) { if (m_AllowExtraLife) { m_ExtraLifeTriggered = true; ((BraveBehaviour)interactor).healthHaver.OnPreDeath += HandlePreDeath; } else if (m_SecondPlayerExistsAndIsNotGhost) { m_KilledCompanion = true; } Vector2 m_CompanionTargetPosition = ((BraveBehaviour)interactor).sprite.WorldCenter; yield return null; ((BraveBehaviour)interactor).healthHaver.lastIncurredDamageSource = TrollText; ((BraveBehaviour)interactor).healthHaver.ForceSetCurrentHealth(0f); ((BraveBehaviour)interactor).healthHaver.Armor = 0f; ((BraveBehaviour)interactor).healthHaver.Die(Vector2.zero); if (m_KilledCompanion) { HandleAIActorLoot(m_CompanionTargetPosition); } yield return null; } yield return (object)new WaitForSeconds(0.2f); if (m_KilledCompanion | Object.op_Implicit((Object)(object)EnemyTarget) | Object.op_Implicit((Object)(object)m_CultistTarget)) { Pixelator.Instance.DoFinalNonFadedLayer = false; ((BraveBehaviour)LightSpriteBeam).renderer.enabled = false; if (Object.op_Implicit((Object)(object)m_CultistTarget) && ParentRoom != null) { m_CultistTarget.Kill(); m_KilledCultist = true; int RandomCultistDialogCount = Random.Range(2, 4); yield return (object)new WaitForSeconds(2f); if (m_CultistCutouts != null && m_CultistCutouts.Count > 0) { List m_CultistDialogTargets = new List(); foreach (tk2dSpriteAnimator cultistCutout in m_CultistCutouts) { cultistCutout.Play(CultistCutoutFreakoutAnim); m_CultistDialogTargets.Add(((BraveBehaviour)cultistCutout).transform); yield return (object)new WaitForSeconds(Random.Range(0.1f, 0.25f)); } foreach (Transform item in m_CultistDialogTargets) { CultistCutoutDialog = BraveUtility.Shuffle(CultistCutoutDialog); string text = BraveUtility.RandomElement(CultistCutoutDialog); if (CultistCutoutDialog.Count > 1) { CultistCutoutDialog.Remove(text); CultistCutoutDialog = BraveUtility.Shuffle(CultistCutoutDialog); } TextBoxManager.ShowTextBox(item.position + new Vector3(-0.9375f, 1.375f), item, Random.Range(3f, 4.5f), text, "", false, (BoxSlideOrientation)1, false, false); yield return (object)new WaitForSeconds(Random.Range(0.5f, 1.5f)); RandomCultistDialogCount--; if (RandomCultistDialogCount <= 0) { break; } } yield return (object)new WaitForSeconds((float)Random.Range(3, 4)); foreach (tk2dSpriteAnimator cultistCutout2 in m_CultistCutouts) { cultistCutout2.Stop(); tk2dBaseSprite sprite = ((BraveBehaviour)cultistCutout2).sprite; if (Object.op_Implicit((Object)(object)((sprite != null) ? ((BraveBehaviour)sprite).renderer : null))) { ((BraveBehaviour)((BraveBehaviour)cultistCutout2).sprite).renderer.enabled = false; } ((Behaviour)cultistCutout2).enabled = false; if (Object.op_Implicit((Object)(object)((BraveBehaviour)cultistCutout2).specRigidbody)) { ((Behaviour)((BraveBehaviour)cultistCutout2).specRigidbody).enabled = false; } AIActor val = AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(CultistEnemyGUID), ((BraveBehaviour)cultistCutout2).sprite.WorldBottomCenter, ParentRoom, false, (AwakenAnimationType)1, true); if (Object.op_Implicit((Object)(object)val)) { val.procedurallyOutlined = false; } TextBoxManager.ClearTextBox(((BraveBehaviour)cultistCutout2).transform); } while (!ParentRoom.HasActiveEnemies((ActiveEnemyType)1)) { yield return null; } ParentRoom.SealRoom(); for (int i = 0; i < m_CultistCutouts.Count; i++) { Object.Destroy((Object)(object)((Component)m_CultistCutouts[i]).gameObject); } m_CultistCutouts.Clear(); yield return null; } } } if (m_KilledCompanion) { m_CultistNPC.InteractPlayerless(ExpandNPCController.CultistDialogState.ShotCompanion); } else if (!m_KilledCultist && m_ExtraLifeTriggered) { m_CultistNPC.InteractPlayerless(ExpandNPCController.CultistDialogState.PlayerShot); } GameManager.Instance.MainCameraController.SetManualControl(false, false); Pixelator.Instance.LerpToLetterbox(1f, 0.25f); ResetPlayers(isGunslingerPast: false, survivedTrollChest: true); if (ParentRoom != null) { ParentRoom.DeregisterInteractable((IPlayerInteractable)(object)this); if (m_KilledCultist) { while (ParentRoom.HasActiveEnemies((ActiveEnemyType)1)) { yield return null; } ParentRoom.UnsealRoom(); } } Object.Destroy((Object)(object)this); } private void HandlePreDeath(Vector2 damageDirection) { //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Invalid comparison between Unknown and I4 if (!Object.op_Implicit((Object)(object)m_ShotPlayer)) { return; } ((BraveBehaviour)m_ShotPlayer).healthHaver.OnPreDeath -= HandlePreDeath; if (m_ShotPlayer.IsInMinecart) { m_ShotPlayer.currentMineCart.EvacuateSpecificPlayer(m_ShotPlayer, true); } foreach (PassiveItem passiveItem in m_ShotPlayer.passiveItems) { if ((passiveItem is CompanionItem && ((PickupObject)((passiveItem is CompanionItem) ? passiveItem : null)).DisplayName == "Pig") || (passiveItem is ExtraLifeItem && (int)((ExtraLifeItem)((passiveItem is ExtraLifeItem) ? passiveItem : null)).extraLifeMode == 1)) { return; } } m_ShotPlayer.HandleCloneItem((ExtraLifeItem)null); } private void HandleAIActorLoot(Vector2 targetPosition) { //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0120: 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_016c: Unknown result type (might be due to invalid IL or missing references) int num = ((!(Random.value >= 0.2f)) ? 4 : ((!BraveUtility.RandomBool()) ? 2 : 3)); GenericLootTable val = ((!BraveUtility.RandomBool()) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable); PickupObject itemOfTypeAndQuality = LootEngine.GetItemOfTypeAndQuality((ItemQuality)num, val, false); if (Object.op_Implicit((Object)(object)itemOfTypeAndQuality)) { List list = new List { GlobalItemIds.SmallHeart, GlobalItemIds.FullHeart, GlobalItemIds.AmmoPickup, GlobalItemIds.SpreadAmmoPickup, GlobalItemIds.Spice, GlobalItemIds.Junk, GlobalItemIds.GoldJunk, GlobalItemIds.Key, GlobalItemIds.GlassGuonStone, GlobalItemIds.Junk, GlobalItemIds.GoldJunk, GlobalItemIds.SackKnightBoon, GlobalItemIds.Blank, GlobalItemIds.Map, 120 }; if (!GameStatsManager.Instance.IsRainbowRun | list.Contains(itemOfTypeAndQuality.PickupObjectId)) { LootEngine.SpawnItem(((Component)itemOfTypeAndQuality).gameObject, Vector2.op_Implicit(targetPosition), Vector2.zero, 0f, true, true, false); } else if (ParentRoom != null && Object.op_Implicit((Object)(object)GameManager.Instance.RewardManager.BowlerNoteOtherSource)) { string customText = "Corpses aren't {wb}Rainbow Chests{w}!\n\nNo RAAAAAIIIINBOW, no item!\n\n{wb}-Bowler{w}"; ExpandUtility.SpawnCustomBowlerNote(GameManager.Instance.RewardManager.BowlerNoteOtherSource, targetPosition, ParentRoom, customText); } } } public void RegisterChestOnMinimap(GameObject MinimapIconPrefab) { if (ParentRoom != null) { GameObject val = (GameObject)(((object)MinimapIconPrefab) ?? ((object)/*isinst with value type is only supported in some contexts*/)); minimapIconInstance = Minimap.Instance.RegisterRoomIcon(ParentRoom, val, false); } } public void DeregisterChestOnMinimap() { if (Object.op_Implicit((Object)(object)minimapIconInstance) && ParentRoom != null) { Minimap.Instance.DeregisterRoomIcon(ParentRoom, minimapIconInstance); } } public string GetAnimationState(PlayerController interactor, out bool shouldBeFlipped) { shouldBeFlipped = false; return string.Empty; } public float GetOverrideMaxDistance() { return -1f; } protected override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); } public void ConfigureOnPlacement(RoomHandler room) { if (!m_InitFinished) { Init(); } if (IsTrollChest) { ParentRoom = room; ParentRoom.RegisterInteractable((IPlayerInteractable)(object)this); RegisterChestOnMinimap(GameManager.Instance.RewardManager.S_Chest.MinimapIconPrefab); } } } public class ExpandAutoRegister : BraveBehaviour { [SerializeField] public bool CorrectForWalls; [SerializeField] public bool DestroyIfNearPit; [SerializeField] public bool OnlyCheckWallsPits; [SerializeField] public float NorthWallOffset; [SerializeField] public float WestWallOffset; [SerializeField] public float EastWallOffset; [NonSerialized] public IPlayerInteractable ParentInteractible; private bool m_Registered; private RoomHandler m_ParentRoom; public ExpandAutoRegister() { DestroyIfNearPit = true; CorrectForWalls = true; OnlyCheckWallsPits = false; NorthWallOffset = 0.2f; WestWallOffset = 0f; EastWallOffset = 0.5f; } public void Start() { //IL_0014: Unknown result type (might be due to invalid IL or missing references) if (!OnlyCheckWallsPits) { m_ParentRoom = Vector3Extensions.GetAbsoluteRoom(((Component)this).gameObject.transform.position); ParentInteractible = ((Component)this).gameObject.GetComponent(); } } public void Update() { //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004d: 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_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_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0099: 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_00bc: 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_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0141: 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_0161: 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_0185: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: Unknown result type (might be due to invalid IL or missing references) //IL_01c3: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: 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_0207: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Unknown result type (might be due to invalid IL or missing references) //IL_021d: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Unknown result type (might be due to invalid IL or missing references) //IL_027a: Unknown result type (might be due to invalid IL or missing references) //IL_0281: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Unknown result type (might be due to invalid IL or missing references) //IL_0244: Unknown result type (might be due to invalid IL or missing references) //IL_0249: Unknown result type (might be due to invalid IL or missing references) //IL_024e: Unknown result type (might be due to invalid IL or missing references) //IL_0293: Unknown result type (might be due to invalid IL or missing references) //IL_025e: Unknown result type (might be due to invalid IL or missing references) //IL_026f: Unknown result type (might be due to invalid IL or missing references) //IL_0274: Unknown result type (might be due to invalid IL or missing references) //IL_0279: Unknown result type (might be due to invalid IL or missing references) if (m_Registered | (m_ParentRoom == null && !OnlyCheckWallsPits) | Dungeon.IsGenerating | (GameManager.HasInstance & GameManager.Instance.IsLoadingLevel)) { return; } m_Registered = true; IntVector2 val = Vector2Extensions.ToIntVector2(Vector3Extensions.XY(((BraveBehaviour)this).transform.position), (VectorConversions)0); Vector3 val2 = ((BraveBehaviour)this).transform.position; if (DestroyIfNearPit && (GameManager.Instance.Dungeon.data.isPit(val.x, val.y) | GameManager.Instance.Dungeon.data.isPit(val.x, val.y + 1) | GameManager.Instance.Dungeon.data.isPit(val.x + 1, val.y) | GameManager.Instance.Dungeon.data.isPit(val.x + 1, val.y + 1))) { Object.Destroy((Object)(object)((Component)this).gameObject); return; } if (CorrectForWalls && GameManager.HasInstance && Object.op_Implicit((Object)(object)GameManager.Instance.Dungeon)) { bool flag = GameManager.Instance.Dungeon.data.isFaceWallLower(val.x, val.y) | GameManager.Instance.Dungeon.data.isFaceWallLower(val.x, val.y + 1); bool flag2 = GameManager.Instance.Dungeon.data.isLeftSideWall(val.x, val.y) | GameManager.Instance.Dungeon.data.isLeftSideWall(val.x - 1, val.y); bool num = GameManager.Instance.Dungeon.data.isRightSideWall(val.x, val.y) | GameManager.Instance.Dungeon.data.isRightSideWall(val.x + 1, val.y); if (flag && NorthWallOffset != 0f) { val2 -= new Vector3(0f, NorthWallOffset, 0f); } if (flag2 && WestWallOffset != 0f) { val2 += new Vector3(WestWallOffset, 0f, 0f); } if (num && EastWallOffset != 0f) { val2 -= new Vector3(EastWallOffset, 0f, 0f); } if (val2 != ((BraveBehaviour)this).transform.position) { ((BraveBehaviour)this).transform.position = val2; if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).specRigidbody)) { ((BraveBehaviour)this).specRigidbody.Reinitialize(); } } } if (!OnlyCheckWallsPits && ParentInteractible != null && !m_ParentRoom.IsRegistered(ParentInteractible) && !RoomHandler.unassignedInteractableObjects.Contains(ParentInteractible)) { m_ParentRoom.RegisterInteractable(ParentInteractible); } Object.Destroy((Object)(object)this); } } public class ExpandBalloonController : BraveBehaviour { public string PopAnimationName; public GameActor AttachTarget; public GameObject AlternateAttachTarget; public PlayerController BlankOwner; public bool DestroyOnDeath; public bool IsUsingGameObjectTarget; public bool DoDetachAndFloatAfterTargetDeath; public bool DoBlankOnPop; public bool PopsOnProjectileHit; [NonSerialized] public bool IsBeingDestroyed; public Vector3 BalloonOffset; public float BalloonFloatHeight; public float BalloonFloatHorizontalOffset; public float BalloonStringZHeight; public float FloatUpOnDeathSpeed; public float BlankChance; public tk2dBaseSprite BalloonSprite; public tk2dSprite AltTargetSprite; [NonSerialized] public ExpandClownKinBalloonManager ParentClownkinController; [NonSerialized] public ClownFriend ParentClownFriendItem; [NonSerialized] public SpeculativeRigidbody BalloonRigidBody; [NonSerialized] public GameObject BlankVFXPrefab; private GameObject m_BalloonString; private bool m_IsDetachedFromOriginalTarget; private bool m_Inactive; private Vector2 m_currentOffset; private Vector3[] m_vertices; private Vector3? m_stringTargetAnchorPoint; private Vector3? m_stringBalloonAnchorPoint; private List m_BalloonPopSoundNames; private Mesh m_mesh; private MeshFilter m_stringFilter; public ExpandBalloonController() { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) PopAnimationName = "pop"; DestroyOnDeath = false; BalloonOffset = new Vector3(1f, 2f); BalloonFloatHeight = 2.5f; BalloonStringZHeight = -3f; BalloonFloatHorizontalOffset = 1f; IsUsingGameObjectTarget = false; DoDetachAndFloatAfterTargetDeath = true; DoBlankOnPop = false; PopsOnProjectileHit = false; BlankChance = 0.6f; FloatUpOnDeathSpeed = 2f; m_BalloonPopSoundNames = new List { "Play_EX_BalloonPop_01", "Play_EX_BalloonPop_02", "Play_EX_BalloonPop_03" }; m_IsDetachedFromOriginalTarget = false; IsBeingDestroyed = false; m_Inactive = false; } public void Initialize(GameActor target) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: 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_0057: Expected O, but got Unknown //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Expected O, but got Unknown //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_015f: 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_028e: Unknown result type (might be due to invalid IL or missing references) //IL_029a: 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_02d0: Expected O, but got Unknown //IL_02d0: Unknown result type (might be due to invalid IL or missing references) //IL_02da: Expected O, but got Unknown if (!Object.op_Implicit((Object)(object)ParentClownkinController) && !Object.op_Implicit((Object)(object)ParentClownFriendItem)) { return; } AttachTarget = target; m_currentOffset = Vector2.op_Implicit(BalloonOffset); if (!Object.op_Implicit((Object)(object)BalloonSprite)) { BalloonSprite = ((BraveBehaviour)this).sprite; } m_mesh = new Mesh(); m_vertices = (Vector3[])(object)new Vector3[20]; m_mesh.vertices = m_vertices; int[] array = new int[54]; Vector2[] uv = (Vector2[])(object)new Vector2[20]; int num = 0; for (int i = 0; i < 9; i++) { array[i * 6] = num; array[i * 6 + 1] = num + 2; array[i * 6 + 2] = num + 1; array[i * 6 + 3] = num + 2; array[i * 6 + 4] = num + 3; array[i * 6 + 5] = num + 1; num += 2; } m_mesh.triangles = array; m_mesh.uv = uv; m_BalloonString = new GameObject("balloon string"); m_stringFilter = m_BalloonString.AddComponent(); ? val = m_BalloonString.AddComponent(); Object obj = BraveResources.Load("Global VFX/WhiteMaterial", ".mat"); ((Renderer)val).material = (Material)(object)((obj is Material) ? obj : null); m_stringFilter.mesh = m_mesh; ((BraveBehaviour)this).transform.position = ((BraveBehaviour)AttachTarget).transform.position + Vector2Extensions.ToVector3ZisY(m_currentOffset, -3f); if (BlankChance != -1f && Random.value <= BlankChance) { DoBlankOnPop = false; } if (DoBlankOnPop && !Object.op_Implicit((Object)(object)BlankOwner) && Object.op_Implicit((Object)(object)ParentClownkinController)) { if (!ParentClownkinController.IsSingleBalloon) { if (Object.op_Implicit((Object)(object)GameManager.Instance.SecondaryPlayer) && GameManager.Instance.SecondaryPlayer.HasPassiveItem(ClownBullets.ClownBulletsID)) { BlankOwner = GameManager.Instance.SecondaryPlayer; } else if (DoBlankOnPop && Object.op_Implicit((Object)(object)GameManager.Instance.PrimaryPlayer)) { BlankOwner = GameManager.Instance.PrimaryPlayer; } } } else if (DoBlankOnPop && !Object.op_Implicit((Object)(object)BlankOwner) && Object.op_Implicit((Object)(object)ParentClownFriendItem) && Object.op_Implicit((Object)(object)((PassiveItem)ParentClownFriendItem).Owner)) { BlankOwner = ((PassiveItem)ParentClownFriendItem).Owner; } if (PopsOnProjectileHit) { BalloonRigidBody = ExpandUtility.GenerateOrAddToRigidBody(((Component)this).gameObject, (CollisionLayer)15, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: false, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(15, 17), (IntVector2?)new IntVector2(1, 3)); BalloonRigidBody.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Combine((Delegate?)(object)BalloonRigidBody.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(OnPreRigidBodyCollision)); } } public void Initialize(GameObject target) { //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_0047: 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_007a: Expected O, but got Unknown //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Expected O, but got Unknown //IL_0172: 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_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) AlternateAttachTarget = target; if (Object.op_Implicit((Object)(object)AttachTarget)) { AttachTarget = null; } if (!Object.op_Implicit((Object)(object)BalloonSprite)) { BalloonSprite = ((BraveBehaviour)this).sprite; } IsUsingGameObjectTarget = true; m_currentOffset = Vector2.op_Implicit(BalloonOffset); if (Object.op_Implicit((Object)(object)AlternateAttachTarget.GetComponent())) { AltTargetSprite = AlternateAttachTarget.GetComponent(); } m_mesh = new Mesh(); m_vertices = (Vector3[])(object)new Vector3[20]; m_mesh.vertices = m_vertices; int[] array = new int[54]; Vector2[] uv = (Vector2[])(object)new Vector2[20]; int num = 0; for (int i = 0; i < 9; i++) { array[i * 6] = num; array[i * 6 + 1] = num + 2; array[i * 6 + 2] = num + 1; array[i * 6 + 3] = num + 2; array[i * 6 + 4] = num + 3; array[i * 6 + 5] = num + 1; num += 2; } m_mesh.triangles = array; m_mesh.uv = uv; m_BalloonString = new GameObject("balloon string"); m_stringFilter = m_BalloonString.AddComponent(); ? val = m_BalloonString.AddComponent(); Object obj = BraveResources.Load("Global VFX/WhiteMaterial", ".mat"); ((Renderer)val).material = (Material)(object)((obj is Material) ? obj : null); m_stringFilter.mesh = m_mesh; ((BraveBehaviour)this).transform.position = AlternateAttachTarget.transform.position + Vector2Extensions.ToVector3ZisY(m_currentOffset, -3f); } public void OnPreRigidBodyCollision(SpeculativeRigidbody myRigidbody, PixelCollider myPixelCollider, SpeculativeRigidbody otherRigidbody, PixelCollider otherPixelCollider) { Projectile projectile = ((BraveBehaviour)otherRigidbody).projectile; if (Object.op_Implicit((Object)(object)projectile) && Object.op_Implicit((Object)(object)projectile.Owner) && projectile.Owner is AIActor && !Object.op_Implicit((Object)(object)((Component)projectile.Owner).gameObject.GetComponent())) { ExpandBalloonController component = ((Component)myRigidbody).gameObject.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { return; } if (Object.op_Implicit((Object)(object)ParentClownkinController)) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)component.ParentClownkinController).aiActor) && Object.op_Implicit((Object)(object)((BraveBehaviour)component.ParentClownkinController).aiActor.CompanionOwner)) { BlankOwner = ((BraveBehaviour)component.ParentClownkinController).aiActor.CompanionOwner; } component.ParentClownkinController.SingleBalloonWasPopped = true; } else if (Object.op_Implicit((Object)(object)ParentClownFriendItem)) { if (Object.op_Implicit((Object)(object)((PassiveItem)ParentClownFriendItem).Owner)) { BlankOwner = ((PassiveItem)ParentClownFriendItem).Owner; } ParentClownFriendItem.BalloonWasPopped = true; } component.IsBeingDestroyed = true; } else { PhysicsEngine.SkipCollision = true; } } private IEnumerator HandleFloatAndPop(GameObject target) { GameObjectExtensions.SetLayerRecursively(((Component)this).gameObject, LayerMask.NameToLayer("Unoccluded")); GameObjectExtensions.SetLayerRecursively(target, LayerMask.NameToLayer("Unoccluded")); GameObjectExtensions.SetLayerRecursively(m_BalloonString, LayerMask.NameToLayer("Unoccluded")); float elapsed = 0f; Vector2 startOffset = TransformExtensions.PositionVector2(target.transform); Vector2 HeighestPointPosition = startOffset + new Vector2((float)Random.Range(-1, 1), (float)Random.Range(5, 10)); while (elapsed < FloatUpOnDeathSpeed) { elapsed += BraveTime.DeltaTime; target.transform.position = Vector2.op_Implicit(Vector2.Lerp(startOffset, HeighestPointPosition, elapsed / FloatUpOnDeathSpeed)); yield return null; } IsBeingDestroyed = true; } private void LateUpdate() { //IL_0344: 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_0255: 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_026b: Unknown result type (might be due to invalid IL or missing references) //IL_0271: Unknown result type (might be due to invalid IL or missing references) //IL_027c: Unknown result type (might be due to invalid IL or missing references) //IL_0281: Unknown result type (might be due to invalid IL or missing references) //IL_029c: Unknown result type (might be due to invalid IL or missing references) //IL_02a7: Unknown result type (might be due to invalid IL or missing references) //IL_02ac: Unknown result type (might be due to invalid IL or missing references) //IL_02af: Unknown result type (might be due to invalid IL or missing references) //IL_02c9: Unknown result type (might be due to invalid IL or missing references) //IL_02ce: Unknown result type (might be due to invalid IL or missing references) //IL_043b: Unknown result type (might be due to invalid IL or missing references) //IL_0441: Unknown result type (might be due to invalid IL or missing references) //IL_044c: Unknown result type (might be due to invalid IL or missing references) //IL_0451: Unknown result type (might be due to invalid IL or missing references) //IL_0467: Unknown result type (might be due to invalid IL or missing references) //IL_046c: Unknown result type (might be due to invalid IL or missing references) //IL_03d8: Unknown result type (might be due to invalid IL or missing references) //IL_03de: Unknown result type (might be due to invalid IL or missing references) //IL_03e9: Unknown result type (might be due to invalid IL or missing references) //IL_03ee: Unknown result type (might be due to invalid IL or missing references) //IL_0409: Unknown result type (might be due to invalid IL or missing references) //IL_0378: Unknown result type (might be due to invalid IL or missing references) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0388: Unknown result type (might be due to invalid IL or missing references) //IL_0393: Unknown result type (might be due to invalid IL or missing references) //IL_0398: Unknown result type (might be due to invalid IL or missing references) //IL_03ae: Unknown result type (might be due to invalid IL or missing references) //IL_03b8: Unknown result type (might be due to invalid IL or missing references) //IL_0569: Unknown result type (might be due to invalid IL or missing references) //IL_0574: Unknown result type (might be due to invalid IL or missing references) //IL_0595: Unknown result type (might be due to invalid IL or missing references) //IL_0537: Unknown result type (might be due to invalid IL or missing references) //IL_054c: Unknown result type (might be due to invalid IL or missing references) //IL_0551: Unknown result type (might be due to invalid IL or missing references) //IL_04fb: Unknown result type (might be due to invalid IL or missing references) //IL_0506: Unknown result type (might be due to invalid IL or missing references) //IL_05d4: Unknown result type (might be due to invalid IL or missing references) //IL_05d9: Unknown result type (might be due to invalid IL or missing references) //IL_05e4: Unknown result type (might be due to invalid IL or missing references) //IL_05e9: Unknown result type (might be due to invalid IL or missing references) //IL_05f4: Unknown result type (might be due to invalid IL or missing references) //IL_0603: Unknown result type (might be due to invalid IL or missing references) //IL_0608: Unknown result type (might be due to invalid IL or missing references) //IL_0613: Unknown result type (might be due to invalid IL or missing references) //IL_04c5: Unknown result type (might be due to invalid IL or missing references) //IL_04ca: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01c5: Expected O, but got Unknown //IL_01d6: Unknown result type (might be due to invalid IL or missing references) //IL_01e1: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Unknown result type (might be due to invalid IL or missing references) //IL_01f1: Unknown result type (might be due to invalid IL or missing references) //IL_01f6: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_0213: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Unknown result type (might be due to invalid IL or missing references) if (m_Inactive) { return; } if (IsBeingDestroyed) { IsBeingDestroyed = false; m_Inactive = true; if (Object.op_Implicit((Object)(object)AlternateAttachTarget)) { Object.Destroy((Object)(object)AlternateAttachTarget); } Object.Destroy((Object)(object)m_BalloonString); if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).spriteAnimator)) { m_BalloonPopSoundNames = BraveUtility.Shuffle(m_BalloonPopSoundNames); AkSoundEngine.PostEvent(BraveUtility.RandomElement(m_BalloonPopSoundNames), ((Component)this).gameObject); if (DoBlankOnPop && Object.op_Implicit((Object)(object)BlankOwner)) { HandleBalloonPopBlank(BlankOwner); } ((BraveBehaviour)this).spriteAnimator.PlayAndDestroyObject(PopAnimationName, (Action)null); } else { Object.Destroy((Object)(object)((Component)this).gameObject); } return; } float num = 2f; Bounds bounds; if (!IsUsingGameObjectTarget && DoDetachAndFloatAfterTargetDeath && Object.op_Implicit((Object)(object)AttachTarget) && AttachTarget is AIActor && (!Object.op_Implicit((Object)(object)AttachTarget) || ((BraveBehaviour)AttachTarget).healthHaver.IsDead)) { if (DestroyOnDeath) { m_Inactive = true; if (Object.op_Implicit((Object)(object)AlternateAttachTarget)) { Object.Destroy((Object)(object)AlternateAttachTarget); } Object.Destroy((Object)(object)m_BalloonString); Object.Destroy((Object)(object)((Component)this).gameObject); } else if (!m_IsDetachedFromOriginalTarget) { m_IsDetachedFromOriginalTarget = true; AttachTarget = null; if (Object.op_Implicit((Object)(object)AlternateAttachTarget)) { Object.Destroy((Object)(object)AlternateAttachTarget); } if (!Object.op_Implicit((Object)(object)AlternateAttachTarget)) { AlternateAttachTarget = new GameObject { name = "Balloon Temp Object - " + Guid.NewGuid() }; Transform transform = AlternateAttachTarget.transform; Vector3 val = ((BraveBehaviour)this).transform.position - new Vector3(0f, num); bounds = BalloonSprite.GetBounds(); transform.position = val + new Vector3(((Bounds)(ref bounds)).size.x / 2f, 0f, 0f); IsUsingGameObjectTarget = true; } ((MonoBehaviour)this).StartCoroutine(HandleFloatAndPop(AlternateAttachTarget)); } return; } if (m_IsDetachedFromOriginalTarget) { num = 3f; m_currentOffset = new Vector2(0f, num); m_stringBalloonAnchorPoint = AlternateAttachTarget.transform.position + Vector2Extensions.ToVector3ZisY(m_currentOffset, BalloonStringZHeight); Vector3 position = AlternateAttachTarget.transform.position; bounds = BalloonSprite.GetBounds(); m_stringTargetAnchorPoint = position + new Vector3(((Bounds)(ref bounds)).size.x / 2f, 0f, 0f); } else { m_currentOffset = new Vector2(Mathf.Lerp(BalloonFloatHorizontalOffset - 0.5f, BalloonFloatHorizontalOffset, Mathf.PingPong(Time.realtimeSinceStartup, 3f) / 3f), Mathf.Lerp(BalloonFloatHeight - 1f + 0.33f, BalloonFloatHeight, Mathf.PingPong(Time.realtimeSinceStartup / 1.75f, 3f) / 3f)); } if (IsUsingGameObjectTarget && !m_IsDetachedFromOriginalTarget) { if (Object.op_Implicit((Object)(object)AltTargetSprite)) { m_stringBalloonAnchorPoint = Vector2Extensions.ToVector3ZUp(((tk2dBaseSprite)AltTargetSprite).WorldCenter, 0f) + Vector2Extensions.ToVector3ZisY(m_currentOffset, BalloonStringZHeight); m_stringTargetAnchorPoint = Vector2Extensions.ToVector3ZUp(((tk2dBaseSprite)AltTargetSprite).WorldCenter, 0f); } else { m_stringBalloonAnchorPoint = AlternateAttachTarget.transform.position + Vector2Extensions.ToVector3ZisY(m_currentOffset, BalloonStringZHeight); m_stringTargetAnchorPoint = AlternateAttachTarget.transform.position; } } else if (Object.op_Implicit((Object)(object)AttachTarget) && !m_IsDetachedFromOriginalTarget) { m_stringBalloonAnchorPoint = ((BraveBehaviour)AttachTarget).transform.position + Vector2Extensions.ToVector3ZisY(m_currentOffset, BalloonStringZHeight); m_stringTargetAnchorPoint = Vector2.op_Implicit(AttachTarget.CenterPosition); } if (!m_IsDetachedFromOriginalTarget) { if (Object.op_Implicit((Object)(object)AttachTarget) && AttachTarget is PlayerController) { GameActor attachTarget = AttachTarget; PlayerHandController primaryHand = ((PlayerController)((attachTarget is PlayerController) ? attachTarget : null)).primaryHand; if (((BraveBehaviour)primaryHand).renderer.enabled) { m_stringTargetAnchorPoint = Vector2.op_Implicit(((BraveBehaviour)primaryHand).sprite.WorldCenter); } } if (!m_stringBalloonAnchorPoint.HasValue) { IsBeingDestroyed = true; m_IsDetachedFromOriginalTarget = true; return; } num = Vector3.Distance(((BraveBehaviour)this).transform.position, m_stringBalloonAnchorPoint.Value); } if (m_IsDetachedFromOriginalTarget && Object.op_Implicit((Object)(object)AlternateAttachTarget)) { ((BraveBehaviour)this).transform.position = AlternateAttachTarget.transform.position + new Vector3(0f, m_currentOffset.y); } else { ((BraveBehaviour)this).transform.position = Vector3.MoveTowards(((BraveBehaviour)this).transform.position, m_stringBalloonAnchorPoint.Value, BraveMathCollege.UnboundedLerp(1f, 10f, num / 3f) * BraveTime.DeltaTime); } if (!m_stringTargetAnchorPoint.HasValue | !m_stringBalloonAnchorPoint.HasValue) { IsBeingDestroyed = true; m_IsDetachedFromOriginalTarget = true; return; } BuildMeshAlongCurve(Vector2.op_Implicit(m_stringTargetAnchorPoint.Value), Vector2.op_Implicit(m_stringTargetAnchorPoint.Value), BalloonSprite.WorldBottomCenter - new Vector2(0f, 2f), BalloonSprite.WorldBottomCenter); m_mesh.vertices = m_vertices; m_mesh.RecalculateBounds(); m_mesh.RecalculateNormals(); if (Object.op_Implicit((Object)(object)BalloonRigidBody)) { BalloonRigidBody.UpdateColliderPositions(); BalloonRigidBody.Reinitialize(); } if (!IsUsingGameObjectTarget && !DoDetachAndFloatAfterTargetDeath && DestroyOnDeath && (!Object.op_Implicit((Object)(object)AttachTarget) || ((BraveBehaviour)AttachTarget).healthHaver.IsDead)) { Object.Destroy((Object)(object)m_BalloonString); Object.Destroy((Object)(object)((Component)this).gameObject); } } private void BuildMeshAlongCurve(Vector2 p0, Vector2 p1, Vector2 p2, Vector2 p3, float meshWidth = 1f / 32f) { //IL_001e: 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_0020: 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_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0042: 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_0044: 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_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0058: 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_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_0099: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: 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_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0116: 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_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0124: 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_0130: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0146: 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_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) Vector3[] vertices = m_vertices; Vector2? val = null; for (int i = 0; i < 10; i++) { Vector2 val2 = BraveMathCollege.CalculateBezierPoint((float)i / 9f, p0, p1, p2, p3); Vector2? val3 = ((i != 9) ? new Vector2?(BraveMathCollege.CalculateBezierPoint((float)i / 9f, p0, p1, p2, p3)) : null); Vector2 val4 = Vector2.zero; Vector2 val6; if (val.HasValue) { Vector2 val5 = val4; val6 = Vector3Extensions.XY(Quaternion.Euler(0f, 0f, 90f) * Vector2.op_Implicit(val2 - val.Value)); val4 = val5 + ((Vector2)(ref val6)).normalized; } if (val3.HasValue) { Vector2 val7 = val4; val6 = Vector3Extensions.XY(Quaternion.Euler(0f, 0f, 90f) * Vector2.op_Implicit(val3.Value - val2)); val4 = val7 + ((Vector2)(ref val6)).normalized; } val4 = ((Vector2)(ref val4)).normalized; vertices[i * 2] = Vector2Extensions.ToVector3ZisY(val2 + val4 * meshWidth, 0f); vertices[i * 2 + 1] = Vector2Extensions.ToVector3ZisY(val2 + -val4 * meshWidth, 0f); val = val2; } } protected void HandleBalloonPopBlank(PlayerController arg1) { //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_00a1: 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_00c3: Unknown result type (might be due to invalid IL or missing references) if (PopsOnProjectileHit) { float num = 0.25f; Vector2? val = BalloonSprite.WorldCenter; if (!val.HasValue && Object.op_Implicit((Object)(object)BalloonRigidBody)) { val = BalloonRigidBody.UnitCenter; } else if (!val.HasValue && Object.op_Implicit((Object)(object)BalloonRigidBody)) { return; } if (!Object.op_Implicit((Object)(object)BlankVFXPrefab)) { BlankVFXPrefab = BraveResources.Load("Global VFX/BlankVFX_Ghost", ".prefab"); } AkSoundEngine.PostEvent("Play_OBJ_silenceblank_small_01", ((Component)this).gameObject); GameObject val2 = new GameObject("silencer"); val2.transform.position = ((Component)this).gameObject.transform.position; val2.AddComponent().TriggerSilencer(val.Value, 20f, 6f, BlankVFXPrefab, 0f, 3f, 3f, 3f, 30f, 3f, num, arg1, true, false); } else { arg1.ForceBlank(25f, 0.5f, false, true, (Vector2?)BalloonSprite.WorldCenter, true, -1f); } } protected override void OnDestroy() { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Expected O, but got Unknown //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Expected O, but got Unknown if (Object.op_Implicit((Object)(object)BalloonRigidBody)) { BalloonRigidBody.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Remove((Delegate?)(object)BalloonRigidBody.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(OnPreRigidBodyCollision)); } if (Object.op_Implicit((Object)(object)m_stringFilter)) { Object.Destroy((Object)(object)((Component)m_stringFilter).gameObject); } ((BraveBehaviour)this).OnDestroy(); } } [RequireComponent(typeof(GenericIntroDoer))] public class ExpandBulletManBossIntroDoer : SpecificIntroDoer { public string BossFlipAnimation; public List TargetTables; public bool DoTableFlips; public bool FlipAllTables; public bool FlipDirectionIsRandom; public float PreFlipDelay; public float PostFlipDelay; public List FlipDirections; private Direction m_FlipDirection; private AIActor m_AIActor; private RoomHandler m_room; private bool m_IsFinished; public override bool IsIntroFinished => m_IsFinished; public ExpandBulletManBossIntroDoer() { //IL_005a: Unknown result type (might be due to invalid IL or missing references) BossFlipAnimation = "cover_leap_left"; TargetTables = new List(); DoTableFlips = true; FlipAllTables = false; FlipDirectionIsRandom = false; FlipDirections = new List { (Direction)6, (Direction)2, (Direction)4, (Direction)0 }; m_FlipDirection = (Direction)4; m_IsFinished = false; PreFlipDelay = 1f; PostFlipDelay = 0.5f; } public void ScanForTables() { //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Invalid comparison between Unknown and I4 if ((m_room == null) | !Object.op_Implicit((Object)(object)m_room.hierarchyParent) | (m_room.hierarchyParent.childCount == 0)) { DoTableFlips = false; return; } int childCount = m_room.hierarchyParent.childCount; for (int i = 0; i < childCount; i++) { Transform child = m_room.hierarchyParent.GetChild(i); if (!Object.op_Implicit((Object)(object)child)) { continue; } GameObject gameObject = ((Component)child).gameObject; if (Object.op_Implicit((Object)(object)((gameObject != null) ? gameObject.GetComponent() : null))) { FlippableCover component = ((Component)child).gameObject.GetComponent(); if (!component.IsBroken && !component.IsFlipped && (int)component.flipStyle != 3) { TargetTables.Add(((Component)child).gameObject.GetComponent()); } if (!FlipAllTables) { break; } } } if (TargetTables.Count <= 0) { DoTableFlips = false; } } public void Start() { //IL_0042: 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_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) m_AIActor = ((BraveBehaviour)this).aiActor; m_room = ((BraveBehaviour)this).aiActor.ParentRoom; GameManager instance = GameManager.Instance; if (instance != null && instance.Dungeon?.tileIndices.tilesetId == (ValidTilesets?)1024) { ((BraveBehaviour)this).aiActor.AdditionalSafeItemDrops = new List { PickupObjectDatabase.GetById(727) }; } } public override void PlayerWalkedIn(PlayerController player, List animators) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) ((BraveBehaviour)m_AIActor).aiShooter.AimAtPoint(((GameActor)m_AIActor).CenterPosition + new Vector2(-2f, 0.35f)); } public override void StartIntro(List animators) { ScanForTables(); if (DoTableFlips) { ((MonoBehaviour)this).StartCoroutine(FlipTables()); } else { m_IsFinished = true; } } private IEnumerator FlipTables() { if (PreFlipDelay > 0f) { yield return ((MonoBehaviour)this).StartCoroutine(((SpecificIntroDoer)this).TimeInvariantWait(PreFlipDelay)); } _ = m_FlipDirection; foreach (FlippableCover table in TargetTables) { if (table.IsBroken || table.IsFlipped || (int)table.flipStyle == 3) { continue; } Direction val; if (FlipDirectionIsRandom) { FlipDirections = BraveUtility.Shuffle(FlipDirections); val = BraveUtility.RandomElement(FlipDirections); } else { val = table.GetFlipDirection(((BraveBehaviour)this).specRigidbody); } if (!string.IsNullOrEmpty(BossFlipAnimation)) { ((BraveBehaviour)m_AIActor).spriteAnimator.Play(BossFlipAnimation); } if (FlipDirectionIsRandom) { table.Flip(val); } else { table.Flip(((BraveBehaviour)this).specRigidbody); } string m_FlipAnimation = GetTableFlipAnimName(table.flipAnimation, val); while (!((BraveBehaviour)table).spriteAnimator.IsPlaying(m_FlipAnimation)) { yield return null; } for (float elapsed = 0f; elapsed < 2f; elapsed += GameManager.INVARIANT_DELTA_TIME) { ((BraveBehaviour)table).spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME); if (!((BraveBehaviour)table).spriteAnimator.IsPlaying(m_FlipAnimation)) { break; } yield return null; } while (!table.IsFlipped) { yield return null; } if (!FlipAllTables) { break; } } if (PostFlipDelay > 0f) { yield return ((MonoBehaviour)this).StartCoroutine(((SpecificIntroDoer)this).TimeInvariantWait(PostFlipDelay)); } m_IsFinished = true; } private string GetTableFlipAnimName(string name, Direction dir) { if (name.Contains("{0}")) { return string.Format(name, ((object)(Direction)(ref dir)).ToString().ToLower()); } return name; } protected override void OnDestroy() { ((SpecificIntroDoer)this).OnDestroy(); } } public class ExpandCasinoGameController : DungeonPlaceableBehaviour, IPlayerInteractable, IPlaceConfigurable { public enum Mode { LockedGame, PunchoutArcade, SlotMachine, ItemGunBallMachine } private enum AnimationState { SwitchingAnimation, Idle, Sleep, Locked } public bool GameRewardOnAnimationEvent; public string GameRewardAnimationEventName; public string displayTextKey; public string disabledDisplayTextKey; public string lockedDisplayTextKey; public string acceptOptionKey; public string declineOptionKey; public string insufficientFundsDeclineOptionKey; public string insufficientFundsKey; public string basicLeaveKey; public string IdleAnimation; public string InteractAnimation; public string ActivateGameAnimation; public string LockedAnimation; public string SleepAnimation; public string SleepFrame; public string WonAnimation; public string LostAnimation; public string LockedSpriteFrame; public Vector3 textBoxOffset; public int MaxUses; public int Cost; public Mode mode; [NonSerialized] public bool DoingResults; [NonSerialized] public bool ResultsGiven; [NonSerialized] public bool Finished; [NonSerialized] private AnimationState animationState; [NonSerialized] private bool m_Interacted; [NonSerialized] private int m_Uses; [NonSerialized] private string m_NewAnimation; [NonSerialized] private string m_CurrentAnimation; [NonSerialized] private RoomHandler m_ParentRoom; [NonSerialized] private ExpandPunchoutArcadeController m_PunchoutArcadeController; [NonSerialized] private PlayerController m_CurrentPlayer; public ExpandCasinoGameController() { //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) GameRewardOnAnimationEvent = false; GameRewardAnimationEventName = "itempop"; MaxUses = 1; Cost = 100; mode = Mode.PunchoutArcade; textBoxOffset = new Vector3(1f, 3.8f); displayTextKey = "It's a punchout arcade game featuring the Resourceful Rat."; disabledDisplayTextKey = "It's a punchout arcade game featuring the Resourceful Rat.\nIt appears to be out of order however."; lockedDisplayTextKey = "There is something under the covers.\nIt doesn't appear to be ready yet..."; acceptOptionKey = "Spend 100 Hegemony Credits and play the game."; declineOptionKey = "You got better things to spend money on and decide to leave."; insufficientFundsDeclineOptionKey = "Too broke to play this game so leaving is the only option."; insufficientFundsKey = "It's a punchout arcade game featuring the Resourceful Rat.\nIt costs 100 Hegemony to play but you lack the funds!"; basicLeaveKey = "Leave..."; IdleAnimation = "idle"; InteractAnimation = "interact"; ActivateGameAnimation = "fight"; SleepAnimation = "sleep"; SleepFrame = string.Empty; WonAnimation = string.Empty; LostAnimation = string.Empty; LockedSpriteFrame = "cabinet_covered_001"; LockedAnimation = string.Empty; animationState = AnimationState.Idle; DoingResults = false; ResultsGiven = false; Finished = false; m_Interacted = false; m_Uses = 0; } private void Awake() { Mode mode = this.mode; if (mode == Mode.ItemGunBallMachine) { ((BraveBehaviour)this).spriteAnimator.AnimationEventTriggered = (Action)Delegate.Combine(((BraveBehaviour)this).spriteAnimator.AnimationEventTriggered, new Action(AnimationEventTriggered)); } } private void AnimationEventTriggered(tk2dSpriteAnimator animator, tk2dSpriteAnimationClip clip, int frame) { if (clip.GetFrame(frame).eventInfo == GameRewardAnimationEventName) { Mode mode = this.mode; if (mode == Mode.ItemGunBallMachine) { DoGunBallRoll(m_CurrentPlayer); } } } public void Interact(PlayerController interactor) { if (m_Interacted) { return; } m_CurrentPlayer = interactor; m_Interacted = true; switch (mode) { case Mode.LockedGame: ((MonoBehaviour)this).StartCoroutine(HandleConversation(interactor)); break; case Mode.PunchoutArcade: if (!string.IsNullOrEmpty(InteractAnimation) && animationState != AnimationState.Sleep && animationState != AnimationState.Locked) { m_NewAnimation = InteractAnimation; animationState = AnimationState.SwitchingAnimation; } ((MonoBehaviour)this).StartCoroutine(HandleConversation(interactor)); break; case Mode.ItemGunBallMachine: if (!string.IsNullOrEmpty(InteractAnimation) && animationState != AnimationState.Sleep && animationState != AnimationState.Locked) { m_NewAnimation = InteractAnimation; animationState = AnimationState.SwitchingAnimation; } ((MonoBehaviour)this).StartCoroutine(HandleConversation(interactor)); break; default: ((MonoBehaviour)this).StartCoroutine(HandleConversation(interactor, "MODE NOT IMPLEMENTED YET")); break; } } private IEnumerator HandleConversation(PlayerController interactor, string ResultsStringKey = null) { if (!Object.op_Implicit((Object)(object)interactor)) { yield break; } string targetDisplayKey2 = displayTextKey; bool IsGameOverConversation = false; if (!string.IsNullOrEmpty(ResultsStringKey)) { IsGameOverConversation = true; targetDisplayKey2 = ResultsStringKey; } int num = default(int); switch (mode) { case Mode.LockedGame: targetDisplayKey2 = lockedDisplayTextKey; TextBoxManager.ShowTextBox(((BraveBehaviour)interactor).transform.position + textBoxOffset, ((BraveBehaviour)interactor).transform, -1f, targetDisplayKey2, "", true, (BoxSlideOrientation)1, false, false); interactor.SetInputOverride("gameConversation"); GameUIRoot.Instance.DisplayPlayerConversationOptions(interactor, (TalkModule)null, basicLeaveKey, string.Empty); yield return null; while (!GameUIRoot.Instance.GetPlayerConversationResponse(ref num)) { yield return null; } TextBoxManager.ClearTextBox(((BraveBehaviour)interactor).transform); m_Interacted = false; yield return null; interactor.ClearInputOverride("gameConversation"); break; case Mode.PunchoutArcade: { bool IsBroke = false; if (!IsGameOverConversation && GameStatsManager.Instance.GetPlayerStatValue((TrackedStats)25) < (float)Cost) { targetDisplayKey2 = insufficientFundsKey; IsBroke = true; } if (m_Uses >= MaxUses && !IsGameOverConversation) { targetDisplayKey2 = disabledDisplayTextKey; } TextBoxManager.ShowTextBox(((BraveBehaviour)interactor).transform.position + textBoxOffset, ((BraveBehaviour)interactor).transform, -1f, targetDisplayKey2, "", true, (BoxSlideOrientation)1, false, false); interactor.SetInputOverride("gameConversation"); if (m_Uses < MaxUses && GameStatsManager.Instance.GetPlayerStatValue((TrackedStats)25) >= (float)Cost) { GameUIRoot.Instance.DisplayPlayerConversationOptions(interactor, (TalkModule)null, acceptOptionKey, declineOptionKey); } else { if (m_Uses >= MaxUses && !IsGameOverConversation) { GameUIRoot.Instance.DisplayPlayerConversationOptions(interactor, (TalkModule)null, basicLeaveKey, string.Empty); } if (IsBroke || IsGameOverConversation) { string text = insufficientFundsDeclineOptionKey; if (IsGameOverConversation) { text = basicLeaveKey; if (ExpandPunchoutArcadeController.WonRatGame) { if (!string.IsNullOrEmpty(WonAnimation)) { m_NewAnimation = WonAnimation; animationState = AnimationState.SwitchingAnimation; } } else if (!string.IsNullOrEmpty(LostAnimation)) { m_NewAnimation = LostAnimation; animationState = AnimationState.SwitchingAnimation; } } GameUIRoot.Instance.DisplayPlayerConversationOptions(interactor, (TalkModule)null, text, string.Empty); } else if (IsBroke) { GameUIRoot.Instance.DisplayPlayerConversationOptions(interactor, (TalkModule)null, declineOptionKey, string.Empty); } } yield return null; while (!GameUIRoot.Instance.GetPlayerConversationResponse(ref num)) { yield return null; } TextBoxManager.ClearTextBox(((BraveBehaviour)interactor).transform); if (m_Uses < MaxUses && num == 0 && !IsBroke && !IsGameOverConversation) { if (!string.IsNullOrEmpty(ActivateGameAnimation)) { m_NewAnimation = ActivateGameAnimation; animationState = AnimationState.SwitchingAnimation; } while (animationState != AnimationState.Idle) { yield return null; } GameStatsManager.Instance.RegisterStatChange((TrackedStats)25, (float)(-Cost)); Pixelator.Instance.FadeToColor(1f, Color.black, false, 0f); yield return (object)new WaitForSeconds(1.5f); DoPunchoutGame(interactor); m_Uses++; break; } if (IsGameOverConversation && targetDisplayKey2 != "MODE NOT IMPLEMENTED YET") { if (ExpandPunchoutArcadeController.WonRatGame && Object.op_Implicit((Object)(object)m_PunchoutArcadeController)) { m_PunchoutArcadeController.MaybeGiveRewards(0.5f); } else if (!ExpandPunchoutArcadeController.WonRatGame) { AkSoundEngine.PostEvent("Play_OBJ_metronome_fail_01", ((Component)this).gameObject); } yield return (object)new WaitForSeconds(0.2f); ResultsGiven = true; GameManager.Instance.DungeonMusicController.EndVictoryMusic(); animationState = AnimationState.Sleep; } else { interactor.ClearInputOverride("gameConversation"); } ExpandSettings.PlayingPunchoutArcade = false; m_Interacted = false; break; } case Mode.SlotMachine: break; case Mode.ItemGunBallMachine: { bool IsBroke_Gumball = false; if (GameStatsManager.Instance.GetPlayerStatValue((TrackedStats)25) < (float)Cost) { targetDisplayKey2 = insufficientFundsKey; IsBroke_Gumball = true; } if (m_Uses >= MaxUses) { targetDisplayKey2 = disabledDisplayTextKey; } TextBoxManager.ShowTextBox(((BraveBehaviour)interactor).transform.position + textBoxOffset, ((BraveBehaviour)interactor).transform, -1f, targetDisplayKey2, "", true, (BoxSlideOrientation)1, false, false); interactor.SetInputOverride("gameConversation"); if (m_Uses < MaxUses && !IsBroke_Gumball) { GameUIRoot.Instance.DisplayPlayerConversationOptions(interactor, (TalkModule)null, acceptOptionKey, declineOptionKey); } else if (m_Uses >= MaxUses || IsBroke_Gumball) { GameUIRoot.Instance.DisplayPlayerConversationOptions(interactor, (TalkModule)null, basicLeaveKey, string.Empty); } yield return null; while (!GameUIRoot.Instance.GetPlayerConversationResponse(ref num)) { yield return null; } TextBoxManager.ClearTextBox(((BraveBehaviour)interactor).transform); if (m_Uses < MaxUses && num == 0 && !IsBroke_Gumball) { GameStatsManager.Instance.RegisterStatChange((TrackedStats)25, (float)(-Cost)); if (!string.IsNullOrEmpty(ActivateGameAnimation)) { m_NewAnimation = ActivateGameAnimation; animationState = AnimationState.SwitchingAnimation; } AkSoundEngine.PostEvent("Play_NPC_gunball_dispense_01", ((Component)this).gameObject); while (animationState != AnimationState.Idle) { yield return null; } m_Uses++; yield return null; if (m_Uses >= MaxUses) { animationState = AnimationState.Sleep; } } interactor.ClearInputOverride("gameConversation"); m_Interacted = false; break; } } } private void DoPunchoutGame(PlayerController player) { //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Expected O, but got Unknown //IL_004e: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)m_PunchoutArcadeController)) { Object.Destroy((Object)(object)((Component)m_PunchoutArcadeController).gameObject); m_PunchoutArcadeController = null; } GameObject val = new GameObject("EX Punchout Arcade Game", new Type[1] { typeof(ExpandPunchoutArcadeController) }); val.transform.position = ((BraveBehaviour)player).transform.position; m_PunchoutArcadeController = val.GetComponent(); m_PunchoutArcadeController.ParentGameController = this; m_PunchoutArcadeController.StartPunchout(player); } private void DoGunBallRoll(PlayerController player) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_01dd: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: Expected O, but got Unknown //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_020b: Unknown result type (might be due to invalid IL or missing references) //IL_0212: Expected O, but got Unknown //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Expected O, but got Unknown //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) if (Random.value < 0.7f) { ItemQuality val = (ItemQuality)((!(Random.value >= 0.2f)) ? 3 : (BraveUtility.RandomBool() ? 1 : 2)); if (Random.value < 0.2f) { val = (ItemQuality)((!(Random.value >= 0.2f)) ? 4 : ((!BraveUtility.RandomBool()) ? 3 : 2)); } else if (Random.value < 0.01f) { val = (ItemQuality)5; } GenericLootTable val2 = ((!BraveUtility.RandomBool()) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable); PickupObject itemOfTypeAndQuality = LootEngine.GetItemOfTypeAndQuality(val, val2, false); LootEngine.GivePrefabToPlayer(((Component)itemOfTypeAndQuality).gameObject, player); if (itemOfTypeAndQuality is Gun) { AkSoundEngine.PostEvent("Play_OBJ_weapon_pickup_01", ((Component)this).gameObject); } else { AkSoundEngine.PostEvent("Play_OBJ_item_pickup_01", ((Component)this).gameObject); } tk2dSprite component = Object.Instantiate((GameObject)ResourceCache.Acquire("Global VFX/VFX_Item_Pickup")).GetComponent(); ((tk2dBaseSprite)component).PlaceAtPositionByAnchor(Vector2.op_Implicit(((BraveBehaviour)player).sprite.WorldCenter), (Anchor)4); ((tk2dBaseSprite)component).HeightOffGround = -1.5f; ((tk2dBaseSprite)component).UpdateZDepth(); return; } switch (BraveUtility.RandomElement(BraveUtility.Shuffle(new List { "key", "bigwestkey", "casings", "armor", "blank" }))) { default: LootEngine.GivePrefabToPlayer(((Component)PickupObjectDatabase.GetById(67)).gameObject, player); break; case "key": LootEngine.GivePrefabToPlayer(((Component)PickupObjectDatabase.GetById(67)).gameObject, player); break; case "bigwestkey": LootEngine.GivePrefabToPlayer(ExpandKeyBulletPickup.OldKeyObject, player); break; case "casings": LootEngine.GivePrefabToPlayer(((Component)PickupObjectDatabase.GetById(74)).gameObject, player); break; case "armor": { HealthPickup val4 = (HealthPickup)PickupObjectDatabase.GetById(120); LootEngine.GivePrefabToPlayer(((Component)val4).gameObject, player); player.BloopItemAboveHead(((BraveBehaviour)val4).sprite, ""); break; } case "blank": { SilencerItem val3 = (SilencerItem)PickupObjectDatabase.GetById(224); LootEngine.GivePrefabToPlayer(((Component)val3).gameObject, player); player.BloopItemAboveHead(((BraveBehaviour)val3).sprite, ""); break; } } } public void ConfigureOnPlacement(RoomHandler room) { switch (mode) { case Mode.PunchoutArcade: if (!GameStatsManager.Instance.GetFlag((GungeonFlags)171003)) { mode = Mode.LockedGame; animationState = AnimationState.Locked; } break; } m_ParentRoom = room; } private void LateUpdate() { switch (animationState) { case AnimationState.SwitchingAnimation: if (!string.IsNullOrEmpty(m_NewAnimation)) { m_CurrentAnimation = m_NewAnimation; ((BraveBehaviour)this).spriteAnimator.Play(m_CurrentAnimation); m_NewAnimation = string.Empty; } else if (!string.IsNullOrEmpty(m_CurrentAnimation) && !((BraveBehaviour)this).spriteAnimator.IsPlaying(m_CurrentAnimation)) { if (mode == Mode.PunchoutArcade && m_CurrentAnimation == ActivateGameAnimation) { IdleAnimation += "2"; } m_CurrentAnimation = string.Empty; animationState = AnimationState.Idle; } break; case AnimationState.Idle: if (!((BraveBehaviour)this).spriteAnimator.IsPlaying(IdleAnimation)) { ((BraveBehaviour)this).spriteAnimator.Play(IdleAnimation); } break; case AnimationState.Sleep: if (!string.IsNullOrEmpty(SleepFrame)) { ((BraveBehaviour)this).spriteAnimator.Stop(); if (((BraveBehaviour)this).sprite.CurrentSprite.name != SleepFrame) { ((BraveBehaviour)this).sprite.SetSprite(SleepFrame); } } else if (!string.IsNullOrEmpty(SleepAnimation) && !((BraveBehaviour)this).spriteAnimator.IsPlaying(SleepAnimation)) { ((BraveBehaviour)this).spriteAnimator.Play(SleepAnimation); } break; case AnimationState.Locked: if (!string.IsNullOrEmpty(LockedAnimation)) { if (!((BraveBehaviour)this).spriteAnimator.IsPlaying(LockedAnimation)) { ((BraveBehaviour)this).spriteAnimator.Play(LockedAnimation); } } else if (!string.IsNullOrEmpty(LockedSpriteFrame) && ((BraveBehaviour)this).sprite.CurrentSprite.name != LockedSpriteFrame) { ((BraveBehaviour)this).spriteAnimator.Stop(); ((BraveBehaviour)this).sprite.SetSprite(LockedSpriteFrame); } break; } } private void Update() { switch (mode) { case Mode.LockedGame: break; case Mode.PunchoutArcade: if (!Finished) { break; } m_PunchoutArcadeController.DestroyOverlayUI(); ((dfControl)((Component)GameUIRoot.Instance.PauseMenuPanel).GetComponent().metaCurrencyPanel).IsVisible = true; if (!DoingResults) { string resultsStringKey = "You didn't beat the rat so you won nothing!"; if (ExpandPunchoutArcadeController.WonRatGame) { int num = 0; int num2 = 0; if (ExpandPunchoutArcadeController.RatKeyCount != -1) { for (int i = 0; i < ExpandPunchoutArcadeController.RatKeyCount; i++) { using List.Enumerator enumerator = ExpandPunchoutArcadeController.RewardIDs.GetEnumerator(); while (enumerator.MoveNext()) { switch (enumerator.Current) { case 68: num++; break; case 70: num += 5; break; case 74: num += 50; break; case 297: num2 += 5; break; } } } } else { using List.Enumerator enumerator = ExpandPunchoutArcadeController.RewardIDs.GetEnumerator(); while (enumerator.MoveNext()) { switch (enumerator.Current) { case 68: num++; break; case 70: num += 5; break; case 74: num += 50; break; case 297: num2++; break; } } } resultsStringKey = "Congratulations!\nYou won " + num + " casings and " + num2 + " Hegemony credits!"; } ((MonoBehaviour)this).StartCoroutine(HandleConversation(m_CurrentPlayer, resultsStringKey)); DoingResults = true; } if (!DoingResults || ResultsGiven) { PlayerController[] allPlayers = GameManager.Instance.AllPlayers; for (int j = 0; j < allPlayers.Length; j++) { allPlayers[j].ClearInputOverride("starting punchout"); } allPlayers = GameManager.Instance.AllPlayers; for (int j = 0; j < allPlayers.Length; j++) { allPlayers[j].ClearInputOverride("gameConversation"); } ResultsGiven = false; DoingResults = false; Finished = false; m_CurrentPlayer = null; } break; case Mode.SlotMachine: case Mode.ItemGunBallMachine: break; } } public void Reset() { if (m_Uses != 0) { m_Uses = 0; m_CurrentAnimation = string.Empty; m_NewAnimation = string.Empty; if (mode == Mode.PunchoutArcade) { IdleAnimation = "idle"; } animationState = AnimationState.Idle; } } public string GetAnimationState(PlayerController interactor, out bool shouldBeFlipped) { shouldBeFlipped = false; return string.Empty; } public float GetDistanceToPoint(Vector2 point) { //IL_001d: 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_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) if (m_Interacted | !Object.op_Implicit((Object)(object)((BraveBehaviour)this).sprite)) { return 100f; } Vector3 val = Vector2.op_Implicit(BraveMathCollege.ClosestPointOnRectangle(point, ((BraveBehaviour)this).specRigidbody.UnitBottomLeft, ((BraveBehaviour)this).specRigidbody.UnitDimensions)); return Vector2.Distance(point, Vector2.op_Implicit(val)) / 1.5f; } public float GetOverrideMaxDistance() { return -1f; } public void OnEnteredRange(PlayerController interactor) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) SpriteOutlineManager.AddOutlineToSprite(((BraveBehaviour)this).sprite, Color.white); } public void OnExitRange(PlayerController interactor) { SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)this).sprite, false); } protected override void OnDestroy() { ExpandSettings.PlayingPunchoutArcade = false; ((DungeonPlaceableBehaviour)this).OnDestroy(); } } public class ExpandCasinoPropAnimationHandler : BraveBehaviour { public float MinFidgetWaitTime; public float MaxFidgetWaitTime; public string[] FidgetAnimations; public string IdleAnimation; private float m_Timer; private string m_CurrentAnimation; public ExpandCasinoPropAnimationHandler() { FidgetAnimations = new string[2] { "blink", "sigh" }; IdleAnimation = "idle"; MaxFidgetWaitTime = 8f; MaxFidgetWaitTime = 12f; m_Timer = 10f; } private void Awake() { m_Timer = Random.Range(MinFidgetWaitTime, MaxFidgetWaitTime); } private void Update() { m_Timer -= BraveTime.DeltaTime; if (m_Timer <= 0f) { m_Timer = Random.Range(MinFidgetWaitTime, MaxFidgetWaitTime); m_CurrentAnimation = BraveUtility.RandomElement(FidgetAnimations); ((BraveBehaviour)this).spriteAnimator.Play(m_CurrentAnimation); } else if (!string.IsNullOrEmpty(m_CurrentAnimation) && !((BraveBehaviour)this).spriteAnimator.IsPlaying(m_CurrentAnimation)) { m_CurrentAnimation = IdleAnimation; ((BraveBehaviour)this).spriteAnimator.Play(IdleAnimation); } } protected override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); } } public class ExpandCasinoWarpTrigger : DungeonPlaceableBehaviour, IPlaceConfigurable, IPlayerInteractable { public string TargetDoorOpenAnim; public string TargetDoorCloseAnim; public GameObject TargetSpawnObject; public Vector3 TargetSpawnPosition; public Vector3 TargetSpawnPosition2; [NonSerialized] public bool HasBeenUsed; [NonSerialized] private bool m_Interacted; [NonSerialized] private GameObject m_SpawnedObject; [NonSerialized] private GameObject m_SpawnedObject2; [NonSerialized] private GameObject m_SpawnedObject3; [NonSerialized] private GameObject m_SpawnedObject4; [NonSerialized] private tk2dSpriteAnimator m_TargetAnimator; [NonSerialized] private SpeculativeRigidbody m_TargetRigidBody; [NonSerialized] private SpeculativeRigidbody m_TargetRigidBody2; [NonSerialized] private ExpandWarpManager m_FoyerDoorWarp; [NonSerialized] private ExpandWarpManager m_FoyerDoorWarp2; [NonSerialized] private RoomHandler m_TargetRoom; [NonSerialized] private RoomHandler m_ParentRoom; public ExpandCasinoWarpTrigger() { //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_0026: 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) TargetSpawnPosition = new Vector3(-3f, 2f); TargetSpawnPosition2 = new Vector3(6f, 1f); TargetDoorOpenAnim = "open"; TargetDoorCloseAnim = "close"; HasBeenUsed = false; m_Interacted = false; } private void Update() { } public void ConfigureOnPlacement(RoomHandler room) { m_ParentRoom = room; } public void Interact(PlayerController player) { //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: 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_00f7: 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_0180: Unknown result type (might be due to invalid IL or missing references) //IL_0185: 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_0199: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01e0: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Unknown result type (might be due to invalid IL or missing references) //IL_01f6: Unknown result type (might be due to invalid IL or missing references) //IL_01fb: Unknown result type (might be due to invalid IL or missing references) //IL_0202: Unknown result type (might be due to invalid IL or missing references) //IL_0207: Unknown result type (might be due to invalid IL or missing references) //IL_020c: Unknown result type (might be due to invalid IL or missing references) //IL_024f: Unknown result type (might be due to invalid IL or missing references) //IL_0259: Expected O, but got Unknown //IL_026f: Unknown result type (might be due to invalid IL or missing references) if (m_Interacted || !Object.op_Implicit((Object)(object)player)) { return; } m_Interacted = true; HasBeenUsed = true; if (!Object.op_Implicit((Object)(object)m_SpawnedObject)) { if (Object.op_Implicit((Object)(object)m_SpawnedObject2)) { Object.Destroy((Object)(object)m_SpawnedObject2); } m_SpawnedObject = Object.Instantiate(TargetSpawnObject, ((Component)this).gameObject.transform.position + TargetSpawnPosition, Quaternion.identity); m_TargetAnimator = m_SpawnedObject.GetComponent(); m_FoyerDoorWarp = m_SpawnedObject.GetComponent(); m_TargetRigidBody = m_SpawnedObject.GetComponent(); m_FoyerDoorWarp.TargetPoint = new IntVector2(1, 2) + TargetSpawnPosition2.ToIntVector2((VectorConversions)2); if (m_TargetRoom == null) { m_TargetRoom = ExpandUtility.AddCustomRuntimeRoom(GameManager.Instance.Dungeon, new IntVector2(17, 20), ExpandPrefabs.EXCasinoHub, (IntVector2?)new IntVector2(0, 60), (Vector3?)null, "Expand_Casino"); } m_FoyerDoorWarp.TargetRoom = m_TargetRoom; m_FoyerDoorWarp.ConfigureOnPlacement(m_ParentRoom); if (!Object.op_Implicit((Object)(object)m_SpawnedObject3)) { if (Object.op_Implicit((Object)(object)m_SpawnedObject4)) { Object.Destroy((Object)(object)m_SpawnedObject4); } m_SpawnedObject3 = Object.Instantiate(TargetSpawnObject, ((IntVector2)(ref m_TargetRoom.area.basePosition)).ToVector3() + TargetSpawnPosition2 + new Vector3(0.4f, 0f), Quaternion.identity); m_FoyerDoorWarp2 = m_SpawnedObject3.GetComponent(); m_TargetRigidBody2 = m_SpawnedObject3.GetComponent(); m_FoyerDoorWarp2.TargetPoint = m_SpawnedObject.transform.position.ToIntVector2((VectorConversions)2) - m_ParentRoom.area.basePosition + new IntVector2(1, -1); m_FoyerDoorWarp2.TargetRoom = m_ParentRoom; ((BraveBehaviour)m_FoyerDoorWarp2).sprite.SetSprite("foyerdoor_open_13"); m_FoyerDoorWarp2.ConfigureOnPlacement(m_TargetRoom); m_SpawnedObject4 = new GameObject("EXFoyerWarpDoor Field 2"); m_SpawnedObject4.transform.position = m_SpawnedObject3.transform.position; tk2dSprite obj = SpriteSerializer.AddSpriteToObject(m_SpawnedObject4, ExpandPrefabs.EXFoyerCollection, "foyerdoor_field_01", (PerpendicularState)0); ExpandShaders.ApplyHologramShader(obj); ((tk2dBaseSprite)obj).HeightOffGround = -1f; ((tk2dBaseSprite)obj).UpdateZDepth(); foreach (PixelCollider pixelCollider in m_TargetRigidBody2.PixelColliders) { pixelCollider.Enabled = true; } m_FoyerDoorWarp2.IsOpenForTeleport = true; } ((MonoBehaviour)this).StartCoroutine(HandleDoorOpen()); ((BraveBehaviour)this).sprite.SetSprite("floortrigger_active_01"); } else { if (Object.op_Implicit((Object)(object)m_FoyerDoorWarp)) { m_FoyerDoorWarp.IsOpenForTeleport = false; } ((MonoBehaviour)this).StartCoroutine(HandleDoorClose()); ((BraveBehaviour)this).sprite.SetSprite("floortrigger_idle_01"); } } private IEnumerator HandleDoorOpen() { m_TargetAnimator.Play(TargetDoorOpenAnim); yield return null; AkSoundEngine.PostEvent("Play_OBJ_cardoor_open_01", m_SpawnedObject); foreach (PixelCollider pixelCollider in m_TargetRigidBody.PixelColliders) { pixelCollider.Enabled = true; } while (m_TargetAnimator.IsPlaying(TargetDoorOpenAnim)) { yield return null; } m_SpawnedObject2 = new GameObject("EXFoyerWarpDoor Field"); tk2dSprite m_EXFoyerWarpDoorSprite = SpriteSerializer.AddSpriteToObject(m_SpawnedObject2, ExpandPrefabs.EXFoyerCollection, "foyerdoor_field_01", (PerpendicularState)0); yield return null; ExpandShaders.ApplyHologramShader(m_EXFoyerWarpDoorSprite); ((tk2dBaseSprite)m_EXFoyerWarpDoorSprite).HeightOffGround = -1f; yield return null; m_SpawnedObject2.transform.position = m_SpawnedObject.transform.position; ((tk2dBaseSprite)m_EXFoyerWarpDoorSprite).UpdateZDepth(); m_FoyerDoorWarp.IsOpenForTeleport = true; m_Interacted = false; } private IEnumerator HandleDoorClose() { Object.Destroy((Object)(object)m_SpawnedObject2); foreach (PixelCollider pixelCollider in m_TargetRigidBody.PixelColliders) { pixelCollider.Enabled = false; } AkSoundEngine.PostEvent("Play_OBJ_cardoor_close_01", m_SpawnedObject); m_TargetAnimator.PlayAndDestroyObject(TargetDoorCloseAnim, (Action)null); yield return null; while (Object.op_Implicit((Object)(object)m_SpawnedObject) | Object.op_Implicit((Object)(object)m_SpawnedObject2)) { yield return null; } m_Interacted = false; } public void OnEnteredRange(PlayerController interactor) { //IL_0019: Unknown result type (might be due to invalid IL or missing references) if (!(!Object.op_Implicit((Object)(object)this) | m_Interacted)) { SpriteOutlineManager.AddOutlineToSprite(((BraveBehaviour)this).sprite, Color.white, 0.1f, 0f, (OutlineType)0); ((BraveBehaviour)this).sprite.UpdateZDepth(); } } public void OnExitRange(PlayerController interactor) { if (Object.op_Implicit((Object)(object)this)) { SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)this).sprite, false); ((BraveBehaviour)this).sprite.UpdateZDepth(); } } public float GetDistanceToPoint(Vector2 point) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0040: 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_004f: 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_0068: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: 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) if (m_Interacted) { return float.PositiveInfinity; } Bounds bounds = ((BraveBehaviour)this).sprite.GetBounds(); ((Bounds)(ref bounds)).SetMinMax(((Bounds)(ref bounds)).min + ((BraveBehaviour)this).transform.position, ((Bounds)(ref bounds)).max + ((BraveBehaviour)this).transform.position); float num = Mathf.Max(Mathf.Min(point.x, ((Bounds)(ref bounds)).max.x), ((Bounds)(ref bounds)).min.x); float num2 = Mathf.Max(Mathf.Min(point.y, ((Bounds)(ref bounds)).max.y), ((Bounds)(ref bounds)).min.y); return Mathf.Sqrt((point.x - num) * (point.x - num) + (point.y - num2) * (point.y - num2)); } public float GetOverrideMaxDistance() { return -1f; } public string GetAnimationState(PlayerController interactor, out bool shouldBeFlipped) { shouldBeFlipped = false; return string.Empty; } protected override void OnDestroy() { if (Object.op_Implicit((Object)(object)m_SpawnedObject)) { Object.Destroy((Object)(object)m_SpawnedObject); } if (Object.op_Implicit((Object)(object)m_SpawnedObject2)) { Object.Destroy((Object)(object)m_SpawnedObject2); } if (Object.op_Implicit((Object)(object)m_SpawnedObject3)) { Object.Destroy((Object)(object)m_SpawnedObject3); } if (Object.op_Implicit((Object)(object)m_SpawnedObject4)) { Object.Destroy((Object)(object)m_SpawnedObject4); } ((DungeonPlaceableBehaviour)this).OnDestroy(); } } public class ExpandClownKinBalloonManager : CustomEngageDoer { public Vector3 BalloonOffset; public float GlobalBalloonFloatHeight; public float PoppedBalloonRespawnCoolDown; public List BalloonPrefabs; public bool ShuffleBalloonColors; public bool DoConfettiOnSpawn; public bool IsSingleBalloon; public bool SingleBalloonDoesBlankOnPop; [NonSerialized] public List m_Balloons; [NonSerialized] public ExpandBalloonController m_Balloon; [NonSerialized] public bool SingleBalloonWasPopped; private bool m_isFinished; private string[] m_confettiNames; private float m_Timer; public override bool IsFinished => m_isFinished; public ExpandClownKinBalloonManager() { //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) BalloonOffset = new Vector3(1f, 2f); GlobalBalloonFloatHeight = 3f; PoppedBalloonRespawnCoolDown = 30f; ShuffleBalloonColors = true; DoConfettiOnSpawn = true; IsSingleBalloon = false; SingleBalloonDoesBlankOnPop = false; BalloonPrefabs = new List { ExpandPrefabs.EX_RedBalloon, ExpandPrefabs.EX_GreenBalloon, ExpandPrefabs.EX_BlueBalloon, ExpandPrefabs.EX_YellowBalloon, ExpandPrefabs.EX_PinkBalloon }; m_confettiNames = new string[3] { "Global VFX/Confetti_Blue_001", "Global VFX/Confetti_Yellow_001", "Global VFX/Confetti_Green_001" }; m_Timer = PoppedBalloonRespawnCoolDown; SingleBalloonWasPopped = false; m_isFinished = false; } public void InitFX() { //IL_003f: 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_0201: Unknown result type (might be due to invalid IL or missing references) //IL_0206: Unknown result type (might be due to invalid IL or missing references) //IL_022d: Unknown result type (might be due to invalid IL or missing references) //IL_0232: 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_025e: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_012e: 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) //IL_02aa: Unknown result type (might be due to invalid IL or missing references) //IL_02b0: 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) //IL_02cc: Unknown result type (might be due to invalid IL or missing references) //IL_02d1: Unknown result type (might be due to invalid IL or missing references) //IL_0380: Unknown result type (might be due to invalid IL or missing references) //IL_0386: Unknown result type (might be due to invalid IL or missing references) //IL_039a: Unknown result type (might be due to invalid IL or missing references) //IL_039f: Unknown result type (might be due to invalid IL or missing references) //IL_03a4: Unknown result type (might be due to invalid IL or missing references) //IL_03bb: Unknown result type (might be due to invalid IL or missing references) //IL_03cf: Unknown result type (might be due to invalid IL or missing references) //IL_03d4: Unknown result type (might be due to invalid IL or missing references) //IL_03d9: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_047d: Unknown result type (might be due to invalid IL or missing references) //IL_0482: Unknown result type (might be due to invalid IL or missing references) //IL_0499: Unknown result type (might be due to invalid IL or missing references) //IL_049e: Unknown result type (might be due to invalid IL or missing references) if (DoConfettiOnSpawn) { if (BraveUtility.RandomBool()) { AkSoundEngine.PostEvent("Play_EX_PartySFX_01", ((Component)this).gameObject); } else { AkSoundEngine.PostEvent("Play_OBJ_prize_won_01", ((Component)this).gameObject); } DoConfetti(Vector2.op_Implicit(((BraveBehaviour)((BraveBehaviour)this).aiActor).transform.position)); } if ((BalloonPrefabs == null) | (BalloonPrefabs.Count < 3)) { ETGModConsole.Log((object)"ExpandTheGungeon: WARNING: ExpandClownKinBalloonManager's Balloon Prefab list null or does not contain at least 3 prefabs!", false); return; } if (ShuffleBalloonColors) { BalloonPrefabs = BraveUtility.Shuffle(BalloonPrefabs); } if (IsSingleBalloon) { m_Balloon = Object.Instantiate(BraveUtility.RandomElement(BalloonPrefabs), ((BraveBehaviour)this).transform.position, Quaternion.identity).GetComponent(); if (Object.op_Implicit((Object)(object)m_Balloon)) { Transform transform = ((Component)m_Balloon).gameObject.transform; transform.position += BalloonOffset + new Vector3(0f, 0f, 1f); m_Balloon.BalloonOffset = BalloonOffset + new Vector3(0f, 0f, 1f); m_Balloon.BalloonSprite = (tk2dBaseSprite)(object)((Component)m_Balloon).gameObject.GetComponent(); m_Balloon.BalloonFloatHeight = GlobalBalloonFloatHeight; m_Balloon.FloatUpOnDeathSpeed = Random.Range(2.75f, 3.5f); m_Balloon.DoBlankOnPop = SingleBalloonDoesBlankOnPop; m_Balloon.BlankChance = -1f; m_Balloon.ParentClownkinController = this; m_Balloon.PopsOnProjectileHit = true; m_Balloon.BlankVFXPrefab = BraveResources.Load("Global VFX/BlankVFX_Ghost", ".prefab"); m_Balloon.Initialize((GameActor)(object)((BraveBehaviour)this).aiActor); } return; } m_Balloons = new List { Object.Instantiate(BalloonPrefabs[0], ((BraveBehaviour)this).transform.position, Quaternion.identity).GetComponent(), Object.Instantiate(BalloonPrefabs[1], ((BraveBehaviour)this).transform.position, Quaternion.identity).GetComponent(), Object.Instantiate(BalloonPrefabs[2], ((BraveBehaviour)this).transform.position, Quaternion.identity).GetComponent() }; if (m_Balloons != null && m_Balloons.Count == 3) { Transform transform2 = ((Component)m_Balloons[0]).gameObject.transform; transform2.position += BalloonOffset; m_Balloons[0].BalloonOffset = BalloonOffset; m_Balloons[0].BalloonSprite = (tk2dBaseSprite)(object)((Component)m_Balloons[0]).gameObject.GetComponent(); m_Balloons[0].BalloonFloatHeight = GlobalBalloonFloatHeight - 0.8f; m_Balloons[0].BalloonFloatHorizontalOffset -= 0.4f; m_Balloons[0].FloatUpOnDeathSpeed = Random.Range(2f, 2.5f); m_Balloons[0].ParentClownkinController = this; Transform transform3 = ((Component)m_Balloons[1]).gameObject.transform; transform3.position += BalloonOffset + new Vector3(0f, 0f, 1f); m_Balloons[1].BalloonOffset = BalloonOffset + new Vector3(0f, 0f, 1f); m_Balloons[1].BalloonSprite = (tk2dBaseSprite)(object)((Component)m_Balloons[1]).gameObject.GetComponent(); m_Balloons[1].BalloonFloatHeight = GlobalBalloonFloatHeight; m_Balloons[1].FloatUpOnDeathSpeed = Random.Range(2.75f, 3.5f); m_Balloons[1].DoBlankOnPop = true; m_Balloons[1].ParentClownkinController = this; Transform transform4 = ((Component)m_Balloons[2]).gameObject.transform; transform4.position += BalloonOffset; m_Balloons[2].BalloonOffset = BalloonOffset; m_Balloons[2].BalloonSprite = (tk2dBaseSprite)(object)((Component)m_Balloons[2]).gameObject.GetComponent(); m_Balloons[2].BalloonFloatHeight = GlobalBalloonFloatHeight - 0.82f; m_Balloons[2].BalloonFloatHorizontalOffset += 0.4f; m_Balloons[2].FloatUpOnDeathSpeed = Random.Range(2f, 2.5f); m_Balloons[2].ParentClownkinController = this; m_Balloons[0].Initialize((GameActor)(object)((BraveBehaviour)this).aiActor); m_Balloons[1].Initialize((GameActor)(object)((BraveBehaviour)this).aiActor); m_Balloons[2].Initialize((GameActor)(object)((BraveBehaviour)this).aiActor); } } public void RespawnBalloon() { //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_01be: Unknown result type (might be due to invalid IL or missing references) //IL_009a: 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_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)m_Balloon)) { return; } if ((BalloonPrefabs == null) | (BalloonPrefabs.Count < 3)) { ETGModConsole.Log((object)"ExpandTheGungeon: WARNING: ExpandClownKinBalloonManager's Balloon Prefab list null or does not contain at least 3 prefabs!", false); return; } if (ShuffleBalloonColors) { BalloonPrefabs = BraveUtility.Shuffle(BalloonPrefabs); } m_Balloon = Object.Instantiate(BraveUtility.RandomElement(BalloonPrefabs), ((BraveBehaviour)this).transform.position, Quaternion.identity).GetComponent(); if (Object.op_Implicit((Object)(object)m_Balloon)) { Transform transform = ((Component)m_Balloon).gameObject.transform; transform.position += BalloonOffset + new Vector3(0f, 0f, 1f); m_Balloon.BalloonOffset = BalloonOffset + new Vector3(0f, 0f, 1f); m_Balloon.BalloonSprite = (tk2dBaseSprite)(object)((Component)m_Balloon).gameObject.GetComponent(); m_Balloon.BalloonFloatHeight = GlobalBalloonFloatHeight; m_Balloon.FloatUpOnDeathSpeed = Random.Range(2.75f, 3.5f); m_Balloon.DoBlankOnPop = SingleBalloonDoesBlankOnPop; m_Balloon.BlankChance = -1f; m_Balloon.ParentClownkinController = this; m_Balloon.PopsOnProjectileHit = true; m_Balloon.BlankVFXPrefab = BraveResources.Load("Global VFX/BlankVFX_Ghost", ".prefab"); m_Balloon.Initialize((GameActor)(object)((BraveBehaviour)this).aiActor); } AkSoundEngine.PostEvent("Play_OBJ_prize_won_01", ((Component)this).gameObject); DoConfetti(Vector2.op_Implicit(((Component)this).gameObject.transform.position)); } private void DoConfetti(Vector2 startPosition) { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Expected O, but got Unknown //IL_0042: 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_005c: 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_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008c: 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) for (int i = 0; i < 16; i++) { GameObject val = (GameObject)ResourceCache.Acquire(BraveUtility.RandomElement(m_confettiNames)); if (Object.op_Implicit((Object)(object)val)) { WaftingDebrisObject component = Object.Instantiate(val).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { ((BraveBehaviour)component).sprite.PlaceAtPositionByAnchor(Vector2Extensions.ToVector3ZUp(startPosition, 0f) + new Vector3(0.5f, 0.5f, 0f), (Anchor)4); Vector2 insideUnitCircle = Random.insideUnitCircle; insideUnitCircle.y = 0f - Mathf.Abs(insideUnitCircle.y); ((DebrisObject)component).Trigger(Vector2Extensions.ToVector3ZUp(insideUnitCircle, 1.5f) * Random.Range(0.5f, 2f), 0.5f, 0f); } } } } public override void StartIntro() { ((MonoBehaviour)this).StartCoroutine(DoIntro()); } private IEnumerator DoIntro() { m_isFinished = true; yield break; } public void Awake() { InitFX(); } public void Start() { } public void Update() { if (!(!m_isFinished | !SingleBalloonWasPopped)) { m_Timer -= BraveTime.DeltaTime; if (m_Timer < 0f) { m_Timer = PoppedBalloonRespawnCoolDown; RespawnBalloon(); SingleBalloonWasPopped = false; } } } protected override void OnDestroy() { if (Object.op_Implicit((Object)(object)m_Balloon) && !m_Balloon.DoDetachAndFloatAfterTargetDeath) { Object.Destroy((Object)(object)((Component)m_Balloon).gameObject); } if (m_Balloons != null && m_Balloons.Count > 0) { for (int i = 0; i < m_Balloons.Count; i++) { if (!m_Balloons[i].DoDetachAndFloatAfterTargetDeath) { Object.Destroy((Object)(object)((Component)m_Balloons[i]).gameObject); } } } ((CustomEngageDoer)this).OnDestroy(); } } public class ExpandConfettiSpawner : BraveBehaviour { public enum SpawnStyle { OnChestOpen, Other } public bool RemoveOnSpawn; public bool UseSpriteAsAnchorPoint; public Vector2 SpawnOffset; public SpawnStyle spawnStyle; public List ConfettiNames; private bool m_ConfettiSpawned; private bool m_Configured; private Chest m_ParentChest; public ExpandConfettiSpawner() { //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) RemoveOnSpawn = true; UseSpriteAsAnchorPoint = true; SpawnOffset = new Vector2(-0.75f, 0.25f); spawnStyle = SpawnStyle.OnChestOpen; ConfettiNames = new List { "Global VFX/Confetti_Blue_001", "Global VFX/Confetti_Yellow_001", "Global VFX/Confetti_Green_001" }; m_ConfettiSpawned = false; m_Configured = false; } public void Start() { if (spawnStyle == SpawnStyle.OnChestOpen) { m_ParentChest = ((Component)this).gameObject.GetComponent(); m_Configured = true; } } public void Update() { //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_009f: Unknown result type (might be due to invalid IL or missing references) if (!(m_ConfettiSpawned | !m_Configured | !GameManager.HasInstance | GameManager.IsShuttingDown | GameManager.Instance.IsLoadingLevel | !Object.op_Implicit((Object)(object)GameManager.Instance.Dungeon) | Dungeon.IsGenerating) && spawnStyle == SpawnStyle.OnChestOpen && !(!Object.op_Implicit((Object)(object)m_ParentChest) | (UseSpriteAsAnchorPoint && !Object.op_Implicit((Object)(object)((BraveBehaviour)m_ParentChest).sprite))) && m_ParentChest.IsOpen) { if (UseSpriteAsAnchorPoint) { DoConfetti(((BraveBehaviour)this).sprite.WorldBottomCenter); } else { DoConfetti(Vector2.op_Implicit(((BraveBehaviour)this).transform.position)); } m_ConfettiSpawned = true; if (RemoveOnSpawn) { Object.Destroy((Object)(object)this); } } } private void DoConfetti(Vector2 startPosition) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: 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_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Expected O, but got Unknown //IL_0060: 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_007a: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: 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_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) Vector2 val = startPosition + SpawnOffset; for (int i = 0; i < 16; i++) { ConfettiNames = BraveUtility.Shuffle(ConfettiNames); GameObject val2 = (GameObject)ResourceCache.Acquire(BraveUtility.RandomElement(ConfettiNames)); if (Object.op_Implicit((Object)(object)val2)) { WaftingDebrisObject component = Object.Instantiate(val2).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { ((BraveBehaviour)component).sprite.PlaceAtPositionByAnchor(Vector2Extensions.ToVector3ZUp(val, 0f) + new Vector3(0.5f, 0.5f, 0f), (Anchor)4); Vector2 insideUnitCircle = Random.insideUnitCircle; insideUnitCircle.y = 0f - Mathf.Abs(insideUnitCircle.y); ((DebrisObject)component).Trigger(Vector2Extensions.ToVector3ZUp(insideUnitCircle, 1.5f) * Random.Range(0.5f, 2f), 0.5f, 0f); } } } if (BraveUtility.RandomBool()) { AkSoundEngine.PostEvent("Play_EX_PartySFX_01", ((Component)this).gameObject); } else { AkSoundEngine.PostEvent("Play_OBJ_prize_won_01", ((Component)this).gameObject); } } } public class ExpandSignPostController : DungeonPlaceableBehaviour, IPlaceConfigurable { [SerializeField] public GameObject MinimapIcon; [SerializeField] public string ActivationAnimation; [SerializeField] public string ActivationSound; private bool m_Triggered; private bool m_Configured; private RoomHandler m_ParentRoom; public ExpandSignPostController() { ActivationAnimation = "spin_future"; ActivationSound = "Play_EX_SignPost_Future"; base.placeableWidth = 1; base.placeableHeight = 3; m_Triggered = false; m_Configured = false; } public void Start() { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Expected O, but got Unknown //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Expected O, but got Unknown if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).specRigidbody)) { ((BraveBehaviour)this).specRigidbody.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Combine((Delegate?)(object)((BraveBehaviour)this).specRigidbody.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(OnPreRigidBodyCollision)); } } public void ConfigureOnPlacement(RoomHandler room) { m_ParentRoom = room; if (Object.op_Implicit((Object)(object)MinimapIcon)) { Minimap.Instance.RegisterRoomIcon(room, MinimapIcon, false); } m_Configured = true; } private void OnPreRigidBodyCollision(SpeculativeRigidbody myRigidbody, PixelCollider myPixelCollider, SpeculativeRigidbody otherRigidbody, PixelCollider otherPixelCollider) { if (!m_Configured) { return; } if (Object.op_Implicit((Object)(object)((Component)otherRigidbody).GetComponent()) && Object.op_Implicit((Object)(object)((Component)otherRigidbody).GetComponent().Owner) && ((Component)otherRigidbody).GetComponent().Owner is AIActor) { PhysicsEngine.SkipCollision = true; } else if (!m_Triggered && (Object.op_Implicit((Object)(object)((Component)otherRigidbody).GetComponent()) | Object.op_Implicit((Object)(object)((Component)otherRigidbody).GetComponent()))) { m_Triggered = true; ExpandSettings.SewersIsFuture = true; CollisionMask.LayerToMask((CollisionLayer)1, (CollisionLayer)0); if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).spriteAnimator) && !string.IsNullOrEmpty(ActivationAnimation)) { ((BraveBehaviour)this).spriteAnimator.Play(ActivationAnimation); } if (!string.IsNullOrEmpty(ActivationSound)) { AkSoundEngine.PostEvent(ActivationSound, ((Component)this).gameObject); } myRigidbody.RegisterGhostCollisionException(otherRigidbody); PhysicsEngine.SkipCollision = true; } else if (Object.op_Implicit((Object)(object)((Component)otherRigidbody).GetComponent())) { PhysicsEngine.SkipCollision = true; } } protected override void OnDestroy() { ((DungeonPlaceableBehaviour)this).OnDestroy(); } } public class ExpandObjectReshader : BraveBehaviour { public bool ChanceToNotReshade; public float ReshadeSkipOdds; public List Colors; public string ColorOverrideName; private Color m_SelectedColor; public ExpandObjectReshader() { //IL_0021: Unknown result type (might be due to invalid IL or missing references) Colors = new List { new Color(0f, 1f, 0f, 0.6f) }; ColorOverrideName = "tint"; ChanceToNotReshade = false; ReshadeSkipOdds = 0.35f; } public void Start() { //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) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) if (!(!Object.op_Implicit((Object)(object)((BraveBehaviour)this).sprite) | (Colors == null) | (Colors.Count == 0)) && (!ChanceToNotReshade || !(Random.value < ReshadeSkipOdds))) { m_SelectedColor = Colors[0]; if (Colors.Count > 1) { Colors = BraveUtility.Shuffle(Colors); m_SelectedColor = BraveUtility.RandomElement(Colors); } ExpandUtility.DisableSuperTinting(((BraveBehaviour)this).sprite); if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).gameActor)) { ((BraveBehaviour)this).gameActor.RegisterOverrideColor(m_SelectedColor, ColorOverrideName); return; } ((BraveBehaviour)this).sprite.usesOverrideMaterial = true; ((BraveBehaviour)((BraveBehaviour)this).sprite).renderer.material.SetColor("_OverrideColor", m_SelectedColor); } } } public class ExpandSpriteMirror : BraveBehaviour { public bool OutlineThatSprite; public bool IsLocalMirror; public bool SpriteHasAnimator; public bool IsActive; public bool DestroyOnHide; public bool DestroyOnTimer; public float DestroyTimout; public Color SpriteOutlineColor; public tk2dSprite SpriteToMirror; public string[] SpriteNamesToHideOn; public string[] SpriteNamesToShowOn; private tk2dSprite m_CachedMirrorSprite; private Transform m_CachedParent; private SpeculativeRigidbody RigidBodyToWatch; private bool m_InitComplete; private float m_Timer; private bool InitComplete { get { return m_InitComplete; } set { IsActive = value; m_InitComplete = value; } } public ExpandSpriteMirror() { //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) IsLocalMirror = true; SpriteHasAnimator = true; OutlineThatSprite = false; DestroyOnHide = true; DestroyOnTimer = true; DestroyTimout = 2f; SpriteOutlineColor = Color.black; SpriteNamesToHideOn = new string[2] { "hammer_up_right_015", "hammer_left_right_015" }; SpriteNamesToShowOn = new string[42] { "hammer_slam_right_001", "hammer_slam_right_002", "hammer_slam_right_003", "hammer_slam_right_004", "hammer_slam_right_005", "hammer_slam_right_006", "hammer_slam_right_007", "hammer_up_left_001", "hammer_up_left_002", "hammer_up_left_003", "hammer_up_left_004", "hammer_up_left_005", "hammer_up_left_006", "hammer_up_left_007", "hammer_up_left_008", "hammer_up_left_009", "hammer_up_left_010", "hammer_up_left_011", "hammer_up_left_012", "hammer_up_left_013", "hammer_up_left_014", "hammer_up_right_001", "hammer_up_right_002", "hammer_up_right_003", "hammer_up_right_004", "hammer_up_right_005", "hammer_up_right_006", "hammer_up_right_007", "hammer_up_right_008", "hammer_up_right_009", "hammer_up_right_010", "hammer_up_right_011", "hammer_up_right_012", "hammer_up_right_013", "hammer_up_right_014", "hammer_slam_left_001", "hammer_slam_left_002", "hammer_slam_left_003", "hammer_slam_left_004", "hammer_slam_left_005", "hammer_slam_left_006", "hammer_slam_left_007" }; IsActive = false; } public void AttachMirror(Transform ParentTransform, tk2dSpriteCollectionData spriteCollectionOverride = null, Vector3? InitialOffset = null, bool alreadyMiddleCenter = false, bool useHitbox = false, bool isLocalMirror = true) { //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_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_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: 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_01a3: 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) if (!m_InitComplete) { if (DestroyOnTimer) { m_Timer = DestroyTimout; } IsLocalMirror = isLocalMirror; m_CachedParent = ParentTransform; Vector3 val = Vector3.zero; if (InitialOffset.HasValue) { val = InitialOffset.Value; } SpriteToMirror = ((Component)ParentTransform).gameObject.GetComponent(); m_CachedMirrorSprite = ((Component)this).gameObject.AddComponent(); ExpandUtility.DuplicateSprite(m_CachedMirrorSprite, SpriteToMirror); if (Object.op_Implicit((Object)(object)spriteCollectionOverride)) { ((tk2dBaseSprite)m_CachedMirrorSprite).Collection = spriteCollectionOverride; } if (OutlineThatSprite) { SpriteOutlineManager.AddOutlineToSprite((tk2dBaseSprite)(object)m_CachedMirrorSprite, SpriteOutlineColor); } RigidBodyToWatch = ((Component)m_CachedParent).gameObject.GetComponent(); Vector3 val2 = ((!useHitbox || !Object.op_Implicit((Object)(object)RigidBodyToWatch) || RigidBodyToWatch.HitboxPixelCollider == null) ? Vector2Extensions.ToVector3ZUp(((tk2dBaseSprite)SpriteToMirror).WorldCenter, 0f) : Vector2Extensions.ToVector3ZUp(RigidBodyToWatch.HitboxPixelCollider.UnitCenter, 0f)); if (!alreadyMiddleCenter) { ((tk2dBaseSprite)m_CachedMirrorSprite).PlaceAtPositionByAnchor(val2 + val, (Anchor)4); } else { ((BraveBehaviour)m_CachedMirrorSprite).transform.position = val2 + val; } if (IsLocalMirror && Object.op_Implicit((Object)(object)m_CachedParent) && (Object)(object)m_CachedParent != (Object)(object)((BraveBehaviour)this).transform) { ((BraveBehaviour)this).transform.parent = m_CachedParent; } if (IsLocalMirror) { ((tk2dBaseSprite)SpriteToMirror).AttachRenderer((tk2dBaseSprite)(object)m_CachedMirrorSprite); } if (IsLocalMirror && !alreadyMiddleCenter) { ((BraveBehaviour)this).transform.localPosition = dfVectorExtensions.QuantizeFloor(((BraveBehaviour)this).transform.localPosition, 0.0625f); } else if (!alreadyMiddleCenter) { ((BraveBehaviour)this).transform.position = dfVectorExtensions.QuantizeFloor(((BraveBehaviour)this).transform.position, 0.0625f); } ((tk2dBaseSprite)m_CachedMirrorSprite).IsPerpendicular = ((tk2dBaseSprite)SpriteToMirror).IsPerpendicular; InitComplete = true; ShowMirror(); } } public void ShowMirror() { //IL_0031: Unknown result type (might be due to invalid IL or missing references) ((BraveBehaviour)m_CachedMirrorSprite).renderer.enabled = true; ((BraveBehaviour)SpriteToMirror).renderer.enabled = false; if (OutlineThatSprite) { SpriteOutlineManager.AddOutlineToSprite((tk2dBaseSprite)(object)m_CachedMirrorSprite, SpriteOutlineColor); SpriteOutlineManager.RemoveOutlineFromSprite((tk2dBaseSprite)(object)SpriteToMirror, false); ((tk2dBaseSprite)SpriteToMirror).UpdateZDepth(); } ((tk2dBaseSprite)m_CachedMirrorSprite).UpdateZDepth(); IsActive = true; } public void HideMirror() { //IL_0033: Unknown result type (might be due to invalid IL or missing references) IsActive = false; ((BraveBehaviour)m_CachedMirrorSprite).renderer.enabled = false; if (OutlineThatSprite) { SpriteOutlineManager.RemoveOutlineFromSprite((tk2dBaseSprite)(object)m_CachedMirrorSprite, false); SpriteOutlineManager.AddOutlineToSprite((tk2dBaseSprite)(object)SpriteToMirror, SpriteOutlineColor); ((tk2dBaseSprite)SpriteToMirror).UpdateZDepth(); } if (DestroyOnHide) { DestroyMirror(DestroyOnHide); } } public void DestroyMirror(bool alreadyHidden) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) if (alreadyHidden) { Object.Destroy((Object)(object)((Component)m_CachedMirrorSprite).gameObject); return; } if (OutlineThatSprite) { SpriteOutlineManager.RemoveOutlineFromSprite((tk2dBaseSprite)(object)m_CachedMirrorSprite, false); SpriteOutlineManager.AddOutlineToSprite((tk2dBaseSprite)(object)SpriteToMirror, SpriteOutlineColor); ((tk2dBaseSprite)SpriteToMirror).UpdateZDepth(); } if (IsLocalMirror) { ((tk2dBaseSprite)SpriteToMirror).DetachRenderer((tk2dBaseSprite)(object)m_CachedMirrorSprite); } Object.Destroy((Object)(object)((Component)m_CachedMirrorSprite).gameObject); } public void Update() { if (!IsActive) { return; } if (SpriteHasAnimator && ((tk2dBaseSprite)m_CachedMirrorSprite).GetCurrentSpriteDef() != ((tk2dBaseSprite)SpriteToMirror).GetCurrentSpriteDef()) { ((tk2dBaseSprite)m_CachedMirrorSprite).SetSprite(((tk2dBaseSprite)SpriteToMirror).GetCurrentSpriteDef().name); if (SpriteNamesToHideOn != null && SpriteNamesToHideOn.Length != 0) { string[] spriteNamesToHideOn = SpriteNamesToHideOn; foreach (string value in spriteNamesToHideOn) { if (((tk2dBaseSprite)SpriteToMirror).GetCurrentSpriteDef().name.StartsWith(value)) { if (DestroyOnHide) { HideMirror(); } else { ((BraveBehaviour)m_CachedMirrorSprite).renderer.enabled = false; } return; } } } if (SpriteNamesToShowOn != null && SpriteNamesToShowOn.Length != 0) { string[] spriteNamesToHideOn = SpriteNamesToShowOn; foreach (string value2 in spriteNamesToHideOn) { if (((tk2dBaseSprite)SpriteToMirror).GetCurrentSpriteDef().name.StartsWith(value2)) { ((BraveBehaviour)m_CachedMirrorSprite).renderer.enabled = true; return; } } } } if (((tk2dBaseSprite)m_CachedMirrorSprite).HeightOffGround != ((tk2dBaseSprite)SpriteToMirror).HeightOffGround) { ((tk2dBaseSprite)m_CachedMirrorSprite).HeightOffGround = ((tk2dBaseSprite)SpriteToMirror).HeightOffGround; ((tk2dBaseSprite)m_CachedMirrorSprite).UpdateZDepth(); } } public void LateUpdate() { //IL_0027: Unknown result type (might be due to invalid IL or missing references) if (!IsActive) { return; } if (!IsLocalMirror) { ((Component)m_CachedMirrorSprite).gameObject.transform.position = m_CachedParent.position; } if (DestroyOnTimer) { m_Timer -= BraveTime.DeltaTime; if (m_Timer <= 0f) { IsActive = false; Object.Destroy((Object)(object)((Component)m_CachedMirrorSprite).gameObject); } } } } public class ExpandEntityManager : BraveBehaviour { [NonSerialized] public bool Configured; [NonSerialized] public bool IsOnBackRoomsFloor; [SerializeField] public float MaxPlayerAwayTime; [SerializeField] public IntVector2 EntitySize; [SerializeField] public string AIAnimatorSpawnClip; [SerializeField] public string AIAnimatorDeSpawnClip; [SerializeField] public string EntityPlayScreemEvent; [SerializeField] public string EntityStopScreemEvent; [NonSerialized] private bool m_SettingsApplied; [NonSerialized] private bool m_IsTeleporting; [NonSerialized] private bool m_ScreemStarted; [NonSerialized] private bool m_PlayerEaten; [NonSerialized] private float m_PlayerAwayTime; [NonSerialized] private PlayerController m_Player; [NonSerialized] private RoomHandler m_CurrentRoom; [NonSerialized] private RoomHandler m_TargetTeleportRoom; public ExpandEntityManager() { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) Configured = false; IsOnBackRoomsFloor = false; MaxPlayerAwayTime = 20f; EntitySize = new IntVector2(2, 2); AIAnimatorSpawnClip = "spawn"; AIAnimatorDeSpawnClip = "despawn"; EntityPlayScreemEvent = "Play_EX_EntityScreams_01"; EntityStopScreemEvent = "Stop_EX_EntityScreams_01"; m_SettingsApplied = false; m_IsTeleporting = false; m_ScreemStarted = false; m_PlayerEaten = false; m_PlayerAwayTime = 0f; } public void Awake() { } public void Start() { ((BraveBehaviour)this).specRigidbody.Reinitialize(); } public void Update() { //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Invalid comparison between Unknown and I4 //IL_02c7: Unknown result type (might be due to invalid IL or missing references) //IL_02dc: Unknown result type (might be due to invalid IL or missing references) //IL_02e6: Unknown result type (might be due to invalid IL or missing references) //IL_02eb: Unknown result type (might be due to invalid IL or missing references) //IL_0307: Unknown result type (might be due to invalid IL or missing references) if (!m_ScreemStarted) { ((MonoBehaviour)this).StartCoroutine(DoScream()); m_ScreemStarted = true; } if (!Configured) { return; } if (m_PlayerEaten) { ((BraveBehaviour)this).specRigidbody.Reinitialize(); if (Object.op_Implicit((Object)(object)m_Player)) { m_Player.CurrentPoisonMeterValue = 0f; if (Object.op_Implicit((Object)(object)GameManager.Instance.SecondaryPlayer)) { GameManager.Instance.SecondaryPlayer.CurrentPoisonMeterValue = 0f; } } return; } if (((BraveBehaviour)this).aiActor.IsBlackPhantom && IsOnBackRoomsFloor) { ((BraveBehaviour)this).aiActor.UnbecomeBlackPhantom(); } if (((BraveBehaviour)this).aiActor.ParentRoom != null) { ((BraveBehaviour)this).aiActor.ParentRoom = null; } if ((Object)(object)((Component)this).gameObject.transform.parent != (Object)null) { ((Component)this).gameObject.transform.parent = null; } if (m_PlayerEaten) { return; } if (m_SettingsApplied) { if (!IsOnBackRoomsFloor || m_IsTeleporting || !Object.op_Implicit((Object)(object)GameManager.Instance)) { return; } if (!Object.op_Implicit((Object)(object)m_Player)) { m_Player = GameManager.Instance.PrimaryPlayer; } if (!Object.op_Implicit((Object)(object)m_Player)) { return; } m_CurrentRoom = Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)this).transform.position); if (m_CurrentRoom != null && m_Player.CurrentRoom != null && !GameManager.Instance.IsAnyPlayerInRoom(m_CurrentRoom)) { m_PlayerAwayTime += BraveTime.DeltaTime; if (!(m_PlayerAwayTime > MaxPlayerAwayTime)) { return; } if (m_Player.CurrentRoom.area != null && (int)m_Player.CurrentRoom.area.PrototypeRoomCategory == 8) { m_PlayerAwayTime = MaxPlayerAwayTime - 5f; if (m_PlayerAwayTime < 0f) { m_PlayerAwayTime = 5f; } return; } m_PlayerAwayTime = 0f; if (!Object.op_Implicit((Object)(object)((BraveBehaviour)this).aiActor) || !Object.op_Implicit((Object)(object)((BraveBehaviour)this).specRigidbody) || !Object.op_Implicit((Object)(object)((BraveBehaviour)this).aiAnimator) || !Object.op_Implicit((Object)(object)((BraveBehaviour)this).spriteAnimator) || !Object.op_Implicit((Object)(object)((BraveBehaviour)this).behaviorSpeculator)) { return; } if (m_Player.CurrentRoom != null) { if (m_Player.CurrentRoom.connectedRooms != null && m_Player.CurrentRoom.connectedRooms.Count > 0) { m_TargetTeleportRoom = BraveUtility.RandomElement(m_Player.CurrentRoom.connectedRooms); } else { m_TargetTeleportRoom = m_CurrentRoom; } if (m_TargetTeleportRoom != null) { Vector2 targetPosition = FindSafeSpawnInRoom(m_TargetTeleportRoom, EntitySize, ((BraveBehaviour)this).sprite, (Vector2?)new Vector2(-0.15f, 0.5f)); m_IsTeleporting = true; AkSoundEngine.PostEvent(EntityStopScreemEvent, ((Component)this).gameObject); ((MonoBehaviour)this).StartCoroutine(DoTeleport(targetPosition)); } else { m_PlayerAwayTime = MaxPlayerAwayTime - 2f; if (m_PlayerAwayTime < 0f) { m_PlayerAwayTime = 2f; } } } else { m_PlayerAwayTime = MaxPlayerAwayTime - 5f; if (m_PlayerAwayTime < 0f) { m_PlayerAwayTime = 10f; } } } else if (m_CurrentRoom != null && m_Player.CurrentRoom != null && m_CurrentRoom == m_Player.CurrentRoom) { m_PlayerAwayTime = 0f; } return; } if (IsOnBackRoomsFloor) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).visibilityManager)) { ((BraveBehaviour)this).visibilityManager.ChangeToVisibility((VisibilityStatus)1, true); Object.Destroy((Object)(object)((BraveBehaviour)this).visibilityManager); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).aiActor)) { ((GameActor)((BraveBehaviour)this).aiActor).ImmuneToAllEffects = true; ((BraveBehaviour)this).aiActor.IgnoreForRoomClear = true; ((BraveBehaviour)this).aiActor.CollisionKnockbackStrength = 0f; ((BraveBehaviour)this).aiActor.CollisionDamage = 0f; ((BraveBehaviour)((BraveBehaviour)this).aiActor).knockbackDoer.weight = 100f; ((BraveBehaviour)this).aiActor.CorpseObject = null; } if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).healthHaver)) { ((BraveBehaviour)this).healthHaver.SetHealthMaximum(1000f, (float?)null, false); ((BraveBehaviour)this).healthHaver.ForceSetCurrentHealth(1000f); ((BraveBehaviour)this).healthHaver.PreventAllDamage = true; } } else { ((GameActor)((BraveBehaviour)this).aiActor).ImmuneToAllEffects = true; ((BraveBehaviour)this).aiActor.IgnoreForRoomClear = false; if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).behaviorSpeculator)) { ((Behaviour)((BraveBehaviour)this).behaviorSpeculator).enabled = false; ((BraveBehaviour)this).behaviorSpeculator.InstantFirstTick = false; ((BraveBehaviour)this).behaviorSpeculator.PostAwakenDelay = 1f; ((Behaviour)((BraveBehaviour)this).behaviorSpeculator).enabled = true; } } m_SettingsApplied = true; } private IEnumerator DoTeleport(Vector2 targetPosition) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) ((Behaviour)((BraveBehaviour)this).behaviorSpeculator).enabled = false; ((BraveBehaviour)this).aiActor.ClearPath(); if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).specRigidbody)) { ((BraveBehaviour)this).specRigidbody.Velocity = Vector2.zero; ((BraveBehaviour)this).specRigidbody.Reinitialize(); } yield return null; if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).aiAnimator) && Object.op_Implicit((Object)(object)((BraveBehaviour)this).spriteAnimator)) { ((Behaviour)((BraveBehaviour)this).aiAnimator).enabled = true; ((Behaviour)((BraveBehaviour)this).spriteAnimator).enabled = true; ((BraveBehaviour)this).aiAnimator.PlayUntilFinished(AIAnimatorDeSpawnClip, true, "despawn", -1f, false); while (!((BraveBehaviour)this).aiAnimator.IsPlaying(AIAnimatorDeSpawnClip)) { yield return null; } while (((BraveBehaviour)this).aiAnimator.IsPlaying(AIAnimatorDeSpawnClip)) { yield return null; } } ((BraveBehaviour)this).transform.position = Vector2.op_Implicit(targetPosition); if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).specRigidbody)) { ((BraveBehaviour)this).specRigidbody.Reinitialize(); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).aiAnimator) && Object.op_Implicit((Object)(object)((BraveBehaviour)this).spriteAnimator)) { ((Behaviour)((BraveBehaviour)this).aiAnimator).enabled = true; ((Behaviour)((BraveBehaviour)this).spriteAnimator).enabled = true; ((BraveBehaviour)this).aiAnimator.PlayUntilFinished(AIAnimatorSpawnClip, true, "Respawn", -1f, false); while (!((BraveBehaviour)this).aiAnimator.IsPlaying(AIAnimatorSpawnClip)) { yield return null; } while (((BraveBehaviour)this).aiAnimator.IsPlaying(AIAnimatorSpawnClip)) { yield return null; } } if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).behaviorSpeculator)) { ((Behaviour)((BraveBehaviour)this).behaviorSpeculator).enabled = true; } AkSoundEngine.PostEvent(EntityPlayScreemEvent, ((Component)this).gameObject); m_IsTeleporting = false; } private IEnumerator DoScream() { yield return null; float delay = 3f; float timer = 0f; while (timer < delay) { yield return null; if (!((BraveBehaviour)this).aiAnimator.IsPlaying("spawn")) { break; } timer += BraveTime.DeltaTime; ((BraveBehaviour)this).specRigidbody.Reinitialize(); } foreach (PixelCollider pixelCollider in ((BraveBehaviour)this).specRigidbody.PixelColliders) { pixelCollider.Enabled = true; } if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).specRigidbody) && IsOnBackRoomsFloor) { SpeculativeRigidbody specRigidbody = ((BraveBehaviour)this).specRigidbody; specRigidbody.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Combine((Delegate?)(object)specRigidbody.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(OnPreRigidBodyCollision)); } AkSoundEngine.PostEvent(EntityPlayScreemEvent, ((Component)this).gameObject); } public void OnPreRigidBodyCollision(SpeculativeRigidbody myRigidbody, PixelCollider myPixelCollider, SpeculativeRigidbody otherRigidbody, PixelCollider otherPixelCollider) { //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0231: Unknown result type (might be due to invalid IL or missing references) //IL_021b: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)this) | !Object.op_Implicit((Object)(object)((Component)this).gameObject) | !Object.op_Implicit((Object)(object)((BraveBehaviour)this).aiActor) | !Object.op_Implicit((Object)(object)otherRigidbody)) { return; } if (m_PlayerEaten) { PhysicsEngine.SkipCollision = true; return; } try { PlayerController component = ((Component)otherRigidbody).GetComponent(); Chest component2 = ((Component)otherRigidbody).GetComponent(); MajorBreakable component3 = ((Component)otherRigidbody).GetComponent(); MinorBreakable component4 = ((Component)otherRigidbody).GetComponent(); ExpandHatMindController component5 = ((Component)otherRigidbody).GetComponent(); Projectile component6 = ((Component)otherRigidbody).GetComponent(); BeamController component7 = ((Component)otherRigidbody).GetComponent(); BasicBeamController component8 = ((Component)otherRigidbody).GetComponent(); ProjectileAndBeamMotionModule component9 = ((Component)otherRigidbody).GetComponent(); PhysicsEngine.SkipCollision = (Object.op_Implicit((Object)(object)component) | Object.op_Implicit((Object)(object)component3) | Object.op_Implicit((Object)(object)component4) | Object.op_Implicit((Object)(object)component6) | Object.op_Implicit((Object)(object)component7) | Object.op_Implicit((Object)(object)component8)) || component9 != null; if (Object.op_Implicit((Object)(object)component5) && Object.op_Implicit((Object)(object)component5.owner)) { component5.Detach(); } if (Object.op_Implicit((Object)(object)component)) { if (((BraveBehaviour)component).healthHaver.IsVulnerable) { m_PlayerEaten = true; component.SetInputOverride("got eaten"); ((Behaviour)((BraveBehaviour)this).behaviorSpeculator).enabled = false; ((Behaviour)((BraveBehaviour)this).aiAnimator).enabled = false; ((BraveBehaviour)this).aiActor.BehaviorOverridesVelocity = false; ((BraveBehaviour)this).aiActor.ClearPath(); myRigidbody.Velocity = Vector2.zero; myRigidbody.Reinitialize(); ((BraveBehaviour)this).spriteAnimator.Stop(); ((MonoBehaviour)this).StartCoroutine(HandleExitFloor(component)); } } else if (Object.op_Implicit((Object)(object)component3)) { if (Object.op_Implicit((Object)(object)component2) && component2.IsMimic && !component2.IsOpen) { PhysicsEngine.SkipCollision = true; component3.ApplyDamage(1f, myRigidbody.Velocity, false, false, false); } else if (Object.op_Implicit((Object)(object)component2) && component3.TemporarilyInvulnerable && !component2.IsOpen && !component2.IsMimic) { PhysicsEngine.SkipCollision = true; if (Object.op_Implicit((Object)(object)((BraveBehaviour)otherRigidbody).sprite)) { SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)otherRigidbody).sprite, false); ((BraveBehaviour)otherRigidbody).renderer.enabled = false; } ReflectionHelpers.InvokeMethod(typeof(Chest), "ExplodeInSadness", component2); } else { component3.Break(new Vector2(1f, 0f)); } } else if (Object.op_Implicit((Object)(object)component4)) { component4.Break(myRigidbody.Velocity); } } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[ExpandTheGungeon] Warning: Exception caught at ExpandEntityController.OnPreRigidBodyCollision!", false); Debug.LogException(ex); } } } private IEnumerator HandleExitFloor(PlayerController player) { m_Player = player; m_Player.IsVisible = false; yield return null; float elapsed = 0f; float duration = 0.5f; Vector3 startPos = Vector2.op_Implicit(((BraveBehaviour)m_Player).specRigidbody.GetUnitCenter((ColliderType)1)); Vector3 finalOffset = ((BraveBehaviour)this).transform.position + new Vector3(0.5f, 0.2f); GameObject dummySpriteObject = new GameObject("PlayerSpriteDupe", new Type[1] { typeof(tk2dSprite) }) { layer = 22 }; dummySpriteObject.transform.position = startPos; tk2dSprite targetSprite = dummySpriteObject.GetComponent(); tk2dBaseSprite sprite = ((BraveBehaviour)m_Player).sprite; ExpandUtility.DuplicateSprite(targetSprite, (tk2dSprite)(object)((sprite is tk2dSprite) ? sprite : null)); ((tk2dBaseSprite)targetSprite).SetSprite(((BraveBehaviour)m_Player).sprite.spriteId); AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)this).gameObject); AkSoundEngine.PostEvent(EntityStopScreemEvent, ((Component)this).gameObject); while (elapsed < duration) { elapsed += BraveTime.DeltaTime; if (!Object.op_Implicit((Object)(object)targetSprite) || !Object.op_Implicit((Object)(object)((BraveBehaviour)targetSprite).transform)) { break; } ((BraveBehaviour)targetSprite).transform.localScale = Vector3.Lerp(Vector3.one, new Vector3(0.01f, 0.01f, 1f), elapsed / duration); ((BraveBehaviour)targetSprite).transform.position = Vector3.Lerp(startPos, finalOffset, elapsed / duration); yield return null; } AkSoundEngine.PostEvent("Play_VO_lichA_cackle_01", ((Component)this).gameObject); Vector2 val = Vector2.op_Implicit(dummySpriteObject.transform.position); Vector2 val2 = Vector2.op_Implicit(dummySpriteObject.transform.position + new Vector3(1f, 1f)); Color value = default(Color); ((Color)(ref value))..ctor(0.5f, 0.1f, 0.1f); GlobalSparksDoer.DoRandomParticleBurst(5, Vector2.op_Implicit(val), Vector2.op_Implicit(val2), new Vector3(-1f, 1f), 70f, 0.5f, (float?)null, (float?)0.75f, (Color?)value, (SparksType)7); GlobalSparksDoer.DoRandomParticleBurst(5, Vector2.op_Implicit(val), Vector2.op_Implicit(val2), Vector3.left, 70f, 0.5f, (float?)null, (float?)1.5f, (Color?)value, (SparksType)7); GlobalSparksDoer.DoRandomParticleBurst(5, Vector2.op_Implicit(val), Vector2.op_Implicit(val2), Vector3.left, 70f, 0.5f, (float?)null, (float?)2.25f, (Color?)value, (SparksType)7); GlobalSparksDoer.DoRandomParticleBurst(5, Vector2.op_Implicit(val), Vector2.op_Implicit(val2), new Vector3(-1f, -1f), 70f, 0.5f, (float?)null, (float?)3f, (Color?)value, (SparksType)7); yield return (object)new WaitForSeconds(1f); if (ExpandDebugCamera.DebugCameraEnabled) { ExpandDebugCamera.SetInitialCameraPosition(Pixelator.Instance, GameManager.Instance.MainCameraController); } else { Pixelator.Instance.FadeToBlack(0.15f, false, 0f); } yield return (object)new WaitForSeconds(0.3f); SpeculativeRigidbody specRigidbody = ((BraveBehaviour)this).specRigidbody; specRigidbody.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Remove((Delegate?)(object)specRigidbody.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(OnPreRigidBodyCollision)); Object.Destroy((Object)(object)dummySpriteObject); AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)this).gameObject); AkSoundEngine.PostEvent("Stop_EX_MUS_All", ((Component)this).gameObject); yield return null; m_Player.ClearAllInputOverrides(); yield return null; m_Player.PrepareForSceneTransition(); GameManager.Instance.LoadNextLevel(); } private Vector2 FindSafeSpawnInRoom(RoomHandler targetRoom, IntVector2 clearance, tk2dBaseSprite targetSprite, Vector2? offset = null) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: 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_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0028: 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_003e: 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_0052: 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_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_0088: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) IntVector2? randomAvailableCell = targetRoom.GetRandomAvailableCell((IntVector2?)clearance, (CellTypes?)(CellTypes)2, false, (CellValidator)null); IntVector2 val; Vector2 val2; if (randomAvailableCell.HasValue) { val = randomAvailableCell.Value; val2 = ((IntVector2)(ref val)).ToVector2(); } else { val = targetRoom.GetCenterCell(); val2 = ((IntVector2)(ref val)).ToVector2(); } Vector2 val3 = val2; Vector2 val4 = val3; Bounds untrimmedBounds = ((BraveBehaviour)this).sprite.GetUntrimmedBounds(); val3 = val4 + Vector2Extensions.WithY(Vector3Extensions.XY(((Bounds)(ref untrimmedBounds)).size), 0f) / 2f; if (offset.HasValue) { val3 += offset.Value; } return val3; } protected override void OnDestroy() { //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Expected O, but got Unknown //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Expected O, but got Unknown AkSoundEngine.PostEvent(EntityStopScreemEvent, ((Component)this).gameObject); if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).specRigidbody) && IsOnBackRoomsFloor) { SpeculativeRigidbody specRigidbody = ((BraveBehaviour)this).specRigidbody; specRigidbody.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Remove((Delegate?)(object)specRigidbody.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(OnPreRigidBodyCollision)); } ((BraveBehaviour)this).OnDestroy(); } } public class ExpandEntitySpawner : BraveBehaviour { public enum EntitySpawnState { Inactive, WaitingToSpawn, PreSpawn, DoCleanup } [SerializeField] public string EntityGUID; [SerializeField] public bool AllowForceSpawn; [SerializeField] public float ForceSpawnDelay; [SerializeField] public float ForceSpawnChanceAfterDelayOdds; [SerializeField] public float DelayBetweenForceSpawnChance; [SerializeField] public Vector2 SpawnOffset; [SerializeField] public IntVector2 SpawnClearance; [NonSerialized] public EntitySpawnState SpawnState; [NonSerialized] public RoomHandler ParentRoom; [NonSerialized] private Vector2? m_SpawnPositionOverride; [NonSerialized] private float m_SpawnTimer; [NonSerialized] private float m_SpawnChanceTimer; public ExpandEntitySpawner() { //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_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) AllowForceSpawn = true; ForceSpawnDelay = 360f; DelayBetweenForceSpawnChance = 40f; ForceSpawnChanceAfterDelayOdds = 0.35f; SpawnOffset = new Vector2(0.5f, 0.5f); SpawnClearance = new IntVector2(1, 2); SpawnState = EntitySpawnState.Inactive; m_SpawnTimer = ForceSpawnDelay; m_SpawnChanceTimer = DelayBetweenForceSpawnChance; } public void Start() { if (!Object.op_Implicit((Object)(object)EnemyDatabase.GetOrLoadByGuid(EntityGUID))) { SpawnState = EntitySpawnState.DoCleanup; } else if (GameManager.HasInstance) { ExpandUtility.CheckAndFixNextLevelIndex(GameManager.Instance); } } public void Update() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: 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_01d8: Unknown result type (might be due to invalid IL or missing references) if (!GameManager.HasInstance | GameManager.Instance.IsLoadingLevel | !Object.op_Implicit((Object)(object)GameManager.Instance.Dungeon) | Dungeon.IsGenerating) { return; } switch (SpawnState) { case EntitySpawnState.Inactive: break; case EntitySpawnState.WaitingToSpawn: if (string.IsNullOrEmpty(EntityGUID)) { SpawnState = EntitySpawnState.DoCleanup; break; } if (ParentRoom == null) { ParentRoom = Vector3Extensions.GetAbsoluteRoom(((Component)this).gameObject.transform.position); } if (ParentRoom == null) { SpawnState = EntitySpawnState.DoCleanup; break; } if (GameManager.Instance.AllPlayers != null && GameManager.Instance.AllPlayers.Length != 0) { for (int i = 0; i < GameManager.Instance.AllPlayers.Length; i++) { if (Object.op_Implicit((Object)(object)GameManager.Instance.AllPlayers[i]) && GameManager.Instance.AllPlayers[i].CurrentRoom == ParentRoom) { m_SpawnPositionOverride = null; SpawnState = EntitySpawnState.PreSpawn; return; } } } if (!AllowForceSpawn) { break; } if (m_SpawnTimer <= 0f && m_SpawnChanceTimer <= 0f) { if (Random.value < ForceSpawnChanceAfterDelayOdds && Object.op_Implicit((Object)(object)GameManager.Instance.PrimaryPlayer) && GameManager.Instance.PrimaryPlayer.CurrentRoom != null && GameManager.Instance.PrimaryPlayer.CurrentRoom.connectedRooms != null && GameManager.Instance.PrimaryPlayer.CurrentRoom.connectedRooms.Count > 0) { RoomHandler val = BraveUtility.RandomElement(GameManager.Instance.PrimaryPlayer.CurrentRoom.connectedRooms); if (val != null) { ParentRoom = val; m_SpawnPositionOverride = SpawnOffset + FindSafeSpawnInRoom(ParentRoom, SpawnClearance); SpawnState = EntitySpawnState.PreSpawn; break; } } m_SpawnChanceTimer = DelayBetweenForceSpawnChance; } if (m_SpawnTimer > 0f) { m_SpawnTimer -= BraveTime.DeltaTime; } else if (m_SpawnChanceTimer > 0f) { m_SpawnChanceTimer -= BraveTime.DeltaTime; } break; case EntitySpawnState.PreSpawn: SpawnState = EntitySpawnState.Inactive; ((MonoBehaviour)this).StartCoroutine(DoSpawn(m_SpawnPositionOverride)); break; case EntitySpawnState.DoCleanup: SpawnState = EntitySpawnState.Inactive; Object.Destroy((Object)(object)this); break; } } private IEnumerator DoSpawn(Vector2? SpawnPosition) { yield return null; float delay = 3f; for (float timer = 0f; timer < delay; timer += BraveTime.DeltaTime) { yield return null; } SpawnEntity(SpawnPosition); } private void SpawnEntity(Vector2? spawnPosition) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) Vector2? val = spawnPosition; if (!val.HasValue) { val = Vector2.op_Implicit(((BraveBehaviour)this).transform.position); } AIActor val2 = AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(EntityGUID), val.Value, ParentRoom, true, (AwakenAnimationType)2, true); if (Object.op_Implicit((Object)(object)val2)) { ParentRoom.DeregisterEnemy(val2, false); ExpandEntityManager component = ((Component)val2).gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { if (!string.IsNullOrEmpty(((Object)((Component)GameManager.Instance.Dungeon).gameObject).name) && ((Object)((Component)GameManager.Instance.Dungeon).gameObject).name.ToLower().StartsWith("base_backrooms")) { component.IsOnBackRoomsFloor = true; } component.Configured = true; if (Object.op_Implicit((Object)(object)((Component)val2).gameObject.transform.parent)) { ((Component)val2).gameObject.transform.SetParent(((Component)GameManager.Instance.Dungeon).gameObject.transform); } } } SpawnState = EntitySpawnState.DoCleanup; } private Vector2 FindSafeSpawnInRoom(RoomHandler targetRoom, IntVector2 clearance) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: 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_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) IntVector2? randomAvailableCell = targetRoom.GetRandomAvailableCell((IntVector2?)clearance, (CellTypes?)(CellTypes)2, false, (CellValidator)null); IntVector2 val; if (randomAvailableCell.HasValue) { val = randomAvailableCell.Value; return ((IntVector2)(ref val)).ToVector2(); } val = targetRoom.GetCenterCell(); return ((IntVector2)(ref val)).ToVector2(); } protected override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); } } public class ExpandHatProjectile : Projectile { public enum FireMode { SmartFire, DumbFire, ReturnToPlayer, Inactive } [Header("Mr Cap Input Guiding")] public bool AllowSingleEnemy = true; public bool IsReturning = true; public float TrackingSpeed = 345f; public float ReturnToPlayerSpeed = 3000f; public float DumbFireTime = 0.1f; public float SmartFireTime = 2f; public float ReturnToPlayerTime = 3f; public List ExcludedEnemies = new List { "45192ff6d6cb43ed8f1a874ab6bef316" }; public string HatReturnSFX = "Play_obj_katana_slash_01"; public MrCap hatItemOwner; public FireMode fireMode = FireMode.DumbFire; private Transform m_ChildSpriteTransform; private float m_DumbFireTimer; private float m_SmartFireTimer; private float m_LifeTimer; private bool m_Configured; public override void Start() { if (!Object.op_Implicit((Object)(object)((Component)this).gameObject.GetComponent())) { ((Behaviour)((Component)this).gameObject.AddComponent()).enabled = false; } else { ((Behaviour)((Component)this).gameObject.GetComponent()).enabled = false; } ((Projectile)this).Start(); } protected override void Move() { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Expected O, but got Unknown //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Expected O, but got Unknown //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Expected O, but got Unknown //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Expected O, but got Unknown //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_0256: Unknown result type (might be due to invalid IL or missing references) //IL_025b: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_029c: Unknown result type (might be due to invalid IL or missing references) //IL_02a1: Unknown result type (might be due to invalid IL or missing references) //IL_0272: Unknown result type (might be due to invalid IL or missing references) //IL_0277: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_0287: Unknown result type (might be due to invalid IL or missing references) //IL_028c: Unknown result type (might be due to invalid IL or missing references) //IL_03b6: Unknown result type (might be due to invalid IL or missing references) //IL_03bb: Unknown result type (might be due to invalid IL or missing references) //IL_03c0: Unknown result type (might be due to invalid IL or missing references) //IL_04d4: Unknown result type (might be due to invalid IL or missing references) //IL_04e4: Unknown result type (might be due to invalid IL or missing references) //IL_04e9: Unknown result type (might be due to invalid IL or missing references) //IL_04ee: Unknown result type (might be due to invalid IL or missing references) //IL_04fa: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_02a3: Unknown result type (might be due to invalid IL or missing references) //IL_02b2: Unknown result type (might be due to invalid IL or missing references) //IL_02e3: Unknown result type (might be due to invalid IL or missing references) //IL_03e6: Unknown result type (might be due to invalid IL or missing references) //IL_03ee: Unknown result type (might be due to invalid IL or missing references) //IL_03f3: Unknown result type (might be due to invalid IL or missing references) //IL_03f8: Unknown result type (might be due to invalid IL or missing references) //IL_040a: Unknown result type (might be due to invalid IL or missing references) //IL_043b: Unknown result type (might be due to invalid IL or missing references) //IL_03df: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01b6: 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_0312: Unknown result type (might be due to invalid IL or missing references) //IL_0474: Unknown result type (might be due to invalid IL or missing references) //IL_047c: Unknown result type (might be due to invalid IL or missing references) //IL_0481: Unknown result type (might be due to invalid IL or missing references) //IL_046a: Unknown result type (might be due to invalid IL or missing references) if (!m_Configured) { ((BraveBehaviour)this).specRigidbody.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Combine((Delegate?)(object)((BraveBehaviour)this).specRigidbody.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(HatOnPreRigidBodyCollision)); ((BraveBehaviour)this).specRigidbody.OnPreTileCollision = (OnPreTileCollisionDelegate)Delegate.Combine((Delegate?)(object)((BraveBehaviour)this).specRigidbody.OnPreTileCollision, (Delegate?)new OnPreTileCollisionDelegate(HatOnPreTileCollision)); base.OnBecameDebris = (Action)Delegate.Combine(base.OnBecameDebris, new Action(HatOnDebris)); base.OnBecameDebrisGrounded = (Action)Delegate.Combine(base.OnBecameDebrisGrounded, new Action(HatOnDebris)); if (!Object.op_Implicit((Object)(object)m_ChildSpriteTransform)) { m_ChildSpriteTransform = ((BraveBehaviour)this).transform.Find("Sprite"); } GameActor owner = ((Projectile)this).Owner; BraveInput instanceForPlayer = BraveInput.GetInstanceForPlayer(((PlayerController)((owner is PlayerController) ? owner : null)).PlayerIDX); Vector2 zero = Vector2.zero; zero = ((!instanceForPlayer.IsKeyboardAndMouse(false)) ? ((TwoAxisInputControl)instanceForPlayer.ActiveActions.Aim).Vector : (Vector3Extensions.XY(((PlayerController)/*isinst with value type is only supported in some contexts*/).unadjustedAimPoint) - ((BraveBehaviour)this).specRigidbody.UnitCenter)); float num = Vector2Extensions.ToAngle(zero); _ = ((BraveBehaviour)this).transform.eulerAngles; ((BraveBehaviour)this).transform.rotation = Quaternion.Euler(0f, 0f, num); if (Object.op_Implicit((Object)(object)m_ChildSpriteTransform)) { ((Component)m_ChildSpriteTransform).transform.localRotation = Quaternion.Euler(0f, 0f, 0f - num); } ((BraveBehaviour)this).specRigidbody.Velocity = Vector2.op_Implicit(((BraveBehaviour)this).transform.right * base.baseData.speed); ((Projectile)this).LastVelocity = ((BraveBehaviour)this).specRigidbody.Velocity; m_Configured = true; return; } switch (fireMode) { default: fireMode = FireMode.DumbFire; break; case FireMode.DumbFire: if (DumbFireTime > 0f && m_DumbFireTimer < DumbFireTime) { m_DumbFireTimer += BraveTime.DeltaTime; } else { fireMode = FireMode.SmartFire; } break; case FireMode.SmartFire: if (((Projectile)this).Owner is PlayerController) { GameActor owner2 = ((Projectile)this).Owner; BraveInput instanceForPlayer2 = BraveInput.GetInstanceForPlayer(((PlayerController)((owner2 is PlayerController) ? owner2 : null)).PlayerIDX); Vector2 zero2 = Vector2.zero; zero2 = ((!instanceForPlayer2.IsKeyboardAndMouse(false)) ? ((TwoAxisInputControl)instanceForPlayer2.ActiveActions.Aim).Vector : (Vector3Extensions.XY(((PlayerController)/*isinst with value type is only supported in some contexts*/).unadjustedAimPoint) - ((BraveBehaviour)this).specRigidbody.UnitCenter)); float num2 = Vector2Extensions.ToAngle(zero2); float num3 = Mathf.MoveTowardsAngle(((BraveBehaviour)this).transform.eulerAngles.z, num2, TrackingSpeed * BraveTime.DeltaTime); ((BraveBehaviour)this).transform.rotation = Quaternion.Euler(0f, 0f, num3); if (Object.op_Implicit((Object)(object)m_ChildSpriteTransform)) { ((Component)m_ChildSpriteTransform).transform.localRotation = Quaternion.Euler(0f, 0f, 0f - num3); } } if (SmartFireTime > 0f && m_SmartFireTimer < SmartFireTime) { m_SmartFireTimer += BraveTime.DeltaTime; } else { fireMode = FireMode.ReturnToPlayer; } break; case FireMode.ReturnToPlayer: m_LifeTimer += BraveTime.DeltaTime; if (m_LifeTimer > ReturnToPlayerTime) { if (Object.op_Implicit((Object)(object)hatItemOwner)) { hatItemOwner.InFlight = false; } fireMode = FireMode.Inactive; return; } if (Object.op_Implicit((Object)(object)((Projectile)this).Owner)) { Vector2 val = Vector3Extensions.XY(((BraveBehaviour)((Projectile)this).Owner).transform.position); if (Object.op_Implicit((Object)(object)((BraveBehaviour)((Projectile)this).Owner).sprite)) { val = ((BraveBehaviour)((Projectile)this).Owner).sprite.WorldTopCenter; } float num4 = Vector2Extensions.ToAngle(val - Vector3Extensions.XY(((BraveBehaviour)this).transform.position)); float num5 = Mathf.MoveTowardsAngle(((BraveBehaviour)this).transform.eulerAngles.z, num4, ReturnToPlayerSpeed * BraveTime.DeltaTime); ((BraveBehaviour)this).transform.rotation = Quaternion.Euler(0f, 0f, num5); if (Object.op_Implicit((Object)(object)m_ChildSpriteTransform)) { ((Component)m_ChildSpriteTransform).transform.localRotation = Quaternion.Euler(0f, 0f, 0f - num5); } if (Vector2.Distance(val, Vector2.op_Implicit(((BraveBehaviour)this).transform.position)) < 0.8f) { fireMode = FireMode.Inactive; return; } } break; case FireMode.Inactive: if (Object.op_Implicit((Object)(object)hatItemOwner)) { hatItemOwner.InFlight = false; } Object.Destroy((Object)(object)((Component)this).gameObject); return; } if (fireMode != FireMode.DumbFire) { ((BraveBehaviour)this).specRigidbody.Velocity = Vector2.op_Implicit(((BraveBehaviour)this).transform.right * base.baseData.speed); ((Projectile)this).LastVelocity = ((BraveBehaviour)this).specRigidbody.Velocity; } } public void HatOnDebris(DebrisObject obj) { Object.Destroy((Object)(object)((Component)obj).gameObject); } public void HatOnPreTileCollision(SpeculativeRigidbody myRigidbody, PixelCollider myPixelCollider, Tile tile, PixelCollider otherPixelCollider) { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) PhysicsEngine.SkipCollision = true; if ((fireMode == FireMode.DumbFire) | (fireMode == FireMode.ReturnToPlayer)) { return; } if (base.PenetratesInternalWalls) { IntVector2 position = tile.Position; CellData val = GameManager.Instance.Dungeon.data[position]; if (val == null || val.isRoomInternal) { return; } } fireMode = FireMode.ReturnToPlayer; } public void HatOnPreRigidBodyCollision(SpeculativeRigidbody myRigidbody, PixelCollider myPixelCollider, SpeculativeRigidbody otherRigidbody, PixelCollider otherPixelCollider) { //IL_004f: 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_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Invalid comparison between Unknown and I4 //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Invalid comparison between Unknown and I4 //IL_0219: Unknown result type (might be due to invalid IL or missing references) //IL_021e: Unknown result type (might be due to invalid IL or missing references) //IL_0224: Unknown result type (might be due to invalid IL or missing references) //IL_0230: Unknown result type (might be due to invalid IL or missing references) //IL_0235: Unknown result type (might be due to invalid IL or missing references) //IL_0365: Unknown result type (might be due to invalid IL or missing references) //IL_037f: Unknown result type (might be due to invalid IL or missing references) //IL_038a: Unknown result type (might be due to invalid IL or missing references) //IL_06a4: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_06bf: Unknown result type (might be due to invalid IL or missing references) //IL_06ca: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_05ad: Unknown result type (might be due to invalid IL or missing references) //IL_05c3: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)((Projectile)this).Owner) | !(((Projectile)this).Owner is PlayerController)) { return; } bool flag = false; PhysicsEngine.SkipCollision = true; if (fireMode == FireMode.DumbFire || ExpandTheGungeon.PortableShipInUse) { return; } GameActor owner = ((Projectile)this).Owner; PlayerController val = (PlayerController)(object)((owner is PlayerController) ? owner : null); if ((Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)myRigidbody).transform.position) == null) | (val.CurrentRoom == null) | (val.CurrentRoom != Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)myRigidbody).transform.position))) { return; } if (val.CurrentRoom != null && val.CurrentRoom.connectedRooms != null) { foreach (RoomHandler connectedRoom in val.CurrentRoom.connectedRooms) { if (connectedRoom.area != null) { CellArea area = connectedRoom.area; if (area != null && (int)area.PrototypeRoomCategory == 3) { return; } } } CellArea area2 = val.CurrentRoom.area; if (area2 != null && (int)area2.PrototypeRoomCategory == 3) { GameManager instance = GameManager.Instance; if (instance != null && instance.Dungeon?.tileIndices.tilesetId == (ValidTilesets?)128) { return; } } } AIActor component = ((Component)otherRigidbody).gameObject.GetComponent(); Chest component2 = ((Component)otherRigidbody).gameObject.GetComponent(); ForgeHammerController component3 = ((Component)otherRigidbody).gameObject.GetComponent(); MajorBreakable component4 = ((Component)otherRigidbody).gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)((Component)otherRigidbody).GetComponentInChildren()) || hatItemOwner.InUse || Object.op_Implicit((Object)(object)hatItemOwner.CurrentMindControl)) { return; } if (Object.op_Implicit((Object)(object)component3) && !Object.op_Implicit((Object)(object)component2) && !Object.op_Implicit((Object)(object)component)) { RoomHandler val2 = ReflectionHelpers.ReflectGetField(typeof(ForgeHammerController), "m_room", component3); if (val2 != null) { GameObject val3 = DungeonPlaceableUtility.InstantiateDungeonPlaceable(MrCap.MrCapHammer, val2, Vector2Extensions.ToIntVector2(Vector3Extensions.XY(((BraveBehaviour)component3).transform.position), (VectorConversions)2) - val2.area.basePosition, true, (AwakenAnimationType)0, false); if (Object.op_Implicit((Object)(object)val3)) { ExpandForgeHammerComponent component5 = val3.GetComponent(); component5.Owner = val; component5.ConfigureOnPlacement(val2); hatItemOwner.CurrentMindControl = val3.AddComponent(); hatItemOwner.CurrentMindControl.PreviousHammer = component3; hatItemOwner.CurrentMindControl.targetType = ExpandHatMindController.TargetType.Hammer; hatItemOwner.CurrentMindControl.UseFakeActorTarget = false; hatItemOwner.CurrentMindControl.MrCapItem = hatItemOwner; if (Object.op_Implicit((Object)(object)((Projectile)this).Owner)) { hatItemOwner.CurrentMindControl.Init(val, val3); } if (Object.op_Implicit((Object)(object)hatItemOwner.CurrentMindControl) && hatItemOwner.CurrentMindControl.AttachFailed) { hatItemOwner.CurrentMindControl.IsOnDeath = false; Object.Destroy((Object)(object)hatItemOwner.CurrentMindControl); hatItemOwner.CurrentMindControl = null; Object.Destroy((Object)(object)val3); } else { flag = true; } } } } if (!flag && !Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component2) && !component2.IsBroken && Vector3Extensions.GetAbsoluteRoom(((GameActor)val).CenterPosition) != null && Vector3Extensions.GetAbsoluteRoom(((Component)component2).gameObject.transform.position) == Vector3Extensions.GetAbsoluteRoom(((GameActor)val).CenterPosition)) { hatItemOwner.CurrentMindControl = ((Component)component2).gameObject.AddComponent(); hatItemOwner.CurrentMindControl.targetType = ExpandHatMindController.TargetType.Chest; hatItemOwner.CurrentMindControl.UseFakeActorTarget = false; hatItemOwner.CurrentMindControl.MrCapItem = hatItemOwner; if (Object.op_Implicit((Object)(object)((Projectile)this).Owner)) { hatItemOwner.CurrentMindControl.Init(val, ((Component)component2).gameObject); } if (Object.op_Implicit((Object)(object)hatItemOwner.CurrentMindControl) && hatItemOwner.CurrentMindControl.AttachFailed) { hatItemOwner.CurrentMindControl.IsOnDeath = false; Object.Destroy((Object)(object)hatItemOwner.CurrentMindControl); hatItemOwner.CurrentMindControl = null; } else { flag = true; } } if (!flag && Object.op_Implicit((Object)(object)component) && !Object.op_Implicit((Object)(object)((Component)otherRigidbody).gameObject.GetComponent())) { bool flag2 = false; if (((Object)component).name.ToLower().Contains("corrupted")) { flag2 = true; } if (ExcludedEnemies.Contains(component.EnemyGuid)) { flag2 = true; } if (!AllowSingleEnemy) { RoomHandler currentRoom = val.CurrentRoom; if (((currentRoom != null) ? currentRoom.GetActiveEnemies((ActiveEnemyType)1) : null) != null) { RoomHandler currentRoom2 = val.CurrentRoom; if (currentRoom2 != null && currentRoom2.GetActiveEnemies((ActiveEnemyType)1).Count < 2) { flag2 = true; } } } if (flag2) { if (fireMode != FireMode.ReturnToPlayer) { fireMode = FireMode.ReturnToPlayer; } if (Object.op_Implicit((Object)(object)component) && !((BraveBehaviour)component).healthHaver.IsDead && !((BraveBehaviour)component).healthHaver.IsBoss && !((GameActor)component).IsGone && component.ParentRoom != null && val.CurrentRoom != null && component.ParentRoom == val.CurrentRoom && Object.op_Implicit((Object)(object)((BraveBehaviour)component).behaviorSpeculator)) { ((BraveBehaviour)component).behaviorSpeculator.Stun(5f, true); } return; } if (!((BraveBehaviour)component).healthHaver.IsDead && !((BraveBehaviour)component).healthHaver.IsBoss && !((GameActor)component).IsGone && Vector3Extensions.GetAbsoluteRoom(((GameActor)component).CenterPosition) != null && Vector3Extensions.GetAbsoluteRoom(((GameActor)val).CenterPosition) != null && component.ParentRoom == Vector3Extensions.GetAbsoluteRoom(((GameActor)val).CenterPosition)) { hatItemOwner.CurrentMindControl = ((Component)component).gameObject.AddComponent(); hatItemOwner.CurrentMindControl.targetType = ExpandHatMindController.TargetType.AIActor; hatItemOwner.CurrentMindControl.MrCapItem = hatItemOwner; hatItemOwner.CurrentMindControl.Init(val, ((Component)component).gameObject); if (Object.op_Implicit((Object)(object)hatItemOwner.CurrentMindControl) && hatItemOwner.CurrentMindControl.AttachFailed) { hatItemOwner.CurrentMindControl.IsOnDeath = false; Object.Destroy((Object)(object)hatItemOwner.CurrentMindControl); hatItemOwner.CurrentMindControl = null; } else { flag = true; } } } if (!flag && Object.op_Implicit((Object)(object)component4) && !Object.op_Implicit((Object)(object)component) && !Object.op_Implicit((Object)(object)component2) && Vector3Extensions.GetAbsoluteRoom(((GameActor)val).CenterPosition) != null && Vector3Extensions.GetAbsoluteRoom(((Component)component4).gameObject.transform.position) == Vector3Extensions.GetAbsoluteRoom(((GameActor)val).CenterPosition) && (!Object.op_Implicit((Object)(object)component4) || !Object.op_Implicit((Object)(object)((Component)component4).GetComponent()) || !(((Component)component4).GetComponent().Opened | ((Component)component4).GetComponent().IsBroken))) { hatItemOwner.CurrentMindControl = ((Component)component4).gameObject.AddComponent(); hatItemOwner.CurrentMindControl.targetType = ExpandHatMindController.TargetType.Breakable; hatItemOwner.CurrentMindControl.UseFakeActorTarget = false; hatItemOwner.CurrentMindControl.MrCapItem = hatItemOwner; if (Object.op_Implicit((Object)(object)((Projectile)this).Owner)) { hatItemOwner.CurrentMindControl.Init(val, ((Component)component4).gameObject); } if (Object.op_Implicit((Object)(object)hatItemOwner.CurrentMindControl) && hatItemOwner.CurrentMindControl.AttachFailed) { hatItemOwner.CurrentMindControl.IsOnDeath = false; Object.Destroy((Object)(object)hatItemOwner.CurrentMindControl); hatItemOwner.CurrentMindControl = null; } else { flag = true; } } if (flag) { PlayCaptureSFX(((Component)otherRigidbody).gameObject); IsReturning = false; hatItemOwner.InFlight = false; hatItemOwner.InUse = true; Object.Destroy((Object)(object)((Component)myRigidbody).gameObject); } } private void PlayCaptureSFX(GameObject target) { if (!string.IsNullOrEmpty(HatReturnSFX)) { AkSoundEngine.PostEvent(HatReturnSFX, target); } } protected override void OnDestroy() { //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Expected O, but got Unknown //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Expected O, but got Unknown //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Expected O, but got Unknown //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Expected O, but got Unknown if (Object.op_Implicit((Object)(object)hatItemOwner)) { hatItemOwner.InFlight = false; if (IsReturning) { PlayCaptureSFX(((Component)hatItemOwner).gameObject); } } ((BraveBehaviour)this).specRigidbody.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Remove((Delegate?)(object)((BraveBehaviour)this).specRigidbody.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(HatOnPreRigidBodyCollision)); ((BraveBehaviour)this).specRigidbody.OnPreTileCollision = (OnPreTileCollisionDelegate)Delegate.Remove((Delegate?)(object)((BraveBehaviour)this).specRigidbody.OnPreTileCollision, (Delegate?)new OnPreTileCollisionDelegate(HatOnPreTileCollision)); base.OnBecameDebris = (Action)Delegate.Remove(base.OnBecameDebris, new Action(HatOnDebris)); base.OnBecameDebrisGrounded = (Action)Delegate.Remove(base.OnBecameDebrisGrounded, new Action(HatOnDebris)); ((Projectile)this).OnDestroy(); } } public class ExpandHatVFX : BraveBehaviour { public enum TargetType { NotConfigured, Player, AIActor, Generic } public enum HatDirectionality { NONE, TWO_WAY_HORIZONTAL, TWO_WAY_VERTICAL, FOUR_WAY, SIX_WAY } public bool AddOutline; public string SouthSprite; public string WestSprite; public string NorthSprite; public string EastSprite; public string SouthWestSprite; public string SouthEastSprite; public string NorthWestSprite; public string NorthEastSprite; public TargetType targetType; public bool vanishOverride; public PlayerController hatOwner; public HatDirectionality hatDirectionality; private bool forwardMeansSouth; private bool m_ConfigFinished; private tk2dSpriteDefinition m_currentPlayerSpriteDef; private Direction currentDirection; public Dictionary CachedSpriteDirections; private Direction hatDir; public static ExpandHatVFX PlaceHatOnObject(GameObject parentObject, Vector3 offset, TargetType parentType, bool attached = true, bool alreadyMiddleCenter = false, bool useHitbox = false) { //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) GameObject val = SpawnManager.SpawnVFX(MrCap.MrCapVFX, false); ExpandHatVFX component = val.GetComponent(); tk2dBaseSprite component2 = val.GetComponent(); SpeculativeRigidbody component3 = parentObject.GetComponent(); tk2dBaseSprite component4 = parentObject.GetComponent(); Vector3 val2 = ((!useHitbox || !Object.op_Implicit((Object)(object)component3) || component3.HitboxPixelCollider == null) ? Vector2Extensions.ToVector3ZUp(component4.WorldCenter, 0f) : Vector2Extensions.ToVector3ZUp(component3.HitboxPixelCollider.UnitCenter, 0f)); if (!alreadyMiddleCenter) { component2.PlaceAtPositionByAnchor(val2 + offset, (Anchor)4); } else { ((BraveBehaviour)component2).transform.position = val2 + offset; } if (attached) { val.transform.parent = parentObject.transform; component2.HeightOffGround = 0.2f; component4.AttachRenderer(component2); if (Object.op_Implicit((Object)(object)parentObject.GetComponent())) { SmartOverheadVFXController component5 = val.GetComponent(); if (Object.op_Implicit((Object)(object)component5)) { component5.Initialize(parentObject.GetComponent(), offset); } } } if (!alreadyMiddleCenter) { val.transform.localPosition = dfVectorExtensions.QuantizeFloor(val.transform.localPosition, 0.0625f); } component.targetType = parentType; return component; } public ExpandHatVFX() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) targetType = TargetType.NotConfigured; currentDirection = (Direction)4; hatDirectionality = HatDirectionality.SIX_WAY; CachedSpriteDirections = new Dictionary(); AddOutline = true; SouthSprite = "hatty_001"; WestSprite = "hatty_003"; NorthSprite = "hatty_004"; EastSprite = "hatty_005"; SouthWestSprite = "hatty_002"; SouthEastSprite = "hatty_006"; NorthWestSprite = "hatty_004"; NorthEastSprite = "hatty_004"; vanishOverride = false; } public void Start() { //IL_001b: Unknown result type (might be due to invalid IL or missing references) if (AddOutline && Object.op_Implicit((Object)(object)((BraveBehaviour)this).sprite)) { SpriteOutlineManager.AddOutlineToSprite(((BraveBehaviour)this).sprite, Color.black, 1f, 0f, (OutlineType)0); } } private bool ShouldBeVanished() { if (vanishOverride) { return true; } if (!Object.op_Implicit((Object)(object)hatOwner) | !hatOwner.IsVisible) { return true; } if (!Object.op_Implicit((Object)(object)((BraveBehaviour)hatOwner).sprite) | !((BraveBehaviour)((BraveBehaviour)hatOwner).sprite).renderer.enabled) { return true; } if (((GameActor)hatOwner).IsFalling | hatOwner.IsGhost) { return true; } if (hatOwner.IsDodgeRolling | hatOwner.IsSlidingOverSurface) { return true; } if (!Object.op_Implicit((Object)(object)((BraveBehaviour)hatOwner).spriteAnimator) | (((BraveBehaviour)hatOwner).spriteAnimator.CurrentClip.name == "doorway") | (((BraveBehaviour)hatOwner).spriteAnimator.CurrentClip.name == "spinfall")) { return true; } return false; } private void Update() { if (!((targetType == TargetType.NotConfigured) | Dungeon.IsGenerating | GameManager.Instance.IsLoadingLevel | !Object.op_Implicit((Object)(object)hatOwner))) { switch (targetType) { case TargetType.NotConfigured: break; case TargetType.Player: HandleVanish(); UpdateSprite(); break; case TargetType.AIActor: UpdateSprite(); break; case TargetType.Generic: break; } } } private void LateUpdate() { if (!((targetType == TargetType.NotConfigured) | Dungeon.IsGenerating | GameManager.Instance.IsLoadingLevel | !Object.op_Implicit((Object)(object)hatOwner)) && !m_ConfigFinished) { DetermineIfForwardMeansSouthOrEast(((BraveBehaviour)hatOwner).spriteAnimator); m_ConfigFinished = true; } } private void HandleVanish() { //IL_0062: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)((BraveBehaviour)this).sprite)) { return; } bool enabled = ((BraveBehaviour)((BraveBehaviour)this).sprite).renderer.enabled; bool flag = ShouldBeVanished(); if (flag) { ((BraveBehaviour)((BraveBehaviour)this).sprite).renderer.enabled = false; } else { ((BraveBehaviour)((BraveBehaviour)this).sprite).renderer.enabled = true; } if (AddOutline) { if (!enabled && !flag) { SpriteOutlineManager.AddOutlineToSprite(((BraveBehaviour)this).sprite, Color.black, 1f, 0f, (OutlineType)0); } else if (enabled && flag) { SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)this).sprite, false); } } } private void UpdateSprite() { //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_0043: 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_004e: 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_0055: 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_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Expected I4, but got Unknown //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Invalid comparison between Unknown and I4 //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Invalid comparison between Unknown and I4 //IL_00a6: 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_00a0: Invalid comparison between Unknown and I4 //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Invalid comparison between Unknown and I4 //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)((BraveBehaviour)this).sprite) || !((targetType == TargetType.AIActor) | (targetType == TargetType.Player))) { return; } m_currentPlayerSpriteDef = ((BraveBehaviour)hatOwner).sprite.GetCurrentSpriteDef(); Direction val = FetchOwnerFacingDirection(); if (val == currentDirection) { return; } currentDirection = val; Direction val2 = val; if (hatDirectionality == HatDirectionality.NONE) { val2 = (Direction)4; } else if (hatDirectionality == HatDirectionality.TWO_WAY_HORIZONTAL) { val2 = (Direction)((Object.op_Implicit((Object)(object)hatOwner) && ((BraveBehaviour)hatOwner).sprite.FlipX) ? 6 : 2); } else if (hatDirectionality == HatDirectionality.TWO_WAY_VERTICAL) { val2 = (((int)val != 7 && (int)val != 1 && (int)val != 0) ? ((Direction)4) : ((Direction)0)); } else if (hatDirectionality == HatDirectionality.FOUR_WAY) { if ((int)val == 7) { val2 = (Direction)6; } else if ((int)val == 1) { val2 = (Direction)2; } } switch ((int)val2) { case 4: ((BraveBehaviour)this).sprite.SetSprite(SouthSprite); break; case 0: ((BraveBehaviour)this).sprite.SetSprite(NorthSprite); break; case 6: ((BraveBehaviour)this).sprite.SetSprite(WestSprite); break; case 2: ((BraveBehaviour)this).sprite.SetSprite(EastSprite); break; case 7: ((BraveBehaviour)this).sprite.SetSprite(NorthWestSprite); break; case 1: ((BraveBehaviour)this).sprite.SetSprite(NorthEastSprite); break; default: ETGModConsole.Log((object)"ERROR: TRIED TO ROTATE HAT TO A NULL DIRECTION! (wtf?)", false); break; } } private Direction GetBaseDirectionForSprite(string spriteName) { if (!spriteName.Contains("front_right_")) { if (!spriteName.Contains("right_front_")) { if (spriteName.Contains("forward_")) { if (forwardMeansSouth) { return (Direction)4; } return (Direction)2; } if (!spriteName.Contains("back_right_")) { if (!spriteName.Contains("bright_")) { if (!spriteName.Contains("backwards_")) { if (spriteName.Contains("backward_")) { if (forwardMeansSouth) { return (Direction)0; } return (Direction)1; } if (!spriteName.Contains("bw_")) { if (!spriteName.Contains("north_")) { if (!spriteName.Contains("up_")) { if (!spriteName.Contains("back_")) { if (!spriteName.Contains("south_")) { if (!spriteName.Contains("front_")) { return (Direction)0; } return (Direction)4; } return (Direction)4; } return (Direction)0; } return (Direction)0; } return (Direction)0; } return (Direction)1; } return (Direction)1; } return (Direction)1; } return (Direction)1; } return (Direction)2; } return (Direction)2; } private void DetermineIfForwardMeansSouthOrEast(tk2dSpriteAnimator SpriteAnimator) { tk2dSpriteAnimationClip clipByName = SpriteAnimator.GetClipByName("idle_forward"); if (clipByName == null) { Debug.Log((object)$" {((Object)((Component)SpriteAnimator).gameObject).name} doesn't have an idle_forward animation for hat purposes"); return; } tk2dSpriteAnimationFrame val = clipByName.frames[0]; forwardMeansSouth = val.spriteCollection.spriteDefinitions[val.spriteId].name.Contains("forward"); } private Direction FetchOwnerFacingDirection() { //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_004c: 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_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Invalid comparison between Unknown and I4 //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Invalid comparison between Unknown and I4 //IL_0095: Unknown result type (might be due to invalid IL or missing references) if (m_currentPlayerSpriteDef == null) { return (Direction)4; } if (!CachedSpriteDirections.TryGetValue(m_currentPlayerSpriteDef.name, out hatDir)) { Direction val = (CachedSpriteDirections[m_currentPlayerSpriteDef.name] = GetBaseDirectionForSprite(m_currentPlayerSpriteDef.name)); hatDir = val; } if (!Object.op_Implicit((Object)(object)hatOwner) || !((BraveBehaviour)hatOwner).sprite.FlipX) { return hatDir; } if ((int)hatDir == 2) { return (Direction)6; } if ((int)hatDir == 1) { return (Direction)7; } return hatDir; } protected override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); } } public class ExpandInteractableDoor : DungeonPlaceableBehaviour, IPlaceConfigurable, IPlayerInteractable { public bool OpensAutomaticallyOnUnlocked; public bool OutlineSpriteIsOnDoorOnly; public List Locks; [NonSerialized] private bool m_hasOpened; [NonSerialized] private RoomHandler m_ParentRoom; public ExpandInteractableDoor() { //IL_0016: Unknown result type (might be due to invalid IL or missing references) base.placeableWidth = 2; base.placeableHeight = 2; base.difficulty = (PlaceableDifficulty)0; base.isPassable = true; OpensAutomaticallyOnUnlocked = true; OutlineSpriteIsOnDoorOnly = false; Locks = new List(); m_hasOpened = false; } public override GameObject InstantiateObject(RoomHandler targetRoom, IntVector2 loc, bool deferConfiguration = false) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) m_ParentRoom = targetRoom; return ((DungeonPlaceableBehaviour)this).InstantiateObject(targetRoom, loc, deferConfiguration); } public void ConfigureOnPlacement(RoomHandler room) { //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Expected O, but got Unknown //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Expected O, but got Unknown if (m_ParentRoom == null) { m_ParentRoom = room; } foreach (ExpandInteractableLock @lock in Locks) { @lock.ParentDoor = this; m_ParentRoom.RegisterInteractable((IPlayerInteractable)(object)@lock); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).specRigidbody)) { SpeculativeRigidbody specRigidbody = ((BraveBehaviour)this).specRigidbody; specRigidbody.OnRigidbodyCollision = (OnRigidbodyCollisionDelegate)Delegate.Combine((Delegate?)(object)specRigidbody.OnRigidbodyCollision, (Delegate?)new OnRigidbodyCollisionDelegate(HandleRigidbodyCollision)); } } private void HandleRigidbodyCollision(CollisionData rigidbodyCollision) { if (rigidbodyCollision == null || !Object.op_Implicit((Object)(object)rigidbodyCollision.OtherRigidbody) || !Object.op_Implicit((Object)(object)((Component)rigidbodyCollision.OtherRigidbody).GetComponent())) { return; } foreach (ExpandInteractableLock @lock in Locks) { if (Object.op_Implicit((Object)(object)@lock) && @lock.IsLocked && @lock.lockMode == ExpandInteractableLock.InteractableLockMode.NORMAL) { @lock.ForceUnlock(); } } } private void Open() { m_hasOpened = true; ((BraveBehaviour)this).spriteAnimator.Play(); ((Behaviour)((BraveBehaviour)this).specRigidbody).enabled = false; } public void Interact(PlayerController player) { if (IsValidForUse()) { Open(); } } private void Update() { if (!m_hasOpened && OpensAutomaticallyOnUnlocked && IsValidForUse()) { Open(); } } private bool IsValidForUse() { if (m_hasOpened) { return false; } bool result = true; foreach (ExpandInteractableLock @lock in Locks) { if (@lock.IsLocked || ((BraveBehaviour)@lock).spriteAnimator.IsPlaying(((BraveBehaviour)@lock).spriteAnimator.CurrentClip)) { result = false; } } return result; } public void OnEnteredRange(PlayerController interactor) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)this)) { SpriteOutlineManager.AddOutlineToSprite(((BraveBehaviour)this).sprite, Color.white, 0.1f, 0f, (OutlineType)0); ((BraveBehaviour)this).sprite.UpdateZDepth(); } } public void OnExitRange(PlayerController interactor) { if (Object.op_Implicit((Object)(object)this)) { SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)this).sprite, false); ((BraveBehaviour)this).sprite.UpdateZDepth(); } } public float GetDistanceToPoint(Vector2 point) { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002f: 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_003f: 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_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) //IL_0060: 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_0079: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: 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_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) if (!IsValidForUse() | OpensAutomaticallyOnUnlocked | OutlineSpriteIsOnDoorOnly) { return 1000f; } Bounds bounds = ((BraveBehaviour)this).sprite.GetBounds(); ((Bounds)(ref bounds)).SetMinMax(((Bounds)(ref bounds)).min + ((BraveBehaviour)this).transform.position, ((Bounds)(ref bounds)).max + ((BraveBehaviour)this).transform.position); float num = Mathf.Max(Mathf.Min(point.x, ((Bounds)(ref bounds)).max.x), ((Bounds)(ref bounds)).min.x); float num2 = Mathf.Max(Mathf.Min(point.y, ((Bounds)(ref bounds)).max.y), ((Bounds)(ref bounds)).min.y); return Mathf.Sqrt((point.x - num) * (point.x - num) + (point.y - num2) * (point.y - num2)); } public float GetOverrideMaxDistance() { return -1f; } public string GetAnimationState(PlayerController interactor, out bool shouldBeFlipped) { shouldBeFlipped = false; return string.Empty; } protected override void OnDestroy() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Expected O, but got Unknown //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Expected O, but got Unknown if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).specRigidbody)) { SpeculativeRigidbody specRigidbody = ((BraveBehaviour)this).specRigidbody; specRigidbody.OnRigidbodyCollision = (OnRigidbodyCollisionDelegate)Delegate.Remove((Delegate?)(object)specRigidbody.OnRigidbodyCollision, (Delegate?)new OnRigidbodyCollisionDelegate(HandleRigidbodyCollision)); } ((DungeonPlaceableBehaviour)this).OnDestroy(); } } public class ExpandInteractableLock : BraveBehaviour, IPlayerInteractable { public enum InteractableLockMode { NORMAL, RESOURCEFUL_RAT, RAT_REWARD, CUSTOMKEY } [PickupIdentifier] public int KeyItemID; public bool Suppress; public bool SuppressOutline; public InteractableLockMode lockMode; [CheckAnimation(null)] public string IdleAnimName; [CheckAnimation(null)] public string UnlockAnimName; [CheckAnimation(null)] public string NoKeyAnimName; [CheckAnimation(null)] public string SpitAnimName; [CheckAnimation(null)] public string BustedAnimName; [NonSerialized] public ExpandInteractableDoor ParentDoor; [NonSerialized] public Action OnUnlocked; [NonSerialized] public bool IsLocked; [NonSerialized] public bool HasBeenPicked; [NonSerialized] public bool IsBusted; private bool m_lockHasApproached; private bool m_lockHasLaughed; private bool m_lockHasSpit; public ExpandInteractableLock() { KeyItemID = -1; Suppress = false; SuppressOutline = false; IdleAnimName = "rat_lock_open_idle"; UnlockAnimName = "rat_lock_open"; NoKeyAnimName = string.Empty; SpitAnimName = string.Empty; BustedAnimName = string.Empty; lockMode = InteractableLockMode.RAT_REWARD; IsLocked = true; HasBeenPicked = false; IsBusted = false; } public void Interact(PlayerController player) { //IL_00b8: Unknown result type (might be due to invalid IL or missing references) if (IsBusted | !IsLocked) { return; } bool flag = false; switch (lockMode) { default: flag = player.carriedConsumables.InfiniteKeys || player.carriedConsumables.KeyBullets >= 1; if (!player.carriedConsumables.InfiniteKeys && player.carriedConsumables.KeyBullets > 0) { player.carriedConsumables.KeyBullets = player.carriedConsumables.KeyBullets - 1; } break; case InteractableLockMode.RESOURCEFUL_RAT: { for (int i = 0; i < player.passiveItems.Count; i++) { if (player.passiveItems[i] is SpecialKeyItem && (int)((SpecialKeyItem)/*isinst with value type is only supported in some contexts*/).keyType == 0) { flag = true; int pickupObjectId = ((PickupObject)player.passiveItems[i]).PickupObjectId; player.RemovePassiveItem(pickupObjectId); GameUIRoot.Instance.UpdatePlayerConsumables(player.carriedConsumables); } } break; } case InteractableLockMode.RAT_REWARD: if (player.carriedConsumables.ResourcefulRatKeys > 0) { PlayerConsumables carriedConsumables = player.carriedConsumables; int resourcefulRatKeys = carriedConsumables.ResourcefulRatKeys; carriedConsumables.ResourcefulRatKeys = resourcefulRatKeys - 1; flag = true; GameUIRoot.Instance.UpdatePlayerConsumables(player.carriedConsumables); } break; case InteractableLockMode.CUSTOMKEY: if (player.HasPassiveItem(KeyItemID)) { player.RemovePassiveItem(KeyItemID); flag = true; } break; } if (flag) { OnExitRange(player); IsLocked = false; OnUnlocked?.Invoke(); if (!string.IsNullOrEmpty(UnlockAnimName)) { ((BraveBehaviour)this).spriteAnimator.PlayAndDisableObject(UnlockAnimName, (GameObject)null); } } else { if (string.IsNullOrEmpty(NoKeyAnimName)) { return; } if (!string.IsNullOrEmpty(IdleAnimName) && ((BraveBehaviour)this).spriteAnimator.GetClipByName(IdleAnimName) != null) { if (!string.IsNullOrEmpty(SpitAnimName)) { ((BraveBehaviour)this).spriteAnimator.Play(NoKeyAnimName); } else { ((BraveBehaviour)this).spriteAnimator.PlayForDuration(NoKeyAnimName, 1f, IdleAnimName, false); } m_lockHasSpit = false; m_lockHasLaughed = true; } else { ((BraveBehaviour)this).spriteAnimator.Play(NoKeyAnimName); } } } public void BreakLock() { if (IsLocked && !IsBusted && lockMode == InteractableLockMode.NORMAL) { IsBusted = true; if (!string.IsNullOrEmpty(BustedAnimName) && !((BraveBehaviour)this).spriteAnimator.IsPlaying(BustedAnimName)) { ((BraveBehaviour)this).spriteAnimator.Play(BustedAnimName); } } } public void ForceUnlock() { if (IsLocked) { SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)this).sprite, false); ((BraveBehaviour)this).sprite.UpdateZDepth(); IsLocked = false; OnUnlocked?.Invoke(); if (!string.IsNullOrEmpty(UnlockAnimName)) { ((BraveBehaviour)this).spriteAnimator.PlayAndDisableObject(UnlockAnimName, (GameObject)null); } } } private void ChangeToSpit(tk2dSpriteAnimator arg1, tk2dSpriteAnimationClip arg2) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).spriteAnimator)) { ((BraveBehaviour)this).spriteAnimator.PlayForDuration(SpitAnimName, -1f, IdleAnimName, false); } } private void Update() { //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) if (IsBusted || !IsLocked || string.IsNullOrEmpty(SpitAnimName)) { return; } float num = Vector2.Distance(((BraveBehaviour)this).sprite.WorldCenter, ((BraveBehaviour)GameManager.Instance.PrimaryPlayer).specRigidbody.UnitCenter); if (!m_lockHasApproached && num < 2.5f) { ((BraveBehaviour)this).spriteAnimator.Play(IdleAnimName); m_lockHasApproached = true; } else if (num > 2.5f) { if (m_lockHasLaughed) { ((BraveBehaviour)this).spriteAnimator.Play(SpitAnimName); } m_lockHasLaughed = false; m_lockHasApproached = false; } if (!m_lockHasSpit && Object.op_Implicit((Object)(object)((BraveBehaviour)this).spriteAnimator) && ((BraveBehaviour)this).spriteAnimator.IsPlaying(SpitAnimName) && ((BraveBehaviour)this).spriteAnimator.CurrentFrame == 3) { m_lockHasSpit = true; Object obj = BraveResources.Load("Global VFX/VFX_Lock_Spit", ".prefab"); tk2dSprite componentInChildren = SpawnManager.SpawnVFX((GameObject)(object)((obj is GameObject) ? obj : null), false).GetComponentInChildren(); ((tk2dBaseSprite)componentInChildren).UpdateZDepth(); ((tk2dBaseSprite)componentInChildren).PlaceAtPositionByAnchor(Vector2.op_Implicit(((BraveBehaviour)((BraveBehaviour)this).spriteAnimator).sprite.WorldCenter), (Anchor)7); } } public void OnEnteredRange(PlayerController interactor) { //IL_0049: Unknown result type (might be due to invalid IL or missing references) if (!(!Object.op_Implicit((Object)(object)this) | SuppressOutline) && !Suppress) { tk2dBaseSprite sprite = ((BraveBehaviour)this).sprite; if (Object.op_Implicit((Object)(object)ParentDoor) && ParentDoor.OutlineSpriteIsOnDoorOnly) { sprite = ((BraveBehaviour)ParentDoor).sprite; } SpriteOutlineManager.AddOutlineToSprite(sprite, Color.white, 0.1f, 0f, (OutlineType)0); sprite.UpdateZDepth(); } } public void OnExitRange(PlayerController interactor) { if (!(!Object.op_Implicit((Object)(object)this) | SuppressOutline) && !Suppress) { tk2dBaseSprite sprite = ((BraveBehaviour)this).sprite; if (Object.op_Implicit((Object)(object)ParentDoor) && ParentDoor.OutlineSpriteIsOnDoorOnly) { sprite = ((BraveBehaviour)ParentDoor).sprite; } SpriteOutlineManager.RemoveOutlineFromSprite(sprite, false); sprite.UpdateZDepth(); } } public float GetDistanceToPoint(Vector2 point) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: 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_0050: 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_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: 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) if (IsBusted || !IsLocked || Suppress) { return 10000f; } Bounds bounds = ((BraveBehaviour)this).sprite.GetBounds(); ((Bounds)(ref bounds)).SetMinMax(((Bounds)(ref bounds)).min + ((BraveBehaviour)this).transform.position, ((Bounds)(ref bounds)).max + ((BraveBehaviour)this).transform.position); float num = Mathf.Max(Mathf.Min(point.x, ((Bounds)(ref bounds)).max.x), ((Bounds)(ref bounds)).min.x); float num2 = Mathf.Max(Mathf.Min(point.y, ((Bounds)(ref bounds)).max.y), ((Bounds)(ref bounds)).min.y); return Mathf.Sqrt((point.x - num) * (point.x - num) + (point.y - num2) * (point.y - num2)); } public float GetOverrideMaxDistance() { return -1f; } public string GetAnimationState(PlayerController interactor, out bool shouldBeFlipped) { shouldBeFlipped = false; return string.Empty; } protected override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); } } public class ExpandSpriteBobber : BraveBehaviour { public enum BobType { Standard, TinyBoi, BigChonker } public bool OutlineThatBob; public bool IsLocalBob; public bool IsBobbin; public bool BobOnMovement; public bool BobberHasAnimator; public float BobSpeed; public float BobUpIntensity; public float BobDownIntensity; public GameObject[] ImpactVFXObjects; private List ImpactSoundFX; public Vector2 ImpactVFXFootprint; public Vector2 ImpactVFXOffset; public Color BobOutlineColor; public Vector3 BobDirection; public BobType bobType; public ScreenShakeSettings SlamScreenShakeSettings; public SpeculativeRigidbody RigidBodyToWatch; public tk2dSprite SpriteToBob; private bool m_BobInitComplete; private Vector2 m_CachedPosition; private Transform m_CachedParent; private tk2dSprite m_CachedBobSprite; public ExpandSpriteBobber() { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0058: 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_0074: 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_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0094: 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_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Expected O, but got Unknown IsLocalBob = true; IsBobbin = false; BobOnMovement = true; OutlineThatBob = true; BobOutlineColor = Color.black; BobUpIntensity = 0.08f; BobDownIntensity = 0.08f; BobDirection = new Vector3(0f, 0.025f, 0f); bobType = BobType.Standard; ImpactVFXFootprint = new Vector2(2f, 0.2f); ImpactVFXOffset = new Vector2(0.4f, 0.1f); SlamScreenShakeSettings = new ScreenShakeSettings { magnitude = 0.6f, speed = 10f, time = 0.15f, falloff = 0.5f, direction = new Vector2(0f, -1f), vibrationType = (VibrationType)10, simpleVibrationTime = (Time)20, simpleVibrationStrength = (Strength)20 }; ImpactSoundFX = new List { "Play_EX_ChestSlam_01", "Play_EX_ChestSlam_02" }; BobberHasAnimator = true; m_BobInitComplete = false; } public void AttachBobber(Transform ParentTransform, Vector3? InitialOffset = null, bool alreadyMiddleCenter = false, bool useHitbox = false) { //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //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) //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_0179: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_018f: 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_01d7: Unknown result type (might be due to invalid IL or missing references) //IL_0237: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_026a: Unknown result type (might be due to invalid IL or missing references) //IL_026b: Unknown result type (might be due to invalid IL or missing references) //IL_026c: Unknown result type (might be due to invalid IL or missing references) //IL_0250: Unknown result type (might be due to invalid IL or missing references) //IL_0251: Unknown result type (might be due to invalid IL or missing references) //IL_0252: Unknown result type (might be due to invalid IL or missing references) //IL_0220: Unknown result type (might be due to invalid IL or missing references) //IL_022a: Unknown result type (might be due to invalid IL or missing references) //IL_02c7: Unknown result type (might be due to invalid IL or missing references) //IL_02d1: Unknown result type (might be due to invalid IL or missing references) //IL_02ea: Unknown result type (might be due to invalid IL or missing references) //IL_02ef: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Unknown result type (might be due to invalid IL or missing references) if (!m_BobInitComplete) { if (ImpactVFXObjects == null) { ImpactVFXObjects = (GameObject[])(object)new GameObject[1] { ExpandAssets.LoadOfficialAsset("VFX_Dust_Ring_Generic_001", ExpandAssets.AssetSource.SharedAuto1) }; } switch (bobType) { case BobType.Standard: BobUpIntensity = 0.08f; BobDownIntensity = 0.08f; BobDirection = new Vector3(0f, 0.025f, 0f); ImpactVFXFootprint = new Vector2(2f, 0.2f); break; case BobType.TinyBoi: BobUpIntensity = 0.065f; BobDownIntensity = 0.065f; BobDirection = new Vector3(0f, 0.022f, 0f); ImpactVFXFootprint = new Vector2(1f, 1f); ImpactSoundFX = new List { "Play_WPN_woodbeam_impact_01", "Play_WPN_woodbeam_impact_02" }; break; case BobType.BigChonker: BobUpIntensity = 0.15f; BobDownIntensity = 0.15f; BobDirection = new Vector3(0f, 0.015f, 0f); ImpactVFXFootprint = new Vector2(4f, 4f); ImpactSoundFX = new List { "Play_EX_ChestSlam_03", "Play_EX_ChestSlam_04" }; break; } m_CachedParent = ParentTransform; m_CachedPosition = Vector2.op_Implicit(((BraveBehaviour)this).transform.position); Vector3 val = Vector3.zero; if (InitialOffset.HasValue) { val = InitialOffset.Value; } SpriteToBob = ((Component)ParentTransform).gameObject.GetComponent(); m_CachedBobSprite = ((Component)this).gameObject.AddComponent(); ExpandUtility.DuplicateSprite(m_CachedBobSprite, SpriteToBob); if (OutlineThatBob) { SpriteOutlineManager.AddOutlineToSprite((tk2dBaseSprite)(object)m_CachedBobSprite, BobOutlineColor); } RigidBodyToWatch = ((Component)m_CachedParent).gameObject.GetComponent(); Vector3 val2 = ((!useHitbox || !Object.op_Implicit((Object)(object)RigidBodyToWatch) || RigidBodyToWatch.HitboxPixelCollider == null) ? Vector2Extensions.ToVector3ZUp(((tk2dBaseSprite)SpriteToBob).WorldCenter, 0f) : Vector2Extensions.ToVector3ZUp(RigidBodyToWatch.HitboxPixelCollider.UnitCenter, 0f)); if (!alreadyMiddleCenter) { ((tk2dBaseSprite)m_CachedBobSprite).PlaceAtPositionByAnchor(val2 + val, (Anchor)4); } else { ((BraveBehaviour)m_CachedBobSprite).transform.position = val2 + val; } if (Object.op_Implicit((Object)(object)m_CachedParent) && (Object)(object)m_CachedParent != (Object)(object)((BraveBehaviour)this).transform) { ((BraveBehaviour)this).transform.parent = m_CachedParent; } ((tk2dBaseSprite)SpriteToBob).AttachRenderer((tk2dBaseSprite)(object)m_CachedBobSprite); if (!alreadyMiddleCenter) { ((BraveBehaviour)this).transform.localPosition = dfVectorExtensions.QuantizeFloor(((BraveBehaviour)this).transform.localPosition, 0.0625f); } if (IsLocalBob) { m_CachedPosition = Vector2.op_Implicit(((BraveBehaviour)this).transform.localPosition); } if (((tk2dBaseSprite)SpriteToBob).usesOverrideMaterial && (Object)(object)((BraveBehaviour)SpriteToBob).renderer.material.shader == (Object)(object)ShaderCache.Acquire("Brave/Internal/RainbowChestShader")) { ((tk2dBaseSprite)m_CachedBobSprite).usesOverrideMaterial = true; ((BraveBehaviour)m_CachedBobSprite).renderer.material.shader = ShaderCache.Acquire("Brave/Internal/RainbowChestShader"); } m_BobInitComplete = true; IsBobbin = true; ShowBobber(); } } public void ShowBobber() { //IL_004c: Unknown result type (might be due to invalid IL or missing references) if (m_BobInitComplete) { ((BraveBehaviour)m_CachedBobSprite).renderer.enabled = true; ((BraveBehaviour)SpriteToBob).renderer.enabled = false; IsBobbin = true; ((tk2dBaseSprite)m_CachedBobSprite).UpdateZDepth(); if (OutlineThatBob) { SpriteOutlineManager.AddOutlineToSprite((tk2dBaseSprite)(object)m_CachedBobSprite, BobOutlineColor); SpriteOutlineManager.RemoveOutlineFromSprite((tk2dBaseSprite)(object)SpriteToBob, false); ((tk2dBaseSprite)SpriteToBob).UpdateZDepth(); } ((MonoBehaviour)this).StartCoroutine(HandleSpriteBob()); } } public void HideBobber() { //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_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) if (m_BobInitComplete) { IsBobbin = false; ((MonoBehaviour)this).StopCoroutine(HandleSpriteBob()); if (IsLocalBob) { ((BraveBehaviour)this).transform.localPosition = Vector2.op_Implicit(m_CachedPosition); } else { ((BraveBehaviour)this).transform.position = Vector2.op_Implicit(m_CachedPosition); } ((BraveBehaviour)m_CachedBobSprite).renderer.enabled = false; ((BraveBehaviour)SpriteToBob).renderer.enabled = true; if (OutlineThatBob) { SpriteOutlineManager.RemoveOutlineFromSprite((tk2dBaseSprite)(object)m_CachedBobSprite, false); SpriteOutlineManager.AddOutlineToSprite((tk2dBaseSprite)(object)SpriteToBob, BobOutlineColor); ((tk2dBaseSprite)SpriteToBob).UpdateZDepth(); } } } public void DestroyBobber() { //IL_0027: Unknown result type (might be due to invalid IL or missing references) ((MonoBehaviour)this).StopCoroutine(HandleSpriteBob()); if (OutlineThatBob) { SpriteOutlineManager.RemoveOutlineFromSprite((tk2dBaseSprite)(object)m_CachedBobSprite, false); SpriteOutlineManager.AddOutlineToSprite((tk2dBaseSprite)(object)SpriteToBob, BobOutlineColor); ((tk2dBaseSprite)SpriteToBob).UpdateZDepth(); } ((tk2dBaseSprite)SpriteToBob).DetachRenderer((tk2dBaseSprite)(object)m_CachedBobSprite); ((BraveBehaviour)SpriteToBob).renderer.enabled = true; Object.Destroy((Object)(object)((Component)this).gameObject); } private IEnumerator HandleSpriteBob() { while (IsBobbin) { if (BobOnMovement) { Vector2? val = RigidBodyToWatch?.Velocity; Vector2 zero = Vector2.zero; if (val.HasValue && (!val.HasValue || val.GetValueOrDefault() == zero)) { if (IsLocalBob) { ((BraveBehaviour)this).transform.localPosition = Vector2.op_Implicit(m_CachedPosition); } else { ((BraveBehaviour)this).transform.position = Vector2.op_Implicit(m_CachedPosition); } } } while (BobOnMovement) { Vector2? val = RigidBodyToWatch?.Velocity; Vector2 zero = Vector2.zero; if (!val.HasValue || (val.HasValue && !(val.GetValueOrDefault() == zero))) { break; } yield return null; } float elapsed = 0f; while (elapsed < BobUpIntensity) { elapsed += BraveTime.DeltaTime; if (IsLocalBob) { Transform transform = ((BraveBehaviour)this).transform; transform.localPosition += BobDirection; } else { Transform transform2 = ((BraveBehaviour)this).transform; transform2.position += BobDirection; } if (BobOnMovement) { Vector2? val = RigidBodyToWatch?.Velocity; Vector2 zero = Vector2.zero; if (val.HasValue && (!val.HasValue || val.GetValueOrDefault() == zero)) { elapsed += BobUpIntensity; } } yield return null; } elapsed = 0f; while (elapsed < BobDownIntensity) { elapsed += BraveTime.DeltaTime; if (IsLocalBob) { Transform transform3 = ((BraveBehaviour)this).transform; transform3.localPosition -= BobDirection; } else { Transform transform4 = ((BraveBehaviour)this).transform; transform4.position -= BobDirection; } if (BobOnMovement) { Vector2? val = RigidBodyToWatch?.Velocity; Vector2 zero = Vector2.zero; if (val.HasValue && (!val.HasValue || val.GetValueOrDefault() == zero)) { elapsed += BobDownIntensity; } } yield return null; } HandleImpactVFX(); yield return null; } yield return null; if (IsLocalBob) { ((BraveBehaviour)this).transform.localPosition = Vector2.op_Implicit(m_CachedPosition); } else { ((BraveBehaviour)this).transform.position = Vector2.op_Implicit(m_CachedPosition); } } private void HandleImpactVFX() { //IL_0027: 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_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0195: 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_016e: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: 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_012d: 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) if (IsLocalBob) { ((BraveBehaviour)this).transform.localPosition = Vector2.op_Implicit(m_CachedPosition); } else { ((BraveBehaviour)this).transform.position = Vector2.op_Implicit(m_CachedPosition); } if (bobType == BobType.BigChonker) { GameManager.Instance.MainCameraController.DoScreenShake(SlamScreenShakeSettings, (Vector2?)Vector2.op_Implicit(((BraveBehaviour)this).transform.position + new Vector3(0f, 2f)), false); } switch (bobType) { case BobType.BigChonker: { if (ImpactVFXObjects == null || ImpactVFXObjects.Length == 0) { break; } int num = Random.Range(2, 4); if (Random.value > 0.4f) { for (int i = 0; i < num; i++) { Vector2 val = Vector2.op_Implicit(((BraveBehaviour)this).transform.position); val += new Vector2(Random.Range(ImpactVFXOffset.x, ImpactVFXFootprint.x), Random.Range(ImpactVFXOffset.y, ImpactVFXFootprint.y)); Object.Instantiate(BraveUtility.RandomElement(ImpactVFXObjects), Vector2.op_Implicit(val), Quaternion.identity); } } break; } case BobType.TinyBoi: if (ImpactVFXObjects != null && ImpactVFXObjects.Length != 0) { Object.Instantiate(BraveUtility.RandomElement(ImpactVFXObjects), Vector2.op_Implicit(((tk2dBaseSprite)SpriteToBob).WorldBottomCenter), Quaternion.identity); } break; case BobType.Standard: GameObjectExtensions.SetLayerRecursively(ExpandUtility.AttachEffect(ExpandObjectDatabase.VFXLeadMaidenMove, ((Component)this).gameObject, new Vector3(0f, -0.5f), attached: true, alreadyMiddleCenter: false, useHitbox: false, ignorePools: true, 1.2f), 20); break; } ImpactSoundFX = BraveUtility.Shuffle(ImpactSoundFX); AkSoundEngine.PostEvent(BraveUtility.RandomElement(ImpactSoundFX), ((Component)this).gameObject); } public void Update() { if (m_BobInitComplete && BobberHasAnimator && IsBobbin && ((tk2dBaseSprite)m_CachedBobSprite).GetCurrentSpriteDef() != ((tk2dBaseSprite)SpriteToBob).GetCurrentSpriteDef()) { ((tk2dBaseSprite)m_CachedBobSprite).SetSprite(((tk2dBaseSprite)SpriteToBob).GetCurrentSpriteDef().name); } } protected override void OnDestroy() { ((MonoBehaviour)this).StopCoroutine(HandleSpriteBob()); ((BraveBehaviour)this).OnDestroy(); } } public class ExpandTeleportBehavior : BasicAttackBehavior { public enum ShadowSupport { None, Fade, Animate } public enum TeleportState { None, TeleportOut, Gone, GoneBehavior, TeleportIn } public bool AttackableDuringAnimation; public bool AvoidWalls; [NonSerialized] public bool IsDoingManualTeleport; public bool StayOnScreen = true; public float MinDistanceFromPlayer = 4f; public float MaxDistanceFromPlayer = -1f; public float GoneTime = 1f; [InspectorCategory("Conditions")] public bool OnlyTeleportIfPlayerUnreachable; [InspectorCategory("Attack")] public BulletScriptSelector teleportOutBulletScript; [InspectorCategory("Attack")] public BulletScriptSelector teleportInBulletScript; [InspectorCategory("Attack")] public AttackBehaviorBase goneAttackBehavior; [InspectorCategory("Attack")] public bool AllowCrossRoomTeleportation; [InspectorCategory("Visuals")] public string teleportOutAnim = "teleport_out"; [InspectorCategory("Visuals")] public string teleportInAnim = "teleport_in"; [InspectorCategory("Visuals")] public bool teleportRequiresTransparency; [InspectorCategory("Visuals")] public bool hasOutlinesDuringAnim = true; [InspectorCategory("Visuals")] public ShadowSupport shadowSupport; [InspectorCategory("Visuals")] [InspectorShowIf("ShowShadowAnimationNames")] public string shadowOutAnim; [InspectorShowIf("ShowShadowAnimationNames")] [InspectorCategory("Visuals")] public string shadowInAnim; public bool ManuallyDefineRoom; [InspectorShowIf("ManuallyDefineRoom")] [InspectorIndent] public Vector2 roomMin; [InspectorShowIf("ManuallyDefineRoom")] [InspectorIndent] public Vector2 roomMax; private TeleportState m_state; private tk2dBaseSprite m_shadowSprite; private Shader m_cachedShader; private float m_timer; private bool m_shouldFire; public TeleportState State { get { return m_state; } set { EndState(m_state); m_state = value; BeginState(m_state); } } public static ShadowSupport ConvertTeleportTypeEnum(ShadowSupport sourceEnum) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected I4, but got Unknown return (int)sourceEnum switch { 2 => ShadowSupport.Animate, 1 => ShadowSupport.Fade, 0 => ShadowSupport.None, _ => ShadowSupport.None, }; } private bool ShowShadowAnimationNames() { return shadowSupport == ShadowSupport.Animate; } public override void Start() { ((BasicAttackBehavior)this).Start(); tk2dSpriteAnimator spriteAnimator = ((BraveBehaviour)((BehaviorBase)this).m_aiActor).spriteAnimator; spriteAnimator.AnimationEventTriggered = (Action)Delegate.Combine(spriteAnimator.AnimationEventTriggered, new Action(AnimationEventTriggered)); } public override void Upkeep() { ((BasicAttackBehavior)this).Upkeep(); ((BehaviorBase)this).DecrementTimer(ref m_timer, false); if (goneAttackBehavior != null) { ((BehaviorBase)goneAttackBehavior).Upkeep(); } } public override bool IsReady() { if (IsDoingManualTeleport) { return false; } try { if (OnlyTeleportIfPlayerUnreachable && ((DungeonPlaceableBehaviour)((BehaviorBase)this).m_aiActor).GetAbsoluteParentRoom() == GameManager.Instance.BestActivePlayer.CurrentRoom && ((BehaviorBase)this).m_aiActor.Path != null && ((BehaviorBase)this).m_aiActor.Path.WillReachFinalGoal) { return false; } return ((BasicAttackBehavior)this).IsReady(); } catch (Exception) { return false; } } public override BehaviorResult Update() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) ((BasicAttackBehavior)this).Update(); if ((Object)(object)m_shadowSprite == (Object)null) { m_shadowSprite = ((GameActor)((BehaviorBase)this).m_aiActor).ShadowObject.GetComponent(); } if (((AttackBehaviorBase)this).IsReady()) { if (Object.op_Implicit((Object)(object)((BehaviorBase)this).m_aiActor.TargetRigidbody)) { State = TeleportState.TeleportOut; ((BehaviorBase)this).m_updateEveryFrame = true; return (BehaviorResult)4; } return (BehaviorResult)0; } return (BehaviorResult)0; } public override ContinuousBehaviorResult ContinuousUpdate() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_003b: 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: Invalid comparison between Unknown and I4 //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) ((BehaviorBase)this).ContinuousUpdate(); if (State == TeleportState.TeleportOut) { if (shadowSupport == ShadowSupport.Fade) { m_shadowSprite.color = Vector3Extensions.WithAlpha(m_shadowSprite.color, 1f - ((BehaviorBase)this).m_aiAnimator.CurrentClipProgress); } if (!((BehaviorBase)this).m_aiAnimator.IsPlaying(teleportOutAnim)) { State = TeleportState.Gone; } } else if (State == TeleportState.Gone) { if (m_timer <= 0f) { State = TeleportState.GoneBehavior; } } else if (State == TeleportState.GoneBehavior) { if ((int)((BehaviorBase)goneAttackBehavior).ContinuousUpdate() == 1) { State = TeleportState.TeleportIn; } } else if (State == TeleportState.TeleportIn) { if (shadowSupport == ShadowSupport.Fade) { m_shadowSprite.color = Vector3Extensions.WithAlpha(m_shadowSprite.color, ((BehaviorBase)this).m_aiAnimator.CurrentClipProgress); } if (Object.op_Implicit((Object)(object)((BehaviorBase)this).m_aiShooter)) { ((BehaviorBase)this).m_aiShooter.ToggleGunAndHandRenderers(false, "ExpandTeleportBehavior"); } if (!((BehaviorBase)this).m_aiAnimator.IsPlaying(teleportInAnim)) { State = TeleportState.None; return (ContinuousBehaviorResult)1; } } return (ContinuousBehaviorResult)0; } public override void EndContinuousUpdate() { //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) ((BehaviorBase)this).EndContinuousUpdate(); if (teleportRequiresTransparency && Object.op_Implicit((Object)(object)m_cachedShader)) { ((BraveBehaviour)((BehaviorBase)this).m_aiActor).sprite.usesOverrideMaterial = false; ((BraveBehaviour)((BehaviorBase)this).m_aiActor).renderer.material.shader = m_cachedShader; m_cachedShader = null; } ((BraveBehaviour)((BraveBehaviour)((BehaviorBase)this).m_aiActor).sprite).renderer.enabled = true; if (Object.op_Implicit((Object)(object)((BraveBehaviour)((BehaviorBase)this).m_aiActor).knockbackDoer)) { ((BraveBehaviour)((BehaviorBase)this).m_aiActor).knockbackDoer.SetImmobile(false, "teleport"); } ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.CollideWithOthers = true; ((GameActor)((BehaviorBase)this).m_aiActor).IsGone = false; if (Object.op_Implicit((Object)(object)((BehaviorBase)this).m_aiShooter)) { ((BehaviorBase)this).m_aiShooter.ToggleGunAndHandRenderers(true, "ExpandTeleportBehavior"); } if (!hasOutlinesDuringAnim) { SpriteOutlineManager.ToggleOutlineRenderers(((BraveBehaviour)((BehaviorBase)this).m_aiActor).sprite, true); } if (goneAttackBehavior != null && State == TeleportState.GoneBehavior) { ((BehaviorBase)goneAttackBehavior).EndContinuousUpdate(); } ((BehaviorBase)this).m_aiAnimator.EndAnimationIf(teleportOutAnim); ((BehaviorBase)this).m_aiAnimator.EndAnimationIf(teleportInAnim); if (shadowSupport == ShadowSupport.Fade) { m_shadowSprite.color = Vector3Extensions.WithAlpha(m_shadowSprite.color, 1f); } else if (shadowSupport == ShadowSupport.Animate) { tk2dSpriteAnimationClip clipByName = ((BraveBehaviour)m_shadowSprite).spriteAnimator.GetClipByName(shadowInAnim); ((BraveBehaviour)m_shadowSprite).spriteAnimator.Play(clipByName, (float)(clipByName.frames.Length - 1), clipByName.fps, false); } m_state = TeleportState.None; ((BehaviorBase)this).m_updateEveryFrame = false; ((BasicAttackBehavior)this).UpdateCooldowns(); } public override void Init(GameObject gameObject, AIActor aiActor, AIShooter aiShooter) { ((BasicAttackBehavior)this).Init(gameObject, aiActor, aiShooter); if (goneAttackBehavior != null) { ((BehaviorBase)goneAttackBehavior).Init(gameObject, aiActor, aiShooter); } } public override void SetDeltaTime(float deltaTime) { ((BehaviorBase)this).SetDeltaTime(deltaTime); if (goneAttackBehavior != null) { ((BehaviorBase)goneAttackBehavior).SetDeltaTime(deltaTime); } } public override bool UpdateEveryFrame() { if (goneAttackBehavior != null && m_state == TeleportState.GoneBehavior) { return ((BehaviorBase)goneAttackBehavior).UpdateEveryFrame(); } return ((BehaviorBase)this).UpdateEveryFrame(); } public void AnimationEventTriggered(tk2dSpriteAnimator animator, tk2dSpriteAnimationClip clip, int frame) { if (m_shouldFire && clip.GetFrame(frame).eventInfo == "fire") { if (State == TeleportState.TeleportIn) { SpawnManager.SpawnBulletScript((GameActor)(object)((BehaviorBase)this).m_aiActor, teleportInBulletScript, (Vector2?)null, (Vector2?)null, false, (string)null); } else if (State == TeleportState.TeleportOut) { SpawnManager.SpawnBulletScript((GameActor)(object)((BehaviorBase)this).m_aiActor, teleportOutBulletScript, (Vector2?)null, (Vector2?)null, false, (string)null); } m_shouldFire = false; } else if (State == TeleportState.TeleportOut && clip.GetFrame(frame).eventInfo == "teleport_collider_off") { ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.CollideWithOthers = false; ((GameActor)((BehaviorBase)this).m_aiActor).IsGone = true; } } public void DoManualTeleport(TeleportState state) { if (!IsDoingManualTeleport) { IsDoingManualTeleport = true; ((MonoBehaviour)GameManager.Instance).StartCoroutine(HandleManualTeleport()); } } public IEnumerator HandleManualTeleport() { if (m_state != 0) { EndState(m_state); while (m_state != 0) { yield return null; } } State = TeleportState.TeleportOut; float m_timer2 = 2f; while (m_timer2 > 0f) { m_timer2 -= BraveTime.DeltaTime; yield return null; } State = TeleportState.Gone; while (m_timer > 0f) { yield return null; } State = TeleportState.Gone; while (State != TeleportState.TeleportIn) { yield return null; } while (!((BehaviorBase)this).m_aiAnimator.IsPlaying(teleportInAnim)) { yield return null; } EndState(TeleportState.TeleportIn); IsDoingManualTeleport = false; } private void BeginState(TeleportState state) { //IL_01d5: Unknown result type (might be due to invalid IL or missing references) //IL_01da: Unknown result type (might be due to invalid IL or missing references) //IL_01db: Unknown result type (might be due to invalid IL or missing references) //IL_01dd: Invalid comparison between Unknown and I4 //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: Invalid comparison between Unknown and I4 try { switch (state) { case TeleportState.TeleportOut: if (teleportOutBulletScript != null && !teleportOutBulletScript.IsNull) { m_shouldFire = true; } if (teleportRequiresTransparency) { m_cachedShader = ((BraveBehaviour)((BehaviorBase)this).m_aiActor).renderer.material.shader; ((BraveBehaviour)((BehaviorBase)this).m_aiActor).sprite.usesOverrideMaterial = true; ((BraveBehaviour)((BehaviorBase)this).m_aiActor).renderer.material.shader = ShaderCache.Acquire("Brave/LitBlendUber"); } ((BehaviorBase)this).m_aiAnimator.PlayUntilCancelled(teleportOutAnim, true, (string)null, -1f, false); if (shadowSupport == ShadowSupport.Animate) { ((BraveBehaviour)m_shadowSprite).spriteAnimator.PlayAndForceTime(shadowOutAnim, ((BehaviorBase)this).m_aiAnimator.CurrentClipLength); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)((BehaviorBase)this).m_aiActor).knockbackDoer)) { ((BraveBehaviour)((BehaviorBase)this).m_aiActor).knockbackDoer.SetImmobile(true, "teleport"); } ((BehaviorBase)this).m_aiActor.ClearPath(); if (!AttackableDuringAnimation) { ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.CollideWithOthers = false; ((GameActor)((BehaviorBase)this).m_aiActor).IsGone = true; } if (Object.op_Implicit((Object)(object)((BehaviorBase)this).m_aiShooter)) { ((BehaviorBase)this).m_aiShooter.ToggleGunAndHandRenderers(false, "ExpandTeleportBehavior"); } if (!hasOutlinesDuringAnim) { SpriteOutlineManager.ToggleOutlineRenderers(((BraveBehaviour)((BehaviorBase)this).m_aiActor).sprite, false); } return; case TeleportState.Gone: if (GoneTime <= 0f) { State = TeleportState.GoneBehavior; return; } m_timer = GoneTime; ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.CollideWithOthers = false; ((GameActor)((BehaviorBase)this).m_aiActor).IsGone = true; ((BraveBehaviour)((BraveBehaviour)((BehaviorBase)this).m_aiActor).sprite).renderer.enabled = false; return; } if (State == TeleportState.GoneBehavior) { if (goneAttackBehavior == null) { State = TeleportState.TeleportIn; return; } BehaviorResult val = ((BehaviorBase)goneAttackBehavior).Update(); if ((int)val != 4 && (int)val != 3) { State = TeleportState.TeleportIn; } } else if (state == TeleportState.TeleportIn) { if (teleportInBulletScript != null && !teleportInBulletScript.IsNull) { m_shouldFire = true; } DoTeleport(); ((BehaviorBase)this).m_aiAnimator.PlayUntilFinished(teleportInAnim, true, (string)null, -1f, false); if (shadowSupport == ShadowSupport.Animate) { ((BraveBehaviour)m_shadowSprite).spriteAnimator.PlayAndForceTime(shadowInAnim, ((BehaviorBase)this).m_aiAnimator.CurrentClipLength); } ((BraveBehaviour)m_shadowSprite).renderer.enabled = true; if (AttackableDuringAnimation) { ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.CollideWithOthers = true; ((GameActor)((BehaviorBase)this).m_aiActor).IsGone = false; } ((BraveBehaviour)((BraveBehaviour)((BehaviorBase)this).m_aiActor).sprite).renderer.enabled = true; if (Object.op_Implicit((Object)(object)((BehaviorBase)this).m_aiShooter)) { ((BehaviorBase)this).m_aiShooter.ToggleGunAndHandRenderers(false, "ExpandTeleportBehavior"); } if (hasOutlinesDuringAnim) { SpriteOutlineManager.ToggleOutlineRenderers(((BraveBehaviour)((BehaviorBase)this).m_aiActor).sprite, true); } } } catch (Exception) { } } private void EndState(TeleportState state) { //IL_00ec: 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) try { switch (state) { case TeleportState.TeleportOut: ((BraveBehaviour)m_shadowSprite).renderer.enabled = false; if (hasOutlinesDuringAnim) { SpriteOutlineManager.ToggleOutlineRenderers(((BraveBehaviour)((BehaviorBase)this).m_aiActor).sprite, false); } if (teleportOutBulletScript != null && !teleportOutBulletScript.IsNull && m_shouldFire) { SpawnManager.SpawnBulletScript((GameActor)(object)((BehaviorBase)this).m_aiActor, teleportOutBulletScript, (Vector2?)null, (Vector2?)null, false, (string)null); m_shouldFire = false; } break; case TeleportState.TeleportIn: if (teleportRequiresTransparency && Object.op_Implicit((Object)(object)m_cachedShader)) { ((BraveBehaviour)((BehaviorBase)this).m_aiActor).sprite.usesOverrideMaterial = false; ((BraveBehaviour)((BehaviorBase)this).m_aiActor).renderer.material.shader = m_cachedShader; m_cachedShader = null; } if (shadowSupport == ShadowSupport.Fade) { m_shadowSprite.color = Vector3Extensions.WithAlpha(m_shadowSprite.color, 1f); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)((BehaviorBase)this).m_aiActor).knockbackDoer)) { ((BraveBehaviour)((BehaviorBase)this).m_aiActor).knockbackDoer.SetImmobile(false, "teleport"); } ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.CollideWithOthers = true; ((GameActor)((BehaviorBase)this).m_aiActor).IsGone = false; if (Object.op_Implicit((Object)(object)((BehaviorBase)this).m_aiShooter)) { ((BehaviorBase)this).m_aiShooter.ToggleGunAndHandRenderers(true, "ExpandTeleportBehavior"); } if (teleportInBulletScript != null && !teleportInBulletScript.IsNull && m_shouldFire) { SpawnManager.SpawnBulletScript((GameActor)(object)((BehaviorBase)this).m_aiActor, teleportInBulletScript, (Vector2?)null, (Vector2?)null, false, (string)null); m_shouldFire = false; } if (!hasOutlinesDuringAnim) { SpriteOutlineManager.ToggleOutlineRenderers(((BraveBehaviour)((BehaviorBase)this).m_aiActor).sprite, true); } break; } } catch (Exception) { } } private void DoTeleport() { //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003f: 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_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) //IL_005c: 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_015d: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: 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_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Invalid comparison between Unknown and I4 //IL_01d7: Unknown result type (might be due to invalid IL or missing references) //IL_01dd: Expected O, but got Unknown //IL_01e8: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_01fd: Unknown result type (might be due to invalid IL or missing references) //IL_0202: Unknown result type (might be due to invalid IL or missing references) //IL_0207: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_0196: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01b1: Unknown result type (might be due to invalid IL or missing references) //IL_01b6: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: 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_026a: Unknown result type (might be due to invalid IL or missing references) //IL_0225: Unknown result type (might be due to invalid IL or missing references) //IL_0235: Unknown result type (might be due to invalid IL or missing references) //IL_0292: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Unknown result type (might be due to invalid IL or missing references) //IL_02a2: Unknown result type (might be due to invalid IL or missing references) //IL_02a9: Unknown result type (might be due to invalid IL or missing references) //IL_02b4: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02ba: Unknown result type (might be due to invalid IL or missing references) //IL_02bf: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) float minDistanceFromPlayerSquared = MinDistanceFromPlayer * MinDistanceFromPlayer; float maxDistanceFromPlayerSquared = MaxDistanceFromPlayer * MaxDistanceFromPlayer; Vector2 playerLowerLeft = Vector2.zero; Vector2 playerUpperRight = Vector2.zero; bool hasOtherPlayer = false; Vector2 otherPlayerLowerLeft = Vector2.zero; Vector2 otherPlayerUpperRight = Vector2.zero; bool hasDistChecks = (MinDistanceFromPlayer > 0f || MaxDistanceFromPlayer > 0f) && Object.op_Implicit((Object)(object)((BehaviorBase)this).m_aiActor.TargetRigidbody); if (hasDistChecks) { playerLowerLeft = ((BehaviorBase)this).m_aiActor.TargetRigidbody.HitboxPixelCollider.UnitBottomLeft; playerUpperRight = ((BehaviorBase)this).m_aiActor.TargetRigidbody.HitboxPixelCollider.UnitTopRight; GameActor playerTarget = base.m_behaviorSpeculator.PlayerTarget; PlayerController val = (PlayerController)(object)((playerTarget is PlayerController) ? playerTarget : null); if ((int)GameManager.Instance.CurrentGameType == 1 && Object.op_Implicit((Object)(object)val)) { PlayerController otherPlayer = GameManager.Instance.GetOtherPlayer(val); if (Object.op_Implicit((Object)(object)otherPlayer) && ((BraveBehaviour)otherPlayer).healthHaver.IsAlive) { hasOtherPlayer = true; otherPlayerLowerLeft = ((BraveBehaviour)otherPlayer).specRigidbody.HitboxPixelCollider.UnitBottomLeft; otherPlayerUpperRight = ((BraveBehaviour)otherPlayer).specRigidbody.HitboxPixelCollider.UnitTopRight; } } } IntVector2 bottomLeft = IntVector2.Zero; IntVector2 topRight = IntVector2.Zero; if (StayOnScreen) { bottomLeft = Vector2Extensions.ToIntVector2(Vector3Extensions.XY(BraveUtility.ViewportToWorldpoint(new Vector2(0f, 0f), (ViewportType)1)), (VectorConversions)1); topRight = Vector2Extensions.ToIntVector2(Vector3Extensions.XY(BraveUtility.ViewportToWorldpoint(new Vector2(1f, 1f), (ViewportType)1)), (VectorConversions)0) - IntVector2.One; } CellValidator val2 = (CellValidator)delegate(IntVector2 c) { //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0127: 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_0137: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_0141: 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_0200: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_0160: Unknown result type (might be due to invalid IL or missing references) //IL_0213: 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_01af: 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_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_02d3: 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_0237: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_0187: 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_02ae: Unknown result type (might be due to invalid IL or missing references) //IL_02ec: Unknown result type (might be due to invalid IL or missing references) //IL_0251: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: Unknown result type (might be due to invalid IL or missing references) //IL_01d6: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_033a: Unknown result type (might be due to invalid IL or missing references) //IL_030c: 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_038d: Unknown result type (might be due to invalid IL or missing references) //IL_035f: Unknown result type (might be due to invalid IL or missing references) //IL_0368: Unknown result type (might be due to invalid IL or missing references) //IL_03a6: Unknown result type (might be due to invalid IL or missing references) //IL_03f4: Unknown result type (might be due to invalid IL or missing references) //IL_03c6: Unknown result type (might be due to invalid IL or missing references) //IL_03cf: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < ((BehaviorBase)this).m_aiActor.Clearance.x; i++) { int num = c.x + i; for (int j = 0; j < ((BehaviorBase)this).m_aiActor.Clearance.y; j++) { int num2 = c.y + j; if (GameManager.Instance.Dungeon.data.isTopWall(num, num2)) { return false; } if (ManuallyDefineRoom && ((float)num < roomMin.x || (float)num > roomMax.x || (float)num2 < roomMin.y || (float)num2 > roomMax.y)) { return false; } } } if (hasDistChecks) { PixelCollider hitboxPixelCollider = ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.HitboxPixelCollider; Vector2 val5 = default(Vector2); ((Vector2)(ref val5))..ctor((float)c.x + 0.5f * ((float)((BehaviorBase)this).m_aiActor.Clearance.x - hitboxPixelCollider.UnitWidth), (float)c.y); Vector2 val6 = val5 + hitboxPixelCollider.UnitDimensions; if (MinDistanceFromPlayer > 0f) { if (BraveMathCollege.AABBDistanceSquared(val5, val6, playerLowerLeft, playerUpperRight) < minDistanceFromPlayerSquared) { return false; } if (hasOtherPlayer && BraveMathCollege.AABBDistanceSquared(val5, val6, otherPlayerLowerLeft, otherPlayerUpperRight) < minDistanceFromPlayerSquared) { return false; } } if (MaxDistanceFromPlayer > 0f) { if (BraveMathCollege.AABBDistanceSquared(val5, val6, playerLowerLeft, playerUpperRight) > maxDistanceFromPlayerSquared) { return false; } if (hasOtherPlayer && BraveMathCollege.AABBDistanceSquared(val5, val6, otherPlayerLowerLeft, otherPlayerUpperRight) > maxDistanceFromPlayerSquared) { return false; } } } if (StayOnScreen && (c.x < bottomLeft.x || c.y < bottomLeft.y || c.x + ((BehaviorBase)this).m_aiActor.Clearance.x - 1 > topRight.x || c.y + ((BehaviorBase)this).m_aiActor.Clearance.y - 1 > topRight.y)) { return false; } if (AvoidWalls) { int num3 = -1; int k; for (k = -1; k < ((BehaviorBase)this).m_aiActor.Clearance.y + 1; k++) { if (GameManager.Instance.Dungeon.data.isWall(c.x + num3, c.y + k)) { return false; } } num3 = ((BehaviorBase)this).m_aiActor.Clearance.x; for (k = -1; k < ((BehaviorBase)this).m_aiActor.Clearance.y + 1; k++) { if (GameManager.Instance.Dungeon.data.isWall(c.x + num3, c.y + k)) { return false; } } k = -1; for (num3 = -1; num3 < ((BehaviorBase)this).m_aiActor.Clearance.x + 1; num3++) { if (GameManager.Instance.Dungeon.data.isWall(c.x + num3, c.y + k)) { return false; } } k = ((BehaviorBase)this).m_aiActor.Clearance.y; for (num3 = -1; num3 < ((BehaviorBase)this).m_aiActor.Clearance.x + 1; num3++) { if (GameManager.Instance.Dungeon.data.isWall(c.x + num3, c.y + k)) { return false; } } } return true; }; Vector2 val3 = ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.UnitBottomCenter - Vector3Extensions.XY(((BraveBehaviour)((BehaviorBase)this).m_aiActor).transform.position); IntVector2? val4 = ((!AllowCrossRoomTeleportation) ? ((BehaviorBase)this).m_aiActor.ParentRoom.GetRandomAvailableCell((IntVector2?)((BehaviorBase)this).m_aiActor.Clearance, (CellTypes?)((BehaviorBase)this).m_aiActor.PathableTiles, false, val2) : GameManager.Instance.BestActivePlayer.CurrentRoom.GetRandomAvailableCell((IntVector2?)((BehaviorBase)this).m_aiActor.Clearance, (CellTypes?)((BehaviorBase)this).m_aiActor.PathableTiles, false, val2)); if (val4.HasValue) { ((BraveBehaviour)((BehaviorBase)this).m_aiActor).transform.position = Vector2.op_Implicit(Vector2Extensions.WithY(Pathfinder.GetClearanceOffset(val4.Value, ((BehaviorBase)this).m_aiActor.Clearance), (float)val4.Value.y) - val3); ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.Reinitialize(); } else { Debug.LogWarning((object)"TELEPORT FAILED!", (Object)(object)((BehaviorBase)this).m_aiActor); } } } public class ExpandEnemyAutoKiller : BraveBehaviour { public bool KillOnRoomClear; public bool KillifSummonerDies; public bool AllowRewards; public AIActor SummonerParent; public RoomHandler m_ParentRoom; private bool m_Active; public ExpandEnemyAutoKiller() { KillOnRoomClear = true; AllowRewards = true; KillifSummonerDies = false; m_Active = false; } private bool EnemyShouldDieNow() { if (KillOnRoomClear && m_ParentRoom.GetActiveEnemiesCount((ActiveEnemyType)1) <= 0) { return true; } if (KillifSummonerDies) { if (Object.op_Implicit((Object)(object)SummonerParent) && ((BraveBehaviour)SummonerParent).healthHaver.IsDead) { return true; } if (!Object.op_Implicit((Object)(object)SummonerParent)) { return true; } } return false; } public void KillMeNow() { m_Active = false; if (AllowRewards) { ((BraveBehaviour)this).aiActor.EraseFromExistenceWithRewards(false); } else { ((BraveBehaviour)this).aiActor.EraseFromExistence(false); } Object.Destroy((Object)(object)this); } public void Start() { //IL_0032: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).aiActor)) { m_ParentRoom = ((BraveBehaviour)this).aiActor.ParentRoom; } if (m_ParentRoom == null) { m_ParentRoom = Vector3Extensions.GetAbsoluteRoom(((Component)this).gameObject.transform.position); } if (m_ParentRoom == null) { KillOnRoomClear = false; } m_Active = true; } public void Update() { if (m_Active && EnemyShouldDieNow()) { KillMeNow(); } } protected override void OnDestroy() { m_Active = false; ((BraveBehaviour)this).OnDestroy(); } } public class ExpandHatMindController : BraveBehaviour { public enum TargetType { AIActor, Chest, Breakable, Hammer, Other } public static bool BlockTeleport = true; public static bool ForceLineOfSight = false; public static Hook canTeleportFromRoomHook; public static Hook hasLineOfSightToTargetHook; [SerializeField] public bool UsesCable; [SerializeField] public bool UseFakeActorTarget; [SerializeField] public bool ActAsDecoy; [SerializeField] public bool AttachPlayer; [NonSerialized] public PlayerController owner; public MrCap MrCapItem; public bool AttachFailed; public bool IsOnDeath; public float MediumObjectMovementSpeed; public float SmallObjectMovementSpeed; public int MaxRoomClearsWithHammer; public ExpandSpriteBobber SpriteBobber; public ForgeHammerController PreviousHammer; public TargetType targetType; public List KillTargetExceptions; public List SingleVolleyEnemies; public Dictionary OverrideFacingType; public Dictionary OverrideHatPosition; public Dictionary OverrideActorSize; private bool m_attackedThisCycle; private bool m_active; private bool m_TargetLeftAlive; private bool m_HasNoAttacks; private GameObject parentObject; private RoomHandler m_ParentRoom; private AIActor m_aiActor; private Chest m_Chest; private MajorBreakable m_Breakable; private ExpandForgeHammerComponent m_Hammer; private BehaviorSpeculator m_behaviorSpeculator; private NonActor m_fakeActor; private SpeculativeRigidbody m_fakeTargetRigidbody; private SpeculativeRigidbody m_targetRigidbody; private ArbitraryCableDrawer m_cable; private float m_DecoyTimer; private Vector2 m_LastPlayerPosition; private bool m_CachedRigidBodyCanPush; private bool m_CachedRigidBodyCanBePushed; private bool m_IsMovingToNewRoom; private bool m_UsedSecondaryAttackThisCycle; private IntVector2 m_CachedOwnerSize; private int m_HammerRoomClears; private List m_PrimaryBehaviors; private List m_SecondaryBehaviors; private GunHandBasicShootBehavior m_GunHandBehavior; private GunHandController[] GunHands; private Gun[] GunHandGuns; private bool m_HasSecondaryAttack; private bool m_GunHandGunsConfigured; private bool m_GunHandFiredThisCycle; private bool m_GunHandPostProccessAdded; private bool m_SecondaryIsWallMimicSlam; private bool m_SecondaryAttackIsConditional; private ShootBehavior m_WallMimicFaceSlamBehavior; private FacingType m_PreviousFacingType; private List m_AllSummonedEnemies; private ExpandHatVFX attachedHat; public bool CanTeleportFromRoomHook(Func orig, RoomHandler self) { if (BlockTeleport) { return false; } return orig(self); } public bool HasLineOfSightToRigidbody(Func orig, AIActor self, SpeculativeRigidbody rigidBody) { object obj; if (self == null) { obj = null; } else { GameObject gameObject = ((Component)self).gameObject; obj = ((gameObject != null) ? gameObject.GetComponent() : null); } if (Object.op_Implicit((Object)obj) && ForceLineOfSight) { return true; } return orig(self, rigidBody); } public static void ToggleLineOfSightHook(bool remove) { //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Expected O, but got Unknown if (remove && hasLineOfSightToTargetHook != null) { hasLineOfSightToTargetHook.Dispose(); hasLineOfSightToTargetHook = null; } else if (!remove && hasLineOfSightToTargetHook == null) { hasLineOfSightToTargetHook = new Hook((MethodBase)typeof(AIActor).GetMethod("HasLineOfSightToRigidbody", BindingFlags.Instance | BindingFlags.Public), typeof(ExpandHatMindController).GetMethod("HasLineOfSightToRigidbody", BindingFlags.Instance | BindingFlags.Public), (object)typeof(AIActor)); } } public ExpandHatMindController() { //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) m_attackedThisCycle = true; UseFakeActorTarget = true; UsesCable = false; ActAsDecoy = false; AttachPlayer = true; targetType = TargetType.AIActor; KillTargetExceptions = new List { "98ea2fe181ab4323ab6e9981955a9bca", "21dd14e5ca2a4a388adab5b11b69a1e1" }; SingleVolleyEnemies = new List { "758a0a0215e6448ab52adf73bc44ae5e" }; OverrideFacingType = new Dictionary { ["479556d05c7c44f3b6abb3b2067fc778"] = (FacingType)1, ["ec8ea75b557d4e7b8ceeaacdf6f8238c"] = (FacingType)1, ["383175a55879441d90933b5c4e60cf6f"] = (FacingType)1 }; OverrideHatPosition = new Dictionary { ["479556d05c7c44f3b6abb3b2067fc778"] = -1.5f }; OverrideActorSize = new Dictionary { ["d5a7b95774cd41f080e517bea07bf495"] = new IntVector2(5, 4), ["479556d05c7c44f3b6abb3b2067fc778"] = new IntVector2(4, 4), ["1bc2a07ef87741be90c37096910843ab"] = new IntVector2(4, 4) }; m_PrimaryBehaviors = new List(); m_SecondaryBehaviors = new List(); AttachFailed = false; m_HasNoAttacks = false; MediumObjectMovementSpeed = 1.2f; SmallObjectMovementSpeed = 0.8f; MaxRoomClearsWithHammer = 5; m_IsMovingToNewRoom = false; m_GunHandGunsConfigured = false; m_GunHandFiredThisCycle = false; m_GunHandPostProccessAdded = false; m_SecondaryAttackIsConditional = false; m_active = false; IsOnDeath = false; m_TargetLeftAlive = false; m_HasSecondaryAttack = false; m_UsedSecondaryAttackThisCycle = false; m_SecondaryIsWallMimicSlam = false; m_DecoyTimer = 1f; } private bool m_CanUseSecondaryAttack(bool primaryWasPressed) { if (primaryWasPressed) { return false; } if (!m_HasSecondaryAttack) { return false; } if (m_SecondaryAttackIsConditional && m_ParentRoom != null && m_ParentRoom.GetActiveEnemiesCount((ActiveEnemyType)1) <= 0) { return false; } if (ForceLineOfSight) { return false; } if (m_GunHandFiredThisCycle) { return false; } return true; } private CellValidator m_cellValidator(DungeonData data, IntVector2 Clearence, bool excludeExitCells = false) { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Expected O, but got Unknown return (CellValidator)delegate(IntVector2 c) { //IL_0014: 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_0033: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Invalid comparison between Unknown and I4 //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0060: 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_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Invalid comparison between Unknown and I4 //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < Clearence.x; i++) { for (int j = 0; j < Clearence.y; j++) { if (!data.CheckInBoundsAndValid(c.x + i, c.y + j)) { return false; } if ((int)data[c.x + i, c.y + j].type == 4) { return false; } if (data[c.x + i, c.y + j].isOccupied) { return false; } if ((int)data[c.x + i, c.y + j].type == 1) { return false; } if (data[c.x + i, c.y + j].IsLowerFaceWall()) { return false; } if (data[c.x + i, c.y + j].IsTopWall()) { return false; } if (Clearence == IntVector2.One && data[c.x + i, c.y + j].isNextToWall) { return false; } if (excludeExitCells) { if (data[c.x + i, c.y + j].isExitCell) { return false; } if (data[c.x + i, c.y + j].isExitNonOccluder) { return false; } } } } return true; }; } public void Init(PlayerController parentPlayer, GameObject parentTarget) { //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: 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_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0177: 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_018e: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_0196: Unknown result type (might be due to invalid IL or missing references) //IL_04e4: Unknown result type (might be due to invalid IL or missing references) //IL_077d: 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_09e0: Unknown result type (might be due to invalid IL or missing references) //IL_053f: Unknown result type (might be due to invalid IL or missing references) //IL_0549: Expected O, but got Unknown //IL_0549: Unknown result type (might be due to invalid IL or missing references) //IL_0553: Expected O, but got Unknown //IL_07df: Unknown result type (might be due to invalid IL or missing references) //IL_07e9: Expected O, but got Unknown //IL_07e9: Unknown result type (might be due to invalid IL or missing references) //IL_07f3: Expected O, but got Unknown //IL_0a02: Unknown result type (might be due to invalid IL or missing references) //IL_0b44: Unknown result type (might be due to invalid IL or missing references) //IL_059c: Unknown result type (might be due to invalid IL or missing references) //IL_05a1: Unknown result type (might be due to invalid IL or missing references) //IL_05a4: Unknown result type (might be due to invalid IL or missing references) //IL_05b8: Unknown result type (might be due to invalid IL or missing references) //IL_05bd: Unknown result type (might be due to invalid IL or missing references) //IL_05c0: Unknown result type (might be due to invalid IL or missing references) //IL_05e4: Unknown result type (might be due to invalid IL or missing references) //IL_080e: Unknown result type (might be due to invalid IL or missing references) //IL_0813: Unknown result type (might be due to invalid IL or missing references) //IL_0816: Unknown result type (might be due to invalid IL or missing references) //IL_082a: Unknown result type (might be due to invalid IL or missing references) //IL_082f: Unknown result type (might be due to invalid IL or missing references) //IL_0832: Unknown result type (might be due to invalid IL or missing references) //IL_0856: Unknown result type (might be due to invalid IL or missing references) //IL_08c1: Unknown result type (might be due to invalid IL or missing references) //IL_08c6: Unknown result type (might be due to invalid IL or missing references) //IL_0e47: Unknown result type (might be due to invalid IL or missing references) //IL_0e4c: Unknown result type (might be due to invalid IL or missing references) //IL_0e51: Unknown result type (might be due to invalid IL or missing references) //IL_06b6: Unknown result type (might be due to invalid IL or missing references) //IL_06bb: Unknown result type (might be due to invalid IL or missing references) //IL_08fb: Unknown result type (might be due to invalid IL or missing references) //IL_0900: Unknown result type (might be due to invalid IL or missing references) //IL_090a: Expected O, but got Unknown //IL_0a45: Unknown result type (might be due to invalid IL or missing references) //IL_0a4a: Unknown result type (might be due to invalid IL or missing references) //IL_0b9b: Unknown result type (might be due to invalid IL or missing references) //IL_0ba5: Expected O, but got Unknown //IL_0328: Unknown result type (might be due to invalid IL or missing references) //IL_0332: Expected O, but got Unknown //IL_0332: Unknown result type (might be due to invalid IL or missing references) //IL_033c: Expected O, but got Unknown //IL_06f3: Unknown result type (might be due to invalid IL or missing references) //IL_06f8: Unknown result type (might be due to invalid IL or missing references) //IL_0701: Expected O, but got Unknown //IL_061d: Unknown result type (might be due to invalid IL or missing references) //IL_0632: Unknown result type (might be due to invalid IL or missing references) //IL_0637: Unknown result type (might be due to invalid IL or missing references) //IL_063a: Unknown result type (might be due to invalid IL or missing references) //IL_064f: Unknown result type (might be due to invalid IL or missing references) //IL_0654: Unknown result type (might be due to invalid IL or missing references) //IL_0ad9: Unknown result type (might be due to invalid IL or missing references) //IL_0aa4: Unknown result type (might be due to invalid IL or missing references) //IL_0c2f: Unknown result type (might be due to invalid IL or missing references) //IL_0c39: Expected O, but got Unknown //IL_0c39: Unknown result type (might be due to invalid IL or missing references) //IL_0c43: Expected O, but got Unknown //IL_0cc4: Unknown result type (might be due to invalid IL or missing references) //IL_0cc9: Unknown result type (might be due to invalid IL or missing references) //IL_0cce: Unknown result type (might be due to invalid IL or missing references) //IL_0c7b: Unknown result type (might be due to invalid IL or missing references) //IL_0c80: Unknown result type (might be due to invalid IL or missing references) //IL_0c85: Unknown result type (might be due to invalid IL or missing references) //IL_0c8a: Unknown result type (might be due to invalid IL or missing references) //IL_044b: Unknown result type (might be due to invalid IL or missing references) //IL_0450: Unknown result type (might be due to invalid IL or missing references) //IL_048c: Unknown result type (might be due to invalid IL or missing references) //IL_0491: Unknown result type (might be due to invalid IL or missing references) //IL_0cfa: Unknown result type (might be due to invalid IL or missing references) //IL_0d07: Unknown result type (might be due to invalid IL or missing references) //IL_0d0b: Unknown result type (might be due to invalid IL or missing references) //IL_0d10: Unknown result type (might be due to invalid IL or missing references) //IL_0d73: Unknown result type (might be due to invalid IL or missing references) //IL_0d78: Unknown result type (might be due to invalid IL or missing references) //IL_0d5d: Unknown result type (might be due to invalid IL or missing references) //IL_0d62: Unknown result type (might be due to invalid IL or missing references) //IL_0dcb: Unknown result type (might be due to invalid IL or missing references) //IL_0dd8: Unknown result type (might be due to invalid IL or missing references) //IL_0ddc: Unknown result type (might be due to invalid IL or missing references) //IL_0de1: Unknown result type (might be due to invalid IL or missing references) //IL_0e17: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)parentPlayer) | !Object.op_Implicit((Object)(object)parentTarget)) { AttachFailed = true; return; } m_targetRigidbody = parentTarget.GetComponent(); if (!Object.op_Implicit((Object)(object)m_targetRigidbody)) { ((Component)m_targetRigidbody).GetComponentInChildren(); } parentObject = parentTarget; if (!Object.op_Implicit((Object)(object)m_targetRigidbody)) { AttachFailed = true; return; } owner = parentPlayer; m_CachedOwnerSize = new IntVector2(((DungeonPlaceableBehaviour)owner).GetWidth() + 1, ((DungeonPlaceableBehaviour)owner).GetHeight() + 1); if (AttachPlayer) { tk2dBaseSprite component = ((GameObject)Object.Instantiate(ResourceCache.Acquire("Global VFX/Spinfall_Poof_VFX"))).GetComponent(); component.PlaceAtPositionByAnchor(Vector2Extensions.ToVector3ZUp(((BraveBehaviour)owner).sprite.WorldCenter, 0f) + new Vector3(0f, 0.5f, 0f), (Anchor)4); component.HeightOffGround = 5f; component.UpdateZDepth(); } float num = 0f; Bounds bounds; switch (targetType) { case TargetType.AIActor: { m_aiActor = parentObject.GetComponent(); if (!Object.op_Implicit((Object)(object)m_aiActor)) { return; } m_ParentRoom = Vector3Extensions.GetAbsoluteRoom(((GameActor)m_aiActor).CenterPosition); m_behaviorSpeculator = ((BraveBehaviour)m_aiActor).behaviorSpeculator; bounds = ((BraveBehaviour)m_aiActor).sprite.GetBounds(); float y = ((Bounds)(ref bounds)).size.y; bounds = ((tk2dBaseSprite)MrCap.MrCapVFX.GetComponent()).GetBounds(); num = y - ((Bounds)(ref bounds)).size.y / 2.1f; if (OverrideHatPosition.ContainsKey(m_aiActor.EnemyGuid)) { num += OverrideHatPosition[m_aiActor.EnemyGuid]; } ((GameActor)m_aiActor).PlayEffectOnActor(MrCap.MrCapVFX, new Vector3(0f, num, 0f), true, false, true); attachedHat = ((Component)m_aiActor).gameObject.GetComponentInChildren(); if (Object.op_Implicit((Object)(object)attachedHat)) { attachedHat.hatOwner = owner; attachedHat.targetType = ExpandHatVFX.TargetType.AIActor; } m_targetRigidbody.AddCollisionLayerOverride(CollisionMask.LayerToMask((CollisionLayer)4)); m_aiActor.HitByEnemyBullets = true; m_aiActor.CanTargetEnemies = true; m_aiActor.OverrideHitEnemies = true; m_aiActor.IsHarmlessEnemy = true; ((BraveBehaviour)m_aiActor).behaviorSpeculator.PostAwakenDelay = 0f; ((BraveBehaviour)m_aiActor).behaviorSpeculator.InstantFirstTick = true; if (!KillTargetExceptions.Contains(m_aiActor.EnemyGuid)) { m_aiActor.IgnoreForRoomClear = true; } ((BraveBehaviour)m_aiActor).healthHaver.OnPreDeath += OnPreDeath; ((BraveBehaviour)m_aiActor).healthHaver.OnDeath += OnDeath; if (AttachPlayer && Object.op_Implicit((Object)(object)m_targetRigidbody)) { SpeculativeRigidbody targetRigidbody = m_targetRigidbody; targetRigidbody.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Combine((Delegate?)(object)targetRigidbody.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(EnemyOnPreRigidBodyCollision)); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)m_aiActor).visibilityManager)) { Object.Destroy((Object)(object)((BraveBehaviour)m_aiActor).visibilityManager); } m_ParentRoom.DeregisterEnemy(m_aiActor, false); if (Object.op_Implicit((Object)(object)parentObject.transform.parent)) { parentObject.transform.SetParent(((Component)GameManager.Instance.Dungeon).gameObject.transform); } m_aiActor.ClearPath(); tk2dSpriteAnimator spriteAnimator = ((BraveBehaviour)m_aiActor).spriteAnimator; spriteAnimator.AnimationEventTriggered = (Action)Delegate.Combine(spriteAnimator.AnimationEventTriggered, new Action(AnimEventTriggered)); if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).aiAnimator.ChildAnimator)) { tk2dSpriteAnimator spriteAnimator2 = ((BraveBehaviour)((BraveBehaviour)m_aiActor).aiAnimator.ChildAnimator).spriteAnimator; spriteAnimator2.AnimationEventTriggered = (Action)Delegate.Combine(spriteAnimator2.AnimationEventTriggered, new Action(AnimEventTriggered)); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)m_aiActor).aiAnimator)) { m_PreviousFacingType = ((BraveBehaviour)m_aiActor).aiAnimator.facingType; if (OverrideFacingType.ContainsKey(m_aiActor.EnemyGuid)) { ((BraveBehaviour)m_aiActor).aiAnimator.facingType = OverrideFacingType[m_aiActor.EnemyGuid]; } } break; } case TargetType.Chest: { if (!Object.op_Implicit((Object)(object)parentObject) | !Object.op_Implicit((Object)(object)parentObject.GetComponent())) { AttachFailed = true; return; } m_Chest = parentObject.GetComponent(); m_ParentRoom = Vector3Extensions.GetAbsoluteRoom(parentObject.transform.position); if (m_ParentRoom == null) { AttachFailed = true; return; } m_Chest.DeregisterChestOnMinimap(); m_ParentRoom.DeregisterInteractable((IPlayerInteractable)(object)m_Chest); if (Object.op_Implicit((Object)(object)m_targetRigidbody)) { SpeculativeRigidbody targetRigidbody3 = m_targetRigidbody; targetRigidbody3.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Combine((Delegate?)(object)targetRigidbody3.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(ChestOnPreRigidBodyCollision)); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)m_Chest).majorBreakable)) { MajorBreakable majorBreakable = ((BraveBehaviour)m_Chest).majorBreakable; majorBreakable.OnBreak = (Action)Delegate.Combine(majorBreakable.OnBreak, new Action(OnChestBreak)); } bounds = ((BraveBehaviour)m_Chest).sprite.GetBounds(); float y3 = ((Bounds)(ref bounds)).size.y; bounds = ((tk2dBaseSprite)MrCap.MrCapVFX.GetComponent()).GetBounds(); num = y3 - ((Bounds)(ref bounds)).size.y / 1.8f; attachedHat = ExpandHatVFX.PlaceHatOnObject(parentObject, new Vector3(0f, num, 0f), ExpandHatVFX.TargetType.Generic, attached: true, alreadyMiddleCenter: false, useHitbox: true); if (m_Chest.IsOpen && Object.op_Implicit((Object)(object)attachedHat)) { Transform transform = ((BraveBehaviour)attachedHat).transform; Vector3 localPosition = transform.localPosition; bounds = ((BraveBehaviour)attachedHat).sprite.GetBounds(); transform.localPosition = localPosition + new Vector3(0f, ((Bounds)(ref bounds)).size.y / 1.5f, 0f); } m_CachedRigidBodyCanPush = m_targetRigidbody.CanBePushed; m_CachedRigidBodyCanBePushed = m_targetRigidbody.CanBePushed; m_targetRigidbody.CanBePushed = true; m_targetRigidbody.CanPush = true; m_targetRigidbody.CapVelocity = true; m_targetRigidbody.MaxVelocity = new Vector2(MediumObjectMovementSpeed, MediumObjectMovementSpeed); SpriteBobber = parentObject.GetComponentInChildren(); if (Object.op_Implicit((Object)(object)SpriteBobber)) { SpriteBobber.ShowBobber(); break; } GameObject val2 = new GameObject("EXChestSpriteBobber") { layer = 22 }; SpriteBobber = val2.AddComponent(); SpriteBobber.AttachBobber(parentObject.transform); break; } case TargetType.Breakable: { if (!Object.op_Implicit((Object)(object)parentObject) | !Object.op_Implicit((Object)(object)parentObject.GetComponent())) { AttachFailed = true; return; } m_Breakable = parentObject.GetComponent(); m_ParentRoom = Vector3Extensions.GetAbsoluteRoom(parentObject.transform.position); if (Object.op_Implicit((Object)(object)parentObject.GetComponent())) { ExpandFakeChest component2 = parentObject.GetComponent(); component2.DeregisterChestOnMinimap(); m_ParentRoom.DeregisterInteractable((IPlayerInteractable)(object)component2); } if (Object.op_Implicit((Object)(object)m_targetRigidbody)) { SpeculativeRigidbody targetRigidbody2 = m_targetRigidbody; targetRigidbody2.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Combine((Delegate?)(object)targetRigidbody2.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(BreakableOnPreRigidBodyCollision)); } if (m_ParentRoom == null) { AttachFailed = true; return; } bounds = ((BraveBehaviour)m_Breakable).sprite.GetBounds(); float y2 = ((Bounds)(ref bounds)).size.y; bounds = ((tk2dBaseSprite)MrCap.MrCapVFX.GetComponent()).GetBounds(); num = y2 - ((Bounds)(ref bounds)).size.y / 1.8f; attachedHat = ExpandHatVFX.PlaceHatOnObject(parentObject, new Vector3(0f, num, 0f), ExpandHatVFX.TargetType.Generic, attached: true, alreadyMiddleCenter: false, useHitbox: true); m_CachedRigidBodyCanPush = m_targetRigidbody.CanBePushed; m_CachedRigidBodyCanBePushed = m_targetRigidbody.CanBePushed; m_targetRigidbody.CanBePushed = true; m_targetRigidbody.CanPush = true; m_targetRigidbody.CapVelocity = true; m_targetRigidbody.MaxVelocity = new Vector2(MediumObjectMovementSpeed, MediumObjectMovementSpeed); SpriteBobber = parentObject.GetComponentInChildren(); if (Object.op_Implicit((Object)(object)SpriteBobber)) { SpriteBobber.ShowBobber(); } else { GameObject val = new GameObject("EXPotSpriteBobber") { layer = 22 }; SpriteBobber = val.AddComponent(); if (!Object.op_Implicit((Object)(object)parentObject.GetComponent())) { SpriteBobber.bobType = ExpandSpriteBobber.BobType.TinyBoi; } SpriteBobber.AttachBobber(parentObject.transform); } MajorBreakable breakable = m_Breakable; breakable.OnBreak = (Action)Delegate.Combine(breakable.OnBreak, new Action(BreakableOnBreak)); break; } case TargetType.Hammer: if (!Object.op_Implicit((Object)(object)parentObject) | !Object.op_Implicit((Object)(object)parentObject.GetComponent())) { AttachFailed = true; return; } m_Hammer = parentObject.GetComponent(); m_ParentRoom = m_Hammer.ParentRoom; if (m_ParentRoom == null) { m_ParentRoom = Vector3Extensions.GetAbsoluteRoom(((GameActor)owner).CenterPosition); } if (m_ParentRoom == null) { Vector3Extensions.GetAbsoluteRoom(parentObject.transform.position); } if (m_ParentRoom == null) { AttachFailed = true; return; } if (Object.op_Implicit((Object)(object)PreviousHammer)) { ExpandSpriteMirror expandSpriteMirror = new GameObject("Expand Hammer Mirror Child", new Type[1] { typeof(ExpandSpriteMirror) }) { layer = parentObject.layer }.AddComponent(); if (((BraveBehaviour)PreviousHammer).sprite.GetCurrentSpriteDef().name.Contains("_right_")) { expandSpriteMirror.AttachMirror(((BraveBehaviour)PreviousHammer).transform, ExpandPrefabs.EXHattyHammerCollection.GetComponent(), (Vector3?)new Vector3(-3.8f, -2.6f), alreadyMiddleCenter: true, useHitbox: false, isLocalMirror: true); } else { expandSpriteMirror.AttachMirror(((BraveBehaviour)PreviousHammer).transform, ExpandPrefabs.EXHattyHammerCollection.GetComponent(), (Vector3?)new Vector3(-2.8f, -2.6f), alreadyMiddleCenter: true, useHitbox: false, isLocalMirror: true); } PreviousHammer.Deactivate(); } owner.OnRoomClearEvent += HandleOnRoomCleared; m_HammerRoomClears = 0; break; } if (UseFakeActorTarget) { BuildFakeActor(); } if (UsesCable) { AttachCable(); } if (m_ParentRoom == null) { m_ParentRoom = Vector3Extensions.GetAbsoluteRoom(parentObject.transform.position); } if (AttachPlayer) { if (canTeleportFromRoomHook == null) { canTeleportFromRoomHook = new Hook((MethodBase)typeof(RoomHandler).GetMethod("CanTeleportFromRoom", BindingFlags.Instance | BindingFlags.Public), typeof(ExpandHatMindController).GetMethod("CanTeleportFromRoomHook", BindingFlags.Instance | BindingFlags.Public), (object)typeof(RoomHandler)); } if (owner.IsInMinecart && Object.op_Implicit((Object)(object)owner.currentMineCart)) { owner.currentMineCart.EvacuateSpecificPlayer(owner, false); } owner.IsVisible = false; ((GameActor)owner).IsGone = true; ((GameActor)owner).SetIsFlying(true, "MrCap Mind Control", false, false); ((BraveBehaviour)owner).healthHaver.IsVulnerable = false; SpeculativeRigidbody specRigidbody = ((BraveBehaviour)owner).specRigidbody; specRigidbody.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Combine((Delegate?)(object)specRigidbody.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(PlayerOnPreRigidBodyCollision)); if (owner.IsOnFire) { owner.IsOnFire = false; } if (targetType == TargetType.Hammer) { m_LastPlayerPosition = TransformExtensions.PositionVector2(((BraveBehaviour)PreviousHammer).transform.Find("ShootPoint")) - Vector2.one; } else { owner.OnEnteredCombat = (Action)Delegate.Combine(owner.OnEnteredCombat, new Action(PlayerOnEnteredCombat)); m_LastPlayerPosition = Vector2.op_Implicit(parentTarget.transform.position); } RoomHandler currentRoom = owner.CurrentRoom; if (currentRoom == null || currentRoom.area?.PrototypeRoomCategory != (RoomCategory?)3) { GameManager.Instance.MainCameraController.SetManualControl(true, true); GameManager.Instance.MainCameraController.OverrideRecoverySpeed = 12f; GameManager.Instance.MainCameraController.OverridePosition = parentObject.transform.position; } ((BraveBehaviour)owner).transform.position = Vector2.op_Implicit(m_LastPlayerPosition); ((BraveBehaviour)owner).specRigidbody.Reinitialize(); ExpandUtility.SetPlayerIsStealthed(owner, value: true, "MrCapMindControl"); RoomHandler currentRoom2 = owner.CurrentRoom; if (currentRoom2 == null || currentRoom2.area?.PrototypeRoomCategory != (RoomCategory?)3) { owner.SetInputOverride("MrCap Mind Control"); BraveTime.RegisterTimeScaleMultiplier(0.01f, parentTarget); ((MonoBehaviour)this).StartCoroutine(DelayedCameraReposition(parentTarget.transform.position)); } } else { ExpandUtility.SetPlayerIsStealthed(owner, value: true, "MrCapMindControl"); m_LastPlayerPosition = Vector2.op_Implicit(((BraveBehaviour)owner).transform.position); } owner.SetCapableOfStealing(true, "MrCapMineControl", (float?)null); owner.IsGunLocked = true; m_active = true; ExpandTheGungeon.MrCapInUse = true; } private void BuildFakeActor() { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Expected O, but got Unknown //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Expected O, but got Unknown //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("fake target"); m_fakeActor = val.AddComponent(); ((GameActor)m_fakeActor).HasShadow = false; m_fakeTargetRigidbody = val.AddComponent(); m_fakeTargetRigidbody.PixelColliders = new List(); m_fakeTargetRigidbody.CollideWithTileMap = false; m_fakeTargetRigidbody.CollideWithOthers = false; m_fakeTargetRigidbody.CanBeCarried = false; m_fakeTargetRigidbody.CanBePushed = false; m_fakeTargetRigidbody.CanCarry = false; PixelCollider val2 = new PixelCollider(); val2.ColliderGenerationMode = (PixelColliderGeneration)0; val2.CollisionLayer = (CollisionLayer)14; val2.ManualWidth = 4; val2.ManualHeight = 4; val2.IsTrigger = true; val2.CollisionLayerIgnoreOverride |= CollisionMask.LayerToMask((CollisionLayer)4); m_fakeTargetRigidbody.PixelColliders.Add(val2); } private void AttachCable() { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //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) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_008c: 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_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: 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_0065: 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_0074: Unknown result type (might be due to invalid IL or missing references) m_cable = parentObject.AddComponent(); m_cable.Attach1Offset = ((GameActor)owner).CenterPosition - Vector3Extensions.XY(((BraveBehaviour)owner).transform.position); if (targetType == TargetType.AIActor) { m_cable.Attach2Offset = ((GameActor)m_aiActor).CenterPosition - Vector3Extensions.XY(((BraveBehaviour)m_aiActor).transform.position); } else { m_cable.Attach2Offset = ((tk2dBaseSprite)parentObject.GetComponent()).WorldCenter - Vector3Extensions.XY(parentObject.transform.position); } m_cable.Initialize(((BraveBehaviour)owner).transform, parentObject.transform); } private IEnumerator DelayedCameraReposition(Vector3 targetPosition) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) float SystemTime = Time.realtimeSinceStartup; while (Vector2.Distance(Vector3Extensions.XY(((BraveBehaviour)GameManager.Instance.MainCameraController).transform.position), Vector2.op_Implicit(targetPosition)) > 0.5f) { if (Time.realtimeSinceStartup - SystemTime > 10f) { ETGModConsole.Log((object)"[ExpandTheGungeon] MrCap: Camera took longer then 10 seconds to lock back to player!", true); break; } yield return null; } GameManager.Instance.MainCameraController.OverrideRecoverySpeed = 8f; GameManager.Instance.MainCameraController.SetManualControl(false, true); yield return null; BraveTime.ClearMultiplier(parentObject); owner.ClearInputOverride("MrCap Mind Control"); } private void OnPreDeath(Vector2 direction) { if (!IsOnDeath) { IsOnDeath = true; if (Object.op_Implicit((Object)(object)MrCapItem) && (Object)(object)MrCapItem.CurrentMindControl == (Object)(object)this) { MrCapItem.DoDetach(); } else { Detach(killTarget: false); } } } private void OnDeath(Vector2 direction) { if (!IsOnDeath) { IsOnDeath = true; if (Object.op_Implicit((Object)(object)MrCapItem) && (Object)(object)MrCapItem.CurrentMindControl == (Object)(object)this) { MrCapItem.DoDetach(); } else { Detach(killTarget: false); } } } private void OnChestBreak() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) OnDeath(Vector2.zero); } private void UpdateAimTargetPosition() { //IL_003f: 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_0049: Unknown result type (might be due to invalid IL or missing references) if (!(!Object.op_Implicit((Object)(object)owner) | !UseFakeActorTarget)) { PlayerController val = owner; _ = BraveInput.GetInstanceForPlayer(val.PlayerIDX).ActiveActions; ((BraveBehaviour)m_fakeTargetRigidbody).transform.position = Vector2.op_Implicit(Vector3Extensions.XY(val.unadjustedAimPoint)); m_fakeTargetRigidbody.Reinitialize(); } } private Vector2? UpdateAimTarget(PlayerController player) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)player)) { return null; } _ = BraveInput.GetInstanceForPlayer(player.PlayerIDX).ActiveActions; return Vector3Extensions.XY(player.unadjustedAimPoint); } private void ClearOverrides(RoomHandler room) { List activeEnemies = room.GetActiveEnemies((ActiveEnemyType)0); if (activeEnemies == null) { return; } for (int i = 0; i < activeEnemies.Count; i++) { if (Object.op_Implicit((Object)(object)activeEnemies[i]) && (Object)(object)activeEnemies[i] != (Object)(object)m_aiActor && (Object)(object)activeEnemies[i].OverrideTarget == (Object)(object)((BraveBehaviour)m_aiActor).specRigidbody) { activeEnemies[i].OverrideTarget = null; } } } private void Update() { //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Invalid comparison between Unknown and I4 if (!m_active | !Object.op_Implicit((Object)(object)owner) | !Object.op_Implicit((Object)(object)m_targetRigidbody) | IsOnDeath | m_TargetLeftAlive | m_IsMovingToNewRoom) { return; } if (owner.CurrentRoom != m_ParentRoom) { m_ParentRoom = owner.CurrentRoom; } if (AttachPlayer) { if (((GameActor)owner).IsFalling) { OnPreDeath(Vector2.zero); return; } m_IsMovingToNewRoom = CheckForNewRoom(skipReposition: true, avoidExitCells: false); if (m_ParentRoom != null && m_ParentRoom.connectedRooms != null) { foreach (RoomHandler connectedRoom in m_ParentRoom.connectedRooms) { if (connectedRoom.area != null) { CellArea area = connectedRoom.area; if (area != null && (int)area.PrototypeRoomCategory == 3) { m_active = false; if (Object.op_Implicit((Object)(object)MrCapItem) && (Object)(object)MrCapItem.CurrentMindControl == (Object)(object)this) { MrCapItem.DoDetach(KillTarget: true); } else { Detach(killTarget: false); } return; } } if (targetType != TargetType.Hammer && connectedRoom.IsSealed && connectedRoom != m_ParentRoom) { ETGModConsole.Log((object)"[ExpandTheGungeon] MrCap: A sealed room was found with the player not in it! Fix that ***! :P", true); m_active = false; m_ParentRoom = connectedRoom; DoReposition(avoidExitCells: true); return; } } } m_IsMovingToNewRoom = false; } if (ActAsDecoy) { m_DecoyTimer -= BraveTime.DeltaTime; if (m_DecoyTimer <= 0f) { m_DecoyTimer = 1f; if (m_ParentRoom != null) { AttractEnemies(m_ParentRoom); } } } UpdateActions(); } private void LateUpdate() { //IL_0201: Unknown result type (might be due to invalid IL or missing references) //IL_0206: Unknown result type (might be due to invalid IL or missing references) //IL_020b: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_01d0: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: 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_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_014d: 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_0130: Unknown result type (might be due to invalid IL or missing references) if (!m_active | !Object.op_Implicit((Object)(object)owner) | !Object.op_Implicit((Object)(object)m_targetRigidbody) | m_TargetLeftAlive | m_IsMovingToNewRoom | (targetType == TargetType.Hammer && !Object.op_Implicit((Object)(object)m_Hammer))) { return; } bool flag = true; if (AttachPlayer) { switch (targetType) { case TargetType.AIActor: if (m_targetRigidbody.HitboxPixelCollider != null) { m_LastPlayerPosition = m_targetRigidbody.HitboxPixelCollider.UnitBottomLeft; } else { m_LastPlayerPosition = Vector2.op_Implicit(parentObject.transform.position); } break; case TargetType.Chest: if (m_targetRigidbody.GroundPixelCollider != null) { m_LastPlayerPosition = m_targetRigidbody.HitboxPixelCollider.UnitCenterLeft; } else { m_LastPlayerPosition = Vector2.op_Implicit(parentObject.transform.position); } break; case TargetType.Breakable: if (m_targetRigidbody.GroundPixelCollider != null) { m_LastPlayerPosition = m_targetRigidbody.HitboxPixelCollider.UnitCenterLeft; } else { m_LastPlayerPosition = Vector2.op_Implicit(parentObject.transform.position); } break; case TargetType.Hammer: if (Object.op_Implicit((Object)(object)PreviousHammer) && !((BraveBehaviour)PreviousHammer).renderer.enabled && ((m_Hammer.State == ExpandForgeHammerComponent.ExpandHammerState.Gone) | (m_Hammer.State == ExpandForgeHammerComponent.ExpandHammerState.PreSwing))) { flag = false; } break; } } if (flag) { if (targetType == TargetType.Hammer && ((GameActor)owner).IsStealthed) { ExpandUtility.SetPlayerIsStealthed(owner, value: false, "MrCapMindControl"); } ((BraveBehaviour)owner).transform.position = Vector2.op_Implicit(m_LastPlayerPosition); ((BraveBehaviour)owner).specRigidbody.Reinitialize(); } else if (targetType == TargetType.Hammer) { m_LastPlayerPosition = Vector2.op_Implicit(((BraveBehaviour)owner).transform.position); if (!((GameActor)owner).IsStealthed) { ExpandUtility.SetPlayerIsStealthed(owner, value: true, "MrCapMindControl"); } } ((BraveBehaviour)owner).healthHaver.IsVulnerable = false; owner.IsVisible = false; if (owner.IsInMinecart && Object.op_Implicit((Object)(object)owner.currentMineCart)) { owner.currentMineCart.EvacuateSpecificPlayer(owner, false); } } private void UpdateActions() { //IL_06f2: Unknown result type (might be due to invalid IL or missing references) //IL_06f7: Unknown result type (might be due to invalid IL or missing references) //IL_088e: Unknown result type (might be due to invalid IL or missing references) //IL_0893: Unknown result type (might be due to invalid IL or missing references) //IL_0709: Unknown result type (might be due to invalid IL or missing references) //IL_070e: Unknown result type (might be due to invalid IL or missing references) //IL_08a5: Unknown result type (might be due to invalid IL or missing references) //IL_08aa: Unknown result type (might be due to invalid IL or missing references) //IL_0734: Unknown result type (might be due to invalid IL or missing references) //IL_0739: Unknown result type (might be due to invalid IL or missing references) //IL_08d0: Unknown result type (might be due to invalid IL or missing references) //IL_08d5: Unknown result type (might be due to invalid IL or missing references) //IL_0786: Unknown result type (might be due to invalid IL or missing references) //IL_078b: Unknown result type (might be due to invalid IL or missing references) //IL_0922: Unknown result type (might be due to invalid IL or missing references) //IL_0927: Unknown result type (might be due to invalid IL or missing references) //IL_0759: Unknown result type (might be due to invalid IL or missing references) //IL_0764: Unknown result type (might be due to invalid IL or missing references) //IL_076f: Unknown result type (might be due to invalid IL or missing references) //IL_0774: Unknown result type (might be due to invalid IL or missing references) //IL_0779: Unknown result type (might be due to invalid IL or missing references) //IL_08f5: Unknown result type (might be due to invalid IL or missing references) //IL_0900: Unknown result type (might be due to invalid IL or missing references) //IL_090b: Unknown result type (might be due to invalid IL or missing references) //IL_0910: Unknown result type (might be due to invalid IL or missing references) //IL_0915: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_0999: Unknown result type (might be due to invalid IL or missing references) //IL_01e0: 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_01fb: Unknown result type (might be due to invalid IL or missing references) //IL_0200: Unknown result type (might be due to invalid IL or missing references) //IL_0205: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_081b: Unknown result type (might be due to invalid IL or missing references) //IL_0830: Unknown result type (might be due to invalid IL or missing references) //IL_0835: Unknown result type (might be due to invalid IL or missing references) //IL_0839: Unknown result type (might be due to invalid IL or missing references) //IL_084e: Unknown result type (might be due to invalid IL or missing references) //IL_0853: Unknown result type (might be due to invalid IL or missing references) //IL_0875: Unknown result type (might be due to invalid IL or missing references) //IL_09cd: Unknown result type (might be due to invalid IL or missing references) //IL_09e2: Unknown result type (might be due to invalid IL or missing references) //IL_09e7: Unknown result type (might be due to invalid IL or missing references) //IL_09eb: Unknown result type (might be due to invalid IL or missing references) //IL_0a00: Unknown result type (might be due to invalid IL or missing references) //IL_0a05: Unknown result type (might be due to invalid IL or missing references) //IL_0464: Unknown result type (might be due to invalid IL or missing references) //IL_0471: Unknown result type (might be due to invalid IL or missing references) //IL_0475: Unknown result type (might be due to invalid IL or missing references) //IL_047a: Unknown result type (might be due to invalid IL or missing references) if (!m_active | !Object.op_Implicit((Object)(object)owner) | !Object.op_Implicit((Object)(object)m_targetRigidbody) | IsOnDeath | m_TargetLeftAlive | m_IsMovingToNewRoom) { return; } BraveInput instanceForPlayer = BraveInput.GetInstanceForPlayer(owner.PlayerIDX); if (!Object.op_Implicit((Object)(object)instanceForPlayer)) { return; } GungeonActions activeActions = instanceForPlayer.ActiveActions; bool flag = instanceForPlayer.GetButtonDown((GungeonActionType)8); bool flag2 = instanceForPlayer.GetButtonDown((GungeonActionType)9); if (!owner.AcceptingNonMotionInput) { if (flag2) { instanceForPlayer.ConsumeButtonDown((GungeonActionType)9); flag2 = false; } if (flag) { instanceForPlayer.ConsumeButtonDown((GungeonActionType)8); flag = false; } } int num; Bounds bounds; bool flag4; switch (targetType) { case TargetType.AIActor: { if (!Object.op_Implicit((Object)(object)m_aiActor)) { break; } if (UseFakeActorTarget) { ((BraveBehaviour)m_fakeActor).specRigidbody = m_fakeTargetRigidbody; } if (UseFakeActorTarget) { m_aiActor.PlayerTarget = (GameActor)(object)m_fakeActor; } else { m_aiActor.PlayerTarget = null; } if (UseFakeActorTarget) { UpdateAimTargetPosition(); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)m_aiActor).aiShooter)) { if (UseFakeActorTarget) { ((BraveBehaviour)m_aiActor).aiShooter.AimAtPoint(m_behaviorSpeculator.PlayerTarget.CenterPosition); } else if (UpdateAimTarget(owner).HasValue) { ((BraveBehaviour)m_aiActor).aiShooter.AimAtPoint(UpdateAimTarget(owner).Value); } } bool flag3 = false; if (Object.op_Implicit((Object)(object)((BraveBehaviour)m_aiActor).knockbackDoer)) { OverridableBool val = ReflectionHelpers.ReflectGetField(typeof(KnockbackDoer), "m_isImmobile", ((BraveBehaviour)m_aiActor).knockbackDoer); if (val != null && val.Value) { flag3 = true; } } if (!flag3) { AIActor aiActor = m_aiActor; ((GameActor)aiActor).ImpartedVelocity = ((GameActor)aiActor).ImpartedVelocity + ((TwoAxisInputControl)activeActions.Move).Value * m_aiActor.MovementSpeed; } if (!Object.op_Implicit((Object)(object)m_behaviorSpeculator) | m_HasNoAttacks) { break; } m_behaviorSpeculator.InstantFirstTick = true; m_behaviorSpeculator.PostAwakenDelay = 0f; if (m_UsedSecondaryAttackThisCycle && flag) { instanceForPlayer.ConsumeButtonDown((GungeonActionType)8); flag = false; } if (flag2 && !m_CanUseSecondaryAttack(flag)) { instanceForPlayer.ConsumeButtonDown((GungeonActionType)9); flag2 = false; } if (!m_UsedSecondaryAttackThisCycle && flag2) { m_UsedSecondaryAttackThisCycle = true; instanceForPlayer.ConsumeButtonDown((GungeonActionType)9); if (((GameActor)owner).IsStealthed) { ExpandUtility.SetPlayerIsStealthed(owner, value: false, "MrCapMindControl"); } if (flag) { instanceForPlayer.ConsumeButtonDown((GungeonActionType)8); flag = false; } ((MonoBehaviour)this).StartCoroutine(ProcessSecondaryAttackTimer()); } if (m_GunHandFiredThisCycle && flag) { instanceForPlayer.ConsumeButtonDown((GungeonActionType)8); flag = false; } if (m_GunHandGunsConfigured) { if (!(!m_UsedSecondaryAttackThisCycle && flag) || !m_GunHandGunsConfigured || m_GunHandFiredThisCycle) { break; } if (GunHands != null && GunHands.Length != 0) { flag = false; instanceForPlayer.ConsumeButtonDown((GungeonActionType)8); m_GunHandFiredThisCycle = true; bool useSingleVolley = false; if (((GameActor)owner).IsStealthed) { ExpandUtility.SetPlayerIsStealthed(owner, value: false, "MrCapMindControl"); } if (SingleVolleyEnemies.Count > 0) { foreach (string singleVolleyEnemy in SingleVolleyEnemies) { if (m_aiActor.EnemyGuid == singleVolleyEnemy) { useSingleVolley = true; break; } } } ((MonoBehaviour)this).StartCoroutine(ProcessDualWieldAttack(activeActions, instanceForPlayer, useSingleVolley)); } else if ((GunHands == null) | (GunHands.Length == 0)) { m_GunHandGunsConfigured = false; } break; } AIActor aiActor2 = m_aiActor; if (aiActor2 != null) { AIShooter aiShooter = ((BraveBehaviour)aiActor2).aiShooter; int? obj; if (aiShooter == null) { obj = null; } else { Gun currentGun = aiShooter.CurrentGun; obj = ((currentGun != null) ? new int?(currentGun.ClipCapacity) : null); } if (obj > 1) { AIActor aiActor3 = m_aiActor; if (aiActor3 != null) { AIShooter aiShooter2 = ((BraveBehaviour)aiActor3).aiShooter; if (((aiShooter2 == null) ? null : aiShooter2.CurrentGun?.gunClass) == (GunClass?)5) { goto IL_04a4; } } num = (((BraveBehaviour)m_aiActor).aiShooter.CurrentGun.IsAutomatic ? 1 : 0); goto IL_04a5; } } goto IL_04a4; } case TargetType.Chest: if (m_IsMovingToNewRoom) { if (m_targetRigidbody.Velocity != Vector2.zero) { m_targetRigidbody.Velocity = Vector2.zero; } break; } if (Object.op_Implicit((Object)(object)m_Chest) && !m_Chest.IsBroken) { if (((TwoAxisInputControl)activeActions.Move).Value != Vector2.zero && !((GameActor)owner).IsOverPitAtAll) { SpeculativeRigidbody targetRigidbody = m_targetRigidbody; targetRigidbody.Velocity += ((TwoAxisInputControl)activeActions.Move).Value * MediumObjectMovementSpeed; } else { m_targetRigidbody.Velocity = Vector2.zero; } } if (!(Object.op_Implicit((Object)(object)owner) && flag)) { break; } instanceForPlayer.ConsumeButtonDown((GungeonActionType)8); if (Object.op_Implicit((Object)(object)m_Chest) && !m_Chest.IsOpen && !m_Chest.IsBroken) { if (m_Chest.IsLocked) { m_Chest.ForceUnlock(); } m_Chest.ForceOpen(owner); if (Object.op_Implicit((Object)(object)attachedHat)) { Transform transform = ((BraveBehaviour)attachedHat).transform; Vector3 localPosition = transform.localPosition; bounds = ((BraveBehaviour)attachedHat).sprite.GetBounds(); transform.localPosition = localPosition + new Vector3(0f, ((Bounds)(ref bounds)).size.y / 1.5f, 0f); } instanceForPlayer.ConsumeButtonDown((GungeonActionType)8); if (m_Chest.IsGlitched) { OnPreDeath(Vector2.zero); } } break; case TargetType.Breakable: { if (m_IsMovingToNewRoom) { if (m_targetRigidbody.Velocity != Vector2.zero) { m_targetRigidbody.Velocity = Vector2.zero; } break; } if (Object.op_Implicit((Object)(object)m_Breakable) && !m_Breakable.IsDestroyed) { if (((TwoAxisInputControl)activeActions.Move).Value != Vector2.zero && !((GameActor)owner).IsOverPitAtAll) { SpeculativeRigidbody targetRigidbody2 = m_targetRigidbody; targetRigidbody2.Velocity += ((TwoAxisInputControl)activeActions.Move).Value * MediumObjectMovementSpeed; } else { m_targetRigidbody.Velocity = Vector2.zero; } } if (!(Object.op_Implicit((Object)(object)owner) && flag)) { break; } instanceForPlayer.ConsumeButtonDown((GungeonActionType)8); if (!Object.op_Implicit((Object)(object)m_Breakable) || !Object.op_Implicit((Object)(object)((Component)m_Breakable).GetComponent())) { break; } ExpandFakeChest component = ((Component)m_Breakable).GetComponent(); if (!component.Opened) { component.Interact(owner); if (component.chestType == ExpandFakeChest.ChestType.RickRoll) { OnPreDeath(Vector2.zero); } else if (component.chestType == ExpandFakeChest.ChestType.SurpriseChest && Object.op_Implicit((Object)(object)attachedHat)) { Transform transform2 = ((BraveBehaviour)attachedHat).transform; Vector3 localPosition2 = transform2.localPosition; bounds = ((BraveBehaviour)attachedHat).sprite.GetBounds(); transform2.localPosition = localPosition2 + new Vector3(0f, ((Bounds)(ref bounds)).size.y / 1.5f, 0f); } } break; } case TargetType.Hammer: if ((!Object.op_Implicit((Object)(object)PreviousHammer) || !((BraveBehaviour)PreviousHammer).renderer.enabled) && Object.op_Implicit((Object)(object)owner) && flag) { instanceForPlayer.ConsumeButtonDown((GungeonActionType)8); if (Object.op_Implicit((Object)(object)m_Hammer)) { m_Hammer.DoManualHammerBlow(); } } break; case TargetType.Other: break; IL_04a5: flag4 = (byte)num != 0; if (!m_UsedSecondaryAttackThisCycle) { if (m_behaviorSpeculator.AttackCooldown <= 0f) { if (!m_attackedThisCycle && m_behaviorSpeculator.ActiveContinuousAttackBehavior != null) { m_attackedThisCycle = true; } if (m_attackedThisCycle && m_behaviorSpeculator.ActiveContinuousAttackBehavior == null) { m_behaviorSpeculator.AttackCooldown = float.MaxValue; } } else if (flag) { m_attackedThisCycle = false; m_behaviorSpeculator.AttackCooldown = 0f; if (!flag4) { instanceForPlayer.ConsumeButtonDown((GungeonActionType)8); flag = false; } if (((GameActor)owner).IsStealthed) { ExpandUtility.SetPlayerIsStealthed(owner, value: false, "MrCapMindControl"); } if (!flag4 && !ForceLineOfSight && hasLineOfSightToTargetHook != null) { ForceLineOfSight = true; ((MonoBehaviour)this).StartCoroutine(ProcessForcedLineOfSight()); } } } if (m_behaviorSpeculator.TargetBehaviors != null && m_behaviorSpeculator.TargetBehaviors.Count > 0) { m_behaviorSpeculator.TargetBehaviors.Clear(); } if (m_behaviorSpeculator.MovementBehaviors != null && m_behaviorSpeculator.MovementBehaviors.Count > 0) { for (int i = 0; i < m_behaviorSpeculator.MovementBehaviors.Count; i++) { if (m_behaviorSpeculator.MovementBehaviors[i] is TakeCoverBehavior) { MovementBehaviorBase obj2 = m_behaviorSpeculator.MovementBehaviors[i]; TakeCoverBehavior val2 = (TakeCoverBehavior)(object)((obj2 is TakeCoverBehavior) ? obj2 : null); val2.InitialCoverChance = 0f; ReflectionHelpers.InvokeMethod(typeof(TakeCoverBehavior), "BecomeDisinterested", val2, new object[1] { ReflectionHelpers.ReflectGetField(typeof(TakeCoverBehavior), "m_tableQuadrant", val2) }); } } m_behaviorSpeculator.MovementBehaviors.Clear(); } if (m_behaviorSpeculator.AttackBehaviors != null && m_behaviorSpeculator.AttackBehaviors.Count > 0) { for (int j = 0; j < m_behaviorSpeculator.AttackBehaviors.Count; j++) { AttackBehaviorBase attack = m_behaviorSpeculator.AttackBehaviors[j]; ProcessAttackAIActor(attack); } } else if (!m_HasNoAttacks) { m_HasNoAttacks = true; } break; IL_04a4: num = 0; goto IL_04a5; } } private IEnumerator ProcessForcedLineOfSight() { while (true) { BehaviorSpeculator behaviorSpeculator = m_behaviorSpeculator; if (((behaviorSpeculator != null) ? behaviorSpeculator.ActiveContinuousAttackBehavior : null) != null || m_UsedSecondaryAttackThisCycle) { break; } yield return null; } while (true) { BehaviorSpeculator behaviorSpeculator2 = m_behaviorSpeculator; if (((behaviorSpeculator2 != null) ? behaviorSpeculator2.ActiveContinuousAttackBehavior : null) == null || m_UsedSecondaryAttackThisCycle) { break; } yield return null; } ForceLineOfSight = false; } private IEnumerator ProcessSecondaryAttackTimer() { if (m_SecondaryIsWallMimicSlam) { if ((m_WallMimicFaceSlamBehavior == null) | !Object.op_Implicit((Object)(object)m_aiActor) | !Object.op_Implicit((Object)(object)((BraveBehaviour)m_aiActor).aiAnimator) | ((BraveBehaviour)m_aiActor).aiAnimator.IsPlaying(m_WallMimicFaceSlamBehavior.FireAnimation)) { m_UsedSecondaryAttackThisCycle = false; yield break; } if (!string.IsNullOrEmpty(m_WallMimicFaceSlamBehavior.TellAnimation)) { if (m_WallMimicFaceSlamBehavior.UseVfx && !string.IsNullOrEmpty(m_WallMimicFaceSlamBehavior.ChargeVfx)) { ((BraveBehaviour)m_aiActor).aiAnimator.PlayVfx(m_WallMimicFaceSlamBehavior.ChargeVfx, (Vector2?)null, (Vector2?)null, (Vector2?)null); } ((BraveBehaviour)m_aiActor).aiAnimator.PlayUntilFinished(m_WallMimicFaceSlamBehavior.TellAnimation, true, (string)null, -1f, false); if (Object.op_Implicit((Object)(object)((BraveBehaviour)m_aiActor).knockbackDoer)) { ((BraveBehaviour)m_aiActor).knockbackDoer.SetImmobile(true, "ShootBulletScript"); } yield return (object)new WaitForEndOfFrame(); while (((BraveBehaviour)m_aiActor).aiAnimator.IsPlaying(m_WallMimicFaceSlamBehavior.TellAnimation)) { yield return null; } if (m_WallMimicFaceSlamBehavior.UseVfx && !string.IsNullOrEmpty(m_WallMimicFaceSlamBehavior.FireVfx)) { ((BraveBehaviour)m_aiActor).aiAnimator.StopVfx(m_WallMimicFaceSlamBehavior.FireVfx); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)m_aiActor).knockbackDoer)) { ((BraveBehaviour)m_aiActor).knockbackDoer.SetImmobile(false, "ShootBulletScript"); } } m_UsedSecondaryAttackThisCycle = false; yield break; } while (true) { BehaviorSpeculator behaviorSpeculator = m_behaviorSpeculator; if (((behaviorSpeculator != null) ? behaviorSpeculator.ActiveContinuousAttackBehavior : null) == null) { break; } m_behaviorSpeculator.Interrupt(); yield return null; } if (Object.op_Implicit((Object)(object)m_behaviorSpeculator)) { m_behaviorSpeculator.AttackCooldown = 0f; } while (true) { BehaviorSpeculator behaviorSpeculator2 = m_behaviorSpeculator; if (((behaviorSpeculator2 != null) ? behaviorSpeculator2.ActiveContinuousAttackBehavior : null) != null) { break; } yield return null; } if (Object.op_Implicit((Object)(object)m_behaviorSpeculator)) { m_behaviorSpeculator.AttackCooldown = float.MaxValue; } while (true) { BehaviorSpeculator behaviorSpeculator3 = m_behaviorSpeculator; if (((behaviorSpeculator3 != null) ? behaviorSpeculator3.ActiveContinuousAttackBehavior : null) == null) { break; } yield return null; } m_UsedSecondaryAttackThisCycle = false; } private IEnumerator ProcessDualWieldAttack(GungeonActions action, BraveInput instance, bool useSingleVolley) { float elapsed = 0f; float duration = 0.1f; float postFireDelay = 0.35f; while (elapsed < duration) { if (!m_active) { yield break; } GunHandController[] gunHands = GunHands; foreach (GunHandController val in gunHands) { if (!m_active | !Object.op_Implicit((Object)(object)m_aiActor) | !Object.op_Implicit((Object)(object)val)) { yield break; } elapsed += BraveTime.DeltaTime; val.Gun.CeaseAttack(true, (ProjectileData)null); val.Gun.ClearCooldowns(); val.Gun.ClearReloadData(); val.Gun.Attack((ProjectileData)null, (GameObject)null); yield return (object)new WaitForSeconds(Random.Range(0.04f, 0.15f)); } if (useSingleVolley) { break; } yield return (object)new WaitForSeconds(Random.Range(0.05f, 0.1f)); } if (useSingleVolley) { postFireDelay = 1f; } yield return (object)new WaitForSeconds(postFireDelay); m_GunHandFiredThisCycle = false; } private IEnumerator DelayedDualWieldInit(GunHandBasicShootBehavior gunShootBehavior) { yield return (object)new WaitForSeconds(1f); if (m_GunHandGunsConfigured) { yield break; } List list = new List(); List list2 = new List(); foreach (GunHandController gunHand in gunShootBehavior.GunHands) { if (Object.op_Implicit((Object)(object)gunHand)) { gunHand.PreFireDelay = float.MaxValue; gunHand.Cooldown = float.MaxValue; gunHand.CeaseAttack(); Gun gun = gunHand.Gun; gun.PostProcessProjectile = (Action)Delegate.Combine(gun.PostProcessProjectile, new Action(GunHandPostProcessProjectile)); list2.Add(gunHand); } } GunHandGuns = list.ToArray(); if (list2.Count > 0) { GunHands = list2.ToArray(); m_GunHandPostProccessAdded = true; m_GunHandGunsConfigured = true; } } private void ProcessAttackAIActor(AttackBehaviorBase attack) { if (attack == null) { return; } if (attack is LeapExplosion) { LeapExplosion val = (LeapExplosion)(object)((attack is LeapExplosion) ? attack : null); val.maxTravelDistance = 0f; val.minLeapDistance = 0f; val.leapDistance = 1000f; if (!m_PrimaryBehaviors.Contains((AttackBehaviorBase)(object)val)) { m_PrimaryBehaviors.Add((AttackBehaviorBase)(object)val); } } else if (attack is ExplodeInRadius) { ExplodeInRadius val2 = (ExplodeInRadius)(object)((attack is ExplodeInRadius) ? attack : null); val2.explodeDistance = float.MaxValue; if (!m_PrimaryBehaviors.Contains((AttackBehaviorBase)(object)val2)) { m_PrimaryBehaviors.Add((AttackBehaviorBase)(object)val2); } } else if (attack is BasicAttackBehavior) { BasicAttackBehavior val3 = (BasicAttackBehavior)(object)((attack is BasicAttackBehavior) ? attack : null); if (m_UsedSecondaryAttackThisCycle && attack is TeleportBehavior) { AttackBehaviorBase obj = ((attack is TeleportBehavior) ? attack : null); ((BasicAttackBehavior)obj).InitialCooldown = 0f; ((BasicAttackBehavior)obj).Cooldown = 0f; ((BasicAttackBehavior)obj).RequiresLineOfSight = false; ((TeleportBehavior)obj).OnlyTeleportIfPlayerUnreachable = false; ((TeleportBehavior)obj).AllowCrossRoomTeleportation = true; ((BasicAttackBehavior)obj).MinRange = -1f; ((BasicAttackBehavior)obj).Range = -1f; ((TeleportBehavior)obj).MinDistanceFromPlayer = -1f; ((TeleportBehavior)obj).MaxDistanceFromPlayer = -1f; } else if (!m_UsedSecondaryAttackThisCycle && attack is TeleportBehavior) { TeleportBehavior val4 = (TeleportBehavior)(object)((attack is TeleportBehavior) ? attack : null); if (!m_HasSecondaryAttack) { m_HasSecondaryAttack = true; } if (!m_SecondaryBehaviors.Contains((AttackBehaviorBase)(object)val4)) { m_SecondaryBehaviors.Add((AttackBehaviorBase)(object)val4); } ((BasicAttackBehavior)val4).Cooldown = float.MaxValue; val4.StayOnScreen = false; ((BasicAttackBehavior)val4).RequiresLineOfSight = true; ((BasicAttackBehavior)val4).MaxEnemiesInRoom = 0f; ((BasicAttackBehavior)val4).InitialCooldown = 0f; ((BasicAttackBehavior)val4).MinRange = 1000f; ((BasicAttackBehavior)val4).Range = 0.1f; } else { if (attack is TeleportBehavior) { return; } if (m_UsedSecondaryAttackThisCycle) { val3.RequiresLineOfSight = true; val3.Cooldown = float.MaxValue; } else { val3.InitialCooldown = 0f; val3.Cooldown = 0f; val3.RequiresLineOfSight = false; val3.MinRange = -1f; val3.Range = -1f; } if (attack is WizardSpinShootBehavior) { WizardSpinShootBehavior val5 = (WizardSpinShootBehavior)(object)((attack is WizardSpinShootBehavior) ? attack : null); if (!m_PrimaryBehaviors.Contains((AttackBehaviorBase)(object)val5)) { m_PrimaryBehaviors.Add((AttackBehaviorBase)(object)val5); } ToggleLineOfSightHook(remove: false); val5.CanHitEnemies = true; val5.LineOfSight = true; val5.FirstSpawnDelay = 0f; } else if (attack is SummonEnemyBehavior) { SummonEnemyBehavior val6 = (SummonEnemyBehavior)(object)((attack is SummonEnemyBehavior) ? attack : null); if (m_UsedSecondaryAttackThisCycle) { ((BasicAttackBehavior)val6).InitialCooldown = 0f; ((BasicAttackBehavior)val6).Cooldown = 0f; ((BasicAttackBehavior)val6).RequiresLineOfSight = false; ((BasicAttackBehavior)val6).MinRange = -1f; ((BasicAttackBehavior)val6).Range = -1f; } else { ((BasicAttackBehavior)val6).RequiresLineOfSight = true; ((BasicAttackBehavior)val6).Cooldown = float.MaxValue; val6.MaxSummonedAtOnce = -1; val6.MaxToSpawn = -1; } m_AllSummonedEnemies = ReflectionHelpers.ReflectGetField>(typeof(SummonEnemyBehavior), "m_allSpawnedActors", val6); if (m_AllSummonedEnemies != null && m_AllSummonedEnemies.Count > 0) { PickupObject byId = PickupObjectDatabase.GetById(206); GameActorCharmEffect charmEffect = ((RadialCharmItem)((byId is RadialCharmItem) ? byId : null)).CharmEffect; for (int i = 0; i < m_AllSummonedEnemies.Count; i++) { if (!Object.op_Implicit((Object)(object)m_AllSummonedEnemies[i])) { continue; } m_AllSummonedEnemies[i].HitByEnemyBullets = true; m_AllSummonedEnemies[i].CanTargetPlayers = false; m_AllSummonedEnemies[i].CanTargetEnemies = true; m_AllSummonedEnemies[i].OverrideHitEnemies = true; m_AllSummonedEnemies[i].IsHarmlessEnemy = true; m_AllSummonedEnemies[i].IgnoreForRoomClear = true; ((GameActor)m_AllSummonedEnemies[i]).ApplyEffect((GameActorEffect)(object)charmEffect, 1f, (Projectile)null); if (!Object.op_Implicit((Object)(object)((Component)m_AllSummonedEnemies[i]).gameObject.GetComponent())) { ExpandEnemyAutoKiller expandEnemyAutoKiller = ((Component)m_AllSummonedEnemies[i]).gameObject.AddComponent(); if (Object.op_Implicit((Object)(object)m_aiActor)) { expandEnemyAutoKiller.SummonerParent = m_aiActor; expandEnemyAutoKiller.KillifSummonerDies = true; } } } } if (!m_SecondaryBehaviors.Contains((AttackBehaviorBase)(object)val6)) { m_SecondaryBehaviors.Add((AttackBehaviorBase)(object)val6); } if (!m_HasSecondaryAttack) { m_HasSecondaryAttack = true; } if (!m_SecondaryAttackIsConditional) { m_SecondaryAttackIsConditional = true; } } else if (attack is TransformBehavior) { TransformBehavior val7 = (TransformBehavior)(object)((attack is TransformBehavior) ? attack : null); if (!m_HasSecondaryAttack) { m_HasSecondaryAttack = true; } if (!m_SecondaryBehaviors.Contains((AttackBehaviorBase)(object)val7)) { m_SecondaryBehaviors.Add((AttackBehaviorBase)(object)val7); } if (m_UsedSecondaryAttackThisCycle) { ((BasicAttackBehavior)val7).InitialCooldown = 0f; ((BasicAttackBehavior)val7).Cooldown = 0f; ((BasicAttackBehavior)val7).RequiresLineOfSight = false; ((BasicAttackBehavior)val7).MinRange = -1f; ((BasicAttackBehavior)val7).Range = -1f; } else { ((BasicAttackBehavior)val7).RequiresLineOfSight = true; ((BasicAttackBehavior)val7).Cooldown = float.MaxValue; } } else if (val3 is MirrorImageBehavior) { MirrorImageBehavior o = (MirrorImageBehavior)(object)((val3 is MirrorImageBehavior) ? val3 : null); List list = ReflectionHelpers.ReflectGetField>(typeof(MirrorImageBehavior), "m_allImages", o); if (list == null || list.Count <= 0) { return; } for (int j = 0; j < list.Count; j++) { if (Object.op_Implicit((Object)(object)list[j])) { if (list[j].CanTargetPlayers) { list[j].CanTargetPlayers = false; } if (!list[j].CanTargetEnemies) { list[j].CanTargetEnemies = true; } if (!list[j].HitByEnemyBullets) { list[j].HitByEnemyBullets = true; } if (!list[j].OverrideHitEnemies) { list[j].OverrideHitEnemies = true; } } } } else if (val3 is ShootGunBehavior) { ShootGunBehavior val8 = (ShootGunBehavior)(object)((val3 is ShootGunBehavior) ? val3 : null); if (!m_PrimaryBehaviors.Contains((AttackBehaviorBase)(object)val8)) { m_PrimaryBehaviors.Add((AttackBehaviorBase)(object)val8); } if (m_UsedSecondaryAttackThisCycle) { val8.LineOfSight = true; ((BasicAttackBehavior)val8).Cooldown = float.MaxValue; return; } val8.LineOfSight = false; val8.EmptiesClip = false; val8.RespectReload = false; ((BasicAttackBehavior)val8).Cooldown = 0f; } else if (val3 is ShootBehavior) { ShootBehavior val9 = (ShootBehavior)(object)((val3 is ShootBehavior) ? val3 : null); if (val9.BulletScript != null && !string.IsNullOrEmpty(val9.BulletScript.scriptTypeName) && val9.BulletScript.scriptTypeName == "WallMimicSlam1") { if (!m_HasSecondaryAttack) { m_HasSecondaryAttack = true; } if (!m_SecondaryIsWallMimicSlam) { m_SecondaryIsWallMimicSlam = true; } m_behaviorSpeculator.AttackCooldown = float.MaxValue; m_behaviorSpeculator.Interrupt(); if (m_WallMimicFaceSlamBehavior == null) { m_WallMimicFaceSlamBehavior = val9; } } else { if (!m_PrimaryBehaviors.Contains((AttackBehaviorBase)(object)val9)) { m_PrimaryBehaviors.Add((AttackBehaviorBase)(object)val9); } ((BasicAttackBehavior)val9).Cooldown = 0f; ((BasicAttackBehavior)val9).RequiresLineOfSight = false; val9.RequiresTarget = false; } } else if (m_GunHandBehavior == null && val3 is GunHandBasicShootBehavior) { GunHandBasicShootBehavior val10 = (GunHandBasicShootBehavior)(object)((val3 is GunHandBasicShootBehavior) ? val3 : null); if (val10 == null) { return; } val10.LineOfSight = false; if (val10.GunHands == null || val10.GunHands.Count <= 0) { return; } int num = 0; foreach (GunHandController gunHand in val10.GunHands) { if ((Object)(object)gunHand != (Object)null && (Object)(object)gunHand.Gun != (Object)null && ((Behaviour)gunHand).enabled && ((Behaviour)gunHand.Gun).enabled) { num++; } } if (num == val10.GunHands.Count) { m_GunHandBehavior = val10; ((MonoBehaviour)this).StartCoroutine(DelayedDualWieldInit(m_GunHandBehavior)); } } else if (!m_PrimaryBehaviors.Contains(attack)) { m_PrimaryBehaviors.Add(attack); } } } else if (attack is AttackBehaviorGroup) { AttackBehaviorGroup val11 = (AttackBehaviorGroup)(object)((attack is AttackBehaviorGroup) ? attack : null); for (int k = 0; k < val11.AttackBehaviors.Count; k++) { ProcessAttackAIActor(val11.AttackBehaviors[k].Behavior); } } } public void GunHandPostProcessProjectile(Projectile projectile) { projectile.collidesWithEnemies = true; projectile.collidesWithPlayer = false; projectile.TreatedAsNonProjectileForChallenge = true; } private void SpawnWallMimicSlamProjectiles(ShootBehavior shootBehavior) { //IL_0018: 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) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_0154: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0179: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_012e: 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_013c: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0143: 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) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_0152: 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) AIBulletBank bulletBank = ((BraveBehaviour)m_behaviorSpeculator).bulletBank; BulletScriptSource orAddComponent = GameObjectExtensions.GetOrAddComponent(shootBehavior.ShootPoint); Vector2 val = Vector2.zero; if (Object.op_Implicit((Object)(object)m_behaviorSpeculator.TargetRigidbody)) { val = m_behaviorSpeculator.TargetRigidbody.GetUnitCenter((ColliderType)2); } if (shootBehavior.IsBulletScript) { if (!Object.op_Implicit((Object)(object)orAddComponent)) { orAddComponent = GameObjectExtensions.GetOrAddComponent(shootBehavior.ShootPoint); } orAddComponent.BulletManager = bulletBank; orAddComponent.BulletScript = shootBehavior.BulletScript; orAddComponent.Initialize(); } else { if (!shootBehavior.IsSingleBullet) { return; } Entry bullet = bulletBank.GetBullet(shootBehavior.BulletName); GameObject bulletObject = bullet.BulletObject; Vector2 val2 = val; if (Object.op_Implicit((Object)(object)m_behaviorSpeculator.TargetRigidbody)) { val2 = m_behaviorSpeculator.TargetRigidbody.GetUnitCenter((ColliderType)2); } float num; if (shootBehavior.ShouldOverrideFireDirection) { num = shootBehavior.OverrideFireDirection; } else { if (shootBehavior.LeadAmount > 0f) { Vector2 value = Vector2.op_Implicit(shootBehavior.ShootPoint.transform.position); float? num2 = ((!bullet.OverrideProjectile) ? null : new float?(bullet.ProjectileData.speed)); Vector2 predictedTargetPosition = bulletObject.GetComponent().GetPredictedTargetPosition(val2, m_behaviorSpeculator.TargetVelocity, (Vector2?)value, num2); val2 = Vector2.Lerp(val2, predictedTargetPosition, shootBehavior.LeadAmount); } Vector2 val3 = val2 - Vector3Extensions.XY(shootBehavior.ShootPoint.transform.position); num = Mathf.Atan2(val3.y, val3.x) * 57.29578f; } GameObject val4 = bulletBank.CreateProjectileFromBank(Vector2.op_Implicit(shootBehavior.ShootPoint.transform.position), num, shootBehavior.BulletName, (string)null, false, true, false); bulletBank.OnProjectileCreatedWithSource?.Invoke(((Object)shootBehavior.ShootPoint.transform).name, val4.GetComponent()); ArcProjectile component = val4.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.AdjustSpeedToHit(val2); } } } public void PlayerOnPreRigidBodyCollision(SpeculativeRigidbody myRigidbody, PixelCollider myPixelCollider, SpeculativeRigidbody otherRigidbody, PixelCollider otherPixelCollider) { //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Invalid comparison between Unknown and I4 if (((Object)(object)otherRigidbody == (Object)(object)m_targetRigidbody) | (UseFakeActorTarget && (Object)(object)otherRigidbody == (Object)(object)m_fakeTargetRigidbody) | Object.op_Implicit((Object)(object)((Component)otherRigidbody).gameObject.GetComponent()) | (otherPixelCollider.IsTrigger && !Object.op_Implicit((Object)(object)((Component)otherRigidbody).gameObject.GetComponent())) | ((int)otherPixelCollider.CollisionLayer == 16) | Object.op_Implicit((Object)(object)((Component)otherRigidbody).GetComponent())) { PhysicsEngine.SkipCollision = true; } } public void EnemyOnPreRigidBodyCollision(SpeculativeRigidbody myRigidbody, PixelCollider myPixelCollider, SpeculativeRigidbody otherRigidbody, PixelCollider otherPixelCollider) { if (((Object)(object)otherRigidbody == (Object)(object)((BraveBehaviour)owner).specRigidbody) | Object.op_Implicit((Object)(object)((Component)otherRigidbody).gameObject.GetComponent()) | (UseFakeActorTarget && (Object)(object)otherRigidbody == (Object)(object)m_fakeTargetRigidbody) | Object.op_Implicit((Object)(object)((Component)otherRigidbody).GetComponent()) | Object.op_Implicit((Object)(object)((Component)otherRigidbody).GetComponent())) { PhysicsEngine.SkipCollision = true; } } public void ChestOnPreRigidBodyCollision(SpeculativeRigidbody myRigidbody, PixelCollider myPixelCollider, SpeculativeRigidbody otherRigidbody, PixelCollider otherPixelCollider) { if (((Object)(object)otherRigidbody == (Object)(object)((BraveBehaviour)owner).specRigidbody) | Object.op_Implicit((Object)(object)((Component)otherRigidbody).GetComponent()) | Object.op_Implicit((Object)(object)((Component)otherRigidbody).GetComponent()) | Object.op_Implicit((Object)(object)((Component)otherRigidbody).GetComponent())) { PhysicsEngine.SkipCollision = true; } } public void BreakableOnPreRigidBodyCollision(SpeculativeRigidbody myRigidbody, PixelCollider myPixelCollider, SpeculativeRigidbody otherRigidbody, PixelCollider otherPixelCollider) { if (Object.op_Implicit((Object)(object)((Component)otherRigidbody).gameObject.GetComponent()) | Object.op_Implicit((Object)(object)((Component)otherRigidbody).GetComponent()) | Object.op_Implicit((Object)(object)((Component)otherRigidbody).GetComponent()) | Object.op_Implicit((Object)(object)((Component)otherRigidbody).GetComponent())) { PhysicsEngine.SkipCollision = true; } } public void BreakableOnBreak() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) OnPreDeath(Vector2.zero); } private void AnimEventTriggered(tk2dSpriteAnimator sprite, tk2dSpriteAnimationClip clip, int frameNum) { if (!(!Object.op_Implicit((Object)(object)this) | !m_active | !Object.op_Implicit((Object)(object)m_aiActor) | (m_WallMimicFaceSlamBehavior == null))) { tk2dSpriteAnimationFrame frame = clip.GetFrame(frameNum); if (m_WallMimicFaceSlamBehavior.UseVfx && !string.IsNullOrEmpty(m_WallMimicFaceSlamBehavior.FireVfx)) { ((BraveBehaviour)m_aiActor).aiAnimator.PlayVfx(m_WallMimicFaceSlamBehavior.FireVfx, (Vector2?)null, (Vector2?)null, (Vector2?)null); } if (m_UsedSecondaryAttackThisCycle && frame.eventInfo == "fire") { SpawnWallMimicSlamProjectiles(m_WallMimicFaceSlamBehavior); } } } public void HandleOnRoomCleared(PlayerController player) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) m_HammerRoomClears++; if (m_HammerRoomClears > MaxRoomClearsWithHammer) { m_HammerRoomClears = 0; OnPreDeath(Vector2.zero); } } private bool CheckForNewRoom(bool skipReposition, bool avoidExitCells) { //IL_001a: Unknown result type (might be due to invalid IL or missing references) if (!AttachPlayer) { return false; } RoomHandler val = Vector3Extensions.GetAbsoluteRoom(((Component)owner).gameObject.transform.position); if (val == null) { val = owner.CurrentRoom; } if (val != null && m_ParentRoom != val) { m_ParentRoom = val; switch (targetType) { case TargetType.AIActor: if (Object.op_Implicit((Object)(object)m_aiActor)) { m_aiActor.ParentRoom = m_ParentRoom; } break; case TargetType.Hammer: if (Object.op_Implicit((Object)(object)m_Hammer)) { m_Hammer.ParentRoom = m_ParentRoom; } break; case TargetType.Breakable: if (Object.op_Implicit((Object)(object)m_Breakable) && Object.op_Implicit((Object)(object)((Component)m_Breakable).GetComponent())) { ((Component)m_Breakable).GetComponent().ParentRoom = m_ParentRoom; } break; } if (!skipReposition) { DoReposition(avoidExitCells); return true; } } return false; } private void DoReposition(bool avoidExitCells) { //IL_004a: 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_0059: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_019e: 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_01c0: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Unknown result type (might be due to invalid IL or missing references) //IL_0251: 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_0353: Unknown result type (might be due to invalid IL or missing references) //IL_0358: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0088: 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_022b: Unknown result type (might be due to invalid IL or missing references) //IL_022f: Unknown result type (might be due to invalid IL or missing references) //IL_0234: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: 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) //IL_01f1: 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_02a5: Unknown result type (might be due to invalid IL or missing references) //IL_02aa: Unknown result type (might be due to invalid IL or missing references) //IL_02af: Unknown result type (might be due to invalid IL or missing references) //IL_02cd: Unknown result type (might be due to invalid IL or missing references) //IL_0270: Unknown result type (might be due to invalid IL or missing references) //IL_039e: Unknown result type (might be due to invalid IL or missing references) //IL_03a3: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: Unknown result type (might be due to invalid IL or missing references) //IL_0386: Unknown result type (might be due to invalid IL or missing references) //IL_038b: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_0334: Unknown result type (might be due to invalid IL or missing references) //IL_0339: Unknown result type (might be due to invalid IL or missing references) //IL_033d: Unknown result type (might be due to invalid IL or missing references) //IL_0342: Unknown result type (might be due to invalid IL or missing references) //IL_02f5: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: 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_0320: Unknown result type (might be due to invalid IL or missing references) //IL_0287: Unknown result type (might be due to invalid IL or missing references) //IL_028d: Unknown result type (might be due to invalid IL or missing references) //IL_0292: Unknown result type (might be due to invalid IL or missing references) //IL_03b9: Unknown result type (might be due to invalid IL or missing references) //IL_03be: 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) //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_0135: 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) if (m_ParentRoom == null) { return; } m_active = false; IntVector2? val = null; IntVector2 value; switch (targetType) { case TargetType.AIActor: { if (!Object.op_Implicit((Object)(object)m_aiActor)) { return; } IntVector2 val4 = m_aiActor.Clearance + IntVector2.One; if (OverrideActorSize.ContainsKey(m_aiActor.EnemyGuid)) { val4 = OverrideActorSize[m_aiActor.EnemyGuid]; } val = m_ParentRoom.GetNearestAvailableCell(Vector2.op_Implicit(((BraveBehaviour)m_aiActor).transform.position), (IntVector2?)val4, (CellTypes?)(CellTypes)2, false, m_cellValidator(GameManager.Instance.Dungeon.data, val4, avoidExitCells)); if (!val.HasValue) { val = m_ParentRoom.GetNearestAvailableCell(Vector2.op_Implicit(((BraveBehaviour)m_aiActor).transform.position), (IntVector2?)IntVector2.One, (CellTypes?)(CellTypes)2, false, m_cellValidator(GameManager.Instance.Dungeon.data, IntVector2.One, avoidExitCells)); } if (!val.HasValue) { val = m_ParentRoom.GetBestRewardLocation(val4, (RewardLocationStyle)1, false); } value = val.Value; m_LastPlayerPosition = ((IntVector2)(ref value)).ToVector2(); break; } case TargetType.Chest: { if (!Object.op_Implicit((Object)(object)m_Chest)) { return; } IntVector2 val3 = default(IntVector2); ((IntVector2)(ref val3))..ctor(((DungeonPlaceableBehaviour)m_Chest).GetWidth(), ((DungeonPlaceableBehaviour)m_Chest).GetHeight()); val = m_ParentRoom.GetNearestAvailableCell(Vector2.op_Implicit(((BraveBehaviour)m_Chest).transform.position), (IntVector2?)val3, (CellTypes?)(CellTypes)2, false, m_cellValidator(GameManager.Instance.Dungeon.data, val3, avoidExitCells)); if (!val.HasValue) { val = m_ParentRoom.GetNearestAvailableCell(Vector2.op_Implicit(((BraveBehaviour)m_Chest).transform.position), (IntVector2?)IntVector2.One, (CellTypes?)(CellTypes)2, false, m_cellValidator(GameManager.Instance.Dungeon.data, IntVector2.One, avoidExitCells)); } value = val.Value; m_LastPlayerPosition = ((IntVector2)(ref value)).ToVector2(); break; } case TargetType.Breakable: { if (!Object.op_Implicit((Object)(object)m_Breakable)) { return; } IntVector2 val2 = IntVector2.One; if (m_targetRigidbody.UnitDimensions.x > 1f && m_targetRigidbody.UnitDimensions.y > 1f) { val2 = Vector2Extensions.ToIntVector2(m_targetRigidbody.UnitDimensions, (VectorConversions)2); } val = m_ParentRoom.GetNearestAvailableCell(Vector2.op_Implicit(((BraveBehaviour)m_Breakable).transform.position), (IntVector2?)val2, (CellTypes?)(CellTypes)2, false, m_cellValidator(GameManager.Instance.Dungeon.data, val2, avoidExitCells)); if (!val.HasValue) { val = m_ParentRoom.GetNearestAvailableCell(Vector2.op_Implicit(((BraveBehaviour)m_Breakable).transform.position), (IntVector2?)IntVector2.One, (CellTypes?)(CellTypes)2, false, m_cellValidator(GameManager.Instance.Dungeon.data, IntVector2.One, avoidExitCells)); } value = val.Value; m_LastPlayerPosition = ((IntVector2)(ref value)).ToVector2(); break; } } parentObject.transform.position = Vector2.op_Implicit(m_LastPlayerPosition); m_targetRigidbody.Reinitialize(); if (m_targetRigidbody.HitboxPixelCollider != null) { m_LastPlayerPosition = m_targetRigidbody.HitboxPixelCollider.UnitCenterLeft; } else { m_LastPlayerPosition = Vector2.op_Implicit(parentObject.transform.position); } ((BraveBehaviour)owner).transform.position = Vector2.op_Implicit(m_LastPlayerPosition); ((BraveBehaviour)owner).specRigidbody.Reinitialize(); m_active = true; } public void PlayerOnEnteredCombat() { if (!(!m_active | (m_ParentRoom == null) | !Object.op_Implicit((Object)(object)owner))) { if (!((GameActor)owner).IsStealthed) { ExpandUtility.SetPlayerIsStealthed(owner, value: true, "MrCapMindControl"); } m_IsMovingToNewRoom = CheckForNewRoom(skipReposition: true, avoidExitCells: true); m_IsMovingToNewRoom = true; DoReposition(avoidExitCells: true); ((MonoBehaviour)this).StartCoroutine(DelayedWallCheck()); m_IsMovingToNewRoom = false; } } private IEnumerator DelayedWallCheck() { yield return (object)new WaitForSeconds(0.1f); if (!(!Object.op_Implicit((Object)(object)owner) | !Object.op_Implicit((Object)(object)m_aiActor)) && targetType != TargetType.Hammer) { ExpandUtility.CorrectForWalls(m_targetRigidbody, (SpeculativeRigidbody[])(object)new SpeculativeRigidbody[1] { ((BraveBehaviour)owner).specRigidbody }, checkForOtherRigidBodies: true); } } private void AttractEnemies(RoomHandler room) { if (!Object.op_Implicit((Object)(object)m_targetRigidbody)) { return; } List activeEnemies = room.GetActiveEnemies((ActiveEnemyType)0); if (activeEnemies == null) { return; } for (int i = 0; i < activeEnemies.Count; i++) { if (Object.op_Implicit((Object)(object)activeEnemies[i]) && (Object)(object)activeEnemies[i] != (Object)(object)m_aiActor && (Object)(object)activeEnemies[i].OverrideTarget == (Object)null) { activeEnemies[i].OverrideTarget = m_targetRigidbody; } } } public void Detach(bool killTarget = true) { //IL_0525: Unknown result type (might be due to invalid IL or missing references) //IL_052a: Unknown result type (might be due to invalid IL or missing references) //IL_0407: Unknown result type (might be due to invalid IL or missing references) //IL_0411: Expected O, but got Unknown //IL_0411: Unknown result type (might be due to invalid IL or missing references) //IL_041b: Expected O, but got Unknown //IL_0443: Unknown result type (might be due to invalid IL or missing references) //IL_0448: Unknown result type (might be due to invalid IL or missing references) //IL_0678: Unknown result type (might be due to invalid IL or missing references) //IL_0682: Expected O, but got Unknown //IL_0682: Unknown result type (might be due to invalid IL or missing references) //IL_068c: Expected O, but got Unknown //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Expected O, but got Unknown //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Expected O, but got Unknown //IL_0309: Unknown result type (might be due to invalid IL or missing references) //IL_0313: Expected O, but got Unknown //IL_0313: Unknown result type (might be due to invalid IL or missing references) //IL_031d: Expected O, but got Unknown //IL_0345: Unknown result type (might be due to invalid IL or missing references) //IL_034a: Unknown result type (might be due to invalid IL or missing references) //IL_06cd: Unknown result type (might be due to invalid IL or missing references) //IL_06e3: Unknown result type (might be due to invalid IL or missing references) //IL_06ed: Unknown result type (might be due to invalid IL or missing references) //IL_0701: Unknown result type (might be due to invalid IL or missing references) //IL_0706: Unknown result type (might be due to invalid IL or missing references) //IL_0744: Unknown result type (might be due to invalid IL or missing references) //IL_0749: Unknown result type (might be due to invalid IL or missing references) //IL_074e: Unknown result type (might be due to invalid IL or missing references) //IL_0765: Unknown result type (might be due to invalid IL or missing references) //IL_0780: Unknown result type (might be due to invalid IL or missing references) //IL_0785: Unknown result type (might be due to invalid IL or missing references) //IL_0787: Unknown result type (might be due to invalid IL or missing references) //IL_0794: Unknown result type (might be due to invalid IL or missing references) //IL_079e: Unknown result type (might be due to invalid IL or missing references) //IL_07a3: Unknown result type (might be due to invalid IL or missing references) //IL_07a8: Unknown result type (might be due to invalid IL or missing references) //IL_060f: Unknown result type (might be due to invalid IL or missing references) //IL_05d5: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Unknown result type (might be due to invalid IL or missing references) //IL_047f: Unknown result type (might be due to invalid IL or missing references) //IL_07c0: Unknown result type (might be due to invalid IL or missing references) //IL_07c3: Unknown result type (might be due to invalid IL or missing references) //IL_07e5: Unknown result type (might be due to invalid IL or missing references) //IL_0819: Unknown result type (might be due to invalid IL or missing references) //IL_081b: Unknown result type (might be due to invalid IL or missing references) //IL_0803: Unknown result type (might be due to invalid IL or missing references) //IL_0808: Unknown result type (might be due to invalid IL or missing references) //IL_080c: Unknown result type (might be due to invalid IL or missing references) //IL_0811: Unknown result type (might be due to invalid IL or missing references) //IL_0255: Unknown result type (might be due to invalid IL or missing references) //IL_025b: Unknown result type (might be due to invalid IL or missing references) //IL_082c: Unknown result type (might be due to invalid IL or missing references) //IL_0831: Unknown result type (might be due to invalid IL or missing references) //IL_0271: Unknown result type (might be due to invalid IL or missing references) //IL_0276: Unknown result type (might be due to invalid IL or missing references) m_active = false; IsOnDeath = true; ForceLineOfSight = false; if (ActAsDecoy) { ClearOverrides(m_ParentRoom); } if (Object.op_Implicit((Object)(object)SpriteBobber)) { SpriteBobber.DestroyBobber(); } switch (targetType) { case TargetType.AIActor: if (Object.op_Implicit((Object)(object)m_aiActor)) { ((BraveBehaviour)m_aiActor).healthHaver.OnPreDeath -= OnPreDeath; ((BraveBehaviour)m_aiActor).healthHaver.OnDeath -= OnDeath; if (m_GunHandPostProccessAdded && GunHandGuns != null && GunHandGuns.Length != 0) { Gun[] gunHandGuns = GunHandGuns; foreach (Gun obj in gunHandGuns) { obj.PostProcessProjectile = (Action)Delegate.Remove(obj.PostProcessProjectile, new Action(GunHandPostProcessProjectile)); } } if (Object.op_Implicit((Object)(object)m_targetRigidbody)) { SpeculativeRigidbody targetRigidbody3 = m_targetRigidbody; targetRigidbody3.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Remove((Delegate?)(object)targetRigidbody3.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(EnemyOnPreRigidBodyCollision)); } } m_PrimaryBehaviors.Clear(); m_SecondaryBehaviors.Clear(); ToggleLineOfSightHook(remove: true); if (!killTarget) { break; } if (Object.op_Implicit((Object)(object)m_aiActor) && ((BraveBehaviour)m_aiActor).healthHaver.IsAlive && !KillTargetExceptions.Contains(m_aiActor.EnemyGuid)) { ((BraveBehaviour)m_aiActor).healthHaver.ForceSetCurrentHealth(0f); ((BraveBehaviour)m_aiActor).healthHaver.IsVulnerable = true; ((BraveBehaviour)m_aiActor).healthHaver.ApplyDamage(float.MaxValue, Vector2.zero, "Evac", (CoreDamageTypes)0, (DamageCategory)0, true, (PixelCollider)null, false); } else if (Object.op_Implicit((Object)(object)m_aiActor) && ((BraveBehaviour)m_aiActor).healthHaver.IsAlive && !KillTargetExceptions.Contains(m_aiActor.EnemyGuid)) { ((BraveBehaviour)m_aiActor).behaviorSpeculator.Stun(-1f, true); m_TargetLeftAlive = true; if (Object.op_Implicit((Object)(object)((BraveBehaviour)m_aiActor).aiAnimator) && ((BraveBehaviour)m_aiActor).aiAnimator.facingType != m_PreviousFacingType) { ((BraveBehaviour)m_aiActor).aiAnimator.facingType = m_PreviousFacingType; } } break; case TargetType.Chest: if (!m_Chest.IsBroken && !m_Chest.IsOpen) { m_Chest.RegisterChestOnMinimap(m_ParentRoom); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)m_Chest).majorBreakable)) { MajorBreakable majorBreakable = ((BraveBehaviour)m_Chest).majorBreakable; majorBreakable.OnBreak = (Action)Delegate.Remove(majorBreakable.OnBreak, new Action(OnChestBreak)); } if (Object.op_Implicit((Object)(object)m_targetRigidbody)) { SpeculativeRigidbody targetRigidbody = m_targetRigidbody; targetRigidbody.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Remove((Delegate?)(object)targetRigidbody.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(ChestOnPreRigidBodyCollision)); m_targetRigidbody.CanBePushed = m_CachedRigidBodyCanBePushed; m_targetRigidbody.CanPush = m_CachedRigidBodyCanPush; m_targetRigidbody.Velocity = Vector2.zero; } if (!m_Chest.IsOpen && !m_Chest.IsBroken) { if (m_ParentRoom != null) { m_ParentRoom.RegisterInteractable((IPlayerInteractable)(object)m_Chest); break; } RoomHandler.unassignedInteractableObjects.Remove((IPlayerInteractable)(object)m_Chest); RoomHandler.unassignedInteractableObjects.Add((IPlayerInteractable)(object)m_Chest); } break; case TargetType.Breakable: if (Object.op_Implicit((Object)(object)m_Breakable)) { MajorBreakable breakable = m_Breakable; breakable.OnBreak = (Action)Delegate.Remove(breakable.OnBreak, new Action(BreakableOnBreak)); } if (Object.op_Implicit((Object)(object)m_targetRigidbody)) { SpeculativeRigidbody targetRigidbody2 = m_targetRigidbody; targetRigidbody2.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Remove((Delegate?)(object)targetRigidbody2.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(BreakableOnPreRigidBodyCollision)); m_targetRigidbody.CanBePushed = m_CachedRigidBodyCanBePushed; m_targetRigidbody.CanPush = m_CachedRigidBodyCanPush; m_targetRigidbody.Velocity = Vector2.zero; } if (!m_Breakable.IsDestroyed && !m_Breakable.TemporarilyInvulnerable && !Object.op_Implicit((Object)(object)((Component)m_Breakable).GetComponent())) { m_Breakable.Break(Vector2.zero); } else if (!m_Breakable.IsDestroyed && Object.op_Implicit((Object)(object)parentObject.GetComponent())) { ExpandFakeChest component = parentObject.GetComponent(); if (Object.op_Implicit((Object)(object)component) && !component.Opened && !component.IsBroken) { component.RegisterFakeChestOnMinimap(m_ParentRoom); m_ParentRoom.RegisterInteractable((IPlayerInteractable)(object)component); } } break; case TargetType.Hammer: { if (!Object.op_Implicit((Object)(object)m_Hammer)) { break; } ExpandSpriteMirror expandSpriteMirror = new GameObject("Expand Hammer Mirror Child 2", new Type[1] { typeof(ExpandSpriteMirror) }) { layer = parentObject.layer }.AddComponent(); if (((BraveBehaviour)m_Hammer).renderer.enabled && ((m_Hammer.State != ExpandForgeHammerComponent.ExpandHammerState.Gone) | (m_Hammer.State != ExpandForgeHammerComponent.ExpandHammerState.PreSwing) | (m_Hammer.State != ExpandForgeHammerComponent.ExpandHammerState.InitialDelay))) { if (((BraveBehaviour)m_Hammer).sprite.GetCurrentSpriteDef().name.Contains("_right_")) { expandSpriteMirror.AttachMirror(((BraveBehaviour)m_Hammer).transform, ((tk2dBaseSprite)ExpandObjectDatabase.ForgeHammer.GetComponent()).Collection, (Vector3?)new Vector3(-3.8f, -2.6f), alreadyMiddleCenter: true, useHitbox: false, isLocalMirror: true); } else { expandSpriteMirror.AttachMirror(((BraveBehaviour)m_Hammer).transform, ((tk2dBaseSprite)ExpandObjectDatabase.ForgeHammer.GetComponent()).Collection, (Vector3?)new Vector3(-2.8f, -2.6f), alreadyMiddleCenter: true, useHitbox: false, isLocalMirror: true); } } if (Object.op_Implicit((Object)(object)owner)) { owner.OnRoomClearEvent -= HandleOnRoomCleared; } m_Hammer.Deactivate(); break; } } if (Object.op_Implicit((Object)(object)owner)) { SpeculativeRigidbody specRigidbody = ((BraveBehaviour)owner).specRigidbody; specRigidbody.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Remove((Delegate?)(object)specRigidbody.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(PlayerOnPreRigidBodyCollision)); ((BraveBehaviour)owner).specRigidbody.RegisterGhostCollisionException(m_targetRigidbody); if (AttachPlayer) { GameManager.Instance.MainCameraController.SetManualControl(false, false); tk2dBaseSprite component2 = ((GameObject)Object.Instantiate(ResourceCache.Acquire("Global VFX/Spinfall_Poof_VFX"))).GetComponent(); component2.PlaceAtPositionByAnchor(Vector2Extensions.ToVector3ZUp(((BraveBehaviour)owner).sprite.WorldCenter, 0f) + new Vector3(0f, 0.5f, 0f), (Anchor)4); component2.HeightOffGround = 5f; component2.UpdateZDepth(); if (Object.op_Implicit((Object)(object)parentObject)) { BraveTime.ClearMultiplier(parentObject); } Vector2 val = Vector2.op_Implicit(((BraveBehaviour)owner).transform.position); ReflectionHelpers.ReflectGetField(typeof(GameActor), "m_cachedPosition", owner); val = ReflectionHelpers.ReflectGetField(typeof(GameActor), "m_cachedPosition", owner); val = Vector2.op_Implicit(Vector2Extensions.ToVector3ZUp(val, ((BraveBehaviour)owner).transform.position.z)); IntVector2? val2 = null; if (m_ParentRoom != null) { val2 = m_ParentRoom.GetNearestAvailableCell(val, (IntVector2?)m_CachedOwnerSize, (CellTypes?)(CellTypes)2, false, m_cellValidator(GameManager.Instance.Dungeon.data, m_CachedOwnerSize)); } if (val2.HasValue) { IntVector2 value = val2.Value; m_LastPlayerPosition = ((IntVector2)(ref value)).ToVector2(); } else { m_LastPlayerPosition = val; } ((BraveBehaviour)owner).transform.position = Vector2.op_Implicit(m_LastPlayerPosition); ((BraveBehaviour)owner).specRigidbody.Reinitialize(); ((GameActor)owner).SetIsFlying(false, "MrCap Mind Control", false, false); owner.IsVisible = true; ((GameActor)owner).IsGone = false; ((BraveBehaviour)owner).healthHaver.IsVulnerable = true; owner.IsGunLocked = false; owner.ClearInputOverride("MrCap Mind Control"); ExpandUtility.TriggerInvulnerableFrames(owner); if (targetType != TargetType.Hammer) { owner.OnEnteredCombat = (Action)Delegate.Remove(owner.OnEnteredCombat, new Action(PlayerOnEnteredCombat)); } ExpandUtility.SetPlayerIsStealthed(owner, value: false, "MrCapMindControl"); canTeleportFromRoomHook.Dispose(); canTeleportFromRoomHook = null; } else { ExpandUtility.SetPlayerIsStealthed(owner, value: false, "MrCapMindControl"); owner.IsGunLocked = false; } BraveInput instanceForPlayer = BraveInput.GetInstanceForPlayer(owner.PlayerIDX); GungeonActions activeActions = instanceForPlayer.ActiveActions; if (Object.op_Implicit((Object)(object)instanceForPlayer) && activeActions != null && (((OneAxisInputControl)activeActions.ShootAction).WasPressed | ((OneAxisInputControl)activeActions.ShootAction).WasPressedRepeating)) { instanceForPlayer.ConsumeButtonDown((GungeonActionType)8); } owner.SetCapableOfStealing(false, "MrCapMineControl", (float?)null); } if (Object.op_Implicit((Object)(object)attachedHat)) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).sprite)) { ((BraveBehaviour)this).sprite.DetachRenderer(((BraveBehaviour)attachedHat).sprite); } Object.Destroy((Object)(object)((Component)attachedHat).gameObject); } ExpandTheGungeon.MrCapInUse = false; Object.Destroy((Object)(object)this); } protected override void OnDestroy() { if (GameManager.IsShuttingDown) { return; } if (!Object.op_Implicit((Object)(object)owner)) { ((BraveBehaviour)this).OnDestroy(); return; } if (!IsOnDeath) { if (Object.op_Implicit((Object)(object)MrCapItem) && Object.op_Implicit((Object)(object)MrCapItem.CurrentMindControl) && (Object)(object)MrCapItem.CurrentMindControl == (Object)(object)this) { MrCapItem.DoDetach(); } else { Detach(killTarget: false); } } ((BraveBehaviour)this).OnDestroy(); } } public class ExpandNewElevatorController : DungeonPlaceableBehaviour, IPlaceConfigurable { public bool ArriveOnSpawn; public bool Configured; public bool UsesOverrideTargetFloor; public bool IsArrivalElevator; public bool IsGlitchElevator; public bool IsPortableElevator; public string OverrideBossMusic; public string OverrideFloorName; public string elevatorArriveAnimName; public string elevatorOpenAnimName; public string elevatorCloseAnimName; public string elevatorDepartAnimName; public string floorBrokenSpriteName; public string floorBrokenAltSpriteName; public float DropHeight; public ScreenShakeSettings arrivalShake; public ScreenShakeSettings doorOpenShake; public ScreenShakeSettings doorCloseShake; public ScreenShakeSettings departureShake; public GameObject[] ImpactVFXObjects; private bool m_isArrived; private bool m_ArrivalTriggered; private bool m_DepartureTriggered; private SpeculativeRigidbody m_MainRigidBody; private GameObject m_Floor; private GameObject m_Elevator; private GameObject m_ElevatorInteriorFloor; private tk2dSprite m_ElevatorSprite; private tk2dSprite m_ElevatorFloorSprite; private tk2dSprite m_ElevatorInteriorFloorSprite; private tk2dSpriteAnimator m_ElevatorAnimator; private RoomHandler m_ParentRoom; public ExpandNewElevatorController() { //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00af: 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_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: 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_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Expected O, but got Unknown //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_0113: 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_0129: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Expected O, but got Unknown //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0161: 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_0177: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_018d: 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_0193: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: 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_01a8: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Expected O, but got Unknown //IL_01b6: Unknown result type (might be due to invalid IL or missing references) //IL_01bb: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: 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_01f7: Unknown result type (might be due to invalid IL or missing references) //IL_01fc: Unknown result type (might be due to invalid IL or missing references) //IL_01ff: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Unknown result type (might be due to invalid IL or missing references) //IL_0207: Unknown result type (might be due to invalid IL or missing references) //IL_020c: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Expected O, but got Unknown ArriveOnSpawn = true; Configured = false; UsesOverrideTargetFloor = true; IsArrivalElevator = false; IsGlitchElevator = false; IsPortableElevator = false; elevatorArriveAnimName = "arrive"; elevatorOpenAnimName = "open"; elevatorCloseAnimName = "close"; elevatorDepartAnimName = "depart"; floorBrokenSpriteName = "portable_elevator_floor_broken"; floorBrokenAltSpriteName = "portable_elevator_floor_broken_alt"; OverrideBossMusic = string.Empty; OverrideFloorName = "tt_phobos"; DropHeight = 20f; arrivalShake = new ScreenShakeSettings { magnitude = 0.8f, speed = 8f, time = 0.15f, falloff = 0.1f, direction = new Vector2(0f, -1f), vibrationType = (VibrationType)10, simpleVibrationTime = (Time)20, simpleVibrationStrength = (Strength)20 }; doorOpenShake = new ScreenShakeSettings { magnitude = 0f, speed = 0f, time = 0.1f, falloff = 0f, direction = new Vector2(1f, 0f), vibrationType = (VibrationType)10, simpleVibrationTime = (Time)20, simpleVibrationStrength = (Strength)20 }; doorCloseShake = new ScreenShakeSettings { magnitude = 0f, speed = 0f, time = 0.1f, falloff = 0f, direction = Vector2.zero, vibrationType = (VibrationType)10, simpleVibrationTime = (Time)20, simpleVibrationStrength = (Strength)20 }; arrivalShake = new ScreenShakeSettings { magnitude = 0.35f, speed = 6f, time = 0.2f, falloff = 0.4f, direction = new Vector2(0f, -1f), vibrationType = (VibrationType)10, simpleVibrationTime = (Time)20, simpleVibrationStrength = (Strength)20 }; m_isArrived = false; m_ArrivalTriggered = false; m_DepartureTriggered = false; } private void Start() { } public void ConfigureOnPlacement(RoomHandler room) { //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_027a: Unknown result type (might be due to invalid IL or missing references) //IL_0280: Unknown result type (might be due to invalid IL or missing references) //IL_0285: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: Unknown result type (might be due to invalid IL or missing references) //IL_03b2: Expected O, but got Unknown //IL_03b2: Unknown result type (might be due to invalid IL or missing references) //IL_03bc: Expected O, but got Unknown //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_02ab: Unknown result type (might be due to invalid IL or missing references) //IL_02b6: Unknown result type (might be due to invalid IL or missing references) //IL_02c9: Unknown result type (might be due to invalid IL or missing references) //IL_02cf: Invalid comparison between Unknown and I4 //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_0323: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Unknown result type (might be due to invalid IL or missing references) //IL_0128: 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) m_Floor = ((Component)((BraveBehaviour)this).transform.Find("floor")).gameObject; m_ElevatorFloorSprite = m_Floor.GetComponent(); m_Elevator = ((Component)((BraveBehaviour)this).transform.Find("elevator")).gameObject; m_ElevatorAnimator = m_Elevator.GetComponent(); m_ElevatorSprite = m_Elevator.GetComponent(); m_Elevator.SetActive(false); m_ElevatorInteriorFloor = ((Component)((BraveBehaviour)this).transform.Find("interiorFloor")).gameObject; m_ElevatorInteriorFloorSprite = m_ElevatorInteriorFloor.GetComponent(); m_ElevatorInteriorFloor.SetActive(false); m_MainRigidBody = m_Floor.GetComponent(); if (IsArrivalElevator) { IntVector2 val = Vector3Extensions.IntXY(((BraveBehaviour)this).transform.position, (VectorConversions)0); for (int i = 0; i < 6; i++) { for (int j = 0; j < 6; j++) { CellData val2 = GameManager.Instance.Dungeon.data.cellData[val.x + i][val.y + j]; val2.cellVisualData.precludeAllTileDrawing = true; if (j < 5 && j > 0 && i > 0 && i < 5) { val2.type = (CellType)4; val2.fallingPrevented = true; } else { val2.type = (CellType)2; } } } for (int k = 0; k < 6; k++) { for (int l = 0; l < 8; l++) { CellData obj = GameManager.Instance.Dungeon.data.cellData[val.x + k][val.y + l]; obj.cellVisualData.containsObjectSpaceStamp = true; obj.cellVisualData.containsWallSpaceStamp = true; } } } else { if (!ArriveOnSpawn) { m_MainRigidBody.PixelColliders[0].Enabled = false; m_MainRigidBody.PixelColliders[1].Enabled = false; m_MainRigidBody.PixelColliders[2].Enabled = false; m_MainRigidBody.PixelColliders[3].Enabled = false; m_MainRigidBody.PixelColliders[4].Enabled = false; m_MainRigidBody.PixelColliders[5].Enabled = false; m_MainRigidBody.PixelColliders[6].Enabled = false; m_MainRigidBody.PixelColliders[7].Enabled = false; IntVector2 val3 = Vector3Extensions.IntXY(((BraveBehaviour)this).transform.position, (VectorConversions)0); for (int m = 0; m < 6; m++) { for (int n = 0; n < 6; n++) { CellData val4 = GameManager.Instance.Dungeon.data.cellData[val3.x + m][val3.y + n]; if ((int)room.area.PrototypeRoomCategory != 8) { if (n < 4) { val4.type = (CellType)2; val4.cellVisualData.precludeAllTileDrawing = true; } else if (m > 1 && m < 4 && n < 5) { val4.type = (CellType)2; val4.cellVisualData.precludeAllTileDrawing = true; } } else { val4.cellVisualData.precludeAllTileDrawing = true; val4.type = (CellType)2; } val4.isOccupied = true; } } } else { m_MainRigidBody.PixelColliders[2].Enabled = false; Minimap.Instance.RegisterRoomIcon(room, ExpandPrefabs.exit_room_basic.associatedMinimapIcon, false); } m_MainRigidBody.Reinitialize(); SpeculativeRigidbody mainRigidBody = m_MainRigidBody; if (Object.op_Implicit((Object)(object)mainRigidBody)) { mainRigidBody.OnTriggerCollision = (OnTriggerDelegate)Delegate.Combine((Delegate?)(object)mainRigidBody.OnTriggerCollision, (Delegate?)new OnTriggerDelegate(OnElevatorTriggerEnter)); } } m_ParentRoom = room; Configured = true; } private void DeflagCells() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_002e: 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) IntVector2 val = Vector3Extensions.IntXY(((BraveBehaviour)this).transform.position, (VectorConversions)0); for (int i = 0; i < 6; i++) { for (int j = 0; j < 6; j++) { CellData val2 = GameManager.Instance.Dungeon.data.cellData[val.x + i][val.y + j]; if (j < 5 && j > 0 && i > 0 && i < 5) { val2.fallingPrevented = false; } } } } private void Update() { //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_0118: 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_004d: 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_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_0077: Unknown result type (might be due to invalid IL or missing references) if (!Configured || (IsGlitchElevator && m_ParentRoom.HasActiveEnemies((ActiveEnemyType)1))) { return; } if (IsArrivalElevator) { if (!m_isArrived || m_DepartureTriggered) { return; } bool flag = true; for (int i = 0; i < GameManager.Instance.AllPlayers.Length; i++) { if (Vector2.Distance(Vector3Extensions.XY(((BraveBehaviour)this).transform.position) + new Vector2(2f, 2f), ((GameActor)GameManager.Instance.AllPlayers[i]).CenterPosition) < 6f) { flag = false; break; } } if (flag) { DoDeparture(); } } else if (!ArriveOnSpawn && !m_ArrivalTriggered) { PlayerController activePlayerClosestToPoint = GameManager.Instance.GetActivePlayerClosestToPoint(Vector3Extensions.XY(((BraveBehaviour)this).transform.position) + Vector2.one, true); if ((Object)(object)activePlayerClosestToPoint != (Object)null && !m_isArrived && Vector2.Distance(Vector3Extensions.XY(((BraveBehaviour)this).transform.position) + new Vector2(2f, 2f), ((GameActor)activePlayerClosestToPoint).CenterPosition) < 8f) { m_ArrivalTriggered = true; DoArrival(); } } else if (!m_ArrivalTriggered) { m_ArrivalTriggered = true; DoArrival(); } } private void OnElevatorTriggerEnter(SpeculativeRigidbody otherSpecRigidbody, SpeculativeRigidbody sourceSpecRigidbody, CollisionData collisionData) { //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Invalid comparison between Unknown and I4 //IL_0070: 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) if (IsArrivalElevator || !Configured || !m_isArrived || m_DepartureTriggered || !((Object)(object)((Component)otherSpecRigidbody).GetComponent() != (Object)null)) { return; } if ((int)GameManager.Instance.CurrentGameType == 1) { bool flag = true; for (int i = 0; i < GameManager.Instance.AllPlayers.Length; i++) { if (!((BraveBehaviour)GameManager.Instance.AllPlayers[i]).healthHaver.IsDead && !sourceSpecRigidbody.ContainsPoint(Vector3Extensions.XY(GameManager.Instance.AllPlayers[i].SpriteBottomCenter), int.MaxValue, true)) { flag = false; break; } } if (flag) { DoDeparture(); } } else { DoDeparture(); } } public void DoDeparture() { m_isArrived = true; m_DepartureTriggered = true; if (!string.IsNullOrEmpty(OverrideBossMusic)) { ExpandDungeonMusicAPI.TempCustomBossMusic = OverrideBossMusic; } if (!IsArrivalElevator) { if (Object.op_Implicit((Object)(object)Minimap.Instance)) { Minimap.Instance.PreventAllTeleports = true; } if (GameManager.HasInstance && GameManager.Instance.AllPlayers != null) { for (int i = 0; i < GameManager.Instance.AllPlayers.Length; i++) { if (Object.op_Implicit((Object)(object)GameManager.Instance.AllPlayers[i])) { GameManager.Instance.AllPlayers[i].CurrentInputState = (PlayerInputState)1; } } } } TransitionToDoorClose(m_ElevatorAnimator, m_ElevatorAnimator.CurrentClip); } public void DoArrival(float initialDelay = 0f) { if (m_isArrived) { return; } m_isArrived = true; if (IsArrivalElevator) { for (int i = 0; i < GameManager.Instance.AllPlayers.Length; i++) { PlayerController obj = GameManager.Instance.AllPlayers[i]; obj.ToggleGunRenderers(false, string.Empty); ((GameActor)obj).ToggleShadowVisiblity(false); obj.ToggleHandRenderers(false, string.Empty); obj.ToggleFollowerRenderers(false); obj.SetInputOverride("elevator arrival"); } ((MonoBehaviour)this).StartCoroutine(HandleArrival(initialDelay)); } else if (!ArriveOnSpawn) { m_MainRigidBody.PixelColliders[0].Enabled = true; m_MainRigidBody.PixelColliders[1].Enabled = true; m_MainRigidBody.PixelColliders[2].Enabled = true; m_MainRigidBody.PixelColliders[3].Enabled = true; m_MainRigidBody.PixelColliders[4].Enabled = true; m_MainRigidBody.PixelColliders[5].Enabled = true; m_MainRigidBody.PixelColliders[6].Enabled = true; if (!IsArrivalElevator) { m_MainRigidBody.PixelColliders[7].Enabled = true; } ((MonoBehaviour)this).StartCoroutine(HandleArrival(0f)); } else { ((MonoBehaviour)this).StartCoroutine(HandleArrival(1f)); } } private IEnumerator HandleArrival(float initialDelay) { if (IsArrivalElevator) { float ela = 0f; while (ela < initialDelay) { ela += BraveTime.DeltaTime; for (int i = 0; i < GameManager.Instance.AllPlayers.Length; i++) { GameManager.Instance.AllPlayers[i].ToggleFollowerRenderers(false); } yield return null; } } else { yield return (object)new WaitForSeconds(initialDelay); } m_Elevator.SetActive(true); ((Renderer)m_Elevator.GetComponent()).enabled = true; Transform elevatorTransform = m_Elevator.transform; Vector3 elevatorStartPosition = elevatorTransform.position; m_ElevatorInteriorFloor.SetActive(false); m_ElevatorAnimator.Play(elevatorArriveAnimName); m_ElevatorAnimator.StopAndResetFrame(); float elapsed = 0f; float duration = 0.1f; float yDistance = DropHeight; while (elapsed < duration) { elapsed += BraveTime.DeltaTime; float num = elapsed / duration; float num2 = Mathf.Lerp(yDistance, 0f, num); elevatorTransform.position = elevatorStartPosition + new Vector3(0f, num2, 0f); yield return null; } string sprite = floorBrokenSpriteName; if (ArriveOnSpawn) { sprite = floorBrokenAltSpriteName; } ((tk2dBaseSprite)m_ElevatorFloorSprite).SetSprite(sprite); GameManager.Instance.MainCameraController.DoScreenShake(arrivalShake, (Vector2?)null, false); m_ElevatorAnimator.Play(); tk2dSpriteAnimator elevatorAnimator = m_ElevatorAnimator; elevatorAnimator.AnimationCompleted = (Action)Delegate.Combine(elevatorAnimator.AnimationCompleted, new Action(TransitionToDoorOpen)); DoImpactVFX(); if (IsArrivalElevator) { yield return (object)new WaitForSeconds(0.1f); for (int j = 0; j < GameManager.Instance.AllPlayers.Length; j++) { GameManager.Instance.AllPlayers[j].ClearInputOverride("elevator arrival"); } } } private void DoImpactVFX() { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_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_004b: 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_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_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_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_009a: 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_00a0: Unknown result type (might be due to invalid IL or missing references) if (ImpactVFXObjects != null && ImpactVFXObjects.Length != 0) { Vector3 position = ((BraveBehaviour)this).transform.position; Vector3[] array = (Vector3[])(object)new Vector3[4] { new Vector3(3.5f, 0f), new Vector3(0.5f, 3.25f), new Vector3(4f, 1f), new Vector3(5f, 3f) }; foreach (Vector3 val in array) { Object.Instantiate(BraveUtility.RandomElement(ImpactVFXObjects), position + val, Quaternion.identity); } } } private void TransitionToDoorOpen(tk2dSpriteAnimator animator, tk2dSpriteAnimationClip clip) { animator.AnimationCompleted = (Action)Delegate.Remove(animator.AnimationCompleted, new Action(TransitionToDoorOpen)); m_ElevatorInteriorFloor.SetActive(true); m_MainRigidBody.PixelColliders[0].Enabled = false; m_MainRigidBody.PixelColliders[1].Enabled = false; if (!IsArrivalElevator) { m_MainRigidBody.PixelColliders[2].Enabled = true; } m_MainRigidBody.Reinitialize(); GameManager.Instance.MainCameraController.DoScreenShake(doorOpenShake, (Vector2?)null, false); animator.Play(elevatorOpenAnimName); m_isArrived = true; } private void TransitionToDoorClose(tk2dSpriteAnimator animator, tk2dSpriteAnimationClip clip) { GameManager.Instance.MainCameraController.DoScreenShake(doorCloseShake, (Vector2?)null, false); animator.Play(elevatorCloseAnimName); animator.AnimationCompleted = (Action)Delegate.Combine(animator.AnimationCompleted, new Action(TransitionToDepart)); } private void TransitionToDepart(tk2dSpriteAnimator animator, tk2dSpriteAnimationClip clip) { animator.AnimationCompleted = (Action)Delegate.Remove(animator.AnimationCompleted, new Action(TransitionToDepart)); if (!IsArrivalElevator) { animator.AnimationCompleted = (Action)Delegate.Combine(animator.AnimationCompleted, new Action(DepartLevel)); } GameManager.Instance.MainCameraController.DoDelayedScreenShake(departureShake, 0.25f, (Vector2?)null); m_ElevatorInteriorFloor.SetActive(false); animator.PlayAndDisableObject(elevatorDepartAnimName, (GameObject)null); if (IsArrivalElevator) { m_MainRigidBody.PixelColliders[2].Enabled = false; m_MainRigidBody.PixelColliders[3].Enabled = false; m_MainRigidBody.PixelColliders[4].Enabled = false; m_MainRigidBody.PixelColliders[5].Enabled = false; m_MainRigidBody.PixelColliders[6].Enabled = false; m_MainRigidBody.Reinitialize(); DeflagCells(); } else { HidePlayers(); } } private void DepartLevel(tk2dSpriteAnimator animator, tk2dSpriteAnimationClip clip) { //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) animator.AnimationCompleted = (Action)Delegate.Remove(animator.AnimationCompleted, new Action(DepartLevel)); AkSoundEngine.PostEvent("Stop_EX_MUS_All", ((Component)this).gameObject); AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)this).gameObject); Transform val = ((Component)GameManager.Instance.Dungeon).gameObject.transform.Find("ExpandJungleThunderStorm"); if (Object.op_Implicit((Object)(object)val)) { AkSoundEngine.PostEvent("Stop_ENV_rain_loop_01", ((Component)val).gameObject); Object.Destroy((Object)(object)((Component)val).gameObject); } if (ExpandDebugCamera.DebugCameraEnabled) { ExpandDebugCamera.SetInitialCameraPosition(Pixelator.Instance, GameManager.Instance.MainCameraController); } else { Pixelator.Instance.FadeToBlack(0.5f, false, 0f); } GameUIRoot.Instance.HideCoreUI(string.Empty); GameUIRoot.Instance.ToggleLowerPanels(false, false, string.Empty); float num = 0.5f; if (!GameManager.Instance.IsFoyer && (int)GameManager.Instance.CurrentLevelOverrideState == 0) { GameManager.DoMidgameSave(GameManager.Instance.GetNextTileset(GameManager.Instance.Dungeon.tileIndices.tilesetId)); } if ((IsPortableElevator | UsesOverrideTargetFloor) && !IsGlitchElevator && GameManager.HasInstance) { ExpandUtility.CheckAndFixNextLevelIndex(GameManager.Instance); } if (IsGlitchElevator) { ExpandSettings.glitchElevatorHasBeenUsed = true; ExpandLoadingScreen.overrideType = ExpandLoadingScreen.OverrideType.Glitched; ((MonoBehaviour)this).StartCoroutine(ExpandUtility.DelayedGlitchLevelLoad(num, BraveUtility.RandomElement(ExpandDungeonFlow.GlitchChestFlows), BraveUtility.RandomBool())); } else if (UsesOverrideTargetFloor) { GameManager.Instance.DelayedLoadCustomLevel(num, OverrideFloorName); } else { GameManager.Instance.DelayedLoadNextLevel(num); } AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)this).gameObject); } private void HidePlayers() { if (GameManager.HasInstance && GameManager.Instance.AllPlayers != null) { PlayerController[] allPlayers = GameManager.Instance.AllPlayers; for (int i = 0; i < allPlayers.Length; i++) { allPlayers[i].PrepareForSceneTransition(); } } } protected override void OnDestroy() { ((DungeonPlaceableBehaviour)this).OnDestroy(); } } public class ExpandNPCController : DungeonPlaceableBehaviour, IPlayerInteractable, IPlaceConfigurable { public enum Mode { CultistNPC, Other } public enum CultistDialogState { Default, OpenedChest, PlayerShot, PlayerSurvived, ShotCompanion, CultistShot } private enum AnimationState { SwitchingAnimation, Interacting, Idle, Dead } public List DefaultDialog; public List OtherDialog; public List OtherDialog2; public List OtherDialog3; public List OtherDialog4; public List DeathDialog; public string TalkPointChild; public string ShadowSprite; public string IdleAnimation; public string InteractAnimation; public string DeathAnimation; public Vector3 textBoxOffset; public Mode mode; [NonSerialized] public bool KillNPC; public CultistDialogState cultistDialogState; [NonSerialized] private AnimationState animationState; [NonSerialized] private bool m_Interacted; [NonSerialized] private RoomHandler m_ParentRoom; [NonSerialized] private string m_NewAnimation; [NonSerialized] private string m_CurrentAnimation; [NonSerialized] private bool m_IsDead; [NonSerialized] private float m_DeathTimer; [NonSerialized] private Transform m_TalkPoint; [NonSerialized] private tk2dSprite m_ShadowSprite; [NonSerialized] private bool m_Configured; public ExpandNPCController() { //IL_0018: 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) mode = Mode.CultistNPC; textBoxOffset = new Vector3(-0.9375f, 1.375f); DefaultDialog = new List { "Hello fellow follower of the gun!\nPlease behold our ultimate treasure! You are finally worthy to obtain it!", "It's not often we see anyone down here!\nIn that chest is a very special gun. We couldn't decide who to use it on to escape. Maybe you can have it?", "Hello there!\nPlease open that chest! It's totally safe! We promise!", "I'll be straight with you. We don't know what it does either!" }; OtherDialog = new List { "Yes yes! I'm sure you are familiar with this gun! Please use it!", "If you have any friends with you, you are free to use it on them instead!", "We've lost all desire to leave this place. Please use it. We don't need it anymore!", "It's harmless! We promise!", "Be careful where you point that!\nWhy? ... No reason! It's safe to use! We tested it to make sure!" }; OtherDialog2 = new List { "Oh I see you've chosen to use it on your friend! Don't worry. He's in a better place now!", "No he's not dead! You just killed his past! That's just a ... time corpse ... yeah that's what it is!", "Don't look at me! We didn't know how that gun works It's why we chose not to use it!", "You just killed his past! Oh how envious we are!. Just leave his ... time corpse ... behind. We'll dispose of it for you!" }; OtherDialog3 = new List { "You survived? Well that gun was just a pale imitation of the real thing anyways.", "You should be d... It didn't work?\nWell maybe you didn't aim it correctly?", "Oh you're still alive?\nNo we didn't intend for it to kill you! We promise!", "Don't look at me. I think Jeff over there might have put the wrong ammunition in it! It's his fault!" }; OtherDialog4 = new List { "Haha you fool! You shall be the sacrifice to Kaliber we need to finally escape!", "Your corpse wont be wasted! We will finally escape this accursed place!", "Oh your dead? That's too bad! Anyways, time to start the ritual!" }; DeathDialog = new List { "Why!", "How did you know?", "It was meant to be you! Not me!", "You weren't supposed to use that on me!", "You shot me! We will have our revenge!" }; TalkPointChild = "talkPoint"; ShadowSprite = "DefaultShadowSprite"; IdleAnimation = "idle"; InteractAnimation = "interact"; DeathAnimation = "cardboard_die"; cultistDialogState = CultistDialogState.Default; animationState = AnimationState.Idle; KillNPC = false; m_Interacted = false; m_IsDead = false; m_Configured = false; } public void ConfigureOnPlacement(RoomHandler room) { //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_0193: 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_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_01e8: Unknown result type (might be due to invalid IL or missing references) //IL_01fc: Unknown result type (might be due to invalid IL or missing references) //IL_0201: Unknown result type (might be due to invalid IL or missing references) m_ParentRoom = room; switch (mode) { case Mode.CultistNPC: { tk2dSpriteAnimator spriteAnimator = ((BraveBehaviour)this).spriteAnimator; IdleAnimation = ((spriteAnimator == null) ? null : spriteAnimator.CurrentClip?.name); animationState = AnimationState.Idle; if (Object.op_Implicit((Object)(object)((Component)this).gameObject.GetComponent())) { m_ParentRoom = room; if (room != null) { room.DeregisterInteractable((IPlayerInteractable)(object)((Component)this).gameObject.GetComponent()); SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)this).sprite, false); } Object.Destroy((Object)(object)((Component)this).gameObject.GetComponent()); if (Object.op_Implicit((Object)(object)((Component)this).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)this).gameObject.GetComponent()); } if (room != null) { room.RegisterInteractable((IPlayerInteractable)(object)this); SpriteOutlineManager.AddOutlineToSprite(((BraveBehaviour)this).sprite, Color.black); } if (Object.op_Implicit((Object)(object)((Component)this).gameObject.transform.Find(TalkPointChild))) { m_TalkPoint = ((Component)this).gameObject.transform.Find(TalkPointChild); } if (Object.op_Implicit((Object)(object)((Component)this).gameObject.transform.Find(ShadowSprite)) && Object.op_Implicit((Object)(object)((Component)((Component)this).gameObject.transform.Find(ShadowSprite)).GetComponent())) { m_ShadowSprite = ((Component)((Component)this).gameObject.transform.Find(ShadowSprite)).GetComponent(); GameObjectExtensions.SetLayerRecursively(((Component)m_ShadowSprite).gameObject, 19); Vector3 localPosition = default(Vector3); ((Vector3)(ref localPosition))..ctor(((Component)m_ShadowSprite).gameObject.transform.localPosition.x, ((Component)m_ShadowSprite).gameObject.transform.localPosition.y, 0.273578f); ((Component)m_ShadowSprite).gameObject.transform.localPosition = localPosition; Transform transform = ((Component)m_ShadowSprite).gameObject.transform; transform.localPosition -= new Vector3(0.24f, 0.2f, 0f); ((Behaviour)m_ShadowSprite).enabled = true; ((BraveBehaviour)m_ShadowSprite).renderer.enabled = true; } } break; } } m_Configured = true; } public void Kill() { TextBoxManager.ClearTextBox(((BraveBehaviour)this).transform); DeathDialog = BraveUtility.Shuffle(DeathDialog); cultistDialogState = CultistDialogState.CultistShot; m_DeathTimer = 3f; if (m_ParentRoom != null) { m_ParentRoom.DeregisterInteractable((IPlayerInteractable)(object)this); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).sprite)) { SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)this).sprite, false); } if (Object.op_Implicit((Object)(object)m_ShadowSprite)) { ((BraveBehaviour)m_ShadowSprite).renderer.enabled = false; } if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).specRigidbody)) { Object.Destroy((Object)(object)((BraveBehaviour)this).specRigidbody); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).aiAnimator)) { ((Behaviour)((BraveBehaviour)this).aiAnimator).enabled = false; } ((MonoBehaviour)this).StartCoroutine(HandleDialogPlayerless()); } public void InteractPlayerless(CultistDialogState DialogState = CultistDialogState.Default) { if (DialogState == CultistDialogState.Default || DialogState == CultistDialogState.PlayerSurvived || DialogState == CultistDialogState.ShotCompanion) { m_Interacted = true; } TextBoxManager.ClearTextBox(((BraveBehaviour)this).transform); DefaultDialog = BraveUtility.Shuffle(DefaultDialog); OtherDialog = BraveUtility.Shuffle(OtherDialog); OtherDialog2 = BraveUtility.Shuffle(OtherDialog2); OtherDialog3 = BraveUtility.Shuffle(OtherDialog3); OtherDialog4 = BraveUtility.Shuffle(OtherDialog4); DeathDialog = BraveUtility.Shuffle(DeathDialog); switch (mode) { case Mode.CultistNPC: cultistDialogState = DialogState; ((MonoBehaviour)this).StartCoroutine(HandleDialogPlayerless()); break; case Mode.Other: m_Interacted = false; break; default: m_Interacted = false; break; } } public void Interact(PlayerController interactor) { DefaultDialog = BraveUtility.Shuffle(DefaultDialog); OtherDialog = BraveUtility.Shuffle(OtherDialog); OtherDialog2 = BraveUtility.Shuffle(OtherDialog2); OtherDialog3 = BraveUtility.Shuffle(OtherDialog3); OtherDialog4 = BraveUtility.Shuffle(OtherDialog4); DeathDialog = BraveUtility.Shuffle(DeathDialog); TextBoxManager.ClearTextBox(((BraveBehaviour)this).transform); if (!m_Interacted) { m_Interacted = true; switch (mode) { case Mode.CultistNPC: ((MonoBehaviour)this).StartCoroutine(HandleDialog(interactor)); break; case Mode.Other: ((MonoBehaviour)this).StartCoroutine(HandleDialog(interactor)); break; default: ((MonoBehaviour)this).StartCoroutine(HandleDialog(interactor)); break; } } } private IEnumerator HandleDialog(PlayerController interactor) { if (!Object.op_Implicit((Object)(object)interactor)) { yield break; } switch (mode) { case Mode.CultistNPC: { string text = BraveUtility.RandomElement(DefaultDialog); if (cultistDialogState == CultistDialogState.OpenedChest) { text = BraveUtility.RandomElement(OtherDialog); } else if (cultistDialogState == CultistDialogState.PlayerSurvived) { text = BraveUtility.RandomElement(OtherDialog3); } else if (cultistDialogState == CultistDialogState.PlayerShot) { text = BraveUtility.RandomElement(OtherDialog4); } else if (cultistDialogState == CultistDialogState.ShotCompanion) { text = BraveUtility.RandomElement(OtherDialog2); } else if (cultistDialogState == CultistDialogState.CultistShot) { text = BraveUtility.RandomElement(DeathDialog); } if (Object.op_Implicit((Object)(object)m_TalkPoint)) { TextBoxManager.ShowTextBox(m_TalkPoint.position, ((BraveBehaviour)this).transform, 5f, text, "", false, (BoxSlideOrientation)1, false, false); } else { TextBoxManager.ShowTextBox(((BraveBehaviour)this).transform.position + textBoxOffset, ((BraveBehaviour)this).transform, 5f, text, "", false, (BoxSlideOrientation)1, false, false); } yield return (object)new WaitForSeconds(0.5f); m_Interacted = false; break; } } } private IEnumerator HandleDialogPlayerless() { TextBoxManager.ClearTextBox(((BraveBehaviour)this).transform); if (cultistDialogState == CultistDialogState.CultistShot) { animationState = AnimationState.Dead; while (!((BraveBehaviour)this).spriteAnimator.IsPlaying(DeathAnimation)) { yield return null; } while (((BraveBehaviour)this).spriteAnimator.IsPlaying(DeathAnimation)) { yield return null; } } switch (mode) { case Mode.CultistNPC: { string text = BraveUtility.RandomElement(DefaultDialog); if (cultistDialogState == CultistDialogState.OpenedChest) { text = BraveUtility.RandomElement(OtherDialog); } else if (cultistDialogState == CultistDialogState.PlayerSurvived) { text = BraveUtility.RandomElement(OtherDialog3); } else if (cultistDialogState == CultistDialogState.PlayerShot) { text = BraveUtility.RandomElement(OtherDialog4); } else if (cultistDialogState == CultistDialogState.ShotCompanion) { text = BraveUtility.RandomElement(OtherDialog2); } else if (cultistDialogState == CultistDialogState.CultistShot) { text = BraveUtility.RandomElement(DeathDialog); } if (Object.op_Implicit((Object)(object)m_TalkPoint)) { TextBoxManager.ShowTextBox(m_TalkPoint.position, ((BraveBehaviour)this).transform, 5f, text, "", false, (BoxSlideOrientation)1, false, false); } else { TextBoxManager.ShowTextBox(((BraveBehaviour)this).transform.position + textBoxOffset, ((BraveBehaviour)this).transform, 5f, text, "", false, (BoxSlideOrientation)1, false, false); } if ((cultistDialogState == CultistDialogState.Default) | (cultistDialogState == CultistDialogState.PlayerSurvived) | (cultistDialogState == CultistDialogState.ShotCompanion)) { m_Interacted = false; } break; } } } private void LateUpdate() { if (!m_Configured) { return; } switch (animationState) { case AnimationState.SwitchingAnimation: if (!string.IsNullOrEmpty(m_NewAnimation)) { m_CurrentAnimation = m_NewAnimation; ((BraveBehaviour)this).spriteAnimator.Play(m_CurrentAnimation); m_NewAnimation = string.Empty; } else if (!string.IsNullOrEmpty(m_CurrentAnimation) && !((BraveBehaviour)this).spriteAnimator.IsPlaying(m_CurrentAnimation)) { m_CurrentAnimation = string.Empty; animationState = AnimationState.Idle; } break; case AnimationState.Idle: if (!((BraveBehaviour)this).spriteAnimator.IsPlaying(IdleAnimation)) { ((BraveBehaviour)this).spriteAnimator.Play(IdleAnimation); } break; case AnimationState.Dead: if (!m_IsDead && !string.IsNullOrEmpty(DeathAnimation) && !((BraveBehaviour)this).spriteAnimator.IsPlaying(DeathAnimation)) { ((BraveBehaviour)this).spriteAnimator.Play(DeathAnimation); m_IsDead = true; } break; case AnimationState.Interacting: break; } } private void Update() { //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Expected O, but got Unknown //IL_00f8: 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_019f: 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_03a0: Unknown result type (might be due to invalid IL or missing references) //IL_03a5: Unknown result type (might be due to invalid IL or missing references) //IL_03aa: Unknown result type (might be due to invalid IL or missing references) //IL_03f9: Unknown result type (might be due to invalid IL or missing references) if (!m_Configured) { return; } if (mode != 0) { _ = 1; } else { if (!m_IsDead || m_Interacted || animationState != AnimationState.Dead || ((BraveBehaviour)this).spriteAnimator.IsPlaying(DeathAnimation)) { return; } m_DeathTimer -= BraveTime.DeltaTime; if (!(m_DeathTimer <= 0f)) { return; } PickupObject byId = PickupObjectDatabase.GetById(333); Gun val = (Gun)(object)((byId is Gun) ? byId : null); object obj; if (val == null) { obj = null; } else { ProjectileModule singleModule = val.singleModule; if (singleModule == null) { obj = null; } else { Projectile obj2 = singleModule.projectiles[0]; obj = ((obj2 == null) ? null : ((Component)obj2).gameObject.GetComponent()?.goopDefinition); } } if (Object.op_Implicit((Object)obj)) { GameObject val2 = new GameObject("Cultist Bloodstain", new Type[1] { typeof(tk2dSprite) }) { layer = 0 }; val2.transform.position = ((BraveBehaviour)this).transform.position; val2.transform.SetParent(((Component)this).gameObject.transform); val2.transform.localPosition = new Vector3(-1.4f, -0.2f); tk2dSprite component = val2.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { ((tk2dBaseSprite)component).Collection = ((BraveBehaviour)val).sprite.Collection; ((tk2dBaseSprite)component).SetSprite(0); ((BraveBehaviour)component).renderer.enabled = false; GoopDoer obj3 = val2.AddComponent(); obj3.goopDefinition = ((Component)val.singleModule.projectiles[0]).gameObject.GetComponent().goopDefinition; obj3.positionSource = (PositionSource)0; obj3.updateTiming = (UpdateTiming)0; obj3.updateFrequency = 0.05f; obj3.isTimed = false; obj3.goopTime = 1f; obj3.updateOnPreDeath = true; obj3.updateOnDeath = false; obj3.updateOnAnimFrames = true; obj3.updateOnCollision = false; obj3.updateOnGrounded = false; obj3.updateOnDestroy = false; obj3.defaultGoopRadius = 1f; obj3.suppressSplashes = false; obj3.goopSizeVaries = true; obj3.varyCycleTime = 0.9f; obj3.radiusMin = Random.Range(0.4f, 0.8f); obj3.radiusMax = Random.Range(0.8f, 1f); obj3.goopSizeRandom = true; obj3.UsesDispersalParticles = false; obj3.DispersalDensity = 3f; obj3.DispersalMinCoherency = 0.2f; obj3.DispersalMaxCoherency = 1f; } } TextBoxManager.ClearTextBox(((BraveBehaviour)this).transform); int num = ((!(Random.value >= 0.2f)) ? 5 : ((!BraveUtility.RandomBool()) ? 4 : 3)); GenericLootTable val3 = ((!BraveUtility.RandomBool()) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable); PickupObject itemOfTypeAndQuality = LootEngine.GetItemOfTypeAndQuality((ItemQuality)num, val3, false); if (Object.op_Implicit((Object)(object)itemOfTypeAndQuality)) { List list = new List { GlobalItemIds.SmallHeart, GlobalItemIds.FullHeart, GlobalItemIds.AmmoPickup, GlobalItemIds.SpreadAmmoPickup, GlobalItemIds.Spice, GlobalItemIds.Junk, GlobalItemIds.GoldJunk, GlobalItemIds.Key, GlobalItemIds.GlassGuonStone, GlobalItemIds.Junk, GlobalItemIds.GoldJunk, GlobalItemIds.SackKnightBoon, GlobalItemIds.Blank, GlobalItemIds.Map, 120 }; if (!GameStatsManager.Instance.IsRainbowRun | list.Contains(itemOfTypeAndQuality.PickupObjectId)) { LootEngine.SpawnItem(((Component)itemOfTypeAndQuality).gameObject, Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldCenter), Vector2.zero, 0f, true, true, false); } else if (m_ParentRoom != null && Object.op_Implicit((Object)(object)GameManager.Instance.RewardManager.BowlerNoteOtherSource)) { string customText = "Corpses aren't {wb}Rainbow Chests{w}!\n\nNo RAAAAAIIIINBOW, no item!\n\n{wb}-Bowler{w}"; ExpandUtility.SpawnCustomBowlerNote(GameManager.Instance.RewardManager.BowlerNoteOtherSource, ((BraveBehaviour)this).sprite.WorldCenter, m_ParentRoom, customText); } } m_Interacted = true; Object.Destroy((Object)(object)this); } } public string GetAnimationState(PlayerController interactor, out bool shouldBeFlipped) { shouldBeFlipped = false; return string.Empty; } public float GetDistanceToPoint(Vector2 point) { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0035: 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_0037: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)((BraveBehaviour)this).sprite)) { return 1000f; } Vector3 val = Vector2.op_Implicit(BraveMathCollege.ClosestPointOnRectangle(point, ((BraveBehaviour)this).specRigidbody.UnitBottomLeft, ((BraveBehaviour)this).specRigidbody.UnitDimensions)); return Vector2.Distance(point, Vector2.op_Implicit(val)) / 1.5f; } public float GetOverrideMaxDistance() { return -1f; } public void OnEnteredRange(PlayerController interactor) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)this).sprite, false); SpriteOutlineManager.AddOutlineToSprite(((BraveBehaviour)this).sprite, Color.white); ((BraveBehaviour)this).sprite.UpdateZDepth(); } public void OnExitRange(PlayerController interactor) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)this).sprite, false); SpriteOutlineManager.AddOutlineToSprite(((BraveBehaviour)this).sprite, Color.black); ((BraveBehaviour)this).sprite.UpdateZDepth(); } protected override void OnDestroy() { ((DungeonPlaceableBehaviour)this).OnDestroy(); } } public class ExpandPlaySoundOnSpawn : BraveBehaviour { [SerializeField] public string SoundEvent; public void Start() { if (!string.IsNullOrEmpty(SoundEvent)) { AkSoundEngine.PostEvent(SoundEvent, ((Component)this).gameObject); Object.Destroy((Object)(object)this); } } public void Update() { } protected override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); } } public class ExpandPunchoutArcadeController : BraveBehaviour { [NonSerialized] public static List RewardIDs = new List(); [NonSerialized] public static int RatKeyCount = -1; [NonSerialized] public static bool WonRatGame = false; [NonSerialized] public static Hook doLoseFadeHook; [NonSerialized] public static Hook dropRewardHook; [NonSerialized] public static Hook dropKeyHook; [NonSerialized] public GameObject ScanlineFX; [NonSerialized] public PlayerController Player; [NonSerialized] public ExpandCasinoGameController ParentGameController; [NonSerialized] private PunchoutController m_punchoutController; [NonSerialized] private dfTextureSprite m_PunchoutOverlay; [NonSerialized] private bool m_Configured; [NonSerialized] private bool m_PunchOutEnded; public ExpandPunchoutArcadeController() { m_Configured = false; m_PunchOutEnded = false; } public void StartPunchout(PlayerController player) { //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Expected O, but got Unknown //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Expected O, but got Unknown //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Expected O, but got Unknown //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0124: 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_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: 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) //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) Player = player; RatKeyCount = -1; WonRatGame = false; RewardIDs = new List(); ExpandSettings.PlayingPunchoutArcade = true; doLoseFadeHook = new Hook((MethodBase)typeof(PunchoutController).GetMethod("DoLoseFade", BindingFlags.Instance | BindingFlags.Public), typeof(ExpandPunchoutArcadeController).GetMethod("DoLoseFadeHook", BindingFlags.Instance | BindingFlags.Public), (object)typeof(PunchoutController)); dropRewardHook = new Hook((MethodBase)typeof(PunchoutAIActor).GetMethod("DropReward", BindingFlags.Instance | BindingFlags.NonPublic), typeof(ExpandPunchoutArcadeController).GetMethod("DropRewardHook", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(PunchoutAIActor)); dropKeyHook = new Hook((MethodBase)typeof(PunchoutAIActor).GetMethod("DropKey", BindingFlags.Instance | BindingFlags.NonPublic), typeof(ExpandPunchoutArcadeController).GetMethod("DropKeyHook", BindingFlags.Instance | BindingFlags.NonPublic), (object)typeof(PunchoutAIActor)); RoomHandler currentRoom = GameManager.Instance.PrimaryPlayer.CurrentRoom; MetalGearRatDeathController component = ExpandAssets.LoadOfficialAsset("MetalGearRat", ExpandAssets.AssetSource.EnemiesBase).GetComponent(); IntVector2 basePosition = currentRoom.area.basePosition; _ = ((IntVector2)(ref basePosition)).ToVector3() - new Vector3(5f, 5f); Vector3 val = ((IntVector2)(ref basePosition)).ToVector3() + new Vector3(0f, 10f); SuperReaperController.PreventShooting = true; PlayerController[] allPlayers = GameManager.Instance.AllPlayers; for (int i = 0; i < allPlayers.Length; i++) { allPlayers[i].SetInputOverride("starting punchout"); } GameObject val2 = Object.Instantiate(component.PunchoutMinigamePrefab, val, Quaternion.identity); m_punchoutController = val2.GetComponent(); m_punchoutController.PlayerWonRatNPC = null; ((MonoBehaviour)this).StartCoroutine(StartPunchout()); } private IEnumerator StartPunchout() { m_punchoutController.Init(); if (!Object.op_Implicit((Object)(object)ScanlineFX)) { ScanlineFX = Object.Instantiate(ExpandAssets.LoadAsset("EXArcadeGameScanlineFX"), ((Component)this).gameObject.transform.position, Quaternion.identity); } for (int i = 0; i < 20; i++) { yield return null; } Pixelator.Instance.FadeToColor(1f, Color.black, true, 0f); yield return null; SetupUI(); m_Configured = true; } private void SetupUI(float ZoomLevel = 0.8f) { //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_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_01da: Unknown result type (might be due to invalid IL or missing references) //IL_023f: Unknown result type (might be due to invalid IL or missing references) //IL_0244: Unknown result type (might be due to invalid IL or missing references) //IL_0249: Unknown result type (might be due to invalid IL or missing references) //IL_0274: Unknown result type (might be due to invalid IL or missing references) GameManager.Instance.MainCameraController.SetZoomScaleImmediate(ZoomLevel); FieldInfo? field = typeof(PunchoutController).GetField("m_cameraCenterPos", BindingFlags.Instance | BindingFlags.NonPublic); field.SetValue(value: (Vector2)field.GetValue(m_punchoutController) - new Vector2(1f, 0f), obj: m_punchoutController); dfPanel uiPanel = m_punchoutController.UiPanel; ((dfControl)uiPanel).Size = ((dfControl)uiPanel).Size - new Vector2(290f, 0f); dfPanel uiPanel2 = m_punchoutController.UiPanel; ((dfControl)uiPanel2).Position = ((dfControl)uiPanel2).Position + new Vector3(145f, 10f); m_PunchoutOverlay = GameUIRoot.Instance.Manager.AddControl(); ((dfControl)m_PunchoutOverlay).Anchor = (dfAnchorStyle)192; ((dfControl)m_PunchoutOverlay).IsInteractive = true; ((dfControl)m_PunchoutOverlay).Tooltip = string.Empty; ((dfControl)m_PunchoutOverlay).Pivot = (dfPivotPoint)4; ((dfControl)m_PunchoutOverlay).zindex = 8; ((dfControl)m_PunchoutOverlay).Color = new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue); ((dfControl)m_PunchoutOverlay).DisabledColor = new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue); ((dfControl)m_PunchoutOverlay).Size = new Vector2(1440f, 810f); ((dfControl)m_PunchoutOverlay).MinimumSize = Vector2.zero; ((dfControl)m_PunchoutOverlay).MinimumSize = Vector2.zero; ((dfControl)m_PunchoutOverlay).ClipChildren = false; ((dfControl)m_PunchoutOverlay).InverseClipChildren = false; ((dfControl)m_PunchoutOverlay).TabIndex = -1; ((dfControl)m_PunchoutOverlay).CanFocus = false; ((dfControl)m_PunchoutOverlay).AutoFocus = false; ((dfControl)m_PunchoutOverlay).IsLocalized = false; ((dfControl)m_PunchoutOverlay).HotZoneScale = Vector2.one; ((dfControl)m_PunchoutOverlay).AllowSignalEvents = true; ((dfControl)m_PunchoutOverlay).PrecludeUpdateCycle = false; m_PunchoutOverlay.Texture = (Texture)(object)ExpandAssets.LoadAsset("PunchoutArcadeOverlay"); ((dfControl)m_PunchoutOverlay).Opacity = 1f; m_PunchoutOverlay.Flip = (dfSpriteFlip)0; m_PunchoutOverlay.FillDirection = (dfFillDirection)0; m_PunchoutOverlay.CropRect = new Rect(Vector2.zero, Vector2.one); m_PunchoutOverlay.CropTexture = false; ((dfControl)m_PunchoutOverlay).Position = new Vector3(-720f, 405f, 0f); ((dfControl)m_PunchoutOverlay).IsEnabled = true; ((dfControl)m_PunchoutOverlay).IsVisible = true; ((dfControl)((Component)GameUIRoot.Instance.PauseMenuPanel).GetComponent().metaCurrencyPanel).IsVisible = false; } public void DestroyOverlayUI() { if (Object.op_Implicit((Object)(object)m_PunchoutOverlay)) { ((dfControl)m_PunchoutOverlay).Opacity = 0f; ((dfControl)m_PunchoutOverlay).IsEnabled = false; ((dfControl)m_PunchoutOverlay).IsVisible = true; Object.Destroy((Object)(object)m_PunchoutOverlay); } } private void LateUpdate() { if (!(!m_Configured | !PunchoutController.IsActive | !Object.op_Implicit((Object)(object)m_PunchoutOverlay))) { ((dfControl)m_PunchoutOverlay).IsVisible = !GameManager.Instance.IsPaused; } } private void Update() { //IL_002e: Unknown result type (might be due to invalid IL or missing references) if (!(!m_Configured | m_PunchOutEnded | PunchoutController.IsActive)) { Minimap.Instance.TemporarilyPreventMinimap = false; Pixelator.Instance.FadeToColor(1f, Color.white, true, 0f); PickupObject.RatBeatenAtPunchout = false; m_PunchOutEnded = true; ExpandSettings.PlayingPunchoutArcade = false; if (doLoseFadeHook != null) { doLoseFadeHook.Dispose(); doLoseFadeHook = null; } if (dropRewardHook != null) { dropRewardHook.Dispose(); dropRewardHook = null; } if (dropKeyHook != null) { dropKeyHook.Dispose(); dropKeyHook = null; } if (Object.op_Implicit((Object)(object)ScanlineFX)) { Object.Destroy((Object)(object)ScanlineFX); } if (Object.op_Implicit((Object)(object)ParentGameController)) { ParentGameController.Finished = true; } } } public void MaybeGiveRewards(float Delay = 0.25f) { ((MonoBehaviour)this).StartCoroutine(DelayedItemPickups(Delay)); } private IEnumerator DelayedItemPickups(float delay) { yield return (object)new WaitForSeconds(delay); if (WonRatGame) { bool flag = false; bool flag2 = false; if (RatKeyCount != -1) { for (int i = 0; i < RatKeyCount; i++) { using List.Enumerator enumerator = RewardIDs.GetEnumerator(); while (enumerator.MoveNext()) { switch (enumerator.Current) { case 68: { PlayerConsumables carriedConsumables2 = Player.carriedConsumables; carriedConsumables2.Currency += 1; if (!flag2) { flag2 = true; } break; } case 70: { PlayerConsumables carriedConsumables = Player.carriedConsumables; carriedConsumables.Currency += 5; if (!flag2) { flag2 = true; } break; } case 74: { PlayerConsumables carriedConsumables3 = Player.carriedConsumables; carriedConsumables3.Currency += 50; if (!flag2) { flag2 = true; } break; } case 297: if (!flag) { flag = true; } GameStatsManager.Instance.RegisterStatChange((TrackedStats)25, 5f); break; } } } } else { using List.Enumerator enumerator = RewardIDs.GetEnumerator(); while (enumerator.MoveNext()) { switch (enumerator.Current) { case 68: { PlayerConsumables carriedConsumables5 = Player.carriedConsumables; carriedConsumables5.Currency += 1; if (!flag2) { flag2 = true; } break; } case 70: { PlayerConsumables carriedConsumables4 = Player.carriedConsumables; carriedConsumables4.Currency += 5; if (!flag2) { flag2 = true; } break; } case 74: { PlayerConsumables carriedConsumables6 = Player.carriedConsumables; carriedConsumables6.Currency += 50; if (!flag2) { flag2 = true; } break; } case 297: if (!flag) { flag = true; } GameStatsManager.Instance.RegisterStatChange((TrackedStats)25, 1f); break; } } } Player.carriedConsumables.ForceUpdateUI(); if (flag) { PickupObject byId = PickupObjectDatabase.GetById(297); CurrencyPickup val = (CurrencyPickup)(object)((byId is CurrencyPickup) ? byId : null); tk2dBaseSprite targetAutomaticSprite = (tk2dBaseSprite)(object)((Component)val).gameObject.GetComponent().TargetAutomaticSprite; Player.BloopItemAboveHead(targetAutomaticSprite, val.overrideBloopSpriteName); tk2dSprite component = Object.Instantiate((GameObject)ResourceCache.Acquire("Global VFX/VFX_Item_Pickup")).GetComponent(); ((tk2dBaseSprite)component).PlaceAtPositionByAnchor(Vector2.op_Implicit(((BraveBehaviour)Player).sprite.WorldCenter), (Anchor)4); ((tk2dBaseSprite)component).UpdateZDepth(); AkSoundEngine.PostEvent("Play_OBJ_metacoin_collect_01", ((Component)this).gameObject); } if (flag2) { PickupObject byId2 = PickupObjectDatabase.GetById(68); CurrencyPickup val2 = (CurrencyPickup)(object)((byId2 is CurrencyPickup) ? byId2 : null); Player.BloopItemAboveHead(((BraveBehaviour)val2).sprite, val2.overrideBloopSpriteName); tk2dSprite component2 = Object.Instantiate((GameObject)ResourceCache.Acquire("Global VFX/VFX_Item_Pickup")).GetComponent(); ((tk2dBaseSprite)component2).PlaceAtPositionByAnchor(Vector2.op_Implicit(((BraveBehaviour)Player).sprite.WorldCenter), (Anchor)4); ((tk2dBaseSprite)component2).UpdateZDepth(); if (RatKeyCount > 2) { AkSoundEngine.PostEvent("Play_OBJ_coin_large_01", ((Component)this).gameObject); } else { AkSoundEngine.PostEvent("Play_OBJ_coin_small_01", ((Component)this).gameObject); } } } RatKeyCount = -1; RewardIDs = new List(); WonRatGame = false; } public void DoLoseFadeHook(Action orig, PunchoutController self, bool skipDelay) { ((MonoBehaviour)GameManager.Instance).StartCoroutine(DoLoseFadeCR(self, skipDelay)); } private void DropRewardHook(Action orig, PunchoutAIActor self, bool isLeft, params ItemQuality[] targetQualities) { ((MonoBehaviour)GameManager.Instance).StartCoroutine(DropRewardCR(self, isLeft)); } private void DropKeyHook(Action orig, PunchoutAIActor self, bool isLeft) { ((MonoBehaviour)GameManager.Instance).StartCoroutine(DropKeyCR(self, isLeft)); } private static IEnumerator DoLoseFadeCR(PunchoutController self, bool skipDelay) { if (!skipDelay) { yield return (object)new WaitForSeconds(2f); } float ela = 0f; float duration = 3f; Material vignetteMaterial = Pixelator.Instance.FadeMaterial; while (ela < duration) { ela += BraveTime.DeltaTime; float num = Mathf.Lerp(0f, 1f, ela / duration); vignetteMaterial.SetColor("_VignetteColor", Color.black); vignetteMaterial.SetFloat("_VignettePower", Mathf.Lerp(0.5f, 10f, num)); num = Mathf.Lerp(0f, 1f, ela / 0.2f); self.HideUiAmount = num; self.UiManager.Invalidate(); yield return null; } Pixelator.Instance.FadeToColor(1f, Color.black, false, 0f); yield return (object)new WaitForSeconds(1.5f); Pixelator.Instance.FadeToColor(1f, Color.black, true, 0f); vignetteMaterial.SetColor("_VignetteColor", Color.black); vignetteMaterial.SetFloat("_VignettePower", 1f); ReflectionHelpers.InvokeMethod(typeof(PunchoutController), "TeardownPunchout", self); } private IEnumerator DropRewardCR(PunchoutAIActor punchoutAIActor, bool isLeft) { int rewardId = ((Random.value < 0.01f) ? 74 : ((Random.value < 0.2f) ? 297 : ((!(Random.value < 0.1f)) ? 68 : 70))); if (rewardId != -1) { punchoutAIActor.DroppedRewardIds.Add(rewardId); RewardIDs.Add(rewardId); while (((PunchoutGameActor)punchoutAIActor).state is ThrowAmmoState) { yield return null; } GameObject obj = SpawnManager.SpawnVFX(punchoutAIActor.DroppedItemPrefab, ((BraveBehaviour)punchoutAIActor).transform.position + new Vector3(-0.25f, 2.5f), Quaternion.identity); tk2dSprite component = obj.GetComponent(); tk2dSprite component2 = ((Component)PickupObjectDatabase.GetById(rewardId)).GetComponent(); ((tk2dBaseSprite)component).SetSprite(((tk2dBaseSprite)component2).Collection, ((tk2dBaseSprite)component2).spriteId); obj.GetComponent().Init(isLeft); } } private IEnumerator DropKeyCR(PunchoutAIActor punchoutAIActor, bool isLeft) { int numKeysDropped = punchoutAIActor.NumKeysDropped; punchoutAIActor.NumKeysDropped = numKeysDropped + 1; while (((PunchoutGameActor)punchoutAIActor).state is ThrowAmmoState) { yield return null; } GameObject val = SpawnManager.SpawnVFX(ExpandPrefabs.EXPunchoutArcadeCoin, ((BraveBehaviour)punchoutAIActor).transform.position + new Vector3(-0.25f, 2.5f), Quaternion.identity); if (!Object.op_Implicit((Object)(object)val)) { yield break; } tk2dSprite component = val.GetComponent(); PunchoutDroppedItem component2 = val.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { string text = "left"; if (!isLeft) { text = "right"; } ((tk2dBaseSprite)component).SetSprite("punchout_coin_" + text); } if (Object.op_Implicit((Object)(object)component2)) { component2.Init(isLeft); } } protected override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); } } public class ExpandReticleRiserEffect : MonoBehaviour { public bool UpdateSpriteDefinitions; public string CurrentSpriteName; public int NumRisers; public float RiserHeight; public float RiseTime; private tk2dSprite m_sprite; private tk2dSprite[] m_risers; private Shader m_shader; private float m_localElapsed; public ExpandReticleRiserEffect() { NumRisers = 4; RiserHeight = 1f; RiseTime = 1.5f; UpdateSpriteDefinitions = false; CurrentSpriteName = string.Empty; } private void Start() { m_sprite = ((Component)this).GetComponent(); ((tk2dBaseSprite)m_sprite).usesOverrideMaterial = true; m_shader = ShaderCache.Acquire("tk2d/BlendVertexColorUnlitTilted"); ((BraveBehaviour)m_sprite).renderer.material.shader = m_shader; GameObject val = Object.Instantiate(((Component)this).gameObject); Object.Destroy((Object)(object)val.GetComponent()); m_risers = (tk2dSprite[])(object)new tk2dSprite[NumRisers]; m_risers[0] = val.GetComponent(); for (int i = 0; i < NumRisers - 1; i++) { m_risers[i + 1] = Object.Instantiate(val).GetComponent(); } OnSpawned(); } private void OnSpawned() { //IL_0042: 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) m_localElapsed = 0f; if (m_risers != null) { for (int i = 0; i < m_risers.Length; i++) { ((BraveBehaviour)m_risers[i]).transform.parent = ((Component)this).transform; ((BraveBehaviour)m_risers[i]).transform.localPosition = Vector3.zero; ((BraveBehaviour)m_risers[i]).transform.localRotation = Quaternion.identity; ((tk2dBaseSprite)m_risers[i]).usesOverrideMaterial = true; ((BraveBehaviour)m_risers[i]).renderer.material.shader = m_shader; GameObjectExtensions.SetLayerRecursively(((Component)m_risers[i]).gameObject, LayerMask.NameToLayer("FG_Critical")); } } } private void Update() { //IL_0100: 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_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_0160: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)m_sprite)) { return; } m_localElapsed += BraveTime.DeltaTime; if (UpdateSpriteDefinitions && !string.IsNullOrEmpty(CurrentSpriteName)) { ((tk2dBaseSprite)m_sprite).SetSprite(CurrentSpriteName); } ((tk2dBaseSprite)m_sprite).ForceRotationRebuild(); ((tk2dBaseSprite)m_sprite).UpdateZDepth(); ((BraveBehaviour)m_sprite).renderer.material.shader = m_shader; if (m_risers == null) { return; } for (int i = 0; i < m_risers.Length; i++) { if (UpdateSpriteDefinitions && !string.IsNullOrEmpty(CurrentSpriteName)) { ((tk2dBaseSprite)m_risers[i]).SetSprite(CurrentSpriteName); } float num = Mathf.Max(0f, m_localElapsed - RiseTime / (float)NumRisers * (float)i) % RiseTime / RiseTime; ((tk2dBaseSprite)m_risers[i]).color = Color.Lerp(new Color(1f, 1f, 1f, 0.75f), new Color(1f, 1f, 1f, 0f), num); float num2 = Mathf.Lerp(0f, RiserHeight, num); ((BraveBehaviour)m_risers[i]).transform.localPosition = Vector3.zero; Transform transform = ((BraveBehaviour)m_risers[i]).transform; transform.position += Vector3Extensions.WithY(Vector3.zero, num2); ((tk2dBaseSprite)m_risers[i]).ForceRotationRebuild(); ((tk2dBaseSprite)m_risers[i]).UpdateZDepth(); ((BraveBehaviour)m_risers[i]).renderer.material.shader = m_shader; } } } public class ExpandSpawnBowlerNoteOnDeath : OnDeathBehavior { public string[] PossibleStrings; private bool m_hasTriggered; public ExpandSpawnBowlerNoteOnDeath() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) base.deathType = (DeathType)0; base.preDeathDelay = 0f; base.triggerName = ""; PossibleStrings = new string[1] { "This enemy doesn't look like a {wb}rainbow chest{w} to me!\n\nNo RAAAAAIIIINBOW, no item!\n\n{wb}-Bowler{w}" }; } public void ManuallyTrigger(Vector2 damageDirection) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) ((OnDeathBehavior)this).OnTrigger(damageDirection); } protected override void OnTrigger(Vector2 damageDirection) { //IL_008c: 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) if (m_hasTriggered) { return; } m_hasTriggered = true; if (((BraveBehaviour)this).aiActor.ParentRoom != null && PossibleStrings != null && PossibleStrings.Length != 0) { if (PossibleStrings.Length > 1) { ExpandUtility.SpawnCustomBowlerNote(GameManager.Instance.RewardManager.BowlerNoteOtherSource, ((BraveBehaviour)this).sprite.WorldCenter, ((BraveBehaviour)this).aiActor.ParentRoom, BraveUtility.RandomElement(PossibleStrings)); } else { ExpandUtility.SpawnCustomBowlerNote(GameManager.Instance.RewardManager.BowlerNoteOtherSource, ((BraveBehaviour)this).sprite.WorldCenter, ((BraveBehaviour)this).aiActor.ParentRoom, PossibleStrings[0]); } } } protected override void OnDestroy() { ((OnDeathBehavior)this).OnDestroy(); } } public class ExpandSpawnItemOnBreak : BraveBehaviour { public bool SpawnItemOnBreak; public bool BreakOnEnemyCollision; public float LootOdds; public float RareLootOdds; public int ItemCount; public List CommonLoot; public List RareLoot; public List BannedRoomCategories; public List AllowedTilesets; private RoomHandler m_ParentRoom; public ExpandSpawnItemOnBreak() { CommonLoot = new List { 70, 68, 73, 565 }; RareLoot = new List { 74, 85, 120, 600, 78, 224, 67, 297 }; BannedRoomCategories = new List { (RoomCategory)3 }; AllowedTilesets = new List { (ValidTilesets)8192 }; BreakOnEnemyCollision = true; SpawnItemOnBreak = true; LootOdds = 0.1f; RareLootOdds = 0.08f; } public void Start() { //IL_000c: 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_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Expected O, but got Unknown //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Expected O, but got Unknown m_ParentRoom = Vector3Extensions.GetAbsoluteRoom(((Component)this).gameObject.transform.position); if (!Object.op_Implicit((Object)(object)((BraveBehaviour)this).majorBreakable)) { BreakOnEnemyCollision = false; Object.Destroy((Object)(object)this); return; } if (AllowedTilesets.Count > 0 && !AllowedTilesets.Contains(GameManager.Instance.Dungeon.tileIndices.tilesetId)) { BreakOnEnemyCollision = false; Object.Destroy((Object)(object)this); return; } if (BannedRoomCategories.Count > 0 && m_ParentRoom != null && BannedRoomCategories.Contains(m_ParentRoom.area.PrototypeRoomCategory)) { BreakOnEnemyCollision = false; Object.Destroy((Object)(object)this); return; } if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).specRigidbody) && BreakOnEnemyCollision) { SpeculativeRigidbody specRigidbody = ((BraveBehaviour)this).specRigidbody; specRigidbody.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Combine((Delegate?)(object)specRigidbody.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(OnPreRigidBodyCollision)); } else if (!Object.op_Implicit((Object)(object)((BraveBehaviour)this).specRigidbody)) { BreakOnEnemyCollision = false; } if (!SpawnItemOnBreak || (CommonLoot.Count < 1 && RareLoot.Count < 1)) { return; } if (CommonLoot.Count > 1) { CommonLoot = BraveUtility.Shuffle(CommonLoot); } if (RareLoot.Count > 1) { RareLoot = BraveUtility.Shuffle(RareLoot); } if (!(Random.value > LootOdds)) { ((BraveBehaviour)this).majorBreakable.SpawnItemOnBreak = true; if (Random.value < RareLootOdds) { ((BraveBehaviour)this).majorBreakable.ItemIdToSpawnOnBreak = BraveUtility.RandomElement(RareLoot); } else { ((BraveBehaviour)this).majorBreakable.ItemIdToSpawnOnBreak = BraveUtility.RandomElement(CommonLoot); } } } public void OnPreRigidBodyCollision(SpeculativeRigidbody myRigidbody, PixelCollider myPixelCollider, SpeculativeRigidbody otherRigidbody, PixelCollider otherPixelCollider) { //IL_0070: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)((Component)myRigidbody).GetComponent()) && BreakOnEnemyCollision && Object.op_Implicit((Object)(object)((BraveBehaviour)this).majorBreakable) && Object.op_Implicit((Object)(object)((Component)otherRigidbody).GetComponent()) && !((Component)otherRigidbody).GetComponent().IgnoreForRoomClear && !Object.op_Implicit((Object)(object)((Component)otherRigidbody).GetComponent())) { BreakOnEnemyCollision = false; ((BraveBehaviour)this).majorBreakable.SpawnItemOnBreak = false; ((BraveBehaviour)this).majorBreakable.ItemIdToSpawnOnBreak = -1; ((BraveBehaviour)this).majorBreakable.Break(otherRigidbody.Velocity); Object.Destroy((Object)(object)this); } } protected override void OnDestroy() { //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Expected O, but got Unknown //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Expected O, but got Unknown if (BreakOnEnemyCollision && Object.op_Implicit((Object)(object)((BraveBehaviour)this).specRigidbody)) { SpeculativeRigidbody specRigidbody = ((BraveBehaviour)this).specRigidbody; specRigidbody.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Remove((Delegate?)(object)specRigidbody.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(OnPreRigidBodyCollision)); } ((BraveBehaviour)this).OnDestroy(); } } public class ExpandSpriteFadeOnSpawn : BraveBehaviour { [SerializeField] public float FadeTime; [SerializeField] public float FadeStartAlpha; [SerializeField] public Color FadeColor; [NonSerialized] private Renderer m_Renderer; public ExpandSpriteFadeOnSpawn() { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) FadeTime = 0.2f; FadeStartAlpha = 0.5f; FadeColor = Color.black; } public void Start() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) m_Renderer = ((BraveBehaviour)this).renderer; ((MonoBehaviour)this).StartCoroutine(HandleOverrideColorFade(FadeColor, FadeTime, FadeStartAlpha)); } private IEnumerator HandleOverrideColorFade(Color targetColor, float duration, float startAlpha = 0f) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)m_Renderer)) { Color startColor = new Color(targetColor.r, targetColor.g, targetColor.b, startAlpha); float elapsed = 0f; while (elapsed < duration) { elapsed += BraveTime.DeltaTime; float num = Mathf.SmoothStep(0f, 1f, Mathf.Clamp01(elapsed / duration)); Color val = Color.Lerp(startColor, targetColor, num); m_Renderer.material.SetColor("_OverrideColor", val); yield return null; } m_Renderer.material.SetColor("_OverrideColor", targetColor); } } protected override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); } } public class ExpandSpriteRandomizer : BraveBehaviour { public List SpriteList; public tk2dSpriteCollectionData SpriteCollection; private string m_SelectedSprite; public ExpandSpriteRandomizer() { SpriteList = new List(); m_SelectedSprite = string.Empty; } public void Awake() { } public void Start() { if (!Object.op_Implicit((Object)(object)((BraveBehaviour)this).sprite) | (SpriteList == null) | (SpriteList.Count <= 1)) { Object.Destroy((Object)(object)this); return; } SpriteList = BraveUtility.Shuffle(SpriteList); m_SelectedSprite = BraveUtility.RandomElement(SpriteList); if (Object.op_Implicit((Object)(object)SpriteCollection)) { ((BraveBehaviour)this).sprite.SetSprite(SpriteCollection, m_SelectedSprite); } else { ((BraveBehaviour)this).sprite.SetSprite(m_SelectedSprite); } Object.Destroy((Object)(object)this); } public void Update() { } protected override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); } } public class ExpandTK2DDungeonAssembler { public TileIndices m_tileIndices; public Dictionary>> m_metadataLookupTable; public static void RuntimeResizeTileMap(tk2dTileMap tileMap, int w, int h, int partitionSizeX, int partitionSizeY) { //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Expected O, but got Unknown //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Expected O, but got Unknown //IL_0159: Unknown result type (might be due to invalid IL or missing references) Layer[] layers = tileMap.Layers; foreach (Layer val in layers) { val.DestroyGameData(tileMap); if ((Object)(object)val.gameObject != (Object)null) { tk2dUtil.DestroyImmediate((Object)(object)val.gameObject); val.gameObject = null; } } Layer[] array = (Layer[])(object)new Layer[tileMap.Layers.Length]; for (int j = 0; j < tileMap.Layers.Length; j++) { Layer val2 = tileMap.Layers[j]; array[j] = new Layer(val2.hash, w, h, partitionSizeX, partitionSizeY); Layer val3 = array[j]; if (val2.IsEmpty) { continue; } int num = Mathf.Min(tileMap.height, h); int num2 = Mathf.Min(tileMap.width, w); for (int k = 0; k < num; k++) { for (int l = 0; l < num2; l++) { val3.SetRawTile(l, k, val2.GetRawTile(l, k)); } } val3.Optimize(); } bool num3 = tileMap.ColorChannel != null && !tileMap.ColorChannel.IsEmpty; ColorChannel val4 = new ColorChannel(w, h, partitionSizeX, partitionSizeY); if (num3) { int num4 = Mathf.Min(tileMap.height, h) + 1; int num5 = Mathf.Min(tileMap.width, w) + 1; for (int m = 0; m < num4; m++) { for (int n = 0; n < num5; n++) { val4.SetColor(n, m, tileMap.ColorChannel.GetColor(n, m)); } } val4.Optimize(); } tileMap.ColorChannel = val4; tileMap.Layers = array; tileMap.width = w; tileMap.height = h; tileMap.partitionSizeX = partitionSizeX; tileMap.partitionSizeY = partitionSizeY; tileMap.ForceBuild(); } public static GameObject ApplyObjectStamp(int ix, int iy, ObjectStampData osd, Dungeon d, tk2dTileMap map, bool flipX = false, bool isLightStamp = false) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: 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_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Invalid comparison between Unknown and I4 //IL_0040: 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_0048: 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_0168: Unknown result type (might be due to invalid IL or missing references) //IL_0067: 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_01a1: 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_01a7: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Invalid comparison between Unknown and I4 //IL_0202: Unknown result type (might be due to invalid IL or missing references) //IL_01b6: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Invalid comparison between Unknown and I4 //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0221: Unknown result type (might be due to invalid IL or missing references) //IL_0227: Invalid comparison between Unknown and I4 //IL_01cc: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Invalid comparison between Unknown and I4 //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Invalid comparison between Unknown and I4 //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Invalid comparison between Unknown and I4 //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_02de: Unknown result type (might be due to invalid IL or missing references) //IL_02f2: Unknown result type (might be due to invalid IL or missing references) //IL_02f7: Unknown result type (might be due to invalid IL or missing references) //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_028f: Unknown result type (might be due to invalid IL or missing references) //IL_02ae: Unknown result type (might be due to invalid IL or missing references) //IL_02bf: Unknown result type (might be due to invalid IL or missing references) //IL_02c4: Unknown result type (might be due to invalid IL or missing references) //IL_0357: Unknown result type (might be due to invalid IL or missing references) //IL_035c: Unknown result type (might be due to invalid IL or missing references) //IL_035e: Unknown result type (might be due to invalid IL or missing references) //IL_0369: Unknown result type (might be due to invalid IL or missing references) //IL_036b: Invalid comparison between Unknown and I4 //IL_0375: Unknown result type (might be due to invalid IL or missing references) //IL_0377: Invalid comparison between Unknown and I4 try { StampSpace occupySpace = ((StampDataBase)osd).occupySpace; for (int i = 0; i < ((StampDataBase)osd).width; i++) { for (int j = 0; j < ((StampDataBase)osd).height; j++) { CellData val = d.data.cellData[ix + i][iy + j]; CellVisualData cellVisualData = val.cellVisualData; if ((int)cellVisualData.forcedMatchingStyle != 0 && cellVisualData.forcedMatchingStyle != ((StampDataBase)osd).intermediaryMatchingStyle) { return null; } if ((int)((StampDataBase)osd).placementRule == 3 && isLightStamp) { continue; } bool flag = cellVisualData.containsWallSpaceStamp; if (cellVisualData.facewallGridPreventsWallSpaceStamp && isLightStamp) { flag = false; } if ((int)occupySpace == 2) { if (cellVisualData.containsObjectSpaceStamp || flag || (!isLightStamp && cellVisualData.containsLight)) { return null; } if ((int)val.type == 4) { return null; } } else if ((int)occupySpace == 0) { if (cellVisualData.containsObjectSpaceStamp) { return null; } if ((int)val.type == 4) { return null; } } else if ((int)occupySpace == 1 && (flag || (!isLightStamp && cellVisualData.containsLight))) { return null; } } } int num = (((int)occupySpace != 0) ? GlobalDungeonData.wallStampLayerIndex : GlobalDungeonData.objectStampLayerIndex); float z = map.data.Layers[num].z; if (!Object.op_Implicit((Object)(object)osd.objectReference)) { return null; } Vector3 val2 = osd.objectReference.transform.position; ObjectStampOptions component = osd.objectReference.GetComponent(); if ((Object)(object)component != (Object)null) { val2 = component.GetPositionOffset(); } GameObject val3 = Object.Instantiate(osd.objectReference); val3.transform.position = new Vector3((float)ix, (float)iy, z) + val2; if (!isLightStamp && (int)((StampDataBase)osd).placementRule == 3) { val3.transform.position = new Vector3((float)(ix + 1), (float)iy, z) + Vector3Extensions.WithX(val2, 0f - val2.x); } tk2dSprite component2 = val3.GetComponent(); RoomHandler absoluteRoomFromPosition = GameManager.Instance.Dungeon.data.GetAbsoluteRoomFromPosition(new IntVector2(ix, iy)); MinorBreakable componentInChildren = val3.GetComponentInChildren(); if (Object.op_Implicit((Object)(object)componentInChildren)) { if ((int)((StampDataBase)osd).placementRule == 5) { componentInChildren.IgnoredForPotShotsModifier = true; } componentInChildren.IsDecorativeOnly = true; } IPlaceConfigurable @interface = GameObjectExtensions.GetInterface(val3); if (@interface != null) { @interface.ConfigureOnPlacement(absoluteRoomFromPosition); } SurfaceDecorator component3 = val3.GetComponent(); if ((Object)(object)component3 != (Object)null) { component3.Decorate(absoluteRoomFromPosition); } if (flipX) { if ((Object)(object)component2 != (Object)null) { ((tk2dBaseSprite)component2).FlipX = true; Bounds bounds = ((tk2dBaseSprite)component2).GetBounds(); float num2 = Mathf.Ceil(((Bounds)(ref bounds)).size.x); val3.transform.position = val3.transform.position + new Vector3(num2, 0f, 0f); } else { val3.transform.localScale = Vector3.Scale(val3.transform.localScale, new Vector3(-1f, 1f, 1f)); } } val3.transform.parent = absoluteRoomFromPosition?.hierarchyParent; DepthLookupManager.ProcessRenderer(val3.GetComponentInChildren()); if ((Object)(object)component2 != (Object)null) { ((tk2dBaseSprite)component2).UpdateZDepth(); } for (int k = 0; k < ((StampDataBase)osd).width; k++) { for (int l = 0; l < ((StampDataBase)osd).height; l++) { CellVisualData cellVisualData2 = d.data.cellData[ix + k][iy + l].cellVisualData; if ((int)occupySpace == 0) { cellVisualData2.containsObjectSpaceStamp = true; } if ((int)occupySpace == 1) { cellVisualData2.containsWallSpaceStamp = true; } if ((int)occupySpace == 2) { cellVisualData2.containsObjectSpaceStamp = true; cellVisualData2.containsWallSpaceStamp = true; } } } return val3; } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"WARNING: Exception occured during ExpandTK2DDungeonAssembler.ApplyObjectStamp!", false); Debug.Log((object)"WARNING: Exception occured during RuntimeResizeTileMap/RenderMeshBuilder steps!"); Debug.LogException(ex); } return null; } } public void ApplyTileStamp(int ix, int iy, TileStampData tsd, Dungeon d, Dungeon d2, tk2dTileMap map, int overrideTileLayerIndex = -1) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: 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_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_002e: Invalid comparison between Unknown and I4 //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Invalid comparison between Unknown and I4 //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Invalid comparison between Unknown and I4 //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_007a: 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) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Invalid comparison between Unknown and I4 //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Invalid comparison between Unknown and I4 //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Invalid comparison between Unknown and I4 StampSpace occupySpace = ((StampDataBase)tsd).occupySpace; for (int i = 0; i < ((StampDataBase)tsd).width; i++) { for (int j = 0; j < ((StampDataBase)tsd).height; j++) { CellVisualData cellVisualData = d.data.cellData[ix + i][iy + j].cellVisualData; if ((int)occupySpace == 2) { if (cellVisualData.containsObjectSpaceStamp || cellVisualData.containsWallSpaceStamp || cellVisualData.containsLight) { return; } } else if ((int)occupySpace == 0) { if ((int)d2.tileIndices.tilesetId == 64) { if (cellVisualData.containsObjectSpaceStamp || cellVisualData.containsLight) { return; } } else if (cellVisualData.containsObjectSpaceStamp) { return; } } else if ((int)occupySpace == 1 && (cellVisualData.containsWallSpaceStamp || cellVisualData.containsLight)) { return; } } } for (int k = 0; k < ((StampDataBase)tsd).width; k++) { for (int l = 0; l < ((StampDataBase)tsd).height; l++) { CellData val = d.data.cellData[ix + k][iy + l]; CellVisualData cellVisualData2 = val.cellVisualData; int num = (((int)occupySpace != 0) ? GlobalDungeonData.wallStampLayerIndex : GlobalDungeonData.objectStampLayerIndex); if (d.data.isFaceWallHigher(ix + k, iy + l - 1)) { num = GlobalDungeonData.aboveBorderLayerIndex; } if (!d.data.isAnyFaceWall(ix + k, iy + l) && (int)d.data.cellData[ix + k][iy + l].type == 1) { num = GlobalDungeonData.aboveBorderLayerIndex; } if (overrideTileLayerIndex != -1) { num = overrideTileLayerIndex; } map.Layers[num].SetTile(val.positionInTilemap.x, val.positionInTilemap.y, tsd.stampTileIndices[(((StampDataBase)tsd).height - 1 - l) * ((StampDataBase)tsd).width + k]); if ((int)occupySpace == 0) { cellVisualData2.containsObjectSpaceStamp = true; } if ((int)occupySpace == 1) { cellVisualData2.containsWallSpaceStamp = true; } if ((int)occupySpace == 2) { cellVisualData2.containsObjectSpaceStamp = true; cellVisualData2.containsWallSpaceStamp = true; } } } } public void ApplyStampGeneric(int ix, int iy, StampDataBase sd, Dungeon d, Dungeon d2, tk2dTileMap map, bool flipX = false, int overrideTileLayerIndex = -1) { if (sd is TileStampData) { ApplyTileStamp(ix, iy, (TileStampData)(object)((sd is TileStampData) ? sd : null), d, d2, map, overrideTileLayerIndex); } else if (sd is SpriteStampData) { ApplySpriteStamp(ix, iy, (SpriteStampData)(object)((sd is SpriteStampData) ? sd : null), d, map); } else if (sd is ObjectStampData) { ApplyObjectStamp(ix, iy, (ObjectStampData)(object)((sd is ObjectStampData) ? sd : null), d, map, flipX); } } public void ApplySpriteStamp(int ix, int iy, SpriteStampData ssd, Dungeon d, tk2dTileMap map) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: 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_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00af: 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_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Invalid comparison between Unknown and I4 //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Invalid comparison between Unknown and I4 //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Invalid comparison between Unknown and I4 StampSpace occupySpace = ((StampDataBase)ssd).occupySpace; for (int i = 0; i < ((StampDataBase)ssd).width; i++) { for (int j = 0; j < ((StampDataBase)ssd).height; j++) { CellVisualData cellVisualData = d.data.cellData[ix + i][iy + j].cellVisualData; if ((int)occupySpace == 2) { if (cellVisualData.containsObjectSpaceStamp || cellVisualData.containsWallSpaceStamp) { return; } } else if ((int)occupySpace == 0) { if (cellVisualData.containsObjectSpaceStamp) { return; } } else if ((int)occupySpace == 1 && cellVisualData.containsWallSpaceStamp) { return; } } } int num = (((int)occupySpace != 0) ? GlobalDungeonData.wallStampLayerIndex : GlobalDungeonData.objectStampLayerIndex); float z = map.data.Layers[num].z; GameObject val = new GameObject(((Object)ssd.spriteReference).name); val.transform.position = new Vector3((float)ix, (float)iy, z); SpriteRenderer obj = val.AddComponent(); obj.sprite = ssd.spriteReference; DepthLookupManager.ProcessRenderer((Renderer)(object)obj); for (int k = 0; k < ((StampDataBase)ssd).width; k++) { for (int l = 0; l < ((StampDataBase)ssd).height; l++) { CellVisualData cellVisualData2 = d.data.cellData[ix + k][iy + l].cellVisualData; if ((int)occupySpace == 0) { cellVisualData2.containsObjectSpaceStamp = true; } if ((int)occupySpace == 1) { cellVisualData2.containsWallSpaceStamp = true; } if ((int)occupySpace == 2) { cellVisualData2.containsObjectSpaceStamp = true; cellVisualData2.containsWallSpaceStamp = true; } } } } public bool BCheck(Dungeon d, int ix, int iy, int thresh) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) return d.data.CheckInBounds(new IntVector2(ix, iy), 3 + thresh); } public bool BCheck(Dungeon d, int ix, int iy) { return BCheck(d, ix, iy, 0); } private bool HasMetadataForRoomType(TilesetFlagType flagType, int roomType) { //IL_0006: 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) if (m_metadataLookupTable[flagType] == null) { return false; } foreach (Tuple item in m_metadataLookupTable[flagType]) { if (item.Second.dungeonRoomSubType == roomType || item.Second.secondRoomSubType == roomType || item.Second.thirdRoomSubType == roomType) { return true; } } return false; } public void Initialize(TileIndices indices) { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) m_metadataLookupTable = new Dictionary>>(); TilesetFlagType[] array = (TilesetFlagType[])Enum.GetValues(typeof(TilesetFlagType)); foreach (TilesetFlagType val in array) { m_metadataLookupTable.Add(val, indices.dungeonCollection.GetIndicesForTileType(val)); } SecretRoomUtility.metadataLookupTableRef = m_metadataLookupTable; m_tileIndices = indices; } public void BuildTileIndicesForCell(Dungeon d, Dungeon d2, tk2dTileMap map, int ix, int iy) { //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_0196: Invalid comparison between Unknown and I4 //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_0185: 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_0247: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Unknown result type (might be due to invalid IL or missing references) //IL_024e: Unknown result type (might be due to invalid IL or missing references) //IL_025b: Unknown result type (might be due to invalid IL or missing references) //IL_025e: Invalid comparison between Unknown and I4 //IL_0267: Unknown result type (might be due to invalid IL or missing references) //IL_026a: Invalid comparison between Unknown and I4 //IL_028c: Unknown result type (might be due to invalid IL or missing references) //IL_0292: Invalid comparison between Unknown and I4 //IL_0304: Unknown result type (might be due to invalid IL or missing references) //IL_030a: Invalid comparison between Unknown and I4 //IL_029a: Unknown result type (might be due to invalid IL or missing references) //IL_02a4: Invalid comparison between Unknown and I4 //IL_033f: Unknown result type (might be due to invalid IL or missing references) //IL_0345: Invalid comparison between Unknown and I4 //IL_0312: Unknown result type (might be due to invalid IL or missing references) //IL_031c: Invalid comparison between Unknown and I4 //IL_02ac: Unknown result type (might be due to invalid IL or missing references) //IL_02b6: Invalid comparison between Unknown and I4 //IL_0324: Unknown result type (might be due to invalid IL or missing references) //IL_032e: Invalid comparison between Unknown and I4 //IL_03f8: Unknown result type (might be due to invalid IL or missing references) //IL_03fe: Invalid comparison between Unknown and I4 //IL_048f: Unknown result type (might be due to invalid IL or missing references) //IL_0495: Invalid comparison between Unknown and I4 //IL_042e: Unknown result type (might be due to invalid IL or missing references) //IL_0433: Unknown result type (might be due to invalid IL or missing references) //IL_0447: Unknown result type (might be due to invalid IL or missing references) //IL_044c: Unknown result type (might be due to invalid IL or missing references) //IL_0460: Unknown result type (might be due to invalid IL or missing references) //IL_0465: Unknown result type (might be due to invalid IL or missing references) //IL_0479: Unknown result type (might be due to invalid IL or missing references) //IL_047e: Unknown result type (might be due to invalid IL or missing references) //IL_0597: Unknown result type (might be due to invalid IL or missing references) //IL_05a1: Invalid comparison between Unknown and I4 //IL_04c5: Unknown result type (might be due to invalid IL or missing references) //IL_04ca: Unknown result type (might be due to invalid IL or missing references) //IL_04de: Unknown result type (might be due to invalid IL or missing references) //IL_04e3: Unknown result type (might be due to invalid IL or missing references) //IL_04f7: Unknown result type (might be due to invalid IL or missing references) //IL_04fc: Unknown result type (might be due to invalid IL or missing references) //IL_0510: Unknown result type (might be due to invalid IL or missing references) //IL_0515: Unknown result type (might be due to invalid IL or missing references) CellData val = d.data.cellData[ix][iy]; if (val == null) { return; } BuildOcclusionPartitionIndex(val, d, d2, map, ix, iy); val.isOccludedByTopWall = d.data.isTopWall(ix, iy); if (val.cellVisualData.hasAlreadyBeenTilemapped || val.cellVisualData.precludeAllTileDrawing) { return; } bool flag = BCheck(d, ix, iy, 3) && d.data[ix, iy - 2] != null && d.data[ix, iy - 2].isExitCell; if (val.nearestRoom != null && val.nearestRoom.PrecludeTilemapDrawing && (!val.nearestRoom.DrawPrecludedCeilingTiles || (!val.isExitCell && !flag))) { if (val.nearestRoom.DrawPrecludedCeilingTiles) { BuildCollisionIndex(val, d, d2, map, ix, iy); BuildBorderIndicesForCell(val, d, d2, map, ix, iy); } val.cellVisualData.precludeAllTileDrawing = true; return; } if (val.parentRoom != null && val.parentRoom.PrecludeTilemapDrawing && (!val.nearestRoom.DrawPrecludedCeilingTiles || (!val.isExitCell && !flag))) { if (val.parentRoom.DrawPrecludedCeilingTiles) { BuildCollisionIndex(val, d, d2, map, ix, iy); BuildBorderIndicesForCell(val, d, d2, map, ix, iy); } val.cellVisualData.precludeAllTileDrawing = true; return; } DungeonMaterial val2 = d2.roomMaterialDefinitions[val.cellVisualData.roomVisualTypeIndex]; if (val2.overrideStoneFloorType && (int)val.cellVisualData.floorType == 0) { val.cellVisualData.floorType = val2.overrideFloorType; } int num; if ((int)val.type != 2) { num = (d.data.isFaceWallLower(ix, iy) ? 1 : 0); if (num == 0) { goto IL_01bb; } } else { num = 1; } BuildFloorIndex(val, d, d2, map, ix, iy); goto IL_01bb; IL_01bb: BuildDecoIndices(val, d, d2, map, ix, iy); if (num != 0) { BuildFloorEdgeBorderTiles(val, d, d2, map, ix, iy); } BuildFeatureEdgeBorderTiles(val, d, d2, map, ix, iy); BuildCollisionIndex(val, d, d2, map, ix, iy); if (BCheck(d, ix, iy, -2)) { ProcessFacewallIndices(val, d, d2, map, ix, iy); } BuildBorderIndicesForCell(val, d, d2, map, ix, iy); TileIndexGrid val3 = d2.roomMaterialDefinitions[val.cellVisualData.roomVisualTypeIndex].pitBorderFlatGrid; TileIndexGrid additionalPitBorderFlatGrid = val2.additionalPitBorderFlatGrid; PitBorderType pitBorderType = val.GetPitBorderType(d.data); if ((int)pitBorderType == 0) { val3 = val2.pitBorderFlatGrid; } else if ((int)pitBorderType == 1) { val3 = val2.pitBorderRaisedGrid; } int num2 = (((int)pitBorderType != 1) ? GlobalDungeonData.patternLayerIndex : GlobalDungeonData.actorCollisionLayerIndex); int num3 = num2; bool wALLS_ARE_PITS = d.debugSettings.WALLS_ARE_PITS; if ((int)val.type == 2) { if ((int)d2.tileIndices.tilesetId != 1024 && (int)d2.tileIndices.tilesetId != 16384) { BuildShadowIndex(val, d, map, ix, iy); } if ((Object)(object)val3 != (Object)null) { HandlePitBorderTilePlacement(val, val3, map.Layers[num2], map, d, d2); } if ((Object)(object)additionalPitBorderFlatGrid != (Object)null) { HandlePitBorderTilePlacement(val, additionalPitBorderFlatGrid, map.Layers[num3], map, d, d2); } } else if ((int)val.type == 4 && (int)d2.tileIndices.tilesetId != 1024 && (int)d2.tileIndices.tilesetId != 16384) { BuildPitShadowIndex(val, d, d2, map, ix, iy); } if ((int)val.type == 4 || (wALLS_ARE_PITS && val.isExitCell)) { TileIndexGrid pitLayoutGrid = val2.pitLayoutGrid; if ((Object)(object)pitLayoutGrid == (Object)null) { pitLayoutGrid = d2.roomMaterialDefinitions[0].pitLayoutGrid; } map.data.Layers[GlobalDungeonData.pitLayerIndex].ForceNonAnimating = true; HandlePitTilePlacement(val, pitLayoutGrid, map.Layers[GlobalDungeonData.pitLayerIndex], d); if ((Object)(object)val3 != (Object)null) { HandlePitBorderTilePlacement(val, val3, map.Layers[num2], map, d, d2); } if ((Object)(object)additionalPitBorderFlatGrid != (Object)null) { HandlePitBorderTilePlacement(val, additionalPitBorderFlatGrid, map.Layers[num3], map, d, d2); } } if (d.data.isTopDiagonalWall(ix, iy)) { if ((int)val.diagonalWallType == 1) { AssignSpecificColorsToTile(val.positionInTilemap.x, val.positionInTilemap.y, GlobalDungeonData.collisionLayerIndex, Color32.op_Implicit(new Color(0f, 0.5f, 1f)), Color32.op_Implicit(new Color(0f, 1f, 1f)), Color32.op_Implicit(new Color(0f, 1f, 1f)), Color32.op_Implicit(new Color(0f, 1f, 1f)), map); } else if ((int)val.diagonalWallType == 4) { AssignSpecificColorsToTile(val.positionInTilemap.x, val.positionInTilemap.y, GlobalDungeonData.collisionLayerIndex, Color32.op_Implicit(new Color(0f, 1f, 1f)), Color32.op_Implicit(new Color(0f, 0.5f, 1f)), Color32.op_Implicit(new Color(0f, 1f, 1f)), Color32.op_Implicit(new Color(0f, 1f, 1f)), map); } } if (val.cellVisualData.pathTilesetGridIndex > -1) { TileIndexGrid pathGrid = d2.pathGridDefinitions[val.cellVisualData.pathTilesetGridIndex]; HandlePathTilePlacement(val, d, d2, map, pathGrid); } if (val.cellVisualData.UsesCustomIndexOverride01) { map.SetTile(val.positionInTilemap.x, val.positionInTilemap.y, val.cellVisualData.CustomIndexOverride01Layer, val.cellVisualData.CustomIndexOverride01); } if ((int)d2.tileIndices.tilesetId == 8192) { try { BuildOcclusionLayerCenterJungle(val, d, map, ix, iy); } catch (Exception ex) { if (ExpandSettings.debugMode) { Debug.LogException(ex); } } } if (val.distanceFromNearestRoom < 4f && val.nearestRoom.area.PrototypeLostWoodsRoom) { HandleLostWoodsMirroring(val, d, map, ix, iy); } val.hasBeenGenerated = true; } private void BuildBorderIndicesForCell(CellData current, Dungeon d, Dungeon d2, tk2dTileMap map, int ix, int iy) { //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Invalid comparison between Unknown and I4 //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Invalid comparison between Unknown and I4 if (m_tileIndices.placeBorders && (current.nearestRoom == null || !((Object)(object)current.nearestRoom.area.prototypeRoom != (Object)null) || !current.nearestRoom.area.prototypeRoom.preventBorders)) { if (BCheck(d, ix, iy, -2) && ((int)current.type == 1 || d.data.isTopWall(ix, iy)) && !d.data.isFaceWallHigher(ix, iy) && !d.data.isFaceWallLower(ix, iy)) { BuildBorderIndex(current, d, d2, map, ix, iy); } if (BCheck(d, ix, iy, -2) && ((int)current.type != 1 || d.data.isAnyFaceWall(ix, iy)) && !d.data.isTopWall(ix, iy) && (Object)(object)d2.roomMaterialDefinitions[current.cellVisualData.roomVisualTypeIndex].outerCeilingBorderGrid != (Object)null) { BuildOuterBorderIndex(current, d, d2, map, ix, iy); } } } private void BuildFeatureEdgeBorderTiles(CellData current, Dungeon d, Dungeon d2, tk2dTileMap map, int ix, int iy) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Invalid comparison between Unknown and I4 if ((int)d2.tileIndices.tilesetId != 1024) { return; } TileIndexGrid exteriorFacadeBorderGrid = d2.roomMaterialDefinitions[1].exteriorFacadeBorderGrid; List cellNeighbors = d.data.GetCellNeighbors(current, true); bool[] array = new bool[8]; for (int i = 0; i < array.Length; i++) { if (cellNeighbors[i] != null) { array[i] = cellNeighbors[i].cellVisualData.IsFeatureCell || cellNeighbors[i].cellVisualData.IsFeatureAdditional; } } int indexGivenEightSides = exteriorFacadeBorderGrid.GetIndexGivenEightSides(array); if (indexGivenEightSides != -1) { map.Layers[GlobalDungeonData.decalLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, indexGivenEightSides); } } private void BuildFloorEdgeBorderTiles(CellData current, Dungeon d, Dungeon d2, tk2dTileMap map, int ix, int iy) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Invalid comparison between Unknown and I4 //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Invalid comparison between Unknown and I4 //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Invalid comparison between Unknown and I4 //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Invalid comparison between Unknown and I4 //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) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) if ((int)current.type != 2 && !d.data.isFaceWallLower(ix, iy)) { return; } TileIndexGrid val = d2.roomMaterialDefinitions[current.cellVisualData.roomVisualTypeIndex].roomFloorBorderGrid; if ((int)d2.tileIndices.tilesetId == 1024 && current.cellVisualData.IsFacewallForInteriorTransition) { val = d2.roomMaterialDefinitions[current.cellVisualData.InteriorTransitionIndex].exteriorFacadeBorderGrid; } if (!((Object)(object)val != (Object)null)) { return; } if ((int)current.diagonalWallType == 0 || !d.data.isFaceWallLower(ix, iy)) { List cellNeighbors = d.data.GetCellNeighbors(current, true); bool[] array = new bool[8]; for (int i = 0; i < array.Length; i++) { if (cellNeighbors[i] != null) { array[i] = (int)cellNeighbors[i].type == 1 && !d.data.isTopWall(cellNeighbors[i].position.x, cellNeighbors[i].position.y + 1) && (int)cellNeighbors[i].diagonalWallType == 0; bool flag = cellNeighbors[i].isSecretRoomCell || (d.data[cellNeighbors[i].position + IntVector2.Up].IsTopWall() && d.data[cellNeighbors[i].position + IntVector2.Up].isSecretRoomCell); array[i] = array[i] || flag != current.isSecretRoomCell; } } int indexGivenEightSides = val.GetIndexGivenEightSides(array); if (indexGivenEightSides != -1) { map.Layers[GlobalDungeonData.decalLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, indexGivenEightSides); } } else { int indexByWeight = val.quadNubs.GetIndexByWeight(); if (indexByWeight != -1) { map.Layers[GlobalDungeonData.decalLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, indexByWeight); } } } private void BuildOuterBorderIndex(CellData current, Dungeon d, Dungeon d2, tk2dTileMap map, int ix, int iy) { bool flag = (d.data.isWall(ix, iy + 1) || d.data.isTopWall(ix, iy + 1)) && !d.data.isAnyFaceWall(ix, iy + 1); bool flag2 = (d.data.isWall(ix + 1, iy + 1) || d.data.isTopWall(ix + 1, iy + 1)) && !d.data.isAnyFaceWall(ix + 1, iy + 1); bool flag3 = (d.data.isWall(ix + 1, iy) || d.data.isTopWall(ix + 1, iy)) && !d.data.isAnyFaceWall(ix + 1, iy); bool flag4 = (d.data.isWall(ix + 1, iy - 1) || d.data.isTopWall(ix + 1, iy - 1)) && !d.data.isAnyFaceWall(ix + 1, iy - 1); bool flag5 = (d.data.isWall(ix, iy - 1) || d.data.isTopWall(ix, iy - 1)) && !d.data.isAnyFaceWall(ix, iy - 1); bool flag6 = (d.data.isWall(ix - 1, iy - 1) || d.data.isTopWall(ix - 1, iy - 1)) && !d.data.isAnyFaceWall(ix - 1, iy - 1); bool flag7 = (d.data.isWall(ix - 1, iy) || d.data.isTopWall(ix - 1, iy)) && !d.data.isAnyFaceWall(ix - 1, iy); bool flag8 = (d.data.isWall(ix - 1, iy + 1) || d.data.isTopWall(ix - 1, iy + 1)) && !d.data.isAnyFaceWall(ix - 1, iy + 1); int indexGivenSides = d2.roomMaterialDefinitions[current.cellVisualData.roomVisualTypeIndex].outerCeilingBorderGrid.GetIndexGivenSides(flag, flag2, flag3, flag4, flag5, flag6, flag7, flag8); if (indexGivenSides != -1 && !current.cellVisualData.shouldIgnoreWallDrawing) { map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, indexGivenSides); } } private void BuildOcclusionPartitionIndex(CellData current, Dungeon d, Dungeon d2, tk2dTileMap map, int ix, int iy) { //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Invalid comparison between Unknown and I4 if (current == null || current.cellVisualData.ceilingHasBeenProcessed || current.cellVisualData.occlusionHasBeenProcessed) { return; } int usedVisualType = -1; TileIndexGrid typeBorderGridForBorderIndex = GetTypeBorderGridForBorderIndex(current, d, d2, out usedVisualType); if (!((Object)(object)typeBorderGridForBorderIndex != (Object)null)) { return; } List cellNeighbors = d.data.GetCellNeighbors(current, true); bool[] array = new bool[8]; int usedVisualType2 = -1; for (int i = 0; i < array.Length; i++) { if (cellNeighbors[i] != null) { GetTypeBorderGridForBorderIndex(cellNeighbors[i], d, d2, out usedVisualType2); if ((int)d2.tileIndices.tilesetId != 1024 || usedVisualType2 == 0 || usedVisualType == 0) { array[i] = usedVisualType != usedVisualType2; } } } int num = typeBorderGridForBorderIndex.GetIndexGivenEightSides(array); if (num == -1) { num = typeBorderGridForBorderIndex.centerIndices.GetIndexByWeight(); } map.SetTile(current.positionInTilemap.x, current.positionInTilemap.y, GlobalDungeonData.occlusionPartitionIndex, num); } private void BuildBorderIndex(CellData current, Dungeon d, Dungeon d2, tk2dTileMap map, int ix, int iy) { //IL_0032: 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_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Invalid comparison between Unknown and I4 //IL_00f7: 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_00ca: Invalid comparison between Unknown and I4 //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Invalid comparison between Unknown and I4 //IL_018a: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Invalid comparison between Unknown and I4 //IL_056e: Unknown result type (might be due to invalid IL or missing references) //IL_0578: Invalid comparison between Unknown and I4 //IL_0797: Unknown result type (might be due to invalid IL or missing references) //IL_0993: Unknown result type (might be due to invalid IL or missing references) //IL_0998: Unknown result type (might be due to invalid IL or missing references) //IL_099a: Unknown result type (might be due to invalid IL or missing references) //IL_099d: Unknown result type (might be due to invalid IL or missing references) //IL_09b3: Expected I4, but got Unknown //IL_058d: Unknown result type (might be due to invalid IL or missing references) //IL_0592: Unknown result type (might be due to invalid IL or missing references) //IL_0597: Unknown result type (might be due to invalid IL or missing references) //IL_05cf: Unknown result type (might be due to invalid IL or missing references) //IL_05d4: Unknown result type (might be due to invalid IL or missing references) //IL_05d9: Unknown result type (might be due to invalid IL or missing references) //IL_0612: Unknown result type (might be due to invalid IL or missing references) //IL_0617: Unknown result type (might be due to invalid IL or missing references) //IL_061c: Unknown result type (might be due to invalid IL or missing references) //IL_08ff: Unknown result type (might be due to invalid IL or missing references) //IL_0655: Unknown result type (might be due to invalid IL or missing references) //IL_065a: Unknown result type (might be due to invalid IL or missing references) //IL_065f: Unknown result type (might be due to invalid IL or missing references) //IL_0698: Unknown result type (might be due to invalid IL or missing references) //IL_069d: Unknown result type (might be due to invalid IL or missing references) //IL_06a2: Unknown result type (might be due to invalid IL or missing references) //IL_0aa6: Unknown result type (might be due to invalid IL or missing references) //IL_0aab: Unknown result type (might be due to invalid IL or missing references) //IL_095b: Unknown result type (might be due to invalid IL or missing references) //IL_095e: Invalid comparison between Unknown and I4 //IL_06db: Unknown result type (might be due to invalid IL or missing references) //IL_06e0: Unknown result type (might be due to invalid IL or missing references) //IL_06e5: Unknown result type (might be due to invalid IL or missing references) //IL_0ac1: Unknown result type (might be due to invalid IL or missing references) //IL_071e: Unknown result type (might be due to invalid IL or missing references) //IL_0723: Unknown result type (might be due to invalid IL or missing references) //IL_0728: Unknown result type (might be due to invalid IL or missing references) //IL_0c55: Unknown result type (might be due to invalid IL or missing references) //IL_0c5a: Unknown result type (might be due to invalid IL or missing references) //IL_0acf: Unknown result type (might be due to invalid IL or missing references) //IL_0ad4: Unknown result type (might be due to invalid IL or missing references) //IL_0ad6: Unknown result type (might be due to invalid IL or missing references) //IL_0ad9: Invalid comparison between Unknown and I4 //IL_0761: Unknown result type (might be due to invalid IL or missing references) //IL_0766: Unknown result type (might be due to invalid IL or missing references) //IL_076b: Unknown result type (might be due to invalid IL or missing references) //IL_0c73: Unknown result type (might be due to invalid IL or missing references) //IL_0adb: Unknown result type (might be due to invalid IL or missing references) //IL_0ade: Invalid comparison between Unknown and I4 //IL_07de: Unknown result type (might be due to invalid IL or missing references) //IL_07e8: Invalid comparison between Unknown and I4 //IL_0da3: Unknown result type (might be due to invalid IL or missing references) //IL_0da8: Unknown result type (might be due to invalid IL or missing references) //IL_0c81: Unknown result type (might be due to invalid IL or missing references) //IL_0c86: Unknown result type (might be due to invalid IL or missing references) //IL_0c88: Unknown result type (might be due to invalid IL or missing references) //IL_0c8b: Invalid comparison between Unknown and I4 //IL_0e26: Unknown result type (might be due to invalid IL or missing references) //IL_0e2b: Unknown result type (might be due to invalid IL or missing references) //IL_0dbe: Unknown result type (might be due to invalid IL or missing references) //IL_0dc3: Unknown result type (might be due to invalid IL or missing references) //IL_0dc8: Unknown result type (might be due to invalid IL or missing references) //IL_0c8d: Unknown result type (might be due to invalid IL or missing references) //IL_0c90: Invalid comparison between Unknown and I4 //IL_0e63: Unknown result type (might be due to invalid IL or missing references) //IL_0e68: Unknown result type (might be due to invalid IL or missing references) //IL_0ddb: Unknown result type (might be due to invalid IL or missing references) //IL_0de0: Unknown result type (might be due to invalid IL or missing references) //IL_0de5: Unknown result type (might be due to invalid IL or missing references) //IL_0bd7: Unknown result type (might be due to invalid IL or missing references) //IL_0bdc: Unknown result type (might be due to invalid IL or missing references) //IL_0b5d: Unknown result type (might be due to invalid IL or missing references) //IL_0b62: Unknown result type (might be due to invalid IL or missing references) //IL_0d12: Unknown result type (might be due to invalid IL or missing references) //IL_0d17: Unknown result type (might be due to invalid IL or missing references) if (current.cellVisualData.ceilingHasBeenProcessed) { return; } bool num = d.data[ix, iy + 1] != null && (int)d.data[ix, iy + 1].diagonalWallType != 0 && (d.data[ix, iy + 1].IsTopWall() || (int)d.data[ix, iy + 1].type == 1); bool flag = d.data[ix + 1, iy] != null && (int)d.data[ix + 1, iy].diagonalWallType != 0 && (d.data[ix + 1, iy].IsTopWall() || (int)d.data[ix + 1, iy].type == 1); bool flag2 = d.data[ix, iy - 1] != null && (int)d.data[ix, iy - 1].diagonalWallType != 0 && (d.data[ix, iy - 1].IsTopWall() || (int)d.data[ix, iy - 1].type == 1); bool flag3 = d.data[ix - 1, iy] != null && (int)d.data[ix - 1, iy].diagonalWallType != 0 && (d.data[ix - 1, iy].IsTopWall() || (int)d.data[ix - 1, iy].type == 1); bool flag4 = d.data.isTopWall(ix, iy) && d.data[ix, iy + 1] != null && !d.data[ix, iy + 1].cellVisualData.shouldIgnoreBorders; bool flag5 = ((!d.data.isWallRight(ix, iy) && !d.data.isRightTopWall(ix, iy)) || d.data.isFaceWallHigher(ix + 1, iy) || d.data.isFaceWallLower(ix + 1, iy)) && d.data[ix + 1, iy] != null && !d.data[ix + 1, iy].cellVisualData.shouldIgnoreBorders; bool flag6 = iy > 3 && d.data.isFaceWallHigher(ix, iy - 1) && d.data[ix, iy - 1] != null && !d.data[ix, iy - 1].cellVisualData.shouldIgnoreBorders; bool flag7 = ((!d.data.isWallLeft(ix, iy) && !d.data.isLeftTopWall(ix, iy)) || d.data.isFaceWallHigher(ix - 1, iy) || d.data.isFaceWallLower(ix - 1, iy)) && d.data[ix - 1, iy] != null && !d.data[ix - 1, iy].cellVisualData.shouldIgnoreBorders; bool flag8 = (!num || !flag) && d.data.isTopWall(ix + 1, iy) && !d.data.isTopWall(ix, iy) && (d.data.isWall(ix, iy + 1) || d.data.isTopWall(ix, iy + 1)) && d.data[ix + 1, iy + 1] != null && !d.data[ix + 1, iy + 1].cellVisualData.shouldIgnoreBorders; bool flag9 = (!num || !flag3) && d.data.isTopWall(ix - 1, iy) && !d.data.isTopWall(ix, iy) && (d.data.isWall(ix, iy + 1) || d.data.isTopWall(ix, iy + 1)) && d.data[ix - 1, iy + 1] != null && !d.data[ix - 1, iy + 1].cellVisualData.shouldIgnoreBorders; bool flag10 = (!flag2 || !flag) && iy > 3 && d.data.isFaceWallHigher(ix + 1, iy - 1) && !d.data.isFaceWallHigher(ix, iy - 1) && d.data[ix + 1, iy - 1] != null && !d.data[ix + 1, iy - 1].cellVisualData.shouldIgnoreBorders; bool flag11 = (!flag2 || !flag3) && iy > 3 && d.data.isFaceWallHigher(ix - 1, iy - 1) && !d.data.isFaceWallHigher(ix, iy - 1) && d.data[ix - 1, iy - 1] != null && !d.data[ix - 1, iy - 1].cellVisualData.shouldIgnoreBorders; int num2 = -1; int usedVisualType = -1; TileIndexGrid typeBorderGridForBorderIndex = GetTypeBorderGridForBorderIndex(current, d, d2, out usedVisualType); if ((int)d2.tileIndices.tilesetId == 1024) { int usedVisualType2 = -1; if (!flag4) { flag4 = (Object)(object)typeBorderGridForBorderIndex != (Object)(object)GetTypeBorderGridForBorderIndex(d.data[current.position + IntVector2.North], d, d2, out usedVisualType2) && (usedVisualType2 == 0 || usedVisualType == 0); } if (!flag8) { flag8 = (Object)(object)typeBorderGridForBorderIndex != (Object)(object)GetTypeBorderGridForBorderIndex(d.data[current.position + IntVector2.NorthEast], d, d2, out usedVisualType2) && (usedVisualType2 == 0 || usedVisualType == 0); } if (!flag5) { flag5 = (Object)(object)typeBorderGridForBorderIndex != (Object)(object)GetTypeBorderGridForBorderIndex(d.data[current.position + IntVector2.East], d, d2, out usedVisualType2) && (usedVisualType2 == 0 || usedVisualType == 0); } if (!flag10) { flag10 = (Object)(object)typeBorderGridForBorderIndex != (Object)(object)GetTypeBorderGridForBorderIndex(d.data[current.position + IntVector2.SouthEast], d, d2, out usedVisualType2) && (usedVisualType2 == 0 || usedVisualType == 0); } if (!flag6) { flag6 = (Object)(object)typeBorderGridForBorderIndex != (Object)(object)GetTypeBorderGridForBorderIndex(d.data[current.position + IntVector2.South], d, d2, out usedVisualType2) && (usedVisualType2 == 0 || usedVisualType == 0); } if (!flag11) { flag11 = (Object)(object)typeBorderGridForBorderIndex != (Object)(object)GetTypeBorderGridForBorderIndex(d.data[current.position + IntVector2.SouthWest], d, d2, out usedVisualType2) && (usedVisualType2 == 0 || usedVisualType == 0); } if (!flag7) { flag7 = (Object)(object)typeBorderGridForBorderIndex != (Object)(object)GetTypeBorderGridForBorderIndex(d.data[current.position + IntVector2.West], d, d2, out usedVisualType2) && (usedVisualType2 == 0 || usedVisualType == 0); } if (!flag9) { flag9 = (Object)(object)typeBorderGridForBorderIndex != (Object)(object)GetTypeBorderGridForBorderIndex(d.data[current.position + IntVector2.NorthWest], d, d2, out usedVisualType2) && (usedVisualType2 == 0 || usedVisualType == 0); } } if ((int)current.diagonalWallType == 0) { if (!flag4 && !flag8 && !flag5 && !flag10 && !flag6 && !flag11 && !flag7 && !flag9) { if ((int)d2.tileIndices.tilesetId == 8192) { BuildBorderLayerCenterJungle(current, d, map, ix, iy); num2 = -1; } else if (typeBorderGridForBorderIndex.CeilingBorderUsesDistancedCenters) { int count = typeBorderGridForBorderIndex.centerIndices.indices.Count; int index = Mathf.Max(0, Mathf.Min(Mathf.FloorToInt(current.distanceFromNearestRoom) - 1, count - 1)); num2 = typeBorderGridForBorderIndex.centerIndices.indices[index]; } else { num2 = typeBorderGridForBorderIndex.centerIndices.GetIndexByWeight(); if (d2.tileIndices.globalSecondBorderTiles.Count > 0 && current.distanceFromNearestRoom < 3f && Random.value > 0.5f) { num2 = d2.tileIndices.globalSecondBorderTiles[Random.Range(0, d2.tileIndices.globalSecondBorderTiles.Count)]; } } } else if (typeBorderGridForBorderIndex.UsesRatChunkBorders) { bool flag12 = iy > 3; if (flag12) { flag12 = !d.data[ix, iy - 1].HasFloorNeighbor(d.data, false, true); } RatChunkResult val = (RatChunkResult)0; num2 = ((!d.data[ix, iy].nearestRoom.area.PrototypeLostWoodsRoom) ? typeBorderGridForBorderIndex.GetRatChunkIndexGivenSides(flag4, flag8, flag5, flag10, flag6, flag11, flag7, flag9, flag12, ref val) : typeBorderGridForBorderIndex.GetRatChunkIndexGivenSidesStatic(flag4, flag8, flag5, flag10, flag6, flag11, flag7, flag9, flag12, ref val)); if ((int)val == 3) { HandleRatChunkOverhangs(d, ix, iy, map); } } else { num2 = typeBorderGridForBorderIndex.GetIndexGivenSides(flag4, flag8, flag5, flag10, flag6, flag11, flag7, flag9); } } else { DiagonalWallType diagonalWallType = current.diagonalWallType; switch (diagonalWallType - 1) { case 0: if (flag6 && flag7) { num2 = typeBorderGridForBorderIndex.diagonalBorderNE.GetIndexByWeight(); } break; case 1: num2 = ((!(flag4 && flag7)) ? typeBorderGridForBorderIndex.GetIndexGivenSides(flag4, flag8, flag5, flag10, flag6, flag11, flag7, flag9) : typeBorderGridForBorderIndex.diagonalBorderSE.GetIndexByWeight()); break; case 2: num2 = ((!(flag4 && flag5)) ? typeBorderGridForBorderIndex.GetIndexGivenSides(flag4, flag8, flag5, flag10, flag6, flag11, flag7, flag9) : typeBorderGridForBorderIndex.diagonalBorderSW.GetIndexByWeight()); break; case 3: if (flag6 && flag5) { num2 = typeBorderGridForBorderIndex.diagonalBorderNW.GetIndexByWeight(); } break; } } TileIndexGrid typeBorderGridForBorderIndex2 = GetTypeBorderGridForBorderIndex(current, d, d2, out usedVisualType); if (num2 == -1) { return; } if (!current.cellVisualData.shouldIgnoreWallDrawing) { map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, num2); } if (current.cellVisualData.shouldIgnoreWallDrawing) { BraveUtility.DrawDebugSquare(((IntVector2)(ref current.position)).ToVector2(), Color.blue, 1000f); } if (flag4 && (int)current.diagonalWallType != 0) { int num3 = -1; DiagonalWallType diagonalWallType2 = current.diagonalWallType; if ((int)diagonalWallType2 != 2) { if ((int)diagonalWallType2 == 3) { num3 = typeBorderGridForBorderIndex2.diagonalCeilingSW.GetIndexByWeight(); } } else { num3 = typeBorderGridForBorderIndex2.diagonalCeilingSE.GetIndexByWeight(); } if (num3 != -1) { map.Layers[GlobalDungeonData.ceilingLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, num3); AssignColorOverrideToTile(current.positionInTilemap.x, current.positionInTilemap.y, GlobalDungeonData.ceilingLayerIndex, Color32.op_Implicit(new Color(1f, 1f, 1f, 0f)), map); } num3 = GetCeilingCenterIndex(current, typeBorderGridForBorderIndex2); map.Layers[GlobalDungeonData.ceilingLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y - 1, num3); AssignColorOverrideToTile(current.positionInTilemap.x, current.positionInTilemap.y - 1, GlobalDungeonData.ceilingLayerIndex, Color32.op_Implicit(new Color(1f, 1f, 1f, 0f)), map); } else if (flag4) { int ceilingCenterIndex = GetCeilingCenterIndex(current, typeBorderGridForBorderIndex2); map.Layers[GlobalDungeonData.ceilingLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, ceilingCenterIndex); AssignColorOverrideToTile(current.positionInTilemap.x, current.positionInTilemap.y, GlobalDungeonData.ceilingLayerIndex, Color32.op_Implicit(new Color(1f, 1f, 1f, 0f)), map); } else if (flag6 && (int)current.diagonalWallType != 0) { int num4 = -1; DiagonalWallType diagonalWallType3 = current.diagonalWallType; if ((int)diagonalWallType3 != 1) { if ((int)diagonalWallType3 == 4) { num4 = typeBorderGridForBorderIndex2.diagonalCeilingNW.GetIndexByWeight(); } } else { num4 = typeBorderGridForBorderIndex2.diagonalCeilingNE.GetIndexByWeight(); } if (num4 != -1) { map.Layers[GlobalDungeonData.ceilingLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, num4); AssignColorOverrideToTile(current.positionInTilemap.x, current.positionInTilemap.y, GlobalDungeonData.ceilingLayerIndex, Color32.op_Implicit(new Color(1f, 1f, 1f, 0f)), map); } } else if (flag5 || flag7 || flag8 || flag9 || flag6 || flag10 || flag11) { int ceilingCenterIndex2 = GetCeilingCenterIndex(current, typeBorderGridForBorderIndex2); map.Layers[GlobalDungeonData.ceilingLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, ceilingCenterIndex2); AssignColorOverrideToTile(current.positionInTilemap.x, current.positionInTilemap.y, GlobalDungeonData.ceilingLayerIndex, Color32.op_Implicit(new Color(1f, 1f, 1f, 0f)), map); } if (flag4 || (d.data[current.position + IntVector2.Up] != null && d.data[current.position + IntVector2.Up].IsTopWall())) { AssignColorOverrideToTile(current.positionInTilemap.x, current.positionInTilemap.y, GlobalDungeonData.borderLayerIndex, Color32.op_Implicit(new Color(1f, 1f, 1f, 0f)), map); } else { AssignColorOverrideToTile(current.positionInTilemap.x, current.positionInTilemap.y, GlobalDungeonData.borderLayerIndex, Color32.op_Implicit(new Color(0f, 0f, 0f)), map); } } public void BuildCollisionIndex(CellData current, Dungeon d, Dungeon d2, tk2dTileMap map, int ix, int iy) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Invalid comparison between Unknown and I4 //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Invalid comparison between Unknown and I4 //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Invalid comparison between Unknown and I4 if ((int)current.type == 1 && (iy < 2 || !d.data.isFaceWallLower(ix, iy)) && !d.data.isTopDiagonalWall(ix, iy)) { TileIndexGrid roomCeilingBorderGrid = d.roomMaterialDefinitions[current.cellVisualData.roomVisualTypeIndex].roomCeilingBorderGrid; if (((int)d.tileIndices.tilesetId == 1024 || (int)d.tileIndices.tilesetId == 2048) && current.nearestRoom != null) { roomCeilingBorderGrid = d.roomMaterialDefinitions[current.nearestRoom.RoomVisualSubtype].roomCeilingBorderGrid; } if ((Object)(object)roomCeilingBorderGrid == (Object)null) { roomCeilingBorderGrid = d.roomMaterialDefinitions[0].roomCeilingBorderGrid; } map.Layers[GlobalDungeonData.collisionLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, roomCeilingBorderGrid.centerIndices.indices[0]); } } private void BuildPitShadowIndex(CellData current, Dungeon d, Dungeon d2, tk2dTileMap map, int ix, int iy) { //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Invalid comparison between Unknown and I4 //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Invalid comparison between Unknown and I4 //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Invalid comparison between Unknown and I4 //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Invalid comparison between Unknown and I4 //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Invalid comparison between Unknown and I4 //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Invalid comparison between Unknown and I4 //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Invalid comparison between Unknown and I4 //IL_0176: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Invalid comparison between Unknown and I4 //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Invalid comparison between Unknown and I4 //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Invalid comparison between Unknown and I4 //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Invalid comparison between Unknown and I4 //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Invalid comparison between Unknown and I4 //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Invalid comparison between Unknown and I4 //IL_01c3: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Invalid comparison between Unknown and I4 //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Invalid comparison between Unknown and I4 if (!d2.roomMaterialDefinitions[current.cellVisualData.roomVisualTypeIndex].doPitAO || (current != null && current.cellVisualData.hasStampedPath)) { return; } int floorLayerIndex = GlobalDungeonData.floorLayerIndex; if (!BCheck(d, ix, iy, -2)) { return; } CellData val = d.data.cellData[ix - 1][iy]; CellData val2 = d.data.cellData[ix + 1][iy]; CellData val3 = d.data.cellData[ix][iy + 1]; CellData val4 = d.data.cellData[ix][iy + 2]; CellData val5 = d.data.cellData[ix + 1][iy + 2]; CellData val6 = d.data.cellData[ix + 1][iy + 1]; CellData val7 = d.data.cellData[ix - 1][iy + 2]; CellData val8 = d.data.cellData[ix - 1][iy + 1]; DungeonMaterial val9 = d2.roomMaterialDefinitions[current.cellVisualData.roomVisualTypeIndex]; bool flag; bool flag2; bool flag3; bool flag4; bool flag5; if (val9.pitsAreOneDeep) { flag = (int)val.type != 4; flag2 = (int)val2.type != 4; flag3 = (int)val3.type != 4; flag4 = (int)val6.type != 4; flag5 = (int)val8.type != 4; } else { flag = (int)val3.type == 4 && (int)val8.type != 4; flag2 = (int)val3.type == 4 && (int)val6.type != 4; flag3 = (int)val4.type != 4 && (int)val3.type == 4; flag4 = (int)val5.type != 4 && (int)val6.type == 4; flag5 = (int)val7.type != 4 && (int)val8.type == 4; } if ((Object)(object)val9.pitfallVFXPrefab != (Object)null && ((Object)val9.pitfallVFXPrefab).name.ToLowerInvariant().Contains("splash")) { if (flag3 && flag && !flag2) { map.Layers[floorLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOFloorWallUpAndLeft); } else if (flag3 && flag2 && !flag) { map.Layers[floorLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOFloorWallUpAndRight); } else if (flag3 && flag && flag2) { map.Layers[floorLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOFloorWallUpAndBoth); } else if (flag3 && !flag && !flag2) { map.Layers[floorLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOFloorTileIndex); } } else if (flag3 && flag && !flag2) { map.Layers[floorLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOBottomWallTileLeftIndex); } else if (flag3 && flag2 && !flag) { map.Layers[floorLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOBottomWallTileRightIndex); } else if (flag3 && flag && flag2) { map.Layers[floorLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOBottomWallTileBothIndex); } else if (flag3 && !flag && !flag2) { map.Layers[floorLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOBottomWallBaseTileIndex); } if (!flag3) { bool flag6 = flag && !d.data.isTopWall(current.positionInTilemap.x - 1, current.positionInTilemap.y + 1); bool flag7 = flag2 && !d.data.isTopWall(current.positionInTilemap.x + 1, current.positionInTilemap.y + 1); if (flag6 && flag7) { map.Layers[floorLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOFloorWallBoth); } else if (flag6) { map.Layers[floorLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOFloorWallLeft); } else if (flag7) { map.Layers[floorLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOFloorWallRight); } } if (!flag3 && flag5 && !flag && !flag2 && !flag4) { map.Layers[floorLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOFloorPizzaSliceLeft); } else if (!flag3 && !flag5 && !flag && !flag2 && flag4) { map.Layers[floorLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOFloorPizzaSliceRight); } else if (!flag3 && flag5 && !flag2 && !flag && flag4) { map.Layers[floorLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOFloorPizzaSliceBoth); } else if (!flag3 && flag5 && !flag && flag2) { map.Layers[floorLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOFloorPizzaSliceLeftWallRight); } else if (!flag3 && flag && !flag2 && flag4) { map.Layers[floorLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOFloorPizzaSliceRightWallLeft); } } private TileIndexGrid GetTypeBorderGridForBorderIndex(CellData current, Dungeon d, Dungeon d2, out int usedVisualType) { //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Invalid comparison between Unknown and I4 //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Invalid comparison between Unknown and I4 TileIndexGrid roomCeilingBorderGrid; try { roomCeilingBorderGrid = d2.roomMaterialDefinitions[current.cellVisualData.roomVisualTypeIndex].roomCeilingBorderGrid; } catch (Exception ex) { if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] [WARNING] Exception caught in ExpandTK2DDungeonAssembler.GetTypeBorderGridForBorderIndex !"); Debug.LogException(ex); } roomCeilingBorderGrid = null; usedVisualType = 0; return null; } usedVisualType = current.cellVisualData.roomVisualTypeIndex; if ((int)d2.tileIndices.tilesetId == 1024) { if (current.nearestRoom != null && current.distanceFromNearestRoom < 4f) { if (current.cellVisualData.IsFacewallForInteriorTransition) { roomCeilingBorderGrid = d2.roomMaterialDefinitions[current.cellVisualData.InteriorTransitionIndex].roomCeilingBorderGrid; usedVisualType = current.cellVisualData.InteriorTransitionIndex; } else if (!current.cellVisualData.IsFeatureCell) { roomCeilingBorderGrid = d2.roomMaterialDefinitions[current.nearestRoom.RoomVisualSubtype].roomCeilingBorderGrid; usedVisualType = current.nearestRoom.RoomVisualSubtype; } } } else if ((int)d2.tileIndices.tilesetId == 2048) { roomCeilingBorderGrid = d2.roomMaterialDefinitions[current.nearestRoom.RoomVisualSubtype].roomCeilingBorderGrid; usedVisualType = current.nearestRoom.RoomVisualSubtype; } if ((Object)(object)roomCeilingBorderGrid == (Object)null) { roomCeilingBorderGrid = d2.roomMaterialDefinitions[0].roomCeilingBorderGrid; usedVisualType = 0; } return roomCeilingBorderGrid; } private void BuildFloorIndex(CellData current, Dungeon d, Dungeon d2, tk2dTileMap map, int ix, int iy) { //IL_0810: Unknown result type (might be due to invalid IL or missing references) //IL_0853: Unknown result type (might be due to invalid IL or missing references) //IL_0307: Unknown result type (might be due to invalid IL or missing references) //IL_030d: Invalid comparison between Unknown and I4 //IL_0867: Unknown result type (might be due to invalid IL or missing references) //IL_0375: Unknown result type (might be due to invalid IL or missing references) //IL_037b: Invalid comparison between Unknown and I4 //IL_038e: Unknown result type (might be due to invalid IL or missing references) //IL_0394: Invalid comparison between Unknown and I4 //IL_03a7: Unknown result type (might be due to invalid IL or missing references) //IL_03ad: Invalid comparison between Unknown and I4 //IL_03c0: Unknown result type (might be due to invalid IL or missing references) //IL_03c6: Invalid comparison between Unknown and I4 //IL_03d9: Unknown result type (might be due to invalid IL or missing references) //IL_03df: Invalid comparison between Unknown and I4 //IL_03f2: Unknown result type (might be due to invalid IL or missing references) //IL_03f8: Invalid comparison between Unknown and I4 //IL_040b: Unknown result type (might be due to invalid IL or missing references) //IL_0411: Invalid comparison between Unknown and I4 //IL_0423: Unknown result type (might be due to invalid IL or missing references) //IL_0429: Invalid comparison between Unknown and I4 //IL_0276: Unknown result type (might be due to invalid IL or missing references) //IL_027c: Invalid comparison between Unknown and I4 //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Invalid comparison between Unknown and I4 if (current.cellVisualData.inheritedOverrideIndex != -1) { map.Layers[(!current.cellVisualData.inheritedOverrideIndexIsFloor) ? GlobalDungeonData.patternLayerIndex : GlobalDungeonData.floorLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, current.cellVisualData.inheritedOverrideIndex); } if (current.cellVisualData.inheritedOverrideIndex == -1 || !current.cellVisualData.inheritedOverrideIndexIsFloor) { bool flag = true; TileIndexGrid randomGridFromArray = d2.roomMaterialDefinitions[current.cellVisualData.roomVisualTypeIndex].GetRandomGridFromArray(d2.roomMaterialDefinitions[current.cellVisualData.roomVisualTypeIndex].floorSquares); if ((Object)(object)randomGridFromArray == (Object)null) { flag = false; } if (flag) { for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (!BCheck(d, ix + i, iy + j)) { flag = false; } if (d.data.isWall(ix + i, iy + j) || d.data.isAnyFaceWall(ix + i, iy + j)) { flag = false; } CellData val = d.data.cellData[ix + i][iy + j]; if (val.HasWallNeighbor(true, false) || val.HasPitNeighbor(d.data)) { flag = false; } if (val.cellVisualData.roomVisualTypeIndex != current.cellVisualData.roomVisualTypeIndex) { flag = false; } if (val.cellVisualData.inheritedOverrideIndex != -1) { flag = false; } if ((int)val.cellVisualData.floorType == 3) { flag = false; } if (val.doesDamage) { flag = false; } if (!flag) { break; } } if (!flag) { break; } } } if (flag && current.UniqueHash < d2.roomMaterialDefinitions[current.cellVisualData.roomVisualTypeIndex].floorSquareDensity) { TileIndexGrid val2 = randomGridFromArray; int num = ((current.UniqueHash >= 0.025f) ? 3 : 2); if (val2.topIndices.indices[0] == -1) { num = 2; } for (int k = 0; k < num; k++) { for (int l = 0; l < num; l++) { bool flag2 = l == num - 1; bool flag3 = l == 0; bool flag4 = k == num - 1; bool flag5 = k == 0; int indexGivenSides = val2.GetIndexGivenSides(flag2, flag4, flag3, flag5); if (BCheck(d, ix + k, iy + l) && !d.data.isFaceWallLower(ix + k, iy + l) && (int)d.data.cellData[ix + k][iy + l].type != 4) { CellData val3 = d.data.cellData[ix + k][iy + l]; val3.cellVisualData.inheritedOverrideIndex = indexGivenSides; val3.cellVisualData.inheritedOverrideIndexIsFloor = true; map.Layers[GlobalDungeonData.floorLayerIndex].SetTile(val3.positionInTilemap.x, val3.positionInTilemap.y, indexGivenSides); } } } } else if ((int)current.cellVisualData.floorType == 3 && d2.roomMaterialDefinitions[current.cellVisualData.roomVisualTypeIndex].supportsIceSquares) { TileIndexGrid randomGridFromArray2 = d2.roomMaterialDefinitions[current.cellVisualData.roomVisualTypeIndex].GetRandomGridFromArray(d2.roomMaterialDefinitions[current.cellVisualData.roomVisualTypeIndex].iceGrids); List cellNeighbors = d.data.GetCellNeighbors(current, true); bool flag6 = (int)cellNeighbors[0].cellVisualData.floorType != 3; bool flag7 = (int)cellNeighbors[1].cellVisualData.floorType != 3; bool flag8 = (int)cellNeighbors[2].cellVisualData.floorType != 3; bool flag9 = (int)cellNeighbors[3].cellVisualData.floorType != 3; bool flag10 = (int)cellNeighbors[4].cellVisualData.floorType != 3; bool flag11 = (int)cellNeighbors[5].cellVisualData.floorType != 3; bool flag12 = (int)cellNeighbors[6].cellVisualData.floorType != 3; bool flag13 = (int)cellNeighbors[7].cellVisualData.floorType != 3; int indexGivenSides2 = randomGridFromArray2.GetIndexGivenSides(flag6, flag7, flag8, flag9, flag10, flag11, flag12, flag13); map.Layers[GlobalDungeonData.floorLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, indexGivenSides2); map.Layers[GlobalDungeonData.patternLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, indexGivenSides2); } else if (current.doesDamage && d2.roomMaterialDefinitions[current.cellVisualData.roomVisualTypeIndex].supportsLavaOrLavalikeSquares) { TileIndexGrid randomGridFromArray3 = d2.roomMaterialDefinitions[current.cellVisualData.roomVisualTypeIndex].GetRandomGridFromArray(d2.roomMaterialDefinitions[current.cellVisualData.roomVisualTypeIndex].lavaGrids); List cellNeighbors2 = d.data.GetCellNeighbors(current, true); bool flag14 = !cellNeighbors2[0].doesDamage; bool flag15 = !cellNeighbors2[1].doesDamage; bool flag16 = !cellNeighbors2[2].doesDamage; bool flag17 = !cellNeighbors2[3].doesDamage; bool flag18 = !cellNeighbors2[4].doesDamage; bool flag19 = !cellNeighbors2[5].doesDamage; bool flag20 = !cellNeighbors2[6].doesDamage; bool flag21 = !cellNeighbors2[7].doesDamage; int indexGivenSides3 = randomGridFromArray3.GetIndexGivenSides(flag14, flag15, flag16, flag17, flag18, flag19, flag20, flag21); map.Layers[GlobalDungeonData.floorLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, indexGivenSides3); map.Layers[GlobalDungeonData.patternLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, indexGivenSides3); } else { RoomInternalMaterialTransition val4 = ((current != null && current.parentRoom != null) ? GetMaterialTransitionFromSubtypes(d2, current.parentRoom.RoomVisualSubtype, current.cellVisualData.roomVisualTypeIndex) : null); if (val4 != null) { List cellNeighbors3 = d.data.GetCellNeighbors(current, true); bool flag22 = cellNeighbors3[0].cellVisualData.roomVisualTypeIndex == current.parentRoom.RoomVisualSubtype; bool flag23 = cellNeighbors3[1].cellVisualData.roomVisualTypeIndex == current.parentRoom.RoomVisualSubtype; bool flag24 = cellNeighbors3[2].cellVisualData.roomVisualTypeIndex == current.parentRoom.RoomVisualSubtype; bool flag25 = cellNeighbors3[3].cellVisualData.roomVisualTypeIndex == current.parentRoom.RoomVisualSubtype; bool flag26 = cellNeighbors3[4].cellVisualData.roomVisualTypeIndex == current.parentRoom.RoomVisualSubtype; bool flag27 = cellNeighbors3[5].cellVisualData.roomVisualTypeIndex == current.parentRoom.RoomVisualSubtype; bool flag28 = cellNeighbors3[6].cellVisualData.roomVisualTypeIndex == current.parentRoom.RoomVisualSubtype; bool flag29 = cellNeighbors3[7].cellVisualData.roomVisualTypeIndex == current.parentRoom.RoomVisualSubtype; bool num2 = flag22 || flag23 || flag24 || flag25 || flag26 || flag27 || flag28 || flag29; int num3 = GetIndexFromTupleArray(current, m_metadataLookupTable[(TilesetFlagType)4], current.cellVisualData.roomVisualTypeIndex); if (num2) { num3 = val4.transitionGrid.GetIndexGivenSides(flag22, flag23, flag24, flag25, flag26, flag27, flag28, flag29); } map.Layers[GlobalDungeonData.floorLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, num3); } else { int indexFromTupleArray = GetIndexFromTupleArray(current, m_metadataLookupTable[(TilesetFlagType)4], current.cellVisualData.roomVisualTypeIndex); map.Layers[GlobalDungeonData.floorLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, indexFromTupleArray); } } } if (d.data.HasDoorAtPosition(new IntVector2(ix, iy)) || d.data[ix, iy].cellVisualData.doorFeetOverrideMode != 0) { DungeonDoorController val5 = null; IntVector2 key = default(IntVector2); ((IntVector2)(ref key))..ctor(ix, iy); if (d.data.doors.ContainsKey(key)) { val5 = d.data.doors[key]; } if (d.data[ix, iy].cellVisualData.doorFeetOverrideMode == 1 || ((Object)(object)val5 != (Object)null && val5.northSouth)) { int index = -1; GetMetadataFromTupleArray(current, m_metadataLookupTable[(TilesetFlagType)64], -1, out index); map.Layers[GlobalDungeonData.decalLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, index); map.Layers[GlobalDungeonData.patternLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, index); } else if (d.data[ix, iy].cellVisualData.doorFeetOverrideMode == 2 || ((Object)(object)val5 != (Object)null && !val5.northSouth)) { int index2 = -1; GetMetadataFromTupleArray(current, m_metadataLookupTable[(TilesetFlagType)128], -1, out index2); map.Layers[GlobalDungeonData.patternLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, index2); map.Layers[GlobalDungeonData.decalLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, index2); } } } private void BuildDecoIndices(CellData current, Dungeon d, Dungeon d2, tk2dTileMap map, int ix, int iy) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Invalid comparison between Unknown and I4 //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Invalid comparison between Unknown and I4 if (((int)current.type != 2 && !current.IsLowerFaceWall()) || d.data.isTopWall(ix, iy) || current.cellVisualData.floorTileOverridden || current.cellVisualData.inheritedOverrideIndex != -1) { return; } DungeonMaterial val = d2.roomMaterialDefinitions[current.cellVisualData.roomVisualTypeIndex]; if (current.HasPitNeighbor(d.data)) { return; } if (current.cellVisualData.isPattern) { List cellNeighbors = d.data.GetCellNeighbors(current, true); bool[] array = new bool[8]; for (int i = 0; i < array.Length; i++) { array[i] = !cellNeighbors[i].cellVisualData.isPattern && (int)cellNeighbors[i].type != 1; } TileIndexGrid val2 = ((!val.usesPatternLayer) ? m_tileIndices.patternIndexGrid : val.patternIndexGrid); current.cellVisualData.preventFloorStamping = true; if ((Object)(object)val2 != (Object)null) { map.Layers[GlobalDungeonData.patternLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, val2.GetIndexGivenSides(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7])); } } if (current.cellVisualData.isDecal) { List cellNeighbors2 = d.data.GetCellNeighbors(current, true); bool[] array2 = new bool[8]; for (int j = 0; j < array2.Length; j++) { array2[j] = !cellNeighbors2[j].cellVisualData.isDecal && (int)cellNeighbors2[j].type != 1; } TileIndexGrid val3 = ((!val.usesDecalLayer) ? m_tileIndices.decalIndexGrid : val.decalIndexGrid); current.cellVisualData.preventFloorStamping = true; if ((Object)(object)val3 != (Object)null) { map.Layers[GlobalDungeonData.decalLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, val3.GetIndexGivenSides(array2[0], array2[1], array2[2], array2[3], array2[4], array2[5], array2[6], array2[7])); } } } private void ProcessFacewallIndices(CellData current, Dungeon d, Dungeon d2, tk2dTileMap map, int ix, int iy) { //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_0375: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) if (current.cellVisualData.shouldIgnoreWallDrawing) { return; } DungeonMaterial val = d2.roomMaterialDefinitions[current.cellVisualData.roomVisualTypeIndex]; if (current.cellVisualData.IsFacewallForInteriorTransition) { val = d2.roomMaterialDefinitions[current.cellVisualData.InteriorTransitionIndex]; } if (d.data.isSingleCellWall(ix, iy)) { map.Layers[GlobalDungeonData.collisionLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, GetIndexFromTileArray(current, m_tileIndices.chestHighWallIndices).index); } else if (d.data.isFaceWallLower(ix, iy)) { if ((Object)(object)val != (Object)null && val.usesFacewallGrids) { FacewallIndexGridDefinition val2 = val.facewallGrids[Random.Range(0, val.facewallGrids.Length)]; if (current.cellVisualData.faceWallOverrideIndex == -1 && Random.value < val2.chanceToPlaceIfPossible) { AssignFacewallGrid(current, d, map, ix, iy, val2); } } bool flag = d.data.isWallLeft(ix, iy) && !d.data.isFaceWallLeft(ix, iy); bool flag2 = d.data.isWallRight(ix, iy) && !d.data.isFaceWallRight(ix, iy); bool flag3 = !d.data.isWallLeft(ix, iy); bool flag4 = !d.data.isWallRight(ix, iy); if (flag3 && val.forceEdgesDiagonal) { current.diagonalWallType = (DiagonalWallType)1; } if (flag4 && val.forceEdgesDiagonal) { current.diagonalWallType = (DiagonalWallType)4; } if (flag3 && !flag4 && HasMetadataForRoomType((TilesetFlagType)262144, current.cellVisualData.roomVisualTypeIndex)) { ProcessFacewallType(current, d, d2, map, ix, iy, (TilesetFlagType)2, (TilesetFlagType)262144); } else if (flag4 && !flag3 && HasMetadataForRoomType((TilesetFlagType)524288, current.cellVisualData.roomVisualTypeIndex)) { ProcessFacewallType(current, d, d2, map, ix, iy, (TilesetFlagType)2, (TilesetFlagType)524288); } else if (flag && !flag2 && HasMetadataForRoomType((TilesetFlagType)16384, current.cellVisualData.roomVisualTypeIndex)) { ProcessFacewallType(current, d, d2, map, ix, iy, (TilesetFlagType)2, (TilesetFlagType)16384); } else if (flag2 && !flag && HasMetadataForRoomType((TilesetFlagType)32768, current.cellVisualData.roomVisualTypeIndex)) { ProcessFacewallType(current, d, d2, map, ix, iy, (TilesetFlagType)2, (TilesetFlagType)32768); } else { ProcessFacewallType(current, d, d2, map, ix, iy, (TilesetFlagType)2, (TilesetFlagType)2); } } else if (d.data.isFaceWallHigher(ix, iy)) { bool flag5 = d.data.isWallLeft(ix, iy) && !d.data.isFaceWallLeft(ix, iy); bool flag6 = d.data.isWallRight(ix, iy) && !d.data.isFaceWallRight(ix, iy); bool flag7 = !d.data.isWallLeft(ix, iy) || (d.data.isFaceWallLeft(ix, iy) && !d.data[ix - 1, iy].IsUpperFacewall()); bool flag8 = !d.data.isWallRight(ix, iy) || (d.data.isFaceWallRight(ix, iy) && !d.data[ix + 1, iy].IsUpperFacewall()); if (flag7 && !flag8 && val.forceEdgesDiagonal) { current.diagonalWallType = (DiagonalWallType)1; } if (flag8 && !flag7 && val.forceEdgesDiagonal) { current.diagonalWallType = (DiagonalWallType)4; } if (flag7 && !flag8 && HasMetadataForRoomType((TilesetFlagType)1048576, current.cellVisualData.roomVisualTypeIndex)) { ProcessFacewallType(current, d, d2, map, ix, iy, (TilesetFlagType)1, (TilesetFlagType)1048576); } else if (flag8 && !flag7 && HasMetadataForRoomType((TilesetFlagType)2097152, current.cellVisualData.roomVisualTypeIndex)) { ProcessFacewallType(current, d, d2, map, ix, iy, (TilesetFlagType)1, (TilesetFlagType)2097152); } else if (flag5 && !flag6 && HasMetadataForRoomType((TilesetFlagType)65536, current.cellVisualData.roomVisualTypeIndex)) { ProcessFacewallType(current, d, d2, map, ix, iy, (TilesetFlagType)1, (TilesetFlagType)65536); } else if (flag6 && !flag5 && HasMetadataForRoomType((TilesetFlagType)131072, current.cellVisualData.roomVisualTypeIndex)) { ProcessFacewallType(current, d, d2, map, ix, iy, (TilesetFlagType)1, (TilesetFlagType)131072); } else { ProcessFacewallType(current, d, d2, map, ix, iy, (TilesetFlagType)1, (TilesetFlagType)1); } } } private void HandlePitBorderTilePlacement(CellData cell, TileIndexGrid borderGrid, Layer tileMapLayer, tk2dTileMap tileMap, Dungeon d, Dungeon d2) { //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Invalid comparison between Unknown and I4 //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Invalid comparison between Unknown and I4 //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_024e: Invalid comparison between Unknown and I4 //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Invalid comparison between Unknown and I4 //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Invalid comparison between Unknown and I4 //IL_027c: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Invalid comparison between Unknown and I4 //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Invalid comparison between Unknown and I4 //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Invalid comparison between Unknown and I4 //IL_02b0: Unknown result type (might be due to invalid IL or missing references) //IL_02b6: Invalid comparison between Unknown and I4 //IL_01c3: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Invalid comparison between Unknown and I4 //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Invalid comparison between Unknown and I4 //IL_02e4: Unknown result type (might be due to invalid IL or missing references) //IL_02ea: Invalid comparison between Unknown and I4 //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01e8: Invalid comparison between Unknown and I4 //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Invalid comparison between Unknown and I4 //IL_0318: Unknown result type (might be due to invalid IL or missing references) //IL_031e: Invalid comparison between Unknown and I4 //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Invalid comparison between Unknown and I4 //IL_034c: Unknown result type (might be due to invalid IL or missing references) //IL_0352: Invalid comparison between Unknown and I4 //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Invalid comparison between Unknown and I4 //IL_0380: Unknown result type (might be due to invalid IL or missing references) //IL_0386: Invalid comparison between Unknown and I4 //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Invalid comparison between Unknown and I4 //IL_03b4: Unknown result type (might be due to invalid IL or missing references) //IL_03ba: Invalid comparison between Unknown and I4 //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Invalid comparison between Unknown and I4 if (borderGrid.PitBorderIsInternal) { if ((int)cell.type == 4) { List cellNeighbors = d.data.GetCellNeighbors(cell, true); bool flag = cellNeighbors[0] != null && (int)cellNeighbors[0].type == 4; bool flag2 = cellNeighbors[1] != null && (int)cellNeighbors[1].type == 4; bool flag3 = cellNeighbors[2] != null && (int)cellNeighbors[2].type == 4; bool flag4 = cellNeighbors[3] != null && (int)cellNeighbors[3].type == 4; bool flag5 = cellNeighbors[4] != null && (int)cellNeighbors[4].type == 4; bool flag6 = cellNeighbors[5] != null && (int)cellNeighbors[5].type == 4; bool flag7 = cellNeighbors[6] != null && (int)cellNeighbors[6].type == 4; bool flag8 = cellNeighbors[7] != null && (int)cellNeighbors[7].type == 4; int indexGivenSides = borderGrid.GetIndexGivenSides(!flag, !flag2, !flag3, !flag4, !flag5, !flag6, !flag7, !flag8); tileMapLayer.SetTile(cell.positionInTilemap.x, cell.positionInTilemap.y, indexGivenSides); } return; } if ((int)cell.type == 4) { List cellNeighbors2 = d.data.GetCellNeighbors(cell, false); bool flag9 = cellNeighbors2[0] != null && (int)cellNeighbors2[0].type == 4; bool flag10 = cellNeighbors2[1] != null && (int)cellNeighbors2[1].type == 4; bool flag11 = cellNeighbors2[2] != null && (int)cellNeighbors2[2].type == 4; bool flag12 = cellNeighbors2[3] != null && (int)cellNeighbors2[3].type == 4; int internalIndexGivenSides = borderGrid.GetInternalIndexGivenSides(flag9, flag10, flag11, flag12); if (internalIndexGivenSides != -1) { tileMapLayer.SetTile(cell.positionInTilemap.x, cell.positionInTilemap.y, internalIndexGivenSides); } return; } List cellNeighbors3 = d.data.GetCellNeighbors(cell, true); bool flag13 = cellNeighbors3[0] != null && ((int)cellNeighbors3[0].type == 4 || cellNeighbors3[0].cellVisualData.RequiresPitBordering); bool flag14 = cellNeighbors3[1] != null && ((int)cellNeighbors3[1].type == 4 || cellNeighbors3[1].cellVisualData.RequiresPitBordering); bool flag15 = cellNeighbors3[2] != null && ((int)cellNeighbors3[2].type == 4 || cellNeighbors3[2].cellVisualData.RequiresPitBordering); bool flag16 = cellNeighbors3[3] != null && ((int)cellNeighbors3[3].type == 4 || cellNeighbors3[3].cellVisualData.RequiresPitBordering); bool flag17 = cellNeighbors3[4] != null && ((int)cellNeighbors3[4].type == 4 || cellNeighbors3[4].cellVisualData.RequiresPitBordering); bool flag18 = cellNeighbors3[5] != null && ((int)cellNeighbors3[5].type == 4 || cellNeighbors3[5].cellVisualData.RequiresPitBordering); bool flag19 = cellNeighbors3[6] != null && ((int)cellNeighbors3[6].type == 4 || cellNeighbors3[6].cellVisualData.RequiresPitBordering); bool flag20 = cellNeighbors3[7] != null && ((int)cellNeighbors3[7].type == 4 || cellNeighbors3[7].cellVisualData.RequiresPitBordering); if (!flag13 && !flag14 && !flag15 && !flag16 && !flag17 && !flag18 && !flag19 && !flag20) { return; } int indexGivenSides2 = borderGrid.GetIndexGivenSides(flag13, flag14, flag15, flag16, flag17, flag18, flag19, flag20); if (borderGrid.PitBorderOverridesFloorTile) { tileMap.SetTile(cell.positionInTilemap.x, cell.positionInTilemap.y, GlobalDungeonData.floorLayerIndex, indexGivenSides2); } else { tileMapLayer.SetTile(cell.positionInTilemap.x, cell.positionInTilemap.y, indexGivenSides2); } if (borderGrid.PitBorderOverridesFloorTile) { TileIndexGrid pitLayoutGrid = d2.roomMaterialDefinitions[cell.cellVisualData.roomVisualTypeIndex].pitLayoutGrid; if ((Object)(object)pitLayoutGrid == (Object)null) { pitLayoutGrid = d2.roomMaterialDefinitions[0].pitLayoutGrid; } tileMap.Layers[GlobalDungeonData.pitLayerIndex].SetTile(cell.positionInTilemap.x, cell.positionInTilemap.y, pitLayoutGrid.centerIndices.GetIndexByWeight()); } } private void HandlePathTilePlacement(CellData current, Dungeon d, Dungeon d2, tk2dTileMap map, TileIndexGrid pathGrid) { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Invalid comparison between Unknown and I4 //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Invalid comparison between Unknown and I4 //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Invalid comparison between Unknown and I4 //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Invalid comparison between Unknown and I4 List cellNeighbors = d.data.GetCellNeighbors(current, true); bool[] array = new bool[8]; for (int i = 0; i < array.Length; i++) { if (current.cellVisualData.pathTilesetGridIndex == cellNeighbors[i].cellVisualData.pathTilesetGridIndex) { array[i] = true; } } int num = pathGrid.GetIndexGivenSides(!array[0], !array[2], !array[4], !array[6]); int num2 = GlobalDungeonData.patternLayerIndex; if ((int)d2.tileIndices.tilesetId == 16 && (int)current.type != 4) { if (array[0] == array[4] && array[0] != array[2] && array[0] != array[6]) { num += (array[0] ? 1 : 2); } } else if ((int)d2.tileIndices.tilesetId == 16) { num2 = GlobalDungeonData.killLayerIndex; if (cellNeighbors[4] != null && !array[4] && (int)cellNeighbors[4].type == 4) { int num3 = pathGrid.PathPitPosts.indices[cellNeighbors[4].cellVisualData.roomVisualTypeIndex]; if (array[0] && array[2]) { num3 = pathGrid.PathPitPostsBL.indices[cellNeighbors[4].cellVisualData.roomVisualTypeIndex]; } else if (array[0] && array[6]) { num3 = pathGrid.PathPitPostsBR.indices[cellNeighbors[4].cellVisualData.roomVisualTypeIndex]; } map.Layers[GlobalDungeonData.killLayerIndex].SetTile(cellNeighbors[4].positionInTilemap.x, cellNeighbors[4].positionInTilemap.y, num3); } } map.Layers[num2].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, num); } private void ProcessFacewallType(CellData current, Dungeon d, Dungeon d2, tk2dTileMap map, int ix, int iy, TilesetFlagType wallType, TilesetFlagType tileOverrideType) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Invalid comparison between Unknown and I4 //IL_01fb: Unknown result type (might be due to invalid IL or missing references) //IL_0209: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Invalid comparison between Unknown and I4 //IL_02fd: Unknown result type (might be due to invalid IL or missing references) //IL_0303: Invalid comparison between Unknown and I4 //IL_0214: Unknown result type (might be due to invalid IL or missing references) //IL_0217: Invalid comparison between Unknown and I4 //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_06d3: Unknown result type (might be due to invalid IL or missing references) //IL_06dd: Invalid comparison between Unknown and I4 //IL_0308: Unknown result type (might be due to invalid IL or missing references) //IL_030b: Invalid comparison between Unknown and I4 //IL_0263: Unknown result type (might be due to invalid IL or missing references) //IL_0266: Invalid comparison between Unknown and I4 //IL_0783: Unknown result type (might be due to invalid IL or missing references) //IL_0786: Invalid comparison between Unknown and I4 //IL_06df: Unknown result type (might be due to invalid IL or missing references) //IL_06e6: Invalid comparison between Unknown and I4 //IL_0673: Unknown result type (might be due to invalid IL or missing references) //IL_03f7: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Invalid comparison between Unknown and I4 //IL_0357: Unknown result type (might be due to invalid IL or missing references) //IL_035a: Invalid comparison between Unknown and I4 //IL_07c1: Unknown result type (might be due to invalid IL or missing references) //IL_07c7: Invalid comparison between Unknown and I4 //IL_06e8: Unknown result type (might be due to invalid IL or missing references) //IL_06ef: Invalid comparison between Unknown and I4 //IL_0527: Unknown result type (might be due to invalid IL or missing references) //IL_052a: Invalid comparison between Unknown and I4 //IL_0400: Unknown result type (might be due to invalid IL or missing references) //IL_0406: Invalid comparison between Unknown and I4 //IL_07ca: Unknown result type (might be due to invalid IL or missing references) //IL_0933: Unknown result type (might be due to invalid IL or missing references) //IL_0936: Invalid comparison between Unknown and I4 //IL_06f1: Unknown result type (might be due to invalid IL or missing references) //IL_06f8: Invalid comparison between Unknown and I4 //IL_0530: Unknown result type (might be due to invalid IL or missing references) //IL_0536: Invalid comparison between Unknown and I4 //IL_0494: Unknown result type (might be due to invalid IL or missing references) //IL_049a: Invalid comparison between Unknown and I4 //IL_0436: Unknown result type (might be due to invalid IL or missing references) //IL_043b: Unknown result type (might be due to invalid IL or missing references) //IL_044f: Unknown result type (might be due to invalid IL or missing references) //IL_0454: Unknown result type (might be due to invalid IL or missing references) //IL_0468: Unknown result type (might be due to invalid IL or missing references) //IL_046d: Unknown result type (might be due to invalid IL or missing references) //IL_0481: Unknown result type (might be due to invalid IL or missing references) //IL_0486: Unknown result type (might be due to invalid IL or missing references) //IL_07f9: Unknown result type (might be due to invalid IL or missing references) //IL_07ff: Invalid comparison between Unknown and I4 //IL_09b9: Unknown result type (might be due to invalid IL or missing references) //IL_09be: Unknown result type (might be due to invalid IL or missing references) //IL_09d2: Unknown result type (might be due to invalid IL or missing references) //IL_09d7: Unknown result type (might be due to invalid IL or missing references) //IL_0963: Unknown result type (might be due to invalid IL or missing references) //IL_0968: Unknown result type (might be due to invalid IL or missing references) //IL_097c: Unknown result type (might be due to invalid IL or missing references) //IL_0981: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_06fa: Unknown result type (might be due to invalid IL or missing references) //IL_0701: Invalid comparison between Unknown and I4 //IL_05c4: Unknown result type (might be due to invalid IL or missing references) //IL_05ca: Invalid comparison between Unknown and I4 //IL_0566: Unknown result type (might be due to invalid IL or missing references) //IL_056b: Unknown result type (might be due to invalid IL or missing references) //IL_057f: Unknown result type (might be due to invalid IL or missing references) //IL_0584: Unknown result type (might be due to invalid IL or missing references) //IL_0598: Unknown result type (might be due to invalid IL or missing references) //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_05b1: Unknown result type (might be due to invalid IL or missing references) //IL_05b6: Unknown result type (might be due to invalid IL or missing references) //IL_04ca: Unknown result type (might be due to invalid IL or missing references) //IL_04cf: Unknown result type (might be due to invalid IL or missing references) //IL_04e3: Unknown result type (might be due to invalid IL or missing references) //IL_04e8: Unknown result type (might be due to invalid IL or missing references) //IL_04fc: Unknown result type (might be due to invalid IL or missing references) //IL_0501: Unknown result type (might be due to invalid IL or missing references) //IL_0515: Unknown result type (might be due to invalid IL or missing references) //IL_051a: Unknown result type (might be due to invalid IL or missing references) //IL_0802: Unknown result type (might be due to invalid IL or missing references) //IL_07e2: Unknown result type (might be due to invalid IL or missing references) //IL_07e5: Invalid comparison between Unknown and I4 //IL_05fa: Unknown result type (might be due to invalid IL or missing references) //IL_05ff: Unknown result type (might be due to invalid IL or missing references) //IL_0613: Unknown result type (might be due to invalid IL or missing references) //IL_0618: Unknown result type (might be due to invalid IL or missing references) //IL_062c: Unknown result type (might be due to invalid IL or missing references) //IL_0631: Unknown result type (might be due to invalid IL or missing references) //IL_0645: Unknown result type (might be due to invalid IL or missing references) //IL_064a: Unknown result type (might be due to invalid IL or missing references) //IL_085a: Unknown result type (might be due to invalid IL or missing references) //IL_085d: Invalid comparison between Unknown and I4 //IL_081a: Unknown result type (might be due to invalid IL or missing references) //IL_081d: Invalid comparison between Unknown and I4 //IL_08b2: Unknown result type (might be due to invalid IL or missing references) //IL_08b5: Invalid comparison between Unknown and I4 //IL_0907: Unknown result type (might be due to invalid IL or missing references) //IL_090a: Invalid comparison between Unknown and I4 int num = current.cellVisualData.roomVisualTypeIndex; if ((int)d2.tileIndices.tilesetId == 1024 && num == 0) { bool flag = false; int num2 = -1; for (int i = 0; i < current.nearestRoom.connectedRooms.Count; i++) { if ((int)current.nearestRoom.GetDirectionToConnectedRoom(current.nearestRoom.connectedRooms[i]) == 0 && current.nearestRoom.connectedRooms[i].RoomVisualSubtype != 0) { flag = true; num2 = current.nearestRoom.connectedRooms[i].RoomVisualSubtype; break; } } if (flag && current.cellVisualData.IsFacewallForInteriorTransition) { num = num2; } } CellData val = d.data.cellData[ix + 1][iy]; CellData val2 = d.data.cellData[ix - 1][iy]; if (current.cellVisualData.faceWallOverrideIndex != -1) { List dependencies = d2.tileIndices.dungeonCollection.GetDependencies(current.cellVisualData.faceWallOverrideIndex); if (dependencies != null && dependencies.Count > 0 && current.IsUpperFacewall()) { foreach (IndexNeighborDependency item in dependencies) { if ((int)item.neighborDirection == 0) { d.data.cellData[ix][iy + 1].cellVisualData.UsesCustomIndexOverride01 = true; d.data.cellData[ix][iy + 1].cellVisualData.CustomIndexOverride01 = item.neighborIndex; d.data.cellData[ix][iy + 1].cellVisualData.CustomIndexOverride01Layer = GlobalDungeonData.borderLayerIndex; } } } map.Layers[GlobalDungeonData.collisionLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, current.cellVisualData.faceWallOverrideIndex); } else { if ((int)current.diagonalWallType != 0) { int index = -1; if ((int)current.diagonalWallType == 1) { if ((int)wallType == 2) { GetMetadataFromTupleArray(current, m_metadataLookupTable[(TilesetFlagType)1024], num, out index); map.Layers[GlobalDungeonData.collisionLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, index); } else if ((int)wallType == 1) { GetMetadataFromTupleArray(current, m_metadataLookupTable[(TilesetFlagType)256], num, out index); map.Layers[GlobalDungeonData.collisionLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, index); GetMetadataFromTupleArray(current, m_metadataLookupTable[(TilesetFlagType)4096], num, out index); map.Layers[GlobalDungeonData.collisionLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y + 1, index); } } else if ((int)current.diagonalWallType == 4) { if ((int)wallType == 2) { GetMetadataFromTupleArray(current, m_metadataLookupTable[(TilesetFlagType)2048], num, out index); map.Layers[GlobalDungeonData.collisionLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, index); } else if ((int)wallType == 1) { GetMetadataFromTupleArray(current, m_metadataLookupTable[(TilesetFlagType)512], num, out index); map.Layers[GlobalDungeonData.collisionLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, index); GetMetadataFromTupleArray(current, m_metadataLookupTable[(TilesetFlagType)8192], num, out index); map.Layers[GlobalDungeonData.collisionLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y + 1, index); } } else { Debug.LogError((object)"Attempting to stamp a facewall tile on a non-facewall diagonal type."); } if ((int)wallType == 2) { if ((int)current.diagonalWallType == 1) { AssignSpecificColorsToTile(current.positionInTilemap.x, current.positionInTilemap.y, GlobalDungeonData.collisionLayerIndex, Color32.op_Implicit(new Color(0f, 0f, 1f)), Color32.op_Implicit(new Color(0f, 0f, 1f)), Color32.op_Implicit(new Color(0f, 0f, 1f)), Color32.op_Implicit(new Color(0f, 0.5f, 1f)), map); } else if ((int)current.diagonalWallType == 4) { AssignSpecificColorsToTile(current.positionInTilemap.x, current.positionInTilemap.y, GlobalDungeonData.collisionLayerIndex, Color32.op_Implicit(new Color(0f, 0f, 1f)), Color32.op_Implicit(new Color(0f, 0f, 1f)), Color32.op_Implicit(new Color(0f, 0.5f, 1f)), Color32.op_Implicit(new Color(0f, 0f, 1f)), map); } } else if ((int)wallType == 1) { if ((int)current.diagonalWallType == 1) { AssignSpecificColorsToTile(current.positionInTilemap.x, current.positionInTilemap.y, GlobalDungeonData.collisionLayerIndex, Color32.op_Implicit(new Color(0f, 0f, 1f)), Color32.op_Implicit(new Color(0f, 0.5f, 1f)), Color32.op_Implicit(new Color(0f, 0.5f, 1f)), Color32.op_Implicit(new Color(0f, 1f, 1f)), map); } else if ((int)current.diagonalWallType == 4) { AssignSpecificColorsToTile(current.positionInTilemap.x, current.positionInTilemap.y, GlobalDungeonData.collisionLayerIndex, Color32.op_Implicit(new Color(0f, 0.5f, 1f)), Color32.op_Implicit(new Color(0f, 0f, 1f)), Color32.op_Implicit(new Color(0f, 1f, 1f)), Color32.op_Implicit(new Color(0f, 0.5f, 1f)), map); } } return; } int index2 = -1; bool flag2 = false; int num3 = 0; while (!flag2 && num3 < 1000) { num3++; flag2 = true; TilesetIndexMetadata metadataFromTupleArray = GetMetadataFromTupleArray(current, m_metadataLookupTable[tileOverrideType], num, out index2); List dependencies2 = d2.tileIndices.dungeonCollection.GetDependencies(index2); if (metadataFromTupleArray != null && dependencies2 != null && dependencies2.Count > 0) { flag2 = ProcessFacewallNeighborMetadata(ix, iy, d, dependencies2, metadataFromTupleArray.preventWallStamping); } } if ((int)d2.tileIndices.tilesetId == 2048 && ((int)tileOverrideType == 32768 || (int)tileOverrideType == 16384 || (int)tileOverrideType == 131072 || (int)tileOverrideType == 65536)) { current.cellVisualData.containsWallSpaceStamp = true; } BraveUtility.Assert(index2 == -1, "FACEWALL INDEX -1, there are no facewalls defined", false); map.Layers[GlobalDungeonData.collisionLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, index2); } if (current.parentRoom == null || (Object)(object)current.parentRoom.area.prototypeRoom == (Object)null || !current.parentRoom.area.prototypeRoom.preventFacewallAO) { if ((int)wallType == 2) { map.Layers[GlobalDungeonData.shadowLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOBottomWallBaseTileIndex); } bool flag3 = (int)val.type == 1 && (int)val.diagonalWallType == 0 && (!d.data.isFaceWallRight(ix, iy) || ((int)wallType == 2 && val.IsUpperFacewall())); bool flag4 = (int)val2.type == 1 && (int)val2.diagonalWallType == 0 && (!d.data.isFaceWallLeft(ix, iy) || ((int)wallType == 2 && val2.IsUpperFacewall())); if (flag4 && flag3) { map.Layers[GlobalDungeonData.shadowLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, ((int)wallType != 2) ? m_tileIndices.aoTileIndices.AOTopFacewallBothIndex : m_tileIndices.aoTileIndices.AOBottomWallTileBothIndex); } else if (flag4) { map.Layers[GlobalDungeonData.shadowLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, ((int)wallType != 2) ? m_tileIndices.aoTileIndices.AOTopFacewallLeftIndex : m_tileIndices.aoTileIndices.AOBottomWallTileLeftIndex); } else if (flag3) { map.Layers[GlobalDungeonData.shadowLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, ((int)wallType != 2) ? m_tileIndices.aoTileIndices.AOTopFacewallRightIndex : m_tileIndices.aoTileIndices.AOBottomWallTileRightIndex); } } if ((int)wallType == 2) { AssignColorGradientToTile(current.positionInTilemap.x, current.positionInTilemap.y, GlobalDungeonData.collisionLayerIndex, Color32.op_Implicit(new Color(0f, 0f, 1f)), Color32.op_Implicit(new Color(0f, 0.5f, 1f)), map); } else { AssignColorGradientToTile(current.positionInTilemap.x, current.positionInTilemap.y, GlobalDungeonData.collisionLayerIndex, Color32.op_Implicit(new Color(0f, 0.5f, 1f)), Color32.op_Implicit(new Color(0f, 1f, 1f)), map); } } private void BuildOcclusionLayerCenterJungle(CellData current, Dungeon d, tk2dTileMap map, int ix, int iy) { if (!IsValidJungleOcclusionCell(current, d, ix, iy)) { return; } bool flag = true; bool flag2 = true; if (!BCheck(d, ix, iy)) { flag = false; flag2 = false; } if (current.UniqueHash < 0.05f) { flag = false; flag2 = false; } for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (!IsValidJungleOcclusionCell(d.data[ix + i, iy + j], d, ix + i, iy + j)) { flag2 = false; if (i < 2 || j < 2) { flag = false; } } if (!flag2 && !flag) { break; } } if (!flag2 && !flag) { break; } } if (flag2 && current.UniqueHash < 0.75f) { map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, 352); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y, 353); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 2, current.positionInTilemap.y, 354); d.data[ix + 1, iy].cellVisualData.occlusionHasBeenProcessed = true; d.data[ix + 2, iy].cellVisualData.occlusionHasBeenProcessed = true; map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y + 1, 330); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y + 1, 331); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 2, current.positionInTilemap.y + 1, 332); d.data[ix, iy + 1].cellVisualData.occlusionHasBeenProcessed = true; d.data[ix + 1, iy + 1].cellVisualData.occlusionHasBeenProcessed = true; d.data[ix + 2, iy + 1].cellVisualData.occlusionHasBeenProcessed = true; map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y + 2, 308); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y + 2, 309); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 2, current.positionInTilemap.y + 2, 310); d.data[ix, iy + 2].cellVisualData.occlusionHasBeenProcessed = true; d.data[ix + 1, iy + 2].cellVisualData.occlusionHasBeenProcessed = true; d.data[ix + 2, iy + 2].cellVisualData.occlusionHasBeenProcessed = true; } else if (flag) { map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, 418); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y, 419); d.data[ix + 1, iy].cellVisualData.occlusionHasBeenProcessed = true; map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y + 1, 396); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y + 1, 397); d.data[ix, iy + 1].cellVisualData.occlusionHasBeenProcessed = true; d.data[ix + 1, iy + 1].cellVisualData.occlusionHasBeenProcessed = true; } else { map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, 374); } d.data[ix, iy].cellVisualData.occlusionHasBeenProcessed = true; } private void BuildBorderLayerCenterJungle(CellData current, Dungeon d, tk2dTileMap map, int ix, int iy) { if (!IsValidJungleBorderCell(current, d, ix, iy)) { return; } bool flag = true; bool flag2 = true; if (!BCheck(d, ix, iy)) { flag = false; flag2 = false; } if (current.UniqueHash < 0.05f) { flag = false; flag2 = false; } for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (!IsValidJungleBorderCell(d.data[ix + i, iy + j], d, ix + i, iy + j)) { flag2 = false; if (i < 2 || j < 2) { flag = false; } } if (!flag2 && !flag) { break; } } if (!flag2 && !flag) { break; } } if (flag2 && current.UniqueHash < 0.75f) { map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, 352); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, 352); map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y, 353); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y, 353); map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x + 2, current.positionInTilemap.y, 354); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 2, current.positionInTilemap.y, 354); d.data[ix + 1, iy].cellVisualData.ceilingHasBeenProcessed = true; d.data[ix + 2, iy].cellVisualData.ceilingHasBeenProcessed = true; map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y + 1, 330); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y + 1, 330); map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y + 1, 331); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y + 1, 331); map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x + 2, current.positionInTilemap.y + 1, 332); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 2, current.positionInTilemap.y + 1, 332); d.data[ix, iy + 1].cellVisualData.ceilingHasBeenProcessed = true; d.data[ix + 1, iy + 1].cellVisualData.ceilingHasBeenProcessed = true; d.data[ix + 2, iy + 1].cellVisualData.ceilingHasBeenProcessed = true; map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y + 2, 308); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y + 2, 308); map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y + 2, 309); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y + 2, 309); map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x + 2, current.positionInTilemap.y + 2, 310); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 2, current.positionInTilemap.y + 2, 310); d.data[ix, iy + 2].cellVisualData.ceilingHasBeenProcessed = true; d.data[ix + 1, iy + 2].cellVisualData.ceilingHasBeenProcessed = true; d.data[ix + 2, iy + 2].cellVisualData.ceilingHasBeenProcessed = true; } else if (flag) { map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, 418); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, 418); map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y, 419); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y, 419); d.data[ix + 1, iy].cellVisualData.ceilingHasBeenProcessed = true; map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y + 1, 396); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y + 1, 396); map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y + 1, 397); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x + 1, current.positionInTilemap.y + 1, 397); d.data[ix, iy + 1].cellVisualData.ceilingHasBeenProcessed = true; d.data[ix + 1, iy + 1].cellVisualData.ceilingHasBeenProcessed = true; } else { map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, 374); map.Layers[GlobalDungeonData.occlusionPartitionIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, 374); } d.data[ix, iy].cellVisualData.ceilingHasBeenProcessed = true; } private bool IsValidJungleBorderCell(CellData current, Dungeon d, int ix, int iy) { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Invalid comparison between Unknown and I4 bool result = false; try { result = !current.cellVisualData.ceilingHasBeenProcessed && !IsCardinalBorder(current, d, ix, iy) && (int)current.type == 1 && (iy < 2 || !d.data.isFaceWallLower(ix, iy)) && !d.data.isTopDiagonalWall(ix, iy); } catch (Exception ex) { if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Excpetion caught in ExpandTK2DDungeonAssembler.IsValidJungleBorderCell!"); Debug.LogException(ex); } } return result; } private bool IsValidJungleOcclusionCell(CellData current, Dungeon d, int ix, int iy) { //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Invalid comparison between Unknown and I4 bool result = false; try { result = BCheck(d, ix, iy, 1) && !current.cellVisualData.ceilingHasBeenProcessed && !current.cellVisualData.occlusionHasBeenProcessed && ((int)current.type != 1 || IsCardinalBorder(current, d, ix, iy) || (iy > 2 && (d.data.isFaceWallLower(ix, iy) || d.data.isFaceWallHigher(ix, iy)))); } catch (Exception ex) { if (ExpandSettings.debugMode) { Debug.Log((object)"[ExpandTheGungeon] Excpetion caught in ExpandTK2DDungeonAssembler.IsValidJungleOcclusionCell!"); Debug.LogException(ex); } } return result; } private RoomInternalMaterialTransition GetMaterialTransitionFromSubtypes(Dungeon d, int roomType, int cellType) { if (!d.roomMaterialDefinitions[roomType].usesInternalMaterialTransitions) { return null; } if (roomType == cellType) { return null; } RoomInternalMaterialTransition[] internalMaterialTransitions = d.roomMaterialDefinitions[roomType].internalMaterialTransitions; foreach (RoomInternalMaterialTransition val in internalMaterialTransitions) { if (val.materialTransition == cellType) { return val; } } return null; } private void BuildShadowIndex(CellData current, Dungeon d, tk2dTileMap map, int ix, int iy) { //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Invalid comparison between Unknown and I4 //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Invalid comparison between Unknown and I4 //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Invalid comparison between Unknown and I4 //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Invalid comparison between Unknown and I4 //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Invalid comparison between Unknown and I4 //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Invalid comparison between Unknown and I4 //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Invalid comparison between Unknown and I4 //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Invalid comparison between Unknown and I4 //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Invalid comparison between Unknown and I4 //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_0268: Unknown result type (might be due to invalid IL or missing references) //IL_026e: Invalid comparison between Unknown and I4 //IL_030b: Unknown result type (might be due to invalid IL or missing references) //IL_0311: Invalid comparison between Unknown and I4 //IL_0274: Unknown result type (might be due to invalid IL or missing references) //IL_027a: Invalid comparison between Unknown and I4 //IL_0317: Unknown result type (might be due to invalid IL or missing references) //IL_031d: Invalid comparison between Unknown and I4 if (!BCheck(d, ix, iy, -2)) { return; } CellData val = d.data.cellData[ix - 1][iy]; CellData val2 = d.data.cellData[ix + 1][iy]; CellData val3 = d.data.cellData[ix][iy + 1]; CellData val4 = d.data.cellData[ix + 1][iy + 1]; CellData val5 = d.data.cellData[ix - 1][iy + 1]; bool flag = (int)val.type == 1 && (int)val.diagonalWallType == 0; bool flag2 = (int)val2.type == 1 && (int)val2.diagonalWallType == 0; bool flag3 = (int)val3.type == 1; bool flag4 = (int)val4.type == 1 && (int)val4.diagonalWallType == 0; bool flag5 = (int)val5.type == 1 && (int)val5.diagonalWallType == 0; if (current.parentRoom != null && (Object)(object)current.parentRoom.area.prototypeRoom != (Object)null && current.parentRoom.area.prototypeRoom.preventFacewallAO) { flag3 = false; flag4 = false; flag5 = false; } bool flag6 = val3.isSecretRoomCell != current.isSecretRoomCell; if ((int)val3.diagonalWallType == 0) { if (flag3 && flag && !flag2) { map.Layers[GlobalDungeonData.shadowLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOFloorWallUpAndLeft); } else if (flag3 && flag2 && !flag) { map.Layers[GlobalDungeonData.shadowLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOFloorWallUpAndRight); } else if (flag3 && flag && flag2) { map.Layers[GlobalDungeonData.shadowLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOFloorWallUpAndBoth); } else if (flag3 && !flag && !flag2) { map.Layers[GlobalDungeonData.shadowLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOFloorTileIndex); } } else if ((int)val3.diagonalWallType == 1 && (int)val3.type == 1) { map.Layers[GlobalDungeonData.shadowLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y + 1, m_tileIndices.aoTileIndices.AOFloorDiagonalWallNortheast); map.Layers[GlobalDungeonData.shadowLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, (!flag2) ? m_tileIndices.aoTileIndices.AOFloorDiagonalWallNortheastLower : m_tileIndices.aoTileIndices.AOFloorDiagonalWallNortheastLowerJoint); } else if ((int)val3.diagonalWallType == 4 && (int)val3.type == 1) { map.Layers[GlobalDungeonData.shadowLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y + 1, m_tileIndices.aoTileIndices.AOFloorDiagonalWallNorthwest); map.Layers[GlobalDungeonData.shadowLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, (!flag) ? m_tileIndices.aoTileIndices.AOFloorDiagonalWallNorthwestLower : m_tileIndices.aoTileIndices.AOFloorDiagonalWallNorthwestLowerJoint); } if (!flag3) { bool flag7 = flag && !d.data.isTopWall(ix - 1, iy + 1); bool flag8 = flag2 && !d.data.isTopWall(ix + 1, iy + 1); if (flag7 && flag8) { map.Layers[GlobalDungeonData.shadowLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOFloorWallBoth); } else if (flag7) { map.Layers[GlobalDungeonData.shadowLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOFloorWallLeft); } else if (flag8) { map.Layers[GlobalDungeonData.shadowLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOFloorWallRight); } } if (!flag3 && flag5 && !flag6 && !flag && !flag2 && !flag4) { map.Layers[GlobalDungeonData.shadowLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOFloorPizzaSliceLeft); } else if (!flag3 && !flag5 && !flag && !flag2 && flag4 && !flag6) { map.Layers[GlobalDungeonData.shadowLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOFloorPizzaSliceRight); } else if (!flag3 && flag5 && !flag6 && !flag2 && !flag && flag4 && !flag6) { map.Layers[GlobalDungeonData.shadowLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOFloorPizzaSliceBoth); } else if (!flag3 && flag5 && !flag6 && !flag && flag2) { map.Layers[GlobalDungeonData.shadowLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOFloorPizzaSliceLeftWallRight); } else if (!flag3 && flag && !flag2 && flag4 && !flag6) { map.Layers[GlobalDungeonData.shadowLayerIndex].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, m_tileIndices.aoTileIndices.AOFloorPizzaSliceRightWallLeft); } } private TileIndexVariant GetIndexFromTileArray(CellData current, List list) { float uniqueHash = current.UniqueHash; float num = 0f; foreach (TileIndexVariant item in list) { num += item.likelihood; } float num2 = uniqueHash * num; foreach (TileIndexVariant item2 in list) { num2 -= item2.likelihood; if (num2 <= 0f) { return item2; } } return list[0]; } private int GetIndexFromTupleArray(CellData current, List> list, int roomTypeIndex) { float uniqueHash = current.UniqueHash; float num = 0f; foreach (Tuple item in list) { if (item.Second.dungeonRoomSubType == roomTypeIndex || item.Second.secondRoomSubType == roomTypeIndex || item.Second.thirdRoomSubType == roomTypeIndex) { num += item.Second.weight; } } float num2 = uniqueHash * num; foreach (Tuple item2 in list) { if (item2.Second.dungeonRoomSubType == roomTypeIndex || item2.Second.secondRoomSubType == roomTypeIndex || item2.Second.thirdRoomSubType == roomTypeIndex) { num2 -= item2.Second.weight; if (num2 <= 0f) { return item2.First; } } } return list[0].First; } private TilesetIndexMetadata GetMetadataFromTupleArray(CellData current, List> list, int roomTypeIndex, out int index) { if (list == null) { index = -1; return null; } float num = 0f; foreach (Tuple item in list) { if (item.Second.dungeonRoomSubType == -1 || item.Second.dungeonRoomSubType == roomTypeIndex || item.Second.secondRoomSubType == roomTypeIndex || item.Second.thirdRoomSubType == roomTypeIndex) { num += item.Second.weight; } } float num2 = Random.value * num; foreach (Tuple item2 in list) { if (item2.Second.dungeonRoomSubType == -1 || item2.Second.dungeonRoomSubType == roomTypeIndex || item2.Second.secondRoomSubType == roomTypeIndex || item2.Second.thirdRoomSubType == roomTypeIndex) { num2 -= item2.Second.weight; if (num2 <= 0f) { index = item2.First; return item2.Second; } } } index = list[0].First; return list[0].Second; } public void ClearData(tk2dTileMap map) { for (int i = 0; i < map.Layers.Length; i++) { map.DeleteSprites(i, 0, 0, map.width - 1, map.height - 1); } } public void ClearTileIndicesForCell(Dungeon d, tk2dTileMap map, int ix, int iy) { //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) CellData val = ((!d.data.CheckInBoundsAndValid(ix, iy)) ? null : d.data[ix, iy]); int num = val?.positionInTilemap.x ?? ix; int num2 = val?.positionInTilemap.y ?? iy; for (int i = 0; i < map.Layers.Length; i++) { map.Layers[i].SetTile(num, num2, -1); } if (!TK2DTilemapChunkAnimator.PositionToAnimatorMap.ContainsKey(val.positionInTilemap)) { return; } for (int j = 0; j < TK2DTilemapChunkAnimator.PositionToAnimatorMap[val.positionInTilemap].Count; j++) { TilemapAnimatorTileManager val2 = TK2DTilemapChunkAnimator.PositionToAnimatorMap[val.positionInTilemap][j]; if (Object.op_Implicit((Object)(object)val2.animator)) { TK2DTilemapChunkAnimator.PositionToAnimatorMap[val.positionInTilemap].RemoveAt(j); j--; Object.Destroy((Object)(object)((Component)val2.animator).gameObject); val2.animator = null; } } } private bool CheckLostWoodsCellValidity(Dungeon d, IntVector2 p1, IntVector2 p2) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_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) CellData val = d.data[p1]; CellData val2 = d.data[p2]; if (val != null && val2 != null && val2.isExitCell == val.isExitCell && val2.IsAnyFaceWall() == val.IsAnyFaceWall() && val2.IsTopWall() == val.IsTopWall()) { return val2.type == val.type; } return false; } private void HandleLostWoodsMirroring(CellData current, Dungeon d, tk2dTileMap map, int ix, int iy) { //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_011a: 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_0126: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0157: 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_0165: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_018f: Unknown result type (might be due to invalid IL or missing references) //IL_0196: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Unknown result type (might be due to invalid IL or missing references) RoomHandler nearestRoom = current.nearestRoom; IntVector2 val = default(IntVector2); ((IntVector2)(ref val))..ctor(ix - current.nearestRoom.area.basePosition.x, iy - current.nearestRoom.area.basePosition.y); foreach (RoomHandler room in d.data.rooms) { if (room == nearestRoom || !room.area.PrototypeLostWoodsRoom) { continue; } CellData val2 = d.data[val + room.area.basePosition]; if (val2 != null && current != null && val2.isExitCell == current.isExitCell && val2.IsAnyFaceWall() == current.IsAnyFaceWall() && val2.IsTopWall() == current.IsTopWall() && val2.type == current.type && CheckLostWoodsCellValidity(d, current.position + new IntVector2(0, 1), val2.position + new IntVector2(0, 1)) && CheckLostWoodsCellValidity(d, current.position + new IntVector2(0, -1), val2.position + new IntVector2(0, -1)) && CheckLostWoodsCellValidity(d, current.position + new IntVector2(1, 0), val2.position + new IntVector2(1, 0)) && CheckLostWoodsCellValidity(d, current.position + new IntVector2(-1, 0), val2.position + new IntVector2(-1, 0)) && !val2.cellVisualData.hasAlreadyBeenTilemapped) { val2.cellVisualData.hasAlreadyBeenTilemapped = true; for (int i = 0; i < map.Layers.Length; i++) { map.Layers[i].SetTile(val2.positionInTilemap.x, val2.positionInTilemap.y, map.Layers[i].GetTile(current.positionInTilemap.x, current.positionInTilemap.y)); } } } } private void AssignSpecificColorsToTile(int ix, int iy, int layer, Color32 bottomLeft, Color32 bottomRight, Color32 topLeft, Color32 topRight, tk2dTileMap map) { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_002f: 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_0033: Unknown result type (might be due to invalid IL or missing references) if (!map.HasColorChannel()) { map.CreateColorChannel(); } ColorChannel colorChannel = map.ColorChannel; map.data.Layers[layer].useColor = true; colorChannel.SetTileColorGradient(ix, iy, bottomLeft, bottomRight, topLeft, topRight); } private void AssignColorGradientToTile(int ix, int iy, int layer, Color32 bottom, Color32 top, tk2dTileMap map) { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_002f: 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_0033: Unknown result type (might be due to invalid IL or missing references) if (!map.HasColorChannel()) { map.CreateColorChannel(); } ColorChannel colorChannel = map.ColorChannel; map.data.Layers[layer].useColor = true; colorChannel.SetTileColorGradient(ix, iy, bottom, bottom, top, top); } private void AssignColorOverrideToTile(int ix, int iy, int layer, Color32 color, tk2dTileMap map) { //IL_002d: Unknown result type (might be due to invalid IL or missing references) if (!map.HasColorChannel()) { map.CreateColorChannel(); } ColorChannel colorChannel = map.ColorChannel; map.data.Layers[layer].useColor = true; colorChannel.SetTileColorOverride(ix, iy, color); } private void ClearAllIndices(CellData current, Dungeon d, tk2dTileMap map, int ix, int iy) { for (int i = 0; i < map.Layers.Length; i++) { map.Layers[i].SetTile(current.positionInTilemap.x, current.positionInTilemap.y, -1); } } private bool CheckHasValidFloorGridForRoomSubType(List indexGrids, int roomType) { foreach (TileIndexGrid indexGrid in indexGrids) { if (indexGrid.roomTypeRestriction == -1 || indexGrid.roomTypeRestriction == roomType) { return true; } } return false; } private int GetCeilingCenterIndex(CellData current, TileIndexGrid gridToUse) { if (gridToUse.CeilingBorderUsesDistancedCenters) { int count = gridToUse.centerIndices.indices.Count; int index = Mathf.Max(0, Mathf.Min(Mathf.FloorToInt(current.distanceFromNearestRoom) - 1, count - 1)); return gridToUse.centerIndices.indices[index]; } return gridToUse.centerIndices.GetIndexByWeight(); } private bool IsCardinalBorder(CellData current, Dungeon d, int ix, int iy) { bool num = d.data.isTopWall(ix, iy) && !d.data[ix, iy + 1].cellVisualData.shouldIgnoreBorders; bool flag = ((!d.data.isWallRight(ix, iy) && !d.data.isRightTopWall(ix, iy)) || d.data.isFaceWallHigher(ix + 1, iy) || d.data.isFaceWallLower(ix + 1, iy)) && !d.data[ix + 1, iy].cellVisualData.shouldIgnoreBorders; bool flag2 = iy > 3 && d.data.isFaceWallHigher(ix, iy - 1) && !d.data[ix, iy - 1].cellVisualData.shouldIgnoreBorders; bool flag3 = ((!d.data.isWallLeft(ix, iy) && !d.data.isLeftTopWall(ix, iy)) || d.data.isFaceWallHigher(ix - 1, iy) || d.data.isFaceWallLower(ix - 1, iy)) && !d.data[ix - 1, iy].cellVisualData.shouldIgnoreBorders; return num || flag || flag2 || flag3; } private bool IsBorderCell(Dungeon d, int ix, int iy) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Invalid comparison between Unknown and I4 //IL_00a2: 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_008a: Invalid comparison between Unknown and I4 //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Invalid comparison between Unknown and I4 //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Invalid comparison between Unknown and I4 bool num = (int)d.data[ix, iy + 1].diagonalWallType != 0 && (d.data[ix, iy + 1].IsTopWall() || (int)d.data[ix, iy + 1].type == 1); bool flag = (int)d.data[ix + 1, iy].diagonalWallType != 0 && (d.data[ix + 1, iy].IsTopWall() || (int)d.data[ix + 1, iy].type == 1); bool flag2 = (int)d.data[ix, iy - 1].diagonalWallType != 0 && (d.data[ix, iy - 1].IsTopWall() || (int)d.data[ix, iy - 1].type == 1); bool flag3 = (int)d.data[ix - 1, iy].diagonalWallType != 0 && (d.data[ix - 1, iy].IsTopWall() || (int)d.data[ix - 1, iy].type == 1); bool flag4 = d.data.isTopWall(ix, iy) && !d.data[ix, iy + 1].cellVisualData.shouldIgnoreBorders; bool flag5 = ((!d.data.isWallRight(ix, iy) && !d.data.isRightTopWall(ix, iy)) || d.data.isFaceWallHigher(ix + 1, iy) || d.data.isFaceWallLower(ix + 1, iy)) && !d.data[ix + 1, iy].cellVisualData.shouldIgnoreBorders; bool flag6 = iy > 3 && d.data.isFaceWallHigher(ix, iy - 1) && !d.data[ix, iy - 1].cellVisualData.shouldIgnoreBorders; bool flag7 = ((!d.data.isWallLeft(ix, iy) && !d.data.isLeftTopWall(ix, iy)) || d.data.isFaceWallHigher(ix - 1, iy) || d.data.isFaceWallLower(ix - 1, iy)) && !d.data[ix - 1, iy].cellVisualData.shouldIgnoreBorders; bool flag8 = (!num || !flag) && d.data.isTopWall(ix + 1, iy) && !d.data.isTopWall(ix, iy) && (d.data.isWall(ix, iy + 1) || d.data.isTopWall(ix, iy + 1)) && !d.data[ix + 1, iy + 1].cellVisualData.shouldIgnoreBorders; bool flag9 = (!num || !flag3) && d.data.isTopWall(ix - 1, iy) && !d.data.isTopWall(ix, iy) && (d.data.isWall(ix, iy + 1) || d.data.isTopWall(ix, iy + 1)) && !d.data[ix - 1, iy + 1].cellVisualData.shouldIgnoreBorders; bool flag10 = (!flag2 || !flag) && iy > 3 && d.data.isFaceWallHigher(ix + 1, iy - 1) && !d.data.isFaceWallHigher(ix, iy - 1) && !d.data[ix + 1, iy - 1].cellVisualData.shouldIgnoreBorders; bool flag11 = (!flag2 || !flag3) && iy > 3 && d.data.isFaceWallHigher(ix - 1, iy - 1) && !d.data.isFaceWallHigher(ix, iy - 1) && !d.data[ix - 1, iy - 1].cellVisualData.shouldIgnoreBorders; return flag4 || flag5 || flag7 || flag6 || flag8 || flag9 || flag10 || flag11; } private void HandleRatChunkOverhangs(Dungeon d, int ix, int iy, tk2dTileMap map) { bool flag = IsBorderCell(d, ix, iy + 1); bool flag2 = IsBorderCell(d, ix + 1, iy); bool flag3 = IsBorderCell(d, ix, iy - 1); bool flag4 = IsBorderCell(d, ix - 1, iy); if ((flag && flag2) || (flag2 && flag3) || (flag3 && flag4) || (flag4 && flag)) { if (!flag) { map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(d.data[ix, iy + 1].positionInTilemap.x, d.data[ix, iy + 1].positionInTilemap.y, 312); d.data[ix, iy + 1].cellVisualData.ceilingHasBeenProcessed = true; } if (!flag2) { map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(d.data[ix + 1, iy].positionInTilemap.x, d.data[ix + 1, iy].positionInTilemap.y, 315); d.data[ix + 1, iy].cellVisualData.ceilingHasBeenProcessed = true; } if (!flag3) { map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(d.data[ix, iy - 1].positionInTilemap.x, d.data[ix, iy - 1].positionInTilemap.y, 313); } if (!flag4) { map.Layers[GlobalDungeonData.borderLayerIndex].SetTile(d.data[ix - 1, iy].positionInTilemap.x, d.data[ix - 1, iy].positionInTilemap.y, 314); } } } private bool ProcessFacewallNeighborMetadata(int ix, int iy, Dungeon d, List neighborDependencies, bool preventWallStamping = false) { //IL_005c: 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_006d: Unknown result type (might be due to invalid IL or missing references) bool flag = d.data.isFaceWallLower(ix, iy); CellData val = d.data[ix, iy]; val.cellVisualData.containsWallSpaceStamp = val.cellVisualData.containsWallSpaceStamp || preventWallStamping; bool flag2 = true; List list = new List(); foreach (IndexNeighborDependency neighborDependency in neighborDependencies) { CellData val2 = d.data[new IntVector2(ix, iy) + DungeonData.GetIntVector2FromDirection(neighborDependency.neighborDirection)]; if (val2.cellVisualData.faceWallOverrideIndex != -1 || !val2.IsAnyFaceWall()) { flag2 = false; break; } if (val2.cellVisualData.roomVisualTypeIndex != d.data.cellData[ix][iy].cellVisualData.roomVisualTypeIndex) { flag2 = false; break; } if (val2.position.y == iy && d.data.isFaceWallLower(val2.position.x, val2.position.y) != flag) { flag2 = false; break; } list.Add(val2); CellData val3 = val2; val3.cellVisualData.containsWallSpaceStamp = val3.cellVisualData.containsWallSpaceStamp || preventWallStamping; val2.cellVisualData.faceWallOverrideIndex = neighborDependency.neighborIndex; } if (!flag2) { foreach (CellData item in list) { item.cellVisualData.faceWallOverrideIndex = -1; } } return flag2; } private bool FaceWallTypesMatch(CellData c1, CellData c2) { if (!c1.IsLowerFaceWall() || !c2.IsLowerFaceWall()) { if (c1.IsUpperFacewall()) { return c2.IsUpperFacewall(); } return false; } return true; } private bool IsNorthernmostColumnarFacewall(CellData current, Dungeon d, int ix, int iy) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Invalid comparison between Unknown and I4 for (CellData val = d.data[ix, iy + 1]; val != null; val = d.data[val.position.x, val.position.y + 1]) { if (val.nearestRoom != current.nearestRoom) { return true; } if ((int)val.type == 2) { return false; } if (!d.data.CheckInBounds(val.position.x, val.position.y + 1)) { return true; } } return true; } private int FindValidFacewallExpanse(int ix, int iy, Dungeon d, FacewallIndexGridDefinition gridDefinition) { int num = 0; int roomVisualTypeIndex = d.data[ix, iy].cellVisualData.roomVisualTypeIndex; while (d.data.isFaceWallLower(ix, iy) && d.data[ix, iy].cellVisualData.faceWallOverrideIndex == -1 && d.data[ix, iy].cellVisualData.roomVisualTypeIndex == roomVisualTypeIndex) { bool flag = !d.data.isFaceWallLeft(ix, iy) || !d.data.isFaceWallRight(ix, iy); if ((!gridDefinition.canExistInCorners && flag) || (d.data[ix, iy - 2].isExitCell && !gridDefinition.canBePlacedInExits)) { break; } ix++; num++; if (num >= gridDefinition.maxWidth || (num > gridDefinition.minWidth && Random.value < gridDefinition.perTileFailureRate)) { break; } } return num; } private bool AssignFacewallGrid(CellData current, Dungeon d, tk2dTileMap map, int ix, int iy, FacewallIndexGridDefinition gridDefinition) { //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_02bb: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Unknown result type (might be due to invalid IL or missing references) //IL_02ce: Unknown result type (might be due to invalid IL or missing references) //IL_02d3: Unknown result type (might be due to invalid IL or missing references) int num = FindValidFacewallExpanse(ix, iy, d, gridDefinition); if (num < gridDefinition.minWidth) { return false; } TileIndexGrid grid = gridDefinition.grid; int num2 = 0; int num3 = num; int num4 = num3; int num5 = 0; if (gridDefinition.hasIntermediaries) { num4 = Random.Range(gridDefinition.minIntermediaryBuffer, gridDefinition.maxIntermediaryBuffer + 1); } bool flag = true; int num6 = 0; while (num3 > 0) { CellData val = d.data[ix + num2, iy]; CellData val2 = d.data[ix + num2, iy + 1]; if (num5 > 0) { num5--; val.cellVisualData.faceWallOverrideIndex = grid.doubleNubsBottom.GetIndexByWeight(); val2.cellVisualData.faceWallOverrideIndex = grid.doubleNubsTop.GetIndexByWeight(); if (num5 == 0) { flag = true; num4 = Random.Range(gridDefinition.minIntermediaryBuffer, gridDefinition.maxIntermediaryBuffer + 1); } } else { bool flag2 = false; BraveUtility.DrawDebugSquare(((IntVector2)(ref val.position)).ToVector2(), Color.blue, 1000f); num4--; if (num4 <= 0) { if (gridDefinition.hasIntermediaries) { num5 = Random.Range(gridDefinition.minIntermediaryLength, gridDefinition.maxIntermediaryLength + 1); } flag2 = true; } if (flag) { val.cellVisualData.faceWallOverrideIndex = grid.bottomLeftIndices.GetIndexByWeight(); val2.cellVisualData.faceWallOverrideIndex = grid.topLeftIndices.GetIndexByWeight(); val.cellVisualData.containsWallSpaceStamp = true; val2.cellVisualData.containsWallSpaceStamp = true; } else if (flag2 || num3 == 1) { val.cellVisualData.faceWallOverrideIndex = grid.bottomRightIndices.GetIndexByWeight(); val2.cellVisualData.faceWallOverrideIndex = grid.topRightIndices.GetIndexByWeight(); val.cellVisualData.containsWallSpaceStamp = true; val2.cellVisualData.containsWallSpaceStamp = true; if (flag2 && num5 == 0) { num4 = Random.Range(gridDefinition.minIntermediaryBuffer, gridDefinition.maxIntermediaryBuffer + 1); } } else { val.cellVisualData.faceWallOverrideIndex = ((!gridDefinition.middleSectionSequential) ? grid.bottomIndices.GetIndexByWeight() : grid.bottomIndices.indices[num6]); if (gridDefinition.topsMatchBottoms) { val2.cellVisualData.faceWallOverrideIndex = grid.topIndices.indices[grid.bottomIndices.GetIndexOfIndex(val.cellVisualData.faceWallOverrideIndex)]; } else { val2.cellVisualData.faceWallOverrideIndex = ((!gridDefinition.middleSectionSequential) ? grid.topIndices.GetIndexByWeight() : grid.topIndices.indices[num6]); } num6 = (num6 + 1) % grid.bottomIndices.indices.Count; val.cellVisualData.forcedMatchingStyle = gridDefinition.forcedStampMatchingStyle; val2.cellVisualData.forcedMatchingStyle = gridDefinition.forcedStampMatchingStyle; } flag = false; val.cellVisualData.containsObjectSpaceStamp = val.cellVisualData.containsObjectSpaceStamp || !gridDefinition.canAcceptFloorDecoration; val2.cellVisualData.containsObjectSpaceStamp = val2.cellVisualData.containsObjectSpaceStamp || !gridDefinition.canAcceptFloorDecoration; val.cellVisualData.facewallGridPreventsWallSpaceStamp = !gridDefinition.canAcceptWallDecoration; val2.cellVisualData.facewallGridPreventsWallSpaceStamp = !gridDefinition.canAcceptWallDecoration; val.cellVisualData.containsWallSpaceStamp = val.cellVisualData.containsWallSpaceStamp || !gridDefinition.canAcceptWallDecoration; val2.cellVisualData.containsWallSpaceStamp = val2.cellVisualData.containsWallSpaceStamp || !gridDefinition.canAcceptWallDecoration; } num2++; num3--; } return true; } private void HandlePitTilePlacement(CellData cell, TileIndexGrid pitGrid, Layer tileMapLayer, Dungeon d) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Invalid comparison between Unknown and I4 //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Invalid comparison between Unknown and I4 //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Invalid comparison between Unknown and I4 //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Invalid comparison between Unknown and I4 //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Invalid comparison between Unknown and I4 //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Invalid comparison between Unknown and I4 //IL_057a: Unknown result type (might be due to invalid IL or missing references) //IL_057f: Unknown result type (might be due to invalid IL or missing references) //IL_0598: Unknown result type (might be due to invalid IL or missing references) //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_030f: Unknown result type (might be due to invalid IL or missing references) //IL_0315: Invalid comparison between Unknown and I4 //IL_0368: Unknown result type (might be due to invalid IL or missing references) //IL_036e: Invalid comparison between Unknown and I4 //IL_03c1: Unknown result type (might be due to invalid IL or missing references) //IL_03c7: Invalid comparison between Unknown and I4 //IL_041a: Unknown result type (might be due to invalid IL or missing references) //IL_0420: Invalid comparison between Unknown and I4 if ((Object)(object)pitGrid == (Object)null) { return; } List cellNeighbors = d.data.GetCellNeighbors(cell, false); bool flag = cellNeighbors[0] != null && (int)cellNeighbors[0].type == 4; bool flag2 = cellNeighbors[1] != null && (int)cellNeighbors[1].type == 4; bool flag3 = cellNeighbors[2] != null && (int)cellNeighbors[2].type == 4; bool flag4 = cellNeighbors[3] != null && (int)cellNeighbors[3].type == 4; bool flag5 = BCheck(d, cell.position.x, cell.position.y + 2) && (int)d.data.cellData[cell.position.x][cell.position.y + 2].type == 4; bool flag6 = BCheck(d, cell.position.x, cell.position.y + 3) && (int)d.data.cellData[cell.position.x][cell.position.y + 3].type == 4; if (cell.cellVisualData.pitOverrideIndex > -1) { tileMapLayer.SetTile(cell.positionInTilemap.x, cell.positionInTilemap.y, cell.cellVisualData.pitOverrideIndex); } else { if (d.debugSettings.WALLS_ARE_PITS) { if (cellNeighbors[2] != null && cellNeighbors[2].isExitCell) { flag3 = true; } if (cellNeighbors[0] != null && cellNeighbors[0].isExitCell) { flag = true; } if (BCheck(d, cell.position.x, cell.position.y + 2) && d.data.cellData[cell.position.x][cell.position.y + 2].isExitCell) { flag5 = true; } if (BCheck(d, cell.position.x, cell.position.y + 3) && d.data.cellData[cell.position.x][cell.position.y + 3].isExitCell) { flag6 = true; } } int num = pitGrid.GetIndexGivenSides(!flag, !flag5, !flag6, !flag2, !flag3, !flag4); if (pitGrid.PitInternalSquareGrids.Count > 0 && Random.value < pitGrid.PitInternalSquareOptions.PitSquareChance && (pitGrid.PitInternalSquareOptions.CanBeFlushLeft || flag4) && (pitGrid.PitInternalSquareOptions.CanBeFlushBottom || flag3) && flag2 && flag && flag5 && flag6) { bool flag7 = BCheck(d, cell.position.x + 2, cell.position.y) && (int)d.data.cellData[cell.position.x + 2][cell.position.y].type == 4; bool flag8 = BCheck(d, cell.position.x + 1, cell.position.y + 1) && (int)d.data.cellData[cell.position.x + 1][cell.position.y + 1].type == 4; bool flag9 = BCheck(d, cell.position.x + 1, cell.position.y + 2) && (int)d.data.cellData[cell.position.x + 1][cell.position.y + 2].type == 4; bool flag10 = BCheck(d, cell.position.x + 1, cell.position.y + 3) && (int)d.data.cellData[cell.position.x + 1][cell.position.y + 3].type == 4; if ((pitGrid.PitInternalSquareOptions.CanBeFlushRight || flag7) && flag8 && flag10 && flag9) { TileIndexGrid val = pitGrid.PitInternalSquareGrids[Random.Range(0, pitGrid.PitInternalSquareGrids.Count)]; num = val.bottomLeftIndices.GetIndexByWeight(); d.data.cellData[cell.position.x + 1][cell.position.y].cellVisualData.pitOverrideIndex = val.bottomRightIndices.GetIndexByWeight(); d.data.cellData[cell.position.x][cell.position.y + 1].cellVisualData.pitOverrideIndex = val.topLeftIndices.GetIndexByWeight(); d.data.cellData[cell.position.x + 1][cell.position.y + 1].cellVisualData.pitOverrideIndex = val.topRightIndices.GetIndexByWeight(); } } tileMapLayer.SetTile(cell.positionInTilemap.x, cell.positionInTilemap.y, num); } if (flag && !flag5) { AssignColorGradientToTile(cell.positionInTilemap.x, cell.positionInTilemap.y, GlobalDungeonData.pitLayerIndex, Color32.op_Implicit(new Color(1f, 1f, 1f, 1f)), Color32.op_Implicit(new Color(0f, 0f, 0f, 1f)), GameManager.Instance.Dungeon.MainTilemap); } } } public class ExpandTK2DInteriorDecorator { protected class ViableStampCategorySet { public StampCategory category; public StampPlacementRule placement; public StampSpace space; public ViableStampCategorySet(StampCategory c, StampPlacementRule p, StampSpace s) { //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_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: 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) //IL_0016: Unknown result type (might be due to invalid IL or missing references) category = c; placement = p; space = s; } public override int GetHashCode() { return 1597 * ((object)(StampCategory)(ref category)).GetHashCode() + 5347 * ((object)(StampPlacementRule)(ref placement)).GetHashCode() + 13 * ((object)(StampSpace)(ref space)).GetHashCode(); } public override bool Equals(object obj) { //IL_0010: 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_001e: 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_002c: 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) if (obj is ViableStampCategorySet) { ViableStampCategorySet viableStampCategorySet = obj as ViableStampCategorySet; if (viableStampCategorySet.category == category && viableStampCategorySet.space == space) { return viableStampCategorySet.placement == placement; } return false; } return false; } } public enum DecorateErrorCode { ALL_OK, FAILED_SPACE, FAILED_CHANCE } public struct WallExpanse { public IntVector2 basePosition; public int width; public bool hasMirror; public IntVector2 mirroredExpanseBasePosition; public int mirroredExpanseWidth; public WallExpanse(IntVector2 bp, int w) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: 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_001b: Unknown result type (might be due to invalid IL or missing references) basePosition = bp; width = w; hasMirror = false; mirroredExpanseBasePosition = IntVector2.Zero; mirroredExpanseWidth = 0; } public IntVector2 GetPositionInMirroredExpanse(int basePlacement, int stampWidth) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) return mirroredExpanseBasePosition + mirroredExpanseWidth * IntVector2.Right + (basePlacement + stampWidth) * IntVector2.Left; } } public bool DEBUG_DRAW; private ExpandTK2DDungeonAssembler m_assembler; private Dictionary wallPlacementOffsets; private List viableCategorySets; private List validNorthernPlacements; private List validEasternPlacements; private List validWesternPlacements; private List validSouthernPlacements; private List roomUsedStamps; private List expanseUsedStamps; public ExpandTK2DInteriorDecorator(ExpandTK2DDungeonAssembler assembler) { roomUsedStamps = new List(); expanseUsedStamps = new List(); m_assembler = assembler; DEBUG_DRAW = false; } public static void PlaceLightDecorationForCell(Dungeon d, tk2dTileMap map, CellData currentCell, IntVector2 currentPosition) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Invalid comparison between Unknown and I4 //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Invalid comparison between Unknown and I4 //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Invalid comparison between Unknown and I4 //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Invalid comparison between Unknown and I4 //IL_0045: 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_005c: Invalid comparison between Unknown and I4 //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) if (!currentCell.cellVisualData.containsLight || (int)currentCell.cellVisualData.lightDirection == 4 || (int)currentCell.cellVisualData.lightDirection == -1) { return; } StampPlacementRule val = (StampPlacementRule)0; bool flipX = false; if ((int)currentCell.cellVisualData.lightDirection == 2) { val = (StampPlacementRule)3; flipX = true; } else if ((int)currentCell.cellVisualData.lightDirection == 6) { val = (StampPlacementRule)3; } LightStampData val2 = (((int)val != 3) ? currentCell.cellVisualData.facewallLightStampData : currentCell.cellVisualData.sidewallLightStampData); if (val2 == null) { return; } GameObject val3 = ExpandTK2DDungeonAssembler.ApplyObjectStamp(currentPosition.x, currentPosition.y, (ObjectStampData)(object)val2, d, map, flipX, isLightStamp: true); if (Object.op_Implicit((Object)(object)val3)) { TorchController component = val3.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.Cell = currentCell; } } else { if (!((Object)(object)currentCell.cellVisualData.lightObject != (Object)null)) { return; } ShadowSystem componentInChildren = currentCell.cellVisualData.lightObject.GetComponentInChildren(); if (Object.op_Implicit((Object)(object)componentInChildren)) { int num; for (num = 0; num < componentInChildren.PersonalCookies.Count; num++) { componentInChildren.PersonalCookies[num].enabled = false; componentInChildren.PersonalCookies.RemoveAt(num); num--; } } } } private void DecorateRoomExit(RoomHandler r, RuntimeRoomExitData usedExit, Dungeon d, Dungeon d2, tk2dTileMap map) { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: 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_0051: 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_0076: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: 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_01fb: 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_022d: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_024d: Unknown result type (might be due to invalid IL or missing references) RoomHandler val = r.connectedRoomsByExit[usedExit.referencedExit]; if ((int)usedExit.referencedExit.exitDirection != 0) { return; } IntVector2 val2 = r.area.basePosition + usedExit.ExitOrigin - IntVector2.One; int i; for (i = 0; d.data.isFaceWallLower(val2.x - i - 1, val2.y); i++) { } int j; for (j = 0; d.data.isFaceWallLower(val2.x + usedExit.referencedExit.ExitCellCount + j, val2.y); j++) { } int num = Math.Min(i, j); int num2 = 0; if (num <= 0) { return; } for (int k = 0; k < 3; k++) { IntVector2 val3 = IntVector2.Zero; StampDataBase stampDataComplex; if (k == 0 || k == 2) { stampDataComplex = d2.stampData.GetStampDataComplex((StampPlacementRule)2, (StampSpace)2, (StampCategory)0, val.opulence, r.RoomVisualSubtype, num); } else { stampDataComplex = d2.stampData.GetStampDataComplex((StampPlacementRule)2, (StampSpace)0, (StampCategory)2, val.opulence, r.RoomVisualSubtype, num); val3 = IntVector2.Up; } IntVector2 val4 = val2 + IntVector2.Down + IntVector2.Left * (stampDataComplex.width + num2) + val3; IntVector2 val5 = val2 + IntVector2.Down + IntVector2.Right * (usedExit.referencedExit.ExitCellCount + num2) + val3; if (stampDataComplex is TileStampData) { m_assembler.ApplyTileStamp(val4.x, val4.y, (TileStampData)(object)((stampDataComplex is TileStampData) ? stampDataComplex : null), d, d2, map); m_assembler.ApplyTileStamp(val5.x, val5.y, (TileStampData)(object)((stampDataComplex is TileStampData) ? stampDataComplex : null), d, d2, map); } else if (stampDataComplex is SpriteStampData) { m_assembler.ApplySpriteStamp(val4.x, val4.y, (SpriteStampData)(object)((stampDataComplex is SpriteStampData) ? stampDataComplex : null), d, map); m_assembler.ApplySpriteStamp(val5.x, val5.y, (SpriteStampData)(object)((stampDataComplex is SpriteStampData) ? stampDataComplex : null), d, map); } else if (stampDataComplex is ObjectStampData) { Debug.Log((object)"object instantiate"); ExpandTK2DDungeonAssembler.ApplyObjectStamp(val4.x, val4.y, (ObjectStampData)(object)((stampDataComplex is ObjectStampData) ? stampDataComplex : null), d, map); ExpandTK2DDungeonAssembler.ApplyObjectStamp(val5.x, val5.y, (ObjectStampData)(object)((stampDataComplex is ObjectStampData) ? stampDataComplex : null), d, map); } num -= stampDataComplex.width; num2 += stampDataComplex.width; if (num <= 0) { break; } } } public void PlaceLightDecoration(Dungeon d, tk2dTileMap map) { //IL_0017: 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) IntVector2 val = default(IntVector2); for (int i = 0; i < d.data.Width; i++) { for (int j = 1; j < d.data.Height; j++) { ((IntVector2)(ref val))..ctor(i, j); CellData val2 = d.data[val]; if (val2 != null) { PlaceLightDecorationForCell(d, map, val2, val); } } } } protected bool IsValidPondCell(CellData cell, RoomHandler parentRoom, Dungeon d) { //IL_0005: 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_0018: Invalid comparison between Unknown and I4 if (cell != null) { if (parentRoom.ContainsPosition(cell.position) && (int)cell.type == 2 && !cell.doesDamage && !cell.HasNonTopWallWallNeighbor() && !cell.HasPitNeighbor(d.data) && !cell.isOccupied && !cell.cellVisualData.floorTileOverridden) { return cell.cellVisualData.roomVisualTypeIndex == parentRoom.RoomVisualSubtype; } return false; } return false; } protected bool IsValidChannelCell(CellData cell, RoomHandler parentRoom, Dungeon d) { //IL_0005: 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_0018: Invalid comparison between Unknown and I4 if (cell != null) { if (parentRoom.ContainsPosition(cell.position) && (int)cell.type == 2 && !cell.doesDamage && !cell.HasPitNeighbor(d.data) && !cell.isOccupied && !cell.cellVisualData.floorTileOverridden) { return cell.cellVisualData.roomVisualTypeIndex == parentRoom.RoomVisualSubtype; } return false; } return false; } public void DigChannels(RoomHandler r, Dungeon d, Dungeon d2, tk2dTileMap map) { //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_020d: 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_0232: Unknown result type (might be due to invalid IL or missing references) //IL_0237: Unknown result type (might be due to invalid IL or missing references) //IL_023b: Unknown result type (might be due to invalid IL or missing references) //IL_0245: Unknown result type (might be due to invalid IL or missing references) //IL_0248: 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_0382: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01a8: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_012d: 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_013a: 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_025e: Unknown result type (might be due to invalid IL or missing references) //IL_0260: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Unknown result type (might be due to invalid IL or missing references) //IL_0267: Unknown result type (might be due to invalid IL or missing references) //IL_026f: Unknown result type (might be due to invalid IL or missing references) //IL_039a: Unknown result type (might be due to invalid IL or missing references) //IL_03a0: Unknown result type (might be due to invalid IL or missing references) //IL_03a5: Unknown result type (might be due to invalid IL or missing references) //IL_027e: Unknown result type (might be due to invalid IL or missing references) //IL_0284: Invalid comparison between Unknown and I4 //IL_043f: Unknown result type (might be due to invalid IL or missing references) //IL_0446: Unknown result type (might be due to invalid IL or missing references) //IL_045f: Unknown result type (might be due to invalid IL or missing references) //IL_046c: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_029c: Unknown result type (might be due to invalid IL or missing references) //IL_03de: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_03e9: Unknown result type (might be due to invalid IL or missing references) //IL_03f3: Unknown result type (might be due to invalid IL or missing references) //IL_03f9: Invalid comparison between Unknown and I4 //IL_030d: Unknown result type (might be due to invalid IL or missing references) //IL_0312: Unknown result type (might be due to invalid IL or missing references) //IL_0316: Unknown result type (might be due to invalid IL or missing references) //IL_0320: Unknown result type (might be due to invalid IL or missing references) //IL_0323: Unknown result type (might be due to invalid IL or missing references) //IL_02d5: Unknown result type (might be due to invalid IL or missing references) //IL_02d7: Unknown result type (might be due to invalid IL or missing references) //IL_02db: Unknown result type (might be due to invalid IL or missing references) //IL_02e5: Unknown result type (might be due to invalid IL or missing references) //IL_02bd: Unknown result type (might be due to invalid IL or missing references) //IL_02c7: Unknown result type (might be due to invalid IL or missing references) //IL_02ca: Unknown result type (might be due to invalid IL or missing references) if (!d2.roomMaterialDefinitions[r.RoomVisualSubtype].supportsChannels || d2.roomMaterialDefinitions[r.RoomVisualSubtype].channelGrids.Length == 0) { return; } DungeonMaterial val = d2.roomMaterialDefinitions[r.RoomVisualSubtype]; TileIndexGrid val2 = val.channelGrids[Random.Range(0, d2.roomMaterialDefinitions[r.RoomVisualSubtype].channelGrids.Length)]; if ((Object)(object)val2 == (Object)null) { return; } int num = Random.Range(val.minChannelPools, val.maxChannelPools); List list = new List(); HashSet hashSet = new HashSet(); for (int i = 0; i < num; i++) { HashSet hashSet2 = new HashSet(); int num2 = Random.Range(2, 5); int num3 = Random.Range(2, 5); int num4 = Random.Range(0, r.area.dimensions.x - num2); int num5 = Random.Range(0, r.area.dimensions.y - num3); IntVector2 item = r.area.basePosition + new IntVector2(num4 + num2 / 2, num5 + num3 / 2); bool flag = false; if (num4 >= 0 && num5 >= 0) { for (int j = num4; j < num4 + num2; j++) { int num6 = num5; while (num6 < num5 + num3) { IntVector2 val3 = r.area.basePosition + new IntVector2(j, num6); CellData cell = d.data[val3]; if (IsValidPondCell(cell, r, d)) { hashSet2.Add(val3); num6++; continue; } goto IL_014f; } continue; IL_014f: flag = true; break; } } if (!flag && hashSet2.Count > 5) { list.Add(item); foreach (IntVector2 item2 in hashSet2) { hashSet.Add(item2); } } else if (Random.value < val.channelTenacity) { i--; } } for (int k = 0; k < list.Count; k++) { int num7 = Random.Range(1, 4); for (int l = 0; l < num7; l++) { HashSet hashSet3 = new HashSet(); IntVector2 val4 = list[k]; bool flag2; do { int num8 = Random.Range(3, 8); List list2 = new List(IntVector2.Cardinals); IntVector2 val5 = list2[Random.Range(0, 4)]; list2.Remove(val5); list2.Remove(val5 * -1); flag2 = false; for (int m = 0; m < num8; m++) { IntVector2 val6 = val4 + val5; CellData val7 = d.data[val6]; if (val7 == null || (int)val7.type == 1) { flag2 = true; break; } if (IsValidChannelCell(val7, r, d) && !hashSet3.Contains(val6)) { if (list2.Count < 3) { list2 = new List(IntVector2.Cardinals); list2.Remove(val5); list2.Remove(val5 * -1); } val4 = val6; hashSet.Add(val6); hashSet3.Add(val6); } else { if (list2.Count <= 1) { flag2 = true; break; } val5 = list2[Random.Range(0, list2.Count)]; list2.Remove(val5); list2.Remove(val5 * -1); } } } while (!flag2); } } IntVector2[] cardinalsAndOrdinals = IntVector2.CardinalsAndOrdinals; foreach (IntVector2 item3 in hashSet) { bool[] array = new bool[8]; int num9 = 0; for (int n = 0; n < array.Length; n++) { array[n] = !hashSet.Contains(item3 + cardinalsAndOrdinals[n]); if (array[n]) { num9++; } } if (num9 == 1) { for (int num10 = 0; num10 < array.Length; num10 += 2) { if ((int)d.data[item3 + cardinalsAndOrdinals[num10]].type == 1) { array[num10] = true; num9++; } } } int indexGivenSides = val2.GetIndexGivenSides(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7]); map.SetTile(item3.x, item3.y, GlobalDungeonData.patternLayerIndex, indexGivenSides); d.data[item3].cellVisualData.floorType = (CellFloorType)1; d.data[item3].cellVisualData.IsChannel = true; } } public void ProcessHardcodedUpholstery(RoomHandler r, Dungeon d, Dungeon d2, tk2dTileMap map) { //IL_0049: 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) //IL_005b: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Invalid comparison between Unknown and I4 //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) DungeonMaterial val = d2.roomMaterialDefinitions[r.RoomVisualSubtype]; if (val.carpetGrids.Length == 0) { return; } HashSet hashSet = new HashSet(); TileIndexGrid carpetGrid = val.carpetGrids[Random.Range(0, val.carpetGrids.Length)]; for (int i = 0; i < r.area.dimensions.x; i++) { for (int j = 0; j < r.area.dimensions.y; j++) { IntVector2 val2 = r.area.basePosition + new IntVector2(i, j); CellData val3 = d.data[val2]; if (val3 != null && (int)val3.type == 2 && val3.parentRoom == r && val3.cellVisualData.IsPhantomCarpet && !val3.HasPitNeighbor(d.data)) { hashSet.Add(val2); BraveUtility.DrawDebugSquare(((IntVector2)(ref val3.position)).ToVector2(), ((IntVector2)(ref val3.position)).ToVector2() + Vector2.one, Color.yellow, 1000f); } } } try { ApplyCarpetedHashset(hashSet, carpetGrid, d, map); } catch (Exception) { } } public void UpholsterRoom(RoomHandler r, Dungeon d, Dungeon d2, tk2dTileMap map) { //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0178: Invalid comparison between Unknown and I4 //IL_0196: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: 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_01d5: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: 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_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Invalid comparison between Unknown and I4 //IL_020b: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Unknown result type (might be due to invalid IL or missing references) //IL_0215: Unknown result type (might be due to invalid IL or missing references) //IL_021c: 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_033e: Unknown result type (might be due to invalid IL or missing references) //IL_0347: Unknown result type (might be due to invalid IL or missing references) //IL_034c: Unknown result type (might be due to invalid IL or missing references) //IL_0351: Unknown result type (might be due to invalid IL or missing references) //IL_0354: Unknown result type (might be due to invalid IL or missing references) //IL_0263: Unknown result type (might be due to invalid IL or missing references) //IL_026c: Unknown result type (might be due to invalid IL or missing references) //IL_0271: Unknown result type (might be due to invalid IL or missing references) //IL_0276: Unknown result type (might be due to invalid IL or missing references) //IL_027e: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) DungeonMaterial val = d2.roomMaterialDefinitions[r.RoomVisualSubtype]; if (!val.supportsUpholstery || val.carpetGrids.Length == 0) { return; } TileIndexGrid val2 = d2.roomMaterialDefinitions[r.RoomVisualSubtype].carpetGrids[Random.Range(0, d2.roomMaterialDefinitions[r.RoomVisualSubtype].carpetGrids.Length)]; if ((Object)(object)val2 == (Object)null) { return; } HashSet hashSet = new HashSet(); if (val.carpetIsMainFloor) { for (int i = 0; i < r.area.dimensions.x; i++) { for (int j = 0; j < r.area.dimensions.y; j++) { IntVector2 val3 = r.area.basePosition + new IntVector2(i, j); CellData val4 = d.data[val3]; if (val4 != null && (int)val4.type == 2 && val4.parentRoom == r && !val4.doesDamage && !val4.cellVisualData.floorTileOverridden && val4.cellVisualData.roomVisualTypeIndex == r.RoomVisualSubtype) { bool num = val4.HasWallNeighbor(true, false) || val4.HasPitNeighbor(d.data); bool flag = val4.HasPhantomCarpetNeighbor(true); if (!num && !flag) { hashSet.Add(val3); } } } } hashSet = Carpetron.PostprocessFullRoom(hashSet); } else { bool flag2 = true; List> list = new List>(); Tuple val5 = null; int num2 = 1; if ((int)d2.tileIndices.tilesetId == 2) { num2 = 2; } while (flag2) { Tuple val6 = Carpetron.MaxSubmatrix(d.data.cellData, r.area.basePosition, r.area.dimensions, false, false, false, r.RoomVisualSubtype); IntVector2 val7 = val6.Second + IntVector2.One - val6.First; if (val7.x * val7.y < 15 || val7.x < 3 || val7.y < 3) { break; } if (val5 != null && val5.Second + IntVector2.One - val5.First != val7) { num2--; if (num2 <= 0) { break; } } for (int k = val6.First.x; k < val6.Second.x + 1; k++) { for (int l = val6.First.y; l < val6.Second.y + 1; l++) { IntVector2 val8 = r.area.basePosition + new IntVector2(k, l); d.data[val8].cellVisualData.floorTileOverridden = true; } } list.Add(val6); val5 = val6; } if (list.Count == 1) { Tuple val9 = null; list[0] = Carpetron.PostprocessSubmatrix(list[0], ref val9); if (val9 != null) { list.Add(val9); } } for (int m = 0; m < list.Count; m++) { Tuple val10 = list[m]; for (int n = val10.First.x; n < val10.Second.x + 1; n++) { for (int num3 = val10.First.y; num3 < val10.Second.y + 1; num3++) { IntVector2 item = r.area.basePosition + new IntVector2(n, num3); hashSet.Add(item); } } } } try { ApplyCarpetedHashset(hashSet, val2, d, map); } catch (Exception) { } } private void ApplyCarpetedHashset(HashSet cellsToEncarpet, TileIndexGrid carpetGrid, Dungeon d, tk2dTileMap map) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Expected O, but got Unknown //IL_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_01d6: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_01ea: 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_0054: 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_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_0247: Unknown result type (might be due to invalid IL or missing references) //IL_0251: Unknown result type (might be due to invalid IL or missing references) //IL_02a7: Unknown result type (might be due to invalid IL or missing references) //IL_02ae: Unknown result type (might be due to invalid IL or missing references) //IL_02c7: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02df: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_010d: 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_0122: 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_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) IntVector2[] cardinalsAndOrdinals = IntVector2.CardinalsAndOrdinals; Dictionary dictionary = new Dictionary((IEqualityComparer?)new IntVector2EqualityComparer()); if (carpetGrid.CenterIndicesAreStrata) { HashSet hashSet = new HashSet(); HashSet hashSet2 = new HashSet(); HashSet hashSet3 = new HashSet(); foreach (IntVector2 item in cellsToEncarpet) { bool[] array = new bool[8]; for (int i = 0; i < array.Length; i++) { array[i] = !cellsToEncarpet.Contains(item + cardinalsAndOrdinals[i]); } if (array[0] || array[1] || array[2] || array[3] || array[4] || array[5] || array[6] || array[7]) { hashSet2.Add(item); } } int num = 0; while (hashSet2.Count > 0) { foreach (IntVector2 item2 in hashSet2) { hashSet.Add(item2); for (int j = 0; j < 8; j++) { IntVector2 val = item2 + cardinalsAndOrdinals[j]; if (!hashSet.Contains(val) && !hashSet2.Contains(val) && !hashSet3.Contains(val) && cellsToEncarpet.Contains(val)) { hashSet3.Add(val); dictionary.Add(val, carpetGrid.centerIndices.indices[Mathf.Clamp(num, 0, carpetGrid.centerIndices.indices.Count - 1)]); } } } hashSet2 = hashSet3; hashSet3 = new HashSet(); num++; } if (num < 3) { dictionary.Clear(); } } foreach (IntVector2 item3 in cellsToEncarpet) { bool[] array2 = new bool[8]; for (int k = 0; k < array2.Length; k++) { array2[k] = !cellsToEncarpet.Contains(item3 + cardinalsAndOrdinals[k]); } bool flag = !array2[0] && !array2[1] && !array2[2] && !array2[3] && !array2[4] && !array2[5] && !array2[6] && !array2[7]; int num2 = ((!dictionary.ContainsKey(item3)) ? ((!flag || !carpetGrid.CenterIndicesAreStrata) ? carpetGrid.GetIndexGivenSides(array2[0], array2[1], array2[2], array2[3], array2[4], array2[5], array2[6], array2[7]) : carpetGrid.centerIndices.indices[0]) : dictionary[item3]); map.SetTile(item3.x, item3.y, GlobalDungeonData.patternLayerIndex, num2); d.data[item3].cellVisualData.floorType = (CellFloorType)2; d.data[item3].cellVisualData.floorTileOverridden = true; } } public void HandleRoomDecorationMinimal(RoomHandler r, Dungeon d, Dungeon d2, tk2dTileMap map) { roomUsedStamps.Clear(); if (!((Object)(object)r.area.prototypeRoom == (Object)null)) { if (viableCategorySets == null) { BuildStampLookupTable(d2); BuildValidPlacementLists(); } try { ProcessHardcodedUpholstery(r, d, d2, map); } catch (Exception) { } roomUsedStamps.Clear(); } } public void HandleRoomDecoration(RoomHandler r, Dungeon d, Dungeon d2, tk2dTileMap map) { //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Invalid comparison between Unknown and I4 //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_02ba: Unknown result type (might be due to invalid IL or missing references) //IL_02cc: Unknown result type (might be due to invalid IL or missing references) //IL_02de: Unknown result type (might be due to invalid IL or missing references) //IL_02ef: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Unknown result type (might be due to invalid IL or missing references) //IL_0306: Unknown result type (might be due to invalid IL or missing references) //IL_0317: Unknown result type (might be due to invalid IL or missing references) //IL_0328: Unknown result type (might be due to invalid IL or missing references) //IL_0339: Unknown result type (might be due to invalid IL or missing references) //IL_034a: Unknown result type (might be due to invalid IL or missing references) //IL_035b: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_037b: Unknown result type (might be due to invalid IL or missing references) //IL_0380: Unknown result type (might be due to invalid IL or missing references) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_0261: Unknown result type (might be due to invalid IL or missing references) //IL_0266: Unknown result type (might be due to invalid IL or missing references) //IL_026b: Unknown result type (might be due to invalid IL or missing references) //IL_0274: Unknown result type (might be due to invalid IL or missing references) //IL_028e: Unknown result type (might be due to invalid IL or missing references) //IL_039d: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_047f: Unknown result type (might be due to invalid IL or missing references) //IL_04c7: Unknown result type (might be due to invalid IL or missing references) //IL_04cc: Unknown result type (might be due to invalid IL or missing references) //IL_04ce: Unknown result type (might be due to invalid IL or missing references) //IL_021c: Unknown result type (might be due to invalid IL or missing references) //IL_040e: Unknown result type (might be due to invalid IL or missing references) //IL_04e7: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: 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_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_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: 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_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: Unknown result type (might be due to invalid IL or missing references) //IL_01e8: Unknown result type (might be due to invalid IL or missing references) //IL_01ed: 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_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_0208: Unknown result type (might be due to invalid IL or missing references) //IL_03c2: Unknown result type (might be due to invalid IL or missing references) //IL_03c7: Unknown result type (might be due to invalid IL or missing references) //IL_03c9: Unknown result type (might be due to invalid IL or missing references) //IL_03ce: Unknown result type (might be due to invalid IL or missing references) //IL_03d3: Unknown result type (might be due to invalid IL or missing references) //IL_03d8: Unknown result type (might be due to invalid IL or missing references) //IL_03dd: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_03e9: Unknown result type (might be due to invalid IL or missing references) //IL_03f8: Unknown result type (might be due to invalid IL or missing references) //IL_0516: Unknown result type (might be due to invalid IL or missing references) //IL_051b: Unknown result type (might be due to invalid IL or missing references) //IL_051d: Unknown result type (might be due to invalid IL or missing references) //IL_022e: Unknown result type (might be due to invalid IL or missing references) //IL_0428: Unknown result type (might be due to invalid IL or missing references) //IL_0536: Unknown result type (might be due to invalid IL or missing references) //IL_0470: Unknown result type (might be due to invalid IL or missing references) //IL_0571: Unknown result type (might be due to invalid IL or missing references) //IL_0576: Unknown result type (might be due to invalid IL or missing references) //IL_0461: Unknown result type (might be due to invalid IL or missing references) //IL_0588: Unknown result type (might be due to invalid IL or missing references) //IL_058d: Unknown result type (might be due to invalid IL or missing references) //IL_058f: Unknown result type (might be due to invalid IL or missing references) //IL_0591: Unknown result type (might be due to invalid IL or missing references) //IL_059b: Unknown result type (might be due to invalid IL or missing references) //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_070b: Unknown result type (might be due to invalid IL or missing references) //IL_0710: Unknown result type (might be due to invalid IL or missing references) //IL_05a9: Unknown result type (might be due to invalid IL or missing references) //IL_05b0: Unknown result type (might be due to invalid IL or missing references) //IL_05df: Unknown result type (might be due to invalid IL or missing references) //IL_0715: Unknown result type (might be due to invalid IL or missing references) //IL_05bb: Unknown result type (might be due to invalid IL or missing references) //IL_05f8: Unknown result type (might be due to invalid IL or missing references) //IL_05fd: Unknown result type (might be due to invalid IL or missing references) //IL_05ff: Unknown result type (might be due to invalid IL or missing references) //IL_0604: Unknown result type (might be due to invalid IL or missing references) //IL_060b: Unknown result type (might be due to invalid IL or missing references) //IL_0610: Unknown result type (might be due to invalid IL or missing references) //IL_0615: Unknown result type (might be due to invalid IL or missing references) //IL_061a: Unknown result type (might be due to invalid IL or missing references) //IL_0620: Unknown result type (might be due to invalid IL or missing references) //IL_062f: Unknown result type (might be due to invalid IL or missing references) //IL_072e: Unknown result type (might be due to invalid IL or missing references) //IL_0733: Unknown result type (might be due to invalid IL or missing references) //IL_0735: Unknown result type (might be due to invalid IL or missing references) //IL_073a: Unknown result type (might be due to invalid IL or missing references) //IL_0741: Unknown result type (might be due to invalid IL or missing references) //IL_0746: Unknown result type (might be due to invalid IL or missing references) //IL_074b: Unknown result type (might be due to invalid IL or missing references) //IL_0750: Unknown result type (might be due to invalid IL or missing references) //IL_0756: Unknown result type (might be due to invalid IL or missing references) //IL_0765: Unknown result type (might be due to invalid IL or missing references) //IL_07e6: Unknown result type (might be due to invalid IL or missing references) //IL_07eb: Unknown result type (might be due to invalid IL or missing references) //IL_07f0: Unknown result type (might be due to invalid IL or missing references) //IL_0817: Unknown result type (might be due to invalid IL or missing references) //IL_081c: Unknown result type (might be due to invalid IL or missing references) //IL_081e: Unknown result type (might be due to invalid IL or missing references) //IL_0823: Unknown result type (might be due to invalid IL or missing references) //IL_082a: Unknown result type (might be due to invalid IL or missing references) //IL_082f: Unknown result type (might be due to invalid IL or missing references) //IL_0834: Unknown result type (might be due to invalid IL or missing references) //IL_0839: Unknown result type (might be due to invalid IL or missing references) //IL_083f: Unknown result type (might be due to invalid IL or missing references) //IL_084e: Unknown result type (might be due to invalid IL or missing references) //IL_067b: Unknown result type (might be due to invalid IL or missing references) //IL_0682: Unknown result type (might be due to invalid IL or missing references) //IL_0687: Unknown result type (might be due to invalid IL or missing references) //IL_068c: Unknown result type (might be due to invalid IL or missing references) //IL_0691: Unknown result type (might be due to invalid IL or missing references) //IL_069b: Unknown result type (might be due to invalid IL or missing references) //IL_06a0: Unknown result type (might be due to invalid IL or missing references) //IL_06a5: Unknown result type (might be due to invalid IL or missing references) //IL_06aa: Unknown result type (might be due to invalid IL or missing references) //IL_06b0: Unknown result type (might be due to invalid IL or missing references) //IL_06c1: Unknown result type (might be due to invalid IL or missing references) //IL_093f: Unknown result type (might be due to invalid IL or missing references) //IL_0948: Unknown result type (might be due to invalid IL or missing references) //IL_094d: Unknown result type (might be due to invalid IL or missing references) //IL_0952: Unknown result type (might be due to invalid IL or missing references) //IL_095f: Unknown result type (might be due to invalid IL or missing references) //IL_0967: Unknown result type (might be due to invalid IL or missing references) //IL_0881: Unknown result type (might be due to invalid IL or missing references) //IL_0886: Unknown result type (might be due to invalid IL or missing references) //IL_0888: Unknown result type (might be due to invalid IL or missing references) //IL_088d: Unknown result type (might be due to invalid IL or missing references) //IL_0892: Unknown result type (might be due to invalid IL or missing references) //IL_08a4: Unknown result type (might be due to invalid IL or missing references) //IL_08a9: Unknown result type (might be due to invalid IL or missing references) //IL_08ae: Unknown result type (might be due to invalid IL or missing references) //IL_08bb: Unknown result type (might be due to invalid IL or missing references) //IL_08c0: Unknown result type (might be due to invalid IL or missing references) //IL_08c5: Unknown result type (might be due to invalid IL or missing references) //IL_08ca: Unknown result type (might be due to invalid IL or missing references) //IL_08d2: Unknown result type (might be due to invalid IL or missing references) //IL_08d9: Unknown result type (might be due to invalid IL or missing references) //IL_0977: Unknown result type (might be due to invalid IL or missing references) //IL_097d: Invalid comparison between Unknown and I4 //IL_09ab: Unknown result type (might be due to invalid IL or missing references) //IL_09b5: Invalid comparison between Unknown and I4 //IL_09bf: Unknown result type (might be due to invalid IL or missing references) roomUsedStamps.Clear(); try { ProcessHardcodedUpholstery(r, d, d2, map); } catch (Exception) { } if ((Object)(object)r.area.prototypeRoom == (Object)null || !r.area.prototypeRoom.preventAddedDecoLayering) { try { UpholsterRoom(r, d, d2, map); } catch (Exception) { } if (!r.ForcePreventChannels) { try { DigChannels(r, d, d2, map); } catch (Exception) { } } } if (viableCategorySets == null) { BuildStampLookupTable(d2); BuildValidPlacementLists(); } for (int i = 0; i < r.area.instanceUsedExits.Count; i++) { PrototypeRoomExit key = r.area.instanceUsedExits[i]; RoomHandler val = r.connectedRoomsByExit[key]; if (val != null && (!((Object)(object)val.area.prototypeRoom != (Object)null) || (int)val.area.PrototypeRoomCategory != 6)) { DecorateRoomExit(r, r.area.exitToLocalDataMap[key], d, d2, map); } } List list = r.GatherExpanses((Direction)0, false, false, false); for (int j = 0; j < list.Count; j++) { WallExpanse val2 = list[j]; WallExpanse? val3 = null; int index = -1; for (int k = j + 1; k < list.Count; k++) { WallExpanse val4 = list[k]; if (val2.basePosition.y != val4.basePosition.y || val2.width != val4.width) { continue; } bool flag = true; for (int l = 0; l < val4.width; l++) { if (d.data[r.area.basePosition + val2.basePosition + IntVector2.Up + IntVector2.Right * l].cellVisualData.forcedMatchingStyle != d.data[r.area.basePosition + val4.basePosition + IntVector2.Up + IntVector2.Right * l].cellVisualData.forcedMatchingStyle) { flag = false; break; } } if (flag) { val3 = val4; index = k; } } if (val3.HasValue) { val2.hasMirror = true; val2.mirroredExpanseBasePosition = val3.Value.basePosition; val2.mirroredExpanseWidth = val3.Value.width; list.RemoveAt(index); list[j] = val2; } } wallPlacementOffsets = new Dictionary(); wallPlacementOffsets.Add((StampPlacementRule)2, IntVector2.Zero); wallPlacementOffsets.Add((StampPlacementRule)9, IntVector2.Zero); wallPlacementOffsets.Add((StampPlacementRule)10, IntVector2.Zero); wallPlacementOffsets.Add((StampPlacementRule)0, IntVector2.Up); wallPlacementOffsets.Add((StampPlacementRule)1, IntVector2.Up * 2); wallPlacementOffsets.Add((StampPlacementRule)5, IntVector2.Zero); wallPlacementOffsets.Add((StampPlacementRule)7, IntVector2.Zero); wallPlacementOffsets.Add((StampPlacementRule)3, IntVector2.Left); wallPlacementOffsets.Add((StampPlacementRule)8, IntVector2.Zero); wallPlacementOffsets.Add((StampPlacementRule)4, IntVector2.Zero); for (int m = 0; m < list.Count; m++) { expanseUsedStamps.Clear(); WallExpanse val5 = list[m]; if (val5.hasMirror) { DecorateExpanseRandom(val5, r, d, d2, map); } else if (val5.width > 2) { float num = Random.value; for (int n = 0; n < val5.width; n++) { if ((int)d.data[r.area.basePosition + val5.basePosition + IntVector2.Up + IntVector2.Right * n].cellVisualData.forcedMatchingStyle != 0) { num = 1000f; } } if (num < d2.stampData.SymmetricFrameChance) { DecorateExpanseSymmetricFrame(1, val5, r, d, d2, map); } else if (num >= d2.stampData.SymmetricFrameChance && num < d2.stampData.SymmetricFrameChance + d2.stampData.SymmetricCompleteChance) { DecorateExpanseSymmetric(val5, r, d, d2, map); } else { DecorateExpanseRandom(val5, r, d, d2, map); } } else { DecorateExpanseRandom(val5, r, d, d2, map); } } DecorateCeilingCorners(r, d, d2, map); List list2 = r.GatherExpanses((Direction)2, false, false, false); List list3 = r.GatherExpanses((Direction)6, false, false, false); for (int num2 = 0; num2 < list2.Count; num2++) { WallExpanse val6 = list2[num2]; if (val6.width > 1) { val6.width--; list2[num2] = val6; } else { list2.RemoveAt(num2); num2--; } } for (int num3 = 0; num3 < list3.Count; num3++) { WallExpanse val7 = list3[num3]; if (val7.width > 1) { val7.width--; list3[num3] = val7; } else { list3.RemoveAt(num3); num3--; } } for (int num4 = 0; num4 < list2.Count; num4++) { expanseUsedStamps.Clear(); WallExpanse val8 = list2[num4]; WallExpanse? val9 = null; for (int num5 = 0; num5 < list3.Count; num5++) { WallExpanse val10 = list3[num5]; if (val10.basePosition.y == val8.basePosition.y && val10.width == val8.width) { val9 = val10; list3.RemoveAt(num5); break; } } int num6 = 1; while (true) { int num7 = val8.width - num6; if (num7 == 0) { break; } IntVector2 basePosition = r.area.basePosition + val8.basePosition + num6 * IntVector2.Up; StampDataBase placedStamp = null; DecorateErrorCode decorateErrorCode = DecorateWallSection(basePosition, num7, r, d, d2, map, validEasternPlacements, val8, out placedStamp, Mathf.Max(0.55f, r.RoomMaterial.stampFailChance), excludeWallSpace: true); if (decorateErrorCode == DecorateErrorCode.FAILED_SPACE) { break; } if (placedStamp == null || decorateErrorCode == DecorateErrorCode.FAILED_CHANCE) { num6++; continue; } if (val9.HasValue) { IntVector2 basePosition2 = r.area.basePosition + val9.Value.basePosition + (val8.width - num7) * IntVector2.Up; StampDataBase placedStamp2 = null; DecorateWallSection(basePosition2, num7, r, d, d2, map, validWesternPlacements, val9.Value, out placedStamp2, 0f, excludeWallSpace: true); } num6 += placedStamp.height; } } for (int num8 = 0; num8 < list3.Count; num8++) { expanseUsedStamps.Clear(); WallExpanse val11 = list3[num8]; int num9 = 1; while (true) { int num10 = val11.width - num9; if (num10 == 0) { break; } IntVector2 basePosition3 = r.area.basePosition + val11.basePosition + num9 * IntVector2.Up; StampDataBase placedStamp3 = null; DecorateErrorCode decorateErrorCode2 = DecorateWallSection(basePosition3, num10, r, d, d2, map, validWesternPlacements, val11, out placedStamp3, Mathf.Max(0.55f, r.RoomMaterial.stampFailChance), excludeWallSpace: true); if (decorateErrorCode2 == DecorateErrorCode.FAILED_SPACE) { break; } num9 = ((placedStamp3 != null && decorateErrorCode2 != DecorateErrorCode.FAILED_CHANCE) ? (num9 + placedStamp3.height) : (num9 + 1)); } } List list4 = r.GatherExpanses((Direction)4, true, false, false); for (int num11 = 0; num11 < list4.Count; num11++) { expanseUsedStamps.Clear(); WallExpanse val12 = list4[num11]; int num12 = 1; while (true) { int num13 = Mathf.FloorToInt((float)(val12.width - 2 * num12) / 2f); if (num13 == 0) { break; } IntVector2 basePosition4 = r.area.basePosition + val12.basePosition + num12 * IntVector2.Right; StampDataBase placedStamp4 = null; DecorateErrorCode decorateErrorCode3 = DecorateWallSection(basePosition4, num13, r, d, d2, map, validSouthernPlacements, val12, out placedStamp4, 0.5f); if (decorateErrorCode3 == DecorateErrorCode.FAILED_SPACE) { break; } if (placedStamp4 == null || decorateErrorCode3 == DecorateErrorCode.FAILED_CHANCE) { num12++; continue; } IntVector2 val13 = r.area.basePosition + val12.basePosition + (val12.width - num12 - placedStamp4.width) * IntVector2.Right + wallPlacementOffsets[placedStamp4.placementRule]; m_assembler.ApplyStampGeneric(val13.x, val13.y, placedStamp4, d, d2, map, flipX: false, GlobalDungeonData.aboveBorderLayerIndex); num12 += placedStamp4.width; if (placedStamp4.width == 1) { num12 += 2; } } } for (int num14 = 2; num14 < r.area.dimensions.x - 2; num14++) { for (int num15 = 2; num15 < r.area.dimensions.y - 2; num15++) { IntVector2 val14 = r.area.basePosition + new IntVector2(num14, num15); CellData val15 = d.data.cellData[val14.x][val14.y]; if (val15 != null && (int)val15.type == 2 && !val15.cellVisualData.floorTileOverridden && !val15.cellVisualData.preventFloorStamping) { StampDataBase placedStamp5 = null; float failChance = 0.8f; if ((int)d2.tileIndices.tilesetId == 2048) { failChance = 0.99f; } DecorateFloorSquare(val14, r, d, d2, map, out placedStamp5, failChance); } } } roomUsedStamps.Clear(); } private void DecorateCeilingCorners(RoomHandler r, Dungeon d, Dungeon d2, tk2dTileMap map) { //IL_0048: 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_0059: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Invalid comparison between Unknown and I4 //IL_008b: 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_00bd: Invalid comparison between Unknown and I4 //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Invalid comparison between Unknown and I4 //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Invalid comparison between Unknown and I4 //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Invalid comparison between Unknown and I4 //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Invalid comparison between Unknown and I4 //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_012b: Invalid comparison between Unknown and I4 //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Invalid comparison between Unknown and I4 //IL_0154: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Invalid comparison between Unknown and I4 //IL_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_01a8: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)d2.tileIndices.edgeDecorationTiles == (Object)null || r == d.data.Entrance || r == d.data.Exit) { return; } CellArea area = r.area; for (int i = 0; i < area.dimensions.x; i++) { for (int j = 0; j < area.dimensions.y; j++) { IntVector2 val = area.basePosition + new IntVector2(i, j); CellData val2 = d.data.cellData[val.x][val.y]; if (val2 != null && (int)val2.type != 1 && (int)val2.diagonalWallType == 0) { List cellNeighbors = d.data.GetCellNeighbors(val2, false); bool flag = cellNeighbors[0] != null && (int)cellNeighbors[0].type == 1 && (int)cellNeighbors[0].diagonalWallType == 0; bool flag2 = cellNeighbors[1] != null && (int)cellNeighbors[1].type == 1 && (int)cellNeighbors[1].diagonalWallType == 0; bool flag3 = cellNeighbors[2] != null && (int)cellNeighbors[2].type == 1 && (int)cellNeighbors[2].diagonalWallType == 0; bool flag4 = cellNeighbors[3] != null && (int)cellNeighbors[3].type == 1 && (int)cellNeighbors[3].diagonalWallType == 0; int indexGivenSides = d2.tileIndices.edgeDecorationTiles.GetIndexGivenSides(flag, flag2, flag3, flag4); bool flag5 = Random.value < 0.25f; if (indexGivenSides != -1 && flag5) { int num = ((!flag) ? 1 : 2); map.SetTile(val.x, val.y + num, GlobalDungeonData.aboveBorderLayerIndex, indexGivenSides); } } } } } private void DecorateExpanseSymmetricFrame(int frameIterations, WallExpanse expanse, RoomHandler r, Dungeon d, Dungeon d2, tk2dTileMap map) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_0220: 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_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: 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_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: 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_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0231: Unknown result type (might be due to invalid IL or missing references) //IL_0232: Unknown result type (might be due to invalid IL or missing references) //IL_0238: Unknown result type (might be due to invalid IL or missing references) //IL_023d: 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_024e: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_0154: 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_018b: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_0197: 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_01a8: 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_01b6: Unknown result type (might be due to invalid IL or missing references) //IL_01bb: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: 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_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: Unknown result type (might be due to invalid IL or missing references) //IL_01e9: Unknown result type (might be due to invalid IL or missing references) //IL_01ee: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Unknown result type (might be due to invalid IL or missing references) //IL_01f7: Unknown result type (might be due to invalid IL or missing references) //IL_01fc: Unknown result type (might be due to invalid IL or missing references) int num = 0; for (int i = 0; i < frameIterations; i++) { int num2 = Mathf.FloorToInt((float)(expanse.width - 2 * num) / 2f); if (num2 == 0) { break; } IntVector2 val = r.area.basePosition + expanse.basePosition + num * IntVector2.Right; StampDataBase placedStamp = null; DecorateErrorCode decorateErrorCode = DecorateWallSection(val, num2, r, d, d2, map, validNorthernPlacements, expanse, out placedStamp, r.RoomMaterial.stampFailChance); if (decorateErrorCode == DecorateErrorCode.FAILED_SPACE) { break; } if (placedStamp == null || decorateErrorCode == DecorateErrorCode.FAILED_CHANCE) { num++; continue; } if (placedStamp.indexOfSymmetricPartner != -1) { placedStamp = (StampDataBase)(object)d2.stampData.objectStamps[placedStamp.indexOfSymmetricPartner]; } IntVector2 val2 = r.area.basePosition + expanse.basePosition + (expanse.width - num - placedStamp.width) * IntVector2.Right + wallPlacementOffsets[placedStamp.placementRule]; if (!placedStamp.preventRoomRepeats) { m_assembler.ApplyStampGeneric(val2.x, val2.y, placedStamp, d, d2, map); } else { StampDataBase val3 = d2.stampData.AttemptGetSimilarStampForRoomDuplication(placedStamp, roomUsedStamps, r.RoomVisualSubtype); if (val3 != null) { m_assembler.ApplyStampGeneric(val2.x, val2.y, val3, d, d2, map); roomUsedStamps.Add(val3); } } if (DEBUG_DRAW) { Vector2 val4 = ((IntVector2)(ref val)).ToVector2(); IntVector2 val5 = val + IntVector2.Up + placedStamp.width * IntVector2.Right; BraveUtility.DrawDebugSquare(val4, ((IntVector2)(ref val5)).ToVector2(), Color.red, 1000f); Vector2 val6 = ((IntVector2)(ref val2)).ToVector2(); val5 = val2 + IntVector2.Up + placedStamp.width * IntVector2.Right; BraveUtility.DrawDebugSquare(val6, ((IntVector2)(ref val5)).ToVector2(), Color.red, 1000f); } num += placedStamp.width; } int num3 = expanse.width - 2 * num; if (num3 > 0) { WallExpanse expanse2 = default(WallExpanse); ((WallExpanse)(ref expanse2))..ctor(expanse.basePosition + num * IntVector2.Right, num3); DecorateExpanseRandom(expanse2, r, d, d2, map); } } private void DecorateExpanseSymmetric(WallExpanse expanse, RoomHandler r, Dungeon d, Dungeon d2, tk2dTileMap map) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: 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_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0040: 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_0049: 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_00a9: 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_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0177: 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_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01b1: Unknown result type (might be due to invalid IL or missing references) //IL_01b6: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: 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_01db: Unknown result type (might be due to invalid IL or missing references) //IL_01e0: Unknown result type (might be due to invalid IL or missing references) int num = 0; while (true) { int num2 = Mathf.FloorToInt((float)(expanse.width - 2 * num) / 2f); if (num2 == 0) { break; } IntVector2 val = r.area.basePosition + expanse.basePosition + num * IntVector2.Right; StampDataBase placedStamp = null; DecorateErrorCode decorateErrorCode = DecorateWallSection(val, num2, r, d, d2, map, validNorthernPlacements, expanse, out placedStamp, r.RoomMaterial.stampFailChance); if (decorateErrorCode == DecorateErrorCode.FAILED_SPACE) { break; } if (placedStamp == null || decorateErrorCode == DecorateErrorCode.FAILED_CHANCE) { num++; continue; } if (placedStamp.indexOfSymmetricPartner != -1) { placedStamp = (StampDataBase)(object)d2.stampData.objectStamps[placedStamp.indexOfSymmetricPartner]; } IntVector2 val2 = r.area.basePosition + expanse.basePosition + (expanse.width - num - placedStamp.width) * IntVector2.Right + wallPlacementOffsets[placedStamp.placementRule]; if (!placedStamp.preventRoomRepeats) { m_assembler.ApplyStampGeneric(val2.x, val2.y, placedStamp, d, d2, map); } else { StampDataBase val3 = d2.stampData.AttemptGetSimilarStampForRoomDuplication(placedStamp, roomUsedStamps, r.RoomVisualSubtype); if (val3 != null) { m_assembler.ApplyStampGeneric(val2.x, val2.y, val3, d, d2, map); roomUsedStamps.Add(val3); } } if (DEBUG_DRAW) { Vector2 val4 = ((IntVector2)(ref val)).ToVector2(); IntVector2 val5 = val + IntVector2.Up + placedStamp.width * IntVector2.Right; BraveUtility.DrawDebugSquare(val4, ((IntVector2)(ref val5)).ToVector2(), Color.yellow, 1000f); Vector2 val6 = ((IntVector2)(ref val2)).ToVector2(); val5 = val2 + IntVector2.Up + placedStamp.width * IntVector2.Right; BraveUtility.DrawDebugSquare(val6, ((IntVector2)(ref val5)).ToVector2(), Color.yellow, 1000f); } num += placedStamp.width; } } private void DecorateExpanseRandom(WallExpanse expanse, RoomHandler r, Dungeon d, Dungeon d2, tk2dTileMap map) { //IL_0002: 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_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //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) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0049: 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_0086: 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_0099: 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_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_0196: Unknown result type (might be due to invalid IL or missing references) //IL_019b: 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_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_01be: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //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_010b: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_015d: 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) int num = 0; while (true) { int num2 = expanse.width - num; if (num2 == 0) { break; } IntVector2 val = r.area.basePosition + expanse.basePosition + num * IntVector2.Right; StampDataBase placedStamp = null; DecorateErrorCode decorateErrorCode = DecorateWallSection(val, num2, r, d, d2, map, validNorthernPlacements, expanse, out placedStamp, r.RoomMaterial.stampFailChance); if (decorateErrorCode == DecorateErrorCode.FAILED_SPACE) { break; } if (placedStamp == null || decorateErrorCode == DecorateErrorCode.FAILED_CHANCE) { num++; continue; } if (expanse.hasMirror) { IntVector2 val2 = r.area.basePosition + ((WallExpanse)(ref expanse)).GetPositionInMirroredExpanse(num, placedStamp.width); Debug.DrawLine(((IntVector2)(ref val2)).ToVector3(), ((IntVector2)(ref val2)).ToVector3() + new Vector3(1f, 1f, 0f), Color.cyan, 1000f); if (placedStamp.indexOfSymmetricPartner != -1) { placedStamp = (StampDataBase)(object)d2.stampData.objectStamps[placedStamp.indexOfSymmetricPartner]; } IntVector2 val3 = val2 + wallPlacementOffsets[placedStamp.placementRule]; if (!placedStamp.preventRoomRepeats) { m_assembler.ApplyStampGeneric(val3.x, val3.y, placedStamp, d, d2, map); } else { StampDataBase val4 = d2.stampData.AttemptGetSimilarStampForRoomDuplication(placedStamp, roomUsedStamps, r.RoomVisualSubtype); if (val4 != null) { m_assembler.ApplyStampGeneric(val3.x, val3.y, val4, d, d2, map); roomUsedStamps.Add(val4); } } } if (DEBUG_DRAW) { Vector2 val5 = ((IntVector2)(ref val)).ToVector2(); IntVector2 val6 = val + IntVector2.Up + placedStamp.width * IntVector2.Right; BraveUtility.DrawDebugSquare(val5, ((IntVector2)(ref val6)).ToVector2(), Color.magenta, 1000f); } num += placedStamp.width; } } private StampSpace GetValidSpaceForSection(IntVector2 basePosition, int viableWidth, Dungeon d) { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: 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_0041: 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_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_006f: 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_007d: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) List list = new List(); list.Add((StampSpace)0); bool flag = true; for (int i = 0; i < viableWidth; i++) { IntVector2 val = basePosition + IntVector2.Up + IntVector2.Right * i; if (d.data.cellData[val.x][val.y].cellVisualData.containsWallSpaceStamp) { flag = false; break; } val += IntVector2.Up; if (d.data.cellData[val.x][val.y].cellVisualData.containsWallSpaceStamp) { flag = false; break; } } if (flag) { list.Add((StampSpace)1); list.Add((StampSpace)2); } return list[Random.Range(0, list.Count)]; } private void BuildValidPlacementLists() { validNorthernPlacements = new List(); validNorthernPlacements.Add((StampPlacementRule)6); validNorthernPlacements.Add((StampPlacementRule)2); validNorthernPlacements.Add((StampPlacementRule)0); validNorthernPlacements.Add((StampPlacementRule)1); validEasternPlacements = new List(); validEasternPlacements.Add((StampPlacementRule)8); validEasternPlacements.Add((StampPlacementRule)2); validWesternPlacements = new List(); validWesternPlacements.Add((StampPlacementRule)3); validWesternPlacements.Add((StampPlacementRule)2); validSouthernPlacements = new List(); validSouthernPlacements.Add((StampPlacementRule)4); } private void BuildStampLookupTable(Dungeon d) { //IL_001e: 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_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) viableCategorySets = new List(); for (int i = 0; i < d.stampData.stamps.Length; i++) { StampDataBase val = (StampDataBase)(object)d.stampData.stamps[i]; ViableStampCategorySet item = new ViableStampCategorySet(val.stampCategory, val.placementRule, val.occupySpace); if (!viableCategorySets.Contains(item)) { viableCategorySets.Add(item); } } for (int j = 0; j < d.stampData.spriteStamps.Length; j++) { StampDataBase val2 = (StampDataBase)(object)d.stampData.spriteStamps[j]; ViableStampCategorySet item2 = new ViableStampCategorySet(val2.stampCategory, val2.placementRule, val2.occupySpace); if (!viableCategorySets.Contains(item2)) { viableCategorySets.Add(item2); } } for (int k = 0; k < d.stampData.objectStamps.Length; k++) { StampDataBase val3 = (StampDataBase)(object)d.stampData.objectStamps[k]; ViableStampCategorySet item3 = new ViableStampCategorySet(val3.stampCategory, val3.placementRule, val3.occupySpace); if (!viableCategorySets.Contains(item3)) { viableCategorySets.Add(item3); } } } private ViableStampCategorySet GetCategorySet(List validRules) { //IL_0017: Unknown result type (might be due to invalid IL or missing references) List list = new List(); for (int i = 0; i < viableCategorySets.Count; i++) { if (validRules.Contains(viableCategorySets[i].placement)) { list.Add(viableCategorySets[i]); } } if (list.Count == 0) { return null; } return list[Random.Range(0, list.Count)]; } private bool CheckExpanseStampValidity(WallExpanse expanse, StampDataBase stamp) { //IL_0038: 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) if (stamp.preventRoomRepeats && roomUsedStamps.Contains(stamp)) { return false; } int preferredIntermediaryStamps = stamp.preferredIntermediaryStamps; for (int i = 0; i < preferredIntermediaryStamps; i++) { int num = expanseUsedStamps.Count - (1 + i); if (num < 0) { break; } if ((int)stamp.intermediaryMatchingStyle == 0) { if (expanseUsedStamps[num] == stamp) { return false; } } else if (expanseUsedStamps[num].intermediaryMatchingStyle == stamp.intermediaryMatchingStyle) { return false; } } return true; } private bool DecorateFloorSquare(IntVector2 basePosition, RoomHandler r, Dungeon d, Dungeon d2, tk2dTileMap map, out StampDataBase placedStamp, float failChance = 0.2f) { //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: 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_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_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) if (Random.value < failChance) { placedStamp = null; return true; } placedStamp = null; List list = new List(); list.Add((StampPlacementRule)5); ViableStampCategorySet categorySet = GetCategorySet(list); if (categorySet == null) { return false; } StampDataBase stampDataComplex = d2.stampData.GetStampDataComplex(list, categorySet.space, categorySet.category, r.opulence, r.RoomVisualSubtype, 1); if (stampDataComplex == null) { return false; } IntVector2 val = basePosition + wallPlacementOffsets[stampDataComplex.placementRule]; m_assembler.ApplyStampGeneric(val.x, val.y, stampDataComplex, d, d2, map); placedStamp = stampDataComplex; return true; } private DecorateErrorCode DecorateWallSection(IntVector2 basePosition, int viableWidth, RoomHandler r, Dungeon d, Dungeon d2, tk2dTileMap map, List validRules, WallExpanse expanse, out StampDataBase placedStamp, float failChance = 0.2f, bool excludeWallSpace = false) { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Invalid comparison between Unknown and I4 //IL_0043: 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_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Invalid comparison between Unknown and I4 //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Invalid comparison between Unknown and I4 //IL_0090: 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) //IL_024d: Unknown result type (might be due to invalid IL or missing references) //IL_0255: 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_025f: Unknown result type (might be due to invalid IL or missing references) //IL_0264: Unknown result type (might be due to invalid IL or missing references) //IL_0266: Unknown result type (might be due to invalid IL or missing references) //IL_026c: Invalid comparison between Unknown and I4 //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_026f: Unknown result type (might be due to invalid IL or missing references) //IL_0275: Invalid comparison between Unknown and I4 //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0124: 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) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_0152: 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_0165: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_016f: 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_018f: 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_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_0278: Unknown result type (might be due to invalid IL or missing references) //IL_027e: Invalid comparison between Unknown and I4 //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: 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_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_0294: Unknown result type (might be due to invalid IL or missing references) //IL_029a: Unknown result type (might be due to invalid IL or missing references) //IL_0202: Unknown result type (might be due to invalid IL or missing references) if ((int)GameManager.Options.DebrisQuantity == 3) { failChance = Mathf.Min(failChance * 2f, 0.75f); } if (Random.value < failChance) { placedStamp = null; return DecorateErrorCode.FAILED_CHANCE; } StampDataBase val = null; if (validRules.Contains((StampPlacementRule)2)) { if ((int)d.data.GetCellTypeSafe(basePosition + IntVector2.Left) == 1) { validRules.Add((StampPlacementRule)9); } if ((int)d.data.GetCellTypeSafe(basePosition + IntVector2.Right) == 1) { validRules.Add((StampPlacementRule)10); } } for (int i = 0; i < 10; i++) { if (!d.data.CheckInBoundsAndValid(basePosition) || !d.data.CheckInBoundsAndValid(basePosition + IntVector2.Up)) { val = null; break; } if ((int)d.data[basePosition + IntVector2.Up].cellVisualData.forcedMatchingStyle == 0) { val = d2.stampData.GetStampDataSimple(validRules, r.opulence, r.RoomVisualSubtype, viableWidth, excludeWallSpace, roomUsedStamps); if (val != null && val.requiresForcedMatchingStyle) { continue; } } else { IntVector2 val2 = basePosition + IntVector2.Up; Vector2 val3 = ((IntVector2)(ref val2)).ToVector2() + new Vector2(0.2f, 0.2f); val2 = basePosition + IntVector2.Up + IntVector2.One; BraveUtility.DrawDebugSquare(val3, ((IntVector2)(ref val2)).ToVector2() + new Vector2(-0.2f, -0.2f), Color.red, 1000f); val = d2.stampData.GetStampDataSimpleWithForcedRule(validRules, d.data[basePosition + IntVector2.Up].cellVisualData.forcedMatchingStyle, r.opulence, r.RoomVisualSubtype, viableWidth, excludeWallSpace); if (val != null && val.intermediaryMatchingStyle != d.data[basePosition + IntVector2.Up].cellVisualData.forcedMatchingStyle) { break; } } if (val == null) { break; } if (!excludeWallSpace || val.width <= 1) { if (CheckExpanseStampValidity(expanse, val)) { break; } val = null; } } validRules.Remove((StampPlacementRule)9); validRules.Remove((StampPlacementRule)10); if (val == null) { placedStamp = null; return DecorateErrorCode.FAILED_SPACE; } expanseUsedStamps.Add(val); roomUsedStamps.Add(val); IntVector2 val4 = basePosition + wallPlacementOffsets[val.placementRule]; int overrideTileLayerIndex = (((int)val.placementRule != 3 && (int)val.placementRule != 8 && (int)val.placementRule != 4) ? (-1) : GlobalDungeonData.aboveBorderLayerIndex); m_assembler.ApplyStampGeneric(val4.x, val4.y, val, d, d2, map, flipX: false, overrideTileLayerIndex); placedStamp = val; return DecorateErrorCode.ALL_OK; } } public class ExpandCompanionManager : BraveBehaviour { public FacingType NoTargetFaceType; public FacingType WithTargetFaceType; public float Scale; public float UpdateTimer; public bool Rescale; public bool SwapFaceTypesOnTarget; public bool ToggleFaceSouthWhenStopped; public bool HideGunsWhenNoTarget; [NonSerialized] private AIActor m_AIActor; [NonSerialized] private AIShooter m_AIShooter; [NonSerialized] private bool m_WasRescaled; [NonSerialized] private bool m_Awake; [NonSerialized] private float m_Timer; [NonSerialized] private float m_AwakeTimer; public ExpandCompanionManager() { //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) SwapFaceTypesOnTarget = true; HideGunsWhenNoTarget = true; Rescale = false; ToggleFaceSouthWhenStopped = false; NoTargetFaceType = (FacingType)2; WithTargetFaceType = (FacingType)0; Scale = 0.65f; m_WasRescaled = false; m_Awake = false; UpdateTimer = 1.5f; m_Timer = UpdateTimer; m_AwakeTimer = 1f; } private void Awake() { m_Awake = false; m_AwakeTimer = 1f; } private void Start() { } private void LateUpdate() { if (Dungeon.IsGenerating | GameManager.Instance.IsLoadingLevel | m_Awake) { return; } m_AwakeTimer -= BraveTime.DeltaTime; if (!(m_AwakeTimer < 0f)) { return; } m_Awake = true; m_AIActor = ((BraveBehaviour)this).aiActor; m_AIShooter = ((BraveBehaviour)this).aiShooter; if (HideGunsWhenNoTarget && (!Object.op_Implicit((Object)(object)m_AIActor) | !Object.op_Implicit((Object)(object)m_AIShooter) | Object.op_Implicit((Object)(object)m_AIActor.TargetRigidbody))) { return; } try { m_AIShooter.ToggleGunAndHandRenderers(false, "Companion gun toggle for target change"); } catch (Exception ex) { if (ExpandSettings.debugMode) { Debug.LogException(ex); } } } private void Update() { //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_021a: Unknown result type (might be due to invalid IL or missing references) //IL_0220: Unknown result type (might be due to invalid IL or missing references) //IL_0271: Unknown result type (might be due to invalid IL or missing references) //IL_0277: Unknown result type (might be due to invalid IL or missing references) //IL_029c: Unknown result type (might be due to invalid IL or missing references) //IL_02a1: Unknown result type (might be due to invalid IL or missing references) //IL_0252: Unknown result type (might be due to invalid IL or missing references) //IL_0257: Unknown result type (might be due to invalid IL or missing references) if (!m_Awake) { return; } if (!Object.op_Implicit((Object)(object)m_AIActor)) { Object.Destroy((Object)(object)this); return; } if (m_Awake) { _ = !Object.op_Implicit((Object)(object)m_AIShooter) | !Object.op_Implicit((Object)(object)m_AIActor); } if (Rescale && !m_WasRescaled) { m_WasRescaled = true; ((Component)this).gameObject.layer = LayerMask.NameToLayer("Unpixelated"); SpriteOutlineManager.ChangeOutlineLayer(((BraveBehaviour)this).sprite, ((Component)this).gameObject.layer); m_AIActor.EnemyScale = new Vector2(Scale, Scale); ((BraveBehaviour)this).sprite.UpdateZDepth(); } if (UpdateTimer != -1f && Object.op_Implicit((Object)(object)m_AIActor) && !Object.op_Implicit((Object)(object)m_AIActor.TargetRigidbody)) { m_Timer -= BraveTime.DeltaTime; } else if (UpdateTimer != -1f && Object.op_Implicit((Object)(object)m_AIActor) && Object.op_Implicit((Object)(object)m_AIActor.TargetRigidbody) && m_Timer != UpdateTimer) { m_Timer = UpdateTimer; } if (HideGunsWhenNoTarget && Object.op_Implicit((Object)(object)m_AIShooter) && Object.op_Implicit((Object)(object)m_AIShooter.CurrentGun)) { if (!Object.op_Implicit((Object)(object)m_AIActor.TargetRigidbody) && ((BraveBehaviour)m_AIShooter.CurrentGun).renderer.enabled && m_Timer < 0f) { m_AIShooter.ToggleGunAndHandRenderers(false, "Companion gun toggle for target change"); } else if (Object.op_Implicit((Object)(object)m_AIActor.TargetRigidbody) && !((BraveBehaviour)m_AIShooter.CurrentGun).renderer.enabled) { m_AIShooter.ToggleGunAndHandRenderers(true, "Companion gun toggle for target change"); } } if (SwapFaceTypesOnTarget && !Object.op_Implicit((Object)(object)((BraveBehaviour)m_AIActor).aiAnimator)) { Object.Destroy((Object)(object)this); return; } if (SwapFaceTypesOnTarget && ((BraveBehaviour)m_AIActor).aiAnimator.facingType != NoTargetFaceType && !Object.op_Implicit((Object)(object)m_AIActor.TargetRigidbody) && m_Timer < 0f) { ((BraveBehaviour)m_AIActor).aiAnimator.facingType = NoTargetFaceType; } else if (SwapFaceTypesOnTarget && ((BraveBehaviour)m_AIActor).aiAnimator.facingType != WithTargetFaceType && Object.op_Implicit((Object)(object)m_AIActor.TargetRigidbody)) { ((BraveBehaviour)m_AIActor).aiAnimator.facingType = WithTargetFaceType; } if (ToggleFaceSouthWhenStopped && Object.op_Implicit((Object)(object)m_AIActor.TargetRigidbody)) { if (((BraveBehaviour)m_AIActor).aiAnimator.faceSouthWhenStopped) { ((BraveBehaviour)m_AIActor).aiAnimator.faceSouthWhenStopped = false; } if (!((BraveBehaviour)m_AIActor).aiAnimator.faceTargetWhenStopped) { ((BraveBehaviour)m_AIActor).aiAnimator.faceTargetWhenStopped = true; } } else if (ToggleFaceSouthWhenStopped && !Object.op_Implicit((Object)(object)m_AIActor.TargetRigidbody) && m_Timer < 0f) { if (!((BraveBehaviour)m_AIActor).aiAnimator.faceSouthWhenStopped) { ((BraveBehaviour)m_AIActor).aiAnimator.faceSouthWhenStopped = true; } if (((BraveBehaviour)m_AIActor).aiAnimator.faceTargetWhenStopped) { ((BraveBehaviour)m_AIActor).aiAnimator.faceTargetWhenStopped = false; } } if (UpdateTimer != -1f && m_Timer < 0f) { m_Timer = UpdateTimer; } } protected override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); } } public class ExpandDashBehavior : BasicAttackBehavior { public enum DashDirection { PerpendicularToTarget = 10, KindaTowardTarget = 20, TowardTarget = 25, Random = 30 } private enum DashState { Idle, Charge, Dash } public List gunHands; public DashDirection dashDirection; public float quantizeDirection; public float dashDistance; public float dashTime; public float postDashSpeed; public float doubleDashChance; public bool avoidTarget; [InspectorCategory("Attack")] public GameObject ShootPoint; [InspectorCategory("Attack")] public BulletScriptSelector bulletScript; [InspectorCategory("Attack")] public bool fireAtDashStart; [InspectorCategory("Attack")] public bool stopOnCollision; [InspectorCategory("Visuals")] public string chargeAnim; [InspectorCategory("Visuals")] public string dashAnim; [InspectorCategory("Visuals")] public bool doDodgeDustUp; [InspectorCategory("Visuals")] public bool warpDashAnimLength; [InspectorCategory("Visuals")] public bool hideShadow; [InspectorCategory("Visuals")] public bool hideGun; [InspectorCategory("Visuals")] public bool toggleTrailRenderer; [InspectorCategory("Visuals")] public bool enableShadowTrail; private tk2dBaseSprite m_shadowSprite; private TrailRenderer m_trailRenderer; private AfterImageTrailController m_shadowTrail; private BulletScriptSource m_bulletSource; private bool m_cachedDoDustups; private bool m_cachedGrounded; private Vector2 m_dashDirection; private float m_dashTimer; private bool m_shouldFire; private bool m_lastDashWasDouble; private DashState m_state; private DashState State { get { return m_state; } set { if (m_state != value) { EndState(m_state); m_state = value; BeginState(m_state); } } } public ExpandDashBehavior() { dashDirection = DashDirection.Random; warpDashAnimLength = true; gunHands = new List(); } public override void Start() { ((BasicAttackBehavior)this).Start(); m_trailRenderer = ((Component)((BehaviorBase)this).m_aiActor).GetComponentInChildren(); if (toggleTrailRenderer && Object.op_Implicit((Object)(object)m_trailRenderer)) { ((Renderer)m_trailRenderer).enabled = false; } m_shadowTrail = ((Component)((BehaviorBase)this).m_aiActor).GetComponent(); if (bulletScript != null && !bulletScript.IsNull) { tk2dSpriteAnimator spriteAnimator = ((BraveBehaviour)((BehaviorBase)this).m_aiActor).spriteAnimator; spriteAnimator.AnimationEventTriggered = (Action)Delegate.Combine(spriteAnimator.AnimationEventTriggered, new Action(AnimationEventTriggered)); } if (stopOnCollision) { SpeculativeRigidbody specRigidbody = ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody; specRigidbody.OnCollision = (Action)Delegate.Combine(specRigidbody.OnCollision, new Action(OnCollision)); } } public override void Upkeep() { ((BasicAttackBehavior)this).Upkeep(); ((BehaviorBase)this).DecrementTimer(ref m_dashTimer, false); } public override BehaviorResult Update() { //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_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) if (hideShadow && !Object.op_Implicit((Object)(object)m_shadowSprite) && Object.op_Implicit((Object)(object)((GameActor)((BehaviorBase)this).m_aiActor).ShadowObject)) { m_shadowSprite = ((GameActor)((BehaviorBase)this).m_aiActor).ShadowObject.GetComponent(); } BehaviorResult val = ((BasicAttackBehavior)this).Update(); if ((int)val != 0) { return val; } if (((AttackBehaviorBase)this).IsReady()) { if (Object.op_Implicit((Object)(object)((BehaviorBase)this).m_aiActor.TargetRigidbody)) { m_dashDirection = GetDashDirection(); if (!string.IsNullOrEmpty(chargeAnim)) { State = DashState.Charge; } else { State = DashState.Dash; } ((BehaviorBase)this).m_updateEveryFrame = true; return (BehaviorResult)4; } return (BehaviorResult)0; } return (BehaviorResult)0; } public override ContinuousBehaviorResult ContinuousUpdate() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) ((BehaviorBase)this).ContinuousUpdate(); if (State == DashState.Charge) { if (!((BehaviorBase)this).m_aiAnimator.IsPlaying(chargeAnim)) { State = DashState.Dash; } } else if (State == DashState.Dash) { if (doDodgeDustUp) { bool flag = ((BraveBehaviour)((BehaviorBase)this).m_aiActor).spriteAnimator.QueryGroundedFrame(); if (!m_cachedGrounded && flag && !((GameActor)((BehaviorBase)this).m_aiActor).IsFalling) { GameManager.Instance.Dungeon.dungeonDustups.InstantiateLandDustup(Vector2.op_Implicit(((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.UnitCenter)); ((GameActor)((BehaviorBase)this).m_aiActor).DoDustUps = m_cachedDoDustups; } m_cachedGrounded = flag; } if (enableShadowTrail && m_dashTimer <= 0.1f) { m_shadowTrail.spawnShadows = false; } if (m_dashTimer <= 0f) { return (ContinuousBehaviorResult)1; } } else if (State == DashState.Idle) { return (ContinuousBehaviorResult)1; } return (ContinuousBehaviorResult)0; } public override void EndContinuousUpdate() { //IL_0026: 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) ((BehaviorBase)this).EndContinuousUpdate(); ((BehaviorBase)this).m_updateEveryFrame = false; if (postDashSpeed > 0f) { ((BehaviorBase)this).m_aiActor.BehaviorVelocity = ((Vector2)(ref m_dashDirection)).normalized * postDashSpeed; } else { ((BehaviorBase)this).m_aiActor.BehaviorOverridesVelocity = false; ((BehaviorBase)this).m_aiAnimator.LockFacingDirection = false; } State = DashState.Idle; ((BasicAttackBehavior)this).UpdateCooldowns(); if (!m_lastDashWasDouble) { if (doubleDashChance > 0f && Random.value < doubleDashChance) { base.m_cooldownTimer = 0f; m_lastDashWasDouble = true; } } else { m_lastDashWasDouble = false; } } public void AnimationEventTriggered(tk2dSpriteAnimator animator, tk2dSpriteAnimationClip clip, int frame) { if (m_state == DashState.Dash && m_shouldFire && clip.GetFrame(frame).eventInfo == "fire") { Fire(); } } public void OnCollision(CollisionData collisionData) { if (m_state == DashState.Dash && !collisionData.IsTriggerCollision && (!Object.op_Implicit((Object)(object)collisionData.OtherRigidbody) || !Object.op_Implicit((Object)(object)((BraveBehaviour)collisionData.OtherRigidbody).projectile))) { State = DashState.Idle; } } private float[] GetDirections() { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //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) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) float[] array = new float[0]; if (dashDirection == DashDirection.PerpendicularToTarget) { float num = Vector2Extensions.ToAngle(((BehaviorBase)this).m_aiActor.TargetRigidbody.GetUnitCenter((ColliderType)1) - ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.UnitCenter); array = new float[2] { num + 90f, num - 90f }; BraveUtility.RandomizeArray(array, 0, -1); } else if (dashDirection == DashDirection.KindaTowardTarget) { float num2 = Vector2Extensions.ToAngle(((BehaviorBase)this).m_aiActor.TargetRigidbody.GetUnitCenter((ColliderType)1) - ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.UnitCenter); array = new float[3] { num2, num2 - quantizeDirection, num2 + quantizeDirection }; BraveUtility.RandomizeArray(array, 1, -1); } else if (dashDirection == DashDirection.TowardTarget) { float num3 = Vector2Extensions.ToAngle(((BehaviorBase)this).m_aiActor.TargetRigidbody.GetUnitCenter((ColliderType)1) - ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.UnitCenter); array = new float[1] { num3 }; } else if (dashDirection == DashDirection.Random) { if (quantizeDirection <= 0f) { array = new float[16]; for (int i = 0; i < array.Length; i++) { array[i] = Random.Range(0f, 360f); } } else { array = new float[Mathf.RoundToInt(360f / quantizeDirection)]; for (int j = 0; j < array.Length; j++) { array[j] = (float)j * quantizeDirection; } BraveUtility.RandomizeArray(array, 0, -1); } } else if (dashDirection == DashDirection.Random) { if (quantizeDirection <= 0f) { array = new float[16]; for (int k = 0; k < array.Length; k++) { array[k] = Random.Range(0f, 360f); } } else { array = new float[Mathf.RoundToInt(360f / quantizeDirection)]; for (int l = 0; l < array.Length; l++) { array[l] = (float)l * quantizeDirection; } BraveUtility.RandomizeArray(array, 0, -1); } } if (quantizeDirection > 0f) { for (int m = 0; m < array.Length; m++) { array[m] = BraveMathCollege.QuantizeFloat(array[m], quantizeDirection); } } return array; } private Vector2 GetDashDirection() { //IL_0007: 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_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0042: 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_02b8: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02c7: Unknown result type (might be due to invalid IL or missing references) //IL_02dd: Unknown result type (might be due to invalid IL or missing references) //IL_0313: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0092: 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_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: 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_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_02a3: 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_012a: Unknown result type (might be due to invalid IL or missing references) //IL_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_01cf: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_01d6: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Unknown result type (might be due to invalid IL or missing references) //IL_0216: Invalid comparison between Unknown and I4 //IL_01f1: Unknown result type (might be due to invalid IL or missing references) //IL_0264: Unknown result type (might be due to invalid IL or missing references) //IL_0269: Unknown result type (might be due to invalid IL or missing references) //IL_026b: Unknown result type (might be due to invalid IL or missing references) //IL_0270: Unknown result type (might be due to invalid IL or missing references) //IL_027d: Unknown result type (might be due to invalid IL or missing references) float[] directions = GetDirections(); Vector2 val = Vector2.zero; Vector2 unitCenter = ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.GetUnitCenter((ColliderType)1); RaycastResult val3 = default(RaycastResult); for (int i = 0; i < directions.Length; i++) { bool flag = false; bool flag2 = false; Vector2 val2 = BraveMathCollege.DegreesToVector(directions[i], 1f); bool flag3 = PhysicsEngine.Instance.Raycast(unitCenter, val2, dashDistance, ref val3, true, true, int.MaxValue, (CollisionLayer?)(CollisionLayer)3, false, (Func)null, ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody); RaycastResult.Pool.Free(ref val3); for (float num = 0.25f; num <= dashDistance; num += 0.25f) { if (flag) { break; } if (flag3) { break; } Vector2 val4 = unitCenter + num * val2; if (!GameManager.Instance.Dungeon.CellExists(val4)) { flag = true; } else if (GameManager.Instance.Dungeon.ShouldReallyFall(Vector2.op_Implicit(val4))) { flag = true; } } for (float num = 0.25f; num <= dashDistance; num += 0.25f) { if (flag) { break; } if (flag2) { break; } if (flag3) { break; } IntVector2 val5 = Vector2Extensions.ToIntVector2(unitCenter + num * val2, (VectorConversions)0); if (!GameManager.Instance.Dungeon.CellExists(val5)) { flag2 = true; } else if (GameManager.Instance.Dungeon.data.CheckInBoundsAndValid(val5) && GameManager.Instance.Dungeon.data[val5].isExitCell) { flag2 = true; } } if (avoidTarget && Object.op_Implicit((Object)(object)base.m_behaviorSpeculator.TargetRigidbody) && !flag && !flag2 && !flag3) { Vector2 unitCenter2 = ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.GetUnitCenter((ColliderType)2); Vector2 val6 = base.m_behaviorSpeculator.TargetRigidbody.GetUnitCenter((ColliderType)2) - unitCenter2; float num2 = dashDistance + 2f; if (((Vector2)(ref val6)).magnitude < num2 && BraveMathCollege.AbsAngleBetween(Vector2Extensions.ToAngle(val6), directions[i]) < 80f) { flag3 = true; } if ((int)GameManager.Instance.CurrentGameType == 1 && !flag3) { GameActor playerTarget = ((BehaviorBase)this).m_aiActor.PlayerTarget; PlayerController val7 = (PlayerController)(object)((playerTarget is PlayerController) ? playerTarget : null); if (Object.op_Implicit((Object)(object)val7)) { PlayerController otherPlayer = GameManager.Instance.GetOtherPlayer(val7); if (Object.op_Implicit((Object)(object)otherPlayer) && ((BraveBehaviour)otherPlayer).healthHaver.IsAlive) { val6 = ((BraveBehaviour)otherPlayer).specRigidbody.GetUnitCenter((ColliderType)2) - unitCenter2; if (((Vector2)(ref val6)).magnitude < num2 && BraveMathCollege.AbsAngleBetween(Vector2Extensions.ToAngle(val6), directions[i]) < 80f) { flag3 = true; } } } } } if (!flag3 && !flag && !flag2) { val = val2; break; } } if (val != Vector2.zero) { return ((Vector2)(ref val)).normalized; } if (directions.Length != 0) { return BraveMathCollege.DegreesToVector(directions[^1], 1f); } float num3 = Random.Range(0f, 360f); if (quantizeDirection > 0f) { BraveMathCollege.QuantizeFloat(num3, quantizeDirection); } return BraveMathCollege.DegreesToVector(num3, 1f); } private void Fire() { if (!Object.op_Implicit((Object)(object)((BraveBehaviour)((BehaviorBase)this).m_aiActor).bulletBank)) { m_shouldFire = false; return; } if (!Object.op_Implicit((Object)(object)m_bulletSource)) { m_bulletSource = GameObjectExtensions.GetOrAddComponent(ShootPoint); } m_bulletSource.BulletManager = ((BraveBehaviour)((BehaviorBase)this).m_aiActor).bulletBank; m_bulletSource.BulletScript = bulletScript; m_bulletSource.Initialize(); m_shouldFire = false; } private void BeginState(DashState state) { //IL_0017: 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) //IL_0072: 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_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0154: 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_0330: Unknown result type (might be due to invalid IL or missing references) //IL_0335: Unknown result type (might be due to invalid IL or missing references) //IL_033a: Unknown result type (might be due to invalid IL or missing references) switch (state) { case DashState.Charge: ((BehaviorBase)this).m_aiAnimator.LockFacingDirection = true; ((BehaviorBase)this).m_aiAnimator.FacingDirection = Vector2Extensions.ToAngle(m_dashDirection); ((BehaviorBase)this).m_aiAnimator.PlayUntilFinished(chargeAnim, true, (string)null, -1f, false); ((BehaviorBase)this).m_aiActor.ClearPath(); if (!((BehaviorBase)this).m_aiActor.BehaviorOverridesVelocity) { ((BehaviorBase)this).m_aiActor.BehaviorOverridesVelocity = true; ((BehaviorBase)this).m_aiActor.BehaviorVelocity = Vector2.zero; } break; case DashState.Dash: { if (bulletScript != null && !bulletScript.IsNull) { m_shouldFire = true; } ((BehaviorBase)this).m_aiAnimator.LockFacingDirection = true; ((BehaviorBase)this).m_aiAnimator.FacingDirection = Vector2Extensions.ToAngle(m_dashDirection); if (!string.IsNullOrEmpty(dashAnim)) { if (warpDashAnimLength) { AIAnimator aiAnimator = ((BehaviorBase)this).m_aiAnimator; string text = dashAnim; bool flag = true; float num = dashTime; aiAnimator.PlayUntilFinished(text, flag, (string)null, num, false); } else { ((BehaviorBase)this).m_aiAnimator.PlayUntilFinished(dashAnim, true, (string)null, -1f, false); } } if (doDodgeDustUp) { m_cachedDoDustups = ((GameActor)((BehaviorBase)this).m_aiActor).DoDustUps; ((GameActor)((BehaviorBase)this).m_aiActor).DoDustUps = false; GameManager.Instance.Dungeon.dungeonDustups.InstantiateDodgeDustup(m_dashDirection, Vector2.op_Implicit(((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.UnitBottomCenter)); m_cachedGrounded = true; } if (hideShadow && Object.op_Implicit((Object)(object)m_shadowSprite)) { ((BraveBehaviour)m_shadowSprite).renderer.enabled = false; } if (hideGun && Object.op_Implicit((Object)(object)((BehaviorBase)this).m_aiShooter)) { ((BehaviorBase)this).m_aiShooter.ToggleGunAndHandRenderers(false, "ExpandDashBehavior"); } if (hideGun && gunHands != null && gunHands.Count > 0) { foreach (GunHandController gunHand in gunHands) { if (Object.op_Implicit((Object)(object)gunHand.Gun) && Object.op_Implicit((Object)(object)((BraveBehaviour)gunHand.Gun).sprite)) { ((BraveBehaviour)((BraveBehaviour)gunHand.Gun).sprite).renderer.enabled = false; SpriteOutlineManager.ToggleOutlineRenderers(((BraveBehaviour)gunHand.Gun).sprite, false); } if (Object.op_Implicit((Object)(object)gunHand.handObject) && Object.op_Implicit((Object)(object)((BraveBehaviour)gunHand.handObject).sprite)) { ((BraveBehaviour)((BraveBehaviour)gunHand.handObject).sprite).renderer.enabled = false; SpriteOutlineManager.ToggleOutlineRenderers(((BraveBehaviour)gunHand.handObject).sprite, false); } } } if (toggleTrailRenderer && Object.op_Implicit((Object)(object)m_trailRenderer)) { ((Renderer)m_trailRenderer).enabled = true; } if (enableShadowTrail) { m_shadowTrail.spawnShadows = true; AkSoundEngine.PostEvent("Play_ENM_highpriest_dash_01", ((Component)GameManager.Instance.PrimaryPlayer).gameObject); } float num2 = dashDistance / dashTime; m_dashTimer = dashTime; ((BehaviorBase)this).m_aiActor.ClearPath(); ((BehaviorBase)this).m_aiActor.BehaviorOverridesVelocity = true; ((BehaviorBase)this).m_aiActor.BehaviorVelocity = num2 * m_dashDirection; if (bulletScript != null && !bulletScript.IsNull && fireAtDashStart) { Fire(); } break; } } } private void EndState(DashState state) { //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: Unknown result type (might be due to invalid IL or missing references) if (state != DashState.Dash) { return; } if (!string.IsNullOrEmpty(dashAnim)) { ((BehaviorBase)this).m_aiAnimator.EndAnimationIf(dashAnim); } if (bulletScript != null && !bulletScript.IsNull && m_shouldFire) { Fire(); } if (doDodgeDustUp) { ((GameActor)((BehaviorBase)this).m_aiActor).DoDustUps = m_cachedDoDustups; } if (hideShadow && Object.op_Implicit((Object)(object)m_shadowSprite)) { ((BraveBehaviour)m_shadowSprite).renderer.enabled = true; } if (hideGun && Object.op_Implicit((Object)(object)((BehaviorBase)this).m_aiShooter)) { ((BehaviorBase)this).m_aiShooter.ToggleGunAndHandRenderers(true, "ExpandDashBehavior"); } if (hideGun && gunHands != null && gunHands.Count > 0) { foreach (GunHandController gunHand in gunHands) { if (Object.op_Implicit((Object)(object)gunHand.Gun) && Object.op_Implicit((Object)(object)((BraveBehaviour)gunHand.Gun).sprite)) { ((BraveBehaviour)((BraveBehaviour)gunHand.Gun).sprite).renderer.enabled = true; SpriteOutlineManager.ToggleOutlineRenderers(((BraveBehaviour)gunHand.Gun).sprite, true); } if (Object.op_Implicit((Object)(object)gunHand.handObject) && Object.op_Implicit((Object)(object)((BraveBehaviour)gunHand.handObject).sprite)) { ((BraveBehaviour)((BraveBehaviour)gunHand.handObject).sprite).renderer.enabled = true; SpriteOutlineManager.ToggleOutlineRenderers(((BraveBehaviour)gunHand.handObject).sprite, true); } } } if (toggleTrailRenderer && Object.op_Implicit((Object)(object)m_trailRenderer)) { ((Renderer)m_trailRenderer).enabled = false; } if (enableShadowTrail) { m_shadowTrail.spawnShadows = false; } if (postDashSpeed <= 0f) { ((BehaviorBase)this).m_aiActor.BehaviorVelocity = Vector2.zero; } if ((Object)(object)m_bulletSource != (Object)null) { m_bulletSource.ForceStop(); } } } public class ExpandHideGunHandsOnDeath : BraveBehaviour { public List gunHands; private bool m_hasTriggered; public ExpandHideGunHandsOnDeath() { gunHands = new List(); m_hasTriggered = false; } public void Start() { ((BraveBehaviour)this).healthHaver.OnPreDeath += OnPreDeath; } private void OnPreDeath(Vector2 dirVec) { if (m_hasTriggered) { return; } m_hasTriggered = true; if (gunHands.Count <= 0) { return; } foreach (GunHandController gunHand in gunHands) { if (Object.op_Implicit((Object)(object)gunHand.Gun)) { ((BraveBehaviour)gunHand.Gun).renderer.enabled = false; SpriteOutlineManager.ToggleOutlineRenderers(((BraveBehaviour)gunHand.Gun).sprite, false); } if (Object.op_Implicit((Object)(object)gunHand.handObject)) { ((BraveBehaviour)((BraveBehaviour)gunHand.handObject).sprite).renderer.enabled = false; SpriteOutlineManager.ToggleOutlineRenderers(((BraveBehaviour)gunHand.handObject).sprite, false); ((Component)gunHand.handObject).gameObject.SetActive(false); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)gunHand).sprite)) { ((BraveBehaviour)((BraveBehaviour)gunHand).sprite).renderer.enabled = false; SpriteOutlineManager.ToggleOutlineRenderers(((BraveBehaviour)gunHand).sprite, false); } } } protected override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); } } public class ExpandParadropController : BraveBehaviour { private enum State { Wait, PopIntoAir, ParaDrop, End, Exception } public bool Configured; public bool StartsIntheAir; public bool ParentObjectExplodyBarrel; public bool UseLandingVFX; public bool UseObjectSizeOverride; public float LandingPositionOffset; public float DropHeightHorizontalOffset; public float StartHeight; public float PopupSpeed; public float PopUpHeight; public float DropSpeed; public float MaxSwayAngle; public float SwaySpeed; public Vector2 OverrideObjectSize; public int ItemDropID; public bool IsItemCrate; public bool IsToadie; public bool ChangeScaleOnPopup; private bool m_ParadropStarted; private bool m_Initialized; private State switchState; private float m_CachedSpriteZDepth; private AIActor m_ParentEnemy; private Vector2 m_cachedScale; private Vector2 m_cachedPosition; private Vector2 m_CachedPositionOffset; private float m_startScale; private Quaternion m_CachedRotation; private int m_CachedLayer; private float m_maxSway; private GameObject m_Parachute; private tk2dSprite m_ParachuteSprite; private tk2dSpriteAnimator m_ParachuteSpriteAnimator; private GameObject m_LandingVFX; private GameObject m_ItemBoxAnchor; private Transform m_Anchor; private ExplosionData m_CachedExplosionData; public ExpandParadropController() { //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) Configured = false; StartsIntheAir = false; ParentObjectExplodyBarrel = false; UseLandingVFX = false; UseObjectSizeOverride = false; IsItemCrate = false; IsToadie = false; ChangeScaleOnPopup = false; LandingPositionOffset = -1f; DropHeightHorizontalOffset = 0f; StartHeight = 10f; PopupSpeed = 0.5f; PopUpHeight = 6f; DropSpeed = 3f; MaxSwayAngle = 15f; SwaySpeed = 2f; OverrideObjectSize = Vector2.one; ItemDropID = 78; m_ParadropStarted = false; m_Initialized = false; switchState = State.Wait; m_startScale = 0.25f; } public void SetObjectScale(Vector2 scale) { //IL_0006: 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) ((BraveBehaviour)this).transform.localScale = Vector2Extensions.ToVector3ZUp(scale, 1f); if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).specRigidbody)) { ((BraveBehaviour)this).specRigidbody.UpdateCollidersOnScale = true; ((BraveBehaviour)this).specRigidbody.RegenerateColliders = true; } } private IEnumerator Start() { while (!Configured) { if (IsItemCrate) { yield return (object)new WaitForSeconds(0.01f); Configured = true; break; } yield return null; } yield return null; Init(); } private void Init() { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: 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_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: 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_00a0: 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_017b: Unknown result type (might be due to invalid IL or missing references) //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Unknown result type (might be due to invalid IL or missing references) //IL_0267: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Unknown result type (might be due to invalid IL or missing references) //IL_02de: Unknown result type (might be due to invalid IL or missing references) //IL_02e1: Unknown result type (might be due to invalid IL or missing references) //IL_0385: Unknown result type (might be due to invalid IL or missing references) //IL_038a: Unknown result type (might be due to invalid IL or missing references) //IL_0354: Unknown result type (might be due to invalid IL or missing references) //IL_036b: Unknown result type (might be due to invalid IL or missing references) //IL_03b7: Unknown result type (might be due to invalid IL or missing references) //IL_03bc: Unknown result type (might be due to invalid IL or missing references) //IL_03cf: Expected O, but got Unknown //IL_03dc: Unknown result type (might be due to invalid IL or missing references) //IL_03e1: Unknown result type (might be due to invalid IL or missing references) //IL_0444: Unknown result type (might be due to invalid IL or missing references) //IL_0449: Unknown result type (might be due to invalid IL or missing references) //IL_0475: Unknown result type (might be due to invalid IL or missing references) //IL_047a: Unknown result type (might be due to invalid IL or missing references) //IL_04a1: Unknown result type (might be due to invalid IL or missing references) //IL_04a7: Unknown result type (might be due to invalid IL or missing references) //IL_04b1: Unknown result type (might be due to invalid IL or missing references) //IL_04b6: Unknown result type (might be due to invalid IL or missing references) //IL_04bb: Unknown result type (might be due to invalid IL or missing references) //IL_04c0: Unknown result type (might be due to invalid IL or missing references) m_ParentEnemy = ((BraveBehaviour)this).aiActor; m_CachedRotation = ((BraveBehaviour)this).transform.rotation; m_cachedPosition = Vector2.op_Implicit(((BraveBehaviour)this).transform.position); m_CachedLayer = ((Component)this).gameObject.layer; m_CachedSpriteZDepth = ((BraveBehaviour)this).sprite.HeightOffGround; m_maxSway = MaxSwayAngle; if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).knockbackDoer)) { ((BraveBehaviour)this).knockbackDoer.SetImmobile(true, "Paradrop Protection"); } if (Object.op_Implicit((Object)(object)m_ParentEnemy) && ChangeScaleOnPopup) { m_cachedScale = m_ParentEnemy.EnemyScale; } else if (ChangeScaleOnPopup) { m_cachedScale = Vector2.one; } if (Object.op_Implicit((Object)(object)m_ParentEnemy) && ((GameActor)m_ParentEnemy).HasShadow && Object.op_Implicit((Object)(object)((GameActor)m_ParentEnemy).ShadowObject)) { ((BraveBehaviour)((GameActor)m_ParentEnemy).ShadowObject.GetComponent()).renderer.enabled = false; } if (Object.op_Implicit((Object)(object)m_ParentEnemy)) { ((Behaviour)((BraveBehaviour)m_ParentEnemy).behaviorSpeculator).enabled = false; if (Object.op_Implicit((Object)(object)((BraveBehaviour)m_ParentEnemy).aiAnimator)) { ((BraveBehaviour)m_ParentEnemy).aiAnimator.FacingDirection = -90f; } if (Object.op_Implicit((Object)(object)((BraveBehaviour)m_ParentEnemy).aiShooter)) { ((BraveBehaviour)m_ParentEnemy).aiShooter.AimAtPoint(((GameActor)m_ParentEnemy).CenterPosition - new Vector2(0f, 2f)); ((BraveBehaviour)m_ParentEnemy).aiShooter.ToggleGunAndHandRenderers(false, "ParaDrop"); } } if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).specRigidbody) && !IsItemCrate) { ((BraveBehaviour)this).specRigidbody.CollideWithOthers = false; } if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).healthHaver)) { ((BraveBehaviour)this).healthHaver.PreventAllDamage = true; ((BraveBehaviour)this).healthHaver.IsVulnerable = false; } if (ParentObjectExplodyBarrel && !IsItemCrate) { m_CachedExplosionData = ExpandUtility.GenerateExplosionData(); } if (!IsItemCrate) { ((BraveBehaviour)((BraveBehaviour)this).sprite).renderer.enabled = false; } m_Parachute = Object.Instantiate(ExpandPrefabs.EX_Parachute, Vector3.zero, Quaternion.identity); m_ParachuteSpriteAnimator = m_Parachute.GetComponent(); m_ParachuteSprite = m_Parachute.GetComponent(); ((BraveBehaviour)m_ParachuteSprite).renderer.enabled = false; if (IsItemCrate) { tk2dSprite parachuteSprite = m_ParachuteSprite; ((tk2dBaseSprite)parachuteSprite).HeightOffGround = ((tk2dBaseSprite)parachuteSprite).HeightOffGround + 3f; ((tk2dBaseSprite)m_ParachuteSprite).UpdateZDepth(); } Bounds bounds = ((tk2dBaseSprite)m_ParachuteSprite).GetBounds(); float num = ((Bounds)(ref bounds)).size.x / 2f; float num2 = m_cachedPosition.x; float num3 = m_cachedPosition.y; if (UseObjectSizeOverride) { num2 += OverrideObjectSize.x; num3 += OverrideObjectSize.y; } else if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).specRigidbody)) { ((BraveBehaviour)this).specRigidbody.Reinitialize(); num2 = ((BraveBehaviour)this).specRigidbody.GetPixelCollider((ColliderType)2).UnitCenter.x; num3 = ((BraveBehaviour)this).specRigidbody.GetPixelCollider((ColliderType)2).UnitTopCenter.y; } m_Parachute.transform.position = Vector2.op_Implicit(new Vector2(num2 - num, num3)); m_Parachute.layer = ((Component)this).gameObject.layer; if (IsItemCrate) { GameObject val = new GameObject("EX ItemBox Anchor") { layer = ((Component)this).gameObject.layer }; val.transform.position = Vector2.op_Implicit(((tk2dBaseSprite)m_ParachuteSprite).WorldBottomCenter); m_ItemBoxAnchor = val; val.transform.SetParent(m_Parachute.transform); ((Component)this).gameObject.transform.SetParent(val.transform); } else { ((Component)this).gameObject.transform.SetParent(m_Parachute.transform); } m_Anchor = new GameObject("EXParaDropAnchor") { layer = ((Component)this).gameObject.layer }.transform; ((Component)m_Anchor).transform.position = Vector2.op_Implicit(((tk2dBaseSprite)m_ParachuteSprite).WorldBottomCenter); m_Parachute.transform.SetParent(m_Anchor); m_CachedPositionOffset = Vector2.op_Implicit(m_Anchor.position - Vector2Extensions.ToVector3ZUp(m_cachedPosition, 0f)); switchState = State.PopIntoAir; m_Initialized = true; } private IEnumerator SpawnItem(int itemID) { GameObject ItemToSpawn = ((Component)PickupObjectDatabase.GetById(itemID)).gameObject; Vector3 ItemSpawnOffset = new Vector3(-0.5f, 0.5f, 0f); Vector3 GunSpawnOffset = new Vector3(0f, 0.5f, 0f); Vector3? SpawnPosition = ((!Object.op_Implicit((Object)(object)((BraveBehaviour)this).specRigidbody)) ? new Vector3?(Vector2Extensions.ToVector3ZUp(((BraveBehaviour)this).sprite.WorldCenter, 0f)) : new Vector3?(Vector2.op_Implicit(((BraveBehaviour)this).specRigidbody.GetPixelCollider((ColliderType)0).UnitCenter))); yield return null; if (Object.op_Implicit((Object)(object)ItemToSpawn.GetComponent())) { GameObject obj = Object.Instantiate(ItemToSpawn); obj.GetComponent().PlaceAtPositionByAnchor(SpawnPosition.Value + GunSpawnOffset, (Anchor)4); Gun component = obj.GetComponent(); component.Initialize((GameActor)null); component.DropGun(0.5f); } else { LootEngine.SpawnItem(ItemToSpawn, SpawnPosition.Value + ItemSpawnOffset, Vector2.zero, 0f, false, false, false); } ((BraveBehaviour)this).spriteAnimator.PlayAndDestroyObject("bustopen", (Action)null); } private IEnumerator HandlePopup() { float elapsed = 0f; _ = Vector2.zero; Bounds bounds; Vector2 startOffset; if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).specRigidbody)) { Vector2 val = m_cachedPosition + m_CachedPositionOffset; bounds = ((tk2dBaseSprite)m_ParachuteSprite).GetBounds(); startOffset = val + new Vector2(((Bounds)(ref bounds)).size.x / 2f, 0f); } else if (UseObjectSizeOverride) { startOffset = m_cachedPosition + m_CachedPositionOffset + new Vector2(OverrideObjectSize.x, 0f); } else { Vector2 val2 = m_cachedPosition + m_CachedPositionOffset; bounds = ((BraveBehaviour)this).sprite.GetBounds(); startOffset = val2 + new Vector2(((Bounds)(ref bounds)).size.x / 2f, 0f); } Vector2 HeighestPointPosition = startOffset + new Vector2(DropHeightHorizontalOffset, PopUpHeight); int cachedLayer = ((Component)this).gameObject.layer; int cachedOutlineLayer = cachedLayer; while (elapsed < PopupSpeed) { elapsed += BraveTime.DeltaTime; if (switchState == State.Exception) { break; } if (!StartsIntheAir) { m_Anchor.position = Vector2.op_Implicit(Vector2.Lerp(startOffset, HeighestPointPosition, elapsed / PopupSpeed)); } if (ChangeScaleOnPopup) { SetObjectScale(Vector2.Lerp(new Vector2(m_startScale, m_startScale), m_cachedScale, elapsed / PopupSpeed)); } yield return null; } if (switchState != State.Exception) { ((Component)this).gameObject.layer = cachedLayer; SpriteOutlineManager.ChangeOutlineLayer(((BraveBehaviour)this).sprite, cachedOutlineLayer); if (switchState != State.Exception) { switchState = State.ParaDrop; } } } private IEnumerator HandleDrop() { float elapsed = 0f; Vector2 startPosition = Vector2.op_Implicit(m_Anchor.position); Vector2 landingPosition = m_cachedPosition + new Vector2(m_CachedPositionOffset.x, m_CachedPositionOffset.y + LandingPositionOffset); m_ParachuteSpriteAnimator.Play("ParachuteDeploy"); yield return null; while (m_ParachuteSpriteAnimator.IsPlaying("ParachuteDeploy")) { yield return null; } while (elapsed < DropSpeed) { elapsed += BraveTime.DeltaTime; if (switchState == State.Exception) { break; } m_Anchor.position = Vector2.op_Implicit(Vector2.Lerp(startPosition, landingPosition, elapsed / DropSpeed)); yield return null; } if (switchState != State.Exception) { if (Object.op_Implicit((Object)(object)m_LandingVFX)) { SpawnManager.Despawn(m_LandingVFX); } if (switchState != State.Exception) { switchState = State.End; } } } private void Update() { //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_0151: 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_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_029a: Unknown result type (might be due to invalid IL or missing references) //IL_029f: Unknown result type (might be due to invalid IL or missing references) //IL_02a4: Unknown result type (might be due to invalid IL or missing references) //IL_02b6: Unknown result type (might be due to invalid IL or missing references) //IL_02bb: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Unknown result type (might be due to invalid IL or missing references) //IL_02eb: Unknown result type (might be due to invalid IL or missing references) //IL_02ec: Unknown result type (might be due to invalid IL or missing references) //IL_02ee: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing references) //IL_0214: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Unknown result type (might be due to invalid IL or missing references) //IL_0317: Unknown result type (might be due to invalid IL or missing references) //IL_031c: Unknown result type (might be due to invalid IL or missing references) //IL_0321: Unknown result type (might be due to invalid IL or missing references) //IL_0339: Unknown result type (might be due to invalid IL or missing references) //IL_033e: Unknown result type (might be due to invalid IL or missing references) //IL_0343: Unknown result type (might be due to invalid IL or missing references) //IL_0350: Unknown result type (might be due to invalid IL or missing references) //IL_0352: Unknown result type (might be due to invalid IL or missing references) //IL_0355: Unknown result type (might be due to invalid IL or missing references) //IL_041b: Unknown result type (might be due to invalid IL or missing references) //IL_0524: Unknown result type (might be due to invalid IL or missing references) //IL_060f: Unknown result type (might be due to invalid IL or missing references) //IL_0614: Unknown result type (might be due to invalid IL or missing references) //IL_061f: Unknown result type (might be due to invalid IL or missing references) //IL_0565: Unknown result type (might be due to invalid IL or missing references) if (!Configured) { return; } try { if (m_Initialized && Object.op_Implicit((Object)(object)((BraveBehaviour)this).healthHaver) && ((BraveBehaviour)this).healthHaver.IsDead) { ((MonoBehaviour)this).StopAllCoroutines(); if (Object.op_Implicit((Object)(object)m_LandingVFX)) { SpawnManager.Despawn(m_LandingVFX); } GameObjectExtensions.SetLayerRecursively(((Component)m_Anchor).gameObject, LayerMask.NameToLayer("Unoccluded")); GameObjectExtensions.SetLayerRecursively(((Component)m_Anchor).gameObject, m_CachedLayer); m_Parachute.transform.DetachChildren(); m_Anchor.DetachChildren(); ((BraveBehaviour)this).sprite.DetachRenderer((tk2dBaseSprite)(object)m_ParachuteSprite); m_ParachuteSpriteAnimator.PlayAndDestroyObject("ParachuteLanded", (Action)null); Object.Destroy((Object)(object)((Component)m_Anchor).gameObject); switchState = State.Wait; } switch (switchState) { case State.Wait: break; case State.PopIntoAir: ((BraveBehaviour)((BraveBehaviour)this).sprite).renderer.enabled = true; if (UseLandingVFX) { Vector3 val5 = Vector2.op_Implicit(m_cachedPosition + new Vector2(m_CachedPositionOffset.x, m_CachedPositionOffset.y + LandingPositionOffset)); m_LandingVFX = SpawnManager.SpawnVFX(ExpandAssets.LoadOfficialAsset("EmergencyCrate", ExpandAssets.AssetSource.BraveResources).GetComponent().landingTargetSprite, val5, Quaternion.identity); Transform transform = m_LandingVFX.transform; Vector3 position = transform.position; Bounds bounds = ((tk2dBaseSprite)m_LandingVFX.GetComponentInChildren()).GetBounds(); transform.position = position - new Vector3(0f, ((Bounds)(ref bounds)).size.y / 2f); ((tk2dBaseSprite)m_LandingVFX.GetComponentInChildren()).UpdateZDepth(); UseLandingVFX = false; } GameObjectExtensions.SetLayerRecursively(((Component)m_Anchor).gameObject, LayerMask.NameToLayer("Unoccluded")); if (StartsIntheAir) { Transform anchor = m_Anchor; anchor.position += new Vector3(DropHeightHorizontalOffset, StartHeight); } ((MonoBehaviour)this).StartCoroutine(HandlePopup()); switchState = State.Wait; break; case State.ParaDrop: { if (!m_ParadropStarted) { m_ParadropStarted = true; ((tk2dBaseSprite)m_ParachuteSprite).SetSprite("EX_Parachute_Open_01"); m_ParachuteSpriteAnimator.Play("ParachuteDeploy"); ((BraveBehaviour)m_ParachuteSprite).renderer.enabled = true; ((MonoBehaviour)this).StartCoroutine(HandleDrop()); } Quaternion val = Quaternion.Euler(new Vector3(0f, 0f, m_maxSway)); Quaternion val2 = Quaternion.Euler(new Vector3(0f, 0f, 0f - m_maxSway)); float num = 0.5f * (1f + Mathf.Sin((float)Math.PI * Time.realtimeSinceStartup * SwaySpeed)); m_Anchor.localRotation = Quaternion.Lerp(val, val2, num); if (IsItemCrate) { Quaternion val3 = Quaternion.Euler(new Vector3(0f, 0f, 0f - m_maxSway / 1.75f)); Quaternion val4 = Quaternion.Euler(new Vector3(0f, 0f, m_maxSway / 1.75f)); m_ItemBoxAnchor.transform.localRotation = Quaternion.Lerp(val3, val4, num); } break; } case State.End: switchState = State.Wait; if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).knockbackDoer)) { ((BraveBehaviour)this).knockbackDoer.SetImmobile(false, "Paradrop Protection"); } GameObjectExtensions.SetLayerRecursively(((Component)m_Anchor).gameObject, m_CachedLayer); m_Parachute.transform.DetachChildren(); if (IsItemCrate) { GameObjectExtensions.SetLayerRecursively(m_Parachute, LayerMask.NameToLayer("Unoccluded")); m_ItemBoxAnchor.transform.DetachChildren(); Object.Destroy((Object)(object)m_ItemBoxAnchor); } m_Anchor.DetachChildren(); ((BraveBehaviour)this).sprite.DetachRenderer((tk2dBaseSprite)(object)m_ParachuteSprite); m_ParachuteSpriteAnimator.PlayAndDestroyObject("ParachuteLanded", (Action)null); ((BraveBehaviour)this).transform.rotation = m_CachedRotation; if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).specRigidbody)) { if (!IsItemCrate) { ((BraveBehaviour)this).specRigidbody.CollideWithOthers = true; } ((BraveBehaviour)this).specRigidbody.UpdateColliderPositions(); ((BraveBehaviour)this).specRigidbody.Reinitialize(); } if (Object.op_Implicit((Object)(object)m_ParentEnemy)) { if (((GameActor)m_ParentEnemy).HasShadow && Object.op_Implicit((Object)(object)((GameActor)m_ParentEnemy).ShadowObject)) { ((BraveBehaviour)((GameActor)m_ParentEnemy).ShadowObject.GetComponent()).renderer.enabled = true; } if (Object.op_Implicit((Object)(object)((BraveBehaviour)m_ParentEnemy).aiShooter)) { ((BraveBehaviour)m_ParentEnemy).aiShooter.ToggleGunAndHandRenderers(true, "ParaDrop"); } if (!IsToadie) { ((Behaviour)((BraveBehaviour)m_ParentEnemy).behaviorSpeculator).enabled = true; m_ParentEnemy.HasBeenEngaged = true; ((BraveBehaviour)m_ParentEnemy).behaviorSpeculator.PostAwakenDelay = 0f; } ((BraveBehaviour)m_ParentEnemy).behaviorSpeculator.RemoveDelayOnReinforce = true; if ((Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)m_ParentEnemy).transform.position) == null) | (GameManager.HasInstance && Object.op_Implicit((Object)(object)GameManager.Instance.PrimaryPlayer) && GameManager.Instance.PrimaryPlayer.CurrentRoom != null && Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)m_ParentEnemy).transform.position) != GameManager.Instance.PrimaryPlayer.CurrentRoom)) { m_ParentEnemy.EraseFromExistence(true); Object.Destroy((Object)(object)((Component)m_Anchor).gameObject); Object.Destroy((Object)(object)this); } } if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).healthHaver)) { ((BraveBehaviour)this).healthHaver.PreventAllDamage = false; ((BraveBehaviour)this).healthHaver.IsVulnerable = true; } Object.Destroy((Object)(object)((Component)m_Anchor).gameObject); if (ParentObjectExplodyBarrel && !IsItemCrate) { ((BraveBehaviour)this).spriteAnimator.PlayAndDestroyObject("explode", (Action)null); if (m_CachedExplosionData != null) { Exploder.Explode(Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldCenter), m_CachedExplosionData, Vector2.zero, (Action)null, true, (CoreDamageTypes)0, false); } } if (!ParentObjectExplodyBarrel && !IsItemCrate) { Object.Destroy((Object)(object)this); } if (IsItemCrate) { ((BraveBehaviour)((BraveBehaviour)this).sprite).renderer.sortingLayerName = "Background"; ((BraveBehaviour)this).sprite.HeightOffGround = -1.5f; ((BraveBehaviour)this).sprite.UpdateZDepth(); ((MonoBehaviour)this).StartCoroutine(SpawnItem(ItemDropID)); } break; case State.Exception: { if (Object.op_Implicit((Object)(object)m_Parachute)) { Object.Destroy((Object)(object)m_Parachute); } if (Object.op_Implicit((Object)(object)m_LandingVFX)) { Object.Destroy((Object)(object)m_LandingVFX); } if (Object.op_Implicit((Object)(object)m_ItemBoxAnchor)) { Object.Destroy((Object)(object)m_ItemBoxAnchor); } AIActor component = ((Component)this).gameObject.GetComponent(); if (((component != null) ? component.ParentRoom : null) != null) { ((Component)this).gameObject.GetComponent().ParentRoom.DeregisterEnemy(((Component)this).gameObject.GetComponent(), false); } if (Object.op_Implicit((Object)(object)m_ParentEnemy)) { if (m_ParentEnemy.ParentRoom != null) { m_ParentEnemy.ParentRoom.DeregisterEnemy(m_ParentEnemy, false); } Object.Destroy((Object)(object)((Component)m_ParentEnemy).gameObject); } Object.Destroy((Object)(object)((Component)this).gameObject); break; } } } catch (Exception ex) { ((MonoBehaviour)this).StopAllCoroutines(); switchState = State.Exception; if (ExpandSettings.debugMode) { Debug.LogException(ex); ETGModConsole.Log((object)"[ExpandTheGungeon] ExpandParadropController: Exception caught in Update! Child objects destroyed and parent self terminated to prevent breaking things!", false); } } } protected override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); } } public class ExpandTallGrassPatchSystem : MonoBehaviour { private enum IndexPosition { TOP = 124, MIDDLE = 147, MIDDLEBOTTOM = 146, BOTTOM = 168 } internal struct EnflamedGrassData { public float fireTime; public bool hasEnflamedNeighbors; public bool HasPlayedFireOutro; public bool HasPlayedFireIntro; public float ParticleTimer; } [NonSerialized] public List cells; private Dictionary m_fireData; private ParticleSystem m_fireSystem; private ParticleSystem m_fireIntroSystem; private ParticleSystem m_fireOutroSystem; private Dictionary m_tiledSpritePool; private bool m_isPlayingFireAudio; private GameObject m_stripPrefab; private GoopDefinition m_GoopDefinition; public ExpandTallGrassPatchSystem() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Expected O, but got Unknown m_fireData = new Dictionary((IEqualityComparer?)new IntVector2EqualityComparer()); m_tiledSpritePool = new Dictionary(); } private void LateUpdate() { //IL_0016: 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) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: 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_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: 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_0107: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_0184: Unknown result type (might be due to invalid IL or missing references) bool flag = false; for (int i = 0; i < cells.Count; i++) { if (m_fireData.ContainsKey(cells[i])) { EnflamedGrassData fireData = m_fireData[cells[i]]; fireData.fireTime += BraveTime.DeltaTime; fireData.ParticleTimer -= BraveTime.DeltaTime; if (!m_fireData[cells[i]].hasEnflamedNeighbors && m_fireData[cells[i]].fireTime > 0.1f) { IgniteCell(cells[i] + IntVector2.North); IgniteCell(cells[i] + IntVector2.East); IgniteCell(cells[i] + IntVector2.South); IgniteCell(cells[i] + IntVector2.West); fireData.hasEnflamedNeighbors = true; } if (m_fireData[cells[i]].fireTime > 2.6f && m_tiledSpritePool.ContainsKey(cells[i])) { DestroyPatch(cells[i]); } if (fireData.HasPlayedFireOutro && fireData.ParticleTimer <= 0f) { RemovePosition(cells[i]); i--; } else { fireData = DoParticleAtPosition(cells[i], fireData); m_fireData[cells[i]] = fireData; } } } if (flag && !m_isPlayingFireAudio) { m_isPlayingFireAudio = true; AkSoundEngine.PostEvent("Play_ENV_oilfire_ignite_01", ((Component)GameManager.Instance.PrimaryPlayer).gameObject); } } private void InitializeParticleSystem() { //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_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Expected O, but got Unknown //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Expected O, but got Unknown //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Expected O, but got Unknown if (!((Object)(object)m_fireSystem != (Object)null)) { GameObject val = GameObject.Find("Gungeon_Fire_Main"); if ((Object)(object)val == (Object)null) { val = (GameObject)Object.Instantiate(BraveResources.Load("Particles/Gungeon_Fire_Main_raw", ".prefab"), Vector3.zero, Quaternion.identity); ((Object)val).name = "Gungeon_Fire_Main"; } m_fireSystem = val.GetComponent(); GameObject val2 = GameObject.Find("Gungeon_Fire_Intro"); if ((Object)(object)val2 == (Object)null) { val2 = (GameObject)Object.Instantiate(BraveResources.Load("Particles/Gungeon_Fire_Intro_raw", ".prefab"), Vector3.zero, Quaternion.identity); ((Object)val2).name = "Gungeon_Fire_Intro"; } m_fireIntroSystem = val2.GetComponent(); GameObject val3 = GameObject.Find("Gungeon_Fire_Outro"); if ((Object)(object)val3 == (Object)null) { val3 = (GameObject)Object.Instantiate(BraveResources.Load("Particles/Gungeon_Fire_Outro_raw", ".prefab"), Vector3.zero, Quaternion.identity); ((Object)val3).name = "Gungeon_Fire_Outro"; } m_fireOutroSystem = val3.GetComponent(); } } private IndexPosition GetTargetIndexForPosition(IntVector2 current) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0007: 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_001d: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //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_003f: 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) bool flag = cells.Contains(current + IntVector2.North); bool flag2 = cells.Contains(current + IntVector2.South); bool flag3 = cells.Contains(current + IntVector2.South + IntVector2.South); if (flag && flag2 && flag3) { return IndexPosition.MIDDLE; } if (flag && flag2) { return IndexPosition.MIDDLEBOTTOM; } if (flag && !flag2) { return IndexPosition.BOTTOM; } if (!flag && flag2) { return IndexPosition.TOP; } return IndexPosition.BOTTOM; } public void IgniteCircle(Vector2 center, float radius) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0010: 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_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) for (int i = Mathf.FloorToInt(center.x - radius); i < Mathf.CeilToInt(center.x + radius); i++) { for (int j = Mathf.FloorToInt(center.y - radius); j < Mathf.CeilToInt(center.y + radius); j++) { if (Vector2.Distance(new Vector2((float)i, (float)j), center) < radius) { IgniteCell(new IntVector2(i, j)); } } } } public void IgniteCell(IntVector2 cellPosition) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) if (cells.Contains(cellPosition) && !m_fireData.ContainsKey(cellPosition)) { m_fireData.Add(cellPosition, default(EnflamedGrassData)); DoFireAtPosition(cellPosition, 4f); } } private EnflamedGrassData DoParticleAtPosition(IntVector2 worldPos, EnflamedGrassData fireData) { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002d: 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_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: 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) //IL_02a7: Unknown result type (might be due to invalid IL or missing references) //IL_02af: Unknown result type (might be due to invalid IL or missing references) //IL_02b1: Unknown result type (might be due to invalid IL or missing references) //IL_02bd: Unknown result type (might be due to invalid IL or missing references) //IL_02cf: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02d8: Unknown result type (might be due to invalid IL or missing references) //IL_02dd: Unknown result type (might be due to invalid IL or missing references) //IL_02fb: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Unknown result type (might be due to invalid IL or missing references) //IL_0304: Unknown result type (might be due to invalid IL or missing references) //IL_0309: Unknown result type (might be due to invalid IL or missing references) //IL_030d: Unknown result type (might be due to invalid IL or missing references) //IL_0312: Unknown result type (might be due to invalid IL or missing references) //IL_032f: Unknown result type (might be due to invalid IL or missing references) //IL_0331: Unknown result type (might be due to invalid IL or missing references) //IL_0339: Unknown result type (might be due to invalid IL or missing references) //IL_01e1: Unknown result type (might be due to invalid IL or missing references) //IL_01e9: 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_01f7: Unknown result type (might be due to invalid IL or missing references) //IL_0209: Unknown result type (might be due to invalid IL or missing references) //IL_020e: 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_0235: Unknown result type (might be due to invalid IL or missing references) //IL_023a: Unknown result type (might be due to invalid IL or missing references) //IL_023e: Unknown result type (might be due to invalid IL or missing references) //IL_0243: Unknown result type (might be due to invalid IL or missing references) //IL_0247: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Unknown result type (might be due to invalid IL or missing references) //IL_0269: Unknown result type (might be due to invalid IL or missing references) //IL_026b: Unknown result type (might be due to invalid IL or missing references) //IL_0273: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0113: 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_012e: 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_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0157: 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_0160: 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_0186: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)m_fireSystem != (Object)null && fireData.ParticleTimer <= 0f) { bool flag = cells.Contains(worldPos + IntVector2.South); for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { if (!flag && j == 0) { continue; } float num = Random.Range(1f, 1.5f); float num2 = Random.Range(0.75f, 1f); Vector2 val = Vector2.op_Implicit(((IntVector2)(ref worldPos)).ToVector3() + new Vector3(0.33f + 0.33f * (float)i, 0.33f + 0.33f * (float)j, 0f)); val += Random.insideUnitCircle / 5f; if (!fireData.HasPlayedFireOutro) { EmitParams val2; MainModule main; MinMaxCurve startSize; MinMaxGradient startColor; if (!fireData.HasPlayedFireOutro && fireData.fireTime > 3f && (Object)(object)m_fireOutroSystem != (Object)null) { num = num2; val2 = default(EmitParams); ((EmitParams)(ref val2)).position = Vector2.op_Implicit(val); ((EmitParams)(ref val2)).velocity = Vector3.zero; main = m_fireSystem.main; startSize = ((MainModule)(ref main)).startSize; ((EmitParams)(ref val2)).startSize = ((MinMaxCurve)(ref startSize)).constant; ((EmitParams)(ref val2)).startLifetime = num2; main = m_fireSystem.main; startColor = ((MainModule)(ref main)).startColor; ((EmitParams)(ref val2)).startColor = Color32.op_Implicit(((MinMaxGradient)(ref startColor)).color); ((EmitParams)(ref val2)).randomSeed = (uint)(Random.value * 4.2949673E+09f); EmitParams val3 = val2; m_fireOutroSystem.Emit(val3, 1); if (i == 1 && j == 1) { fireData.HasPlayedFireOutro = true; } } else if (!fireData.HasPlayedFireIntro && (Object)(object)m_fireIntroSystem != (Object)null) { num = Random.Range(0.75f, 1f); val2 = default(EmitParams); ((EmitParams)(ref val2)).position = Vector2.op_Implicit(val); ((EmitParams)(ref val2)).velocity = Vector3.zero; main = m_fireSystem.main; startSize = ((MainModule)(ref main)).startSize; ((EmitParams)(ref val2)).startSize = ((MinMaxCurve)(ref startSize)).constant; ((EmitParams)(ref val2)).startLifetime = num; main = m_fireSystem.main; startColor = ((MainModule)(ref main)).startColor; ((EmitParams)(ref val2)).startColor = Color32.op_Implicit(((MinMaxGradient)(ref startColor)).color); ((EmitParams)(ref val2)).randomSeed = (uint)(Random.value * 4.2949673E+09f); EmitParams val4 = val2; m_fireIntroSystem.Emit(val4, 1); if (i == 1 && j == 1) { fireData.HasPlayedFireIntro = true; } } else if (Random.value < 0.5f) { val2 = default(EmitParams); ((EmitParams)(ref val2)).position = Vector2.op_Implicit(val); ((EmitParams)(ref val2)).velocity = Vector3.zero; main = m_fireSystem.main; startSize = ((MainModule)(ref main)).startSize; ((EmitParams)(ref val2)).startSize = ((MinMaxCurve)(ref startSize)).constant; ((EmitParams)(ref val2)).startLifetime = num; main = m_fireSystem.main; startColor = ((MainModule)(ref main)).startColor; ((EmitParams)(ref val2)).startColor = Color32.op_Implicit(((MinMaxGradient)(ref startColor)).color); ((EmitParams)(ref val2)).randomSeed = (uint)(Random.value * 4.2949673E+09f); EmitParams val5 = val2; m_fireSystem.Emit(val5, 1); } } if (i == 1 && j == 1) { fireData.ParticleTimer = num - 0.125f; } } } } return fireData; } private void DoFireAtPosition(IntVector2 position, float timeToLive) { //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Expected O, but got Unknown //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Expected O, but got Unknown //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Expected O, but got Unknown //IL_006e: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)m_GoopDefinition)) { m_GoopDefinition = ExpandAssets.LoadOfficialAsset("NapalmGoopThatWorks", ExpandAssets.AssetSource.SharedAuto1); } GameObject val = new GameObject("Jungle Fire Object" + Random.Range(0, 99999)); val.transform.position = ((IntVector2)(ref position)).ToVector3(); if (Vector3Extensions.GetAbsoluteRoom(val.transform.position) != null) { val.transform.SetParent(Vector3Extensions.GetAbsoluteRoom(val.transform.position).hierarchyParent); } val.SetActive(false); TimedObjectKiller obj = val.AddComponent(); obj.lifeTime = timeToLive; obj.m_poolType = (PoolType)2; ExpandUtility.GenerateOrAddToRigidBody(val, (CollisionLayer)16, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: true, replaceExistingColliders: false, UsesPixelsAsUnitSize: false, (IntVector2?)new IntVector2(1, 1), (IntVector2?)null); SpeculativeRigidbody component = val.GetComponent(); component.OnTriggerCollision = (OnTriggerDelegate)Delegate.Combine((Delegate?)(object)component.OnTriggerCollision, (Delegate?)new OnTriggerDelegate(HandleTriggerCollision)); val.SetActive(true); } private void HandleTriggerCollision(SpeculativeRigidbody specRigidbody, SpeculativeRigidbody sourceSpecRigidbody, CollisionData collisionData) { //IL_00ec: Unknown result type (might be due to invalid IL or missing references) PlayerController component = ((Component)specRigidbody).GetComponent(); AIActor component2 = ((Component)specRigidbody).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { if (!component.IsOnFire && ((GameActor)component).IsGrounded && !component.IsSlidingOverSurface && Object.op_Implicit((Object)(object)((BraveBehaviour)component).healthHaver) && ((BraveBehaviour)component).healthHaver.IsVulnerable) { component.IsOnFire = true; component.CurrentFireMeterValue += BraveTime.DeltaTime * 0.5f; ((GameActor)component).ApplyEffect((GameActorEffect)(object)m_GoopDefinition.fireEffect, 1f, (Projectile)null); } } else if (Object.op_Implicit((Object)(object)component2) && ((GameActor)component2).GetResistanceForEffectType((EffectResistanceType)1) < 1f) { float num = 0f; if (((GameActor)component2).GetResistanceForEffectType((EffectResistanceType)1) < 1f) { num += 1f * BraveTime.DeltaTime; } ((GameActor)component2).ApplyEffect((GameActorEffect)(object)m_GoopDefinition.fireEffect, 1f, (Projectile)null); if (num > 0f) { ((BraveBehaviour)component2).healthHaver.ApplyDamage(num, Vector2.zero, StringTableManager.GetEnemiesString("#GOOP", -1), (CoreDamageTypes)4, (DamageCategory)3, false, (PixelCollider)null, false); } } } private void RemovePosition(IntVector2 pos) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) if (cells.Contains(pos)) { cells.Remove(pos); } } private void DestroyPatch(IntVector2 pos) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) if (m_tiledSpritePool.ContainsKey(pos)) { m_tiledSpritePool.TryGetValue(pos, out var value); if (Object.op_Implicit((Object)(object)value)) { SpawnManager.Despawn(((Component)value).gameObject); } m_tiledSpritePool.Remove(pos); } } public void BuildPatch() { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Expected O, but got Unknown //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_0061: 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_0064: 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_0073: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0107: 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_0082: 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_014a: 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_009c: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)m_stripPrefab == (Object)null) { m_stripPrefab = (GameObject)BraveResources.Load("Global Prefabs/TallGrassStrip", ".prefab"); } HashSet hashSet = new HashSet(); for (int i = 0; i < cells.Count; i++) { IntVector2 val = cells[i]; if (hashSet.Contains(val)) { continue; } hashSet.Add(val); int num = 1; IndexPosition targetIndexForPosition = GetTargetIndexForPosition(val); IntVector2 val2 = val; while (true) { val2 += IntVector2.Right; if (hashSet.Contains(val2) || !cells.Contains(val2) || targetIndexForPosition != GetTargetIndexForPosition(val2)) { break; } num++; hashSet.Add(val2); } GameObject obj = SpawnManager.SpawnVFX(m_stripPrefab, false); tk2dTiledSprite component = obj.GetComponent(); ((tk2dBaseSprite)component).SetSprite(GameManager.Instance.Dungeon.tileIndices.dungeonCollection, (int)targetIndexForPosition); component.dimensions = new Vector2((float)(16 * num), 16f); obj.transform.position = new Vector3((float)val.x, (float)val.y, (float)val.y); m_tiledSpritePool.Add(val, component); switch (targetIndexForPosition) { case IndexPosition.BOTTOM: { ((tk2dBaseSprite)component).HeightOffGround = -2f; ((tk2dBaseSprite)component).IsPerpendicular = true; Transform transform = ((BraveBehaviour)component).transform; transform.position += new Vector3(0f, 0.6875f, 0f); break; } case IndexPosition.TOP: ((tk2dBaseSprite)component).IsPerpendicular = true; break; default: ((tk2dBaseSprite)component).IsPerpendicular = false; break; } ((tk2dBaseSprite)component).UpdateZDepth(); } if (!ExpandStaticReferenceManager.AllGrasses.Contains(this)) { ExpandStaticReferenceManager.AllGrasses.Add(this); } InitializeParticleSystem(); } } public class ExpandVoidController : BraveBehaviour { [SerializeField] public float MaxVoidTime; [SerializeField] public bool IsBackroomsVoidController; [SerializeField] public string StartSoundEvent; [SerializeField] public string StopSoundEvent; [NonSerialized] private PlayerController m_PrimaryPlayer; [NonSerialized] private PlayerController m_SecondaryPlayer; [NonSerialized] private bool m_IsReady; [NonSerialized] private bool m_Triggered; [NonSerialized] private bool m_AudioTriggered; [NonSerialized] private float m_VoidTimer; [NonSerialized] private List m_VoidRoomList; [NonSerialized] private GameObject m_OutofBoundsVoidSFX; public ExpandVoidController() { IsBackroomsVoidController = true; MaxVoidTime = 5f; StartSoundEvent = "Play_EX_Void_DoorAmbience"; StopSoundEvent = "Stop_EX_Void_DoorAmbience"; m_IsReady = false; m_VoidTimer = 0f; m_Triggered = false; m_AudioTriggered = false; m_VoidRoomList = new List(); } public void Start() { //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Invalid comparison between Unknown and I4 if (!GameManager.HasInstance | !Object.op_Implicit((Object)(object)GameManager.Instance.Dungeon)) { Object.Destroy((Object)(object)((Component)this).gameObject); return; } m_PrimaryPlayer = GameManager.Instance.PrimaryPlayer; m_SecondaryPlayer = GameManager.Instance.SecondaryPlayer; if (!Object.op_Implicit((Object)(object)m_PrimaryPlayer) && !Object.op_Implicit((Object)(object)m_SecondaryPlayer)) { Object.Destroy((Object)(object)((Component)this).gameObject); return; } ((Component)this).gameObject.transform.SetParent(((Component)GameManager.Instance.Dungeon).gameObject.transform); foreach (RoomHandler room in GameManager.Instance.Dungeon.data.rooms) { if (string.IsNullOrEmpty(room.GetRoomName())) { continue; } if (room.GetRoomName().ToLower().StartsWith("backrooms_warpwingroom")) { bool flag = false; if (room.connectedRooms != null && room.connectedRooms.Count > 0) { foreach (RoomHandler connectedRoom in room.connectedRooms) { if (connectedRoom.area != null && (int)connectedRoom.area.PrototypeRoomCategory == 7) { flag = true; } } } if (!flag) { room.OverrideTilemap = GameManager.Instance.Dungeon.MainTilemap; } } if (room.GetRoomName().ToLower().StartsWith("backrooms_voidroom_")) { m_VoidRoomList.Add(room); } } m_VoidTimer = MaxVoidTime; m_IsReady = true; } private void DoForcedTeleport() { if (Object.op_Implicit((Object)(object)m_PrimaryPlayer)) { m_PrimaryPlayer.RespawnInPreviousRoom(false, (EscapeSealedRoomStyle)3, false, (RoomHandler)null); AkSoundEngine.PostEvent("Play_VO_lichA_cackle_01", ((Component)m_PrimaryPlayer).gameObject); } m_Triggered = false; } public bool IsValidPlayerPosition(PlayerController player, IntVector2? checkRadius = null) { //IL_0006: 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_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_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0070: 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_0048: 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_0050: Unknown result type (might be due to invalid IL or missing references) IntVector2 val = Vector2Extensions.ToIntVector2(Vector3Extensions.XY(((BraveBehaviour)player).transform.position), (VectorConversions)0); IntVector2 value = default(IntVector2); ((IntVector2)(ref value))..ctor(2, 2); if (checkRadius.HasValue) { value = checkRadius.Value; } for (int i = 0; i < value.x; i++) { for (int j = 0; j < value.y; j++) { if (!GameManager.Instance.Dungeon.data.CheckInBoundsAndValid(val + new IntVector2(i, j))) { return false; } } } return true; } public void Update() { //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Invalid comparison between Unknown and I4 //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Expected O, but got Unknown if ((!m_IsReady | m_Triggered) || (!GameManager.HasInstance | !Object.op_Implicit((Object)(object)GameManager.Instance.Dungeon) | GameManager.Instance.IsLoadingLevel | Dungeon.IsGenerating)) { return; } if (m_VoidRoomList != null && m_VoidRoomList.Count > 0) { foreach (RoomHandler voidRoom in m_VoidRoomList) { voidRoom.SetRoomActive(true); } } if (IsBackroomsVoidController && (int)GameManager.Instance.Dungeon.tileIndices.tilesetId != 32768) { GameManager.Instance.Dungeon.tileIndices.tilesetId = (ValidTilesets)32768; } if ((Object.op_Implicit((Object)(object)m_PrimaryPlayer) && !IsValidPlayerPosition(m_PrimaryPlayer)) | (Object.op_Implicit((Object)(object)m_SecondaryPlayer) && !IsValidPlayerPosition(m_SecondaryPlayer))) { m_VoidTimer -= BraveTime.DeltaTime; if (!Object.op_Implicit((Object)(object)m_OutofBoundsVoidSFX)) { m_OutofBoundsVoidSFX = new GameObject("Expand OutofBounds SFX Tracker"); } m_OutofBoundsVoidSFX.transform.position = ((BraveBehaviour)m_PrimaryPlayer).transform.position; if (!m_AudioTriggered) { AkSoundEngine.PostEvent(StartSoundEvent, m_OutofBoundsVoidSFX); m_AudioTriggered = true; } } if (m_VoidTimer <= 0f) { m_VoidTimer = MaxVoidTime; m_Triggered = true; DoForcedTeleport(); } } protected override void OnDestroy() { if (Object.op_Implicit((Object)(object)m_OutofBoundsVoidSFX)) { if (m_AudioTriggered) { AkSoundEngine.PostEvent(StopSoundEvent, m_OutofBoundsVoidSFX); } Object.Destroy((Object)(object)m_OutofBoundsVoidSFX); } ((BraveBehaviour)this).OnDestroy(); } } public class ExpandVoidRoomController : BraveBehaviour, IPlaceConfigurable { [SerializeField] public string StartSoundEvent; [SerializeField] public string StopSoundEvent; [NonSerialized] private PlayerController m_PrimaryPlayer; [NonSerialized] private PlayerController m_SecondaryPlayer; [NonSerialized] private bool m_IsReady; [NonSerialized] private bool m_Triggered; [NonSerialized] private bool m_AudioActive; [NonSerialized] private RoomHandler m_ParentRoom; public ExpandVoidRoomController() { StartSoundEvent = "Play_EX_Void_RoomAmbience"; StopSoundEvent = "Stop_EX_Void_RoomAmbience"; m_IsReady = false; m_Triggered = false; m_AudioActive = false; } public void Start() { if (!GameManager.HasInstance | !Object.op_Implicit((Object)(object)GameManager.Instance.Dungeon)) { Object.Destroy((Object)(object)((Component)this).gameObject); return; } m_PrimaryPlayer = GameManager.Instance.PrimaryPlayer; m_SecondaryPlayer = GameManager.Instance.SecondaryPlayer; if (!Object.op_Implicit((Object)(object)m_PrimaryPlayer) && !Object.op_Implicit((Object)(object)m_SecondaryPlayer)) { Object.Destroy((Object)(object)((Component)this).gameObject); } else { m_IsReady = true; } } public void Update() { if ((!m_IsReady | !GameManager.HasInstance | !Object.op_Implicit((Object)(object)GameManager.Instance.Dungeon) | GameManager.Instance.IsLoadingLevel | Dungeon.IsGenerating) || m_ParentRoom == null || !Object.op_Implicit((Object)(object)m_PrimaryPlayer) || m_PrimaryPlayer.CurrentRoom == null) { return; } if (m_PrimaryPlayer.CurrentRoom == m_ParentRoom) { m_Triggered = true; } if (m_PrimaryPlayer.CurrentRoom.connectedRooms == null || m_PrimaryPlayer.CurrentRoom.connectedRooms.Count <= 0) { return; } if ((!m_Triggered | !m_AudioActive) && ((m_PrimaryPlayer.CurrentRoom == m_ParentRoom) | m_PrimaryPlayer.CurrentRoom.connectedRooms.Contains(m_ParentRoom))) { if (!m_Triggered) { m_Triggered = true; } if (!m_AudioActive) { ToggleAudio(active: true); } } else if (m_Triggered && m_AudioActive && m_PrimaryPlayer.CurrentRoom != m_ParentRoom && !m_PrimaryPlayer.CurrentRoom.connectedRooms.Contains(m_ParentRoom)) { ToggleAudio(active: false); } } public void LateUpdate() { if ((!m_IsReady | !m_Triggered | !GameManager.HasInstance | !Object.op_Implicit((Object)(object)GameManager.Instance.Dungeon) | GameManager.Instance.IsLoadingLevel | Dungeon.IsGenerating) || m_ParentRoom == null || m_ParentRoom.GetActiveEnemies((ActiveEnemyType)1) == null || m_ParentRoom.GetActiveEnemies((ActiveEnemyType)1).Count <= 0) { return; } for (int i = 0; i < m_ParentRoom.GetActiveEnemies((ActiveEnemyType)1).Count; i++) { if (Object.op_Implicit((Object)(object)m_ParentRoom.GetActiveEnemies((ActiveEnemyType)1)[i]) && Object.op_Implicit((Object)(object)((BraveBehaviour)m_ParentRoom.GetActiveEnemies((ActiveEnemyType)1)[i]).visibilityManager)) { ((BraveBehaviour)m_ParentRoom.GetActiveEnemies((ActiveEnemyType)1)[i]).visibilityManager.ChangeToVisibility((VisibilityStatus)1, true); Object.Destroy((Object)(object)((BraveBehaviour)m_ParentRoom.GetActiveEnemies((ActiveEnemyType)1)[i]).visibilityManager); } } } public void ToggleAudio(bool active) { if (active) { AkSoundEngine.PostEvent(StartSoundEvent, ((Component)this).gameObject); } else { AkSoundEngine.PostEvent(StopSoundEvent, ((Component)this).gameObject); } m_AudioActive = active; } public void ConfigureOnPlacement(RoomHandler room) { m_ParentRoom = room; room.OverrideTilemap = GameManager.Instance.Dungeon.MainTilemap; typeof(RoomHandler).GetField("m_currentlyVisible", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(room, true); } protected override void OnDestroy() { if (m_AudioActive) { ToggleAudio(active: false); } ((BraveBehaviour)this).OnDestroy(); } } public class ExpandWesternBroSeekTargetBehavior : MovementBehaviorBase { public bool StopWhenInRange; public float CustomRange; public float PathInterval; private float m_repathTimer; private ExpandWesternBroController m_otherBro; public override float DesiredCombatDistance => CustomRange; public override void Upkeep() { ((MovementBehaviorBase)this).Upkeep(); ((BehaviorBase)this).DecrementTimer(ref m_repathTimer, false); } public override BehaviorResult Update() { //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_0116: 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_0129: Unknown result type (might be due to invalid IL or missing references) //IL_012e: 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) SpeculativeRigidbody targetRigidbody = ((BehaviorBase)this).m_aiActor.TargetRigidbody; if ((Object)(object)targetRigidbody != (Object)null) { float desiredCombatDistance = ((BehaviorBase)this).m_aiActor.DesiredCombatDistance; if (StopWhenInRange && ((BehaviorBase)this).m_aiActor.DistanceToTarget <= desiredCombatDistance) { ((BehaviorBase)this).m_aiActor.ClearPath(); return (BehaviorResult)0; } if (m_repathTimer <= 0f) { if (!Object.op_Implicit((Object)(object)m_otherBro)) { m_otherBro = ExpandWesternBroController.GetOtherWesternBros(((BehaviorBase)this).m_aiActor).FirstOrDefault(); } Vector2 val; if (!Object.op_Implicit((Object)(object)m_otherBro)) { val = targetRigidbody.UnitCenter; } else { Vector2 unitCenter = ((BraveBehaviour)((BehaviorBase)this).m_aiActor.TargetRigidbody).specRigidbody.GetUnitCenter((ColliderType)2); Vector2 unitCenter2 = ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.UnitCenter; Vector2 unitCenter3 = ((BraveBehaviour)m_otherBro).specRigidbody.UnitCenter; float num = Vector2Extensions.ToAngle(unitCenter2 - unitCenter); float num2 = Vector2Extensions.ToAngle(unitCenter3 - unitCenter); float num3 = (num + num2) / 2f; float num4 = ((!(BraveMathCollege.ClampAngle180(num - num3) > 0f)) ? (num3 - 90f) : (num3 + 90f)); val = unitCenter + BraveMathCollege.DegreesToVector(num4, 1f) * ((MovementBehaviorBase)this).DesiredCombatDistance; } ((BehaviorBase)this).m_aiActor.PathfindToPosition(val, (Vector2?)null, true, (CellValidator)null, (ExtraWeightingFunction)null, (CellTypes?)null, false); m_repathTimer = PathInterval; } return (BehaviorResult)1; } return (BehaviorResult)0; } } public class ExpandWesternBroController : BraveBehaviour { public WestBros whichBro; public string enrageAnim; public float enrageAnimTime; public GameObject overheadVfx; public float postEnrageMoveSpeed; public float postSecondEnrageMoveSpeed; public float enrageHealToPercent; private bool m_shouldEnrage; private bool m_isEnraged; private GameObject m_overheadVfxInstance; private float m_overheadVfxTimer; private float m_particleCounter; public static List GetOtherWesternBros(AIActor me) { return GetOtherWesternBros(((Component)me).gameObject); } public static List GetOtherWesternBros(GameObject me) { bool flag = false; List list = new List(ExpandStaticReferenceManager.AllWesternBros); for (int num = list.Count - 1; num >= 0; num--) { if (Object.op_Implicit((Object)(object)list[num]) && Object.op_Implicit((Object)(object)((BraveBehaviour)list[num]).healthHaver) && ((BraveBehaviour)list[num]).healthHaver.IsAlive) { if ((Object)(object)me == (Object)(object)((Component)list[num]).gameObject) { flag = true; list.Remove(list[num]); } } else { list.Remove(list[num]); } } if (!flag) { Debug.LogWarning((object)("Searched for a western bro, but didn't even find myself (" + ((Object)me).name + ")"), (Object)(object)me); } return list; } public void Awake() { ExpandStaticReferenceManager.AllWesternBros.Add(this); } public void Update() { //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Invalid comparison between Unknown and I4 //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) if (!((BraveBehaviour)this).healthHaver.IsDead && m_shouldEnrage && ((BraveBehaviour)this).behaviorSpeculator.IsInterruptable) { m_shouldEnrage = false; ((BraveBehaviour)this).behaviorSpeculator.InterruptAndDisable(); ((BraveBehaviour)this).aiActor.ClearPath(); ((MonoBehaviour)this).StartCoroutine(EnrageCR()); } if (!m_isEnraged) { return; } m_overheadVfxTimer += BraveTime.DeltaTime; if (Object.op_Implicit((Object)(object)m_overheadVfxInstance) && m_overheadVfxTimer > 1.5f) { m_overheadVfxInstance.GetComponent().PlayAndDestroyObject("rage_face_vfx_out", (Action)null); m_overheadVfxInstance = null; } if ((int)GameManager.Options.ShaderQuality != 0 && (int)GameManager.Options.ShaderQuality != 3 && Object.op_Implicit((Object)(object)((BraveBehaviour)this).aiActor) && !((GameActor)((BraveBehaviour)this).aiActor).IsGone) { m_particleCounter += BraveTime.DeltaTime * 40f; if (m_particleCounter > 1f) { int num = Mathf.FloorToInt(m_particleCounter); m_particleCounter %= 1f; GlobalSparksDoer.DoRandomParticleBurst(num, Vector2Extensions.ToVector3ZisY(((BraveBehaviour)((BraveBehaviour)this).aiActor).sprite.WorldBottomLeft, 0f), Vector2Extensions.ToVector3ZisY(((BraveBehaviour)((BraveBehaviour)this).aiActor).sprite.WorldTopRight, 0f), Vector3.up, 90f, 0.5f, (float?)null, (float?)null, (Color?)null, (SparksType)1); } } } protected override void OnDestroy() { ExpandStaticReferenceManager.AllWesternBros.Remove(this); ((BraveBehaviour)this).OnDestroy(); } public void Enrage() { m_shouldEnrage = true; } private IEnumerator EnrageCR() { if (((BraveBehaviour)this).healthHaver.GetCurrentHealthPercentage() < enrageHealToPercent) { ((BraveBehaviour)this).healthHaver.ForceSetCurrentHealth(enrageHealToPercent * ((BraveBehaviour)this).healthHaver.GetMaxHealth()); } bool isSecondEnrage = m_isEnraged; ProcessAttackGroup(((BraveBehaviour)this).behaviorSpeculator.AttackBehaviors, isSecondEnrage); ((BraveBehaviour)this).aiShooter.ToggleGunAndHandRenderers(false, "BroController"); ((BraveBehaviour)this).aiAnimator.PlayUntilFinished(enrageAnim, true, (string)null, -1f, false); float timer = 0f; m_isEnraged = false; while (timer < enrageAnimTime) { yield return null; timer += BraveTime.DeltaTime; if (!m_isEnraged && timer / enrageAnimTime >= 0.25f) { if (Object.op_Implicit((Object)(object)overheadVfx)) { m_overheadVfxInstance = ((GameActor)((BraveBehaviour)this).aiActor).PlayEffectOnActor(overheadVfx, new Vector3(0f, 1.375f, 0f), true, true, false); m_overheadVfxTimer = 0f; } m_isEnraged = true; } } ((BraveBehaviour)this).aiAnimator.EndAnimationIf(enrageAnim); ((BraveBehaviour)this).aiShooter.ToggleGunAndHandRenderers(true, "BroController"); float num = (isSecondEnrage ? postSecondEnrageMoveSpeed : postEnrageMoveSpeed); if (num >= 0f) { ((BraveBehaviour)this).aiActor.MovementSpeed = TurboModeController.MaybeModifyEnemyMovementSpeed(num); } ((Behaviour)((BraveBehaviour)this).behaviorSpeculator).enabled = true; } private void ProcessAttackGroup(List attackBehaviors, bool isSecondEnrage) { AttackBehaviorBase obj = attackBehaviors[0]; foreach (AttackGroupItem attackBehavior in ((AttackBehaviorGroup)((obj is AttackBehaviorGroup) ? obj : null)).AttackBehaviors) { if (attackBehavior.Behavior is ShootGunBehavior) { AttackBehaviorBase behavior = attackBehavior.Behavior; ((ShootGunBehavior)((behavior is ShootGunBehavior) ? behavior : null)).StopDuringAttack = false; } switch (attackBehavior.NickName) { case "Basic Shooting": attackBehavior.Probability = 0f; break; case "Basic Shooting (Angry)": attackBehavior.Probability = 1f; break; case "Leading Shot": attackBehavior.Probability = 0f; break; case "Jump Attack": attackBehavior.Probability = 0f; break; case "Jump Attack (Angry)": attackBehavior.Probability = 1f; break; } } } } public class ExpandBabyDragunComponent : BraveBehaviour { public int RequiredEnemies; public bool EatsNPCs; public bool EatsEnemies; [PickupIdentifier] public int ItemID; private RoomHandler m_room; private int m_enemiesEaten; private bool m_isOpen; private bool m_currentlyEatingEnemy; private bool m_currentlyEatingNPC; public ExpandBabyDragunComponent() { RequiredEnemies = 6; ItemID = 735; m_currentlyEatingEnemy = false; m_currentlyEatingNPC = false; m_enemiesEaten = 0; EatsNPCs = false; EatsEnemies = true; } private void Start() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) m_room = Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)this).transform.position); m_isOpen = true; } private void Update() { //IL_0126: 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_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) if (Dungeon.IsGenerating | !m_isOpen) { return; } bool flag = false; for (int i = 0; i < GameManager.Instance.AllPlayers.Length; i++) { if (GameManager.Instance.AllPlayers[i].CurrentRoom == m_room) { flag = true; break; } } if (!flag) { return; } Vector2 val2; if (!m_currentlyEatingEnemy && m_enemiesEaten < RequiredEnemies) { for (int j = 0; j < StaticReferenceManager.AllEnemies.Count; j++) { AIActor val = StaticReferenceManager.AllEnemies[j]; if (Object.op_Implicit((Object)(object)val) && !((BraveBehaviour)val).healthHaver.IsBoss && !val.IgnoreForRoomClear) { val2 = ((BraveBehaviour)val).specRigidbody.UnitCenter - ((BraveBehaviour)this).sprite.WorldCenter; if (((Vector2)(ref val2)).magnitude < 3f) { m_currentlyEatingEnemy = true; ((MonoBehaviour)this).StartCoroutine(EatEnemy(val)); } } } } if (m_currentlyEatingNPC) { return; } for (int k = 0; k < StaticReferenceManager.AllNpcs.Count; k++) { TalkDoerLite val3 = StaticReferenceManager.AllNpcs[k]; if (Object.op_Implicit((Object)(object)val3) && !((Object)val3).name.Contains("ResourcefulRat_Beaten")) { val2 = ((BraveBehaviour)val3).specRigidbody.UnitCenter - ((BraveBehaviour)this).sprite.WorldCenter; if (((Vector2)(ref val2)).magnitude < 3f) { m_currentlyEatingNPC = true; RoomHandler.unassignedInteractableObjects.Remove((IPlayerInteractable)(object)val3); ((MonoBehaviour)this).StartCoroutine(EatNPC(val3)); } } } } private IEnumerator EatNPC(TalkDoerLite targetNPC) { float elapsed = 0f; float duration = 0.5f; Vector3 startPos = ((BraveBehaviour)targetNPC).transform.position; Vector3 finalOffset = Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldCenter - Vector3Extensions.XY(startPos)); tk2dBaseSprite targetSprite = ((Component)targetNPC).GetComponentInChildren(); Object.Destroy((Object)(object)targetNPC); Object.Destroy((Object)(object)((BraveBehaviour)targetNPC).specRigidbody); ((BraveBehaviour)this).spriteAnimator.PlayForDuration("baby_dragun_weak_eat", -1f, "baby_dragun_weak_idle", false); AkSoundEngine.PostEvent("Play_NPC_BabyDragun_Munch_01", ((Component)this).gameObject); while (elapsed < duration) { elapsed += BraveTime.DeltaTime; if (!Object.op_Implicit((Object)(object)targetSprite) || !Object.op_Implicit((Object)(object)((BraveBehaviour)targetSprite).transform)) { m_currentlyEatingNPC = false; yield break; } ((BraveBehaviour)targetSprite).transform.localScale = Vector3.Lerp(Vector3.one, new Vector3(0.01f, 0.01f, 1f), elapsed / duration); ((BraveBehaviour)targetSprite).transform.position = Vector3.Lerp(startPos, startPos + finalOffset, elapsed / duration); yield return null; } if (!Object.op_Implicit((Object)(object)targetSprite) || !Object.op_Implicit((Object)(object)((BraveBehaviour)targetSprite).transform)) { m_currentlyEatingNPC = false; yield break; } Object.Destroy((Object)(object)((Component)targetSprite).gameObject); yield return null; m_currentlyEatingNPC = false; } private IEnumerator EatEnemy(AIActor targetEnemy) { float elapsed = 0f; float duration = 0.5f; Vector3 startPos = ((BraveBehaviour)targetEnemy).transform.position; Vector3 finalOffset = Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldCenter - Vector3Extensions.XY(startPos)); tk2dSprite targetSprite = ((Component)targetEnemy).GetComponentInChildren(); if (Object.op_Implicit((Object)(object)((BraveBehaviour)targetEnemy).behaviorSpeculator)) { ((Behaviour)((BraveBehaviour)targetEnemy).behaviorSpeculator).enabled = false; } RoomHandler m_ParentRoom = ((DungeonPlaceableBehaviour)targetEnemy).GetAbsoluteParentRoom(); if (m_ParentRoom != null) { m_ParentRoom.DeregisterEnemy(targetEnemy, false); } ((BraveBehaviour)targetEnemy).specRigidbody.CollideWithOthers = false; ((BraveBehaviour)this).spriteAnimator.PlayForDuration("baby_dragun_weak_eat", -1f, "baby_dragun_weak_idle", false); AkSoundEngine.PostEvent("Play_NPC_BabyDragun_Munch_01", ((Component)this).gameObject); while (elapsed < duration) { elapsed += BraveTime.DeltaTime; if (!Object.op_Implicit((Object)(object)targetSprite) || !Object.op_Implicit((Object)(object)((BraveBehaviour)targetSprite).transform)) { m_currentlyEatingEnemy = false; yield break; } ((BraveBehaviour)targetSprite).transform.localScale = Vector3.Lerp(Vector3.one, new Vector3(0.01f, 0.01f, 1f), elapsed / duration); ((BraveBehaviour)targetSprite).transform.position = Vector3.Lerp(startPos, startPos + finalOffset, elapsed / duration); yield return null; } if (!Object.op_Implicit((Object)(object)targetSprite) || !Object.op_Implicit((Object)(object)((BraveBehaviour)targetSprite).transform)) { m_currentlyEatingEnemy = false; yield break; } yield return null; m_ParentRoom.DeregisterEnemy(targetEnemy, false); targetEnemy.EraseFromExistence(true); m_enemiesEaten++; if (m_enemiesEaten >= RequiredEnemies) { while (((BraveBehaviour)this).spriteAnimator.IsPlaying("baby_dragun_weak_eat")) { yield return null; } LootEngine.GivePrefabToPlayer(((Component)PickupObjectDatabase.GetById(ItemID)).gameObject, GameManager.Instance.BestActivePlayer); Object.Destroy((Object)(object)((Component)this).gameObject); } yield return null; m_currentlyEatingEnemy = false; } protected override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); } } public class ExpandBellyMonsterController : DungeonPlaceableBehaviour, IPlaceConfigurable { public RoomHandler m_ParentRoom; public PlayerController m_Player; public GameObject[] ImpactVFXObjects; public ScreenShakeSettings SlamScreenShakeSettings; public bool Awakened; private bool m_Triggered; private bool PlayerEaten; private float m_RoomCheckTimer; private GameObject m_EntranceTriggerObject; public ExpandBellyMonsterController() { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0046: 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) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_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_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Expected O, but got Unknown Awakened = false; PlayerEaten = false; SlamScreenShakeSettings = new ScreenShakeSettings { magnitude = 0.6f, speed = 10f, time = 0.15f, falloff = 0.5f, direction = new Vector2(0f, -1f), vibrationType = (VibrationType)10, simpleVibrationTime = (Time)20, simpleVibrationStrength = (Strength)20 }; } private void Start() { //IL_0051: 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_0076: 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_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Expected O, but got Unknown //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Expected O, but got Unknown //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) //IL_0141: Expected O, but got Unknown //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_0167: Expected O, but got Unknown //IL_017f: Unknown result type (might be due to invalid IL or missing references) //IL_0184: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Expected O, but got Unknown //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01b3: Expected O, but got Unknown //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01dd: Unknown result type (might be due to invalid IL or missing references) //IL_01fe: Unknown result type (might be due to invalid IL or missing references) //IL_020d: 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_0233: 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_0247: Unknown result type (might be due to invalid IL or missing references) //IL_0268: Unknown result type (might be due to invalid IL or missing references) //IL_0277: Unknown result type (might be due to invalid IL or missing references) //IL_027c: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Unknown result type (might be due to invalid IL or missing references) //IL_02ac: Unknown result type (might be due to invalid IL or missing references) //IL_02b1: Unknown result type (might be due to invalid IL or missing references) //IL_02d2: Unknown result type (might be due to invalid IL or missing references) //IL_02e1: Unknown result type (might be due to invalid IL or missing references) //IL_02e6: Unknown result type (might be due to invalid IL or missing references) //IL_0473: Unknown result type (might be due to invalid IL or missing references) //IL_047a: Unknown result type (might be due to invalid IL or missing references) m_RoomCheckTimer = 1f; if (Object.op_Implicit((Object)(object)GameManager.Instance.PrimaryPlayer)) { m_Player = GameManager.Instance.PrimaryPlayer; } ((BraveBehaviour)this).sprite.HeightOffGround = -7f; ((BraveBehaviour)this).sprite.UpdateZDepth(); Vector3 val = new Vector3(7f, 3f) + ((IntVector2)(ref m_ParentRoom.area.basePosition)).ToVector3(); NoteDoer component = Object.Instantiate(ExpandPrefabs.PlayerLostRatNote, val, Quaternion.identity).GetComponent(); if ((Object)(object)component != (Object)null) { component.stringKey = "We shipwrecked chasing a terrible monster.\n\nManaged to lure and trap it in this weird dungeon full of living bullets...\n\nAlas, I could not slay the beast but managed to trap it in this chamber. I used a teleporter prototype to teleport the key to this chamber far away.\n\nI don't know where it ended up, but I hope no one finds it."; component.useAdditionalStrings = false; component.alreadyLocalized = true; ((Object)component).name = "Dead Man's Note"; m_ParentRoom.RegisterInteractable((IPlayerInteractable)(object)component); } PickupObject byId = PickupObjectDatabase.GetById(333); Gun val2 = (Gun)(object)((byId is Gun) ? byId : null); GameObject val3 = new GameObject("Bloodstain 1", new Type[1] { typeof(tk2dSprite) }) { layer = 0 }; GameObject val4 = new GameObject("Bloodstain 2", new Type[1] { typeof(tk2dSprite) }) { layer = 0 }; GameObject val5 = new GameObject("Bloodstain 3", new Type[1] { typeof(tk2dSprite) }) { layer = 0 }; GameObject val6 = new GameObject("Bloodstain 4", new Type[1] { typeof(tk2dSprite) }) { layer = 0 }; GameObject val7 = new GameObject("Bloodstain 5", new Type[1] { typeof(tk2dSprite) }) { layer = 0 }; GameObject val8 = new GameObject("Bloodstain 6", new Type[1] { typeof(tk2dSprite) }) { layer = 0 }; val3.transform.position = ((IntVector2)(ref m_ParentRoom.area.basePosition)).ToVector3() + new Vector3(13f, 2f); val4.transform.position = ((IntVector2)(ref m_ParentRoom.area.basePosition)).ToVector3() + new Vector3(33f, 5f); val5.transform.position = ((IntVector2)(ref m_ParentRoom.area.basePosition)).ToVector3() + new Vector3(40f, 2f); val6.transform.position = ((IntVector2)(ref m_ParentRoom.area.basePosition)).ToVector3() + new Vector3(48f, 3f); val7.transform.position = ((IntVector2)(ref m_ParentRoom.area.basePosition)).ToVector3() + new Vector3(57f, 5f); val8.transform.position = ((IntVector2)(ref m_ParentRoom.area.basePosition)).ToVector3() + new Vector3(58f, 2f); val3.transform.parent = m_ParentRoom.hierarchyParent; val4.transform.parent = m_ParentRoom.hierarchyParent; val5.transform.parent = m_ParentRoom.hierarchyParent; val6.transform.parent = m_ParentRoom.hierarchyParent; val7.transform.parent = m_ParentRoom.hierarchyParent; val8.transform.parent = m_ParentRoom.hierarchyParent; GoopDoer[] array = (GoopDoer[])(object)new GoopDoer[6] { val3.AddComponent(), val4.AddComponent(), val5.AddComponent(), val6.AddComponent(), val7.AddComponent(), val8.AddComponent() }; tk2dSprite[] array2 = (tk2dSprite[])(object)new tk2dSprite[6] { val3.GetComponent(), val4.GetComponent(), val5.GetComponent(), val6.GetComponent(), val7.GetComponent(), val8.GetComponent() }; foreach (tk2dSprite obj in array2) { ((tk2dBaseSprite)obj).Collection = ((BraveBehaviour)val2).sprite.Collection; ((tk2dBaseSprite)obj).SetSprite(0); ((BraveBehaviour)obj).renderer.enabled = false; } GoopDoer[] array3 = array; foreach (GoopDoer obj2 in array3) { obj2.goopDefinition = ((Component)val2.singleModule.projectiles[0]).gameObject.GetComponent().goopDefinition; obj2.positionSource = (PositionSource)0; obj2.updateTiming = (UpdateTiming)0; obj2.updateFrequency = 0.05f; obj2.isTimed = false; obj2.goopTime = 1f; obj2.updateOnPreDeath = true; obj2.updateOnDeath = false; obj2.updateOnAnimFrames = true; obj2.updateOnCollision = false; obj2.updateOnGrounded = false; obj2.updateOnDestroy = false; obj2.defaultGoopRadius = 1f; obj2.suppressSplashes = false; obj2.goopSizeVaries = true; obj2.varyCycleTime = 0.9f; obj2.radiusMin = Random.Range(0.8f, 1f); obj2.radiusMax = Random.Range(1.25f, 1.6f); obj2.goopSizeRandom = true; obj2.UsesDispersalParticles = false; obj2.DispersalDensity = 3f; obj2.DispersalMinCoherency = 0.2f; obj2.DispersalMaxCoherency = 1f; } } private void Update() { //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Expected O, but got Unknown //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Expected O, but got Unknown //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_019a: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01f7: Unknown result type (might be due to invalid IL or missing references) //IL_0251: Unknown result type (might be due to invalid IL or missing references) //IL_0256: Unknown result type (might be due to invalid IL or missing references) if (!Awakened | PlayerEaten) { return; } if (!m_Triggered) { m_Triggered = true; m_ParentRoom.CompletelyPreventLeaving = true; m_ParentRoom.npcSealState = (NPCSealState)1; m_ParentRoom.SealRoom(); GameManager.Instance.MainCameraController.SetManualControl(true, true); ((BraveBehaviour)this).spriteAnimator.AnimationEventTriggered = (Action)Delegate.Combine(((BraveBehaviour)this).spriteAnimator.AnimationEventTriggered, new Action(AnimationEventTriggered)); ((BraveBehaviour)this).spriteAnimator.Play("MonsterChase"); SpeculativeRigidbody specRigidbody = ((BraveBehaviour)this).specRigidbody; specRigidbody.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Combine((Delegate?)(object)specRigidbody.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(OnPreRigidBodyCollision)); AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)this).gameObject); AkSoundEngine.PostEvent("Stop_EX_MUS_All", ((Component)this).gameObject); AkSoundEngine.PostEvent("Play_EX_MUS_BellyDevour_01", ((Component)this).gameObject); } if (((BraveBehaviour)this).specRigidbody.Velocity.x <= 0f) { ((BraveBehaviour)this).specRigidbody.Velocity = new Vector2(-1.5f, 0f); } if (!((BraveBehaviour)this).specRigidbody.CanPush) { ((BraveBehaviour)this).specRigidbody.CanPush = true; } if (((BraveBehaviour)this).specRigidbody.CanBePushed) { ((BraveBehaviour)this).specRigidbody.CanBePushed = false; } if (!m_Triggered) { return; } GameManager.Instance.MainCameraController.OverridePosition = ((BraveBehaviour)this).transform.position - new Vector3(3f, 0f) + new Vector3(0f, 6f); m_RoomCheckTimer -= BraveTime.DeltaTime; if (!(m_RoomCheckTimer <= 0f)) { return; } m_RoomCheckTimer = 1f; if (Object.op_Implicit((Object)(object)m_Player) && Vector3.Distance(((BraveBehaviour)this).transform.position, ((Component)m_Player).gameObject.transform.position) > 60f) { PlayerEaten = true; GameManager.Instance.PrimaryPlayer.SetInputOverride("got eaten"); if (Object.op_Implicit((Object)(object)GameManager.Instance.SecondaryPlayer)) { GameManager.Instance.SecondaryPlayer.SetInputOverride("got eaten"); } ((BraveBehaviour)this).specRigidbody.Velocity = Vector2.zero; ((BraveBehaviour)this).spriteAnimator.Stop(); if (Object.op_Implicit((Object)(object)GameManager.Instance.PrimaryPlayer)) { ((MonoBehaviour)this).StartCoroutine(HandleTransitionToBellyFloor(GameManager.Instance.PrimaryPlayer)); } } } private void AnimationEventTriggered(tk2dSpriteAnimator animator, tk2dSpriteAnimationClip clip, int frame) { //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0040: 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_0077: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0123: 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_0158: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) if (!(clip.GetFrame(frame).eventInfo == "slam")) { return; } GameManager.Instance.MainCameraController.DoScreenShake(SlamScreenShakeSettings, (Vector2?)Vector2.op_Implicit(((BraveBehaviour)this).transform.position + new Vector3(0f, 2f)), false); if (ImpactVFXObjects != null && ImpactVFXObjects.Length != 0) { float num = Random.Range(((BraveBehaviour)this).transform.position.x + 2f, ((BraveBehaviour)this).transform.position.x + 3f); float num2 = Random.Range(((BraveBehaviour)this).transform.position.y + 2f, ((BraveBehaviour)this).transform.position.y + 9f); float num3 = Random.Range(((BraveBehaviour)this).transform.position.x + 2f, ((BraveBehaviour)this).transform.position.x + 3f); float num4 = Random.Range(((BraveBehaviour)this).transform.position.y + 2f, ((BraveBehaviour)this).transform.position.y + 9f); Vector3 val = default(Vector3); ((Vector3)(ref val))..ctor(num, num2); Vector3 val2 = default(Vector3); ((Vector3)(ref val2))..ctor(num3, num4); Object.Instantiate(BraveUtility.RandomElement(ImpactVFXObjects), val, Quaternion.identity); if (BraveUtility.RandomBool()) { Object.Instantiate(BraveUtility.RandomElement(ImpactVFXObjects), val2, Quaternion.identity); } AkSoundEngine.PostEvent(BraveUtility.RandomElement(BraveUtility.Shuffle(new List { "Play_OBJ_rock_break_01", "Play_OBJ_boulder_crash_01", "Play_OBJ_stone_crumble_01" })), ((Component)this).gameObject); if (BraveUtility.RandomBool()) { AkSoundEngine.PostEvent("Play_PET_junk_splat_01", ((Component)this).gameObject); } } } public void OnPreRigidBodyCollision(SpeculativeRigidbody myRigidbody, PixelCollider myPixelCollider, SpeculativeRigidbody otherRigidbody, PixelCollider otherPixelCollider) { //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0146: 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) if (Object.op_Implicit((Object)(object)((Component)otherRigidbody).GetComponent()) && ((BraveBehaviour)((Component)otherRigidbody).GetComponent()).healthHaver.IsAlive) { AIActor component = ((Component)otherRigidbody).GetComponent(); if (Object.op_Implicit((Object)(object)((Component)component).gameObject.GetComponent()) && component.IgnoreForRoomClear) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)component).knockbackDoer)) { ((BraveBehaviour)component).knockbackDoer.ApplyKnockback(new Vector2(-1f, 0f), 2f, true); } else { PhysicsEngine.SkipCollision = true; } } else { ((BraveBehaviour)component).healthHaver.ApplyDamage(500f, new Vector2(1f, 0f), "Big Ass Worm", (CoreDamageTypes)0, (DamageCategory)5, true, (PixelCollider)null, true); } } else if (!PlayerEaten && Object.op_Implicit((Object)(object)((Component)otherRigidbody).GetComponent())) { PlayerEaten = true; ((Component)otherRigidbody).GetComponent().SetInputOverride("got eaten"); ((BraveBehaviour)this).specRigidbody.Velocity = Vector2.zero; ((BraveBehaviour)this).spriteAnimator.Stop(); ((MonoBehaviour)this).StartCoroutine(HandleTransitionToBellyFloor(((Component)otherRigidbody).GetComponent())); } else if (Object.op_Implicit((Object)(object)((Component)otherRigidbody).GetComponent())) { ((Component)otherRigidbody).GetComponent().Break(new Vector2(1f, 0f)); } else if (Object.op_Implicit((Object)(object)((Component)otherRigidbody).GetComponent())) { ((Component)otherRigidbody).GetComponent().Break(new Vector2(1f, 0f)); } } private IEnumerator HandleTransitionToBellyFloor(PlayerController player) { player.ToggleRenderer(false, "got eaten"); player.ToggleGunRenderers(false, "got eaten"); player.ToggleHandRenderers(false, "got eaten"); yield return null; float elapsed = 0f; float duration = 0.5f; Vector3 startPos = Vector2.op_Implicit(((BraveBehaviour)player).specRigidbody.GetUnitCenter((ColliderType)1)); Vector3 finalOffset = ((BraveBehaviour)this).transform.position + new Vector3(4f, 6f); GameObject dummySpriteObject = new GameObject("PlayerSpriteDupe", new Type[1] { typeof(tk2dSprite) }) { layer = 22 }; dummySpriteObject.transform.position = startPos; tk2dSprite targetSprite = dummySpriteObject.GetComponent(); tk2dBaseSprite sprite = ((BraveBehaviour)player).sprite; ExpandUtility.DuplicateSprite(targetSprite, (tk2dSprite)(object)((sprite is tk2dSprite) ? sprite : null)); ((tk2dBaseSprite)targetSprite).SetSprite(((BraveBehaviour)player).sprite.spriteId); yield return null; AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)this).gameObject); AkSoundEngine.PostEvent("Stop_EX_MUS_BellyMonster_Devour_01", ((Component)this).gameObject); while (elapsed < duration) { elapsed += BraveTime.DeltaTime; if (!Object.op_Implicit((Object)(object)targetSprite) || !Object.op_Implicit((Object)(object)((BraveBehaviour)targetSprite).transform)) { break; } ((BraveBehaviour)targetSprite).transform.localScale = Vector3.Lerp(Vector3.one, new Vector3(0.01f, 0.01f, 1f), elapsed / duration); ((BraveBehaviour)targetSprite).transform.position = Vector3.Lerp(startPos, finalOffset, elapsed / duration); yield return null; } AkSoundEngine.PostEvent("Play_VO_lichA_cackle_01", ((Component)this).gameObject); Vector2 val = Vector2.op_Implicit(dummySpriteObject.transform.position); Vector2 val2 = Vector2.op_Implicit(dummySpriteObject.transform.position + new Vector3(1f, 1f)); Color value = default(Color); ((Color)(ref value))..ctor(0.5f, 0.1f, 0.1f); GlobalSparksDoer.DoRandomParticleBurst(25, Vector2.op_Implicit(val), Vector2.op_Implicit(val2), new Vector3(-1f, 1f), 70f, 0.5f, (float?)null, (float?)0.75f, (Color?)value, (SparksType)7); GlobalSparksDoer.DoRandomParticleBurst(25, Vector2.op_Implicit(val), Vector2.op_Implicit(val2), Vector3.left, 70f, 0.5f, (float?)null, (float?)1.5f, (Color?)value, (SparksType)7); GlobalSparksDoer.DoRandomParticleBurst(25, Vector2.op_Implicit(val), Vector2.op_Implicit(val2), Vector3.left, 70f, 0.5f, (float?)null, (float?)2.25f, (Color?)value, (SparksType)7); GlobalSparksDoer.DoRandomParticleBurst(25, Vector2.op_Implicit(val), Vector2.op_Implicit(val2), new Vector3(-1f, -1f), 70f, 0.5f, (float?)null, (float?)3f, (Color?)value, (SparksType)7); yield return (object)new WaitForSeconds(1f); if (ExpandDebugCamera.DebugCameraEnabled) { ExpandDebugCamera.SetInitialCameraPosition(Pixelator.Instance, GameManager.Instance.MainCameraController); } else { Pixelator.Instance.FadeToBlack(0.15f, false, 0f); } yield return (object)new WaitForSeconds(0.3f); AkSoundEngine.PostEvent("Play_CHR_muncher_chew_01", ((Component)this).gameObject); yield return (object)new WaitForSeconds(4f); Object.Destroy((Object)(object)dummySpriteObject); player.ToggleRenderer(true, "got eaten"); player.ToggleGunRenderers(true, "got eaten"); player.ToggleHandRenderers(true, "got eaten"); player.ClearAllInputOverrides(); GameManager.Instance.LoadCustomLevel("tt_belly"); } public void ConfigureOnPlacement(RoomHandler room) { //IL_000d: 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_001e: Expected O, but got Unknown //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: 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_008a: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Expected O, but got Unknown //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Expected O, but got Unknown m_ParentRoom = room; m_EntranceTriggerObject = new GameObject("BellyMonsterAwakenTrigger") { layer = 0 }; m_EntranceTriggerObject.transform.position = ((BraveBehaviour)this).transform.position - new Vector3(14f, 0f); ExpandUtility.GenerateOrAddToRigidBody(m_EntranceTriggerObject, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: true, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, offset: (IntVector2?)new IntVector2(0, -2), collisionLayer: (CollisionLayer)16, colliderGenerationMode: (PixelColliderGeneration)0, dimensions: (IntVector2?)new IntVector2(256, m_ParentRoom.area.dimensions.y + 64)); ExpandBellyMonsterTriggerHandler expandBellyMonsterTriggerHandler = m_EntranceTriggerObject.AddComponent(); expandBellyMonsterTriggerHandler.ParentRoom = m_ParentRoom; expandBellyMonsterTriggerHandler.MonsterController = this; if (Object.op_Implicit((Object)(object)((BraveBehaviour)expandBellyMonsterTriggerHandler).specRigidbody)) { ((BraveBehaviour)expandBellyMonsterTriggerHandler).specRigidbody.OnTriggerCollision = (OnTriggerDelegate)Delegate.Combine((Delegate?)(object)((BraveBehaviour)expandBellyMonsterTriggerHandler).specRigidbody.OnTriggerCollision, (Delegate?)new OnTriggerDelegate(expandBellyMonsterTriggerHandler.HandleTriggerCollision)); } } protected override void OnDestroy() { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Expected O, but got Unknown //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Expected O, but got Unknown SpeculativeRigidbody specRigidbody = ((BraveBehaviour)this).specRigidbody; specRigidbody.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Remove((Delegate?)(object)specRigidbody.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(OnPreRigidBodyCollision)); ((DungeonPlaceableBehaviour)this).OnDestroy(); } } public class ExpandBellyMonsterTriggerHandler : BraveBehaviour { public ExpandBellyMonsterController MonsterController; public RoomHandler ParentRoom; private bool m_Triggered; public ExpandBellyMonsterTriggerHandler() { m_Triggered = false; } private void Start() { } private void Update() { } public void HandleTriggerCollision(SpeculativeRigidbody specRigidbody, SpeculativeRigidbody sourceSpecRigidbody, CollisionData collisionData) { //IL_0041: 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_004e: Expected O, but got Unknown //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) if (!m_Triggered && Object.op_Implicit((Object)(object)((Component)specRigidbody).GetComponent()) && Object.op_Implicit((Object)(object)MonsterController)) { m_Triggered = true; MonsterController.Awakened = true; GameObject val = new GameObject("BellySoundFXObject") { layer = 0 }; val.transform.position = ((BraveBehaviour)this).transform.position - new Vector3(15f, 0f) + new Vector3(0f, 8f); val.transform.parent = ParentRoom.hierarchyParent; AkSoundEngine.PostEvent("Play_OBJ_moondoor_close_01", val); Object.Destroy((Object)(object)((Component)this).gameObject); } } protected override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); } } public class ExpandWarpManager : DungeonPlaceableBehaviour, IPlaceConfigurable { public enum WarpType { OldWestFloorWarp, FloorWarp, Normal } public RoomHandler TargetRoom; public IntVector2 TargetPoint; public WarpType warpType; public bool IsOpenForTeleport; public string OverrideTargetFloor; private bool m_justWarped; public ExpandWarpManager() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) TargetPoint = new IntVector2(4, 2); IsOpenForTeleport = false; warpType = WarpType.Normal; OverrideTargetFloor = string.Empty; m_justWarped = false; } private void Start() { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Expected O, but got Unknown //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Expected O, but got Unknown WarpType warpType = this.warpType; if (warpType == WarpType.Normal) { ((BraveBehaviour)this).specRigidbody.OnTriggerCollision = (OnTriggerDelegate)Delegate.Combine((Delegate?)(object)((BraveBehaviour)this).specRigidbody.OnTriggerCollision, (Delegate?)new OnTriggerDelegate(HandleTriggerCollision)); } } private void Update() { } private void HandleTriggerCollision(SpeculativeRigidbody specRigidbody, SpeculativeRigidbody sourceSpecRigidbody, CollisionData collisionData) { if (m_justWarped | !IsOpenForTeleport) { return; } PlayerController component = ((Component)specRigidbody).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { switch (warpType) { case WarpType.Normal: m_justWarped = true; component.SetInputOverride("arbitrary warp"); ((MonoBehaviour)this).StartCoroutine(HandleWarp(component)); break; case WarpType.FloorWarp: ((MonoBehaviour)this).StartCoroutine(HandleExitFloor()); m_justWarped = true; break; case WarpType.OldWestFloorWarp: ExpandLoadingScreen.overrideType = ExpandLoadingScreen.OverrideType.West; ((MonoBehaviour)this).StartCoroutine(HandleOldWestExitFloor(component)); m_justWarped = true; break; } } } private IEnumerator HandleWarp(PlayerController player) { Pixelator.Instance.FadeToBlack(0.1f, false, 0f); PlayerController otherPlayer = GameManager.Instance.GetOtherPlayer(player); yield return (object)new WaitForSeconds(0.1f); IntVector2 val = TargetRoom.area.basePosition + TargetPoint; player.WarpToPoint(((IntVector2)(ref val)).ToVector2(), false, false); if (Object.op_Implicit((Object)(object)otherPlayer) && ((BraveBehaviour)otherPlayer).healthHaver.IsAlive) { otherPlayer.ReuniteWithOtherPlayer(player, false); } GameManager.Instance.MainCameraController.ForceToPlayerPosition(player); Pixelator.Instance.FadeToBlack(0.1f, true, 0f); player.ClearInputOverride("arbitrary warp"); yield return (object)new WaitForSeconds(1f); m_justWarped = false; } private IEnumerator HandleExitFloor(float delay = 0.5f, bool skipFade = false) { PlayerController[] allPlayers = GameManager.Instance.AllPlayers; foreach (PlayerController val in allPlayers) { val.PrepareForSceneTransition(); if (!string.IsNullOrEmpty(OverrideTargetFloor) && OverrideTargetFloor.ToLower().StartsWith("tt_backrooms")) { ((BraveBehaviour)val).healthHaver.IsVulnerable = false; yield return (object)new WaitForSeconds(2f); } } if (!skipFade) { if (ExpandDebugCamera.DebugCameraEnabled) { ExpandDebugCamera.SetInitialCameraPosition(Pixelator.Instance, GameManager.Instance.MainCameraController); } else { Pixelator.Instance.FadeToBlack(0.5f, false, 0f); } yield return (object)new WaitForSeconds(1f); } GameUIRoot.Instance.HideCoreUI(string.Empty); GameUIRoot.Instance.ToggleLowerPanels(false, false, string.Empty); yield return null; if ((int)GameManager.Instance.CurrentGameMode == 3) { GameManager.Instance.DelayedLoadBossrushFloor(delay); yield break; } if ((int)GameManager.Instance.CurrentGameMode == 2) { GameManager.Instance.DelayedLoadBossrushFloor(delay); yield break; } if (!GameManager.Instance.IsFoyer && (int)GameManager.Instance.CurrentLevelOverrideState == 0) { GameManager.DoMidgameSave(GameManager.Instance.GetNextTileset(GameManager.Instance.Dungeon.tileIndices.tilesetId)); } if (!string.IsNullOrEmpty(OverrideTargetFloor)) { if (OverrideTargetFloor.ToLower().StartsWith("tt_backrooms")) { ExpandLoadingScreen.overrideType = ExpandLoadingScreen.OverrideType.Backrooms; ExpandSettings.HasVisitedBackrooms = true; yield return (object)new WaitForSeconds(1f); } GameManager.Instance.DelayedLoadCustomLevel(delay, OverrideTargetFloor); } else { GameManager.Instance.DelayedLoadNextLevel(delay); } AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)this).gameObject); } private IEnumerator HandleOldWestExitFloor(PlayerController targetPlayer) { targetPlayer.SetInputOverride("Going to Old West"); ((BraveBehaviour)targetPlayer).specRigidbody.CollideWithOthers = false; if (targetPlayer.IsDodgeRolling) { targetPlayer.ForceStopDodgeRoll(); } Vector2 val = Vector3Extensions.XY(((BraveBehaviour)GameManager.Instance.MainCameraController).transform.position); GameManager.Instance.MainCameraController.StopTrackingPlayer(); GameManager.Instance.MainCameraController.SetManualControl(true, false); GameManager.Instance.MainCameraController.OverridePosition = Vector2.op_Implicit(val); targetPlayer.ForceMoveInDirectionUntilThreshold(Vector2.up, ((GameActor)targetPlayer).CenterPosition.y + 15f, 0f, 4f, (List)null); OverrideTargetFloor = "tt_west"; yield return (object)new WaitForSeconds(3f); if (ExpandDebugCamera.DebugCameraEnabled) { ExpandDebugCamera.SetInitialCameraPosition(Pixelator.Instance, GameManager.Instance.MainCameraController); } else { Pixelator.Instance.FadeToBlack(0.5f, false, 0f); } yield return (object)new WaitForSeconds(1f); ((BraveBehaviour)targetPlayer).specRigidbody.Velocity = Vector2.zero; ((BraveBehaviour)targetPlayer).specRigidbody.CollideWithOthers = true; targetPlayer.ClearAllInputOverrides(); ((MonoBehaviour)this).StartCoroutine(HandleExitFloor()); } public void ConfigureOnPlacement(RoomHandler room) { //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Expected O, but got Unknown //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Expected O, but got Unknown //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Expected O, but got Unknown //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Expected O, but got Unknown if (!Object.op_Implicit((Object)(object)((BraveBehaviour)this).specRigidbody)) { return; } switch (warpType) { case WarpType.FloorWarp: ((BraveBehaviour)this).specRigidbody.OnTriggerCollision = (OnTriggerDelegate)Delegate.Combine((Delegate?)(object)((BraveBehaviour)this).specRigidbody.OnTriggerCollision, (Delegate?)new OnTriggerDelegate(HandleTriggerCollision)); IsOpenForTeleport = true; if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).sprite)) { ((BraveBehaviour)this).sprite.HeightOffGround = -1f; ((BraveBehaviour)this).sprite.UpdateZDepth(); } break; case WarpType.OldWestFloorWarp: ((BraveBehaviour)this).specRigidbody.OnTriggerCollision = (OnTriggerDelegate)Delegate.Combine((Delegate?)(object)((BraveBehaviour)this).specRigidbody.OnTriggerCollision, (Delegate?)new OnTriggerDelegate(HandleTriggerCollision)); IsOpenForTeleport = true; break; case WarpType.Normal: break; } } protected override void OnDestroy() { ((DungeonPlaceableBehaviour)this).OnDestroy(); } } public class ExpandBellyWoodCrestEntranceController : DungeonPlaceableBehaviour, IPlaceConfigurable, IPlayerInteractable { public string TargetRoomName; public int ItemID; public Color BaseOutlineColor; private bool m_Interacted; private RoomHandler m_ParentRoom; private RoomHandler m_TargetRoom; private GameObject m_TargetDoor; public ExpandBellyWoodCrestEntranceController() { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) TargetRoomName = string.Empty; ItemID = -1; BaseOutlineColor = Color.black; m_Interacted = false; } public void Start() { ((BraveBehaviour)this).sprite.HeightOffGround = -0.5f; ((BraveBehaviour)this).sprite.UpdateZDepth(); TargetRoomName = ((Object)ExpandRoomPrefabs.Expand_Gungeon_HiddenMonsterRoom).name; foreach (RoomHandler room in GameManager.Instance.Dungeon.data.rooms) { if (!string.IsNullOrEmpty(room.GetRoomName()) && room.GetRoomName().StartsWith(TargetRoomName)) { m_TargetRoom = room; break; } } if (m_TargetRoom == null) { Object.Destroy((Object)(object)this); } else { if ((Object.FindObjectsOfType() == null) | (Object.FindObjectsOfType().Length == 0)) { return; } GameObject[] array = Object.FindObjectsOfType(); foreach (GameObject val in array) { if (!string.IsNullOrEmpty(((Object)val).name) && ((Object)val).name.StartsWith(((Object)ExpandPrefabs.Sarco_Door).name)) { m_TargetDoor = val; break; } } } } public void Interact(PlayerController player) { if (!m_Interacted && Object.op_Implicit((Object)(object)player) && ItemID != -1 && player.HasPassiveItem(ItemID) && m_ParentRoom != null && m_TargetRoom != null) { TakeItem(player); } } private void TakeItem(PlayerController player) { //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)PickupObjectDatabase.GetById(ItemID)) && (Object)/*isinst with value type is only supported in some contexts*/ != (Object)null && player.HasPassiveItem(ItemID)) { m_Interacted = true; GameObject val = new GameObject("Item Display Object", new Type[1] { typeof(tk2dSprite) }) { layer = 0 }; val.transform.position = ((BraveBehaviour)this).transform.position + new Vector3(0.35f, 1.3f); tk2dSprite component = val.GetComponent(); tk2dBaseSprite sprite = ((BraveBehaviour)PickupObjectDatabase.GetById(ItemID)).sprite; ExpandUtility.DuplicateSprite(component, (tk2dSprite)(object)((sprite is tk2dSprite) ? sprite : null)); if (m_ParentRoom != null) { val.transform.parent = m_ParentRoom.hierarchyParent; } ((tk2dBaseSprite)val.GetComponent()).HeightOffGround = 3f; ((tk2dBaseSprite)val.GetComponent()).UpdateZDepth(); player.RemovePassiveItem(ItemID); if (Object.op_Implicit((Object)(object)m_TargetDoor) && Object.op_Implicit((Object)(object)m_TargetDoor.GetComponent()) && Object.op_Implicit((Object)(object)m_TargetDoor.GetComponent())) { AkSoundEngine.PostEvent("Play_OBJ_plate_press_01", ((Component)this).gameObject); ((MonoBehaviour)this).StartCoroutine(DelayedDoorOpen(m_TargetDoor)); } SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)this).sprite, false); } } private IEnumerator DelayedDoorOpen(GameObject targetObject) { yield return (object)new WaitForSeconds(0.5f); targetObject.GetComponent().Play("Sarco_Door_Open"); AkSoundEngine.PostEvent("Play_OBJ_hugedoor_open_01", targetObject); while (targetObject.GetComponent().IsPlaying("Sarco_Door_Open")) { yield return null; } if (targetObject.GetComponent().PixelColliders.Count > 2) { targetObject.GetComponent().PixelColliders[0].Enabled = false; targetObject.GetComponent().PixelColliders[1].Enabled = false; } GameObject val = new GameObject("Belly Warp Wing Thing") { layer = 0 }; val.transform.position = m_TargetDoor.transform.position; ExpandUtility.GenerateOrAddToRigidBody(offset: (IntVector2?)new IntVector2(7, 12), targetObject: val, collisionLayer: (CollisionLayer)16, colliderGenerationMode: (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: true, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, dimensions: (IntVector2?)new IntVector2(38, 16)); ExpandWarpManager expandWarpManager = val.AddComponent(); expandWarpManager.TargetRoom = m_TargetRoom; expandWarpManager.IsOpenForTeleport = true; yield return null; Object.Destroy((Object)(object)this); } public void ConfigureOnPlacement(RoomHandler room) { m_ParentRoom = room; } public void OnEnteredRange(PlayerController interactor) { //IL_0047: Unknown result type (might be due to invalid IL or missing references) if (!(!Object.op_Implicit((Object)(object)this) | m_Interacted | (ItemID == -1) | !Object.op_Implicit((Object)(object)interactor) | !interactor.HasPassiveItem(ItemID) | (m_TargetRoom == null))) { SpriteOutlineManager.AddOutlineToSprite(((BraveBehaviour)this).sprite, Color.white, 0.1f, 0f, (OutlineType)0); ((BraveBehaviour)this).sprite.UpdateZDepth(); } } public void OnExitRange(PlayerController interactor) { if (!(!Object.op_Implicit((Object)(object)this) | m_Interacted | (ItemID == -1) | !Object.op_Implicit((Object)(object)interactor) | !interactor.HasPassiveItem(ItemID) | (m_TargetRoom == null))) { SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)this).sprite, false); ((BraveBehaviour)this).sprite.UpdateZDepth(); } } public float GetDistanceToPoint(Vector2 point) { //IL_0006: 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_0010: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_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_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0049: 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_006a: 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_0083: 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_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) Bounds bounds = ((BraveBehaviour)this).sprite.GetBounds(); ((Bounds)(ref bounds)).SetMinMax(((Bounds)(ref bounds)).min + ((BraveBehaviour)this).transform.position, ((Bounds)(ref bounds)).max + ((BraveBehaviour)this).transform.position); float num = Mathf.Max(Mathf.Min(point.x, ((Bounds)(ref bounds)).max.x), ((Bounds)(ref bounds)).min.x); float num2 = Mathf.Max(Mathf.Min(point.y, ((Bounds)(ref bounds)).max.y), ((Bounds)(ref bounds)).min.y); return Mathf.Sqrt((point.x - num) * (point.x - num) + (point.y - num2) * (point.y - num2)); } public float GetOverrideMaxDistance() { return -1f; } public string GetAnimationState(PlayerController interactor, out bool shouldBeFlipped) { shouldBeFlipped = false; return string.Empty; } protected override void OnDestroy() { ((DungeonPlaceableBehaviour)this).OnDestroy(); } } internal class ExpandBlobulinRancherChallengeComponent : ChallengeModifier { [EnemyIdentifier] public string SpawnTargetGuid; public string SpawnTarget2Guid; public float CooldownBetweenSpawns; public float SafeRadius; public float PoisonBlobSpawnChance; private float m_cooldown; public ExpandBlobulinRancherChallengeComponent() { SpawnTarget2Guid = "b8103805af174924b578c98e95313074"; PoisonBlobSpawnChance = 0.3f; } private void Start() { PlayerController[] allPlayers = GameManager.Instance.AllPlayers; for (int i = 0; i < allPlayers.Length; i++) { allPlayers[i].PostProcessProjectile += ModifyProjectile; } } private void ModifyProjectile(Projectile proj, float somethin) { if (Object.op_Implicit((Object)(object)proj) && proj.Owner is PlayerController && !proj.SpawnedFromNonChallengeItem && !proj.TreatedAsNonProjectileForChallenge && !(proj is InstantDamageOneEnemyProjectile) && !(proj is InstantlyDamageAllProjectile)) { proj.OnDestruction += HandleProjectileDeath; } } private bool CellIsValid(IntVector2 cellPos) { //IL_000f: 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_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Invalid comparison between Unknown and I4 if (GameManager.Instance.Dungeon.data.CheckInBoundsAndValid(cellPos)) { CellData val = GameManager.Instance.Dungeon.data[cellPos]; if (val == null || val.parentRoom == null || val.parentRoom.GetActiveEnemiesCount((ActiveEnemyType)1) != 0) { if (val != null && (int)val.type == 2 && val.IsPassable && val.parentRoom == GameManager.Instance.BestActivePlayer.CurrentRoom) { return !val.isExitCell; } return false; } return false; } return false; } private void Update() { m_cooldown -= BraveTime.DeltaTime; } private void HandleProjectileDeath(Projectile obj) { //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_012d: 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_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: 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_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)this) || !Object.op_Implicit((Object)(object)obj) || obj.HasImpactedEnemy || obj.HasDiedInAir) { return; } float num = 0f; GameManager.Instance.GetPlayerClosestToPoint(((BraveBehaviour)obj).specRigidbody.UnitCenter, ref num); if (num < SafeRadius) { return; } IntVector2 val = Vector2Extensions.ToIntVector2(((BraveBehaviour)obj).specRigidbody.UnitCenter, (VectorConversions)2); if (GameManager.Instance.Dungeon.data.isFaceWallHigher(val.x, val.y)) { val += new IntVector2(0, -2); } else if (GameManager.Instance.Dungeon.data.isFaceWallLower(val.x, val.y)) { val += new IntVector2(0, -1); } bool flag = CellIsValid(val); if (!flag) { for (int i = -1; i < 2; i++) { for (int j = -1; j < 2; j++) { IntVector2 val2 = val + new IntVector2(i, j); flag = CellIsValid(val2); if (flag) { val = val2; break; } } if (flag) { break; } } if (!flag) { IntVector2? nearestAvailableCell = GameManager.Instance.PrimaryPlayer.CurrentRoom.GetNearestAvailableCell(((BraveBehaviour)obj).specRigidbody.UnitCenter, (IntVector2?)IntVector2.One, (CellTypes?)(CellTypes)2, false, (CellValidator)null); if (nearestAvailableCell.HasValue) { flag = true; val = nearestAvailableCell.Value; } } } if (obj.Owner is PlayerController) { GameActor owner = obj.Owner; if (!((PlayerController)((owner is PlayerController) ? owner : null)).IsInCombat) { flag = false; } } else { flag = false; } if (flag && m_cooldown <= 0f) { m_cooldown = CooldownBetweenSpawns; if (Random.value <= PoisonBlobSpawnChance) { AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(SpawnTarget2Guid), val, GameManager.Instance.Dungeon.data.GetAbsoluteRoomFromPosition(val), true, (AwakenAnimationType)0, true); } else { AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(SpawnTargetGuid), val, GameManager.Instance.Dungeon.data.GetAbsoluteRoomFromPosition(val), true, (AwakenAnimationType)0, true); } } } private void OnDestroy() { PlayerController[] allPlayers = GameManager.Instance.AllPlayers; for (int i = 0; i < allPlayers.Length; i++) { allPlayers[i].PostProcessProjectile -= ModifyProjectile; } } } public class ExpandBooRoomChallengeComponent : ChallengeModifier { public float ConeAngle; public Shader DarknessEffectShader; private Material m_material; private void Start() { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Expected O, but got Unknown if ((Object)(object)Pixelator.Instance.AdditionalCoreStackRenderPass == (Object)null) { m_material = new Material(DarknessEffectShader); Pixelator.Instance.AdditionalCoreStackRenderPass = m_material; } } private Vector4 GetCenterPointInScreenUV(Vector2 centerPoint) { //IL_000f: 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) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0020: 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_0036: Unknown result type (might be due to invalid IL or missing references) Vector3 val = GameManager.Instance.MainCameraController.Camera.WorldToViewportPoint(Vector2Extensions.ToVector3ZUp(centerPoint, 0f)); return new Vector4(val.x, val.y, 0f, 0f); } private void LateUpdate() { //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006c: 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_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Invalid comparison between Unknown and I4 //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: 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_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)m_material != (Object)null)) { return; } float num = ((GameActor)GameManager.Instance.PrimaryPlayer).FacingDirection; if (num > 270f) { num -= 360f; } if (num < -270f) { num += 360f; } m_material.SetFloat("_ConeAngle", ConeAngle); Vector4 centerPointInScreenUV = GetCenterPointInScreenUV(((GameActor)GameManager.Instance.PrimaryPlayer).CenterPosition); centerPointInScreenUV.z = num; Vector4 val = centerPointInScreenUV; if ((int)GameManager.Instance.CurrentGameType == 1) { num = ((GameActor)GameManager.Instance.SecondaryPlayer).FacingDirection; if (num > 270f) { num -= 360f; } if (num < -270f) { num += 360f; } val = GetCenterPointInScreenUV(((GameActor)GameManager.Instance.SecondaryPlayer).CenterPosition); val.z = num; } m_material.SetVector("_Player1ScreenPosition", centerPointInScreenUV); m_material.SetVector("_Player2ScreenPosition", val); } private void Update() { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_001c: 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_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_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Invalid comparison between Unknown and I4 //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0167: 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_016d: Unknown result type (might be due to invalid IL or missing references) //IL_016e: 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_017b: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Unknown result type (might be due to invalid IL or missing references) List activeEnemies = GameManager.Instance.PrimaryPlayer.CurrentRoom.GetActiveEnemies((ActiveEnemyType)0); Vector2 zero = Vector2.zero; Vector2 zero2 = Vector2.zero; float num = ((!Object.op_Implicit((Object)(object)((GameActor)GameManager.Instance.PrimaryPlayer).CurrentGun) || GameManager.Instance.PrimaryPlayer.IsGhost) ? BraveMathCollege.Atan2Degrees(Vector3Extensions.XY(GameManager.Instance.PrimaryPlayer.unadjustedAimPoint)) : ((GameActor)GameManager.Instance.PrimaryPlayer).CurrentGun.CurrentAngle); zero = ((GameActor)GameManager.Instance.PrimaryPlayer).CenterPosition; float num2; if ((int)GameManager.Instance.CurrentGameType == 1) { num2 = ((!Object.op_Implicit((Object)(object)((GameActor)GameManager.Instance.SecondaryPlayer).CurrentGun) || GameManager.Instance.SecondaryPlayer.IsGhost) ? BraveMathCollege.Atan2Degrees(Vector3Extensions.XY(GameManager.Instance.SecondaryPlayer.unadjustedAimPoint)) : ((GameActor)GameManager.Instance.SecondaryPlayer).CurrentGun.CurrentAngle); zero2 = ((GameActor)GameManager.Instance.SecondaryPlayer).CenterPosition; } else { zero2 = zero; num2 = num; } for (int i = 0; i < activeEnemies.Count; i++) { AIActor val = activeEnemies[i]; if (!Object.op_Implicit((Object)(object)val) || !Object.op_Implicit((Object)(object)((BraveBehaviour)val).healthHaver) || !val.IsNormalEnemy || ((BraveBehaviour)val).healthHaver.IsBoss || ((BraveBehaviour)val).healthHaver.IsDead) { continue; } Vector2 centerPosition = ((GameActor)val).CenterPosition; float num3 = BraveMathCollege.Atan2Degrees(centerPosition - zero); float num4 = BraveMathCollege.Atan2Degrees(centerPosition - zero2); if (BraveMathCollege.AbsAngleBetween(num, num3) < ConeAngle || BraveMathCollege.AbsAngleBetween(num2, num4) < ConeAngle) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)val).behaviorSpeculator)) { ((BraveBehaviour)val).behaviorSpeculator.Stun(0.25f, false); } if (val.IsBlackPhantom) { val.UnbecomeBlackPhantom(); } ((GameActor)val).RegisterOverrideColor(new Color(0.4f, 0.4f, 0.33f, 1f), "Turn to Stone"); } else if (!val.IsBlackPhantom) { ((GameActor)val).DeregisterOverrideColor("Turn to Stone"); val.BecomeBlackPhantom(); } } } private void OnDestroy() { if ((Object)(object)m_material != (Object)null && Object.op_Implicit((Object)(object)Pixelator.Instance)) { Pixelator.Instance.AdditionalCoreStackRenderPass = null; } } } internal class ExpandBulletKingChallenge : ChallengeModifier { public List ToadieGUIDs; public List ToadieWithGunsGUIDs; public float MinTimeBetweenSpawns; public float MaxTimeBetweenSpawns; public int MaxActiveToadies; public int MaxToadiesPerWave; private RoomHandler m_CurrentRoom; private AIActor m_Boss; private float m_SpawnTimer; public ExpandBulletKingChallenge() { base.DisplayName = "All the King's Men"; base.AlternateLanguageDisplayName = string.Empty; base.AtlasSpriteName = "Big_Boss_icon_001"; base.ValidInBossChambers = true; base.MutuallyExclusive = new List(0); ToadieGUIDs = new List { "b5e699a0abb94666bda567ab23bd91c4", "d4dd2b2bbda64cc9bcec534b4e920518", "02a14dec58ab45fb8aacde7aacd25b01" }; ToadieWithGunsGUIDs = new List { "01972dee89fc4404a5c408d50007dad5", ExpandEnemyDatabase.ClownkinAngryGUID }; MinTimeBetweenSpawns = 10f; MaxTimeBetweenSpawns = 20f; MaxActiveToadies = 16; MaxToadiesPerWave = 6; } private void Start() { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Invalid comparison between Unknown and I4 //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Invalid comparison between Unknown and I4 if (((int)GameManager.Instance.CurrentLevelOverrideState == 1) | GameManager.Instance.IsLoadingLevel | Dungeon.IsGenerating) { return; } m_CurrentRoom = GameManager.Instance.BestActivePlayer.CurrentRoom; m_SpawnTimer = Random.Range(MinTimeBetweenSpawns, MaxTimeBetweenSpawns); if (m_CurrentRoom == null || (int)m_CurrentRoom.area.PrototypeRoomCategory != 3 || ((ToadieGUIDs == null) | (ToadieGUIDs.Count <= 0))) { return; } foreach (AIActor activeEnemy in m_CurrentRoom.GetActiveEnemies((ActiveEnemyType)1)) { if (((BraveBehaviour)activeEnemy).healthHaver.IsBoss) { m_Boss = activeEnemy; break; } } for (int i = 0; i < MaxToadiesPerWave; i++) { RandomToadieAirDrop(BraveUtility.RandomElement(ToadieGUIDs), m_CurrentRoom); } } private void Update() { if (((m_CurrentRoom == null) | !m_CurrentRoom.HasActiveEnemies((ActiveEnemyType)1)) || (!Object.op_Implicit((Object)(object)m_Boss) | ((BraveBehaviour)m_Boss).healthHaver.IsDead)) { return; } m_SpawnTimer -= BraveTime.DeltaTime; if (!(m_SpawnTimer <= 0f)) { return; } m_SpawnTimer = Random.Range(MinTimeBetweenSpawns, MaxTimeBetweenSpawns); int num = 0; List activeEnemies = m_CurrentRoom.GetActiveEnemies((ActiveEnemyType)0); if (activeEnemies != null && activeEnemies.Count > 0) { foreach (AIActor item in activeEnemies) { if (!string.IsNullOrEmpty(item.EnemyGuid) && ToadieGUIDs.Contains(item.EnemyGuid)) { num++; } } } if (num >= MaxActiveToadies) { return; } bool flag = false; int num2 = Random.Range(4, MaxToadiesPerWave); for (int i = 0; i < num2; i++) { if (Random.value > 0.75f && !flag) { flag = true; RandomToadieAirDrop(BraveUtility.RandomElement(ToadieWithGunsGUIDs), m_CurrentRoom); } else { RandomToadieAirDrop(BraveUtility.RandomElement(ToadieGUIDs), m_CurrentRoom); } } } private void RandomToadieAirDrop(string EnemyGUID, RoomHandler currentRoom, IntVector2? Clearence = null) { //IL_001a: 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_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_0062: Unknown result type (might be due to invalid IL or missing references) if (!Clearence.HasValue) { Clearence = new IntVector2(2, 2); } IntVector2? randomAvailableCellSmart = ExpandUtility.GetRandomAvailableCellSmart(currentRoom, Clearence.Value); if (randomAvailableCellSmart.HasValue) { bool isToadie = false; if (EnemyGUID.ToLower() != ExpandEnemyDatabase.ClownkinAngryGUID && EnemyGUID.ToLower() != "01972dee89fc4404a5c408d50007dad5") { isToadie = true; } IntVector2 value = randomAvailableCellSmart.Value; ExpandUtility.SpawnEnemyParaDrop(currentRoom, ((IntVector2)(ref value)).ToVector3(), EnemyGUID, AutoEngage: true, isToadie, (AwakenAnimationType)0); } } private IntVector2? FindRandomDropLocation(RoomHandler currentRoom, IntVector2 Clearance, float maxDistanceFromPlayer = 20f, bool markLocationAsOccupied = false) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Expected O, but got Unknown //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Invalid comparison between Unknown and I4 CellValidator val = (CellValidator)delegate(IntVector2 pos) { //IL_0010: 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) for (int i = 0; i < GameManager.Instance.AllPlayers.Length; i++) { if (Vector2.Distance(((GameActor)GameManager.Instance.AllPlayers[i]).CenterPosition, ((IntVector2)(ref pos)).ToCenterVector2()) < maxDistanceFromPlayer) { return false; } } return true; }; IntVector2? randomAvailableCell = currentRoom.GetRandomAvailableCell((IntVector2?)Clearance, (CellTypes?)(CellTypes)2, false, val); if (randomAvailableCell.HasValue) { CellData val2 = GameManager.Instance.Dungeon.data[randomAvailableCell.Value]; if (val2.parentRoom == currentRoom && (int)val2.type == 2 && !val2.isOccupied && !val2.containsTrap && !val2.isOccludedByTopWall) { if (markLocationAsOccupied) { val2.isOccupied = true; } return randomAvailableCell; } return null; } return null; } private void OnDestroy() { } } public class ExpandCandleGuyEngageDoer : CustomEngageDoer { private bool m_isFinished; public override bool IsFinished => m_isFinished; public void Awake() { ((BraveBehaviour)this).aiActor.HasDonePlayerEnterCheck = true; } public override void StartIntro() { //IL_001b: 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) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Invalid comparison between Unknown and I4 if (!m_isFinished) { m_isFinished = true; if ((Vector3Extensions.GetAbsoluteRoom(((Component)this).gameObject.transform.position) == null || (int)Vector3Extensions.GetAbsoluteRoom(((Component)this).gameObject.transform.position).area.PrototypeRoomCategory != 3) && Object.op_Implicit((Object)(object)((Component)this).gameObject.GetComponent())) { ((Component)this).gameObject.GetComponent().goopDefinition.eternal = false; ((Component)this).gameObject.GetComponent().goopDefinition.usesLifespan = true; } } } } public class ExpandChamberGunProcessor : MonoBehaviour, ILevelLoadedListener { public bool RefillsOnFloorChange; [NonSerialized] public bool JustActiveReloaded; [PickupIdentifier] public int CastleGunID; [PickupIdentifier] public int GungeonGunID; [PickupIdentifier] public int MinesGunID; [PickupIdentifier] public int HollowGunID; [PickupIdentifier] public int ForgeGunID; [PickupIdentifier] public int HellGunID; [PickupIdentifier] public int OublietteGunID; [PickupIdentifier] public int JungleGunID; [PickupIdentifier] public int BellyGunID; [PickupIdentifier] public int AbbeyGunID; [PickupIdentifier] public int RatgeonGunID; [PickupIdentifier] public int OfficeGunID; [PickupIdentifier] public int PhobosGunID; [PickupIdentifier] public int OldWestGunID; [PickupIdentifier] public int SpaceGunID; [PickupIdentifier] public int FinalGeonID; private ValidTilesets m_currentTileset; private Gun m_gun; public ExpandChamberGunProcessor() { RefillsOnFloorChange = true; JustActiveReloaded = false; CastleGunID = 647; GungeonGunID = 660; MinesGunID = 807; HollowGunID = 659; ForgeGunID = 658; HellGunID = 763; OublietteGunID = 657; JungleGunID = 368; BellyGunID = 734; AbbeyGunID = 806; RatgeonGunID = 808; OfficeGunID = 823; PhobosGunID = 734; OldWestGunID = 734; SpaceGunID = 734; FinalGeonID = 734; } private void Awake() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) m_currentTileset = (ValidTilesets)2; m_gun = ((Component)this).GetComponent(); Gun gun = m_gun; gun.OnReloadPressed = (Action)Delegate.Combine(gun.OnReloadPressed, new Action(HandleReloadPressed)); } private ValidTilesets GetFloorTileset() { //IL_002e: Unknown result type (might be due to invalid IL or missing references) if (GameManager.Instance.IsLoadingLevel || !Object.op_Implicit((Object)(object)GameManager.Instance.Dungeon)) { return (ValidTilesets)2; } return GameManager.Instance.Dungeon.tileIndices.tilesetId; } private bool IsValidTileset(ValidTilesets t) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Invalid comparison between Unknown and I4 //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Invalid comparison between Unknown and I4 //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Invalid comparison between Unknown and I4 //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Invalid comparison between Unknown and I4 //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Invalid comparison between Unknown and I4 //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Invalid comparison between Unknown and I4 if (t == GetFloorTileset()) { return true; } GameActor currentOwner = m_gun.CurrentOwner; PlayerController val = (PlayerController)(object)((currentOwner is PlayerController) ? currentOwner : null); if (Object.op_Implicit((Object)(object)val)) { if (val.HasPassiveItem(CustomMasterRounds.GtlichFloorMasterRoundID)) { return true; } if ((int)t <= 2) { if ((int)t == 1) { return val.HasPassiveItem(GlobalItemIds.MasteryToken_Gungeon); } if ((int)t == 2) { return val.HasPassiveItem(GlobalItemIds.MasteryToken_Castle); } } else { if ((int)t == 16) { return val.HasPassiveItem(GlobalItemIds.MasteryToken_Mines); } if ((int)t == 32) { return val.HasPassiveItem(GlobalItemIds.MasteryToken_Catacombs); } if ((int)t == 64) { return val.HasPassiveItem(GlobalItemIds.MasteryToken_Forge); } } return false; } return false; } private void ChangeToTileset(ValidTilesets tileSet) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Invalid comparison between Unknown and I4 //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Invalid comparison between Unknown and I4 //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Invalid comparison between Unknown and I4 //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Invalid comparison between Unknown and I4 //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Invalid comparison between Unknown and I4 //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Invalid comparison between Unknown and I4 //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Expected I4, but got Unknown //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Invalid comparison between Unknown and I4 //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Invalid comparison between Unknown and I4 //IL_01db: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Invalid comparison between Unknown and I4 //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Invalid comparison between Unknown and I4 //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Invalid comparison between Unknown and I4 //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Invalid comparison between Unknown and I4 //IL_0238: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Invalid comparison between Unknown and I4 //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Invalid comparison between Unknown and I4 //IL_01c3: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Invalid comparison between Unknown and I4 //IL_0220: 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_0064: Invalid comparison between Unknown and I4 //IL_0193: 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_0049: Invalid comparison between Unknown and I4 //IL_0139: 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_002f: Invalid comparison between Unknown and I4 //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_0208: Unknown result type (might be due to invalid IL or missing references) //IL_01f0: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) if ((int)tileSet <= 256) { if ((int)tileSet <= 16) { switch (tileSet - 1) { default: if ((int)tileSet != 8) { if ((int)tileSet != 16) { break; } ChangeForme(MinesGunID); m_currentTileset = (ValidTilesets)16; return; } ChangeForme(AbbeyGunID); m_currentTileset = (ValidTilesets)8; return; case 1: ChangeForme(CastleGunID); m_currentTileset = (ValidTilesets)2; return; case 3: ChangeForme(OublietteGunID); m_currentTileset = (ValidTilesets)4; return; case 0: ChangeForme(GungeonGunID); m_currentTileset = (ValidTilesets)1; return; case 2: break; } } else if ((int)tileSet <= 64) { if ((int)tileSet == 32) { ChangeForme(HollowGunID); m_currentTileset = (ValidTilesets)32; return; } if ((int)tileSet == 64) { ChangeForme(ForgeGunID); m_currentTileset = (ValidTilesets)64; return; } } else { if ((int)tileSet == 128) { ChangeForme(HellGunID); m_currentTileset = (ValidTilesets)128; return; } if ((int)tileSet == 256) { ChangeForme(SpaceGunID); m_currentTileset = (ValidTilesets)256; return; } } } else if ((int)tileSet <= 2048) { if ((int)tileSet == 512) { ChangeForme(PhobosGunID); m_currentTileset = (ValidTilesets)512; return; } if ((int)tileSet == 1024) { ChangeForme(OldWestGunID); m_currentTileset = (ValidTilesets)1024; return; } if ((int)tileSet == 2048) { ChangeForme(OfficeGunID); m_currentTileset = (ValidTilesets)2048; return; } } else if ((int)tileSet <= 8192) { if ((int)tileSet == 4096) { ChangeForme(BellyGunID); m_currentTileset = (ValidTilesets)4096; return; } if ((int)tileSet == 8192) { ChangeForme(JungleGunID); m_currentTileset = (ValidTilesets)8192; return; } } else { if ((int)tileSet == 16384) { ChangeForme(FinalGeonID); m_currentTileset = (ValidTilesets)16384; return; } if ((int)tileSet == 32768) { ChangeForme(RatgeonGunID); m_currentTileset = (ValidTilesets)32768; return; } } ChangeForme(CastleGunID); m_currentTileset = (ValidTilesets)2; } private void ChangeForme(int targetID) { PickupObject byId = PickupObjectDatabase.GetById(targetID); Gun val = (Gun)(object)((byId is Gun) ? byId : null); m_gun.TransformToTargetGun(val); } private void Update() { //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0062: 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_0066: Unknown result type (might be due to invalid IL or missing references) if (Dungeon.IsGenerating || GameManager.Instance.IsLoadingLevel) { return; } if (Object.op_Implicit((Object)(object)m_gun) && (!Object.op_Implicit((Object)(object)m_gun.CurrentOwner) || !IsValidTileset(m_currentTileset))) { ValidTilesets val = GetFloorTileset(); if (!Object.op_Implicit((Object)(object)m_gun.CurrentOwner)) { val = (ValidTilesets)2; } if (m_currentTileset != val) { ChangeToTileset(val); } } JustActiveReloaded = false; } private ValidTilesets GetNextTileset(ValidTilesets inTileset) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Invalid comparison between Unknown and I4 //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Invalid comparison between Unknown and I4 //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Invalid comparison between Unknown and I4 //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Invalid comparison between Unknown and I4 //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Invalid comparison between Unknown and I4 //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Expected I4, but got Unknown //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Invalid comparison between Unknown and I4 //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Invalid comparison between Unknown and I4 //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Invalid comparison between Unknown and I4 //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Invalid comparison between Unknown and I4 //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Invalid comparison between Unknown and I4 //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Invalid comparison between Unknown and I4 //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Invalid comparison between Unknown and I4 //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Invalid comparison between Unknown and I4 //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Invalid comparison between Unknown and I4 //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Invalid comparison between Unknown and I4 //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Invalid comparison between Unknown and I4 //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Invalid comparison between Unknown and I4 if ((int)inTileset <= 256) { if ((int)inTileset <= 16) { switch (inTileset - 1) { default: if ((int)inTileset != 8) { if ((int)inTileset != 16) { break; } return (ValidTilesets)32768; } return (ValidTilesets)4096; case 1: return (ValidTilesets)4; case 3: return (ValidTilesets)8192; case 0: return (ValidTilesets)8; case 2: break; } } else if ((int)inTileset <= 64) { if ((int)inTileset == 32) { return (ValidTilesets)2048; } if ((int)inTileset == 64) { return (ValidTilesets)256; } } else { if ((int)inTileset == 128) { return (ValidTilesets)16384; } if ((int)inTileset == 256) { return (ValidTilesets)128; } } } else if ((int)inTileset <= 2048) { if ((int)inTileset == 512) { return (ValidTilesets)64; } if ((int)inTileset == 1024) { return (ValidTilesets)512; } if ((int)inTileset == 2048) { return (ValidTilesets)1024; } } else if ((int)inTileset <= 8192) { if ((int)inTileset == 4096) { return (ValidTilesets)16; } if ((int)inTileset == 8192) { return (ValidTilesets)1; } } else { if ((int)inTileset == 16384) { return (ValidTilesets)2; } if ((int)inTileset == 32768) { return (ValidTilesets)32; } } return (ValidTilesets)2; } private ValidTilesets GetNextValidTileset() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: 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_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) ValidTilesets nextTileset = GetNextTileset(m_currentTileset); while (!IsValidTileset(nextTileset)) { nextTileset = GetNextTileset(nextTileset); } return nextTileset; } private void HandleReloadPressed(PlayerController ownerPlayer, Gun sourceGun, bool manual) { //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_001c: 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_0025: Unknown result type (might be due to invalid IL or missing references) if (!JustActiveReloaded && manual && !sourceGun.IsReloading) { ValidTilesets nextValidTileset = GetNextValidTileset(); if (m_currentTileset != nextValidTileset) { ChangeToTileset(nextValidTileset); } } } public void BraveOnLevelWasLoaded() { if (RefillsOnFloorChange && Object.op_Implicit((Object)(object)m_gun) && Object.op_Implicit((Object)(object)m_gun.CurrentOwner)) { ((MonoBehaviour)m_gun).StartCoroutine(DelayedRegainAmmo()); } } private IEnumerator DelayedRegainAmmo() { yield return null; while (Dungeon.IsGenerating) { yield return null; } if (RefillsOnFloorChange && Object.op_Implicit((Object)(object)m_gun) && Object.op_Implicit((Object)(object)m_gun.CurrentOwner)) { m_gun.GainAmmo(m_gun.AdjustedMaxAmmo); } } } public class ExpandChaosChallengeComponent : ChallengeModifier { public List AlreadyIgnoredForRoomClearList; public List PotEnemiesBannedRooms; public List KillOnRoomClearList; public List RoomEnemyGUIDList; public List PotEnemiesList; public List PotPestGUIDList; public float EnemySpawnOdds; public float EnemyResizeOdds; public float EnemySpawnDelay; public float BonusEnemySpawnOdds; public float AirDropExplodeChances; private GameObject m_LootCratePrefab; private tk2dSpriteCollectionData BulletManMonochromeCollection; private tk2dSpriteCollectionData BulletManUpsideDownCollection; public ExpandChaosChallengeComponent() { base.DisplayName = "Apache Thunder's Revenge!"; base.AlternateLanguageDisplayName = string.Empty; base.AtlasSpriteName = "Rat's_Revenge_icon_001"; base.ValidInBossChambers = true; AlreadyIgnoredForRoomClearList = new List { "6ad1cafc268f4214a101dca7af61bc91", "14ea47ff46b54bb4a98f91ffcffb656d", "1386da0f42fb4bcabc5be8feb16a7c38", "76bc43539fc24648bff4568c75c686d1", "c2f902b7cbe745efb3db4399927eab34", "8b43a5c59b854eb780f9ab669ec26b7a", "d1c9781fdac54d9e8498ed89210a0238", "95ea1a31fc9e4415a5f271b9aedf9b15", "42432592685e47c9941e339879379d3a", "4254a93fc3c84c0dbe0a8f0dddf48a5a", "b5e699a0abb94666bda567ab23bd91c4", "02a14dec58ab45fb8aacde7aacd25b01", "566ecca5f3b04945ac6ce1f26dedbf4f", "78a8ee40dff2477e9c2134f6990ef297", "0ff278534abb4fbaaa65d3f638003648" }; PotEnemiesBannedRooms = new List { "Tutorial_Room_007_bosstime", "ResourcefulRatRoom01", "MetalGearRatRoom01", "DraGunRoom01", "DemonWallRoom01" }; KillOnRoomClearList = new List { "4538456236f64ea79f483784370bc62f", "be0683affb0e41bbb699cb7125fdded6", "6b7ef9e5d05b4f96b04f05ef4a0d1b18", "98fdf153a4dd4d51bf0bafe43f3c77ff", "d4dd2b2bbda64cc9bcec534b4e920518", "42be66373a3d4d89b91a35c9ff8adfec", "b8103805af174924b578c98e95313074", "c2f902b7cbe745efb3db4399927eab34", "4d37ce3d666b4ddda8039929225b7ede", "2feb50a6a40f4f50982e89fd276f6f15", "2d4f8b5404614e7d8b235006acde427a", "b4666cb6ef4f4b038ba8924fd8adf38f", "7ec3e8146f634c559a7d58b19191cd43", "226fd90be3a64958a5b13cb0a4f43e97", "566ecca5f3b04945ac6ce1f26dedbf4f", "cf27dd464a504a428d87a8b2560ad40a", "f905765488874846b7ff257ff81d6d0c" }; RoomEnemyGUIDList = new List { ExpandEnemyDatabase.ClownkinAngryGUID, ExpandEnemyDatabase.ClownkinNoFXGUID, ExpandEnemyDatabase.BootlegBulletManGUID, ExpandEnemyDatabase.BootlegShotgunManBlueGUID, ExpandEnemyDatabase.BootlegShotgunManRedGUID, ExpandEnemyDatabase.BootlegBulletManBandanaGUID, ExpandEnemyDatabase.AggressiveCronenbergGUID, ExpandEnemyDatabase.HotShotBulletKinGUID, ExpandEnemyDatabase.HotShotCultistGUID, ExpandEnemyDatabase.HotShotShotgunKinGUID, "01972dee89fc4404a5c408d50007dad5", "d4a9836f8ab14f3fadd0f597438b1f1f", "05891b158cd542b1a5f3df30fb67a7ff", "f155fd2759764f4a9217db29dd21b7eb", "9b2cf2949a894599917d4d391a0b7394", "a9cc6a4e9b3d46ea871e70a03c9f77d4", "1cec0cdf383e42b19920787798353e46", "95ec774b5a75467a9ab05fa230c0c143", "5288e86d20184fa69c91ceb642d31474", "d8a445ea4d944cc1b55a40f22821ae69", "43426a2e39584871b287ac31df04b544", "8b4a938cdbc64e64822e841e482ba3d2", "ba657723b2904aa79f9e51bce7d23872", "2ebf8ef6728648089babb507dec4edb7", "8bb5578fba374e8aae8e10b754e61d62", "37340393f97f41b2822bc02d14654172", "062b9b64371e46e195de17b6f10e47c8", "044a9f39712f456597b9762893fbc19c", "5f3abc2d561b4b9c9e72b879c6f10c7e", "c4fba8def15e47b297865b18e36cbef8", "f38686671d524feda75261e469f30e0b", "a446c626b56d4166915a4e29869737fd", "699cd24270af4cd183d671090d8323a1", "57255ed50ee24794b7aac1ac3cfb8a95", "022d7c822bc146b58fe3b0287568aaa2", "56f5a0f2c1fc4bc78875aea617ee31ac", "56fb939a434140308b8f257f0f447829", "1bd8e49f93614e76b140077ff2e33f2b", "1a78cfb776f54641b832e92c44021cf2", "844657ad68894a4facb1b8e1aef1abf9", "3f6d6b0c4a7c4690807435c7b37c35a5", "383175a55879441d90933b5c4e60cf6f", "b1770e0f1c744d9d887cc16122882b4f", "3e98ccecf7334ff2800188c417e67c15", "c5b11bfc065d417b9c4d03a5e385fe2c", "2752019b770f473193b08b4005dc781f", "70216cae6c1346309d86d4a0b4603045", "19b420dec96d4e9ea4aebc3398c0ba7a", "98ca70157c364750a60f5e0084f9d3e2", "1bc2a07ef87741be90c37096910843ab", "45192ff6d6cb43ed8f1a874ab6bef316", "12a054b8a6e549dcac58a82b89e319e5", "556e9f2a10f9411cb9dbfd61e0e0f1e1", "226fd90be3a64958a5b13cb0a4f43e97", "df4e9fedb8764b5a876517431ca67b86", "1f290ea06a4c416cabc52d6b3cf47266", "c4cf0620f71c4678bb8d77929fd4feff", "6f818f482a5c47fd8f38cce101f6566c", "143be8c9bbb84e3fb3ab98bcd4cf5e5b", "06f5623a351c4f28bc8c6cda56004b80", "ff4f54ce606e4604bf8d467c1279be3e", "39e6f47a16ab4c86bec4b12984aece4c", "f020570a42164e2699dcf57cac8a495c", "37de0df92697431baa47894a075ba7e9", "5861e5a077244905a8c25c2b7b4d6ebb", "906d71ccc1934c02a6f4ff2e9c07c9ec", "9eba44a0ea6c4ea386ff02286dd0e6bd", "2b6854c0849b4b8fb98eb15519d7db1c", "05cb719e0178478685dc610f8b3e8bfc", "5f15093e6f684f4fb09d3e7e697216b4", "d4f4405e0ff34ab483966fd177f2ece3", "534f1159e7cf4f6aa00aeea92459065e", "80ab6cd15bfc46668a8844b2975c6c26", "981d358ffc69419bac918ca1bdf0c7f7", "e861e59012954ab2b9b6977da85cb83c", "3b0bd258b4c9432db3339665cc61c356", "4b21a913e8c54056bc05cafecf9da880", "78e0951b097b46d89356f004dda27c42", "216fd3dfb9da439d9bd7ba53e1c76462", "ddf12a4881eb43cfba04f36dd6377abb", "86dfc13486ee4f559189de53cfb84107", "9215d1a221904c7386b481a171e52859" }; EnemySpawnOdds = 0.55f; EnemyResizeOdds = 0.6f; EnemySpawnDelay = 0.54f; BonusEnemySpawnOdds = 0.75f; AirDropExplodeChances = 0.25f; AssetBundle val = ResourceManager.LoadAssetBundle("brave_resources_001"); m_LootCratePrefab = val.LoadAsset("EmergencyCrate"); val = null; } private IEnumerator Start() { if ((((int)GameManager.Instance.CurrentLevelOverrideState == 1) | GameManager.Instance.IsLoadingLevel | Dungeon.IsGenerating) || (int)ChallengeManager.Instance.ChallengeMode == 0) { yield break; } BulletManMonochromeCollection = ExpandUtility.BuildSpriteCollection(((BraveBehaviour)EnemyDatabase.GetOrLoadByGuid("01972dee89fc4404a5c408d50007dad5")).sprite.Collection, ExpandPrefabs.BulletManMonochromeTexture, null, ShaderCache.Acquire("tk2d/BlendVertexColorUnlitTilted")); BulletManUpsideDownCollection = ExpandUtility.BuildSpriteCollection(((BraveBehaviour)EnemyDatabase.GetOrLoadByGuid("01972dee89fc4404a5c408d50007dad5")).sprite.Collection, ExpandPrefabs.BulletManUpsideDownTexture); AlreadyIgnoredForRoomClearList.Add(ExpandEnemyDatabase.RatGrenadeGUID); PotPestGUIDList = new List { "6ad1cafc268f4214a101dca7af61bc91", "14ea47ff46b54bb4a98f91ffcffb656d", ExpandEnemyDatabase.RatGrenadeGUID, "1386da0f42fb4bcabc5be8feb16a7c38", "8b43a5c59b854eb780f9ab669ec26b7a", "d1c9781fdac54d9e8498ed89210a0238" }; PotEnemiesList = new List { "6ad1cafc268f4214a101dca7af61bc91", "14ea47ff46b54bb4a98f91ffcffb656d", ExpandEnemyDatabase.RatGrenadeGUID, "76bc43539fc24648bff4568c75c686d1", "1386da0f42fb4bcabc5be8feb16a7c38", "2feb50a6a40f4f50982e89fd276f6f15", "b4666cb6ef4f4b038ba8924fd8adf38f", "2d4f8b5404614e7d8b235006acde427a", "7ec3e8146f634c559a7d58b19191cd43", "d4dd2b2bbda64cc9bcec534b4e920518", "4d37ce3d666b4ddda8039929225b7ede", "95ea1a31fc9e4415a5f271b9aedf9b15", "42432592685e47c9941e339879379d3a", "4254a93fc3c84c0dbe0a8f0dddf48a5a", "b5e699a0abb94666bda567ab23bd91c4", "02a14dec58ab45fb8aacde7aacd25b01", "566ecca5f3b04945ac6ce1f26dedbf4f", "78a8ee40dff2477e9c2134f6990ef297", "8b43a5c59b854eb780f9ab669ec26b7a", "d1c9781fdac54d9e8498ed89210a0238", "4538456236f64ea79f483784370bc62f", "b8103805af174924b578c98e95313074", "be0683affb0e41bbb699cb7125fdded6", "42be66373a3d4d89b91a35c9ff8adfec", "6b7ef9e5d05b4f96b04f05ef4a0d1b18", "98fdf153a4dd4d51bf0bafe43f3c77ff", "226fd90be3a64958a5b13cb0a4f43e97" }; RoomHandler currentRoom = GameManager.Instance.BestActivePlayer.CurrentRoom; if (currentRoom == null) { yield break; } FlippableCover[] array = Object.FindObjectsOfType(); if (array != null && array.Length != 0) { FlippableCover[] array2 = array; foreach (FlippableCover val in array2) { if (Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)val).transform.position) != null && Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)val).transform.position) == currentRoom && (Object)(object)((Component)val).gameObject.GetComponent() == (Object)null) { if (Random.value <= 0.6f) { ((Component)val).gameObject.AddComponent(); currentRoom.RegisterInteractable((IPlayerInteractable)(object)((Component)val).gameObject.GetComponent()); currentRoom.TransferInteractableOwnershipToDungeon((IPlayerInteractable)(object)((Component)val).gameObject.GetComponent()); } if (Random.value <= 0.45f) { BecomeHologram(val, BraveUtility.RandomBool()); } } } } yield return null; PlaceRandomCrap(currentRoom); yield return null; List allMinorBreakables = StaticReferenceManager.AllMinorBreakables; if (allMinorBreakables != null && !currentRoom.GetRoomName().StartsWith("BulletBrosRoom") && allMinorBreakables.Count > 0) { foreach (MinorBreakable item in allMinorBreakables) { if (Vector3Extensions.GetAbsoluteRoom(item.CenterPoint) == currentRoom) { if (Object.op_Implicit((Object)(object)item) && !item.IsBroken && !item.IgnoredForPotShotsModifier && !((Object)item).name.ToLower().StartsWith("stamp_tabletop")) { AddOrRemoveActionForPot(item); } if (Random.value <= 0.35f) { BecomeHologram(item, BraveUtility.RandomBool()); } } } } yield return null; if ((Object)(object)m_LootCratePrefab != (Object)null && currentRoom.GetRoomName() != null) { _ = GameManager.Instance.PrimaryPlayer; IntVector2? val2 = FindRandomDropLocation(currentRoom, new IntVector2(3, 3)); if (val2.HasValue && val2.HasValue && Random.value < BonusEnemySpawnOdds) { IntVector2 value; if (Random.value < AirDropExplodeChances) { value = val2.Value; ExpandUtility.SpawnParaDrop(currentRoom, ((IntVector2)(ref value)).ToVector3()); } else { value = val2.Value; ExpandUtility.SpawnParaDrop(currentRoom, ((IntVector2)(ref value)).ToVector3(), null, BraveUtility.RandomElement(RoomEnemyGUIDList)); } } } yield return null; List activeEnemies = currentRoom.GetActiveEnemies((ActiveEnemyType)1); if (activeEnemies == null || activeEnemies.Count <= 0) { yield break; } foreach (AIActor item2 in activeEnemies) { if (((DungeonPlaceableBehaviour)item2).GetAbsoluteParentRoom() == currentRoom) { if (Random.value <= EnemyResizeOdds && !Object.op_Implicit((Object)(object)((Component)item2).gameObject.GetComponent())) { MakeTinyOrBig(item2); } if ((double)Random.value <= 0.3 && !((BraveBehaviour)item2).healthHaver.IsBoss) { ExpandShaders.Instance.BecomeHologram(item2, BraveUtility.RandomBool()); } else if (Random.value <= 0.15f && !((BraveBehaviour)item2).healthHaver.IsBoss) { ExpandShaders.Instance.BecomeRainbow(item2); } else if (!((BraveBehaviour)item2).healthHaver.IsBoss) { MaybeSwapEnemySprites(item2); } } } } private void SpawnEnemyOnBreak(MinorBreakable breakable) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_002d: 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) if (Vector3Extensions.GetAbsoluteRoom(breakable.CenterPoint) != null && Vector3Extensions.GetAbsoluteRoom(breakable.CenterPoint).IsSealed && Random.value <= EnemySpawnOdds) { RoomHandler absoluteRoom = Vector3Extensions.GetAbsoluteRoom(breakable.CenterPoint); ((MonoBehaviour)this).StartCoroutine(DelayedEnemySpawn(EnemySpawnDelay, absoluteRoom, breakable.CenterPoint, PotEnemiesList)); } } private void SpawnCrittersOnBreak(MinorBreakable breakable) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_002d: 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) if (Vector3Extensions.GetAbsoluteRoom(breakable.CenterPoint) != null && Vector3Extensions.GetAbsoluteRoom(breakable.CenterPoint).IsSealed && Random.value <= EnemySpawnOdds) { RoomHandler absoluteRoom = Vector3Extensions.GetAbsoluteRoom(breakable.CenterPoint); ((MonoBehaviour)this).StartCoroutine(DelayedEnemySpawn(EnemySpawnDelay, absoluteRoom, breakable.CenterPoint, ExpandLists.PotCritterGUIDList)); } } private void SpawnPestsOnBreak(MinorBreakable breakable) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_002d: 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) if (Vector3Extensions.GetAbsoluteRoom(breakable.CenterPoint) != null && Vector3Extensions.GetAbsoluteRoom(breakable.CenterPoint).IsSealed && Random.value <= EnemySpawnOdds) { RoomHandler absoluteRoom = Vector3Extensions.GetAbsoluteRoom(breakable.CenterPoint); ((MonoBehaviour)this).StartCoroutine(DelayedEnemySpawn(EnemySpawnDelay, absoluteRoom, breakable.CenterPoint, PotPestGUIDList)); } } private void SpawnTombstonesOnBreak(MinorBreakable breakable) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_002d: 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) if (Vector3Extensions.GetAbsoluteRoom(breakable.CenterPoint) != null && Vector3Extensions.GetAbsoluteRoom(breakable.CenterPoint).IsSealed && Random.value <= EnemySpawnOdds) { RoomHandler absoluteRoom = Vector3Extensions.GetAbsoluteRoom(breakable.CenterPoint); ((MonoBehaviour)this).StartCoroutine(DelayedEnemySpawn(EnemySpawnDelay, absoluteRoom, breakable.CenterPoint, new List { "cf27dd464a504a428d87a8b2560ad40a" })); } } private void SpawnPoisbuloidsOnBreak(MinorBreakable breakable) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_002d: 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) if (Vector3Extensions.GetAbsoluteRoom(breakable.CenterPoint) != null && Vector3Extensions.GetAbsoluteRoom(breakable.CenterPoint).IsSealed && Random.value <= EnemySpawnOdds) { RoomHandler absoluteRoom = Vector3Extensions.GetAbsoluteRoom(breakable.CenterPoint); ((MonoBehaviour)this).StartCoroutine(DelayedEnemySpawn(EnemySpawnDelay, absoluteRoom, breakable.CenterPoint, new List { "fe3fe59d867347839824d5d9ae87f244" })); } } private void SpawnMushroomOnBreak(MinorBreakable breakable) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_002d: 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) if (Vector3Extensions.GetAbsoluteRoom(breakable.CenterPoint) != null && Vector3Extensions.GetAbsoluteRoom(breakable.CenterPoint).IsSealed && Random.value <= EnemySpawnOdds) { RoomHandler absoluteRoom = Vector3Extensions.GetAbsoluteRoom(breakable.CenterPoint); ((MonoBehaviour)this).StartCoroutine(DelayedEnemySpawn(EnemySpawnDelay, absoluteRoom, breakable.CenterPoint, new List { "f905765488874846b7ff257ff81d6d0c" })); } } private void SpawnRubberBallOnBreak(MinorBreakable breakable) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_002d: 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) if (Vector3Extensions.GetAbsoluteRoom(breakable.CenterPoint) != null && Vector3Extensions.GetAbsoluteRoom(breakable.CenterPoint).IsSealed && Random.value <= EnemySpawnOdds) { RoomHandler absoluteRoom = Vector3Extensions.GetAbsoluteRoom(breakable.CenterPoint); ((MonoBehaviour)this).StartCoroutine(DelayedEnemySpawn(EnemySpawnDelay, absoluteRoom, breakable.CenterPoint, new List { "226fd90be3a64958a5b13cb0a4f43e97" })); } } private void AddOrRemoveActionForPot(MinorBreakable breakable, bool install = true) { if (((Object)breakable).name.ToLower().Contains("skull") | ((Object)breakable).name.ToLower().Contains("urn") | ((Object)breakable).name.ToLower().Contains("wine_stand") | ((Object)breakable).name.ToLower().Contains("armor") | ((Object)breakable).name.ToLower().Contains("globe") | ((Object)breakable).name.ToLower().Contains("mines_stamp_overturned_cart") | ((Object)breakable).name.ToLower().Contains("pot")) { if (install) { breakable.OnBreakContext = (Action)Delegate.Combine(breakable.OnBreakContext, new Action(SpawnEnemyOnBreak)); } else { breakable.OnBreakContext = (Action)Delegate.Remove(breakable.OnBreakContext, new Action(SpawnEnemyOnBreak)); } } else if (((Object)breakable).name.ToLower().Contains("bush") | ((Object)breakable).name.ToLower().Contains("bottle")) { if (install) { breakable.OnBreakContext = (Action)Delegate.Combine(breakable.OnBreakContext, new Action(SpawnCrittersOnBreak)); } else { breakable.OnBreakContext = (Action)Delegate.Remove(breakable.OnBreakContext, new Action(SpawnCrittersOnBreak)); } } else if (((Object)breakable).name.ToLower().Contains("crate") | ((Object)breakable).name.ToLower().Contains("barrel") | ((Object)breakable).name.ToLower().Contains("ice")) { if (install) { breakable.OnBreakContext = (Action)Delegate.Combine(breakable.OnBreakContext, new Action(SpawnPestsOnBreak)); } else { breakable.OnBreakContext = (Action)Delegate.Remove(breakable.OnBreakContext, new Action(SpawnPestsOnBreak)); } } else if (((Object)breakable).name.ToLower().Contains("tombstone")) { if (install) { breakable.OnBreakContext = (Action)Delegate.Combine(breakable.OnBreakContext, new Action(SpawnTombstonesOnBreak)); } else { breakable.OnBreakContext = (Action)Delegate.Remove(breakable.OnBreakContext, new Action(SpawnTombstonesOnBreak)); } } else if (((Object)breakable).name.ToLower().Contains("yellow drum")) { if (install) { breakable.OnBreakContext = (Action)Delegate.Combine(breakable.OnBreakContext, new Action(SpawnPoisbuloidsOnBreak)); } else { breakable.OnBreakContext = (Action)Delegate.Remove(breakable.OnBreakContext, new Action(SpawnPoisbuloidsOnBreak)); } } else if (((Object)breakable).name.ToLower().Contains("purple drum")) { if (install) { breakable.OnBreakContext = (Action)Delegate.Combine(breakable.OnBreakContext, new Action(SpawnMushroomOnBreak)); } else { breakable.OnBreakContext = (Action)Delegate.Remove(breakable.OnBreakContext, new Action(SpawnMushroomOnBreak)); } } else if (((Object)breakable).name.ToLower().Contains("blue drum")) { if (install) { breakable.OnBreakContext = (Action)Delegate.Combine(breakable.OnBreakContext, new Action(SpawnMushroomOnBreak)); } else { breakable.OnBreakContext = (Action)Delegate.Remove(breakable.OnBreakContext, new Action(SpawnMushroomOnBreak)); } } else if (install) { breakable.OnBreakContext = (Action)Delegate.Combine(breakable.OnBreakContext, new Action(SpawnCrittersOnBreak)); } else { breakable.OnBreakContext = (Action)Delegate.Remove(breakable.OnBreakContext, new Action(SpawnCrittersOnBreak)); } } private void SpawnAirDrop(GameObject lootCratePrefab, PlayerController player, IntVector2 roomVector, GenericLootTable overrideTable = null, float EnemyOdds = 0f, float ExplodeOdds = 0f, bool playSoundFX = true, bool usePlayerPosition = true, string EnemyGUID = "01972dee89fc4404a5c408d50007dad5") { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: 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_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_0171: 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_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_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_01ca: Unknown result type (might be due to invalid IL or missing references) EmergencyCrateController component = Object.Instantiate(lootCratePrefab, Vector2Extensions.ToVector3ZUp(((IntVector2)(ref roomVector)).ToVector2(), 1f), Quaternion.identity).GetComponent(); if (!((Object)(object)component == (Object)null) && !((Object)(object)player.CurrentRoom.ExtantEmergencyCrate == (Object)(object)((Component)component).gameObject) && !((Object)(object)player.CurrentRoom.ExtantEmergencyCrate != (Object)null)) { Dungeon dungeon = GameManager.Instance.Dungeon; RoomHandler currentRoom = player.CurrentRoom; IntVector2 dimensions = currentRoom.area.dimensions; int x = dimensions.x; int y = dimensions.y; component.ChanceToExplode = ExplodeOdds; component.ChanceToSpawnEnemy = EnemyOdds; component.EnemyPlaceable = m_CustomEnemyPlacable(EnemyGUID); if ((Object)(object)overrideTable != (Object)null) { component.gunTable = overrideTable; } IntVector2 bestRewardLocation = default(IntVector2); ((IntVector2)(ref bestRewardLocation))..ctor(1, 1); if (x < 8) { _ = 8; } if (!usePlayerPosition) { bestRewardLocation = player.CurrentRoom.GetBestRewardLocation(currentRoom.area.dimensions, (RewardLocationStyle)0, true); component.Trigger(new Vector3(-5f, -5f, -5f), ((IntVector2)(ref bestRewardLocation)).ToVector3() + new Vector3(15f, 15f, 15f), player.CurrentRoom, (Object)(object)overrideTable == (Object)null); GameManager.Instance.Dungeon.data[bestRewardLocation].PreventRewardSpawn = true; } else { bestRewardLocation = player.CurrentRoom.GetBestRewardLocation(new IntVector2(1, 1), (RewardLocationStyle)0, true); component.Trigger(new Vector3(-5f, -5f, -5f), ((IntVector2)(ref bestRewardLocation)).ToVector3() + new Vector3(15f, 15f, 15f), player.CurrentRoom, (Object)(object)overrideTable == (Object)null); GameManager.Instance.Dungeon.data[bestRewardLocation].PreventRewardSpawn = true; } dungeon.data[bestRewardLocation].PreventRewardSpawn = true; player.CurrentRoom.ExtantEmergencyCrate = ((Component)component).gameObject; if (playSoundFX) { AkSoundEngine.PostEvent("Play_OBJ_supplydrop_activate_01", player.CurrentRoom.ExtantEmergencyCrate); } } } private void PlaceRandomCrap(RoomHandler currentRoom, bool debugMode = false) { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Invalid comparison between Unknown and I4 //IL_0438: Unknown result type (might be due to invalid IL or missing references) //IL_043d: Unknown result type (might be due to invalid IL or missing references) //IL_046b: Unknown result type (might be due to invalid IL or missing references) //IL_055f: Unknown result type (might be due to invalid IL or missing references) //IL_056d: Unknown result type (might be due to invalid IL or missing references) //IL_057b: Unknown result type (might be due to invalid IL or missing references) //IL_0587: Unknown result type (might be due to invalid IL or missing references) //IL_058c: Unknown result type (might be due to invalid IL or missing references) //IL_0594: Unknown result type (might be due to invalid IL or missing references) //IL_0599: Unknown result type (might be due to invalid IL or missing references) //IL_05a3: Unknown result type (might be due to invalid IL or missing references) //IL_05a8: Unknown result type (might be due to invalid IL or missing references) //IL_05b2: Unknown result type (might be due to invalid IL or missing references) //IL_05b7: Unknown result type (might be due to invalid IL or missing references) //IL_05c1: Unknown result type (might be due to invalid IL or missing references) //IL_05c6: Unknown result type (might be due to invalid IL or missing references) //IL_05ce: Unknown result type (might be due to invalid IL or missing references) //IL_05dc: Unknown result type (might be due to invalid IL or missing references) //IL_05e1: Unknown result type (might be due to invalid IL or missing references) //IL_05eb: Unknown result type (might be due to invalid IL or missing references) //IL_05f9: Unknown result type (might be due to invalid IL or missing references) //IL_0607: Unknown result type (might be due to invalid IL or missing references) //IL_060c: Unknown result type (might be due to invalid IL or missing references) //IL_060e: Unknown result type (might be due to invalid IL or missing references) //IL_0610: Unknown result type (might be due to invalid IL or missing references) //IL_075f: Unknown result type (might be due to invalid IL or missing references) //IL_0761: Unknown result type (might be due to invalid IL or missing references) //IL_082b: Unknown result type (might be due to invalid IL or missing references) //IL_082d: Unknown result type (might be due to invalid IL or missing references) //IL_0678: Unknown result type (might be due to invalid IL or missing references) //IL_0b25: Unknown result type (might be due to invalid IL or missing references) //IL_0b27: Unknown result type (might be due to invalid IL or missing references) //IL_07a4: Unknown result type (might be due to invalid IL or missing references) //IL_06c6: Unknown result type (might be due to invalid IL or missing references) //IL_06cb: Unknown result type (might be due to invalid IL or missing references) //IL_086d: Unknown result type (might be due to invalid IL or missing references) //IL_0c9b: Unknown result type (might be due to invalid IL or missing references) //IL_0c9d: Unknown result type (might be due to invalid IL or missing references) //IL_0a8d: Unknown result type (might be due to invalid IL or missing references) //IL_0a1a: Unknown result type (might be due to invalid IL or missing references) //IL_0967: Unknown result type (might be due to invalid IL or missing references) //IL_0b67: Unknown result type (might be due to invalid IL or missing references) //IL_0e2f: Unknown result type (might be due to invalid IL or missing references) //IL_0e31: Unknown result type (might be due to invalid IL or missing references) //IL_0cd3: Unknown result type (might be due to invalid IL or missing references) //IL_0c15: Unknown result type (might be due to invalid IL or missing references) //IL_0e86: Unknown result type (might be due to invalid IL or missing references) //IL_0e88: Unknown result type (might be due to invalid IL or missing references) //IL_0e57: Unknown result type (might be due to invalid IL or missing references) //IL_0eab: Unknown result type (might be due to invalid IL or missing references) _ = GameManager.Instance.BestActivePlayer; Dungeon dungeon = GameManager.Instance.Dungeon; if (dungeon.IsGlitchDungeon || (int)currentRoom.area.PrototypeRoomCategory == 3 || currentRoom.GetRoomName() == null) { return; } bool flag = false; bool flag2 = false; int num = 0; int num2 = 0; int num3 = Random.Range(2, 5); List list = new List(); List list2 = new List(); List list3 = new List(); List list4 = new List(); List list5 = new List(); List list6 = new List(); List list7 = new List(); List list8 = new List(); List list9 = new List(); List list10 = new List(); List list11 = new List(); if (debugMode) { ETGModConsole.Log((object)"[DEBUG] Clearing object list for preoperation of new floor...", true); } list.Clear(); list2.Clear(); list3.Clear(); list4.Clear(); list5.Clear(); list6.Clear(); if (debugMode) { ETGModConsole.Log((object)"[DEBUG] Building KickableDrumObjects list...", true); } list2.Add(ExpandObjectDatabase.RedDrum); list2.Add(ExpandObjectDatabase.YellowDrum); list2.Add(ExpandObjectDatabase.WaterDrum); if (debugMode) { ETGModConsole.Log((object)"[DEBUG] Building TableObjects list...", true); } list.Add(ExpandObjectDatabase.TableHorizontal); list.Add(ExpandObjectDatabase.TableVertical); list.Add(ExpandObjectDatabase.TableHorizontalStone); list.Add(ExpandObjectDatabase.TableVerticalStone); list5.Add(ExpandObjectDatabase.CoffinHorizontal); list5.Add(ExpandObjectDatabase.CoffinVertical); if (debugMode) { ETGModConsole.Log((object)"[DEBUG] Building NPC list...", true); } list3.Add(ExpandObjectDatabase.NPCOldMan); list3.Add(ExpandObjectDatabase.NPCGunMuncher); list3.Add(ExpandObjectDatabase.NPCEvilMuncher); list3.Add(ExpandObjectDatabase.NPCMonsterManuel); list3.Add(ExpandObjectDatabase.NPCVampire); list3.Add(ExpandObjectDatabase.NPCGuardLeft); list3.Add(ExpandObjectDatabase.NPCGuardRight); list3.Add(ExpandObjectDatabase.NPCTruthKnower); list3.Add(ExpandObjectDatabase.NPCSynergrace); list3.Add(ExpandObjectDatabase.CultistBaldBowLeft); if (debugMode) { ETGModConsole.Log((object)"[DEBUG] Building NonInteractableObjects list...", true); } list4.Add(ExpandObjectDatabase.AmygdalaNorth); list4.Add(ExpandObjectDatabase.AmygdalaSouth); list4.Add(ExpandObjectDatabase.AmygdalaWest); list4.Add(ExpandObjectDatabase.AmygdalaEast); list4.Add(ExpandObjectDatabase.SpaceFog); list4.Add(ExpandObjectDatabase.LockedDoor); list4.Add(ExpandObjectDatabase.SpikeTrap); list4.Add(ExpandObjectDatabase.FlameTrap); list4.Add(ExpandObjectDatabase.FakeTrap); list4.Add(ExpandObjectDatabase.PlayerCorpse); list4.Add(ExpandObjectDatabase.TimefallCorpse); list4.Add(ExpandObjectDatabase.HangingPot); list4.Add(ExpandObjectDatabase.IceBomb); list4.Add(ExpandObjectDatabase.DoorsVertical); list4.Add(ExpandObjectDatabase.DoorsHorizontal); list4.Add(ExpandObjectDatabase.BigDoorsVertical); list4.Add(ExpandObjectDatabase.BigDoorsHorizontal); list4.Add(ExpandObjectDatabase.CultistBaldBowBackLeft); list4.Add(ExpandObjectDatabase.CultistBaldBowBackRight); list4.Add(ExpandObjectDatabase.CultistBaldBowBack); list4.Add(ExpandObjectDatabase.CultistHoodBowBack); list4.Add(ExpandObjectDatabase.CultistHoodBowLeft); list4.Add(ExpandObjectDatabase.CultistHoodBowRight); list4.Add(ExpandObjectDatabase.RatTrapDoorIcon); list4.Add(ExpandPrefabs.MouseTrap1); list4.Add(ExpandPrefabs.MouseTrap2); list4.Add(ExpandPrefabs.MouseTrap3); list4.Add(ExpandPrefabs.PlayerLostRatNote); list4.Add(ExpandObjectDatabase.ConvictPastCrowdNPC_01); list4.Add(ExpandObjectDatabase.ConvictPastCrowdNPC_02); list4.Add(ExpandObjectDatabase.ConvictPastCrowdNPC_03); list4.Add(ExpandObjectDatabase.ConvictPastCrowdNPC_04); list4.Add(ExpandObjectDatabase.ConvictPastCrowdNPC_05); list4.Add(ExpandObjectDatabase.ConvictPastCrowdNPC_06); list4.Add(ExpandObjectDatabase.ConvictPastCrowdNPC_07); list4.Add(ExpandObjectDatabase.ConvictPastCrowdNPC_08); list4.Add(ExpandObjectDatabase.ConvictPastCrowdNPC_09); list4.Add(ExpandObjectDatabase.ConvictPastCrowdNPC_10); list4.Add(ExpandObjectDatabase.ConvictPastCrowdNPC_11); list4.Add(ExpandObjectDatabase.ConvictPastCrowdNPC_12); list4.Add(ExpandObjectDatabase.ConvictPastCrowdNPC_13); list4.Add(ExpandObjectDatabase.ConvictPastCrowdNPC_14); list4.Add(ExpandObjectDatabase.ConvictPastCrowdNPC_15); if (debugMode) { ETGModConsole.Log((object)"[DEBUG] Building MiscPlacables list...", true); } list6.Add(ExpandObjectDatabase.Sarcophogus); list6.Add(ExpandObjectDatabase.CursedPot); list6.Add(ExpandObjectDatabase.GodRays); list3.Add(ExpandPrefabs.MimicNPC); RoomCategory prototypeRoomCategory = currentRoom.area.PrototypeRoomCategory; if (debugMode && !string.IsNullOrEmpty(currentRoom.GetRoomName())) { ETGModConsole.Log((object)("[DEBUG] Preparing to check/place objects in room: " + currentRoom.GetRoomName()), true); ETGModConsole.Log((object)("[DEBUG] Current Room Cetegory: " + prototypeRoomCategory), true); } try { if (debugMode) { ETGModConsole.Log((object)"[DEBUG] Current Room is valid for random objects. Continuing...", true); } if (debugMode) { ETGModConsole.Log((object)("[DEBUG] Preparing to check/place objects in room: " + currentRoom.GetRoomName()), false); } if (debugMode) { ETGModConsole.Log((object)"[DEBUG] Shuffling Object lists...", true); } list2 = BraveUtility.Shuffle(list2); list = BraveUtility.Shuffle(list); list5 = BraveUtility.Shuffle(list5); list3 = BraveUtility.Shuffle(list3); list4 = BraveUtility.Shuffle(list4); list6 = BraveUtility.Shuffle(list6); flag = false; if (debugMode) { ETGModConsole.Log((object)"[DEBUG] Clearing cached object placement lists for new room...", true); } list7.Clear(); list9.Clear(); list11.Clear(); list8.Clear(); list10.Clear(); for (int i = 0; i < num3; i++) { if (num + num2 >= num3) { if (debugMode) { ETGModConsole.Log((object)"[DEBUG] Max Object Placement Reached. Ending object placement mode...", true); } break; } if (debugMode) { ETGModConsole.Log((object)"[DEBUG] Setting up random placement vectors for current room...", true); } GetRandomAvailableCellForPlacable(dungeon, currentRoom, list7, useCachedList: false); GetRandomAvailableCellForPlacable(dungeon, currentRoom, list9, useCachedList: true); GetRandomAvailableCellForPlacable(dungeon, currentRoom, list7, useCachedList: false, allowPlacingOverPits: true); IntVector2 randomAvailableCellForNPC = GetRandomAvailableCellForNPC(dungeon, currentRoom, list9, useCachedList: true); IntVector2 randomAvailableCellForNPC2 = GetRandomAvailableCellForNPC(dungeon, currentRoom, list9, useCachedList: true); IntVector2 randomAvailableCellForPlacable = GetRandomAvailableCellForPlacable(dungeon, currentRoom, list8, useCachedList: true, allowPlacingOverPits: false, 2); IntVector2 randomAvailableCellForPlacable2 = GetRandomAvailableCellForPlacable(dungeon, currentRoom, list8, useCachedList: true); IntVector2 randomAvailableCellForPlacable3 = GetRandomAvailableCellForPlacable(dungeon, currentRoom, list8, useCachedList: true, allowPlacingOverPits: true, 2); GetRandomAvailableCellForNPC(dungeon, currentRoom, list9, useCachedList: true); IntVector2 randomAvailableCellForPlacable4 = GetRandomAvailableCellForPlacable(dungeon, currentRoom, list8, useCachedList: true, allowPlacingOverPits: true, 2); GetRandomAvailableCellForPlacable(dungeon, currentRoom, list8, useCachedList: true, allowPlacingOverPits: false, 2); GetRandomAvailableCellForPlacable(dungeon, currentRoom, list8, useCachedList: true, allowPlacingOverPits: false, 2); IntVector2 randomAvailableCellForPlacable5 = GetRandomAvailableCellForPlacable(dungeon, currentRoom, list8, useCachedList: true, allowPlacingOverPits: false, 2); if (randomAvailableCellForNPC != IntVector2.Zero) { if ((double)Random.value <= 0.03) { GameObject gameObject = BraveUtility.RandomElement(list3).gameObject; if (debugMode) { ETGModConsole.Log((object)("[DEBUG] Attempting to place NPC object: " + gameObject), true); } bool flag3 = false; if (((Object)gameObject).name.StartsWith(((Object)ExpandPrefabs.MimicNPC).name)) { flag3 = true; } GameObject val = DungeonPlaceableUtility.InstantiateDungeonPlaceable(gameObject, currentRoom, randomAvailableCellForNPC, flag3, (AwakenAnimationType)0, false); if (Object.op_Implicit((Object)(object)val)) { val.transform.parent = currentRoom.hierarchyParent; if (flag3) { Object.Destroy((Object)(object)val.GetComponent()); flag3 = false; } TalkDoerLite component = val.GetComponent(); Vector3Extensions.GetAbsoluteRoom(Vector3Extensions.XY(((BraveBehaviour)component).transform.position)).RegisterInteractable((IPlayerInteractable)(object)component); SpeculativeRigidbody componentInChildren = ((Component)component).GetComponentInChildren(); componentInChildren.Initialize(); componentInChildren.PrimaryPixelCollider.Enabled = false; componentInChildren.HitboxPixelCollider.Enabled = false; componentInChildren.CollideWithOthers = false; PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(componentInChildren, (int?)null, false); num++; if (debugMode) { ETGModConsole.Log((object)"[DEBUG] Success!", true); } } else { num2++; } } } else if ((double)Random.value <= 0.25) { num2++; } if (!flag && randomAvailableCellForNPC2 != IntVector2.Zero) { if ((double)Random.value <= 0.05) { GameObject ratCorpseNPC = ExpandPrefabs.RatCorpseNPC; if (debugMode) { ETGModConsole.Log((object)("[DEBUG] Attempting to place rat object: " + ratCorpseNPC), true); } TalkDoerLite component2 = DungeonPlaceableUtility.InstantiateDungeonPlaceable(ratCorpseNPC, currentRoom, randomAvailableCellForNPC2, false, (AwakenAnimationType)0, false).GetComponent(); ((BraveBehaviour)component2).playmakerFsm.SetState("Set Mode"); if (Object.op_Implicit((Object)(object)component2)) { currentRoom.RegisterInteractable((IPlayerInteractable)(object)component2); currentRoom.TransferInteractableOwnershipToDungeon((IPlayerInteractable)(object)component2); } ExpandUtility.GenerateHealthHaver(((Component)component2).gameObject, 40f, disableAnimator: true, explodesOnDeath: true, (DeathType)1, flashesOnDamage: false, BraveUtility.RandomBool(), isCorruptedObject: false, isRatNPC: true); flag = true; num++; if (debugMode) { ETGModConsole.Log((object)"[DEBUG] Success!", true); } } } else if ((double)Random.value <= 0.25) { num2++; } if (randomAvailableCellForPlacable != IntVector2.Zero) { if (BraveUtility.RandomBool()) { GameObject gameObject2 = BraveUtility.RandomElement(list).gameObject; if (debugMode) { ETGModConsole.Log((object)("[DEBUG] Attempting to place Table Object: " + gameObject2), true); } GameObject val2 = DungeonPlaceableUtility.InstantiateDungeonPlaceable(gameObject2, currentRoom, randomAvailableCellForPlacable, false, (AwakenAnimationType)0, false); if (Object.op_Implicit((Object)(object)val2)) { val2.transform.parent = currentRoom.hierarchyParent; FlippableCover component3 = val2.GetComponent(); val2.AddComponent(); ExpandKickableObject component4 = val2.GetComponent(); currentRoom.RegisterInteractable((IPlayerInteractable)(object)component3); currentRoom.RegisterInteractable((IPlayerInteractable)(object)component4); SpeculativeRigidbody componentInChildren2 = val2.GetComponentInChildren(); component3.ConfigureOnPlacement(currentRoom); componentInChildren2.Initialize(); PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(componentInChildren2, (int?)null, false); if (Random.value <= 0.4f) { BecomeHologram(component3, BraveUtility.RandomBool()); } num++; if (debugMode) { ETGModConsole.Log((object)"[DEBUG] Success!", true); } } else { num2++; } } else if ((double)Random.value <= 0.25) { if (debugMode) { ETGModConsole.Log((object)("[DEBUG] Attempting to place Table Object: " + ((Object)ExpandObjectDatabase.FoldingTable).name), true); } GameObject obj = DungeonPlaceableUtility.InstantiateDungeonPlaceable(ExpandObjectDatabase.FoldingTable, currentRoom, randomAvailableCellForPlacable, false, (AwakenAnimationType)0, false); obj.transform.parent = currentRoom.hierarchyParent; obj.AddComponent(); FlippableCover component5 = obj.GetComponent(); ExpandKickableObject component6 = obj.GetComponent(); currentRoom.RegisterInteractable((IPlayerInteractable)(object)component5); currentRoom.RegisterInteractable((IPlayerInteractable)(object)component6); SpeculativeRigidbody componentInChildren3 = obj.GetComponentInChildren(); component5.ConfigureOnPlacement(currentRoom); componentInChildren3.Initialize(); if (Random.value <= 0.4f) { BecomeHologram(component5, BraveUtility.RandomBool()); } if (debugMode) { ETGModConsole.Log((object)"[DEBUG] Success!", true); } PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(componentInChildren3, (int?)null, false); } else if ((double)Random.value <= 0.3) { GameObject obj2 = ExpandObjectDatabase.Brazier.InstantiateObject(currentRoom, randomAvailableCellForPlacable, false, false); obj2.transform.parent = currentRoom.hierarchyParent; obj2.AddComponent(); BrazierController component7 = obj2.GetComponent(); ExpandKickableObject component8 = obj2.GetComponent(); SpeculativeRigidbody componentInChildren4 = obj2.GetComponentInChildren(); currentRoom.RegisterInteractable((IPlayerInteractable)(object)component7); currentRoom.RegisterInteractable((IPlayerInteractable)(object)component8); componentInChildren4.Initialize(); PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(componentInChildren4, (int?)null, false); } else { GameObject obj3 = BraveUtility.RandomElement(list5).InstantiateObject(currentRoom, randomAvailableCellForPlacable, false, false); obj3.transform.parent = currentRoom.hierarchyParent; obj3.AddComponent(); FlippableCover component9 = obj3.GetComponent(); ExpandKickableObject component10 = obj3.GetComponent(); SpeculativeRigidbody componentInChildren5 = obj3.GetComponentInChildren(); currentRoom.RegisterInteractable((IPlayerInteractable)(object)component9); currentRoom.RegisterInteractable((IPlayerInteractable)(object)component10); componentInChildren5.Initialize(); if (Random.value <= 0.4f) { BecomeHologram(component9, BraveUtility.RandomBool()); } PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(componentInChildren5, (int?)null, false); } } else if ((double)Random.value <= 0.25) { num2++; } if (randomAvailableCellForPlacable2 != IntVector2.Zero) { if (BraveUtility.RandomBool()) { GameObject gameObject3 = BraveUtility.RandomElement(list2).gameObject; if (debugMode) { ETGModConsole.Log((object)("[DEBUG] Attempting to place Drum object: " + gameObject3), true); } GameObject val3 = DungeonPlaceableUtility.InstantiateDungeonPlaceable(gameObject3, currentRoom, randomAvailableCellForPlacable2, false, (AwakenAnimationType)0, false); if (Object.op_Implicit((Object)(object)val3)) { val3.transform.parent = currentRoom.hierarchyParent; KickableObject component11 = val3.GetComponent(); currentRoom.RegisterInteractable((IPlayerInteractable)(object)component11); component11.ConfigureOnPlacement(currentRoom); SpeculativeRigidbody componentInChildren6 = ((Component)component11).GetComponentInChildren(); componentInChildren6.Initialize(); PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(componentInChildren6, (int?)null, false); num++; if (debugMode) { ETGModConsole.Log((object)"[DEBUG] Success!", true); } } } else if ((double)Random.value <= 0.4) { if (debugMode) { ETGModConsole.Log((object)"[DEBUG] Attempting to place Exploding Drum/Barrel object.", true); } GameObject val4 = ExpandObjectDatabase.ExplodyBarrel.InstantiateObject(currentRoom, randomAvailableCellForPlacable2, false, false); if (Object.op_Implicit((Object)(object)val4)) { val4.transform.parent = currentRoom.hierarchyParent; KickableObject componentInChildren7 = val4.GetComponentInChildren(); currentRoom.RegisterInteractable((IPlayerInteractable)(object)componentInChildren7); SpeculativeRigidbody componentInChildren8 = ((Component)componentInChildren7).GetComponentInChildren(); componentInChildren8.Initialize(); PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(componentInChildren8, (int?)null, false); } if (debugMode) { ETGModConsole.Log((object)"[DEBUG] Success!", true); } } } else if ((double)Random.value <= 0.3) { num2++; } if (randomAvailableCellForPlacable3 != IntVector2.Zero) { GameObject gameObject4 = BraveUtility.RandomElement(list4).gameObject; if (debugMode) { ETGModConsole.Log((object)("[DEBUG] Attempting to place Misc Object: " + gameObject4), true); } GameObject val5 = DungeonPlaceableUtility.InstantiateDungeonPlaceable(gameObject4, currentRoom, randomAvailableCellForPlacable3, false, (AwakenAnimationType)0, false); val5.transform.parent = currentRoom.hierarchyParent; if (((Object)(object)gameObject4 == (Object)(object)ExpandObjectDatabase.CultistBaldBowBack) | ((Object)(object)gameObject4 == (Object)(object)ExpandObjectDatabase.CultistBaldBowBackLeft) | ((Object)(object)gameObject4 == (Object)(object)ExpandObjectDatabase.CultistBaldBowBackRight) | ((Object)(object)gameObject4 == (Object)(object)ExpandObjectDatabase.CultistBaldBowBack) | ((Object)(object)gameObject4 == (Object)(object)ExpandObjectDatabase.CultistHoodBowBack) | ((Object)(object)gameObject4 == (Object)(object)ExpandObjectDatabase.CultistHoodBowLeft) | ((Object)(object)gameObject4 == (Object)(object)ExpandObjectDatabase.CultistHoodBowRight) | ((Object)(object)gameObject4 == (Object)(object)ExpandObjectDatabase.NPCHeartDispenser)) { val5.GetComponentInChildren().PrimaryPixelCollider.Enabled = false; } if ((Object)(object)gameObject4 == (Object)(object)ExpandObjectDatabase.LockedDoor) { val5.GetComponentInChildren().CollideWithOthers = false; } if ((Object)(object)gameObject4 == (Object)(object)ExpandPrefabs.PlayerLostRatNote && Object.op_Implicit((Object)(object)val5)) { NoteDoer component12 = val5.GetComponent(); currentRoom.RegisterInteractable((IPlayerInteractable)(object)component12); } if ((Object)(object)gameObject4 == (Object)(object)ExpandObjectDatabase.IceBomb && Object.op_Implicit((Object)(object)val5)) { IPlayerInteractable[] interfacesInChildren = GameObjectExtensions.GetInterfacesInChildren(val5); for (int j = 0; j < interfacesInChildren.Length; j++) { currentRoom.RegisterInteractable(interfacesInChildren[j]); } SpeculativeRigidbody componentInChildren9 = val5.GetComponentInChildren(); componentInChildren9.Initialize(); PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(componentInChildren9, (int?)null, false); } if (debugMode) { ETGModConsole.Log((object)"[DEBUG] Success!", true); } num++; } else { num2++; } if (randomAvailableCellForPlacable4 != IntVector2.Zero && (double)Random.value <= 0.3) { DungeonPlaceable obj4 = BraveUtility.RandomElement(list6); GameObject val6 = obj4.InstantiateObject(currentRoom, randomAvailableCellForPlacable4, false, false); if ((Object)(object)obj4 == (Object)(object)ExpandObjectDatabase.Sarcophogus) { val6.GetComponentInChildren().CollideWithOthers = false; } if (BraveUtility.RandomBool()) { num++; } } if (randomAvailableCellForPlacable5 != IntVector2.Zero && (double)Random.value <= 0.08) { GameObject val7 = DungeonPlaceableUtility.InstantiateDungeonPlaceable(ExpandPrefabs.NPCBabyDragunChaos, currentRoom, randomAvailableCellForPlacable3, false, (AwakenAnimationType)0, false); if (Object.op_Implicit((Object)(object)val7)) { val7.AddComponent(); } if (!flag2) { flag2 = true; } } } } catch (Exception ex) { if (debugMode) { ETGModConsole.Log((object)("[DEBUG] Exception while setting up or placing objects for current room: " + currentRoom.GetRoomName()), true); } if (debugMode) { ETGModConsole.Log((object)"[DEBUG] Skipping current room...", true); } if (ExpandSettings.debugMode) { ETGModConsole.Log((object)(ex.Message + ex.StackTrace + ex.Source), debugMode); } return; } if (debugMode) { ETGModConsole.Log((object)"[DEBUG] Finished placing objects. Preparing to exit...", true); } if (ExpandSettings.debugMode) { ETGModConsole.Log((object)("[DEBUG] Max Number of Objects assigned to room: " + num3), false); ETGModConsole.Log((object)("[DEBUG] Number of Objects placed: " + num), false); ETGModConsole.Log((object)("[DEBUG] Number of Objects skipped: " + num2), false); if (num <= 0) { ETGModConsole.Log((object)"[DEBUG] Error: No Objects have been placed.", false); } } if (debugMode) { ETGModConsole.Log((object)"[DEBUG] Clearing all lists before exit...", true); } list7.Clear(); list9.Clear(); list8.Clear(); list10.Clear(); list.Clear(); list2.Clear(); list3.Clear(); list4.Clear(); } private void MakeTinyOrBig(AIActor aiActor, bool delayed = false) { //IL_0065: 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_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) if (string.IsNullOrEmpty(aiActor.EnemyGuid) || (((Object)aiActor).name.ToLower().StartsWith("glitched") | ((Object)aiActor).name.ToLower().EndsWith("(clone)(clone)")) || ExpandLists.BannedEnemyGUIDList.Contains(aiActor.EnemyGuid) || (Object)(object)((Component)aiActor).GetComponentInParent() != (Object)null) { return; } try { if (Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)aiActor).transform.position).GetRoomName().ToLower() .StartsWith("doublebeholsterroom01")) { return; } } catch (Exception) { return; } _ = GameManager.Instance.CurrentFloor; if (Random.value <= 0.5f) { if (aiActor.IsBlackPhantom) { ((MonoBehaviour)aiActor).StartCoroutine(ResizeEnemy(aiActor, new Vector2(1.5f, 1.5f), onlyDoRescale: false, isBigEnemy: true, delayed)); } else { ((MonoBehaviour)aiActor).StartCoroutine(ResizeEnemy(aiActor, new Vector2(0.5f, 0.5f), onlyDoRescale: false, isBigEnemy: false, delayed)); } } else { ((MonoBehaviour)aiActor).StartCoroutine(ResizeEnemy(aiActor, new Vector2(1.5f, 1.5f), onlyDoRescale: false, delayed)); } ((DungeonPlaceableBehaviour)aiActor).placeableWidth = ((DungeonPlaceableBehaviour)aiActor).placeableWidth + 2; ((DungeonPlaceableBehaviour)aiActor).placeableHeight = ((DungeonPlaceableBehaviour)aiActor).placeableHeight + 2; } private void EnemyScale(AIActor aiActor, Vector2 ScaleVector) { //IL_0006: 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_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) ((BraveBehaviour)aiActor).transform.localScale = Vector2Extensions.ToVector3ZUp(ScaleVector, 1f); ((GameActor)aiActor).HasShadow = false; _ = ((Component)aiActor).gameObject.layer; ((Component)aiActor).gameObject.layer = LayerMask.NameToLayer("Unpixelated"); SpriteOutlineManager.ChangeOutlineLayer(((BraveBehaviour)aiActor).sprite, LayerMask.NameToLayer("Unpixelated")); if (Object.op_Implicit((Object)(object)((BraveBehaviour)aiActor).specRigidbody)) { SpeculativeRigidbody component = ((Component)aiActor).GetComponent(); ((BraveBehaviour)component).transform.localScale = Vector2Extensions.ToVector3ZUp(ScaleVector, 1f); for (int i = 0; i < component.PixelColliders.Count; i++) { component.PixelColliders[i].Regenerate(((BraveBehaviour)component).transform, true, true); } component.UpdateCollidersOnScale = true; component.RegenerateColliders = true; component.ForceRegenerate((bool?)true, (bool?)true); ((BraveBehaviour)component).RegenerateCache(); } ExpandUtility.CorrectForWalls(aiActor); } private void BecomeHologram(MinorBreakable breakable, bool isGreen = false) { //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_01d0: Invalid comparison between Unknown and I4 //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_021d: Unknown result type (might be due to invalid IL or missing references) //IL_0223: Invalid comparison between Unknown and I4 //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) try { if ((Object)(object)breakable == (Object)null) { return; } tk2dBaseSprite val = null; try { if (((BraveBehaviour)breakable).sprite == null) { return; } val = ((BraveBehaviour)breakable).sprite; } catch { } if ((Object)(object)val == (Object)null || string.IsNullOrEmpty(((Object)((Component)breakable).gameObject).name) || (Object)(object)((Component)breakable).gameObject.GetComponent() != (Object)null || (Object)(object)((Component)breakable).gameObject.GetComponentInChildren() != (Object)null || ((Object)(object)((Component)breakable).gameObject.transform != (Object)null && Vector3Extensions.GetAbsoluteRoom(((Component)breakable).gameObject.transform.position) != null && (Vector3Extensions.GetAbsoluteRoom(((Component)breakable).gameObject.transform.position).GetRoomName().StartsWith("doublebeholsterroom01") || Vector3Extensions.GetAbsoluteRoom(((Component)breakable).gameObject.transform.position).GetRoomName().StartsWith("bossstatuesroom01") || Vector3Extensions.GetAbsoluteRoom(((Component)breakable).gameObject.transform.position).GetRoomName().StartsWith("boss foyer") || (GameManager.Instance.Dungeon.data.Entrance != null && Vector3Extensions.GetAbsoluteRoom(((Component)breakable).gameObject.transform.position).GetRoomName().StartsWith(GameManager.Instance.Dungeon.data.Entrance.GetRoomName()))))) { return; } ExpandShaders.Instance.ApplyHologramShader(val, isGreen); if ((Object)(object)((Component)breakable).gameObject.GetComponent() != (Object)null) { SpeculativeRigidbody component = ((Component)breakable).gameObject.GetComponent(); component.RegisterSpecificCollisionException(((BraveBehaviour)GameManager.Instance.PrimaryPlayer).specRigidbody); if ((int)GameManager.Instance.CurrentGameType == 1) { ((BraveBehaviour)component).specRigidbody.RegisterSpecificCollisionException(((BraveBehaviour)GameManager.Instance.SecondaryPlayer).specRigidbody); } } else if ((Object)(object)((Component)breakable).GetComponentInChildren() != (Object)null) { SpeculativeRigidbody componentInChildren = ((Component)breakable).GetComponentInChildren(); componentInChildren.RegisterSpecificCollisionException(((BraveBehaviour)GameManager.Instance.PrimaryPlayer).specRigidbody); if ((int)GameManager.Instance.CurrentGameType == 1) { ((BraveBehaviour)componentInChildren).specRigidbody.RegisterSpecificCollisionException(((BraveBehaviour)GameManager.Instance.SecondaryPlayer).specRigidbody); } } } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"Exception Caught at [BecomeHologram] in ExpandChaosModeChallengeComponent!", false); ETGModConsole.Log((object)(ex.Message + ex.Source), false); ETGModConsole.Log((object)ex.StackTrace, false); } } } private void BecomeHologram(FlippableCover table, bool isGreen = false) { //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_01d0: Invalid comparison between Unknown and I4 //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_021d: Unknown result type (might be due to invalid IL or missing references) //IL_0223: Invalid comparison between Unknown and I4 //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) try { if ((Object)(object)table == (Object)null) { return; } tk2dBaseSprite val = null; try { if (((BraveBehaviour)table).sprite == null) { return; } val = ((BraveBehaviour)table).sprite; } catch { } if ((Object)(object)val == (Object)null || string.IsNullOrEmpty(((Object)((Component)table).gameObject).name) || (Object)(object)((Component)table).gameObject.GetComponent() != (Object)null || (Object)(object)((Component)table).gameObject.GetComponentInChildren() != (Object)null || ((Object)(object)((Component)table).gameObject.transform != (Object)null && Vector3Extensions.GetAbsoluteRoom(((Component)table).gameObject.transform.position) != null && (Vector3Extensions.GetAbsoluteRoom(((Component)table).gameObject.transform.position).GetRoomName().StartsWith("doublebeholsterroom01") || Vector3Extensions.GetAbsoluteRoom(((Component)table).gameObject.transform.position).GetRoomName().StartsWith("bossstatuesroom01") || Vector3Extensions.GetAbsoluteRoom(((Component)table).gameObject.transform.position).GetRoomName().StartsWith("boss foyer") || (GameManager.Instance.Dungeon.data.Entrance != null && Vector3Extensions.GetAbsoluteRoom(((Component)table).gameObject.transform.position).GetRoomName().StartsWith(GameManager.Instance.Dungeon.data.Entrance.GetRoomName()))))) { return; } ExpandShaders.Instance.ApplyHologramShader(val, isGreen); if ((Object)(object)((Component)table).gameObject.GetComponent() != (Object)null) { SpeculativeRigidbody component = ((Component)table).gameObject.GetComponent(); component.RegisterSpecificCollisionException(((BraveBehaviour)GameManager.Instance.PrimaryPlayer).specRigidbody); if ((int)GameManager.Instance.CurrentGameType == 1) { ((BraveBehaviour)component).specRigidbody.RegisterSpecificCollisionException(((BraveBehaviour)GameManager.Instance.SecondaryPlayer).specRigidbody); } } else if ((Object)(object)((Component)table).GetComponentInChildren() != (Object)null) { SpeculativeRigidbody componentInChildren = ((Component)table).GetComponentInChildren(); componentInChildren.RegisterSpecificCollisionException(((BraveBehaviour)GameManager.Instance.PrimaryPlayer).specRigidbody); if ((int)GameManager.Instance.CurrentGameType == 1) { ((BraveBehaviour)componentInChildren).specRigidbody.RegisterSpecificCollisionException(((BraveBehaviour)GameManager.Instance.SecondaryPlayer).specRigidbody); } } } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"Exception Caught at [BecomeHologram] in ExpandChaosModeChallengeComponent!", false); ETGModConsole.Log((object)(ex.Message + ex.Source), false); ETGModConsole.Log((object)ex.StackTrace, false); } } } private void MaybeSwapEnemySprites(AIActor targetActor) { //IL_003e: 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_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0099: 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_0214: Unknown result type (might be due to invalid IL or missing references) //IL_021a: Unknown result type (might be due to invalid IL or missing references) //IL_022a: Unknown result type (might be due to invalid IL or missing references) //IL_022f: Unknown result type (might be due to invalid IL or missing references) //IL_0234: Unknown result type (might be due to invalid IL or missing references) //IL_023f: Unknown result type (might be due to invalid IL or missing references) //IL_018b: 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_0196: Unknown result type (might be due to invalid IL or missing references) //IL_01cf: Unknown result type (might be due to invalid IL or missing references) //IL_01b3: Unknown result type (might be due to invalid IL or missing references) if (Random.value > 0.35f) { return; } if ((targetActor.EnemyGuid == "128db2f0781141bcb505d8f00f9e4d47") | (targetActor.EnemyGuid == "b54d89f9e802455cbb2b8a96a31e8259")) { IntVector2 val = Vector2Extensions.ToIntVector2(TransformExtensions.PositionVector2(((Component)targetActor).gameObject.transform), (VectorConversions)2); if (targetActor.EnemyGuid == "128db2f0781141bcb505d8f00f9e4d47") { AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(ExpandEnemyDatabase.BootlegShotgunManRedGUID), val, ((DungeonPlaceableBehaviour)targetActor).GetAbsoluteParentRoom(), true, (AwakenAnimationType)2, true); ((DungeonPlaceableBehaviour)targetActor).GetAbsoluteParentRoom().DeregisterEnemy(targetActor, false); Object.Destroy((Object)(object)((Component)targetActor).gameObject); } else { AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(ExpandEnemyDatabase.BootlegShotgunManBlueGUID), val, ((DungeonPlaceableBehaviour)targetActor).GetAbsoluteParentRoom(), true, (AwakenAnimationType)2, true); ((DungeonPlaceableBehaviour)targetActor).GetAbsoluteParentRoom().DeregisterEnemy(targetActor, false); Object.Destroy((Object)(object)((Component)targetActor).gameObject); } return; } if ((targetActor.EnemyGuid == "01972dee89fc4404a5c408d50007dad5") | (targetActor.EnemyGuid == "db35531e66ce41cbb81d507a34366dfe")) { int num = Random.Range(0, 3); if (num == 0) { ExpandUtility.ApplyCustomTexture(targetActor, null, null, BulletManMonochromeCollection, ShaderCache.Acquire("tk2d/BlendVertexColorUnlitTilted")); ((GameActor)targetActor).OverrideDisplayName = "1-Bit " + targetActor.GetActorName(); ((GameActor)targetActor).ActorName = ((GameActor)targetActor).ActorName + "ALT"; return; } if (num == 1) { ExpandUtility.ApplyCustomTexture(targetActor, null, null, BulletManUpsideDownCollection); ((GameActor)targetActor).OverrideDisplayName = "Bizarro " + targetActor.GetActorName(); ((GameActor)targetActor).ActorName = ((GameActor)targetActor).ActorName + "ALT"; return; } if (num > 1) { IntVector2 val2 = Vector2Extensions.ToIntVector2(TransformExtensions.PositionVector2(((Component)targetActor).gameObject.transform), (VectorConversions)2); if (targetActor.EnemyGuid == "db35531e66ce41cbb81d507a34366dfe") { AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(ExpandEnemyDatabase.BootlegBulletManBandanaGUID), val2, ((DungeonPlaceableBehaviour)targetActor).GetAbsoluteParentRoom(), true, (AwakenAnimationType)2, true); } else { AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(ExpandEnemyDatabase.BootlegBulletManGUID), val2, ((DungeonPlaceableBehaviour)targetActor).GetAbsoluteParentRoom(), true, (AwakenAnimationType)2, true); } ((DungeonPlaceableBehaviour)targetActor).GetAbsoluteParentRoom().DeregisterEnemy(targetActor, false); Object.Destroy((Object)(object)((Component)targetActor).gameObject); } } if (targetActor.EnemyGuid == "88b6b6a93d4b4234a67844ef4728382c") { IntVector2 val3 = Vector2Extensions.ToIntVector2(TransformExtensions.PositionVector2(((Component)targetActor).gameObject.transform), (VectorConversions)2) - ((DungeonPlaceableBehaviour)targetActor).GetAbsoluteParentRoom().area.basePosition; AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(ExpandEnemyDatabase.BootlegBulletManBandanaGUID), val3, ((DungeonPlaceableBehaviour)targetActor).GetAbsoluteParentRoom(), true, (AwakenAnimationType)2, true); ((DungeonPlaceableBehaviour)targetActor).GetAbsoluteParentRoom().DeregisterEnemy(targetActor, false); Object.Destroy((Object)(object)((Component)targetActor).gameObject); } } private IEnumerator DelayedEnemySpawn(float delay, RoomHandler currentRoom, Vector2 spawnPosition, List GUIDList) { //IL_001c: 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) if (!currentRoom.IsSealed || (currentRoom.GetRoomName() != null && PotEnemiesBannedRooms.Contains(currentRoom.GetRoomName()))) { yield break; } yield return (object)new WaitForSeconds(delay); if (!currentRoom.IsSealed) { yield break; } yield return null; AIActor spawnedActor = AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(BraveUtility.RandomElement(GUIDList)), spawnPosition, currentRoom, true, (AwakenAnimationType)0, true); yield return null; if (!AlreadyIgnoredForRoomClearList.Contains(spawnedActor.EnemyGuid)) { if (!spawnedActor.IgnoreForRoomClear) { spawnedActor.IgnoreForRoomClear = true; } if (!spawnedActor.PreventBlackPhantom) { spawnedActor.PreventBlackPhantom = true; if (spawnedActor.IsBlackPhantom) { spawnedActor.UnbecomeBlackPhantom(); } } } if (KillOnRoomClearList.Contains(spawnedActor.EnemyGuid)) { ((Component)spawnedActor).gameObject.AddComponent(); KillOnRoomClear component = ((Component)spawnedActor).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.overrideDeathAnim = string.Empty; component.preventExplodeOnDeath = false; } } if (Random.value <= EnemyResizeOdds) { MakeTinyOrBig(spawnedActor, delayed: true); } if (Random.value <= 0.35f) { ExpandShaders.Instance.BecomeHologram(spawnedActor, BraveUtility.RandomBool()); } else if (Random.value <= 0.15f) { ExpandShaders.Instance.BecomeRainbow(spawnedActor); } else { MaybeSwapEnemySprites(spawnedActor); } } private IEnumerator ResizeEnemy(AIActor target, Vector2 ScaleValue, bool onlyDoRescale = true, bool isBigEnemy = false, bool delayed = false) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)target == (Object)null) { yield break; } if (delayed) { yield return (object)new WaitForSeconds(0.8f); } HealthHaver component = ((Component)target).GetComponent(); float num = 2f; _ = ((Component)target).gameObject.layer; ((Component)target).gameObject.layer = LayerMask.NameToLayer("Unpixelated"); SpriteOutlineManager.ChangeOutlineLayer(((BraveBehaviour)target).sprite, LayerMask.NameToLayer("Unpixelated")); if (!onlyDoRescale) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)target).knockbackDoer)) { if (isBigEnemy) { KnockbackDoer knockbackDoer = ((BraveBehaviour)target).knockbackDoer; knockbackDoer.weight *= num; } else { KnockbackDoer knockbackDoer2 = ((BraveBehaviour)target).knockbackDoer; knockbackDoer2.weight /= num; } } if (!isBigEnemy && (Object)(object)component != (Object)null && !onlyDoRescale) { if (!component.IsBoss && !ExpandLists.DontDieOnCollisionWhenTinyGUIDList.Contains(target.EnemyGuid)) { target.DiesOnCollison = true; target.EnemySwitchState = "Blobulin"; } target.CollisionDamage = 0f; target.CollisionDamageTypes = (CoreDamageTypes)0; target.PreventFallingInPitsEver = false; target.PreventBlackPhantom = true; if (component.IsBoss) { if ((Object)(object)component != (Object)null) { component.SetHealthMaximum(component.GetMaxHealth() / 1.5f, (float?)null, false); } } else if ((Object)(object)component != (Object)null && !onlyDoRescale) { target.BaseMovementSpeed *= 1.15f; target.MovementSpeed *= 1.15f; if ((Object)(object)component != (Object)null) { component.SetHealthMaximum(component.GetMaxHealth() / 2f, (float?)null, false); } } ((GameActor)target).OverrideDisplayName = "Tiny " + target.GetActorName(); } else if (isBigEnemy && (Object)(object)component != (Object)null && !onlyDoRescale) { if (!((GameActor)target).IsFlying && !component.IsBoss && !ExpandLists.OverrideFallIntoPitsList.Contains(target.EnemyGuid)) { target.PreventFallingInPitsEver = true; } if (component.IsBoss) { component.SetHealthMaximum(component.GetMaxHealth() * 1.2f, (float?)null, false); } else { target.BaseMovementSpeed /= 1.25f; target.MovementSpeed /= 1.25f; component.SetHealthMaximum(component.GetMaxHealth() * 1.5f, (float?)null, false); } ((GameActor)target).OverrideDisplayName = "Big " + target.GetActorName(); } } Vector2 startScale = target.EnemyScale; float elapsed = 0f; float ShrinkTime = 0.5f; while (elapsed < ShrinkTime) { elapsed += BraveTime.DeltaTime; target.EnemyScale = Vector2.Lerp(startScale, ScaleValue, elapsed / ShrinkTime); if (Object.op_Implicit((Object)(object)((BraveBehaviour)target).specRigidbody)) { ((BraveBehaviour)target).specRigidbody.UpdateCollidersOnScale = true; ((BraveBehaviour)target).specRigidbody.RegenerateColliders = true; } yield return null; } yield return (object)new WaitForSeconds(1.5f); ExpandUtility.CorrectForWalls(target); } private DungeonPlaceable m_CustomEnemyPlacable(string EnemyGUID = "01972dee89fc4404a5c408d50007dad5", bool forceBlackPhantom = false) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Expected O, but got Unknown //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) DungeonPlaceableVariant val = new DungeonPlaceableVariant(); val.percentChance = 1f; val.unitOffset = Vector2.zero; val.enemyPlaceableGuid = EnemyGUID; val.pickupObjectPlaceableId = -1; val.forceBlackPhantom = forceBlackPhantom; val.addDebrisObject = false; val.prerequisites = null; val.materialRequirements = null; List list = new List(); list.Add(val); DungeonPlaceable obj = ScriptableObject.CreateInstance(); ((Object)obj).name = "CustomEnemyPlacable"; obj.width = 1; obj.height = 1; obj.roomSequential = false; obj.respectsEncounterableDifferentiator = false; obj.UsePrefabTransformOffset = false; obj.MarkSpawnedItemsAsRatIgnored = false; obj.DebugThisPlaceable = false; obj.variantTiers = list; return obj; } private IntVector2? FindRandomDropLocation(RoomHandler currentRoom, IntVector2 Clearance, float maxDistanceFromPlayer = 8f, bool markLocationAsOccupied = false) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Expected O, but got Unknown //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_0095: 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_0047: 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: Invalid comparison between Unknown and I4 CellValidator val = (CellValidator)delegate(IntVector2 pos) { //IL_0010: 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) for (int i = 0; i < GameManager.Instance.AllPlayers.Length; i++) { if (Vector2.Distance(((GameActor)GameManager.Instance.AllPlayers[i]).CenterPosition, ((IntVector2)(ref pos)).ToCenterVector2()) < maxDistanceFromPlayer) { return false; } } return true; }; IntVector2? randomAvailableCell = currentRoom.GetRandomAvailableCell((IntVector2?)Clearance, (CellTypes?)(CellTypes)2, false, val); if (randomAvailableCell.HasValue) { CellData val2 = GameManager.Instance.Dungeon.data[randomAvailableCell.Value]; if (val2.parentRoom == currentRoom && (int)val2.type == 2 && !val2.isOccupied && !val2.containsTrap && !val2.isOccludedByTopWall) { if (markLocationAsOccupied) { val2.isOccupied = true; } return randomAvailableCell; } return randomAvailableCell; } return Vector2Extensions.ToIntVector2(((GameActor)GameManager.Instance.PrimaryPlayer).CenterPosition, (VectorConversions)2); } private IntVector2 GetRandomAvailableCellForPlacable(Dungeon dungeon, RoomHandler currentRoom, List validCellsCached, bool useCachedList, bool allowPlacingOverPits = false, int gridSnap = 1) { //IL_0c46: Unknown result type (might be due to invalid IL or missing references) //IL_0c08: Unknown result type (might be due to invalid IL or missing references) //IL_0c0d: Unknown result type (might be due to invalid IL or missing references) //IL_0c0f: Unknown result type (might be due to invalid IL or missing references) //IL_0c11: Unknown result type (might be due to invalid IL or missing references) //IL_0c2b: Unknown result type (might be due to invalid IL or missing references) //IL_0c33: Unknown result type (might be due to invalid IL or missing references) //IL_0c3b: Unknown result type (might be due to invalid IL or missing references) //IL_0c40: Unknown result type (might be due to invalid IL or missing references) //IL_0c1d: Unknown result type (might be due to invalid IL or missing references) //IL_0510: Unknown result type (might be due to invalid IL or missing references) //IL_0bc0: Unknown result type (might be due to invalid IL or missing references) if (!useCachedList || validCellsCached == null) { validCellsCached = new List(); } if (validCellsCached.Count <= 0) { for (int i = -1; i <= currentRoom.area.dimensions.x; i++) { for (int j = -1; j <= currentRoom.area.dimensions.y; j++) { int num = currentRoom.area.basePosition.x + i; int num2 = currentRoom.area.basePosition.y + j; if (num % gridSnap != 0 || num2 % gridSnap != 0) { continue; } if (allowPlacingOverPits) { if (!dungeon.data.isWall(num - 2, num2 + 2) && !dungeon.data.isWall(num - 1, num2 + 2) && !dungeon.data.isWall(num, num2 + 2) && !dungeon.data.isWall(num + 1, num2 + 2) && !dungeon.data.isWall(num + 2, num2 + 2) && !dungeon.data.isWall(num - 2, num2 + 1) && !dungeon.data.isWall(num - 1, num2 + 1) && !dungeon.data.isWall(num, num2 + 1) && !dungeon.data.isWall(num + 1, num2 + 1) && !dungeon.data.isWall(num + 2, num2 + 1) && !dungeon.data.isWall(num - 2, num2) && !dungeon.data.isWall(num - 1, num2) && !dungeon.data.isWall(num, num2) && !dungeon.data.isWall(num + 1, num2) && !dungeon.data.isWall(num + 2, num2) && !dungeon.data.isWall(num - 2, num2 - 1) && !dungeon.data.isWall(num - 1, num2 - 1) && !dungeon.data.isWall(num, num2 - 1) && !dungeon.data.isWall(num + 1, num2 - 1) && !dungeon.data.isWall(num + 2, num2 - 1) && !dungeon.data.isWall(num - 2, num2 - 2) && !dungeon.data.isWall(num - 1, num2 - 2) && !dungeon.data.isWall(num, num2 - 2) && !dungeon.data.isWall(num + 1, num2 - 2) && !dungeon.data.isWall(num + 2, num2 - 2) && !dungeon.data[num - 2, num2 + 2].isOccupied && !dungeon.data[num - 1, num2 + 2].isOccupied && !dungeon.data[num, num2 + 2].isOccupied && !dungeon.data[num + 1, num2 + 2].isOccupied && !dungeon.data[num + 2, num2 + 2].isOccupied && !dungeon.data[num - 2, num2 + 1].isOccupied && !dungeon.data[num - 1, num2 + 1].isOccupied && !dungeon.data[num, num2 + 1].isOccupied && !dungeon.data[num + 1, num2 + 1].isOccupied && !dungeon.data[num + 2, num2 + 1].isOccupied && !dungeon.data[num - 2, num2].isOccupied && !dungeon.data[num - 1, num2].isOccupied && !dungeon.data[num, num2].isOccupied && !dungeon.data[num + 1, num2].isOccupied && !dungeon.data[num + 2, num2].isOccupied && !dungeon.data[num - 2, num2 - 1].isOccupied && !dungeon.data[num - 1, num2 - 1].isOccupied && !dungeon.data[num, num2 - 1].isOccupied && !dungeon.data[num + 1, num2 - 1].isOccupied && !dungeon.data[num + 2, num2 - 1].isOccupied && !dungeon.data[num - 2, num2 - 2].isOccupied && !dungeon.data[num - 1, num2 - 2].isOccupied && !dungeon.data[num, num2 - 2].isOccupied && !dungeon.data[num + 1, num2 - 2].isOccupied && !dungeon.data[num + 2, num2 - 2].isOccupied) { validCellsCached.Add(new IntVector2(num, num2)); } } else if (!dungeon.data.isWall(num - 2, num2 + 2) && !dungeon.data.isWall(num - 1, num2 + 2) && !dungeon.data.isWall(num, num2 + 2) && !dungeon.data.isWall(num + 1, num2 + 2) && !dungeon.data.isWall(num + 2, num2 + 2) && !dungeon.data.isWall(num - 2, num2 + 1) && !dungeon.data.isWall(num - 1, num2 + 1) && !dungeon.data.isWall(num, num2 + 1) && !dungeon.data.isWall(num + 1, num2 + 1) && !dungeon.data.isWall(num + 2, num2 + 1) && !dungeon.data.isWall(num - 2, num2) && !dungeon.data.isWall(num - 1, num2) && !dungeon.data.isWall(num, num2) && !dungeon.data.isWall(num + 1, num2) && !dungeon.data.isWall(num + 2, num2) && !dungeon.data.isWall(num - 2, num2 - 1) && !dungeon.data.isWall(num - 1, num2 - 1) && !dungeon.data.isWall(num, num2 - 1) && !dungeon.data.isWall(num + 1, num2 - 1) && !dungeon.data.isWall(num + 2, num2 - 1) && !dungeon.data.isWall(num - 2, num2 - 2) && !dungeon.data.isWall(num - 1, num2 - 2) && !dungeon.data.isWall(num, num2 - 2) && !dungeon.data.isWall(num + 1, num2 - 2) && !dungeon.data.isWall(num + 2, num2 - 2) && !dungeon.data[num - 2, num2 + 2].isOccupied && !dungeon.data[num - 1, num2 + 2].isOccupied && !dungeon.data[num, num2 + 2].isOccupied && !dungeon.data[num + 1, num2 + 2].isOccupied && !dungeon.data[num + 2, num2 + 2].isOccupied && !dungeon.data[num - 2, num2 + 1].isOccupied && !dungeon.data[num - 1, num2 + 1].isOccupied && !dungeon.data[num, num2 + 1].isOccupied && !dungeon.data[num + 1, num2 + 1].isOccupied && !dungeon.data[num + 2, num2 + 1].isOccupied && !dungeon.data[num - 2, num2].isOccupied && !dungeon.data[num - 1, num2].isOccupied && !dungeon.data[num, num2].isOccupied && !dungeon.data[num + 1, num2].isOccupied && !dungeon.data[num + 2, num2].isOccupied && !dungeon.data[num - 2, num2 - 1].isOccupied && !dungeon.data[num - 1, num2 - 1].isOccupied && !dungeon.data[num, num2 - 1].isOccupied && !dungeon.data[num + 1, num2 - 1].isOccupied && !dungeon.data[num + 2, num2 - 1].isOccupied && !dungeon.data[num - 2, num2 - 2].isOccupied && !dungeon.data[num - 1, num2 - 2].isOccupied && !dungeon.data[num, num2 - 2].isOccupied && !dungeon.data[num + 1, num2 - 2].isOccupied && !dungeon.data[num + 2, num2 - 2].isOccupied && !dungeon.data.isPit(num - 2, num2 + 2) && !dungeon.data.isPit(num - 1, num2 + 2) && !dungeon.data.isPit(num, num2 + 2) && !dungeon.data.isPit(num + 1, num2 + 2) && !dungeon.data.isPit(num + 2, num2 + 2) && !dungeon.data.isPit(num - 2, num2 + 1) && !dungeon.data.isPit(num - 1, num2 + 1) && !dungeon.data.isPit(num, num2 + 1) && !dungeon.data.isPit(num + 1, num2 + 1) && !dungeon.data.isPit(num + 2, num2 + 1) && !dungeon.data.isPit(num - 2, num2) && !dungeon.data.isPit(num - 1, num2) && !dungeon.data.isPit(num, num2) && !dungeon.data.isPit(num + 1, num2) && !dungeon.data.isPit(num + 2, num2) && !dungeon.data.isPit(num - 2, num2 - 1) && !dungeon.data.isPit(num - 1, num2 - 1) && !dungeon.data.isPit(num, num2 - 1) && !dungeon.data.isPit(num + 1, num2 - 1) && !dungeon.data.isPit(num + 2, num2 - 1) && !dungeon.data.isPit(num - 2, num2 - 2) && !dungeon.data.isPit(num - 1, num2 - 2) && !dungeon.data.isPit(num, num2 - 2) && !dungeon.data.isPit(num + 1, num2 - 2) && !dungeon.data.isPit(num + 2, num2 - 2)) { validCellsCached.Add(new IntVector2(num, num2)); } } } } if (validCellsCached.Count > 0) { IntVector2 val = BraveUtility.RandomElement(validCellsCached); IntVector2 val2 = val; if (useCachedList) { dungeon.data[val2].isOccupied = true; } validCellsCached.Remove(val); return val - currentRoom.area.basePosition; } return IntVector2.Zero; } private IntVector2 GetRandomAvailableCellForNPC(Dungeon dungeon, RoomHandler currentRoom, List validCellsCached, bool useCachedList) { //IL_0afa: Unknown result type (might be due to invalid IL or missing references) //IL_0ac0: Unknown result type (might be due to invalid IL or missing references) //IL_0ac5: Unknown result type (might be due to invalid IL or missing references) //IL_0ac7: Unknown result type (might be due to invalid IL or missing references) //IL_0ac9: Unknown result type (might be due to invalid IL or missing references) //IL_0ad1: Unknown result type (might be due to invalid IL or missing references) //IL_0adf: Unknown result type (might be due to invalid IL or missing references) //IL_0ae7: Unknown result type (might be due to invalid IL or missing references) //IL_0aef: Unknown result type (might be due to invalid IL or missing references) //IL_0af4: Unknown result type (might be due to invalid IL or missing references) //IL_0a78: Unknown result type (might be due to invalid IL or missing references) if (!useCachedList || validCellsCached == null) { validCellsCached = new List(); validCellsCached.Clear(); } if (validCellsCached.Count <= 0) { for (int i = -1; i <= currentRoom.area.dimensions.x; i++) { for (int j = -1; j <= currentRoom.area.dimensions.y; j++) { int num = currentRoom.area.basePosition.x + i; int num2 = currentRoom.area.basePosition.y + j; if (!dungeon.data.isWall(num - 3, num2 + 3) && !dungeon.data.isWall(num - 2, num2 + 3) && !dungeon.data.isWall(num - 1, num2 + 3) && !dungeon.data.isWall(num, num2 + 3) && !dungeon.data.isWall(num + 1, num2 + 3) && !dungeon.data.isWall(num + 2, num2 + 3) && !dungeon.data.isWall(num + 3, num2 + 3) && !dungeon.data.isWall(num - 3, num2 + 2) && !dungeon.data.isWall(num - 2, num2 + 2) && !dungeon.data.isWall(num - 1, num2 + 2) && !dungeon.data.isWall(num, num2 + 2) && !dungeon.data.isWall(num + 1, num2 + 2) && !dungeon.data.isWall(num + 2, num2 + 2) && !dungeon.data.isWall(num + 3, num2 + 2) && !dungeon.data.isWall(num - 3, num2 + 1) && !dungeon.data.isWall(num - 2, num2 + 1) && !dungeon.data.isWall(num - 1, num2 + 1) && !dungeon.data.isWall(num, num2 + 1) && !dungeon.data.isWall(num + 1, num2 + 1) && !dungeon.data.isWall(num + 2, num2 + 1) && !dungeon.data.isWall(num + 3, num2 + 1) && !dungeon.data.isWall(num - 3, num2) && !dungeon.data.isWall(num - 2, num2) && !dungeon.data.isWall(num - 1, num2) && !dungeon.data.isWall(num, num2) && !dungeon.data.isWall(num + 1, num2) && !dungeon.data.isWall(num + 2, num2) && !dungeon.data.isWall(num + 3, num2) && !dungeon.data.isWall(num - 3, num2 - 1) && !dungeon.data.isWall(num - 2, num2 - 1) && !dungeon.data.isWall(num - 1, num2 - 1) && !dungeon.data.isWall(num, num2 - 1) && !dungeon.data.isWall(num + 1, num2 - 1) && !dungeon.data.isWall(num + 2, num2 - 1) && !dungeon.data.isWall(num + 3, num2 - 1) && !dungeon.data.isWall(num - 3, num2 - 2) && !dungeon.data.isWall(num - 2, num2 - 2) && !dungeon.data.isWall(num - 1, num2 - 2) && !dungeon.data.isWall(num, num2 - 2) && !dungeon.data.isWall(num + 1, num2 - 2) && !dungeon.data.isWall(num + 2, num2 - 2) && !dungeon.data.isWall(num + 3, num2 - 2) && !dungeon.data.isPit(num - 3, num2 + 3) && !dungeon.data.isPit(num - 2, num2 + 3) && !dungeon.data.isPit(num - 1, num2 + 3) && !dungeon.data.isPit(num, num2 + 3) && !dungeon.data.isPit(num + 1, num2 + 3) && !dungeon.data.isPit(num + 2, num2 + 3) && !dungeon.data.isPit(num + 3, num2 + 3) && !dungeon.data.isPit(num - 3, num2 + 2) && !dungeon.data.isPit(num - 2, num2 + 2) && !dungeon.data.isPit(num - 1, num2 + 2) && !dungeon.data.isPit(num, num2 + 2) && !dungeon.data.isPit(num + 1, num2 + 2) && !dungeon.data.isPit(num + 2, num2 + 2) && !dungeon.data.isPit(num + 3, num2 + 2) && !dungeon.data.isPit(num - 3, num2 + 1) && !dungeon.data.isPit(num - 2, num2 + 1) && !dungeon.data.isPit(num - 1, num2 + 1) && !dungeon.data.isPit(num, num2 + 1) && !dungeon.data.isPit(num + 1, num2 + 1) && !dungeon.data.isPit(num + 2, num2 + 1) && !dungeon.data.isPit(num + 3, num2 + 1) && !dungeon.data.isPit(num - 3, num2) && !dungeon.data.isPit(num - 2, num2) && !dungeon.data.isPit(num - 1, num2) && !dungeon.data.isPit(num, num2) && !dungeon.data.isPit(num + 1, num2) && !dungeon.data.isPit(num + 2, num2) && !dungeon.data.isPit(num + 3, num2) && !dungeon.data.isPit(num - 3, num2 - 1) && !dungeon.data.isPit(num - 2, num2 - 1) && !dungeon.data.isPit(num - 1, num2 - 1) && !dungeon.data.isPit(num, num2 - 1) && !dungeon.data.isPit(num + 1, num2 - 1) && !dungeon.data.isPit(num + 2, num2 - 1) && !dungeon.data.isPit(num + 3, num2 - 1) && !dungeon.data.isPit(num - 3, num2 - 2) && !dungeon.data.isPit(num - 2, num2 - 2) && !dungeon.data.isPit(num - 1, num2 - 2) && !dungeon.data.isPit(num, num2 - 2) && !dungeon.data.isPit(num + 1, num2 - 2) && !dungeon.data.isPit(num + 2, num2 - 2) && !dungeon.data.isPit(num + 3, num2 - 2) && !dungeon.data.isPit(num - 3, num2 - 3) && !dungeon.data.isPit(num - 2, num2 - 3) && !dungeon.data.isPit(num - 1, num2 - 3) && !dungeon.data.isPit(num, num2 - 3) && !dungeon.data.isPit(num + 1, num2 - 3) && !dungeon.data.isPit(num + 2, num2 - 3) && !dungeon.data.isPit(num + 3, num2 - 3) && !dungeon.data[num - 2, num2 + 2].isOccupied && !dungeon.data[num - 1, num2 + 2].isOccupied && !dungeon.data[num, num2 + 2].isOccupied && !dungeon.data[num + 1, num2 + 2].isOccupied && !dungeon.data[num + 2, num2 + 2].isOccupied && !dungeon.data[num - 2, num2 + 1].isOccupied && !dungeon.data[num - 1, num2 + 1].isOccupied && !dungeon.data[num, num2 + 1].isOccupied && !dungeon.data[num + 1, num2 + 1].isOccupied && !dungeon.data[num + 2, num2 + 1].isOccupied && !dungeon.data[num - 2, num2].isOccupied && !dungeon.data[num - 1, num2].isOccupied && !dungeon.data[num, num2].isOccupied && !dungeon.data[num + 1, num2].isOccupied && !dungeon.data[num + 2, num2].isOccupied && !dungeon.data[num - 2, num2 - 1].isOccupied && !dungeon.data[num - 1, num2 - 1].isOccupied && !dungeon.data[num, num2 - 1].isOccupied && !dungeon.data[num + 1, num2 - 1].isOccupied && !dungeon.data[num + 2, num2 - 1].isOccupied && !dungeon.data[num - 2, num2 - 2].isOccupied && !dungeon.data[num - 1, num2 - 2].isOccupied && !dungeon.data[num, num2 - 2].isOccupied && !dungeon.data[num + 1, num2 - 2].isOccupied && !dungeon.data[num + 2, num2 - 2].isOccupied) { validCellsCached.Add(new IntVector2(num, num2)); } } } } if (validCellsCached.Count > 0) { IntVector2 val = BraveUtility.RandomElement(validCellsCached); IntVector2 val2 = val; dungeon.data[val2].isOccupied = true; validCellsCached.Remove(val); return val - currentRoom.area.basePosition; } return IntVector2.Zero; } private void Update() { } private void LateUpdate() { } private void OnDestroy() { //IL_006b: Unknown result type (might be due to invalid IL or missing references) if (Dungeon.IsGenerating || !GameManager.HasInstance || GameManager.Instance.IsLoadingLevel || !Object.op_Implicit((Object)(object)GameManager.Instance.PrimaryPlayer) || GameManager.Instance.PrimaryPlayer.CurrentRoom == null) { return; } RoomHandler currentRoom = GameManager.Instance.PrimaryPlayer.CurrentRoom; foreach (MinorBreakable allMinorBreakable in StaticReferenceManager.AllMinorBreakables) { if (Object.op_Implicit((Object)(object)allMinorBreakable) && Vector3Extensions.GetAbsoluteRoom(allMinorBreakable.CenterPoint) == currentRoom) { AddOrRemoveActionForPot(allMinorBreakable, install: false); } } } } public class ExpandCorruptedEnemyEngageDoer : CustomEngageDoer { private bool m_isFinished; public override bool IsFinished => m_isFinished; public void Awake() { ((BraveBehaviour)this).aiActor.HasDonePlayerEnterCheck = true; } public override void StartIntro() { if (!m_isFinished) { m_isFinished = true; HandleChooseCorruptionEnemySource(); } } private void HandleChooseCorruptionEnemySource() { //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0053: 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_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) ((Behaviour)((BraveBehaviour)this).aiActor).enabled = false; ((Behaviour)((BraveBehaviour)this).behaviorSpeculator).enabled = false; ((BraveBehaviour)this).aiActor.ToggleRenderers(false); ((Behaviour)((BraveBehaviour)this).specRigidbody).enabled = false; ((GameActor)((BraveBehaviour)this).aiActor).IsGone = true; RoomHandler absoluteRoom = Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)this).transform.position); IntVector2 position = Vector2Extensions.ToIntVector2(TransformExtensions.PositionVector2(((BraveBehaviour)this).transform), (VectorConversions)2) - absoluteRoom.area.basePosition; if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).aiShooter)) { ((BraveBehaviour)this).aiShooter.ToggleGunAndHandRenderers(false, "ExpandCorruptedEnemyEngageDoer"); } GameObject val = null; try { val = ExpandEnemyCorruptor.Instance.SpawnRandomGlitchEnemy(absoluteRoom, position, autoEngage: true, (AwakenAnimationType)1); } catch (Exception) { if (Object.op_Implicit((Object)(object)val)) { if (Object.op_Implicit((Object)(object)val.GetComponent())) { absoluteRoom.DeregisterEnemy(val.GetComponent(), false); } Object.Destroy((Object)(object)val); } } if (Object.op_Implicit((Object)(object)val) && Object.op_Implicit((Object)(object)val.GetComponent())) { ((BraveBehaviour)val.GetComponent()).aiAnimator.PlayDefaultAwakenedState(); ((BraveBehaviour)val.GetComponent()).aiActor.State = (ActorState)2; ((BraveBehaviour)val.GetComponent()).aiActor.invisibleUntilAwaken = false; } absoluteRoom.DeregisterEnemy(((BraveBehaviour)this).aiActor, false); Object.Destroy((Object)(object)((Component)this).gameObject); } } public class ExpandCorruptedObjectDummyComponent : BraveBehaviour { public void Init() { ExpandStaticReferenceManager.AllGlitchTiles.Add(this); } private void Start() { } private void Update() { } protected override void OnDestroy() { ExpandStaticReferenceManager.AllGlitchTiles.Remove(this); ((BraveBehaviour)this).OnDestroy(); } } public class ExpandCorruptedObjectAmbienceComponent : BraveBehaviour { public string StartCorruptionSoundEvent; public string StopCorruptionSoundEvent; public bool startImmediately; public Vector3? UnitOffset; private bool m_HasBeenActivated; private RoomHandler m_Room; private GameObject m_SoundObjectChild; public ExpandCorruptedObjectAmbienceComponent() { StartCorruptionSoundEvent = "Play_EX_CorruptionAmbience_02"; StopCorruptionSoundEvent = "Stop_EX_CorruptionAmbience_02"; startImmediately = false; m_HasBeenActivated = false; } private void Start() { } private void Update() { } public void Init(RoomHandler room) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Expected O, but got Unknown m_Room = room; if (startImmediately) { HandleBecomeVisible(); return; } m_Room.BecameVisible += (OnBecameVisibleEventHandler)delegate { HandleBecomeVisible(); }; } private void HandleBecomeVisible() { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Expected O, but got Unknown //IL_004b: 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_0060: Unknown result type (might be due to invalid IL or missing references) if (!m_HasBeenActivated && m_Room != null) { if (UnitOffset.HasValue) { m_SoundObjectChild = new GameObject("RoomCorruptionAmbience_Child_SFX") { layer = 0 }; m_SoundObjectChild.transform.position = UnitOffset.Value + ((Component)this).gameObject.transform.position; m_SoundObjectChild.transform.parent = ((Component)this).gameObject.transform; AkSoundEngine.PostEvent(StartCorruptionSoundEvent, m_SoundObjectChild); } else { AkSoundEngine.PostEvent(StartCorruptionSoundEvent, ((Component)this).gameObject); } m_HasBeenActivated = true; } } protected override void OnDestroy() { if (UnitOffset.HasValue && Object.op_Implicit((Object)(object)m_SoundObjectChild)) { AkSoundEngine.PostEvent(StopCorruptionSoundEvent, m_SoundObjectChild); } else { AkSoundEngine.PostEvent(StopCorruptionSoundEvent, ((Component)this).gameObject); } ((BraveBehaviour)this).OnDestroy(); } } public class ExpandEnableCorpseOnDeath : OnDeathBehavior { private bool m_hasTriggered; public ExpandEnableCorpseOnDeath() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) base.deathType = (DeathType)0; base.preDeathDelay = 0f; base.triggerName = ""; } public void ManuallyTrigger(Vector2 damageDirection) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) ((OnDeathBehavior)this).OnTrigger(damageDirection); } protected override void OnTrigger(Vector2 damageDirection) { if (!m_hasTriggered) { m_hasTriggered = true; ((BraveBehaviour)this).aiActor.CorpseObject.SetActive(true); } } protected override void OnDestroy() { ((OnDeathBehavior)this).OnDestroy(); } } public class ExpandEnableSpacePitOnEnterComponent : DungeonPlaceableBehaviour, IPlaceConfigurable { private bool m_Triggered; private RoomHandler m_ParentRoom; private EndTimesNebulaController m_NebulaController; private GameObject m_NebulaObject; private void Start() { //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_0029: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)Object.FindObjectOfType())) { m_NebulaController = Object.FindObjectOfType(); } else { m_NebulaObject = Object.Instantiate(ExpandObjectDatabase.EndTimes, Vector2.op_Implicit(Vector2.zero), Quaternion.identity); m_NebulaController = m_NebulaObject.GetComponent(); } Object.op_Implicit((Object)(object)m_NebulaController); } private void Update() { if (!Object.op_Implicit((Object)(object)m_NebulaController)) { m_Triggered = true; } else { if (m_Triggered || Dungeon.IsGenerating || GameManager.Instance.IsLoadingLevel) { return; } bool flag = false; if (m_ParentRoom.connectedRoomsByExit != null && m_ParentRoom.connectedRoomsByExit.Count > 0) { foreach (KeyValuePair item in m_ParentRoom.connectedRoomsByExit) { if (GameManager.Instance.PrimaryPlayer.CurrentRoom == item.Value) { flag = true; break; } } } if (!flag && GameManager.Instance.PrimaryPlayer.CurrentRoom == m_ParentRoom) { flag = true; } if (flag) { m_Triggered = true; m_NebulaController.BecomeActive(); } } } public void ConfigureOnPlacement(RoomHandler room) { m_ParentRoom = room; } protected override void OnDestroy() { ((DungeonPlaceableBehaviour)this).OnDestroy(); } } public class ExpandGlitchedEnemyStunManager : BraveBehaviour { public float stunDuration; private RoomHandler m_StartRoom; public ExpandGlitchedEnemyStunManager() { stunDuration = 0.65f; } private void Start() { m_StartRoom = ((DungeonPlaceableBehaviour)((BraveBehaviour)this).aiActor).GetAbsoluteParentRoom(); } private void Update() { CheckPlayerRoom(); } private void CheckPlayerRoom() { if (!Object.op_Implicit((Object)(object)GameManager.Instance.PrimaryPlayer) | Dungeon.IsGenerating | GameManager.Instance.IsLoadingLevel) { return; } if (!Object.op_Implicit((Object)(object)((BraveBehaviour)this).aiActor) | !Object.op_Implicit((Object)(object)((BraveBehaviour)((BraveBehaviour)this).aiActor).behaviorSpeculator) | (m_StartRoom == null)) { Object.Destroy((Object)(object)this); } else if (((DungeonPlaceableBehaviour)GameManager.Instance.PrimaryPlayer).GetAbsoluteParentRoom() != null && ((DungeonPlaceableBehaviour)GameManager.Instance.PrimaryPlayer).GetAbsoluteParentRoom() != m_StartRoom) { if (((Behaviour)((BraveBehaviour)((BraveBehaviour)this).aiActor).behaviorSpeculator).enabled) { ((Behaviour)((BraveBehaviour)((BraveBehaviour)this).aiActor).behaviorSpeculator).enabled = false; } } else { ((Behaviour)((BraveBehaviour)((BraveBehaviour)this).aiActor).behaviorSpeculator).enabled = true; ((BraveBehaviour)this).aiActor.HasDonePlayerEnterCheck = true; ((BraveBehaviour)this).aiActor.HasBeenEngaged = true; ((BraveBehaviour)((BraveBehaviour)this).aiActor).behaviorSpeculator.Stun(stunDuration, false); Object.Destroy((Object)(object)this); } } protected override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); } } public class ExpandGlitchPortalController : DungeonPlaceableBehaviour, IPlayerInteractable { public Vector3 CachedPosition; public bool Configured; public bool DestroyAfterUse; public float ActivationDelay; public float ShrunkSize; public float ExpandedSize; public float ExpandedHoleDepth; public float ShrunkHoleDepth; public float MaxInteractionRange; public float SizeChangeSpeed; public Color EdgeColor; public Color BorderColor; private bool m_IsActive; private bool m_IsMoving; private bool m_Shrunk; private bool m_used; private bool m_PositionIsValid; public RoomHandler ParentRoom; public ExpandGlitchPortalController() { //IL_0007: 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_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //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) CachedPosition = Vector3.zero; Configured = false; ActivationDelay = 1f; ExpandedSize = 0.09f; ShrunkSize = 0.04f; MaxInteractionRange = 1.5f; DestroyAfterUse = true; EdgeColor = new Color(0.7f, 0f, 0.4f, 1f); BorderColor = new Color(0.3f, 0f, 0f, 1f); ExpandedHoleDepth = 2f; ShrunkHoleDepth = 12f; SizeChangeSpeed = 1f; m_IsActive = false; m_Shrunk = false; m_IsMoving = false; m_used = false; m_PositionIsValid = false; } public float GetDistanceToPoint(Vector2 point) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0007: 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) return Vector2.Distance(point, Vector3Extensions.XY(((BraveBehaviour)this).transform.position)) / 1.5f; } public float GetOverrideMaxDistance() { return MaxInteractionRange; } private void Awake() { //IL_0011: 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) ((BraveBehaviour)this).renderer.material.SetColor("_EdgeColor", EdgeColor); ((BraveBehaviour)this).renderer.material.SetColor("_BorderColor", BorderColor); ((BraveBehaviour)this).renderer.material.SetFloat("_UVDistCutoff", ExpandedSize); ((BraveBehaviour)this).renderer.material.SetFloat("_HoleEdgeDepth", ExpandedHoleDepth); ((MonoBehaviour)this).StartCoroutine(HandleDelayedActivation(ActivationDelay)); } private void Update() { //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0053: 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_0069: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Invalid comparison between Unknown and I4 //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Invalid comparison between Unknown and I4 //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) if (!Configured | (ParentRoom == null) | !m_IsActive) { return; } if (!m_used && !m_PositionIsValid) { Dungeon dungeon = GameManager.Instance.Dungeon; if (!dungeon.data.CheckInBoundsAndValid(Vector2Extensions.ToIntVector2(TransformExtensions.PositionVector2(((BraveBehaviour)this).transform), (VectorConversions)2).x, Vector2Extensions.ToIntVector2(TransformExtensions.PositionVector2(((BraveBehaviour)this).transform), (VectorConversions)2).y) | dungeon.data.isWall(Vector2Extensions.ToIntVector2(TransformExtensions.PositionVector2(((BraveBehaviour)this).transform), (VectorConversions)2).x, Vector2Extensions.ToIntVector2(TransformExtensions.PositionVector2(((BraveBehaviour)this).transform), (VectorConversions)2).y)) { m_used = true; if (ParentRoom.HasActiveEnemies((ActiveEnemyType)1) || !ParentRoom.EverHadEnemies) { ParentRoom.ResetPredefinedRoomLikeDarkSouls(); } DestroyAfterUse = true; ParentRoom.DeregisterInteractable((IPlayerInteractable)(object)this); if (((int)GameManager.Instance.CurrentGameMode == 3) | ((int)GameManager.Instance.CurrentGameMode == 2) | ExpandSettings.HasVisitedBackrooms | (Random.value > 0.3f)) { ((MonoBehaviour)this).StartCoroutine(HandleTeleport(GameManager.Instance.PrimaryPlayer, Vector2.op_Implicit(CachedPosition), 1f)); } else { ExpandLoadingScreen.overrideType = ExpandLoadingScreen.OverrideType.Backrooms; ((MonoBehaviour)this).StartCoroutine(HandleBackroomsAccident(GameManager.Instance.PrimaryPlayer)); } } else { m_PositionIsValid = true; } } if (m_IsActive && m_PositionIsValid && !m_used && !m_IsMoving) { if (!ParentRoom.HasActiveEnemies((ActiveEnemyType)1) && m_Shrunk) { m_Shrunk = false; ((MonoBehaviour)this).StartCoroutine(HandleExpand()); } else if (ParentRoom.HasActiveEnemies((ActiveEnemyType)1) && !m_Shrunk) { m_Shrunk = true; ((MonoBehaviour)this).StartCoroutine(HandleShrink()); } } } public bool IsPrimaryPlayerOrSoleLivingPlayer(PlayerController player) { if (player.IsPrimaryPlayer) { return true; } if (Object.op_Implicit((Object)(object)GameManager.Instance.GetOtherPlayer(player)) && GameManager.Instance.GetOtherPlayer(player).IsGhost) { return true; } return false; } public void OnEnteredRange(PlayerController interactor) { } public void OnExitRange(PlayerController interactor) { } public string GetAnimationState(PlayerController interactor, out bool shouldBeFlipped) { shouldBeFlipped = false; return string.Empty; } public void Interact(PlayerController interactor) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0071: 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) if (!(!Configured | !m_IsActive) && !m_used && IsPrimaryPlayerOrSoleLivingPlayer(interactor) && !((CachedPosition == Vector3.zero) | (ParentRoom == null) | ParentRoom.HasActiveEnemies((ActiveEnemyType)1))) { m_used = true; if (DestroyAfterUse) { ParentRoom.DeregisterInteractable((IPlayerInteractable)(object)this); } ((MonoBehaviour)this).StartCoroutine(HandleTeleport(interactor, Vector2.op_Implicit(CachedPosition))); } } private void TogglePlayerInput(PlayerController targetPlayer, bool lockState) { if (lockState) { targetPlayer.ForceStopDodgeRoll(); targetPlayer.CurrentInputState = (PlayerInputState)1; ((BraveBehaviour)targetPlayer).healthHaver.IsVulnerable = false; } else { targetPlayer.CurrentInputState = (PlayerInputState)0; ((BraveBehaviour)targetPlayer).healthHaver.IsVulnerable = true; } } private IEnumerator HandleDelayedActivation(float delay) { yield return (object)new WaitForSeconds(delay); m_IsActive = true; } private IEnumerator HandleTeleport(PlayerController targetPlayer, Vector2 targetPoint, float delay = -1f) { //IL_0015: 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) TogglePlayerInput(targetPlayer, lockState: true); if (delay != -1f) { yield return (object)new WaitForSeconds(delay); } ExpandShaders.Instance.GlitchScreenForDuration(1f, 1.4f); Dungeon dungeon = GameManager.Instance.Dungeon; GameObject TempFXObject = Object.Instantiate(ExpandAssets.LoadAsset("EXLeadKeyGlitchScreenFX"), ((BraveBehaviour)this).transform.position, Quaternion.identity); TempFXObject.transform.SetParent(((Component)dungeon).gameObject.transform); AkSoundEngine.PostEvent("Play_EX_CorruptionRoomTransition_01", ((Component)targetPlayer).gameObject); ExpandScreenFXController fxController = TempFXObject.GetComponent(); yield return null; if (!ExpandLists.InvalidGraphicsModes.Contains(SystemInfo.graphicsDeviceType)) { while (fxController.GlitchAmount < 1f) { fxController.GlitchAmount += BraveTime.DeltaTime / 0.7f; yield return null; } } else { fxController.GlitchAmount = 0f; Object.Destroy((Object)(object)fxController); Object.Destroy((Object)(object)TempFXObject); } CameraController cameraController = GameManager.Instance.MainCameraController; Vector2 offsetVector2 = Vector2.op_Implicit(((BraveBehaviour)cameraController).transform.position - ((BraveBehaviour)targetPlayer).transform.position); offsetVector2 -= cameraController.GetAimContribution(); cameraController.SetManualControl(true, false); cameraController.OverridePosition = ((BraveBehaviour)cameraController).transform.position; yield return (object)new WaitForSeconds(0.1f); ((BraveBehaviour)targetPlayer).transform.position = Vector2.op_Implicit(targetPoint); ((BraveBehaviour)targetPlayer).specRigidbody.Reinitialize(); ((BraveBehaviour)targetPlayer).specRigidbody.RecheckTriggers = true; if ((int)GameManager.Instance.CurrentGameType == 1) { PlayerController otherPlayer = GameManager.Instance.GetOtherPlayer(targetPlayer); if (Object.op_Implicit((Object)(object)otherPlayer)) { otherPlayer.WarpToPoint(Vector2.op_Implicit(((BraveBehaviour)targetPlayer).transform.position), false, false); } yield return null; cameraController.OverridePosition = Vector2.op_Implicit(cameraController.GetIdealCameraPosition()); } else { cameraController.OverridePosition = Vector2Extensions.ToVector3ZUp(targetPoint + offsetVector2, 0f); } targetPlayer.WarpFollowersToPlayer(false); targetPlayer.WarpCompanionsToPlayer(false); yield return null; if (!ExpandLists.InvalidGraphicsModes.Contains(SystemInfo.graphicsDeviceType) && Object.op_Implicit((Object)(object)fxController)) { while (fxController.GlitchAmount > 0f) { fxController.GlitchAmount -= BraveTime.DeltaTime / 0.7f; yield return null; } } cameraController.SetManualControl(false, true); yield return (object)new WaitForSeconds(0.15f); if (!DestroyAfterUse) { m_used = false; } targetPlayer.DoVibration((Time)20, (Strength)20); PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(((BraveBehaviour)targetPlayer).specRigidbody, (int?)null, false); TogglePlayerInput(targetPlayer, lockState: false); yield return null; if (DestroyAfterUse) { fxController.GlitchAmount = 0f; Object.Destroy((Object)(object)fxController); Object.Destroy((Object)(object)TempFXObject); Object.Destroy((Object)(object)((Component)this).gameObject); } } private IEnumerator HandleBackroomsAccident(PlayerController player, float delay = 0.5f, bool skipFade = false) { if (Object.op_Implicit((Object)(object)player)) { player.PrepareForSceneTransition(); } yield return (object)new WaitForSeconds(3f); if (!skipFade) { Pixelator.Instance.FadeToBlack(0.5f, false, 0f); yield return (object)new WaitForSeconds(1f); } GameUIRoot.Instance.HideCoreUI(string.Empty); GameUIRoot.Instance.ToggleLowerPanels(false, false, string.Empty); ExpandSettings.HasVisitedBackrooms = true; yield return null; GameManager.Instance.DelayedLoadCustomLevel(delay, "tt_backrooms"); AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)this).gameObject); } private IEnumerator HandleShrink() { while (m_IsMoving) { yield return null; } m_IsMoving = true; float elapsed = 0f; while (elapsed < SizeChangeSpeed) { elapsed += BraveTime.DeltaTime * 1f; ((BraveBehaviour)this).renderer.material.SetFloat("_UVDistCutoff", Mathf.Lerp(ExpandedSize, ShrunkSize, elapsed / SizeChangeSpeed)); ((BraveBehaviour)this).renderer.material.SetFloat("_HoleEdgeDepth", Mathf.Lerp(ExpandedHoleDepth, ShrunkHoleDepth, elapsed / SizeChangeSpeed)); yield return null; } m_IsMoving = false; } private IEnumerator HandleExpand() { while (m_IsMoving) { yield return null; } m_IsMoving = true; float elapsed = 0f; while (elapsed < SizeChangeSpeed) { elapsed += BraveTime.DeltaTime * 1f; ((BraveBehaviour)this).renderer.material.SetFloat("_UVDistCutoff", Mathf.Lerp(ShrunkSize, ExpandedSize, elapsed / SizeChangeSpeed)); ((BraveBehaviour)this).renderer.material.SetFloat("_HoleEdgeDepth", Mathf.Lerp(ShrunkHoleDepth, ExpandedHoleDepth, elapsed / SizeChangeSpeed)); yield return null; } m_IsMoving = false; } } [RequireComponent(typeof(VideoPlayer))] public class ExpandScreenFXController : BraveBehaviour { public enum ShaderType { VHS, VHSOldFilm, VHSBasic, Glitch, Scanlines, CRT } public VideoClip VHSClip; public VideoClip OldFilmClip; public Texture2D VHSScreenTexture; [NonSerialized] public VideoPlayer TexturePlayer; public bool enableVHSScanlineDistortion; public bool enableVHSColorBleed; public bool isRoomSpecific; public bool ParentRoomIsSecretGlitchRoom; public bool UseCorruptionAmbience; public bool GlitchUpdatedExternally; public bool GlitchIntensityIsRandom; public bool GlitchUpdateFrequencyIsRandom; public float GlitchAmount; public float GlitchRandom; public float GlitchUpdateFrequency; public string GlitchMapTexture; public int ScanlineThickness; public float ScanlineIntensity; public float bend; public float scanlineSize1; public float scanlineSpeed1; public float scanlineSize2; public float scanlineSpeed2; public float scanlineAmount; public float vignetteSize; public float vignetteSmoothness; public float vignetteEdgeRound; public float noiseSize; public float noiseAmount; public Vector2 redOffset; public Vector2 blueOffset; public Vector2 greenOffset; [NonSerialized] public Material ScreenMaterial; [NonSerialized] public Material ScreenMaterial2; [NonSerialized] public RoomHandler ParentRoom; public ShaderType shaderType; private bool m_SetupComplete; private bool m_MaterialRegistered; private float m_yScanline; private float m_xScanline; private float m_xShift; private float m_xShiftIntensity; private float m_colorBleedToggle; public ExpandScreenFXController() { //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0112: 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_0127: 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) shaderType = ShaderType.VHSBasic; isRoomSpecific = false; ParentRoomIsSecretGlitchRoom = false; UseCorruptionAmbience = true; enableVHSScanlineDistortion = false; enableVHSColorBleed = false; GlitchUpdatedExternally = true; GlitchIntensityIsRandom = false; GlitchUpdateFrequencyIsRandom = false; GlitchAmount = 0.5f; GlitchRandom = 0.1f; GlitchUpdateFrequency = 0.05f; GlitchMapTexture = "EX_GlitchMap"; ScanlineThickness = 2; ScanlineIntensity = 0.4f; bend = 3.5f; scanlineSize1 = 6f; scanlineSpeed1 = -5f; scanlineSize2 = 3f; scanlineSpeed2 = -2f; scanlineAmount = 0.0095f; vignetteSize = 1.5f; vignetteSmoothness = 0.6f; vignetteEdgeRound = 8f; noiseSize = 200f; noiseAmount = 0.045f; redOffset = new Vector2(0f, -0.002f); blueOffset = Vector2.zero; greenOffset = new Vector2(0f, 0.002f); m_yScanline = 0f; m_xScanline = 0f; m_xShift = 0f; m_xShiftIntensity = 500f; m_colorBleedToggle = 0f; m_SetupComplete = false; m_MaterialRegistered = false; } private void Start() { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Expected O, but got Unknown //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Expected O, but got Unknown //IL_0253: Unknown result type (might be due to invalid IL or missing references) //IL_025d: Expected O, but got Unknown //IL_02de: Unknown result type (might be due to invalid IL or missing references) //IL_02e8: Expected O, but got Unknown //IL_0363: Unknown result type (might be due to invalid IL or missing references) //IL_036d: Expected O, but got Unknown //IL_03a9: Unknown result type (might be due to invalid IL or missing references) //IL_03b3: Expected O, but got Unknown //IL_04c6: Unknown result type (might be due to invalid IL or missing references) //IL_04cb: Unknown result type (might be due to invalid IL or missing references) //IL_04e1: Unknown result type (might be due to invalid IL or missing references) //IL_04e6: Unknown result type (might be due to invalid IL or missing references) //IL_04fc: Unknown result type (might be due to invalid IL or missing references) //IL_0501: Unknown result type (might be due to invalid IL or missing references) //IL_053f: Unknown result type (might be due to invalid IL or missing references) //IL_0545: Invalid comparison between Unknown and I4 //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Invalid comparison between Unknown and I4 //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_018a: Expected O, but got Unknown //IL_01a4: Unknown result type (might be due to invalid IL or missing references) switch (shaderType) { case ShaderType.VHS: ScreenMaterial = new Material(ExpandAssets.LoadShaderAsset("ExpandVHSPostProcessEffect")); TexturePlayer = ((Component)this).GetComponent(); m_colorBleedToggle = 0f; if (enableVHSColorBleed) { m_colorBleedToggle = 1f; } ScreenMaterial.SetTexture("_VHSTex", TexturePlayer.texture); if (!enableVHSScanlineDistortion) { ScreenMaterial.SetFloat("_enableScanlineDistortion", 0f); } TexturePlayer.isLooping = true; TexturePlayer.renderMode = (VideoRenderMode)4; TexturePlayer.clip = VHSClip; TexturePlayer.Play(); break; case ShaderType.VHSOldFilm: ScreenMaterial = new Material(ExpandAssets.LoadShaderAsset("ExpandVHSPostProcessEffect")); if (!Object.op_Implicit((Object)(object)VHSScreenTexture)) { VHSScreenTexture = ExpandAssets.LoadAsset("EmptyVHSTexture"); } ScreenMaterial.SetTexture("_VHSTex", (Texture)(object)VHSScreenTexture); if (enableVHSColorBleed) { m_colorBleedToggle = 1f; } else { m_colorBleedToggle = 0f; } if (!enableVHSScanlineDistortion) { ScreenMaterial.SetFloat("_enableScanlineDistortion", 0f); } if (!isRoomSpecific && (int)Application.platform == 2) { ScreenMaterial2 = new Material(ExpandAssets.LoadShaderAsset("ExpandChromaKey")); ScreenMaterial2.SetColor("_ChromaKey", new Color(0f, 1f, 0f)); ScreenMaterial2.SetFloat("_Sensitivity", 0.02f); ScreenMaterial2.SetFloat("_Smooth", 0.25f); TexturePlayer = ((Component)this).GetComponent(); TexturePlayer.clip = OldFilmClip; TexturePlayer.isLooping = true; TexturePlayer.renderMode = (VideoRenderMode)4; TexturePlayer.Play(); ScreenMaterial2.SetTexture("_OverlayTex", TexturePlayer.texture); } Pixelator.Instance.SetFreezeFramePower(1f, false); break; case ShaderType.VHSBasic: ScreenMaterial = new Material(ExpandAssets.LoadShaderAsset("ExpandVHSPostProcessEffect")); if (!Object.op_Implicit((Object)(object)VHSScreenTexture)) { VHSScreenTexture = ExpandAssets.LoadAsset("EmptyVHSTexture"); } ScreenMaterial.SetTexture("_VHSTex", (Texture)(object)VHSScreenTexture); if (!enableVHSScanlineDistortion) { ScreenMaterial.SetFloat("_enableScanlineDistortion", 0f); } m_colorBleedToggle = 0f; if (enableVHSColorBleed) { m_colorBleedToggle = 1f; } break; case ShaderType.Glitch: ScreenMaterial = new Material(ExpandAssets.LoadShaderAsset("ExpandGlitchScreen")); ScreenMaterial.SetTexture("_GlitchMap", (Texture)(object)ExpandAssets.LoadAsset(GlitchMapTexture)); GlitchRandom = Random.Range(-1f, 1f); ScreenMaterial.SetFloat("_GlitchAmount", Mathf.Clamp(GlitchAmount, 0f, 1f)); ScreenMaterial.SetFloat("_GlitchRandom", GlitchRandom); break; case ShaderType.Scanlines: ScreenMaterial = new Material(ExpandAssets.LoadShaderAsset("ExpandScanlines")); ScreenMaterial.SetInt("_ValueX", ScanlineThickness); ScreenMaterial.SetFloat("_Intensity", ScanlineIntensity); break; case ShaderType.CRT: ScreenMaterial = new Material(ExpandAssets.LoadShaderAsset("ExpandCRT")); ScreenMaterial.SetFloat("u_time", Time.fixedTime); ScreenMaterial.SetFloat("u_bend", bend); ScreenMaterial.SetFloat("u_scanline_size_1", scanlineSize1); ScreenMaterial.SetFloat("u_scanline_speed_1", scanlineSpeed1); ScreenMaterial.SetFloat("u_scanline_size_2", scanlineSize2); ScreenMaterial.SetFloat("u_scanline_speed_2", scanlineSpeed2); ScreenMaterial.SetFloat("u_scanline_amount", scanlineAmount); ScreenMaterial.SetFloat("u_vignette_size", vignetteSize); ScreenMaterial.SetFloat("u_vignette_smoothness", vignetteSmoothness); ScreenMaterial.SetFloat("u_vignette_edge_round", vignetteEdgeRound); ScreenMaterial.SetFloat("u_noise_size", noiseSize); ScreenMaterial.SetFloat("u_noise_amount", noiseAmount); ScreenMaterial.SetVector("u_red_offset", Vector4.op_Implicit(redOffset)); ScreenMaterial.SetVector("u_blue_offset", Vector4.op_Implicit(blueOffset)); ScreenMaterial.SetVector("u_green_offset", Vector4.op_Implicit(greenOffset)); break; } if (isRoomSpecific && !ParentRoomIsSecretGlitchRoom) { if (UseCorruptionAmbience) { AkSoundEngine.PostEvent("Play_EX_CorruptionAmbience_01", ((Component)this).gameObject); } } else { if (shaderType == ShaderType.VHSOldFilm && (int)Application.platform == 2) { Pixelator.Instance.RegisterAdditionalRenderPass(ScreenMaterial2); } Pixelator.Instance.RegisterAdditionalRenderPass(ScreenMaterial); m_MaterialRegistered = true; } m_SetupComplete = true; } private void Update() { if (!m_SetupComplete) { return; } if (isRoomSpecific && ParentRoom != null) { PlayerController primaryPlayer = GameManager.Instance.PrimaryPlayer; if (ParentRoom != primaryPlayer.CurrentRoom) { if (m_MaterialRegistered) { Pixelator.Instance.DeregisterAdditionalRenderPass(ScreenMaterial); m_MaterialRegistered = false; } return; } if (!m_MaterialRegistered) { Pixelator.Instance.RegisterAdditionalRenderPass(ScreenMaterial); m_MaterialRegistered = true; } } switch (shaderType) { case ShaderType.VHS: ScreenMaterial.SetTexture("_VHSTex", TexturePlayer.texture); if (m_yScanline >= 1f) { m_yScanline = Random.value; } if (m_xScanline <= 0f || (double)Random.value < 0.05) { m_xScanline = Random.value; } m_yScanline += BraveTime.DeltaTime * 0.01f; m_xScanline -= BraveTime.DeltaTime * 0.1f; m_xShiftIntensity = Random.Range(250, 500); m_xShift = Random.Range(0f, 0.001f); ScreenMaterial.SetFloat("_yScanline", m_yScanline); ScreenMaterial.SetFloat("_xScanline", m_xScanline); ScreenMaterial.SetFloat("_xShift", m_xShift); ScreenMaterial.SetFloat("_xShiftIntensity", m_xShiftIntensity); ScreenMaterial.SetFloat("_colorBleedToggle", m_colorBleedToggle); break; case ShaderType.VHSOldFilm: m_xShiftIntensity = Random.Range(150, 500); m_xShift = Random.Range(0f, 0.002f); m_xScanline = Random.Range(0.1f, 0.3f); m_yScanline = Random.Range(0.2f, 0.8f); ScreenMaterial.SetFloat("_xScanline", m_xScanline); ScreenMaterial.SetFloat("_yScanline", m_yScanline); ScreenMaterial.SetFloat("_xShift", m_xShift); ScreenMaterial.SetFloat("_xShiftIntensity", m_xShiftIntensity); ScreenMaterial.SetFloat("_colorBleedToggle", m_colorBleedToggle); if (!isRoomSpecific) { ScreenMaterial2.SetTexture("_OverlayTex", TexturePlayer.texture); } break; case ShaderType.VHSBasic: if (enableVHSScanlineDistortion) { if (m_yScanline >= 1f) { m_yScanline = Random.value; } m_yScanline += BraveTime.DeltaTime * 0.01f; ScreenMaterial.SetFloat("_yScanline", m_yScanline); } m_xScanline = Random.Range(0.3f, 0.45f); m_xShiftIntensity = Random.Range(700, 950); m_xShift = Random.Range(0f, 0.0009f); ScreenMaterial.SetFloat("_xScanline", m_xScanline); ScreenMaterial.SetFloat("_xShift", m_xShift); ScreenMaterial.SetFloat("_xShiftIntensity", m_xShiftIntensity); ScreenMaterial.SetFloat("_colorBleedToggle", m_colorBleedToggle); break; case ShaderType.Glitch: if (!GlitchUpdatedExternally) { if (GlitchUpdateFrequencyIsRandom | (Random.value < 0.4f)) { if (Random.value < 0.3f) { ScreenMaterial.SetFloat("_GlitchAmount", Mathf.Clamp(Random.Range(0f, 0.05f), 0f, 1f)); } else { ScreenMaterial.SetFloat("_GlitchAmount", Mathf.Clamp(GlitchAmount, 0f, 1f)); } if (Random.value < GlitchUpdateFrequency) { GlitchRandom = Random.Range(-1f, 1f); ScreenMaterial.SetFloat("_GlitchRandom", GlitchRandom); } } } else { ScreenMaterial.SetFloat("_GlitchAmount", Mathf.Clamp(GlitchAmount, 0f, 1f)); ScreenMaterial.SetFloat("_GlitchRandom", GlitchRandom); } break; case ShaderType.CRT: ScreenMaterial.SetFloat("u_time", Time.fixedTime); break; case ShaderType.Scanlines: break; } } protected override void OnDestroy() { //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Invalid comparison between Unknown and I4 try { switch (shaderType) { case ShaderType.VHS: TexturePlayer.Stop(); break; case ShaderType.VHSOldFilm: Pixelator.Instance.ClearFreezeFrame(); TexturePlayer.Stop(); break; } m_SetupComplete = false; if (m_MaterialRegistered) { Pixelator.Instance.DeregisterAdditionalRenderPass(ScreenMaterial); if (shaderType == ShaderType.VHSOldFilm && (int)Application.platform == 2) { Pixelator.Instance.DeregisterAdditionalRenderPass(ScreenMaterial2); } } ((BraveBehaviour)this).OnDestroy(); } catch (Exception) { } } } [RequireComponent(typeof(GenericIntroDoer))] public class ExpandGungeoneerMimicIntroDoer : SpecificIntroDoer { public GameObject MirrorBase; public GameObject MirrorShatterFX; public GameObject ShatterSystem; public bool m_finished; private bool m_MirrorHasShattered; private ExpandGungeoneerMimicBossController m_GungeoneerMimicController; private AIActor m_AIActor; public override bool IsIntroFinished => m_finished; public void Start() { //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) m_AIActor = ((BraveBehaviour)this).aiActor; ((BraveBehaviour)this).aiActor.AdditionalSafeItemDrops = new List(); if (!GameStatsManager.HasInstance | !GameStatsManager.Instance.IsRainbowRun) { m_AIActor.AdditionalSafeItemDrops.Add((PickupObject)(object)Mimiclay.MimiclayObject.GetComponent()); } GameManager instance = GameManager.Instance; if (instance != null && instance.Dungeon?.tileIndices.tilesetId == (ValidTilesets?)1024) { ((BraveBehaviour)this).aiActor.AdditionalSafeItemDrops.Add(PickupObjectDatabase.GetById(727)); } m_GungeoneerMimicController = ((Component)m_AIActor).gameObject.GetComponent(); } private void DoInitialConfiguration(PlayerController player) { //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_010c: 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_0141: Expected I4, but got Unknown //IL_0456: Unknown result type (might be due to invalid IL or missing references) //IL_0465: Unknown result type (might be due to invalid IL or missing references) //IL_046a: Unknown result type (might be due to invalid IL or missing references) //IL_046f: Unknown result type (might be due to invalid IL or missing references) //IL_0491: Unknown result type (might be due to invalid IL or missing references) //IL_0496: Unknown result type (might be due to invalid IL or missing references) //IL_04dd: Unknown result type (might be due to invalid IL or missing references) //IL_04e2: Unknown result type (might be due to invalid IL or missing references) //IL_04e7: Unknown result type (might be due to invalid IL or missing references) //IL_04ec: Unknown result type (might be due to invalid IL or missing references) ((BraveBehaviour)m_AIActor).sprite.SetSprite(((BraveBehaviour)player).sprite.Collection, ((BraveBehaviour)player).sprite.GetCurrentSpriteDef().name); ExpandUtility.DuplicateSprite(((Component)((BraveBehaviour)m_AIActor).aiShooter.handObject).gameObject.AddComponent(), ((Component)player.primaryHand).gameObject.GetComponent()); ((BraveBehaviour)((BraveBehaviour)m_AIActor).aiShooter.handObject).sprite.SetSprite(((BraveBehaviour)player.primaryHand).sprite.Collection, ((BraveBehaviour)player.primaryHand).sprite.GetCurrentSpriteDef().name); Texture2D val = null; if (player.BosscardSprites != null && player.BosscardSprites.Count > 0) { val = ExpandUtility.FlipTexture(player.BosscardSprites[0]); } Texture2D val2 = ExpandAssets.LoadAsset("MimicInMirror_BossCardBackground"); Texture2D val3 = null; val3 = ((!Object.op_Implicit((Object)(object)val)) ? val2 : ExpandUtility.CombineTextures(val2, val)); GenericIntroDoer component = ((Component)this).gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)val3)) { component.portraitSlideSettings.bossArtSprite = (Texture)(object)val3; } PlayableCharacters characterIdentity = player.characterIdentity; switch ((int)characterIdentity) { case 8: m_AIActor.EnemySwitchState = "Metal_Bullet_Man"; break; case 1: m_AIActor.EnemySwitchState = "Convict"; break; case 7: m_AIActor.EnemySwitchState = "Cultist"; break; case 4: m_AIActor.EnemySwitchState = "Cosmonaut"; break; case 9: m_AIActor.EnemySwitchState = "Convict"; ExpandShaders.ApplyParadoxPlayerShader(((BraveBehaviour)m_AIActor).sprite); break; case 6: m_AIActor.EnemySwitchState = "Guide"; break; case 10: m_AIActor.EnemySwitchState = "Gunslinger"; break; case 3: m_AIActor.EnemySwitchState = "Ninja"; break; case 0: m_AIActor.EnemySwitchState = "Rogue"; break; case 2: m_AIActor.EnemySwitchState = "Robot"; break; case 5: m_AIActor.EnemySwitchState = "Marine"; break; default: m_AIActor.EnemySwitchState = "Gun Cultist"; break; } List list = new List(); tk2dSpriteAnimationClip[] clips = ((BraveBehaviour)player).spriteAnimator.Library.clips; foreach (tk2dSpriteAnimationClip val4 in clips) { if (string.IsNullOrEmpty(val4.name)) { continue; } if (val4.name.ToLower() == "dodge") { list.Add(val4); if (val4.frames != null && val4.frames.Length != 0 && !player.UseArmorlessAnim) { ((BraveBehaviour)m_AIActor).sprite.SetSprite(val4.frames[0].spriteId); } } else if (val4.name.ToLower() == "dodge_armorless") { list.Add(val4); if (val4.frames != null && val4.frames.Length != 0 && player.UseArmorlessAnim) { ((BraveBehaviour)m_AIActor).sprite.SetSprite(val4.frames[0].spriteId); } } else if (val4.name.ToLower() == "run_down") { list.Add(val4); } else if (val4.name.ToLower() == "run_down_armorless") { list.Add(val4); } else if (val4.name.ToLower() == "death_shot") { list.Add(val4); } else if (val4.name.ToLower() == "death_shot_armorless") { list.Add(val4); } } if (list.Count > 0) { if (!Object.op_Implicit((Object)(object)((BraveBehaviour)m_AIActor).spriteAnimator.Library)) { ((BraveBehaviour)m_AIActor).spriteAnimator.Library = ((Component)m_AIActor).gameObject.AddComponent(); } ((BraveBehaviour)m_AIActor).spriteAnimator.Library.clips = list.ToArray(); } MirrorController component2 = ExpandPrefabs.CursedMirror.GetComponent(); MirrorBase = Object.Instantiate(ExpandPrefabs.DoppelgunnerMirror, ((Component)this).gameObject.transform.position - new Vector3(0.25f, 1f), Quaternion.identity); ShatterSystem = Object.Instantiate(component2.ShatterSystem, MirrorBase.transform.position, Quaternion.identity); ShatterSystem.SetActive(false); ShatterSystem.transform.parent = MirrorBase.transform; MirrorShatterFX = Object.Instantiate(ExpandPrefabs.DoppelgunnerMirrorFX, MirrorBase.transform.position - Vector3.one, Quaternion.identity); MirrorShatterFX.SetActive(false); } public void Update() { } public override void PlayerWalkedIn(PlayerController player, List animators) { if (Object.op_Implicit((Object)(object)m_AIActor)) { if (Object.op_Implicit((Object)(object)m_GungeoneerMimicController)) { m_GungeoneerMimicController.m_Player = player; m_GungeoneerMimicController.Init(); } ((DungeonPlaceableBehaviour)m_AIActor).GetAbsoluteParentRoom().CompletelyPreventLeaving = true; m_AIActor.ToggleRenderers(false); ((GameActor)m_AIActor).IsGone = true; m_AIActor.State = (ActorState)0; } DoInitialConfiguration(player); if (Object.op_Implicit((Object)(object)MirrorBase) && Object.op_Implicit((Object)(object)MirrorBase.GetComponent())) { tk2dSprite component = MirrorBase.GetComponent(); ((tk2dBaseSprite)component).HeightOffGround = ((tk2dBaseSprite)component).HeightOffGround + 2f; ((tk2dBaseSprite)MirrorBase.GetComponent()).UpdateZDepth(); } m_MirrorHasShattered = false; } public override void StartIntro(List animators) { ((MonoBehaviour)this).StartCoroutine(DoIntro()); } public override void OnBossCard() { } private IEnumerator DoIntro() { yield return ((MonoBehaviour)this).StartCoroutine(((SpecificIntroDoer)this).TimeInvariantWait(1f)); tk2dSpriteAnimator mirrorAnimation = null; if (Object.op_Implicit((Object)(object)MirrorBase)) { mirrorAnimation = MirrorBase.GetComponent(); } if (Object.op_Implicit((Object)(object)mirrorAnimation)) { mirrorAnimation.Play("PlayerMimicFadeIn"); while (mirrorAnimation.IsPlaying("PlayerMimicFadeIn")) { yield return null; } yield return ((MonoBehaviour)this).StartCoroutine(((SpecificIntroDoer)this).TimeInvariantWait(1f)); } yield return ((MonoBehaviour)this).StartCoroutine(DoTalk(new Vector3(0.5f, 1.25f))); yield return ((MonoBehaviour)this).StartCoroutine(((SpecificIntroDoer)this).TimeInvariantWait(0.6f)); if (Object.op_Implicit((Object)(object)mirrorAnimation)) { mirrorAnimation.Play("MirrorGlassCrack"); AkSoundEngine.PostEvent("Play_OBJ_crystal_shatter_01", ((Component)GameManager.Instance.MainCameraController).gameObject); AkSoundEngine.PostEvent("Play_OBJ_pot_shatter_01", ((Component)GameManager.Instance.MainCameraController).gameObject); AkSoundEngine.PostEvent("Play_OBJ_glass_shatter_01", ((Component)GameManager.Instance.MainCameraController).gameObject); while (mirrorAnimation.IsPlaying("MirrorGlassCrack")) { yield return null; } AkSoundEngine.PostEvent("Play_OBJ_mirror_shatter_01", ((Component)GameManager.Instance.MainCameraController).gameObject); if (Object.op_Implicit((Object)(object)MirrorBase.GetComponent())) { ((tk2dBaseSprite)MirrorBase.GetComponent()).SetSprite("PlayerMimicMirror_Broken"); } if (Object.op_Implicit((Object)(object)ShatterSystem)) { ShatterSystem.SetActive(true); } if (Object.op_Implicit((Object)(object)MirrorShatterFX)) { MirrorShatterFX.SetActive(true); MirrorShatterFX.GetComponent().PlayAndDestroyObject("PlayerMimicShatter", (Action)null); } m_MirrorHasShattered = true; yield return ((MonoBehaviour)this).StartCoroutine(WalkThroughMirror()); } else { yield return ((MonoBehaviour)this).StartCoroutine(WalkThroughMirror()); } m_finished = true; } private IEnumerator DoTalk(Vector3 dialogBoxOffset) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) ((Component)this).GetComponent().SuppressSkipping = true; TextBoxManager.TIME_INVARIANT = true; List list = new List { 1, 2, 3, 4 }; int RandomString = BraveUtility.RandomElement(list); string plaintext = "This Gungeon ain't big enough for both of us!"; string DialogOption2 = "I will kill you twice!"; string DialogOption2_Line2 = "First I will kill you here."; string DialogOption2_Line3 = "Then I will get the bullet and kill your past!"; string DialogOption3 = "I shall become the ultimate clone!"; string DialogOption3_Line2 = "I will kill you here so that I can take your place."; string DialogOption3_Line3 = "Your fellow Gungeoneers will suspect nothing!"; string DialogOption4 = "You can kill your past, but how about your present?"; switch (RandomString) { case 1: yield return ((MonoBehaviour)this).StartCoroutine(TalkRaw(plaintext, dialogBoxOffset)); break; case 2: yield return ((MonoBehaviour)this).StartCoroutine(TalkRaw(DialogOption2, dialogBoxOffset)); yield return ((MonoBehaviour)this).StartCoroutine(TalkRaw(DialogOption2_Line2, dialogBoxOffset)); yield return ((MonoBehaviour)this).StartCoroutine(TalkRaw(DialogOption2_Line3, dialogBoxOffset)); break; case 3: yield return ((MonoBehaviour)this).StartCoroutine(TalkRaw(DialogOption3, dialogBoxOffset)); yield return ((MonoBehaviour)this).StartCoroutine(TalkRaw(DialogOption3_Line2, dialogBoxOffset)); yield return ((MonoBehaviour)this).StartCoroutine(TalkRaw(DialogOption3_Line3, dialogBoxOffset)); break; case 4: yield return ((MonoBehaviour)this).StartCoroutine(TalkRaw(DialogOption4, dialogBoxOffset)); break; } yield return null; TextBoxManager.TIME_INVARIANT = false; ((Component)this).GetComponent().SuppressSkipping = false; } private IEnumerator TalkRaw(string plaintext, Vector3 DialogBoxOffset) { //IL_0015: 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) TextBoxManager.ShowTextBox(((BraveBehaviour)this).transform.position + DialogBoxOffset, ((BraveBehaviour)this).transform, 5f, plaintext, "playermimicboss", false, (BoxSlideOrientation)0, false, false); bool advancedPressed = false; while (!advancedPressed) { advancedPressed = BraveInput.GetInstanceForPlayer(0).WasAdvanceDialoguePressed() || BraveInput.GetInstanceForPlayer(1).WasAdvanceDialoguePressed(); yield return null; } TextBoxManager.ClearTextBox(((BraveBehaviour)this).transform); } private IEnumerator WalkThroughMirror() { float time = 1.5f; ((GameActor)m_AIActor).IsGone = false; m_AIActor.State = (ActorState)1; ((BraveBehaviour)m_AIActor).specRigidbody.CollideWithOthers = true; m_AIActor.ToggleRenderers(true); if (Object.op_Implicit((Object)(object)MirrorBase) && Object.op_Implicit((Object)(object)MirrorBase.GetComponent())) { tk2dSprite component = MirrorBase.GetComponent(); ((tk2dBaseSprite)component).HeightOffGround = ((tk2dBaseSprite)component).HeightOffGround - 2f; ((tk2dBaseSprite)MirrorBase.GetComponent()).UpdateZDepth(); } if (m_GungeoneerMimicController.m_Player.UseArmorlessAnim) { ((BraveBehaviour)m_AIActor).spriteAnimator.Play("dodge_armorless"); while (((BraveBehaviour)m_AIActor).spriteAnimator.IsPlaying("dodge_armorless")) { float num = 0.025f; Transform transform = ((Component)m_AIActor).gameObject.transform; transform.position -= new Vector3(0f, num); ((BraveBehaviour)m_AIActor).specRigidbody.Reinitialize(); ((BraveBehaviour)m_AIActor).spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME); yield return null; } } else { ((BraveBehaviour)m_AIActor).spriteAnimator.Play("dodge"); while (((BraveBehaviour)m_AIActor).spriteAnimator.IsPlaying("dodge")) { float num2 = 0.05f; Transform transform2 = ((Component)m_AIActor).gameObject.transform; transform2.position -= new Vector3(0f, num2); ((BraveBehaviour)m_AIActor).specRigidbody.Reinitialize(); ((BraveBehaviour)m_AIActor).spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME); yield return null; } } ((BraveBehaviour)m_AIActor).spriteAnimator.Play("run_down"); for (float elapsed = 0f; elapsed < time; elapsed += GameManager.INVARIANT_DELTA_TIME) { float num3 = 0.025f; ((BraveBehaviour)m_AIActor).spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME); Transform transform3 = ((Component)m_AIActor).gameObject.transform; transform3.position -= new Vector3(0f, num3); ((BraveBehaviour)m_AIActor).specRigidbody.Reinitialize(); yield return null; } } public override void EndIntro() { //IL_0053: 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_0067: Unknown result type (might be due to invalid IL or missing references) m_finished = true; ((MonoBehaviour)this).StopAllCoroutines(); m_AIActor.ToggleRenderers(true); ((BraveBehaviour)m_AIActor).specRigidbody.CollideWithOthers = true; ((GameActor)m_AIActor).IsGone = false; m_AIActor.State = (ActorState)2; ((BraveBehaviour)m_AIActor).aiShooter.AimAtPoint(((GameActor)m_AIActor).CenterPosition - new Vector2(0f, -2f)); ((Component)((BraveBehaviour)m_AIActor).aiShooter.gunAttachPoint).gameObject.SetActive(true); if (Object.op_Implicit((Object)(object)MirrorBase) && Object.op_Implicit((Object)(object)MirrorBase.GetComponent())) { tk2dSprite component = MirrorBase.GetComponent(); ((tk2dBaseSprite)component).HeightOffGround = ((tk2dBaseSprite)component).HeightOffGround - 2f; ((tk2dBaseSprite)MirrorBase.GetComponent()).UpdateZDepth(); } if (Object.op_Implicit((Object)(object)m_GungeoneerMimicController)) { m_GungeoneerMimicController.ModifyCamera(value: true); m_GungeoneerMimicController.IntroDone = true; } if (!m_MirrorHasShattered) { if (Object.op_Implicit((Object)(object)MirrorBase.GetComponent())) { ((tk2dBaseSprite)MirrorBase.GetComponent()).SetSprite("PlayerMimicMirror_Broken"); } AkSoundEngine.PostEvent("Play_OBJ_mirror_shatter_01", ((Component)GameManager.Instance.MainCameraController).gameObject); if (Object.op_Implicit((Object)(object)MirrorShatterFX)) { MirrorShatterFX.SetActive(true); MirrorShatterFX.GetComponent().PlayAndDestroyObject("PlayerMimicShatter", (Action)null); } if (Object.op_Implicit((Object)(object)ShatterSystem)) { ShatterSystem.SetActive(true); ((MonoBehaviour)this).StartCoroutine(WaitForShatterParticles()); } } else { ((MonoBehaviour)this).StartCoroutine(WaitForShatterParticles()); } } private IEnumerator WaitForShatterParticles() { yield return (object)new WaitForSeconds(2.5f); ShatterSystem.GetComponent().Pause(false); } protected override void OnDestroy() { ((SpecificIntroDoer)this).OnDestroy(); } } public class ExpandGungeoneerMimicBossController : BraveBehaviour { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static CellValidator <>9__45_0; internal bool b__45_0(IntVector2 c) { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_004c: 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_005f: Invalid comparison between Unknown and I4 //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Invalid comparison between Unknown and I4 for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { if (!GameManager.Instance.Dungeon.data.CheckInBoundsAndValid(c.x + i, c.y + j) | ((int)GameManager.Instance.Dungeon.data[c.x + i, c.y + j].type == 4) | GameManager.Instance.Dungeon.data[c.x + i, c.y + j].isOccupied | ((int)GameManager.Instance.Dungeon.data[c.x + i, c.y + j].type == 1)) { return false; } } } return true; } } public PlayerController m_Player; public bool IntroDone; public bool MovedToCenter; public bool UsesRotationInsteadOfInversion; public bool UseGlitchShader; public bool EnableFallBackAttacks; public bool IsConfigured; public bool FireOverride; public float RotationAngle; public List m_SpecialChargeWeapons; private List m_StartingGuns; private AIActor m_AIActor; private PortableShip m_PortableShipItem; private bool m_HasBeenActivated; private bool m_DelayedActive; private bool m_MirrorGunToggle; private bool m_IsPathfindingToCenter; private bool m_RandomMovement; private bool m_IsFiring; private bool m_PauseAutoFire; private float m_RandomRefresh; private float m_RandomFireRate; private float m_ChargingTime; private float m_BeamSweepAngle; private bool m_BeamSweepingBack; private bool m_InvertSweepAngle; private bool m_IsDisconnected; private bool m_CameraChanged; private RoomHandler m_ParentRoom; private ExpandGungeoneerMimicIntroDoer m_IntroDoer; protected bool m_CanAttack { get { if ((!m_Player.IsDodgeRolling || m_Player.IsSlidingOverSurface) && !m_IsDisconnected && !m_Player.IsGunLocked && m_Player.CurrentStoneGunTimer <= 0f && !((GameActor)m_Player).CurrentGun.IsReloading && m_MirrorGunToggle) { if (Object.op_Implicit((Object)(object)m_AIActor) && Object.op_Implicit((Object)(object)((BraveBehaviour)m_AIActor).aiShooter.CurrentGun)) { return !((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.HasShootStyle((ShootStyle)2); } return false; } return false; } } public ExpandGungeoneerMimicBossController() { IntroDone = true; MovedToCenter = false; RotationAngle = 90f; UsesRotationInsteadOfInversion = false; UseGlitchShader = false; EnableFallBackAttacks = true; IsConfigured = false; FireOverride = false; m_SpecialChargeWeapons = new List { 332, 393, 541, 719, 393, 8, 37, 200, 210, 327, 328, 358, 359, 370, 382, 478, 535, 382, 686, 688, 693, 748 }; m_HasBeenActivated = false; m_DelayedActive = false; m_MirrorGunToggle = true; m_IsPathfindingToCenter = false; m_RandomMovement = false; m_BeamSweepingBack = false; m_InvertSweepAngle = false; m_CameraChanged = false; m_IsFiring = false; m_PauseAutoFire = false; m_RandomRefresh = 1f; m_RandomFireRate = 0.5f; m_ChargingTime = 0f; m_BeamSweepAngle = 0f; m_StartingGuns = new List { 51, 15 }; m_IsDisconnected = false; } private bool m_HasShootStyle(ShootStyle ShootStyle) { //IL_004f: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)m_AIActor) | !Object.op_Implicit((Object)(object)((BraveBehaviour)m_AIActor).aiShooter) | !Object.op_Implicit((Object)(object)((BraveBehaviour)m_AIActor).aiShooter.CurrentGun)) { return false; } return ((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.HasShootStyle(ShootStyle); } public void Init() { if (!Object.op_Implicit((Object)(object)m_Player)) { m_Player = GameManager.Instance.PrimaryPlayer; } m_AIActor = ((BraveBehaviour)this).aiActor; m_IntroDoer = ((Component)this).gameObject.GetComponent(); if (!Object.op_Implicit((Object)(object)m_AIActor)) { Object.Destroy((Object)(object)((Component)this).gameObject); return; } m_RandomRefresh = Random.Range(15, 30); m_RandomFireRate = Random.Range(0.4f, 0.8f); m_ParentRoom = ((DungeonPlaceableBehaviour)m_AIActor).GetAbsoluteParentRoom(); if (m_StartingGuns != null && m_StartingGuns.Count > 0) { foreach (int startingGun in m_StartingGuns) { ChangeOrAddGun(((BraveBehaviour)m_AIActor).aiShooter.Inventory, startingGun); } } if (UseGlitchShader) { SetupPlayerGlitchShader(); } IsConfigured = true; ExpandStaticReferenceManager.CurrentGungeoneerMimic = this; } public void SetupPlayerGlitchShader() { float glitchInterval = Random.Range(0.02f, 0.04f); float dispProbability = Random.Range(0.06f, 0.08f); float dispIntensity = Random.Range(0.07f, 0.1f); float colorProbability = Random.Range(0.035f, 0.1f); float colorIntensity = Random.Range(0.05f, 0.1f); ExpandShaders.Instance.ApplySuperGlitchShader(((BraveBehaviour)m_AIActor).sprite, ((BraveBehaviour)m_Player).sprite, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); } public void ModifyCamera(bool value) { //IL_0066: 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_007a: Unknown result type (might be due to invalid IL or missing references) //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 (!GameManager.HasInstance || GameManager.Instance.IsLoadingLevel || GameManager.IsReturningToBreach) { return; } CameraController mainCameraController = GameManager.Instance.MainCameraController; if (Object.op_Implicit((Object)(object)mainCameraController)) { if (value && m_ParentRoom != null) { m_CameraChanged = true; mainCameraController.OverrideZoomScale = 0.55f; mainCameraController.SetManualControl(true, true); mainCameraController.StopTrackingPlayer(); mainCameraController.OverridePosition = Vector2.op_Implicit(m_ParentRoom.area.Center + new Vector2(0f, 0.75f)); } else if (!value) { m_CameraChanged = false; mainCameraController.OverrideZoomScale = 1f; mainCameraController.SetManualControl(false, true); mainCameraController.StartTrackingPlayer(); } } } private void Update() { //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0058: 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_0482: Unknown result type (might be due to invalid IL or missing references) try { if (!IsConfigured) { return; } if (!m_HasBeenActivated && Object.op_Implicit((Object)(object)m_Player) && ((DungeonPlaceableBehaviour)m_Player).GetAbsoluteParentRoom() != null && Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)this).transform.position) != null && ((DungeonPlaceableBehaviour)m_Player).GetAbsoluteParentRoom() == Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)this).transform.position)) { m_Player.PostProcessBeam += HandleBeam; ((BraveBehaviour)m_AIActor).specRigidbody.CollideWithTileMap = true; m_AIActor.BehaviorOverridesVelocity = true; m_HasBeenActivated = true; ((MonoBehaviour)this).StartCoroutine(DelayedActivate()); } if (!Object.op_Implicit((Object)(object)ExpandStaticReferenceManager.CurrentGungeoneerMimic)) { ExpandStaticReferenceManager.CurrentGungeoneerMimic = this; } if (m_HasBeenActivated && (Object)(object)m_Player == (Object)null) { m_Player = GameManager.Instance.BestActivePlayer; } if (!m_IntroDoer.m_finished | !IntroDone | ((BraveBehaviour)m_AIActor).healthHaver.IsDead | ((BraveBehaviour)m_Player).spriteAnimator.IsPlaying("death_shot") | ((BraveBehaviour)m_Player).spriteAnimator.IsPlaying("death_shot_armorless")) { return; } if (!MovedToCenter) { m_IsPathfindingToCenter = true; MovedToCenter = true; ((MonoBehaviour)this).StartCoroutine(PathBackToCenter(m_AIActor, m_ParentRoom.area.UnitCenter)); } if (!m_DelayedActive) { return; } if (((Object)(object)m_AIActor.PlayerTarget == (Object)null) | ((Object)(object)m_AIActor.TargetRigidbody == (Object)null)) { m_AIActor.PlayerTarget = (GameActor)(object)m_Player; } if (Object.op_Implicit((Object)(object)m_Player) && Object.op_Implicit((Object)(object)m_AIActor)) { UpdateSprites(); if (((BraveBehaviour)m_AIActor).spriteAnimator.IsPlaying("run_down")) { ((BraveBehaviour)m_AIActor).spriteAnimator.Stop(); } } if (m_MirrorGunToggle) { if (((PickupObject)((BraveBehaviour)m_AIActor).aiShooter.EquippedGun).PickupObjectId != ((PickupObject)((GameActor)m_Player).CurrentGun).PickupObjectId && ExpandLists.AllowedMimicBossWeapons.Contains(((PickupObject)((GameActor)m_Player).CurrentGun).PickupObjectId)) { ChangeOrAddGun(((BraveBehaviour)m_AIActor).aiShooter.Inventory, ((PickupObject)((GameActor)m_Player).CurrentGun).PickupObjectId); } else if (!ExpandLists.AllowedMimicBossWeapons.Contains(((PickupObject)((GameActor)m_Player).CurrentGun).PickupObjectId) && ((PickupObject)((BraveBehaviour)m_AIActor).aiShooter.CurrentGun).PickupObjectId != m_StartingGuns[0]) { ChangeOrAddGun(((BraveBehaviour)m_AIActor).aiShooter.Inventory, m_StartingGuns[0]); } if (((PickupObject)((BraveBehaviour)m_AIActor).aiShooter.CurrentGun).PickupObjectId == ((PickupObject)((GameActor)m_Player).CurrentGun).PickupObjectId) { if (((Behaviour)((BraveBehaviour)((BraveBehaviour)m_AIActor).aiShooter.CurrentGun).spriteAnimator).enabled) { ((Behaviour)((BraveBehaviour)((BraveBehaviour)m_AIActor).aiShooter.CurrentGun).spriteAnimator).enabled = false; } if (((BraveBehaviour)((BraveBehaviour)m_AIActor).aiShooter.CurrentGun).sprite.spriteId != ((BraveBehaviour)((GameActor)m_Player).CurrentGun).sprite.spriteId) { ((BraveBehaviour)((BraveBehaviour)m_AIActor).aiShooter.CurrentGun).sprite.SetSprite(((BraveBehaviour)((GameActor)m_Player).CurrentGun).sprite.spriteId); } } if (!m_IsFiring && m_CanAttack && (m_HasShootStyle((ShootStyle)3) | m_SpecialChargeWeapons.Contains(((PickupObject)((BraveBehaviour)m_AIActor).aiShooter.CurrentGun).PickupObjectId)) && (FireOverride | ((GameActor)m_Player).CurrentGun.IsFiring | ((GameActor)m_Player).CurrentGun.IsCharging)) { m_IsFiring = true; ((MonoBehaviour)this).StartCoroutine(HandleFireGun()); } else if ((FireOverride | m_Player.IsFiring | ((GameActor)m_Player).CurrentGun.IsCharging) && !m_IsFiring && m_CanAttack && !((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.IsHeroSword) { ((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.Attack((ProjectileData)null, (GameObject)null); ((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.ClearReloadData(); m_IsFiring = false; } } else { if (m_MirrorGunToggle) { return; } if (!m_StartingGuns.Contains(((PickupObject)((BraveBehaviour)m_AIActor).aiShooter.CurrentGun).PickupObjectId)) { ChangeOrAddGun(((BraveBehaviour)m_AIActor).aiShooter.Inventory, BraveUtility.RandomElement(m_StartingGuns)); } if ((((PickupObject)((BraveBehaviour)m_AIActor).aiShooter.CurrentGun).PickupObjectId != 15) | m_PauseAutoFire) { m_RandomFireRate -= BraveTime.DeltaTime; } else { m_RandomFireRate += BraveTime.DeltaTime; } if (m_PauseAutoFire && m_RandomFireRate <= 0f) { m_PauseAutoFire = false; } if (m_RandomFireRate <= 0f && ((PickupObject)((BraveBehaviour)m_AIActor).aiShooter.CurrentGun).PickupObjectId != 15) { if (!((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.IsFiring) { FireStartingGun(((BraveBehaviour)m_AIActor).aiShooter.CurrentGun, overrideCoolDown: true); } m_RandomFireRate = Random.Range(0.6f, 0.85f); } else if (!m_PauseAutoFire && ((PickupObject)((BraveBehaviour)m_AIActor).aiShooter.CurrentGun).PickupObjectId == 15) { if (((PickupObject)((BraveBehaviour)m_AIActor).aiShooter.CurrentGun).PickupObjectId == 15) { FireStartingGun(((BraveBehaviour)m_AIActor).aiShooter.CurrentGun); } if (m_RandomFireRate > 4f) { m_RandomFireRate = 2f; m_PauseAutoFire = true; } } else if (((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.IsFiring) { ((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.CeaseAttack(true, (ProjectileData)null); } } } catch (Exception ex) { if (ExpandSettings.debugMode) { Debug.LogException(ex); } } } private void LateUpdate() { //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_0179: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_039f: Unknown result type (might be due to invalid IL or missing references) //IL_03a9: Unknown result type (might be due to invalid IL or missing references) //IL_03ae: Unknown result type (might be due to invalid IL or missing references) //IL_0363: Unknown result type (might be due to invalid IL or missing references) //IL_0373: Unknown result type (might be due to invalid IL or missing references) //IL_0378: 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_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) try { if ((m_IsDisconnected | !IsConfigured | !m_DelayedActive) || (!m_IntroDoer.m_finished | !IntroDone | ((BraveBehaviour)m_AIActor).healthHaver.IsDead)) { return; } m_RandomRefresh -= BraveTime.DeltaTime; if (Object.op_Implicit((Object)(object)m_Player) && !Object.op_Implicit((Object)(object)m_PortableShipItem) && m_Player.activeItems != null && m_Player.activeItems.Count > 0) { for (int i = 0; i < m_Player.activeItems.Count; i++) { if (Object.op_Implicit((Object)(object)((Component)m_Player.activeItems[i]).gameObject.GetComponent())) { m_PortableShipItem = ((Component)m_Player.activeItems[i]).gameObject.GetComponent(); break; } } } if (!m_IsPathfindingToCenter && m_ParentRoom != null) { Vector2 unitCenter = m_ParentRoom.area.UnitCenter; float num = (float)m_ParentRoom.area.dimensions.x / 2f; float num2 = (float)m_ParentRoom.area.dimensions.y / 2f; Vector2 val = Vector2.op_Implicit(((Component)m_AIActor).gameObject.transform.position); if (((Vector2.Distance(val, unitCenter) > num) | (Vector2.Distance(val, unitCenter) > num2)) && !m_RandomMovement) { m_IsPathfindingToCenter = true; ((MonoBehaviour)this).StartCoroutine(PathBackToCenter(m_AIActor, unitCenter)); } } if (EnableFallBackAttacks && m_RandomRefresh <= 0f) { if (m_MirrorGunToggle) { m_MirrorGunToggle = false; m_RandomRefresh = Random.Range(15, 30); } else { m_MirrorGunToggle = true; m_RandomRefresh = Random.Range(10, 18); } } if (m_BeamSweepingBack) { m_BeamSweepAngle -= BraveTime.DeltaTime * 30f; if (m_BeamSweepAngle <= 0f) { m_BeamSweepingBack = false; if (!m_InvertSweepAngle) { m_InvertSweepAngle = true; } else if (m_InvertSweepAngle) { m_InvertSweepAngle = false; } } } else { m_BeamSweepAngle += BraveTime.DeltaTime * 30f; if (m_BeamSweepAngle >= 15f) { m_BeamSweepingBack = true; } } if (!Object.op_Implicit((Object)(object)m_Player) | (((DungeonPlaceableBehaviour)m_Player).GetAbsoluteParentRoom() == null) | (((DungeonPlaceableBehaviour)m_Player).GetAbsoluteParentRoom() != m_AIActor.ParentRoom)) { return; } if (m_MirrorGunToggle && m_RandomMovement) { m_RandomMovement = false; } else if (!m_MirrorGunToggle && !m_RandomMovement) { m_RandomMovement = true; ((MonoBehaviour)this).StartCoroutine(HandleRandomPathing(m_AIActor)); } if (!(m_IsPathfindingToCenter | m_RandomMovement | !m_MirrorGunToggle)) { if (!m_AIActor.BehaviorOverridesVelocity) { m_AIActor.BehaviorOverridesVelocity = true; } if (UsesRotationInsteadOfInversion) { m_AIActor.BehaviorVelocity = Vector3Extensions.XY(Quaternion.Euler(0f, 0f, RotationAngle) * Vector2.op_Implicit(m_AIActor.TargetRigidbody.Velocity)); } else { m_AIActor.BehaviorVelocity = m_AIActor.TargetRigidbody.Velocity * -1f; } } } catch (Exception ex) { if (ExpandSettings.debugMode) { Debug.LogException(ex); } } } public void ChangeOrAddGun(GunInventory gunInventory, int pickupObjectID) { FieldInfo field = typeof(GunInventory).GetField("m_currentGun", BindingFlags.Instance | BindingFlags.NonPublic); Gun currentGun = gunInventory.CurrentGun; if ((Object)(object)currentGun != (Object)null) { currentGun.CeaseAttack(false, (ProjectileData)null); currentGun.PostProcessProjectile = (Action)Delegate.Remove(currentGun.PostProcessProjectile, new Action(PostProcessEnemyProjectile)); ((Component)currentGun).gameObject.SetActive(false); } Gun val = null; if (gunInventory.AllGuns.Count > 0) { foreach (Gun allGun in gunInventory.AllGuns) { if (((PickupObject)allGun).PickupObjectId == pickupObjectID) { val = allGun; break; } } } if (!Object.op_Implicit((Object)(object)val)) { PickupObject byId = PickupObjectDatabase.GetById(pickupObjectID); val = Object.Instantiate((Gun)(object)((byId is Gun) ? byId : null)); ((Component)val).gameObject.SetActive(false); if (Object.op_Implicit((Object)(object)val)) { gunInventory.AddGunToInventory(val, true); Gun currentGun2 = gunInventory.CurrentGun; currentGun2.PostProcessProjectile = (Action)Delegate.Combine(currentGun2.PostProcessProjectile, new Action(PostProcessEnemyProjectile)); if (val.IsHeroSword && !val.HeroSwordDoesntBlank) { val.HeroSwordDoesntBlank = true; } } } else { field.SetValue(gunInventory, val); ((Component)gunInventory.CurrentGun).gameObject.SetActive(true); Gun currentGun3 = gunInventory.CurrentGun; currentGun3.PostProcessProjectile = (Action)Delegate.Combine(currentGun3.PostProcessProjectile, new Action(PostProcessEnemyProjectile)); if (val.IsHeroSword && !val.HeroSwordDoesntBlank) { val.HeroSwordDoesntBlank = true; } } } private void FireStartingGun(Gun currentGun, bool overrideCoolDown = false) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) currentGun.Attack((ProjectileData)null, (GameObject)null); if (overrideCoolDown) { currentGun.ClearCooldowns(); } currentGun.ClearReloadData(); } private void PostProcessEnemyProjectile(Projectile source) { if (!Object.op_Implicit((Object)(object)source) || m_IsDisconnected) { return; } if ((Object)(object)m_AIActor.TargetRigidbody != (Object)null) { ((BraveBehaviour)((BraveBehaviour)source).specRigidbody).specRigidbody.DeregisterSpecificCollisionException(m_AIActor.TargetRigidbody); } source.SetOwnerSafe((GameActor)(object)m_AIActor, ((GameActor)m_AIActor).ActorName); source.Shooter = ((BraveBehaviour)m_AIActor).specRigidbody; source.SetNewShooter(((BraveBehaviour)m_AIActor).specRigidbody); source.MakeLookLikeEnemyBullet(true); if (source.baseData != null) { if (!GameManager.IsTurboMode) { source.baseData.speed = source.baseData.speed / 1.2f; } else { source.baseData.speed = source.baseData.speed / 1.27f; } } } private void HandleBeam(BeamController obj) { //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_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0091: 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) //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) //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_0179: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: Unknown result type (might be due to invalid IL or missing references) //IL_01b1: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_01da: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: Unknown result type (might be due to invalid IL or missing references) //IL_022c: Unknown result type (might be due to invalid IL or missing references) //IL_0214: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)obj) && Object.op_Implicit((Object)(object)((BraveBehaviour)obj).projectile) && !m_IsDisconnected && m_MirrorGunToggle) { if ((Object)(object)m_AIActor.TargetRigidbody == (Object)null) { m_AIActor.PlayerTarget = (GameActor)(object)m_Player; } Vector2 worldCenter = ((BraveBehaviour)m_AIActor).sprite.WorldCenter; if (Object.op_Implicit((Object)(object)((GameActor)m_AIActor).CurrentGun)) { worldCenter = ((BraveBehaviour)((GameActor)m_AIActor).CurrentGun).sprite.WorldCenter; } GameObject obj2 = SpawnManager.SpawnProjectile(((Component)((BraveBehaviour)obj).projectile).gameObject, Vector2.op_Implicit(worldCenter), Quaternion.identity, true); Projectile component = obj2.GetComponent(); component.Owner = (GameActor)(object)m_AIActor; component.SetOwnerSafe((GameActor)(object)m_AIActor, ((GameActor)m_AIActor).ActorName); component.SetNewShooter(((BraveBehaviour)m_AIActor).specRigidbody); component.MakeLookLikeEnemyBullet(true); BeamController component2 = obj2.GetComponent(); BasicBeamController val = (BasicBeamController)(object)((component2 is BasicBeamController) ? component2 : null); if (Object.op_Implicit((Object)(object)val)) { val.SkipPostProcessing = true; } component2.Owner = (GameActor)(object)m_AIActor; component2.HitsPlayers = true; component2.HitsEnemies = false; if (component2.IgnoreRigidbodes == null) { component2.IgnoreRigidbodes = new List(); } if (!component2.IgnoreRigidbodes.Contains(((BraveBehaviour)m_AIActor).specRigidbody)) { component2.IgnoreRigidbodes.Add(((BraveBehaviour)m_AIActor).specRigidbody); } Vector3 val2 = Vector2.op_Implicit(BraveMathCollege.DegreesToVector(Vector2Extensions.ToAngle(m_AIActor.TargetRigidbody.GetUnitCenter((ColliderType)2) - ((BraveBehaviour)m_AIActor).specRigidbody.UnitCenter), 1f)); if (Object.op_Implicit((Object)(object)((GameActor)m_AIActor).CurrentGun)) { val2 = Vector2.op_Implicit(BraveMathCollege.DegreesToVector(Vector2Extensions.ToAngle(m_AIActor.TargetRigidbody.GetUnitCenter((ColliderType)2) - ((BraveBehaviour)((GameActor)m_AIActor).CurrentGun).sprite.WorldCenter), 1f)); } component2.Direction = Vector2.op_Implicit(val2); if (Object.op_Implicit((Object)(object)((GameActor)m_AIActor).CurrentGun)) { component2.Origin = ((BraveBehaviour)((GameActor)m_AIActor).CurrentGun).sprite.WorldCenter; } else { component2.Origin = ((BraveBehaviour)m_AIActor).specRigidbody.UnitCenter; } ((MonoBehaviour)this).StartCoroutine(HandleFiringBeam(component2)); } } private IEnumerator PathBackToCenter(AIActor target, Vector2 returnPosition) { //IL_0015: 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) if (!Object.op_Implicit((Object)(object)target)) { m_IsPathfindingToCenter = false; if (Object.op_Implicit((Object)(object)target)) { target.BehaviorOverridesVelocity = false; } yield break; } float elapsed = 0f; target.BehaviorOverridesVelocity = false; target.ClearPath(); target.PathfindToPosition(returnPosition, (Vector2?)null, true, (CellValidator)null, (ExtraWeightingFunction)null, (CellTypes?)null, true); yield return null; while (!target.PathComplete) { elapsed += BraveTime.DeltaTime; if (elapsed > 20f) { target.BehaviorOverridesVelocity = true; target.ClearPath(); m_IsPathfindingToCenter = false; yield break; } if (m_RandomMovement) { break; } yield return null; } target.BehaviorOverridesVelocity = true; m_IsPathfindingToCenter = false; } private IEnumerator HandleRandomPathing(AIActor target) { do { if (!Object.op_Implicit((Object)(object)target) | m_MirrorGunToggle | !m_RandomMovement | m_IsPathfindingToCenter) { if (Object.op_Implicit((Object)(object)target) | !m_IsPathfindingToCenter) { target.BehaviorOverridesVelocity = true; } yield break; } float elapsed = 0f; float maxPathAttemptTime = Random.Range(2, 10); Vector2? PathTarget = GetRandomPathTarget(); while (!PathTarget.HasValue) { if (!Object.op_Implicit((Object)(object)target) | m_MirrorGunToggle | !m_RandomMovement | m_IsPathfindingToCenter) { if (Object.op_Implicit((Object)(object)target) | !m_IsPathfindingToCenter) { target.BehaviorOverridesVelocity = true; } break; } yield return null; } if (m_MirrorGunToggle | !Object.op_Implicit((Object)(object)target)) { m_RandomMovement = false; yield break; } if (!m_IsPathfindingToCenter) { target.BehaviorOverridesVelocity = false; } target.ClearPath(); target.PathfindToPosition(PathTarget.Value, (Vector2?)null, true, (CellValidator)null, (ExtraWeightingFunction)null, (CellTypes?)null, true); yield return null; while (!target.PathComplete) { elapsed += BraveTime.DeltaTime; if (elapsed > maxPathAttemptTime) { target.ClearPath(); _ = (float)Random.Range(2, 10); break; } if (!Object.op_Implicit((Object)(object)target) | m_MirrorGunToggle | !m_RandomMovement | m_IsPathfindingToCenter) { break; } yield return null; } } while (!(!Object.op_Implicit((Object)(object)target) | m_MirrorGunToggle | !m_RandomMovement | m_IsPathfindingToCenter)); if (Object.op_Implicit((Object)(object)target) && !m_IsPathfindingToCenter) { target.BehaviorOverridesVelocity = true; } } private Vector2? GetRandomPathTarget() { //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Expected O, but got Unknown //IL_004b: 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_0053: Unknown result type (might be due to invalid IL or missing references) object obj = <>c.<>9__45_0; if (obj == null) { CellValidator val = delegate(IntVector2 c) { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_004c: 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_005f: Invalid comparison between Unknown and I4 //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Invalid comparison between Unknown and I4 for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { if (!GameManager.Instance.Dungeon.data.CheckInBoundsAndValid(c.x + i, c.y + j) | ((int)GameManager.Instance.Dungeon.data[c.x + i, c.y + j].type == 4) | GameManager.Instance.Dungeon.data[c.x + i, c.y + j].isOccupied | ((int)GameManager.Instance.Dungeon.data[c.x + i, c.y + j].type == 1)) { return false; } } } return true; }; <>c.<>9__45_0 = val; obj = (object)val; } CellValidator val2 = (CellValidator)obj; IntVector2? randomAvailableCell = m_ParentRoom.GetRandomAvailableCell((IntVector2?)new IntVector2(2, 2), (CellTypes?)(CellTypes)2, false, val2); if (randomAvailableCell.HasValue) { IntVector2 value = randomAvailableCell.Value; return ((IntVector2)(ref value)).ToVector2(); } return null; } private IEnumerator HandleFireGun() { if (!m_CanAttack | m_IsDisconnected) { if (((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.IsFiring | ((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.IsCharging) { ((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.CeaseAttack(m_MirrorGunToggle, (ProjectileData)null); } ((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.ClearReloadData(); m_IsFiring = false; yield break; } yield return null; if (!((GameActor)m_Player).CurrentGun.IsCharging && !((GameActor)m_Player).CurrentGun.IsFiring && !FireOverride) { m_ChargingTime = 0f; m_IsFiring = false; ((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.ClearReloadData(); yield break; } float? ChargeTime = ((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.DefaultModule.maxChargeTime; m_ChargingTime = 0f; yield return null; if (ChargeTime.HasValue) { while ((((GameActor)m_Player).CurrentGun.IsCharging | ((GameActor)m_Player).CurrentGun.IsFiring | FireOverride) && (m_HasShootStyle((ShootStyle)3) | m_SpecialChargeWeapons.Contains(((PickupObject)((BraveBehaviour)m_AIActor).aiShooter.CurrentGun).PickupObjectId))) { m_ChargingTime += BraveTime.DeltaTime; if (!m_MirrorGunToggle | m_IsDisconnected) { m_IsFiring = false; m_ChargingTime = 0f; ((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.ClearReloadData(); yield break; } yield return null; } } if (!m_MirrorGunToggle | m_IsDisconnected) { m_ChargingTime = 0f; m_IsFiring = false; yield break; } yield return null; if ((m_ChargingTime >= ChargeTime.Value) | (!m_HasShootStyle((ShootStyle)3) && !m_SpecialChargeWeapons.Contains(((PickupObject)((BraveBehaviour)m_AIActor).aiShooter.CurrentGun).PickupObjectId))) { while ((int)((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.Attack((ProjectileData)null, (GameObject)null) != 0 && (FireOverride | ((GameActor)m_Player).CurrentGun.IsCharging | ((GameActor)m_Player).CurrentGun.IsFiring)) { if (m_IsDisconnected) { m_ChargingTime = 0f; m_IsFiring = false; ((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.ClearReloadData(); yield break; } if (!m_MirrorGunToggle | (!m_HasShootStyle((ShootStyle)3) && !m_SpecialChargeWeapons.Contains(((PickupObject)((BraveBehaviour)m_AIActor).aiShooter.CurrentGun).PickupObjectId))) { if (((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.IsFiring | ((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.IsCharging) { ((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.CeaseAttack(m_MirrorGunToggle, (ProjectileData)null); } if (((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.IsCharging) { ((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.ContinueAttack(m_MirrorGunToggle, (ProjectileData)null); } m_ChargingTime = 0f; m_IsFiring = false; ((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.ClearReloadData(); yield break; } if (!((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.IsFiring && !((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.IsCharging) { ((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.Attack((ProjectileData)null, (GameObject)null); } ((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.ClearReloadData(); yield return null; } } yield return null; if (m_IsDisconnected) { ((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.CeaseAttack(false, (ProjectileData)null); } ((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.ClearReloadData(); m_IsFiring = false; } private IEnumerator DelayedActivate() { yield return (object)new WaitForSeconds(1.5f); if (!m_IsDisconnected) { ((BraveBehaviour)m_AIActor).aiShooter.ToggleHandRenderers(false, "Using Player's Gun Now"); if (Object.op_Implicit((Object)(object)m_Player)) { ((BraveBehaviour)this).aiActor.PlayerTarget = (GameActor)(object)m_Player; } ((BraveBehaviour)m_AIActor).spriteAnimator.Stop(); m_DelayedActive = true; } } private IEnumerator HandleFiringBeam(BeamController beam) { float elapsed = 0f; yield return null; while (Object.op_Implicit((Object)(object)m_Player) && (m_Player.IsFiring | FireOverride) && Object.op_Implicit((Object)(object)this) && Object.op_Implicit((Object)(object)((BraveBehaviour)m_AIActor).sprite) && Object.op_Implicit((Object)(object)((BraveBehaviour)m_AIActor).healthHaver) && !m_IsDisconnected) { elapsed += BraveTime.DeltaTime; if (!Object.op_Implicit((Object)(object)m_AIActor.TargetRigidbody)) { m_AIActor.PlayerTarget = (GameActor)(object)m_Player; } if (!m_MirrorGunToggle) { beam.CeaseAttack(); beam.DestroyBeam(); yield break; } if (Object.op_Implicit((Object)(object)((GameActor)m_AIActor).CurrentGun)) { beam.Origin = ((BraveBehaviour)((GameActor)m_AIActor).CurrentGun).sprite.WorldCenter; beam.LateUpdatePosition(Vector2.op_Implicit(((BraveBehaviour)((GameActor)m_AIActor).CurrentGun).sprite.WorldCenter)); } else { beam.Origin = ((BraveBehaviour)m_AIActor).specRigidbody.UnitCenter; beam.LateUpdatePosition(Vector2.op_Implicit(((BraveBehaviour)m_AIActor).specRigidbody.UnitCenter)); } if (Object.op_Implicit((Object)(object)m_Player)) { float num = Vector2Extensions.ToAngle(m_AIActor.TargetRigidbody.GetUnitCenter((ColliderType)2) - ((BraveBehaviour)m_AIActor).specRigidbody.UnitCenter); if (Object.op_Implicit((Object)(object)((GameActor)m_AIActor).CurrentGun)) { num = Vector2Extensions.ToAngle(m_AIActor.TargetRigidbody.GetUnitCenter((ColliderType)2) - ((BraveBehaviour)((GameActor)m_AIActor).CurrentGun).sprite.WorldCenter); } num = ((!m_InvertSweepAngle) ? (num - m_BeamSweepAngle) : (num + m_BeamSweepAngle)); beam.Direction = BraveMathCollege.DegreesToVector(num, 1f); if (m_Player.IsDodgeRolling) { beam.CeaseAttack(); beam.DestroyBeam(); yield break; } } yield return null; } beam.CeaseAttack(); beam.DestroyBeam(); } private void UpdateSprites() { //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Invalid comparison between Unknown and I4 //IL_00ee: 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_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01be: Invalid comparison between Unknown and I4 //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Invalid comparison between Unknown and I4 if (((Behaviour)((BraveBehaviour)m_AIActor).aiAnimator).enabled) { ((Behaviour)((BraveBehaviour)m_AIActor).aiAnimator).enabled = false; } if (m_Player.IsDodgeRolling | !Object.op_Implicit((Object)(object)((BraveBehaviour)m_AIActor).aiShooter.CurrentGun)) { if ((int)m_Player.characterIdentity == 9) { ((BraveBehaviour)m_AIActor).sprite.SetSprite(((BraveBehaviour)m_Player).sprite.Collection, ((BraveBehaviour)m_Player).sprite.spriteId); } else { ((BraveBehaviour)m_AIActor).sprite.SetSprite(((BraveBehaviour)m_Player).sprite.spriteId); } return; } float gunAngle = -90f; float currentAngle = ((BraveBehaviour)m_AIActor).aiShooter.CurrentGun.CurrentAngle; if (currentAngle < 155f && currentAngle > 25f) { gunAngle = 90f; } string baseAnimationName = GetBaseAnimationName(m_Player, Vector2Extensions.WithY(((BraveBehaviour)m_AIActor).specRigidbody.Velocity, ((BraveBehaviour)m_AIActor).specRigidbody.Velocity.y * -1f), gunAngle, invertThresholds: true); tk2dSpriteAnimationClip clipByName = ((BraveBehaviour)m_Player).spriteAnimator.GetClipByName(baseAnimationName); int currentFrame = ((BraveBehaviour)m_Player).spriteAnimator.CurrentFrame; if (clipByName != null && currentFrame >= 0 && currentFrame < clipByName.frames.Length) { if ((int)m_Player.characterIdentity == 9) { ((BraveBehaviour)m_AIActor).sprite.SetSprite(((BraveBehaviour)m_Player).sprite.Collection, clipByName.frames[currentFrame].spriteId); } else { ((BraveBehaviour)m_AIActor).sprite.SetSprite(clipByName.frames[currentFrame].spriteId); } } else if ((int)m_Player.characterIdentity == 9) { ((BraveBehaviour)m_AIActor).sprite.SetSprite(((BraveBehaviour)m_Player).sprite.Collection, ((BraveBehaviour)m_Player).sprite.spriteId); } else { ((BraveBehaviour)m_AIActor).sprite.SetSprite(((BraveBehaviour)m_Player).sprite.spriteId); } } protected virtual string GetBaseAnimationName(PlayerController Player, Vector2 v, float gunAngle, bool invertThresholds = false, bool forceTwoHands = false) { //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Invalid comparison between Unknown and I4 //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Invalid comparison between Unknown and I4 //IL_0184: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) string empty = string.Empty; bool flag = (Object)(object)((GameActor)Player).CurrentGun != (Object)null; if (flag && (int)((GameActor)Player).CurrentGun.Handedness == 4) { forceTwoHands = true; } if ((int)GameManager.Instance.CurrentLevelOverrideState == 4) { flag = false; } float num = 155f; float num2 = 25f; if (invertThresholds) { num = -155f; num2 -= 50f; } float num3 = 120f; float num4 = 60f; float num5 = -60f; float num6 = -120f; bool flag2 = gunAngle <= num && gunAngle >= num2; if (invertThresholds) { flag2 = gunAngle <= num || gunAngle >= num2; } if (Player.IsGhost) { if (flag2) { if (gunAngle < num3 && gunAngle >= num4) { empty = "ghost_idle_back"; } else { float num7 = 105f; empty = ((!(Mathf.Abs(gunAngle) > num7)) ? "ghost_idle_back_right" : "ghost_idle_back_left"); } } else if (gunAngle <= num5 && gunAngle >= num6) { empty = "ghost_idle_front"; } else { float num8 = 105f; empty = ((!(Mathf.Abs(gunAngle) > num8)) ? "ghost_idle_right" : "ghost_idle_left"); } } else if (((GameActor)Player).IsFlying) { empty = (flag2 ? ((!(gunAngle < num3) || !(gunAngle >= num4)) ? "jetpack_right_bw" : "jetpack_up") : ((!(gunAngle <= num5) || !(gunAngle >= num6)) ? ((!RenderBodyHand(Player)) ? "jetpack_right" : "jetpack_right_hand") : ((!RenderBodyHand(Player)) ? "jetpack_down" : "jetpack_down_hand"))); } else if (v == Vector2.zero || Player.IsStationary) { empty = (Player.IsPetting ? "pet" : (flag2 ? ((!(gunAngle < num3) || !(gunAngle >= num4)) ? (((!forceTwoHands && flag) || Player.ForceHandless) ? "idle_bw" : "idle_bw_twohands") : ((!(!forceTwoHands && flag) && !Player.ForceHandless) ? "idle_backward_twohands" : ((!RenderBodyHand(Player)) ? "idle_backward" : "idle_backward_hand"))) : ((!(gunAngle <= num5) || !(gunAngle >= num6)) ? ((!(!forceTwoHands && flag) && !Player.ForceHandless) ? "idle_twohands" : ((!RenderBodyHand(Player)) ? "idle" : "idle_hand")) : ((!(!forceTwoHands && flag) && !Player.ForceHandless) ? "idle_forward_twohands" : ((!RenderBodyHand(Player)) ? "idle_forward" : "idle_forward_hand"))))); } else if (flag2) { string text = (((!forceTwoHands && flag) || Player.ForceHandless) ? "run_right_bw" : "run_right_bw_twohands"); if (gunAngle < num3 && gunAngle >= num4) { text = ((!(!forceTwoHands && flag) && !Player.ForceHandless) ? "run_up_twohands" : ((!RenderBodyHand(Player)) ? "run_up" : "run_up_hand")); } empty = text; } else { string text2 = "run_right"; if (gunAngle <= num5 && gunAngle >= num6) { text2 = "run_down"; } if ((forceTwoHands || !flag) && !Player.ForceHandless) { text2 += "_twohands"; } else if (RenderBodyHand(Player)) { text2 += "_hand"; } empty = text2; } if (Player.UseArmorlessAnim && !Player.IsGhost) { empty += "_armorless"; } return empty; } private bool RenderBodyHand(PlayerController player) { //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Invalid comparison between Unknown and I4 if (!player.ForceHandless && (Object)(object)player.CurrentSecondaryGun == (Object)null) { if (!((Object)(object)((GameActor)player).CurrentGun == (Object)null)) { return (int)((GameActor)player).CurrentGun.Handedness != 1; } return true; } return false; } public void Disconnect(bool externalDisconnect = false) { //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) if (m_ParentRoom != null) { m_ParentRoom.CompletelyPreventLeaving = false; } m_IsDisconnected = true; m_PauseAutoFire = true; m_MirrorGunToggle = true; if (Object.op_Implicit((Object)(object)m_Player)) { m_Player.PostProcessBeam -= HandleBeam; } if (Object.op_Implicit((Object)(object)m_AIActor)) { m_AIActor.BehaviorVelocity = Vector2.zero; m_AIActor.BehaviorOverridesVelocity = false; } if (!externalDisconnect) { ((MonoBehaviour)this).StopAllCoroutines(); } } protected override void OnDestroy() { if (m_CameraChanged) { ModifyCamera(value: false); } if (!m_IsDisconnected) { Disconnect(); } ExpandStaticReferenceManager.CurrentGungeoneerMimic = null; ((BraveBehaviour)this).OnDestroy(); } } public class ExpandGungeoneerMimicDeathController : BraveBehaviour { private ExpandGungeoneerMimicBossController m_GungeoneerMimicBossController; public string DeathClipName; public string DeathClipName_Armorless; public ExpandGungeoneerMimicDeathController() { DeathClipName = "death_shot"; DeathClipName_Armorless = "death_shot_armorless"; } public void Start() { ((BraveBehaviour)this).healthHaver.ManualDeathHandling = true; ((BraveBehaviour)this).healthHaver.OnPreDeath += OnBossDeath; ((BraveBehaviour)this).healthHaver.OverrideKillCamTime = 5f; m_GungeoneerMimicBossController = ((Component)this).gameObject.GetComponent(); } protected override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); } private void OnBossDeath(Vector2 dir) { //IL_0063: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)GameManager.Instance.SecondaryPlayer)) { GameManager.Instance.SecondaryPlayer.CurrentInputState = (PlayerInputState)1; } if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).aiActor) && Object.op_Implicit((Object)(object)((BraveBehaviour)this).sprite) && GameStatsManager.HasInstance && GameStatsManager.Instance.IsRainbowRun) { ExpandUtility.SpawnCustomBowlerNote(GameManager.Instance.RewardManager.BowlerNoteOtherSource, ((BraveBehaviour)this).sprite.WorldCenter, ((BraveBehaviour)this).aiActor.ParentRoom, BraveUtility.RandomElement(ExpandLists.EXBowlerNotes_GungeoneerMimic)); } if (Object.op_Implicit((Object)(object)m_GungeoneerMimicBossController)) { m_GungeoneerMimicBossController.IntroDone = false; m_GungeoneerMimicBossController.Disconnect(); } GameManager.Instance.PrimaryPlayer.CurrentInputState = (PlayerInputState)1; if (Object.op_Implicit((Object)(object)GameManager.Instance.SecondaryPlayer)) { GameManager.Instance.SecondaryPlayer.CurrentInputState = (PlayerInputState)1; } ((MonoBehaviour)this).StartCoroutine(HandleDeathSequence()); } private IEnumerator HandleDeathSequence() { GameManager.Instance.PauseRaw(true); Pixelator.Instance.DoFinalNonFadedLayer = true; ((Component)((BraveBehaviour)this).aiShooter.CurrentGun).gameObject.SetActive(false); ((Component)((BraveBehaviour)this).aiShooter.gunAttachPoint).gameObject.SetActive(false); ((BraveBehaviour)this).aiShooter.ToggleHandRenderers(false, "Death Sequance"); int PreviousLayer = ((Component)this).gameObject.layer; GameObjectExtensions.SetLayerRecursively(((Component)this).gameObject, LayerMask.NameToLayer("Unfaded")); tk2dBaseSprite spotlightSprite = Object.Instantiate(BraveResources.Load("DeathShadow", ".prefab"), Vector2.op_Implicit(((BraveBehaviour)this).specRigidbody.UnitCenter), Quaternion.identity).GetComponent(); ((BraveBehaviour)spotlightSprite).spriteAnimator.ignoreTimeScale = true; ((BraveBehaviour)spotlightSprite).spriteAnimator.Play(); tk2dSpriteAnimator component = ((Component)((BraveBehaviour)spotlightSprite).transform.GetChild(0)).GetComponent(); component.ignoreTimeScale = true; component.Play(); Pixelator.Instance.CustomFade(0.6f, 0f, Color.white, Color.black, 0.1f, 0.5f); Pixelator.Instance.LerpToLetterbox(0.35f, 0.8f); spotlightSprite.color = Color.white; yield return ((MonoBehaviour)this).StartCoroutine(InvariantWait(0.4f)); GameObject clockhairObject = Object.Instantiate(BraveResources.Load("Clockhair", ".prefab")); ClockhairController clockhair = clockhairObject.GetComponent(); float elapsed4 = 0f; float duration4 = clockhair.ClockhairInDuration; Vector3 clockhairTargetPosition = Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldCenter); Vector3 clockhairStartPosition2 = clockhairTargetPosition + new Vector3(-20f, 5f, 0f); ((BraveBehaviour)clockhair).renderer.enabled = false; ((BraveBehaviour)clockhair).spriteAnimator.Play("clockhair_intro"); clockhair.hourAnimator.Play("hour_hand_intro"); clockhair.minuteAnimator.Play("minute_hand_intro"); clockhair.secondAnimator.Play("second_hand_intro"); bool hasWobbled = false; while (elapsed4 < duration4) { if (GameManager.INVARIANT_DELTA_TIME == 0f) { elapsed4 += 0.05f; } elapsed4 += GameManager.INVARIANT_DELTA_TIME; float num = elapsed4 / duration4; float num2 = Mathf.SmoothStep(0f, 1f, num); Vector3 val = Vector3.Slerp(clockhairStartPosition2, clockhairTargetPosition, num2); clockhairObject.transform.position = Vector3Extensions.WithZ(val, 0f); if (num > 0.5f) { ((BraveBehaviour)clockhair).renderer.enabled = true; ((BraveBehaviour)clockhair).spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME); } if (num > 0.75f) { ((Component)clockhair.hourAnimator).GetComponent().enabled = true; ((Component)clockhair.minuteAnimator).GetComponent().enabled = true; ((Component)clockhair.secondAnimator).GetComponent().enabled = true; clockhair.hourAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME); clockhair.minuteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME); clockhair.secondAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME); } if (!hasWobbled && ((BraveBehaviour)clockhair).spriteAnimator.CurrentFrame == ((BraveBehaviour)clockhair).spriteAnimator.CurrentClip.frames.Length - 1) { ((BraveBehaviour)clockhair).spriteAnimator.Play("clockhair_wobble"); hasWobbled = true; } ((BraveBehaviour)clockhair).sprite.UpdateZDepth(); ((BraveBehaviour)this).spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME); yield return null; } if (!hasWobbled) { ((BraveBehaviour)clockhair).spriteAnimator.Play("clockhair_wobble"); } clockhair.SpinToSessionStart(clockhair.ClockhairSpinDuration); elapsed4 = 0f; duration4 = clockhair.ClockhairSpinDuration + clockhair.ClockhairPauseBeforeShot; while (elapsed4 < duration4) { if (GameManager.INVARIANT_DELTA_TIME == 0f) { elapsed4 += 0.05f; } elapsed4 += GameManager.INVARIANT_DELTA_TIME; ((BraveBehaviour)clockhair).spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME); yield return null; } elapsed4 = 0f; duration4 = 0.1f; clockhairStartPosition2 = clockhairObject.transform.position; _ = clockhairStartPosition2 + new Vector3(0f, 12f, 0f); ((BraveBehaviour)clockhair).spriteAnimator.Play("clockhair_fire"); ((Component)clockhair.hourAnimator).GetComponent().enabled = false; ((Component)clockhair.minuteAnimator).GetComponent().enabled = false; ((Component)clockhair.secondAnimator).GetComponent().enabled = false; if (Object.op_Implicit((Object)(object)m_GungeoneerMimicBossController) && Object.op_Implicit((Object)(object)m_GungeoneerMimicBossController.m_Player)) { if (m_GungeoneerMimicBossController.m_Player.UseArmorlessAnim) { ((BraveBehaviour)this).spriteAnimator.Play(DeathClipName_Armorless); } else { ((BraveBehaviour)this).spriteAnimator.Play(DeathClipName); } } while (elapsed4 < duration4) { if (GameManager.INVARIANT_DELTA_TIME == 0f) { elapsed4 += 0.05f; } elapsed4 += GameManager.INVARIANT_DELTA_TIME; ((BraveBehaviour)clockhair).spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME); ((BraveBehaviour)this).spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME); yield return null; } elapsed4 = 0f; duration4 = 1f; while (elapsed4 < duration4) { if (GameManager.INVARIANT_DELTA_TIME == 0f) { elapsed4 += 0.05f; } elapsed4 += GameManager.INVARIANT_DELTA_TIME; if (((BraveBehaviour)clockhair).spriteAnimator.CurrentFrame == ((BraveBehaviour)clockhair).spriteAnimator.CurrentClip.frames.Length - 1) { ((BraveBehaviour)clockhair).renderer.enabled = false; } else { ((BraveBehaviour)clockhair).spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME); } ((BraveBehaviour)this).spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME); yield return null; } yield return ((MonoBehaviour)this).StartCoroutine(InvariantWait(1f)); Pixelator.Instance.FadeToColor(0.25f, Pixelator.Instance.FadeColor, true, 0f); Pixelator.Instance.LerpToLetterbox(1f, 0.25f); Object.Destroy((Object)(object)((Component)spotlightSprite).gameObject); Pixelator.Instance.DoFinalNonFadedLayer = false; GameObjectExtensions.SetLayerRecursively(((Component)this).gameObject, PreviousLayer); GameManager.Instance.ForceUnpause(); GameManager.Instance.PreventPausing = false; BraveTime.ClearMultiplier(((Component)GameManager.Instance).gameObject); yield return (object)new WaitForSeconds(1f); GameManager.Instance.PrimaryPlayer.CurrentInputState = (PlayerInputState)0; if (Object.op_Implicit((Object)(object)GameManager.Instance.SecondaryPlayer)) { GameManager.Instance.SecondaryPlayer.CurrentInputState = (PlayerInputState)0; } GameManager.Instance.MainCameraController.SetManualControl(false, true); Object.Destroy((Object)(object)clockhairObject); m_GungeoneerMimicBossController.ModifyCamera(value: false); ((BraveBehaviour)this).healthHaver.DeathAnimationComplete((tk2dSpriteAnimator)null, (tk2dSpriteAnimationClip)null); if (Object.op_Implicit((Object)(object)((Component)this).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)this).gameObject.GetComponent().MirrorBase); Object.Destroy((Object)(object)((Component)this).gameObject.GetComponent().MirrorShatterFX); } } private IEnumerator InvariantWait(float delay, bool forceAnimationUpdate = true) { float elapsed = 0f; while (elapsed < delay) { if (GameManager.INVARIANT_DELTA_TIME == 0f) { elapsed += 0.05f; } elapsed += GameManager.INVARIANT_DELTA_TIME; if (forceAnimationUpdate) { ((BraveBehaviour)this).spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME); } yield return null; } } } public class ExpandJungleExitLadderComponent : DungeonPlaceableBehaviour, IPlaceConfigurable, IPlayerInteractable { public bool IsLevelExitWarp; public bool IsDestinationWarp; public bool UsesOverrideTargetFloor; public string OverrideTargetFloorName; public string TargetRoomTileset; public PrototypeDungeonRoom TargetRoomPrefab; public RoomHandler TargetRoom; public Vector2 TargetPointInRoom; public Vector2? PreviousLadderLocation; public Color BaseOutlineColor; private bool m_Interacted; private bool m_Configured; private RoomHandler m_ParentRoom; public ExpandJungleExitLadderComponent() { //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) IsLevelExitWarp = false; IsDestinationWarp = false; UsesOverrideTargetFloor = false; OverrideTargetFloorName = "tt5"; TargetRoomTileset = "Base_Castle"; TargetPointInRoom = new Vector2(2f, 4f); BaseOutlineColor = Color.black; m_Interacted = false; m_Configured = false; } private void Update() { //IL_0010: Unknown result type (might be due to invalid IL or missing references) if (m_Configured) { SpriteOutlineManager.AddOutlineToSprite(((BraveBehaviour)this).sprite, BaseOutlineColor, 0.1f, 0f, (OutlineType)0); if (IsDestinationWarp) { ((BraveBehaviour)this).sprite.HeightOffGround = -4f; ((BraveBehaviour)this).sprite.UpdateZDepth(); } else { ((BraveBehaviour)this).sprite.HeightOffGround = -2f; ((BraveBehaviour)this).sprite.UpdateZDepth(); } m_Configured = false; } } private void Awake() { } public void ConfigureOnPlacement(RoomHandler room) { m_ParentRoom = room; m_Configured = true; } public void Interact(PlayerController player) { //IL_0063: 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_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0112: 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_0126: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_014f: 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_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: 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_01dd: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: Unknown result type (might be due to invalid IL or missing references) //IL_01f6: Unknown result type (might be due to invalid IL or missing references) if (m_Interacted || !Object.op_Implicit((Object)(object)player)) { return; } m_Interacted = true; if (IsLevelExitWarp) { ((MonoBehaviour)this).StartCoroutine(HandleExitFloor()); return; } if (TargetRoom != null) { if (PreviousLadderLocation.HasValue) { TargetPointInRoom = PreviousLadderLocation.Value; } ((MonoBehaviour)this).StartCoroutine(HandleWarp(player, TargetRoom, TargetPointInRoom)); m_Interacted = false; return; } if ((Object)(object)TargetRoomPrefab == (Object)null) { TargetRoomPrefab = ExpandRoomPrefabs.Expand_ExitRoom_NewElevator; } Dungeon orLoadByName = DungeonDatabase.GetOrLoadByName(TargetRoomTileset); TargetRoom = ExpandUtility.AddCustomRuntimeRoomWithTileSet(orLoadByName, TargetRoomPrefab, addRoomToMinimap: true, addTeleporter: false, isSecretRatExitRoom: false, null, (LightGenerationStyle)0); orLoadByName = null; if (TargetRoom == null) { ((MonoBehaviour)this).StartCoroutine(HandleExitFloor()); return; } Object.Instantiate(ExpandPrefabs.Jungle_ExitLadder_Hole, ((IntVector2)(ref TargetRoom.area.basePosition)).ToVector3() + Vector2Extensions.ToVector3ZUp(TargetPointInRoom, 0f) - Vector2Extensions.ToVector3ZUp(new Vector2(0f, 1f), 0f), Quaternion.identity); GameObject obj = DungeonPlaceableUtility.InstantiateDungeonPlaceable(ExpandPrefabs.Jungle_ExitLadder_Destination, TargetRoom, Vector2Extensions.ToIntVector2(TargetPointInRoom, (VectorConversions)2) - new IntVector2(0, 1), true, (AwakenAnimationType)0, false); Transform transform = obj.transform; transform.position -= new Vector3(0f, 0.2f); ExpandJungleExitLadderComponent component = obj.GetComponent(); component.IsDestinationWarp = true; component.TargetRoom = m_ParentRoom; component.PreviousLadderLocation = new Vector2(4f, 6.8f); component.ConfigureOnPlacement(TargetRoom); TargetRoom.RegisterInteractable((IPlayerInteractable)(object)component); TargetPointInRoom += new Vector2(0.45f, 1.5f); ((MonoBehaviour)this).StartCoroutine(HandleWarp(player, TargetRoom, TargetPointInRoom)); m_Interacted = false; } private IEnumerator HandleWarp(PlayerController player, RoomHandler targetRoomn, Vector2 TargetLocation) { //IL_001c: 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) Pixelator.Instance.FadeToBlack(0.1f, false, 0f); PlayerController otherPlayer = GameManager.Instance.GetOtherPlayer(player); yield return (object)new WaitForSeconds(0.1f); Vector2 val = ((IntVector2)(ref targetRoomn.area.basePosition)).ToVector2() + TargetLocation; player.WarpToPoint(val, false, false); if (Object.op_Implicit((Object)(object)otherPlayer) && ((BraveBehaviour)otherPlayer).healthHaver.IsAlive) { otherPlayer.ReuniteWithOtherPlayer(player, false); } GameManager.Instance.MainCameraController.ForceToPlayerPosition(player); Pixelator.Instance.FadeToBlack(0.1f, true, 0f); yield return (object)new WaitForSeconds(1f); player.ClearInputOverride("arbitrary warp"); m_Interacted = false; } private IEnumerator HandleExitFloor() { for (int i = 0; i < GameManager.Instance.AllPlayers.Length; i++) { GameManager.Instance.AllPlayers[i].PrepareForSceneTransition(); } Pixelator.Instance.FadeToBlack(0.5f, false, 0f); yield return (object)new WaitForSeconds(1f); GameUIRoot.Instance.HideCoreUI(string.Empty); GameUIRoot.Instance.ToggleLowerPanels(false, false, string.Empty); yield return null; float num = 0.5f; if ((int)GameManager.Instance.CurrentGameMode == 3) { GameManager.Instance.DelayedLoadBossrushFloor(num); yield break; } if ((int)GameManager.Instance.CurrentGameMode == 2) { GameManager.Instance.DelayedLoadBossrushFloor(num); yield break; } if (!GameManager.Instance.IsFoyer && (int)GameManager.Instance.CurrentLevelOverrideState == 0) { GameManager.DoMidgameSave(GameManager.Instance.GetNextTileset(GameManager.Instance.Dungeon.tileIndices.tilesetId)); } if (UsesOverrideTargetFloor) { GameManager.Instance.DelayedLoadCustomLevel(num, OverrideTargetFloorName); } else { GameManager.Instance.DelayedLoadNextLevel(num); } AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)this).gameObject); } public void OnEnteredRange(PlayerController interactor) { //IL_001b: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)this)) { SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)this).sprite, false); SpriteOutlineManager.AddOutlineToSprite(((BraveBehaviour)this).sprite, Color.white, 0.1f, 0f, (OutlineType)0); ((BraveBehaviour)this).sprite.UpdateZDepth(); } } public void OnExitRange(PlayerController interactor) { //IL_001c: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)this)) { SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)this).sprite, false); SpriteOutlineManager.AddOutlineToSprite(((BraveBehaviour)this).sprite, BaseOutlineColor, 0.1f, 0f, (OutlineType)0); ((BraveBehaviour)this).sprite.UpdateZDepth(); } } public float GetDistanceToPoint(Vector2 point) { //IL_0006: 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_0010: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_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_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0049: 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_006a: 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_0083: 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_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) Bounds bounds = ((BraveBehaviour)this).sprite.GetBounds(); ((Bounds)(ref bounds)).SetMinMax(((Bounds)(ref bounds)).min + ((BraveBehaviour)this).transform.position, ((Bounds)(ref bounds)).max + ((BraveBehaviour)this).transform.position); float num = Mathf.Max(Mathf.Min(point.x, ((Bounds)(ref bounds)).max.x), ((Bounds)(ref bounds)).min.x); float num2 = Mathf.Max(Mathf.Min(point.y, ((Bounds)(ref bounds)).max.y), ((Bounds)(ref bounds)).min.y); return Mathf.Sqrt((point.x - num) * (point.x - num) + (point.y - num2) * (point.y - num2)); } public float GetOverrideMaxDistance() { return -1f; } public string GetAnimationState(PlayerController interactor, out bool shouldBeFlipped) { shouldBeFlipped = false; return string.Empty; } protected override void OnDestroy() { ((DungeonPlaceableBehaviour)this).OnDestroy(); } } public class ExpandJungleTreeStumpItemPedestal : DungeonPlaceableBehaviour, IPlaceConfigurable, IPlayerInteractable { public int ItemID; public bool AddOutline; public Color BaseOutlineColor; private bool m_Interacted; private GameObject m_SubSpriteObject; private tk2dSprite m_ItemSprite; private RoomHandler m_ParentRoom; public ExpandJungleTreeStumpItemPedestal() { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) ItemID = 305; AddOutline = false; BaseOutlineColor = Color.black; m_Interacted = false; } public void Start() { //IL_0036: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)m_SubSpriteObject) && m_ParentRoom != null) { m_ParentRoom.RegisterInteractable((IPlayerInteractable)(object)this); } else if (!Object.op_Implicit((Object)(object)m_SubSpriteObject)) { ConfigureOnPlacement(Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)this).transform.position)); if (Object.op_Implicit((Object)(object)m_SubSpriteObject)) { m_ParentRoom.RegisterInteractable((IPlayerInteractable)(object)this); } } } public void Interact(PlayerController player) { if (!m_Interacted && Object.op_Implicit((Object)(object)player)) { GiveItem(player); } } private void GiveItem(PlayerController player) { //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Expected O, but got Unknown //IL_0093: 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) m_Interacted = true; PickupObject byId = PickupObjectDatabase.GetById(ItemID); if (!Object.op_Implicit((Object)(object)byId)) { return; } LootEngine.GivePrefabToPlayer(((Component)PickupObjectDatabase.GetById(ItemID)).gameObject, player); if (byId is Gun) { AkSoundEngine.PostEvent("Play_OBJ_weapon_pickup_01", ((Component)this).gameObject); } else { AkSoundEngine.PostEvent("Play_OBJ_item_pickup_01", ((Component)this).gameObject); } GameObject val = Object.Instantiate((GameObject)ResourceCache.Acquire("Global VFX/VFX_Item_Pickup")); if (Object.op_Implicit((Object)(object)val)) { tk2dSprite component = val.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { ((tk2dBaseSprite)component).PlaceAtPositionByAnchor(Vector2.op_Implicit(((tk2dBaseSprite)m_ItemSprite).WorldCenter), (Anchor)4); ((tk2dBaseSprite)component).HeightOffGround = 6f; ((tk2dBaseSprite)component).UpdateZDepth(); } } if (m_ParentRoom != null) { m_ParentRoom.DeregisterInteractable((IPlayerInteractable)(object)this); } Object.Destroy((Object)(object)m_SubSpriteObject); Object.Destroy((Object)(object)this); } public void ConfigureOnPlacement(RoomHandler room) { //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_0066: Expected O, but got Unknown //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) m_ParentRoom = room; if (Object.op_Implicit((Object)(object)PickupObjectDatabase.GetById(ItemID)) && (Object)/*isinst with value type is only supported in some contexts*/ != (Object)null) { m_SubSpriteObject = new GameObject("Item Display Object", new Type[1] { typeof(tk2dSprite) }) { layer = 0 }; m_SubSpriteObject.transform.position = ((BraveBehaviour)this).transform.position + new Vector3(0.95f, 1f); m_ItemSprite = m_SubSpriteObject.GetComponent(); tk2dSprite itemSprite = m_ItemSprite; tk2dBaseSprite sprite = ((BraveBehaviour)PickupObjectDatabase.GetById(ItemID)).sprite; ExpandUtility.DuplicateSprite(itemSprite, (tk2dSprite)(object)((sprite is tk2dSprite) ? sprite : null)); if (m_ParentRoom != null) { m_SubSpriteObject.transform.parent = m_ParentRoom.hierarchyParent; } if (AddOutline) { SpriteOutlineManager.AddOutlineToSprite((tk2dBaseSprite)(object)m_ItemSprite, BaseOutlineColor, 0.1f, 0f, (OutlineType)0); } } ((BraveBehaviour)this).sprite.HeightOffGround = -2f; if (Object.op_Implicit((Object)(object)m_ItemSprite)) { ((BraveBehaviour)this).sprite.AttachRenderer((tk2dBaseSprite)(object)m_ItemSprite); if (AddOutline) { SpriteOutlineManager.AddOutlineToSprite((tk2dBaseSprite)(object)m_ItemSprite, BaseOutlineColor, 0.1f, 0f, (OutlineType)0); } ((tk2dBaseSprite)m_ItemSprite).HeightOffGround = 0.5f; ((tk2dBaseSprite)m_ItemSprite).depthUsesTrimmedBounds = true; ((tk2dBaseSprite)m_ItemSprite).UpdateZDepth(); } ((BraveBehaviour)this).sprite.UpdateZDepth(); } public void OnEnteredRange(PlayerController interactor) { //IL_0030: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)this)) { return; } if (Object.op_Implicit((Object)(object)m_ItemSprite)) { if (AddOutline) { SpriteOutlineManager.RemoveOutlineFromSprite((tk2dBaseSprite)(object)m_ItemSprite, true); } SpriteOutlineManager.AddOutlineToSprite((tk2dBaseSprite)(object)m_ItemSprite, Color.white, 0.1f, 0f, (OutlineType)0); } ((BraveBehaviour)this).sprite.UpdateZDepth(); } public void OnExitRange(PlayerController interactor) { //IL_0031: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)this) && Object.op_Implicit((Object)(object)m_ItemSprite)) { SpriteOutlineManager.RemoveOutlineFromSprite((tk2dBaseSprite)(object)m_ItemSprite, true); if (AddOutline) { SpriteOutlineManager.AddOutlineToSprite((tk2dBaseSprite)(object)m_ItemSprite, BaseOutlineColor, 0.1f, 0f, (OutlineType)0); } ((BraveBehaviour)this).sprite.UpdateZDepth(); } } public float GetDistanceToPoint(Vector2 point) { //IL_0006: 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_0010: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_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_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0049: 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_006a: 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_0083: 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_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) Bounds bounds = ((BraveBehaviour)this).sprite.GetBounds(); ((Bounds)(ref bounds)).SetMinMax(((Bounds)(ref bounds)).min + ((BraveBehaviour)this).transform.position, ((Bounds)(ref bounds)).max + ((BraveBehaviour)this).transform.position); float num = Mathf.Max(Mathf.Min(point.x, ((Bounds)(ref bounds)).max.x), ((Bounds)(ref bounds)).min.x); float num2 = Mathf.Max(Mathf.Min(point.y, ((Bounds)(ref bounds)).max.y), ((Bounds)(ref bounds)).min.y); return Mathf.Sqrt((point.x - num) * (point.x - num) + (point.y - num2) * (point.y - num2)); } public float GetOverrideMaxDistance() { return -1f; } public string GetAnimationState(PlayerController interactor, out bool shouldBeFlipped) { shouldBeFlipped = false; return string.Empty; } protected override void OnDestroy() { ((DungeonPlaceableBehaviour)this).OnDestroy(); } } public class ExpandMaybeLoseAmmoOnDamage : MonoBehaviour, IGunInheritable { public bool IsABootlegWeapon; public bool DepleteAmmoOnDamage; public bool HasBootlegTransmorgify; public bool IsBootlegShotgun; public float DepleteAmmoOnDamageOdds; public List TransfmorgifyTargetGUIDs; private bool m_hasAwoken; private bool m_gunBroken; private Gun m_gun; private PlayerController m_playerOwner; public bool Broken { get { return m_gunBroken; } set { m_gunBroken = value; } } public ExpandMaybeLoseAmmoOnDamage() { IsABootlegWeapon = true; DepleteAmmoOnDamage = true; DepleteAmmoOnDamageOdds = 0.2f; HasBootlegTransmorgify = true; IsBootlegShotgun = false; TransfmorgifyTargetGUIDs = new List(); m_gunBroken = false; } private void Awake() { m_hasAwoken = true; if (!Object.op_Implicit((Object)(object)m_gun)) { m_gun = ((Component)this).GetComponent(); } if (Object.op_Implicit((Object)(object)m_gun)) { m_gun.OnInitializedWithOwner = (Action)Delegate.Combine(m_gun.OnInitializedWithOwner, new Action(OnGunInitialized)); m_gun.OnDropped = (Action)Delegate.Combine(m_gun.OnDropped, new Action(OnGunDroppedOrDestroyed)); if ((Object)(object)m_gun.CurrentOwner != (Object)null) { OnGunInitialized(m_gun.CurrentOwner); } if (TransfmorgifyTargetGUIDs != null && TransfmorgifyTargetGUIDs.Count <= 0 && IsBootlegShotgun) { List list = new List { ExpandEnemyDatabase.BootlegShotgunManBlueGUID, ExpandEnemyDatabase.BootlegShotgunManRedGUID }; list = BraveUtility.Shuffle(list); TransfmorgifyTargetGUIDs.Add(BraveUtility.RandomElement(list)); } } } private void Start() { } private void Update() { } private void OnGunInitialized(GameActor actor) { if ((Object)(object)m_playerOwner != (Object)null) { OnGunDroppedOrDestroyed(); } if (!((Object)(object)actor == (Object)null) && actor is PlayerController) { m_playerOwner = (PlayerController)(object)((actor is PlayerController) ? actor : null); m_playerOwner.OnReceivedDamage += OnReceivedDamage; Gun gun = m_gun; gun.PostProcessProjectile = (Action)Delegate.Combine(gun.PostProcessProjectile, new Action(TransmorgifyPostProcess)); } } public void TransmorgifyPostProcess(Projectile projectile) { projectile.CanTransmogrify = HasBootlegTransmorgify; if (HasBootlegTransmorgify) { projectile.ChanceToTransmogrify = 0.1f; projectile.TransmogrifyTargetGuids = TransfmorgifyTargetGUIDs.ToArray(); } } private void OnReceivedDamage(PlayerController player) { if (Object.op_Implicit((Object)(object)player) && (Object)(object)((GameActor)player).CurrentGun == (Object)(object)m_gun) { if (!m_gunBroken) { m_gunBroken = true; } if (DepleteAmmoOnDamage && (double)Random.value <= 0.5) { m_gun.ammo = 0; } } } private void OnGunDroppedOrDestroyed() { if ((Object)(object)m_playerOwner != (Object)null) { m_playerOwner.OnReceivedDamage -= OnReceivedDamage; m_playerOwner = null; } } public void InheritData(Gun sourceGun) { if (Object.op_Implicit((Object)(object)sourceGun)) { if (!m_hasAwoken) { m_gun = ((Component)this).GetComponent(); } ExpandMaybeLoseAmmoOnDamage component = ((Component)sourceGun).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { m_gunBroken = component.m_gunBroken; } } } public void MidGameSerialize(List data, int dataIndex) { } public void MidGameDeserialize(List data, ref int dataIndex) { } private void OnDestroy() { OnGunDroppedOrDestroyed(); } } public class ExpandNoteDoer : DungeonPlaceableBehaviour, IPlayerInteractable { public enum NoteBackgroundType { LETTER, STONE, WOOD, NOTE } public NoteBackgroundType noteBackgroundType; public string stringKey; public bool useAdditionalStrings; public string[] additionalStrings; public bool isNormalNote; public bool useItemsTable; public bool alreadyLocalized; public Transform textboxSpawnPoint; private bool m_boxIsExtant; public bool DestroyedOnFinish; private string m_selectedDisplayString; public ExpandNoteDoer() { stringKey = "Insert String Here"; useAdditionalStrings = false; additionalStrings = new string[0]; isNormalNote = true; useItemsTable = false; alreadyLocalized = true; DestroyedOnFinish = false; noteBackgroundType = NoteBackgroundType.WOOD; } public void Start() { if ((Object)(object)((BraveBehaviour)this).majorBreakable != (Object)null) { MajorBreakable majorBreakable = ((BraveBehaviour)this).majorBreakable; majorBreakable.OnBreak = (Action)Delegate.Combine(majorBreakable.OnBreak, new Action(OnBroken)); } } private void OnBroken() { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) GameManager.Instance.Dungeon.data.GetAbsoluteRoomFromPosition(Vector3Extensions.IntXY(((BraveBehaviour)this).transform.position, (VectorConversions)0)).DeregisterInteractable((IPlayerInteractable)(object)this); } private void OnDisable() { if (m_boxIsExtant) { GameUIRoot.Instance.ShowCoreUI(string.Empty); m_boxIsExtant = false; TextBoxManager.ClearTextBoxImmediate(textboxSpawnPoint); } } public float GetDistanceToPoint(Vector2 point) { //IL_0027: 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_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0058: 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_006a: 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_008b: 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_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: 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_00cd: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)((BraveBehaviour)this).sprite)) { if (m_boxIsExtant) { ClearBox(); } return 1000f; } Bounds bounds = ((BraveBehaviour)this).sprite.GetBounds(); ((Bounds)(ref bounds)).SetMinMax(((Bounds)(ref bounds)).min + ((BraveBehaviour)this).transform.position, ((Bounds)(ref bounds)).max + ((BraveBehaviour)this).transform.position); float num = Mathf.Max(Mathf.Min(point.x, ((Bounds)(ref bounds)).max.x), ((Bounds)(ref bounds)).min.x); float num2 = Mathf.Max(Mathf.Min(point.y, ((Bounds)(ref bounds)).max.y), ((Bounds)(ref bounds)).min.y); return Mathf.Sqrt((point.x - num) * (point.x - num) + (point.y - num2) * (point.y - num2)); } public float GetOverrideMaxDistance() { return -1f; } public void OnEnteredRange(PlayerController interactor) { //IL_001b: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)this)) { SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)this).sprite, false); SpriteOutlineManager.AddOutlineToSprite(((BraveBehaviour)this).sprite, Color.white, 0.1f, 0f, (OutlineType)0); ((BraveBehaviour)this).sprite.UpdateZDepth(); } } public void OnExitRange(PlayerController interactor) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)this)) { if (m_boxIsExtant) { ClearBox(); } SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)this).sprite, true); SpriteOutlineManager.AddOutlineToSprite(((BraveBehaviour)this).sprite, Color.black, 0.1f, 0f, (OutlineType)0); ((BraveBehaviour)this).sprite.UpdateZDepth(); } } private void ClearBox() { //IL_0047: Unknown result type (might be due to invalid IL or missing references) GameUIRoot.Instance.ShowCoreUI(string.Empty); m_boxIsExtant = false; TextBoxManager.ClearTextBox(textboxSpawnPoint); if (DestroyedOnFinish) { ((DungeonPlaceableBehaviour)this).GetAbsoluteParentRoom().DeregisterInteractable((IPlayerInteractable)(object)this); RoomHandler.unassignedInteractableObjects.Remove((IPlayerInteractable)(object)this); LootEngine.DoDefaultItemPoof(((BraveBehaviour)this).sprite.WorldCenter, false, false); Object.Destroy((Object)(object)((Component)this).gameObject); } } public void Interact(PlayerController interactor) { //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) if (m_boxIsExtant) { ClearBox(); return; } GameUIRoot.Instance.HideCoreUI(string.Empty); m_boxIsExtant = true; string text = m_selectedDisplayString; if (m_selectedDisplayString == null) { text = (alreadyLocalized ? stringKey : ((!useItemsTable) ? StringTableManager.GetLongString(stringKey) : StringTableManager.GetItemsLongDescription(stringKey))); if (useAdditionalStrings) { if (isNormalNote) { text = (alreadyLocalized ? additionalStrings[Random.Range(0, additionalStrings.Length)] : ((!useItemsTable) ? StringTableManager.GetLongString(additionalStrings[Random.Range(0, additionalStrings.Length)]) : StringTableManager.GetItemsLongDescription(additionalStrings[Random.Range(0, additionalStrings.Length)]))); } else if (GameStatsManager.Instance.GetFlag((GungeonFlags)800)) { text = (alreadyLocalized ? additionalStrings[Random.Range(0, additionalStrings.Length)] : ((!useItemsTable) ? StringTableManager.GetLongString(additionalStrings[Random.Range(0, additionalStrings.Length)]) : StringTableManager.GetItemsLongDescription(additionalStrings[Random.Range(0, additionalStrings.Length)]))); } } if (stringKey == "#IRONCOIN_SHORTDESC") { text = " \n" + text + "\n "; } m_selectedDisplayString = text; } switch (noteBackgroundType) { case NoteBackgroundType.LETTER: TextBoxManager.ShowLetterBox(textboxSpawnPoint.position, textboxSpawnPoint, -1f, text, true, false); break; case NoteBackgroundType.STONE: TextBoxManager.ShowStoneTablet(textboxSpawnPoint.position, textboxSpawnPoint, -1f, text, true, false); break; case NoteBackgroundType.WOOD: TextBoxManager.ShowWoodPanel(textboxSpawnPoint.position, textboxSpawnPoint, -1f, text, true, false); break; case NoteBackgroundType.NOTE: TextBoxManager.ShowNote(textboxSpawnPoint.position, textboxSpawnPoint, -1f, text, true, false); break; } if (useAdditionalStrings && !isNormalNote) { GameStatsManager.Instance.SetFlag((GungeonFlags)800, true); } } public string GetAnimationState(PlayerController interactor, out bool shouldBeFlipped) { shouldBeFlipped = false; return string.Empty; } protected override void OnDestroy() { ((DungeonPlaceableBehaviour)this).OnDestroy(); } } public class ExpandParasiteBossDeathController : BraveBehaviour { public List explosionVfx; public List bigExplosionVfx; public float explosionMidDelay; public float bigExplosionMidDelay; public int explosionCount; public int bigExplosionCount; public ExpandParasiteBossDeathController() { explosionMidDelay = 0.3f; explosionCount = 10; bigExplosionMidDelay = 0.3f; bigExplosionCount = 10; } public void Start() { ((BraveBehaviour)this).healthHaver.ManualDeathHandling = true; ((BraveBehaviour)this).healthHaver.OnPreDeath += OnBossDeath; ((BraveBehaviour)this).healthHaver.OverrideKillCamTime = 5f; } private void OnBossDeath(Vector2 dir) { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) ((Behaviour)((BraveBehaviour)this).behaviorSpeculator).enabled = false; ((BraveBehaviour)this).aiActor.BehaviorOverridesVelocity = true; ((BraveBehaviour)this).aiActor.BehaviorVelocity = Vector2.zero; ((BraveBehaviour)this).aiAnimator.PlayUntilCancelled("die", false, (string)null, -1f, false); ((MonoBehaviour)GameManager.Instance.Dungeon).StartCoroutine(OnDeathExplosionsCR()); } private IEnumerator OnDeathExplosionsCR() { PixelCollider collider = ((BraveBehaviour)this).specRigidbody.HitboxPixelCollider; for (int i = 0; i < explosionCount; i++) { Vector2 unitBottomLeft = collider.UnitBottomLeft; Vector2 unitTopRight = collider.UnitTopRight; GameObject obj = BraveUtility.RandomElement(explosionVfx); Vector2 val = BraveUtility.RandomVector2(unitBottomLeft, unitTopRight, new Vector2(0.5f, 0.5f)); tk2dBaseSprite component = SpawnManager.SpawnVFX(obj, Vector2.op_Implicit(val), Quaternion.identity).GetComponent(); component.HeightOffGround = 3f; ((BraveBehaviour)this).sprite.AttachRenderer(component); ((BraveBehaviour)this).sprite.UpdateZDepth(); if (i < explosionCount - 1) { yield return (object)new WaitForSeconds(explosionMidDelay); } } for (int j = 0; j < bigExplosionCount; j++) { Vector2 unitBottomLeft2 = collider.UnitBottomLeft; Vector2 unitTopRight2 = collider.UnitTopRight; GameObject obj2 = BraveUtility.RandomElement(bigExplosionVfx); Vector2 val2 = BraveUtility.RandomVector2(unitBottomLeft2, unitTopRight2, new Vector2(1f, 1f)); tk2dBaseSprite component2 = SpawnManager.SpawnVFX(obj2, Vector2.op_Implicit(val2), Quaternion.identity).GetComponent(); component2.HeightOffGround = 3f; ((BraveBehaviour)this).sprite.AttachRenderer(component2); ((BraveBehaviour)this).sprite.UpdateZDepth(); if (j < bigExplosionCount - 1) { yield return (object)new WaitForSeconds(bigExplosionMidDelay); } } ((BraveBehaviour)this).healthHaver.DeathAnimationComplete((tk2dSpriteAnimator)null, (tk2dSpriteAnimationClip)null); Object.Destroy((Object)(object)((Component)this).gameObject); yield return (object)new WaitForSeconds(2f); } protected override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); } } public class ExpandParasiteBossPortalBehavior : BasicAttackBehavior { public enum ShadowSupport { None, Fade, Animate } private enum TeleportState { None, TeleportOut, Gone, TeleportIn, PostTeleport } public bool AttackableDuringAnimation; public float GoneTime; public float PortalSize; public string teleportOutAnim; public string teleportInAnim; public bool teleportRequiresTransparency; public bool hasOutlinesDuringAnim; public string portalAnim; public ShadowSupport shadowSupport; public string shadowOutAnim; public string shadowInAnim; public bool ManuallyDefineRoom; public Vector2 roomMin; public Vector2 roomMax; private DimensionFogController m_portalController; private tk2dBaseSprite m_shadowSprite; private Shader m_cachedShader; private float m_timer; private TeleportState m_state; private TeleportState State { get { return m_state; } set { EndState(m_state); m_state = value; BeginState(m_state); } } public ExpandParasiteBossPortalBehavior() { //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_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) GoneTime = 1f; PortalSize = 16f; teleportOutAnim = "teleport_out"; teleportInAnim = "teleport_in"; hasOutlinesDuringAnim = false; portalAnim = "weak_attack_charge"; shadowSupport = ShadowSupport.None; shadowOutAnim = null; shadowInAnim = null; ManuallyDefineRoom = true; roomMin = new Vector2(12f, 47f); roomMax = new Vector2(42f, 63f); base.Cooldown = 15f; base.CooldownVariance = 15f; base.AttackCooldown = 0f; base.GlobalCooldown = 0f; base.InitialCooldown = 0f; base.InitialCooldownVariance = 0f; base.GroupName = "teleport"; base.GroupCooldown = 6f; base.MinRange = 0f; base.Range = 0f; base.MinWallDistance = 0f; base.MaxEnemiesInRoom = 0f; base.MinHealthThreshold = 0f; base.MaxHealthThreshold = 1f; base.HealthThresholds = new float[0]; base.AccumulateHealthThresholds = true; base.targetAreaStyle = null; base.IsBlackPhantom = false; base.resetCooldownOnDamage = null; base.RequiresLineOfSight = false; base.MaxUsages = 0; } public override void Start() { ((BasicAttackBehavior)this).Start(); m_portalController = Object.FindObjectOfType(); } public override void Upkeep() { ((BasicAttackBehavior)this).Upkeep(); ((BehaviorBase)this).DecrementTimer(ref m_timer, false); } public override BehaviorResult Update() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) ((BasicAttackBehavior)this).Update(); if ((Object)(object)m_shadowSprite == (Object)null) { m_shadowSprite = ((GameActor)((BehaviorBase)this).m_aiActor).ShadowObject.GetComponent(); } if (((AttackBehaviorBase)this).IsReady()) { if (Object.op_Implicit((Object)(object)((BehaviorBase)this).m_aiActor.TargetRigidbody)) { State = TeleportState.TeleportOut; ((BehaviorBase)this).m_updateEveryFrame = true; return (BehaviorResult)4; } return (BehaviorResult)0; } return (BehaviorResult)0; } public override ContinuousBehaviorResult ContinuousUpdate() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) ((BehaviorBase)this).ContinuousUpdate(); if (State == TeleportState.TeleportOut) { if (shadowSupport == ShadowSupport.Fade) { m_shadowSprite.color = Vector3Extensions.WithAlpha(m_shadowSprite.color, 1f - ((BehaviorBase)this).m_aiAnimator.CurrentClipProgress); } if (!((BehaviorBase)this).m_aiAnimator.IsPlaying(teleportOutAnim)) { State = TeleportState.Gone; } } else if (State == TeleportState.Gone) { if (m_timer <= 0f) { State = TeleportState.TeleportIn; } } else if (State == TeleportState.TeleportIn) { if (shadowSupport == ShadowSupport.Fade) { m_shadowSprite.color = Vector3Extensions.WithAlpha(m_shadowSprite.color, ((BehaviorBase)this).m_aiAnimator.CurrentClipProgress); } if (Object.op_Implicit((Object)(object)((BehaviorBase)this).m_aiShooter)) { ((BehaviorBase)this).m_aiShooter.ToggleGunAndHandRenderers(false, "ExpandParasiteBossPortalBehavior"); } if (!((BehaviorBase)this).m_aiAnimator.IsPlaying(teleportInAnim)) { State = TeleportState.PostTeleport; } } else if (State == TeleportState.PostTeleport && !((BehaviorBase)this).m_aiAnimator.IsPlaying(portalAnim)) { State = TeleportState.None; return (ContinuousBehaviorResult)1; } return (ContinuousBehaviorResult)0; } public override void EndContinuousUpdate() { ((BehaviorBase)this).EndContinuousUpdate(); ((BehaviorBase)this).m_updateEveryFrame = false; ((BasicAttackBehavior)this).UpdateCooldowns(); } public override bool IsOverridable() { return false; } private void BeginState(TeleportState state) { switch (state) { case TeleportState.TeleportOut: if (teleportRequiresTransparency) { m_cachedShader = ((BraveBehaviour)((BehaviorBase)this).m_aiActor).renderer.material.shader; ((BraveBehaviour)((BehaviorBase)this).m_aiActor).sprite.usesOverrideMaterial = true; ((BraveBehaviour)((BehaviorBase)this).m_aiActor).renderer.material.shader = ShaderCache.Acquire("Brave/LitBlendUber"); } ((BehaviorBase)this).m_aiAnimator.PlayUntilCancelled(teleportOutAnim, true, (string)null, -1f, false); if (shadowSupport == ShadowSupport.Animate) { ((BraveBehaviour)m_shadowSprite).spriteAnimator.PlayAndForceTime(shadowOutAnim, ((BehaviorBase)this).m_aiAnimator.CurrentClipLength); } ((BehaviorBase)this).m_aiActor.ClearPath(); if (!AttackableDuringAnimation) { ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.CollideWithOthers = false; ((GameActor)((BehaviorBase)this).m_aiActor).IsGone = true; } if (Object.op_Implicit((Object)(object)((BehaviorBase)this).m_aiShooter)) { ((BehaviorBase)this).m_aiShooter.ToggleGunAndHandRenderers(false, "ExpandParasiteBossPortalBehavior"); } if (!hasOutlinesDuringAnim) { SpriteOutlineManager.ToggleOutlineRenderers(((BraveBehaviour)((BehaviorBase)this).m_aiActor).sprite, false); } break; case TeleportState.Gone: if (GoneTime <= 0f) { State = TeleportState.TeleportIn; break; } m_timer = GoneTime; ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.CollideWithOthers = false; ((GameActor)((BehaviorBase)this).m_aiActor).IsGone = true; ((BraveBehaviour)((BraveBehaviour)((BehaviorBase)this).m_aiActor).sprite).renderer.enabled = false; break; case TeleportState.TeleportIn: DoTeleport(); ((BehaviorBase)this).m_aiAnimator.PlayUntilFinished(teleportInAnim, true, (string)null, -1f, false); if (shadowSupport == ShadowSupport.Animate) { ((BraveBehaviour)m_shadowSprite).spriteAnimator.PlayAndForceTime(shadowInAnim, ((BehaviorBase)this).m_aiAnimator.CurrentClipLength); } ((BraveBehaviour)m_shadowSprite).renderer.enabled = true; if (AttackableDuringAnimation) { ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.CollideWithOthers = true; ((GameActor)((BehaviorBase)this).m_aiActor).IsGone = false; } ((BraveBehaviour)((BraveBehaviour)((BehaviorBase)this).m_aiActor).sprite).renderer.enabled = true; if (Object.op_Implicit((Object)(object)((BehaviorBase)this).m_aiShooter)) { ((BehaviorBase)this).m_aiShooter.ToggleGunAndHandRenderers(false, "ExpandParasiteBossPortalBehavior"); } if (hasOutlinesDuringAnim) { SpriteOutlineManager.ToggleOutlineRenderers(((BraveBehaviour)((BehaviorBase)this).m_aiActor).sprite, true); } break; case TeleportState.PostTeleport: ((BehaviorBase)this).m_aiAnimator.PlayUntilFinished(portalAnim, true, (string)null, -1f, false); if (Object.op_Implicit((Object)(object)m_portalController)) { m_portalController.targetRadius = PortalSize; } break; } } private void EndState(TeleportState state) { //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) switch (state) { case TeleportState.TeleportOut: ((BraveBehaviour)m_shadowSprite).renderer.enabled = false; if (hasOutlinesDuringAnim) { SpriteOutlineManager.ToggleOutlineRenderers(((BraveBehaviour)((BehaviorBase)this).m_aiActor).sprite, false); } break; case TeleportState.TeleportIn: if (teleportRequiresTransparency) { ((BraveBehaviour)((BehaviorBase)this).m_aiActor).sprite.usesOverrideMaterial = false; ((BraveBehaviour)((BehaviorBase)this).m_aiActor).renderer.material.shader = m_cachedShader; } if (shadowSupport == ShadowSupport.Fade) { m_shadowSprite.color = Vector3Extensions.WithAlpha(m_shadowSprite.color, 1f); } ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.CollideWithOthers = true; ((GameActor)((BehaviorBase)this).m_aiActor).IsGone = false; if (Object.op_Implicit((Object)(object)((BehaviorBase)this).m_aiShooter)) { ((BehaviorBase)this).m_aiShooter.ToggleGunAndHandRenderers(true, "BossFinalMarinePortalBehavior"); } if (!hasOutlinesDuringAnim) { SpriteOutlineManager.ToggleOutlineRenderers(((BraveBehaviour)((BehaviorBase)this).m_aiActor).sprite, true); } break; } } private void DoTeleport() { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: 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_0032: 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_0047: 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) //IL_005c: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //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) Vector2 val = ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.UnitCenter - Vector3Extensions.XY(((BraveBehaviour)((BehaviorBase)this).m_aiActor).transform.position); IntVector2 val2 = Vector2Extensions.ToIntVector2(roomMin + (roomMax - roomMin + Vector2.one) / 2f, (VectorConversions)0); ((BraveBehaviour)((BehaviorBase)this).m_aiActor).transform.position = Vector2.op_Implicit(Pathfinder.GetClearanceOffset(val2, ((BehaviorBase)this).m_aiActor.Clearance) - val); ((BraveBehaviour)((BehaviorBase)this).m_aiActor).specRigidbody.Reinitialize(); } } public class ExpandRemoveGunOnAmmoDepletion : MonoBehaviour { public int AmmoCutOff; public bool ExplodesOnDepletion; protected Gun m_gun; public ExpandRemoveGunOnAmmoDepletion() { AmmoCutOff = 0; ExplodesOnDepletion = true; } private void Start() { m_gun = ((Component)this).GetComponent(); } private void Update() { //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) if (!((Behaviour)this).enabled || !Object.op_Implicit((Object)(object)m_gun) || m_gun.ammo > AmmoCutOff || !(m_gun.CurrentOwner is PlayerController)) { return; } GameActor currentOwner = m_gun.CurrentOwner; PlayerController val = (PlayerController)(object)((currentOwner is PlayerController) ? currentOwner : null); if (Object.op_Implicit((Object)(object)val)) { val.inventory.RemoveGunFromInventory(m_gun); if (ExplodesOnDepletion) { Exploder.DoDefaultExplosion(Vector2.op_Implicit(((BraveBehaviour)m_gun).sprite.WorldCenter), Vector2.zero, (Action)null, true, (CoreDamageTypes)0, false); } Object.Destroy((Object)(object)((Component)m_gun).gameObject); } } } public class ExpandRewardPedestal : DungeonPlaceableBehaviour, IPlaceConfigurable, IPlayerInteractable { public int ItemID; public bool AddOutline; public bool DoSpawnVFX; public Color BaseOutlineColor; public Transform spawnTransform; [NonSerialized] public PickupObject contents; private tk2dBaseSprite m_itemDisplaySprite; private GameObject minimapIconInstance; private RoomHandler m_ParentRoom; private bool m_Interacted; public ExpandRewardPedestal() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) ItemID = 224; AddOutline = false; DoSpawnVFX = false; BaseOutlineColor = Color.black; m_Interacted = false; } public void Start() { //IL_0042: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)m_itemDisplaySprite) && m_ParentRoom != null) { m_ParentRoom.RegisterInteractable((IPlayerInteractable)(object)this); RegisterChestOnMinimap(m_ParentRoom); } else if (!Object.op_Implicit((Object)(object)m_itemDisplaySprite)) { ConfigureOnPlacement(Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)this).transform.position)); if (Object.op_Implicit((Object)(object)m_itemDisplaySprite)) { m_ParentRoom.RegisterInteractable((IPlayerInteractable)(object)this); RegisterChestOnMinimap(m_ParentRoom); } } } public void RegisterChestOnMinimap(RoomHandler r) { minimapIconInstance = Minimap.Instance.RegisterRoomIcon(r, BraveResources.Load("Global Prefabs/Minimap_Treasure_Icon", ".prefab"), false); } public void Interact(PlayerController player) { if (!m_Interacted && Object.op_Implicit((Object)(object)player)) { GiveItem(player); } } private void GiveItem(PlayerController player) { //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Expected O, but got Unknown //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) m_Interacted = true; if ((Object)(object)minimapIconInstance != (Object)null) { Minimap.Instance.DeregisterRoomIcon(m_ParentRoom, minimapIconInstance); } if (Object.op_Implicit((Object)(object)contents)) { LootEngine.GivePrefabToPlayer(((Component)contents).gameObject, player); if (contents is Gun) { AkSoundEngine.PostEvent("Play_OBJ_weapon_pickup_01", ((Component)this).gameObject); } else { AkSoundEngine.PostEvent("Play_OBJ_item_pickup_01", ((Component)this).gameObject); } GameObject val = Object.Instantiate((GameObject)ResourceCache.Acquire("Global VFX/VFX_Item_Pickup")); if (Object.op_Implicit((Object)(object)val)) { tk2dSprite component = val.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { ((tk2dBaseSprite)component).PlaceAtPositionByAnchor(Vector2.op_Implicit(m_itemDisplaySprite.WorldCenter), (Anchor)4); ((tk2dBaseSprite)component).HeightOffGround = 6f; ((tk2dBaseSprite)component).UpdateZDepth(); } } } if (m_ParentRoom != null) { m_ParentRoom.DeregisterInteractable((IPlayerInteractable)(object)this); } Object.Destroy((Object)(object)m_itemDisplaySprite); Object.Destroy((Object)(object)((Component)spawnTransform).gameObject); Object.Destroy((Object)(object)this); } public void ConfigureOnPlacement(RoomHandler room) { //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Expected O, but got Unknown //IL_00e5: 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_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Expected O, but got Unknown //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) m_ParentRoom = room; if (Object.op_Implicit((Object)(object)m_itemDisplaySprite)) { return; } if (!Object.op_Implicit((Object)(object)contents)) { contents = PickupObjectDatabase.GetById(ItemID); } if (Object.op_Implicit((Object)(object)contents)) { GameObject val = new GameObject("Display Sprite"); val.transform.parent = spawnTransform; m_itemDisplaySprite = (tk2dBaseSprite)(object)tk2dSprite.AddComponent(val, ((BraveBehaviour)contents).sprite.Collection, ((BraveBehaviour)contents).sprite.spriteId); if (AddOutline) { SpriteOutlineManager.AddOutlineToSprite(m_itemDisplaySprite, Color.black, 0.1f, 0.05f, (OutlineType)0); } ((BraveBehaviour)this).sprite.AttachRenderer(m_itemDisplaySprite); m_itemDisplaySprite.HeightOffGround = 0.25f; m_itemDisplaySprite.depthUsesTrimmedBounds = true; m_itemDisplaySprite.PlaceAtPositionByAnchor(spawnTransform.position, (Anchor)1); ((BraveBehaviour)m_itemDisplaySprite).transform.position = dfVectorExtensions.Quantize(((BraveBehaviour)m_itemDisplaySprite).transform.position, 0.0625f); if (DoSpawnVFX) { tk2dBaseSprite component = Object.Instantiate((GameObject)ResourceCache.Acquire("Global VFX/VFX_Item_Spawn_Poof")).GetComponent(); component.PlaceAtPositionByAnchor(Vector2Extensions.ToVector3ZUp(m_itemDisplaySprite.WorldCenter, 0f), (Anchor)4); component.HeightOffGround = 5f; component.UpdateZDepth(); } ((BraveBehaviour)this).sprite.UpdateZDepth(); } } public void OnEnteredRange(PlayerController interactor) { //IL_0030: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)this)) { return; } if (Object.op_Implicit((Object)(object)m_itemDisplaySprite)) { if (AddOutline) { SpriteOutlineManager.RemoveOutlineFromSprite(m_itemDisplaySprite, true); } SpriteOutlineManager.AddOutlineToSprite(m_itemDisplaySprite, Color.white, 0.1f, 0f, (OutlineType)0); } ((BraveBehaviour)this).sprite.UpdateZDepth(); } public void OnExitRange(PlayerController interactor) { //IL_0031: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)this) && Object.op_Implicit((Object)(object)m_itemDisplaySprite)) { SpriteOutlineManager.RemoveOutlineFromSprite(m_itemDisplaySprite, true); if (AddOutline) { SpriteOutlineManager.AddOutlineToSprite(m_itemDisplaySprite, BaseOutlineColor, 0.1f, 0f, (OutlineType)0); } ((BraveBehaviour)this).sprite.UpdateZDepth(); } } public float GetDistanceToPoint(Vector2 point) { //IL_0006: 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_0010: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_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_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0049: 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_006a: 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_0083: 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_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) Bounds bounds = ((BraveBehaviour)this).sprite.GetBounds(); ((Bounds)(ref bounds)).SetMinMax(((Bounds)(ref bounds)).min + ((BraveBehaviour)this).transform.position, ((Bounds)(ref bounds)).max + ((BraveBehaviour)this).transform.position); float num = Mathf.Max(Mathf.Min(point.x, ((Bounds)(ref bounds)).max.x), ((Bounds)(ref bounds)).min.x); float num2 = Mathf.Max(Mathf.Min(point.y, ((Bounds)(ref bounds)).max.y), ((Bounds)(ref bounds)).min.y); return Mathf.Sqrt((point.x - num) * (point.x - num) + (point.y - num2) * (point.y - num2)); } public float GetOverrideMaxDistance() { return -1f; } public string GetAnimationState(PlayerController interactor, out bool shouldBeFlipped) { shouldBeFlipped = false; return string.Empty; } protected override void OnDestroy() { ((DungeonPlaceableBehaviour)this).OnDestroy(); } } public class ExpandFakeChest : DungeonPlaceableBehaviour, IPlaceConfigurable, IPlayerInteractable { public enum ChestType { MusicSwitch, RickRoll, SurpriseChest, WestChest } public ChestType chestType; public Color BaseOutlineColor; public bool IsBroken; public bool IsWinnerChest; public bool surpriseChestDoesSpawnAnim; public string openAnimName; public string breakAnimName; public string spawnAnimClipName; public string chestKnockClipName; public string switchOnAnimName; public string switchOffAnimName; public string[] confettiNames; public List SurpriseChestEnemySpawnPool; public GameObject RickRollAnimationObject; public GameObject MinimapIconPrefab; public GameObject VFX_PreSpawn; public GameObject VFX_GroundHit; public float groundHitDelay; private bool m_configured; private bool m_Opened; private bool m_temporarilyUnopenable; private GameObject minimapIconInstance; private RoomHandler m_room; private RoomHandler m_registeredIconRoom; public bool Opened => m_Opened; public RoomHandler ParentRoom { get { return m_room; } set { m_room = value; } } public ExpandFakeChest() { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) chestType = ChestType.RickRoll; BaseOutlineColor = Color.black; switchOnAnimName = "RickRollSwitch_TurnOn"; switchOffAnimName = "RickRollSwitch_TurnOff"; confettiNames = new string[3] { "Global VFX/Confetti_Blue_001", "Global VFX/Confetti_Yellow_001", "Global VFX/Confetti_Green_001" }; SurpriseChestEnemySpawnPool = new List { ExpandEnemyDatabase.ClownkinNoFXGUID, ExpandEnemyDatabase.ClownkinAngryGUID, "01972dee89fc4404a5c408d50007dad5", "05891b158cd542b1a5f3df30fb67a7ff", "4d37ce3d666b4ddda8039929225b7ede", "8bb5578fba374e8aae8e10b754e61d62", "f905765488874846b7ff257ff81d6d0c", "37340393f97f41b2822bc02d14654172", "5f3abc2d561b4b9c9e72b879c6f10c7e", "1bd8e49f93614e76b140077ff2e33f2b", "1a78cfb776f54641b832e92c44021cf2", "2752019b770f473193b08b4005dc781f", "70216cae6c1346309d86d4a0b4603045", "d4dd2b2bbda64cc9bcec534b4e920518", "a9cc6a4e9b3d46ea871e70a03c9f77d4", "6b7ef9e5d05b4f96b04f05ef4a0d1b18", "98fdf153a4dd4d51bf0bafe43f3c77ff", "be0683affb0e41bbb699cb7125fdded6", "8b43a5c59b854eb780f9ab669ec26b7a", "d1c9781fdac54d9e8498ed89210a0238", "76bc43539fc24648bff4568c75c686d1", "226fd90be3a64958a5b13cb0a4f43e97", "6f818f482a5c47fd8f38cce101f6566c", "143be8c9bbb84e3fb3ab98bcd4cf5e5b", "06f5623a351c4f28bc8c6cda56004b80", "ff4f54ce606e4604bf8d467c1279be3e", "39e6f47a16ab4c86bec4b12984aece4c", "f020570a42164e2699dcf57cac8a495c", "37de0df92697431baa47894a075ba7e9", "5861e5a077244905a8c25c2b7b4d6ebb", "906d71ccc1934c02a6f4ff2e9c07c9ec", "9eba44a0ea6c4ea386ff02286dd0e6bd", "05cb719e0178478685dc610f8b3e8bfc" }; spawnAnimClipName = "enemy_chest_appear"; chestKnockClipName = "enemy_chest_knock"; IsWinnerChest = false; surpriseChestDoesSpawnAnim = false; groundHitDelay = 0.73f; IsBroken = false; m_configured = false; m_Opened = false; m_temporarilyUnopenable = false; } public void Interact(PlayerController player) { if (chestType != 0 && Object.op_Implicit((Object)(object)((BraveBehaviour)this).majorBreakable)) { ((BraveBehaviour)this).majorBreakable.SpawnItemOnBreak = false; } switch (chestType) { case ChestType.MusicSwitch: ToggleSwitch(); break; case ChestType.RickRoll: if (!m_Opened) { OpenAsRickRoll(player); } break; case ChestType.SurpriseChest: if (!m_Opened) { OpenAsSurpriseChest(player); } break; case ChestType.WestChest: if (!m_Opened) { OpenAsWestChest(player); } break; } } public void OpenAsWestChest(PlayerController player) { if (Object.op_Implicit((Object)(object)player)) { if (m_registeredIconRoom != null) { Minimap.Instance.DeregisterRoomIcon(m_registeredIconRoom, minimapIconInstance); } m_Opened = true; m_room.DeregisterInteractable((IPlayerInteractable)(object)this); ((BraveBehaviour)this).spriteAnimator.Play(openAnimName); player.TriggerItemAcquisition(); ((MonoBehaviour)this).StartCoroutine(DoWestOpen()); } } public void OpenAsSurpriseChest(PlayerController player) { if (Object.op_Implicit((Object)(object)player)) { if (m_registeredIconRoom != null) { Minimap.Instance.DeregisterRoomIcon(m_registeredIconRoom, minimapIconInstance); } m_Opened = true; m_room.DeregisterInteractable((IPlayerInteractable)(object)this); ((BraveBehaviour)this).spriteAnimator.Play(openAnimName); player.TriggerItemAcquisition(); ((MonoBehaviour)this).StartCoroutine(DoSurprise()); } } public void OpenAsRickRoll(PlayerController player) { //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Invalid comparison between Unknown and I4 //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_0323: Unknown result type (might be due to invalid IL or missing references) //IL_0332: Unknown result type (might be due to invalid IL or missing references) //IL_0337: Unknown result type (might be due to invalid IL or missing references) //IL_033c: 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_01e3: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0231: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_027f: Unknown result type (might be due to invalid IL or missing references) //IL_028f: Unknown result type (might be due to invalid IL or missing references) //IL_0294: Unknown result type (might be due to invalid IL or missing references) //IL_02cd: Unknown result type (might be due to invalid IL or missing references) //IL_02dd: 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) if (!Object.op_Implicit((Object)(object)player)) { return; } if (m_registeredIconRoom != null) { Minimap.Instance.DeregisterRoomIcon(m_registeredIconRoom, minimapIconInstance); } m_Opened = true; m_room.DeregisterInteractable((IPlayerInteractable)(object)this); MajorBreakable component = ((Component)this).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.usesTemporaryZeroHitPointsState = false; } AkSoundEngine.PostEvent("play_obj_chest_open_01", ((Component)this).gameObject); ((BraveBehaviour)this).spriteAnimator.Play(openAnimName); player.TriggerItemAcquisition(); if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).majorBreakable)) { ((BraveBehaviour)this).majorBreakable.OnBreak = (Action)Delegate.Remove(((BraveBehaviour)this).majorBreakable.OnBreak, new Action(OnBroken)); } if ((int)m_room.area.PrototypeRoomCategory != 6) { Vector3 val = ((IntVector2)(ref m_room.area.basePosition)).ToVector3(); List list = new List { "88b6b6a93d4b4234a67844ef4728382c", "4d37ce3d666b4ddda8039929225b7ede", "01972dee89fc4404a5c408d50007dad5", "01972dee89fc4404a5c408d50007dad5" }; List list2 = new List { ExpandEnemyDatabase.ClownkinNoFXGUID, ExpandEnemyDatabase.BootlegBulletManGUID, ExpandEnemyDatabase.BootlegBulletManBandanaGUID, ExpandEnemyDatabase.BootlegShotgunManRedGUID, ExpandEnemyDatabase.BootlegShotgunManBlueGUID }; list = BraveUtility.Shuffle(list); for (int i = 0; i < list.Count; i++) { if (BraveUtility.RandomBool()) { list[i] = BraveUtility.RandomElement(BraveUtility.Shuffle(list2)); } } if (!string.IsNullOrEmpty(m_room.GetRoomName()) && (m_room.GetRoomName().ToLower().Contains("gungeon_rewardroom_1") | m_room.GetRoomName().ToLower().Contains(((Object)ExpandRoomPrefabs.Expand_Apache_RickRollChest).name.ToLower()))) { ExpandUtility.SpawnParaDrop(m_room, val + new Vector3(4f, 3f, 0f), null, BraveUtility.RandomElement(list)); ExpandUtility.SpawnParaDrop(m_room, val + new Vector3(4f, 9f, 0f), null, BraveUtility.RandomElement(list)); ExpandUtility.SpawnParaDrop(m_room, val + new Vector3(13f, 3f, 0f), null, BraveUtility.RandomElement(list)); ExpandUtility.SpawnParaDrop(m_room, val + new Vector3(13f, 9f, 0f), null, BraveUtility.RandomElement(list)); } else { Vector2 val2 = ((BraveBehaviour)this).specRigidbody.GetPixelCollider((ColliderType)2).UnitCenter - new Vector2(0f, 0.5f); AIActor val3 = AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(BraveUtility.RandomElement(list)), val2, m_room, true, (AwakenAnimationType)2, true); if (Object.op_Implicit((Object)(object)val3)) { ((Component)val3).gameObject.AddComponent().Configured = true; } } ((MonoBehaviour)this).StartCoroutine(DelayedRoomSeal()); } ((MonoBehaviour)this).StartCoroutine(DoRickRoll()); } public void ToggleSwitch() { m_Opened = true; AkSoundEngine.PostEvent("Play_OBJ_plate_press_01", ((Component)this).gameObject); ((MonoBehaviour)GameManager.Instance).StartCoroutine(DoToggleSwitch()); } private void DoConfetti(Vector2 startPosition) { //IL_0000: 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_0010: 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) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0058: 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_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_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008b: 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_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) Vector2 val = startPosition + new Vector2(-0.75f, 0.25f); for (int i = 0; i < 16; i++) { GameObject val2 = (GameObject)ResourceCache.Acquire(BraveUtility.RandomElement(confettiNames)); if (Object.op_Implicit((Object)(object)val2)) { WaftingDebrisObject component = Object.Instantiate(val2).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { ((BraveBehaviour)component).sprite.PlaceAtPositionByAnchor(Vector2Extensions.ToVector3ZUp(val, 0f) + new Vector3(0.5f, 0.5f, 0f), (Anchor)4); Vector2 insideUnitCircle = Random.insideUnitCircle; insideUnitCircle.y = 0f - Mathf.Abs(insideUnitCircle.y); ((DebrisObject)component).Trigger(Vector2Extensions.ToVector3ZUp(insideUnitCircle, 1.5f) * Random.Range(0.5f, 2f), 0.5f, 0f); } } } if (BraveUtility.RandomBool()) { AkSoundEngine.PostEvent("Play_EX_PartySFX_01", ((Component)this).gameObject); } else { AkSoundEngine.PostEvent("Play_OBJ_prize_won_01", ((Component)this).gameObject); } } private IEnumerator DoWestOpen() { if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).majorBreakable)) { ((BraveBehaviour)this).majorBreakable.TemporarilyInvulnerable = true; } yield return (object)new WaitForSeconds(0.1f); AkSoundEngine.PostEvent("play_obj_chest_open_01", ((Component)this).gameObject); if (IsWinnerChest) { DoConfetti(((BraveBehaviour)this).sprite.WorldBottomCenter); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).majorBreakable)) { ((BraveBehaviour)this).majorBreakable.TemporarilyInvulnerable = false; } yield return null; } private IEnumerator DoSurprise() { yield return (object)new WaitForSeconds(0.7f); AkSoundEngine.PostEvent("play_obj_chest_open_01", ((Component)this).gameObject); DoConfetti(((BraveBehaviour)this).sprite.WorldBottomCenter); float value = Random.value; Vector2 unitCenter = ((BraveBehaviour)this).specRigidbody.GetPixelCollider((ColliderType)2).UnitCenter; ItemQuality val = ((!((double)Random.value < 0.3)) ? ((ItemQuality)((!(value >= 0.2f)) ? 2 : (BraveUtility.RandomBool() ? 1 : 2))) : ((ItemQuality)((!(value >= 0.2f)) ? 3 : ((!BraveUtility.RandomBool()) ? 3 : 2)))); SurpriseChestEnemySpawnPool = BraveUtility.Shuffle(SurpriseChestEnemySpawnPool); AIActor Enemy = AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(BraveUtility.RandomElement(SurpriseChestEnemySpawnPool)), unitCenter, m_room, true, (AwakenAnimationType)2, true); if (Object.op_Implicit((Object)(object)Enemy)) { Enemy.IgnoreForRoomClear = false; GenericLootTable val2 = ((!BraveUtility.RandomBool()) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable); PickupObject itemOfTypeAndQuality = LootEngine.GetItemOfTypeAndQuality(val, val2, false); if (Object.op_Implicit((Object)(object)itemOfTypeAndQuality)) { List list = new List { GlobalItemIds.SmallHeart, GlobalItemIds.FullHeart, GlobalItemIds.AmmoPickup, GlobalItemIds.SpreadAmmoPickup, GlobalItemIds.Spice, GlobalItemIds.Junk, GlobalItemIds.GoldJunk, GlobalItemIds.Key, GlobalItemIds.GlassGuonStone, GlobalItemIds.Junk, GlobalItemIds.GoldJunk, GlobalItemIds.SackKnightBoon, GlobalItemIds.Blank, GlobalItemIds.RatKey, GlobalItemIds.Map, 120 }; if (!GameStatsManager.Instance.IsRainbowRun | list.Contains(itemOfTypeAndQuality.PickupObjectId)) { Enemy.AdditionalSafeItemDrops.Add(itemOfTypeAndQuality); } else { ((Component)Enemy).gameObject.AddComponent(); } } ExpandParadropController expandParadropController = ((Component)Enemy).gameObject.AddComponent(); expandParadropController.ChangeScaleOnPopup = true; expandParadropController.Configured = true; } yield return null; if (Object.op_Implicit((Object)(object)Enemy) && !Enemy.IgnoreForRoomClear) { m_room.SealRoom(); } } private IEnumerator DoRickRoll() { yield return (object)new WaitForSeconds(0.1f); GameObject m_RickRollInstance = Object.Instantiate(RickRollAnimationObject, ((BraveBehaviour)this).transform.position + new Vector3(0.1f, 0.5f, 0f), Quaternion.identity); Vector3 localScale = Vector2Extensions.ToVector3ZUp(new Vector2(0.2f, 0.2f), 1f); m_RickRollInstance.layer = LayerMask.NameToLayer("Unpixelated"); m_RickRollInstance.transform.localScale = localScale; if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).majorBreakable)) { ((BraveBehaviour)this).majorBreakable.TemporarilyInvulnerable = true; } if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).sprite)) { ((BraveBehaviour)this).sprite.HeightOffGround = -2f; ((BraveBehaviour)this).sprite.UpdateZDepth(); } tk2dSpriteAnimator m_RickRollAnimator = m_RickRollInstance.GetComponent(); m_RickRollAnimator.Play("RickRollAnimation_Rise"); while (m_RickRollAnimator.IsPlaying("RickRollAnimation_Rise")) { yield return null; } m_RickRollAnimator.Play("RickRollAnimation"); if (!ExpandSettings.youtubeSafeMode) { AkSoundEngine.PostEvent("Play_EX_RickRollMusic_01", ((Component)this).gameObject); } else { ((MonoBehaviour)GameManager.Instance).StartCoroutine(DoYouTubeSafeAnnouncement(new Vector3(1.5f, 3.5f))); } yield return (object)new WaitForSeconds(10f); Object.Destroy((Object)(object)m_RickRollInstance); if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).majorBreakable)) { ((BraveBehaviour)this).majorBreakable.TemporarilyInvulnerable = false; } yield return null; ((BraveBehaviour)this).spriteAnimator.Play(breakAnimName); ((Behaviour)((BraveBehaviour)this).specRigidbody).enabled = false; IsBroken = true; Transform val = ((BraveBehaviour)this).transform.Find("Expand_RickRollChestShadow"); if ((Object)(object)val != (Object)null) { Object.Destroy((Object)(object)((Component)val).gameObject); } if ((int)m_room.npcSealState != 0) { m_room.npcSealState = (NPCSealState)0; } Exploder.DoDefaultExplosion(Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldCenter), Vector2.zero, (Action)null, true, (CoreDamageTypes)0, false); yield return null; int num = ((!(Random.value >= 0.2f)) ? 3 : ((!BraveUtility.RandomBool()) ? 3 : 2)); GenericLootTable val2 = ((!BraveUtility.RandomBool()) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable); PickupObject itemOfTypeAndQuality = LootEngine.GetItemOfTypeAndQuality((ItemQuality)num, val2, false); if (Object.op_Implicit((Object)(object)itemOfTypeAndQuality)) { List list = new List { GlobalItemIds.SmallHeart, GlobalItemIds.FullHeart, GlobalItemIds.AmmoPickup, GlobalItemIds.SpreadAmmoPickup, GlobalItemIds.Spice, GlobalItemIds.Junk, GlobalItemIds.GoldJunk, GlobalItemIds.Key, GlobalItemIds.GlassGuonStone, GlobalItemIds.Junk, GlobalItemIds.GoldJunk, GlobalItemIds.SackKnightBoon, GlobalItemIds.Blank, GlobalItemIds.RatKey, GlobalItemIds.Map, 120 }; if (!GameStatsManager.Instance.IsRainbowRun | list.Contains(itemOfTypeAndQuality.PickupObjectId)) { LootEngine.SpawnItem(((Component)itemOfTypeAndQuality).gameObject, Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldCenter), Vector2.zero, 0f, true, true, false); } else if (m_room != null && Object.op_Implicit((Object)(object)GameManager.Instance.RewardManager.BowlerNoteOtherSource)) { string customText = "Fake {wb}Rainbow Chests{w} don't count.\n\nNo real RAAAAAIIIINBOW, no item!\n\n{wb}-Bowler{w}"; ExpandUtility.SpawnCustomBowlerNote(GameManager.Instance.RewardManager.BowlerNoteOtherSource, ((BraveBehaviour)this).sprite.WorldCenter, m_room, customText); } } } private IEnumerator DoYouTubeSafeAnnouncement(Vector3 DialogBoxOffset) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) string[] m_Lyrics = new string[4] { "Never gonna give you up!", "Never gonna let you down!", "Never gonna run around and desert you!", "Never gonna make you cry!" }; yield return (object)new WaitForSeconds(0.5f); TextBoxManager.ShowTextBox(((BraveBehaviour)this).transform.position + DialogBoxOffset, ((BraveBehaviour)this).transform, 5f, m_Lyrics[0], "rickrolldialog1", false, (BoxSlideOrientation)0, false, false); yield return (object)new WaitForSeconds(2f); TextBoxManager.ClearTextBox(((BraveBehaviour)this).transform); TextBoxManager.ShowTextBox(((BraveBehaviour)this).transform.position + DialogBoxOffset, ((BraveBehaviour)this).transform, 5f, m_Lyrics[1], "rickrolldialog2", false, (BoxSlideOrientation)0, false, false); yield return (object)new WaitForSeconds(2f); TextBoxManager.ClearTextBox(((BraveBehaviour)this).transform); TextBoxManager.ShowTextBox(((BraveBehaviour)this).transform.position + DialogBoxOffset, ((BraveBehaviour)this).transform, 5f, m_Lyrics[2], "rickrolldialog3", false, (BoxSlideOrientation)0, false, false); yield return (object)new WaitForSeconds(2f); TextBoxManager.ClearTextBox(((BraveBehaviour)this).transform); TextBoxManager.ShowTextBox(((BraveBehaviour)this).transform.position + DialogBoxOffset, ((BraveBehaviour)this).transform, 5f, m_Lyrics[3], "rickrolldialog4", false, (BoxSlideOrientation)0, false, false); yield return (object)new WaitForSeconds(2f); TextBoxManager.ClearTextBox(((BraveBehaviour)this).transform); } private IEnumerator DoToggleSwitch() { if (ExpandSettings.youtubeSafeMode) { m_room.DeregisterInteractable((IPlayerInteractable)(object)this); ((BraveBehaviour)this).spriteAnimator.Play(switchOnAnimName); ExpandSettings.youtubeSafeMode = false; yield return (object)new WaitForSeconds(2f); } else if (!ExpandSettings.youtubeSafeMode) { ((BraveBehaviour)this).spriteAnimator.Play(switchOffAnimName); ExpandSettings.youtubeSafeMode = true; yield return (object)new WaitForSeconds(2f); } m_room.RegisterInteractable((IPlayerInteractable)(object)this); m_Opened = false; ExpandSettings.SaveSettings(); } private IEnumerator DelayedRoomSeal(float delay = 0.05f) { yield return (object)new WaitForSeconds(delay); if (!m_room.IsSealed) { m_room.SealRoom(); } } private void Awake() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) SpriteOutlineManager.AddOutlineToSprite(((BraveBehaviour)this).sprite, BaseOutlineColor, 0.1f, 0f, (OutlineType)0); switch (chestType) { case ChestType.RickRoll: if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).majorBreakable) && ((BraveBehaviour)this).majorBreakable.DamageReduction > 1000f) { ((BraveBehaviour)this).majorBreakable.ReportZeroDamage = true; } break; case ChestType.SurpriseChest: if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).majorBreakable) && ((BraveBehaviour)this).majorBreakable.DamageReduction > 1000f) { ((BraveBehaviour)this).majorBreakable.ReportZeroDamage = true; } ((BraveBehaviour)this).spriteAnimator.AnimationEventTriggered = (Action)Delegate.Combine(((BraveBehaviour)this).spriteAnimator.AnimationEventTriggered, new Action(HandleSurpriseChestAnimationEvent)); break; case ChestType.WestChest: if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).majorBreakable) && ((BraveBehaviour)this).majorBreakable.DamageReduction > 1000f) { ((BraveBehaviour)this).majorBreakable.ReportZeroDamage = true; } break; case ChestType.MusicSwitch: break; } } private void HandleSurpriseChestAnimationEvent(tk2dSpriteAnimator animator, tk2dSpriteAnimationClip clip, int frameNo) { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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) if (clip.GetFrame(frameNo).eventInfo == "enemychestvfx") { Object.Instantiate(BraveResources.Load("Global VFX/VFX_ChestKnock_001", ".prefab"), Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldCenter + new Vector2(0f, 0.3125f)), Quaternion.identity); } } public void ConfigureOnPlacement(RoomHandler room) { //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: 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_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) m_room = room; switch (chestType) { case ChestType.MusicSwitch: if (ExpandSettings.youtubeSafeMode) { ((BraveBehaviour)this).sprite.SetSprite("music_switch_idle_off_001"); } else { ((BraveBehaviour)this).sprite.SetSprite("music_switch_idle_on_001"); } m_configured = true; break; case ChestType.RickRoll: if (Random.value <= 0.01f) { Vector3 val = ((BraveBehaviour)this).transform.position + new Vector3(0.5f, 0f, 0f); GameObject val2 = Object.Instantiate(((Component)GameManager.Instance.RewardManager.Rainbow_Chest).gameObject, val, Quaternion.identity); if (Object.op_Implicit((Object)(object)val2) && Object.op_Implicit((Object)(object)val2.GetComponent())) { Chest component = val2.GetComponent(); component.ConfigureOnPlacement(m_room); m_room.RegisterInteractable((IPlayerInteractable)(object)component); ExpandRickRollSpawnNote expandRickRollSpawnNote = ((Component)component).gameObject.AddComponent(); expandRickRollSpawnNote.ParentRoom = m_room; expandRickRollSpawnNote.CachedSpawnLocation = ((BraveBehaviour)this).transform.position - new Vector3(0f, 1.5f, 0f); expandRickRollSpawnNote.CachedSpawnLocation += new Vector3(1f, 0f, 0f); expandRickRollSpawnNote.Configured = true; Object.Destroy((Object)(object)((Component)this).gameObject); break; } } Initialize(); if (!m_configured) { RegisterFakeChestOnMinimap(room); } m_configured = true; break; case ChestType.SurpriseChest: Initialize(); if (!m_configured) { RegisterFakeChestOnMinimap(room); } m_configured = true; break; case ChestType.WestChest: Initialize(); if (!m_configured) { RegisterFakeChestOnMinimap(room); } m_configured = true; break; } } protected void Initialize() { //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_014e: 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_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0161: 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_023c: 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_0247: Unknown result type (might be due to invalid IL or missing references) //IL_024f: Unknown result type (might be due to invalid IL or missing references) //IL_0255: 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_025c: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_02ae: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Unknown result type (might be due to invalid IL or missing references) //IL_0267: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_029d: 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_018c: Unknown result type (might be due to invalid IL or missing references) //IL_0285: Unknown result type (might be due to invalid IL or missing references) ((BraveBehaviour)this).specRigidbody.Initialize(); ((BraveBehaviour)this).specRigidbody.PreventPiercing = true; MajorBreakable component = ((Component)this).gameObject.GetComponent(); switch (chestType) { case ChestType.MusicSwitch: break; case ChestType.RickRoll: { if (Object.op_Implicit((Object)(object)component)) { component.OnBreak = (Action)Delegate.Combine(component.OnBreak, new Action(OnBroken)); } IntVector2 val5 = Vector2Extensions.ToIntVector2(((BraveBehaviour)this).specRigidbody.UnitBottomLeft, (VectorConversions)0); IntVector2 val6 = Vector2Extensions.ToIntVector2(((BraveBehaviour)this).specRigidbody.UnitTopRight, (VectorConversions)0); for (int m = val5.x; m <= val6.x; m++) { for (int n = val5.y; n <= val6.y; n++) { GameManager.Instance.Dungeon.data[new IntVector2(m, n)].isOccupied = true; } } ((BraveBehaviour)this).sprite.usesOverrideMaterial = true; ((BraveBehaviour)((BraveBehaviour)this).sprite).renderer.material.shader = ShaderCache.Acquire("Brave/Internal/RainbowChestShader"); break; } case ChestType.SurpriseChest: { if (Object.op_Implicit((Object)(object)component)) { component.OnBreak = (Action)Delegate.Combine(component.OnBreak, new Action(OnBroken)); } IntVector2 val3 = Vector2Extensions.ToIntVector2(((BraveBehaviour)this).specRigidbody.UnitBottomLeft, (VectorConversions)0); IntVector2 val4 = Vector2Extensions.ToIntVector2(((BraveBehaviour)this).specRigidbody.UnitTopRight, (VectorConversions)0); for (int k = val3.x; k <= val4.x; k++) { for (int l = val3.y; l <= val4.y; l++) { GameManager.Instance.Dungeon.data[new IntVector2(k, l)].isOccupied = true; } } if (surpriseChestDoesSpawnAnim) { ((BraveBehaviour)this).renderer.enabled = false; ((BraveBehaviour)this).specRigidbody.Initialize(); ((BraveBehaviour)this).specRigidbody.PreventPiercing = true; ((MonoBehaviour)GameManager.Instance).StartCoroutine(HandleSupriseChestSpawnAnimation()); } else { ((BraveBehaviour)this).spriteAnimator.Play("enemy_chest_knock"); } break; } case ChestType.WestChest: { if (Object.op_Implicit((Object)(object)component)) { component.OnBreak = (Action)Delegate.Combine(component.OnBreak, new Action(OnBroken)); } IntVector2 val = Vector2Extensions.ToIntVector2(((BraveBehaviour)this).specRigidbody.UnitBottomLeft, (VectorConversions)0); IntVector2 val2 = Vector2Extensions.ToIntVector2(((BraveBehaviour)this).specRigidbody.UnitTopRight, (VectorConversions)0); for (int i = val.x; i <= val2.x; i++) { for (int j = val.y; j <= val2.y; j++) { GameManager.Instance.Dungeon.data[new IntVector2(i, j)].isOccupied = true; } } break; } } } public IEnumerator HandleSupriseChestSpawnAnimation() { if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).majorBreakable)) { ((BraveBehaviour)this).majorBreakable.TemporarilyInvulnerable = true; } m_temporarilyUnopenable = true; if (Object.op_Implicit((Object)(object)VFX_PreSpawn)) { ((BraveBehaviour)this).renderer.enabled = false; VFX_PreSpawn.SetActive(true); yield return (object)new WaitForSeconds(0.1f); } ((BraveBehaviour)this).renderer.enabled = true; tk2dSpriteAnimationClip spawnAnimClip = null; tk2dSpriteAnimationClip chestKnockClip = null; if (!string.IsNullOrEmpty(spawnAnimClipName)) { spawnAnimClip = ((BraveBehaviour)this).spriteAnimator.GetClipByName(spawnAnimClipName); } if (!string.IsNullOrEmpty(chestKnockClipName)) { chestKnockClip = ((BraveBehaviour)this).spriteAnimator.GetClipByName(chestKnockClipName); } if (spawnAnimClip != null) { float clipTime = (float)spawnAnimClip.frames.Length / spawnAnimClip.fps; ((BraveBehaviour)this).spriteAnimator.Play(spawnAnimClip); ((BraveBehaviour)this).sprite.UpdateZDepth(); groundHitDelay = 0.73f; if (chestType == ChestType.SurpriseChest) { groundHitDelay = 0.4f; } float elapsed = 0f; bool groundHitTriggered = false; while (elapsed < clipTime) { elapsed += BraveTime.DeltaTime; if (elapsed >= groundHitDelay && !groundHitTriggered) { groundHitTriggered = true; Exploder.DoRadialPush(Vector2Extensions.ToVector3ZUp(((BraveBehaviour)this).sprite.WorldCenter, ((BraveBehaviour)this).sprite.WorldCenter.y), 22f, 5f); if (Object.op_Implicit((Object)(object)VFX_GroundHit)) { VFX_GroundHit.SetActive(true); } List list = new List(); PhysicsEngine.Instance.OverlapCast(((BraveBehaviour)this).specRigidbody, list, false, true, (int?)null, (int?)null, false, (Vector2?)null, (Func)null, (SpeculativeRigidbody[])(object)new SpeculativeRigidbody[0]); for (int i = 0; i < list.Count; i++) { CollisionData val = list[i]; if (Object.op_Implicit((Object)(object)val.OtherRigidbody) && Object.op_Implicit((Object)(object)((BraveBehaviour)val.OtherRigidbody).minorBreakable)) { ((BraveBehaviour)val.OtherRigidbody).minorBreakable.Break(val.OtherRigidbody.UnitCenter - ((BraveBehaviour)this).specRigidbody.UnitCenter); } } } yield return null; } } ((BraveBehaviour)this).sprite.UpdateZDepth(); m_room.RegisterInteractable((IPlayerInteractable)(object)this); PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(((BraveBehaviour)this).specRigidbody, (int?)null, false); m_temporarilyUnopenable = false; if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).majorBreakable)) { ((BraveBehaviour)this).majorBreakable.TemporarilyInvulnerable = false; } if (spawnAnimClip != null) { while (((BraveBehaviour)this).spriteAnimator.IsPlaying(spawnAnimClip)) { yield return null; } } if (chestKnockClip != null) { ((BraveBehaviour)this).spriteAnimator.Play("enemy_chest_knock"); } } public void RegisterFakeChestOnMinimap(RoomHandler r) { m_registeredIconRoom = r; GameObject val = (GameObject)(((object)MinimapIconPrefab) ?? ((object)/*isinst with value type is only supported in some contexts*/)); minimapIconInstance = Minimap.Instance.RegisterRoomIcon(r, val, false); } public void DeregisterChestOnMinimap() { if (m_registeredIconRoom != null) { Minimap.Instance.DeregisterRoomIcon(m_registeredIconRoom, minimapIconInstance); } } private void OnBroken() { //IL_01eb: Unknown result type (might be due to invalid IL or missing references) //IL_01f0: Unknown result type (might be due to invalid IL or missing references) //IL_01f5: Unknown result type (might be due to invalid IL or missing references) ((BraveBehaviour)this).spriteAnimator.Play(breakAnimName); ((Behaviour)((BraveBehaviour)this).specRigidbody).enabled = false; IsBroken = true; ((BraveBehaviour)this).sprite.HeightOffGround = -3f; ((BraveBehaviour)this).sprite.UpdateZDepth(); string text = "Expand_RickRollChestShadow"; if (chestType == ChestType.SurpriseChest) { text = "Shadow"; } Transform val = ((BraveBehaviour)this).transform.Find(text); if ((Object)(object)val != (Object)null) { Object.Destroy((Object)(object)((Component)val).gameObject); } if (m_registeredIconRoom != null) { Minimap.Instance.DeregisterRoomIcon(m_registeredIconRoom, minimapIconInstance); } if (!m_Opened) { m_room.DeregisterInteractable((IPlayerInteractable)(object)this); if (m_registeredIconRoom != null) { Minimap.Instance.DeregisterRoomIcon(m_registeredIconRoom, minimapIconInstance); } bool flag = GameStatsManager.Instance.GetFlag((GungeonFlags)171004); float chestDowngradeChance = GameManager.Instance.RewardManager.ChestDowngradeChance; float chestHalfHeartChance = GameManager.Instance.RewardManager.ChestHalfHeartChance; float chestExplosionChance = GameManager.Instance.RewardManager.ChestExplosionChance; float num = GameManager.Instance.RewardManager.ChestJunkChance; float num2 = ((!flag) ? 0f : 0.005f); float num3 = ((!GameStatsManager.Instance.GetFlag((GungeonFlags)150002) || Chest.HasDroppedSerJunkanThisSession) ? 0f : GameManager.Instance.RewardManager.ChestJunkanUnlockedChance); if (Object.op_Implicit((Object)(object)GameManager.Instance.PrimaryPlayer) && GameManager.Instance.PrimaryPlayer.carriedConsumables.KeyBullets > 0) { num *= GameManager.Instance.RewardManager.HasKeyJunkMultiplier; } if (SackKnightController.HasJunkan()) { num *= GameManager.Instance.RewardManager.HasJunkanJunkMultiplier; num2 *= 3f; } num -= num2; float num4 = num2 + chestDowngradeChance + chestHalfHeartChance + chestExplosionChance + num + num3; if (Random.value * num4 > chestDowngradeChance + chestHalfHeartChance + num + num3) { Exploder.DoDefaultExplosion(Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldCenter), Vector2.zero, (Action)null, false, (CoreDamageTypes)0, false); } } } public void OnEnteredRange(PlayerController interactor) { //IL_002b: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)this) && !(m_Opened | m_temporarilyUnopenable)) { SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)this).sprite, false); SpriteOutlineManager.AddOutlineToSprite(((BraveBehaviour)this).sprite, Color.white, 0.1f, 0f, (OutlineType)0); ((BraveBehaviour)this).sprite.UpdateZDepth(); } } public void OnExitRange(PlayerController interactor) { //IL_001c: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)this)) { SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)this).sprite, false); SpriteOutlineManager.AddOutlineToSprite(((BraveBehaviour)this).sprite, BaseOutlineColor, 0.1f, 0f, (OutlineType)0); ((BraveBehaviour)this).sprite.UpdateZDepth(); } } public float GetDistanceToPoint(Vector2 point) { //IL_0006: 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_0010: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_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_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0049: 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_006a: 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_0083: 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_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) Bounds bounds = ((BraveBehaviour)this).sprite.GetBounds(); ((Bounds)(ref bounds)).SetMinMax(((Bounds)(ref bounds)).min + ((BraveBehaviour)this).transform.position, ((Bounds)(ref bounds)).max + ((BraveBehaviour)this).transform.position); float num = Mathf.Max(Mathf.Min(point.x, ((Bounds)(ref bounds)).max.x), ((Bounds)(ref bounds)).min.x); float num2 = Mathf.Max(Mathf.Min(point.y, ((Bounds)(ref bounds)).max.y), ((Bounds)(ref bounds)).min.y); return Mathf.Sqrt((point.x - num) * (point.x - num) + (point.y - num2) * (point.y - num2)); } public float GetOverrideMaxDistance() { return -1f; } public string GetAnimationState(PlayerController interactor, out bool shouldBeFlipped) { shouldBeFlipped = false; return string.Empty; } protected override void OnDestroy() { switch (chestType) { case ChestType.RickRoll: AkSoundEngine.PostEvent("Stop_SND_OBJ", ((Component)this).gameObject); AkSoundEngine.PostEvent("Stop_EX_RickRollMusic_01", ((Component)this).gameObject); break; } ((DungeonPlaceableBehaviour)this).OnDestroy(); } } public class ExpandRickRollSpawnNote : BraveBehaviour { public bool Configured; public RoomHandler ParentRoom; public Vector3 CachedSpawnLocation; public ExpandRickRollSpawnNote() { Configured = false; } private void Start() { } private void Update() { if (Configured) { MajorBreakable majorBreakable = ((BraveBehaviour)this).majorBreakable; if (Object.op_Implicit((Object)(object)majorBreakable)) { majorBreakable.OnBreak = (Action)Delegate.Combine(majorBreakable.OnBreak, new Action(OnBrokenInSadness)); } Configured = false; } } private void OnBrokenInSadness() { //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) Chest component = ((Component)this).gameObject.GetComponent(); bool flag = false; if (Object.op_Implicit((Object)(object)component)) { flag = component.pickedUp; } if (!flag) { string customText = "{wb}Never gonna give you up!{w}\r\nYou did give up a real rainbow chest this time though.\r\n{wb}-Apache Thunder{w}"; ExpandUtility.SpawnCustomBowlerNote(GameManager.Instance.RewardManager.BowlerNoteOtherSource, Vector2.op_Implicit(CachedSpawnLocation), ParentRoom, customText, doPoof: true); } } protected override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); } } public class ExpandScarfComponent : MonoBehaviour { public Material ScarfMaterial; public float StartWidth; public float EndWidth; public float AnimationSpeed; public float ScarfLength; public float AngleLerpSpeed; public float ForwardZOffset; public float BackwardZOffset; public float CatchUpScale; public float SinSpeed; public float AmplitudeMod; public float WavelengthMod; public Vector2 MinOffset; public Vector2 MaxOffset; public GameActor AttachTarget; private Vector2 m_currentOffset; private Vector3[] m_vertices; private Mesh m_mesh; private MeshFilter m_stringFilter; private MeshRenderer m_mr; private bool m_isLerpingBack; private float m_additionalOffsetTime; private float m_lastVelAngle; private float m_targetLength; private float m_currentLength; public ExpandScarfComponent() { StartWidth = 0.0625f; EndWidth = 0.125f; AnimationSpeed = 1f; ScarfLength = 1.5f; AngleLerpSpeed = 15f; BackwardZOffset = -0.2f; CatchUpScale = 2f; SinSpeed = 1f; AmplitudeMod = 0.25f; WavelengthMod = 1f; m_currentLength = 0.05f; } public void Initialize(GameActor target) { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Expected O, but got Unknown //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) m_targetLength = ScarfLength; AttachTarget = target; m_currentOffset = new Vector2(1f, 2f); m_mesh = new Mesh(); m_vertices = (Vector3[])(object)new Vector3[20]; m_mesh.vertices = m_vertices; int[] array = new int[54]; Vector2[] uv = (Vector2[])(object)new Vector2[20]; int num = 0; for (int i = 0; i < 9; i++) { array[i * 6] = num; array[i * 6 + 1] = num + 2; array[i * 6 + 2] = num + 1; array[i * 6 + 3] = num + 2; array[i * 6 + 4] = num + 3; array[i * 6 + 5] = num + 1; num += 2; } m_mesh.triangles = array; m_mesh.uv = uv; GameObject val = new GameObject("balloon string"); m_stringFilter = val.AddComponent(); m_mr = val.AddComponent(); ((Renderer)m_mr).material = ScarfMaterial; if (AttachTarget is PlayerController) { Object.DontDestroyOnLoad((Object)(object)((Component)this).gameObject); Object.DontDestroyOnLoad((Object)(object)val); } m_stringFilter.mesh = m_mesh; ((Component)this).transform.position = ((BraveBehaviour)AttachTarget).transform.position + Vector2Extensions.ToVector3ZisY(m_currentOffset, -3f); } private void LateUpdate() { //IL_01ee: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Unknown result type (might be due to invalid IL or missing references) //IL_0220: Unknown result type (might be due to invalid IL or missing references) //IL_0225: Unknown result type (might be due to invalid IL or missing references) //IL_0285: 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_02f7: Unknown result type (might be due to invalid IL or missing references) //IL_031f: Unknown result type (might be due to invalid IL or missing references) //IL_0324: 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_032e: Unknown result type (might be due to invalid IL or missing references) //IL_0334: Unknown result type (might be due to invalid IL or missing references) //IL_0339: Unknown result type (might be due to invalid IL or missing references) //IL_033e: Unknown result type (might be due to invalid IL or missing references) //IL_0344: Unknown result type (might be due to invalid IL or missing references) //IL_034a: Unknown result type (might be due to invalid IL or missing references) //IL_037a: Unknown result type (might be due to invalid IL or missing references) //IL_037f: Unknown result type (might be due to invalid IL or missing references) //IL_0383: Unknown result type (might be due to invalid IL or missing references) //IL_0388: Unknown result type (might be due to invalid IL or missing references) //IL_038a: Unknown result type (might be due to invalid IL or missing references) //IL_038f: Unknown result type (might be due to invalid IL or missing references) //IL_039f: Unknown result type (might be due to invalid IL or missing references) //IL_03ae: Unknown result type (might be due to invalid IL or missing references) //IL_03b3: Unknown result type (might be due to invalid IL or missing references) //IL_03b8: Unknown result type (might be due to invalid IL or missing references) //IL_03bd: Unknown result type (might be due to invalid IL or missing references) //IL_03bf: Unknown result type (might be due to invalid IL or missing references) //IL_03c2: Unknown result type (might be due to invalid IL or missing references) //IL_03cc: Unknown result type (might be due to invalid IL or missing references) //IL_03d1: Unknown result type (might be due to invalid IL or missing references) //IL_03d6: Unknown result type (might be due to invalid IL or missing references) //IL_03de: Unknown result type (might be due to invalid IL or missing references) //IL_03e3: Unknown result type (might be due to invalid IL or missing references) //IL_0410: Unknown result type (might be due to invalid IL or missing references) //IL_0415: Unknown result type (might be due to invalid IL or missing references) //IL_0435: Unknown result type (might be due to invalid IL or missing references) //IL_03fb: Unknown result type (might be due to invalid IL or missing references) //IL_043f: Unknown result type (might be due to invalid IL or missing references) //IL_0441: Unknown result type (might be due to invalid IL or missing references) //IL_044c: Unknown result type (might be due to invalid IL or missing references) //IL_0451: Unknown result type (might be due to invalid IL or missing references) //IL_0456: Unknown result type (might be due to invalid IL or missing references) //IL_045b: Unknown result type (might be due to invalid IL or missing references) //IL_047a: Unknown result type (might be due to invalid IL or missing references) //IL_047c: Unknown result type (might be due to invalid IL or missing references) //IL_0481: Unknown result type (might be due to invalid IL or missing references) //IL_0483: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_0497: Unknown result type (might be due to invalid IL or missing references) //IL_04a2: Unknown result type (might be due to invalid IL or missing references) //IL_04a7: Unknown result type (might be due to invalid IL or missing references) //IL_04ac: Unknown result type (might be due to invalid IL or missing references) //IL_04ae: Unknown result type (might be due to invalid IL or missing references) //IL_04b9: Unknown result type (might be due to invalid IL or missing references) //IL_04be: Unknown result type (might be due to invalid IL or missing references) if (GameManager.Instance.IsLoadingLevel || Dungeon.IsGenerating || !((Object)(object)AttachTarget != (Object)null)) { return; } if (AttachTarget is AIActor && (!Object.op_Implicit((Object)(object)AttachTarget) || ((BraveBehaviour)AttachTarget).healthHaver.IsDead)) { Object.Destroy((Object)(object)((Component)this).gameObject); return; } m_targetLength = ScarfLength; bool flag = false; if (AttachTarget is PlayerController) { GameActor attachTarget = AttachTarget; PlayerController val = (PlayerController)(object)((attachTarget is PlayerController) ? attachTarget : null); ((Renderer)m_mr).enabled = val.IsVisible && ((BraveBehaviour)((BraveBehaviour)val).sprite).renderer.enabled; ((Component)m_mr).gameObject.layer = ((Component)val).gameObject.layer; if (((GameActor)val).FacingDirection <= 155f && ((GameActor)val).FacingDirection >= 25f) { flag = true; } if (((GameActor)val).IsFalling) { m_targetLength = 0.05f; } } else if (AttachTarget is AIActor) { GameActor attachTarget2 = AttachTarget; AIActor val2 = (AIActor)(object)((attachTarget2 is AIActor) ? attachTarget2 : null); ((Renderer)m_mr).enabled = ((BraveBehaviour)((BraveBehaviour)val2).sprite).renderer.enabled; ((Component)m_mr).gameObject.layer = ((Component)val2).gameObject.layer; if (((GameActor)val2).FacingDirection <= 155f && ((GameActor)val2).FacingDirection >= 25f) { flag = true; } if (((GameActor)val2).IsFalling) { m_targetLength = 0.05f; } } m_currentLength = Mathf.MoveTowards(m_currentLength, m_targetLength, BraveTime.DeltaTime * 2.5f); if (m_currentLength < 0.1f) { ((Renderer)m_mr).enabled = false; } Vector2 val3 = default(Vector2); ((Vector2)(ref val3))..ctor(0f, 0f); if (AttachTarget is PlayerController) { GameActor attachTarget3 = AttachTarget; val3 = ((PlayerController)((attachTarget3 is PlayerController) ? attachTarget3 : null)).LastCommandedDirection; } else if (AttachTarget is AIActor && Object.op_Implicit((Object)(object)((BraveBehaviour)AttachTarget).specRigidbody)) { val3 = ((BraveBehaviour)AttachTarget).specRigidbody.Velocity; } if (((Vector2)(ref val3)).magnitude < 0.125f) { m_isLerpingBack = true; } else { m_isLerpingBack = false; } float lastVelAngle = m_lastVelAngle; if (m_isLerpingBack) { float num = Mathf.DeltaAngle(m_lastVelAngle, -45f); float num2 = Mathf.DeltaAngle(m_lastVelAngle, 135f); lastVelAngle = ((!(num <= num2)) ? 180 : 0); } else { lastVelAngle = BraveMathCollege.Atan2Degrees(val3); } m_lastVelAngle = Mathf.LerpAngle(m_lastVelAngle, lastVelAngle, BraveTime.DeltaTime * AngleLerpSpeed * Mathf.Lerp(1f, 2f, Mathf.DeltaAngle(m_lastVelAngle, lastVelAngle) / 180f)); float num3 = m_currentLength * Mathf.Lerp(2f, 1f, Vector2.Distance(Vector3Extensions.XY(((Component)this).transform.position), ((BraveBehaviour)AttachTarget).sprite.WorldCenter) / 3f); m_currentOffset = Vector3Extensions.XY(Quaternion.Euler(0f, 0f, m_lastVelAngle) * Vector2.op_Implicit(Vector2.left) * num3); Vector2 val4 = Vector2.Lerp(MinOffset, MaxOffset, Mathf.SmoothStep(0f, 1f, Mathf.PingPong(Time.realtimeSinceStartup * AnimationSpeed, 3f) / 3f)); m_currentOffset += val4; Vector3 val5 = Vector2.op_Implicit(((BraveBehaviour)AttachTarget).sprite.WorldCenter + new Vector2(0f, -0.3125f)); Vector3 val6 = val5 + Vector2Extensions.ToVector3ZisY(m_currentOffset, -3f); float num4 = Vector3.Distance(((Component)this).transform.position, val6); if (num4 > 10f) { ((Component)this).transform.position = val6; } else { ((Component)this).transform.position = Vector3.MoveTowards(((Component)this).transform.position, val6, BraveMathCollege.UnboundedLerp(1f, 10f, num4 / CatchUpScale) * BraveTime.DeltaTime); } Vector2 val7 = Vector3Extensions.XY(val6) - Vector3Extensions.XY(((Component)this).transform.position); m_additionalOffsetTime += Random.Range(0f, BraveTime.DeltaTime); BuildMeshAlongCurve(Vector2.op_Implicit(val5), Vector3Extensions.XY(val5) + new Vector2(0f, 0.1f), Vector3Extensions.XY(((Component)this).transform.position) + val7, Vector3Extensions.XY(((Component)this).transform.position), (!flag) ? ForwardZOffset : BackwardZOffset); m_mesh.vertices = m_vertices; m_mesh.RecalculateBounds(); m_mesh.RecalculateNormals(); } private void OnDestroy() { if (Object.op_Implicit((Object)(object)m_stringFilter)) { Object.Destroy((Object)(object)((Component)m_stringFilter).gameObject); } } private void BuildMeshAlongCurve(Vector2 p0, Vector2 p1, Vector2 p2, Vector2 p3, float zOffset) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //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) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_004e: 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_0050: 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_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0058: 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_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: 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) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: 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) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_0127: 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_014a: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Unknown result type (might be due to invalid IL or missing references) //IL_016f: 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_0188: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01be: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: 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_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //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_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0115: 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_0123: Unknown result type (might be due to invalid IL or missing references) Vector3[] vertices = m_vertices; Vector2? val = null; Vector2 val2 = p3 - p0; Vector2 val3 = Vector3Extensions.XY(Quaternion.Euler(0f, 0f, 90f) * Vector2.op_Implicit(val2)); for (int i = 0; i < 10; i++) { Vector2 val4 = BraveMathCollege.CalculateBezierPoint((float)i / 9f, p0, p1, p2, p3); Vector2? val5 = ((i != 9) ? new Vector2?(BraveMathCollege.CalculateBezierPoint((float)i / 9f, p0, p1, p2, p3)) : null); Vector2 val6 = Vector2.zero; Vector2 val8; if (val.HasValue) { Vector2 val7 = val6; val8 = Vector3Extensions.XY(Quaternion.Euler(0f, 0f, 90f) * Vector2.op_Implicit(val4 - val.Value)); val6 = val7 + ((Vector2)(ref val8)).normalized; } if (val5.HasValue) { Vector2 val9 = val6; val8 = Vector3Extensions.XY(Quaternion.Euler(0f, 0f, 90f) * Vector2.op_Implicit(val5.Value - val4)); val6 = val9 + ((Vector2)(ref val8)).normalized; } val6 = ((Vector2)(ref val6)).normalized; float num = Mathf.Lerp(StartWidth, EndWidth, (float)i / 9f); val4 += ((Vector2)(ref val3)).normalized * Mathf.Sin(Time.realtimeSinceStartup * SinSpeed + (float)i * WavelengthMod) * AmplitudeMod * ((float)i / 9f); vertices[i * 2] = Vector2Extensions.ToVector3ZisY(val4 + val6 * num, zOffset); vertices[i * 2 + 1] = Vector2Extensions.ToVector3ZisY(val4 + -val6 * num, zOffset); val = val4; } } } public class ExpandSimpleMoveErraticallyBehavior : MovementBehaviorBase { public bool AllowFearState; public float PathInterval; public float InitialDelay; public float PointReachedPauseTime; public float PathingTime; private float m_repathTimer; private float m_pauseTimer; private bool m_IsPathing; private IntVector2? m_targetPos; public override bool AllowFearRunState => AllowFearState; public ExpandSimpleMoveErraticallyBehavior() { AllowFearState = false; PathInterval = 0.5f; InitialDelay = 1f; PointReachedPauseTime = 0f; PathingTime = 6f; } public override void Start() { ((MovementBehaviorBase)this).Start(); m_IsPathing = false; m_repathTimer = PathInterval; m_pauseTimer = InitialDelay; } public void ResetPauseTimer() { m_pauseTimer = 0f; } public override void Upkeep() { ((MovementBehaviorBase)this).Upkeep(); ((BehaviorBase)this).DecrementTimer(ref m_repathTimer, false); ((BehaviorBase)this).DecrementTimer(ref m_pauseTimer, false); } public override BehaviorResult Update() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Expected O, but got Unknown //IL_0153: Unknown result type (might be due to invalid IL or missing references) //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_0179: Unknown result type (might be due to invalid IL or missing references) BehaviorResult val = ((MovementBehaviorBase)this).Update(); if ((int)val != 0) { return val; } if (Object.op_Implicit((Object)(object)((BehaviorBase)this).m_aiActor)) { if (!m_IsPathing && m_repathTimer > 0f) { return (BehaviorResult)0; } if (!(m_pauseTimer > 0f)) { if (m_IsPathing && ((BehaviorBase)this).m_aiActor.PathComplete) { if (PointReachedPauseTime > 0f) { m_pauseTimer = PointReachedPauseTime; } else { m_pauseTimer = Random.Range(4, 6); } m_IsPathing = false; return (BehaviorResult)2; } if (m_IsPathing) { ((BehaviorBase)this).m_aiActor.ClearPath(); if (PointReachedPauseTime > 0f) { m_pauseTimer = PointReachedPauseTime; } else { m_pauseTimer = Random.Range(4, 6); } m_IsPathing = false; return (BehaviorResult)2; } if (!m_IsPathing && m_repathTimer <= 0f) { m_repathTimer = PathInterval; RoomHandler parentRoom = ((BehaviorBase)this).m_aiActor.ParentRoom; if (parentRoom == null) { return (BehaviorResult)0; } m_targetPos = parentRoom.GetRandomAvailableCell((IntVector2?)((BehaviorBase)this).m_aiActor.Clearance, (CellTypes?)((BehaviorBase)this).m_aiActor.PathableTiles, false, new CellValidator(SimpleCellValidator)); if (!m_targetPos.HasValue | !SimpleCellValidator(m_targetPos.Value)) { return (BehaviorResult)0; } AIActor aiActor = ((BehaviorBase)this).m_aiActor; IntVector2 value = m_targetPos.Value; aiActor.PathfindToPosition(((IntVector2)(ref value)).ToCenterVector2(), (Vector2?)null, true, (CellValidator)null, (ExtraWeightingFunction)null, (CellTypes?)null, false); m_IsPathing = true; m_pauseTimer = PathingTime; } return (BehaviorResult)1; } return (BehaviorResult)1; } return (BehaviorResult)0; } private bool SimpleCellValidator(IntVector2 c) { //IL_007a: 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_0017: 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_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < ((BehaviorBase)this).m_aiActor.Clearance.x; i++) { for (int j = 0; j < ((BehaviorBase)this).m_aiActor.Clearance.y; j++) { if (GameManager.Instance.Dungeon.data.isTopWall(c.x + i, c.y + j)) { return false; } if (GameManager.Instance.Dungeon.data.isAnyFaceWall(c.x + i, c.y + j)) { return false; } } } return true; } } public class ExpandJungleTreeController : BraveBehaviour, IPlaceConfigurable { public string targetLevelName; public IntVector2 PitOffset; public GameObject JungleTreeTopFrame; private bool m_Triggered; private bool m_Destroyed; private RoomHandler m_ParentRoom; private RoomHandler m_TargetExitRoom; public ExpandJungleTreeController() { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) targetLevelName = "tt_jungle"; PitOffset = new IntVector2(5, 3); m_Triggered = false; m_Destroyed = false; } private IEnumerator Start() { yield return null; while (GameManager.Instance.IsLoadingLevel && Dungeon.IsGenerating) { yield return null; } yield return null; Dungeon orLoadByName = DungeonDatabase.GetOrLoadByName("Base_Jungle"); List list = new List { ExpandRoomPrefabs.Expand_Keep_JungleElevatorRoom, ExpandRoomPrefabs.Expand_Keep_JungleElevatorRoom2 }; list = BraveUtility.Shuffle(list); m_TargetExitRoom = ExpandUtility.AddCustomRuntimeRoomWithTileSet(orLoadByName, BraveUtility.RandomElement(list), addRoomToMinimap: false, addTeleporter: false, isSecretRatExitRoom: false, null, (LightGenerationStyle)0, allowProceduralDecoration: true, allowProceduralLightFixtures: true, RoomExploredOnMinimap: false, "JungleRuntime_"); IntVector2 val = Vector3Extensions.IntXY(((BraveBehaviour)this).transform.position, (VectorConversions)0) + new IntVector2(4, 2); for (int i = -1; i < 2; i++) { for (int j = -1; j < 2; j++) { IntVector2 val2 = val + new IntVector2(i, j); CellData val3 = GameManager.Instance.Dungeon.data[val2]; if (val3 != null) { val3.OnCellGooped = (Action)Delegate.Combine(val3.OnCellGooped, new Action(HandleGooped)); } } } ((BraveBehaviour)this).specRigidbody.OnRigidbodyCollision = (OnRigidbodyCollisionDelegate)Delegate.Combine((Delegate?)(object)((BraveBehaviour)this).specRigidbody.OnRigidbodyCollision, (Delegate?)new OnRigidbodyCollisionDelegate(HandleCollision)); } private void HandleGooped(CellData obj) { if (obj != null) { ((MonoBehaviour)this).StartCoroutine(HandleGoopWait(obj)); } } private IEnumerator HandleGoopWait(CellData obj) { IntVector2 key = Vector2Extensions.ToIntVector2(((IntVector2)(ref obj.position)).ToCenterVector2() / DeadlyDeadlyGoopManager.GOOP_GRID_SIZE, (VectorConversions)0); if (!DeadlyDeadlyGoopManager.allGoopPositionMap.ContainsKey(key)) { yield break; } DeadlyDeadlyGoopManager deadlyDeadlyGoopManager = DeadlyDeadlyGoopManager.allGoopPositionMap[key]; if (!Object.op_Implicit((Object)(object)deadlyDeadlyGoopManager)) { yield break; } while (!m_Destroyed && obj != null && (Object)(object)deadlyDeadlyGoopManager != (Object)null && !deadlyDeadlyGoopManager.IsPositionOnFire(((IntVector2)(ref obj.position)).ToCenterVector2()) && !m_Triggered) { if (m_Destroyed) { yield break; } yield return null; } if (!m_Destroyed && deadlyDeadlyGoopManager.IsPositionOnFire(((IntVector2)(ref obj.position)).ToCenterVector2()) && !m_Triggered) { m_Triggered = true; OnFireStarted(); } } private void HandleCollision(CollisionData rigidbodyCollision) { Projectile projectile = ((BraveBehaviour)rigidbodyCollision.OtherRigidbody).projectile; if (Object.op_Implicit((Object)(object)projectile) && projectile.AppliesFire) { OnFireStarted(); } } private void OnFireStarted() { //IL_0006: 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_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: 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) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Expected O, but got Unknown //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Expected O, but got Unknown //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01df: 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_01fa: Unknown result type (might be due to invalid IL or missing references) //IL_01ff: Unknown result type (might be due to invalid IL or missing references) //IL_0209: Unknown result type (might be due to invalid IL or missing references) //IL_021e: Unknown result type (might be due to invalid IL or missing references) //IL_022f: Unknown result type (might be due to invalid IL or missing references) //IL_023d: Unknown result type (might be due to invalid IL or missing references) //IL_0256: Expected O, but got Unknown //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Expected O, but got Unknown //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_0122: 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_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0154: 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_0168: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0182: 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_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: 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) IntVector2 val = Vector3Extensions.IntXY(((BraveBehaviour)this).transform.position, (VectorConversions)0) + new IntVector2(4, 2); for (int i = -1; i < 2; i++) { for (int j = -1; j < 2; j++) { IntVector2 val2 = val + new IntVector2(i, j); CellData val3 = GameManager.Instance.Dungeon.data[val2]; if (val3 != null) { val3.OnCellGooped = (Action)Delegate.Remove(val3.OnCellGooped, new Action(HandleGooped)); } } } ((BraveBehaviour)this).specRigidbody.OnRigidbodyCollision = (OnRigidbodyCollisionDelegate)Delegate.Remove((Delegate?)(object)((BraveBehaviour)this).specRigidbody.OnRigidbodyCollision, (Delegate?)new OnRigidbodyCollisionDelegate(HandleCollision)); if (m_TargetExitRoom != null) { GameObject val4 = new GameObject(); Transform transform = val4.transform; IntVector2 val5 = m_TargetExitRoom.area.basePosition + new IntVector2(9, 6); transform.position = ((IntVector2)(ref val5)).ToVector3(); val4.transform.SetParent(m_TargetExitRoom.hierarchyParent); ((Object)val4).name = "Arrival"; ExpandJungleExitLadderComponent component = Object.Instantiate(ExpandPrefabs.Jungle_ExitLadder, val4.transform.position - new Vector3(0.7f, 0f), Quaternion.identity).GetComponent(); component.PreviousLadderLocation = ((BraveBehaviour)this).sprite.WorldBottomCenter - new Vector2(0.6f, -1.5f) - ((IntVector2)(ref m_ParentRoom.area.basePosition)).ToVector2(); component.TargetRoom = m_ParentRoom; component.ConfigureOnPlacement(m_TargetExitRoom); m_TargetExitRoom.RegisterInteractable((IPlayerInteractable)(object)component); m_ParentRoom.TargetPitfallRoom = m_TargetExitRoom; } else { GameObject val6 = new GameObject("Jungle Pit Manager") { layer = 0 }; val6.transform.position = ((BraveBehaviour)this).transform.position + new Vector3(5f, 2f); ExpandUtility.DuplicateSprite(val6.AddComponent(), ExpandSecretDoorPrefabs.EXSecretDoorMinimapIcon.GetComponent()); ((BraveBehaviour)val6.GetComponent()).renderer.enabled = false; ExpandUtility.GenerateOrAddToRigidBody(val6, (CollisionLayer)16, (PixelColliderGeneration)0, collideWithTileMap: false, CollideWithOthers: true, CanBeCarried: true, CanBePushed: false, RecheckTriggers: false, IsTrigger: true, replaceExistingColliders: false, UsesPixelsAsUnitSize: false, (IntVector2?)new IntVector2(2, 2), (IntVector2?)null); val6.AddComponent().targetLevelName = targetLevelName; } ((MonoBehaviour)this).StartCoroutine(HandleDelayedFireDamage()); } private IEnumerator HandleDelayedFireDamage() { Vector2.op_Implicit(new Vector3(5f, 2f)); Vector2.op_Implicit(new Vector3(9f, 6f)); Vector2 BottomOffset2 = Vector2.op_Implicit(new Vector3(4f, 1f)); Vector2 TopOffset2 = Vector2.op_Implicit(new Vector3(8f, 6f)); GlobalSparksDoer.DoRandomParticleBurst(25, Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldBottomLeft + BottomOffset2), Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldBottomLeft + TopOffset2), Vector3.up, 70f, 0.5f, (float?)null, (float?)0.75f, (Color?)new Color(4f, 0.3f, 0f), (SparksType)3); GlobalSparksDoer.DoRandomParticleBurst(25, Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldBottomLeft + BottomOffset2), Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldBottomLeft + TopOffset2), Vector3.up, 70f, 0.5f, (float?)null, (float?)1.5f, (Color?)new Color(4f, 0.3f, 0f), (SparksType)3); GlobalSparksDoer.DoRandomParticleBurst(25, Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldBottomLeft + BottomOffset2), Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldBottomLeft + TopOffset2), Vector3.up, 70f, 0.5f, (float?)null, (float?)2.25f, (Color?)new Color(4f, 0.3f, 0f), (SparksType)3); GlobalSparksDoer.DoRandomParticleBurst(25, Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldBottomLeft + BottomOffset2), Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldBottomLeft + TopOffset2), Vector3.up, 70f, 0.5f, (float?)null, (float?)3f, (Color?)new Color(4f, 0.3f, 0f), (SparksType)3); yield return (object)new WaitForSeconds(2f); GlobalSparksDoer.DoRandomParticleBurst(25, Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldBottomLeft + BottomOffset2), Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldBottomLeft + TopOffset2), Vector3.up, 70f, 0.5f, (float?)null, (float?)1.75f, (Color?)new Color(4f, 0.3f, 0f), (SparksType)5); GlobalSparksDoer.DoRandomParticleBurst(25, Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldBottomLeft + BottomOffset2), Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldBottomLeft + TopOffset2), Vector3.up, 70f, 0.5f, (float?)null, (float?)2.5f, (Color?)new Color(4f, 0.3f, 0f), (SparksType)5); GlobalSparksDoer.DoRandomParticleBurst(25, Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldBottomLeft + BottomOffset2), Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldBottomLeft + TopOffset2), Vector3.up, 70f, 0.5f, (float?)null, (float?)3.25f, (Color?)new Color(4f, 0.3f, 0f), (SparksType)5); GlobalSparksDoer.DoRandomParticleBurst(25, Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldBottomLeft + BottomOffset2), Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldBottomLeft + TopOffset2), Vector3.up, 70f, 0.5f, (float?)null, (float?)4f, (Color?)new Color(4f, 0.3f, 0f), (SparksType)5); Exploder.DoDefaultExplosion(((BraveBehaviour)this).transform.position + ((IntVector2)(ref PitOffset)).ToVector3() + new Vector3(1f, 0f), Vector2.zero, (Action)null, true, (CoreDamageTypes)0, false); ((BraveBehaviour)this).specRigidbody.PixelColliders[0].Enabled = false; ((BraveBehaviour)this).specRigidbody.RecheckTriggers = true; ((BraveBehaviour)this).specRigidbody.RegenerateColliders = true; IntVector2 val = Vector3Extensions.IntXY(((BraveBehaviour)this).transform.position, (VectorConversions)0) + PitOffset; IntVector2 cellPos = val; IntVector2 cellPos2 = val + new IntVector2(1, 0); DeadlyDeadlyGoopManager.ForceClearGoopsInCell(cellPos); DeadlyDeadlyGoopManager.ForceClearGoopsInCell(cellPos2); ((BraveBehaviour)this).sprite.SetSprite("Jungle_Tree_Large_Open"); yield return (object)new WaitForSeconds(0.4f); m_ParentRoom.ForcePitfallForFliers = true; CellData val2 = GameManager.Instance.Dungeon.data[cellPos]; CellData obj = GameManager.Instance.Dungeon.data[cellPos2]; val2.fallingPrevented = false; obj.fallingPrevented = false; GameObject val3 = Object.Instantiate(JungleTreeTopFrame, ((BraveBehaviour)this).transform.position, Quaternion.identity); if (m_ParentRoom != null) { val3.transform.SetParent(m_ParentRoom.hierarchyParent, true); } } public void ConfigureOnPlacement(RoomHandler room) { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_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) //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_0041: 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_005f: 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) m_ParentRoom = room; IntVector2 val; IntVector2 val2 = (val = Vector3Extensions.IntXY(((BraveBehaviour)this).transform.position, (VectorConversions)0) + PitOffset) + new IntVector2(1, 0); CellData val3 = GameManager.Instance.Dungeon.data[val]; CellData obj = GameManager.Instance.Dungeon.data[val2]; val3.type = (CellType)4; obj.type = (CellType)4; val3.forceAllowGoop = true; obj.forceAllowGoop = true; val3.fallingPrevented = true; obj.fallingPrevented = true; } private void Update() { } private void LateUpdate() { } protected override void OnDestroy() { m_Destroyed = true; ((BraveBehaviour)this).OnDestroy(); } } public class JungleTreePitController : DungeonPlaceableBehaviour, IPlaceConfigurable { public string targetLevelName; public JungleTreePitController() { targetLevelName = "tt_jungle"; } private void Start() { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Expected O, but got Unknown //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Expected O, but got Unknown //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Expected O, but got Unknown //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Expected O, but got Unknown SpeculativeRigidbody specRigidbody = ((BraveBehaviour)this).specRigidbody; specRigidbody.OnEnterTrigger = (OnTriggerDelegate)Delegate.Combine((Delegate?)(object)specRigidbody.OnEnterTrigger, (Delegate?)new OnTriggerDelegate(HandleTriggerEntered)); SpeculativeRigidbody specRigidbody2 = ((BraveBehaviour)this).specRigidbody; specRigidbody2.OnExitTrigger = (OnTriggerExitDelegate)Delegate.Combine((Delegate?)(object)specRigidbody2.OnExitTrigger, (Delegate?)new OnTriggerExitDelegate(HandleTriggerExited)); } private void HandleTriggerEntered(SpeculativeRigidbody specRigidbody, SpeculativeRigidbody sourceSpecRigidbody, CollisionData collisionData) { PlayerController component = ((Component)specRigidbody).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.LevelToLoadOnPitfall = targetLevelName; } } private void HandleTriggerExited(SpeculativeRigidbody specRigidbody, SpeculativeRigidbody sourceSpecRigidbody) { PlayerController component = ((Component)specRigidbody).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.LevelToLoadOnPitfall = string.Empty; } } public void ConfigureOnPlacement(RoomHandler room) { } private void Update() { } protected override void OnDestroy() { ((DungeonPlaceableBehaviour)this).OnDestroy(); } } public class ExpandTossSpriteOnDeath : OnDeathBehavior { public bool applyRotation; public bool isPowBlockDeath; public float PopupSpeed; public float DropSpeed; public string specificSpriteName; private bool m_hasTriggered; public ExpandTossSpriteOnDeath() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) base.deathType = (DeathType)0; base.preDeathDelay = 0f; base.triggerName = string.Empty; applyRotation = true; isPowBlockDeath = true; PopupSpeed = 0.07f; DropSpeed = 0.09f; specificSpriteName = string.Empty; } public void ManuallyTrigger(Vector2 damageDirection) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) ((OnDeathBehavior)this).OnTrigger(damageDirection); } protected override void OnTrigger(Vector2 damageDirection) { //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) //IL_0067: Expected O, but got Unknown //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) if (m_hasTriggered) { return; } m_hasTriggered = true; if (Object.op_Implicit((Object)(object)((Component)this).gameObject.GetComponent())) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).aiActor)) { ((BraveBehaviour)this).aiActor.SetOutlines(false); } GameObject val = new GameObject(((Object)((Component)this).gameObject).name + "Sprite Toss VFX") { layer = LayerMask.NameToLayer("Unoccluded") }; tk2dSprite val2 = val.AddComponent(); if (!string.IsNullOrEmpty(specificSpriteName)) { ((tk2dBaseSprite)val2).SetSprite(((BraveBehaviour)this).sprite.Collection, specificSpriteName); } else { ((tk2dBaseSprite)val2).SetSprite(((BraveBehaviour)this).sprite.Collection, ((tk2dBaseSprite)((Component)this).gameObject.GetComponent()).spriteId); } ((tk2dBaseSprite)val2).HeightOffGround = 4f; GameObjectExtensions.SetLayerRecursively(val, LayerMask.NameToLayer("Unoccluded")); val.transform.position = ((BraveBehaviour)this).transform.position; val.transform.localScale = ((BraveBehaviour)this).transform.localScale; if (applyRotation) { val.transform.rotation = ((BraveBehaviour)this).transform.rotation; } ((tk2dBaseSprite)val2).UpdateZDepth(); ExpandTossVFX expandTossVFX = val.AddComponent(); expandTossVFX.DoRotation = applyRotation; expandTossVFX.MovementSpeed1 = PopupSpeed; expandTossVFX.MovementSpeed2 = DropSpeed; expandTossVFX.Init(); if (isPowBlockDeath) { AkSoundEngine.PostEvent("Play_EX_PowBlock_EnemyDeath", val); } ((BraveBehaviour)((BraveBehaviour)this).sprite).renderer.enabled = false; } } protected override void OnDestroy() { ((OnDeathBehavior)this).OnDestroy(); } } public class ExpandTossVFX : BraveBehaviour { public bool DoRotation; public float MovementSpeed1; public float MovementSpeed2; private bool m_Finished; public ExpandTossVFX() { DoRotation = true; MovementSpeed1 = 0.07f; MovementSpeed2 = 0.09f; m_Finished = false; } private void Start() { } public void Init() { ((MonoBehaviour)this).StartCoroutine(HandleSpriteToss(((Component)this).gameObject)); if (DoRotation) { ((MonoBehaviour)this).StartCoroutine(HandleSpriteRotation(((Component)this).gameObject)); } } private void Update() { if (m_Finished) { m_Finished = false; Object.Destroy((Object)(object)((Component)this).gameObject); } } private IEnumerator HandleSpriteToss(GameObject vfxObject) { float elapsed = 0f; float duration = 0.5f; float duration2 = 4f; while (elapsed < duration) { elapsed += BraveTime.DeltaTime; Transform transform = vfxObject.transform; transform.position += new Vector3(0f, MovementSpeed1, 0f); yield return null; } yield return null; while (elapsed < duration2) { elapsed += BraveTime.DeltaTime; Transform transform2 = vfxObject.transform; transform2.position -= new Vector3(0f, MovementSpeed2, 0f); yield return null; } yield return null; m_Finished = true; } private IEnumerator HandleSpriteRotation(GameObject vfxObject) { float angle = 0f; while (Object.op_Implicit((Object)(object)vfxObject) && Object.op_Implicit((Object)(object)vfxObject)) { angle += BraveTime.DeltaTime * 6f; vfxObject.transform.RotateAround(Vector2.op_Implicit(((BraveBehaviour)this).sprite.WorldCenter), Vector3.forward, angle); yield return null; } } protected override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); } } public class ExpandWallMimicManager : CustomEngageDoer, IPlaceConfigurable { public List SpawnEnemyList; public bool CursedBrickMode; public bool SpawnEnemyMode; public bool GlitchedEnemyMode; public bool SkipPlayerCheck; public tk2dSpriteCollectionData DungeonCollectionOverride; public Dungeon SourceDungeonForTileSetOverride; private AssetBundle m_AssetBundle; private GameObject WallDisappearVFX; protected bool m_playerTrueSight; private bool m_isHidden; private bool m_isFinished; private bool m_configured; private bool m_isFriendlyMimic; private bool m_isGlitched; private bool m_failedWallConfigure; private float m_collisionKnockbackStrength; private float m_ItemDropOdds; private float m_FriendlyMimicOdds; private float m_spawnEnemyOdds; private float m_glitchOdds; private GameObject m_fakeWall; private GameObject m_fakeCeiling; private Vector3 m_startingPos; private IntVector2 pos1; private IntVector2 pos2; private Direction m_facingDirection; private GunHandController[] m_hands; private GoopDoer m_goopDoer; protected bool CanAwaken { get { if (m_isHidden) { return !PassiveItem.IsFlagSetAtAll(typeof(MimicRingItem)); } return false; } } public override bool IsFinished => m_isFinished; public ExpandWallMimicManager() { SpawnEnemyMode = false; GlitchedEnemyMode = false; CursedBrickMode = false; SkipPlayerCheck = false; m_AssetBundle = ResourceManager.LoadAssetBundle("shared_auto_001"); WallDisappearVFX = m_AssetBundle.LoadAsset("VFX_Dust_Explosion"); if (SpawnEnemyList == null) { SpawnEnemyList = new List { "01972dee89fc4404a5c408d50007dad5", "05891b158cd542b1a5f3df30fb67a7ff", "4d37ce3d666b4ddda8039929225b7ede", "8bb5578fba374e8aae8e10b754e61d62", "f905765488874846b7ff257ff81d6d0c", "37340393f97f41b2822bc02d14654172", "c182a5cb704d460d9d099a47af49c913", "5f3abc2d561b4b9c9e72b879c6f10c7e", "1bd8e49f93614e76b140077ff2e33f2b", "1a78cfb776f54641b832e92c44021cf2", "2752019b770f473193b08b4005dc781f", "70216cae6c1346309d86d4a0b4603045", "d4dd2b2bbda64cc9bcec534b4e920518", "6f818f482a5c47fd8f38cce101f6566c", "143be8c9bbb84e3fb3ab98bcd4cf5e5b", "06f5623a351c4f28bc8c6cda56004b80", "ff4f54ce606e4604bf8d467c1279be3e", "39e6f47a16ab4c86bec4b12984aece4c", "f020570a42164e2699dcf57cac8a495c", "37de0df92697431baa47894a075ba7e9", "5861e5a077244905a8c25c2b7b4d6ebb", "906d71ccc1934c02a6f4ff2e9c07c9ec", "9eba44a0ea6c4ea386ff02286dd0e6bd", "05cb719e0178478685dc610f8b3e8bfc", "e861e59012954ab2b9b6977da85cb83c", "3b0bd258b4c9432db3339665cc61c356", "4b21a913e8c54056bc05cafecf9da880", "78e0951b097b46d89356f004dda27c42", "216fd3dfb9da439d9bd7ba53e1c76462", "9b2cf2949a894599917d4d391a0b7394", "RATCORPSE" }; } m_AssetBundle = null; m_isHidden = true; m_isFriendlyMimic = false; m_failedWallConfigure = false; m_isGlitched = false; m_ItemDropOdds = 0.18f; m_FriendlyMimicOdds = 0.15f; m_spawnEnemyOdds = 0.3f; m_glitchOdds = 0.08f; } public void Awake() { ObjectVisibilityManager visibilityManager = ((BraveBehaviour)this).visibilityManager; visibilityManager.OnToggleRenderers = (Action)Delegate.Combine(visibilityManager.OnToggleRenderers, new Action(OnToggleRenderers)); ((GameActor)((BraveBehaviour)this).aiActor).IsGone = true; } public void Start() { //IL_001e: 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_00a2: 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_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_016f: 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_0180: Invalid comparison between Unknown and I4 //IL_019a: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Invalid comparison between Unknown and I4 //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01e5: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Unknown result type (might be due to invalid IL or missing references) //IL_0250: Unknown result type (might be due to invalid IL or missing references) //IL_0263: Unknown result type (might be due to invalid IL or missing references) //IL_026e: Unknown result type (might be due to invalid IL or missing references) //IL_02a2: Unknown result type (might be due to invalid IL or missing references) //IL_02a8: Invalid comparison between Unknown and I4 //IL_0281: Unknown result type (might be due to invalid IL or missing references) //IL_0290: Unknown result type (might be due to invalid IL or missing references) //IL_0295: Unknown result type (might be due to invalid IL or missing references) //IL_02d7: Unknown result type (might be due to invalid IL or missing references) //IL_02dd: Invalid comparison between Unknown and I4 //IL_02b6: Unknown result type (might be due to invalid IL or missing references) //IL_02c5: Unknown result type (might be due to invalid IL or missing references) //IL_02ca: Unknown result type (might be due to invalid IL or missing references) //IL_031f: Unknown result type (might be due to invalid IL or missing references) //IL_032f: Unknown result type (might be due to invalid IL or missing references) //IL_033f: Unknown result type (might be due to invalid IL or missing references) //IL_02eb: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: 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_037c: 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) //IL_03cb: Invalid comparison between Unknown and I4 //IL_040e: Unknown result type (might be due to invalid IL or missing references) //IL_0414: Invalid comparison between Unknown and I4 //IL_0417: Unknown result type (might be due to invalid IL or missing references) //IL_041d: Invalid comparison between Unknown and I4 if (!m_configured) { ConfigureOnPlacement(GameManager.Instance.Dungeon.data.GetAbsoluteRoomFromPosition(Vector3Extensions.IntXY(((BraveBehaviour)this).transform.position, (VectorConversions)1))); } PlayerController primaryPlayer = GameManager.Instance.PrimaryPlayer; PlayerController secondaryPlayer = GameManager.Instance.SecondaryPlayer; if ((Object.op_Implicit((Object)(object)primaryPlayer) && primaryPlayer.HasPassiveItem(CorruptedJunk.CorruptedJunkID)) | (Object.op_Implicit((Object)(object)secondaryPlayer) && secondaryPlayer.HasPassiveItem(CorruptedJunk.CorruptedJunkID))) { GlitchedEnemyMode = true; } if (GlitchedEnemyMode && Random.value <= m_glitchOdds) { m_isGlitched = true; } ((BraveBehaviour)this).transform.position = m_startingPos; ((BraveBehaviour)this).specRigidbody.Reinitialize(); ((BraveBehaviour)this).aiAnimator.LockFacingDirection = true; ((BraveBehaviour)this).aiAnimator.FacingDirection = DungeonData.GetAngleFromDirection(m_facingDirection); if (!m_failedWallConfigure) { m_fakeWall = ExpandUtility.GenerateWallMesh(m_facingDirection, pos1, "Mimic Wall", null, abridged: true, m_isGlitched, DungeonCollectionOverride, SourceDungeonForTileSetOverride); if (((BraveBehaviour)this).aiActor.ParentRoom != null) { m_fakeWall.transform.parent = ((BraveBehaviour)this).aiActor.ParentRoom.hierarchyParent; } m_fakeWall.transform.position = Vector3Extensions.WithZ(((IntVector2)(ref pos1)).ToVector3(), (float)(pos1.y - 2)) + Vector3.down; if ((int)m_facingDirection == 4) { StaticReferenceManager.AllShadowSystemDepthHavers.Add(m_fakeWall.transform); } else if ((int)m_facingDirection == 6) { m_fakeWall.transform.position = m_fakeWall.transform.position + new Vector3(-0.1875f, 0f); } m_fakeCeiling = ExpandUtility.GenerateRoomCeilingMesh(GetCeilingTileSet(pos1, pos2, m_facingDirection), "Mimic Ceiling", null, mimicCheck: true, m_isGlitched, DungeonCollectionOverride, SourceDungeonForTileSetOverride); if (((BraveBehaviour)this).aiActor.ParentRoom != null) { m_fakeCeiling.transform.parent = ((BraveBehaviour)this).aiActor.ParentRoom.hierarchyParent; } m_fakeCeiling.transform.position = Vector3Extensions.WithZ(((IntVector2)(ref pos1)).ToVector3(), (float)(pos1.y - 4)); if ((int)m_facingDirection == 0) { Transform transform = m_fakeCeiling.transform; transform.position += new Vector3(-1f, 0f); } else if ((int)m_facingDirection == 4) { Transform transform2 = m_fakeCeiling.transform; transform2.position += new Vector3(-1f, 2f); } else if ((int)m_facingDirection == 2) { Transform transform3 = m_fakeCeiling.transform; transform3.position += new Vector3(-1f, 0f); } m_fakeCeiling.transform.position = Vector3Extensions.WithZ(m_fakeCeiling.transform.position, m_fakeCeiling.transform.position.y - 5f); for (int i = 0; i < ((BraveBehaviour)this).specRigidbody.PixelColliders.Count; i++) { ((BraveBehaviour)this).specRigidbody.PixelColliders[i].Enabled = false; } if ((int)m_facingDirection == 0) { ((BraveBehaviour)this).specRigidbody.PixelColliders.Add(PixelCollider.CreateRectangle((CollisionLayer)5, 38, 38, 32, 8, true)); ((BraveBehaviour)this).specRigidbody.PixelColliders.Add(PixelCollider.CreateRectangle((CollisionLayer)6, 38, 54, 32, 8, true)); } else if ((int)m_facingDirection == 4) { ((BraveBehaviour)this).specRigidbody.PixelColliders.Add(PixelCollider.CreateRectangle((CollisionLayer)5, 38, 38, 32, 16, true)); ((BraveBehaviour)this).specRigidbody.PixelColliders.Add(PixelCollider.CreateRectangle((CollisionLayer)6, 38, 54, 32, 16, true)); } else if ((int)m_facingDirection == 6 || (int)m_facingDirection == 2) { ((BraveBehaviour)this).specRigidbody.PixelColliders.Add(PixelCollider.CreateRectangle((CollisionLayer)5, 46, 38, 16, 32, true)); ((BraveBehaviour)this).specRigidbody.PixelColliders.Add(PixelCollider.CreateRectangle((CollisionLayer)6, 46, 38, 16, 32, true)); } ((BraveBehaviour)this).specRigidbody.ForceRegenerate((bool?)null, (bool?)null); } ((BraveBehaviour)this).aiActor.HasDonePlayerEnterCheck = true; m_collisionKnockbackStrength = ((BraveBehaviour)this).aiActor.CollisionKnockbackStrength; ((BraveBehaviour)this).aiActor.CollisionKnockbackStrength = 0f; ((BraveBehaviour)this).aiActor.CollisionDamage = 0f; m_goopDoer = ((Component)this).GetComponent(); } public void Update() { //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_0069: 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_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Invalid comparison between Unknown and I4 //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: 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_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Invalid comparison between Unknown and I4 //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: 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_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Invalid comparison between Unknown and I4 //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_011d: 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_012a: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_0151: 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_0157: 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_0168: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_01e1: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: Unknown result type (might be due to invalid IL or missing references) //IL_0211: Unknown result type (might be due to invalid IL or missing references) //IL_0216: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Unknown result type (might be due to invalid IL or missing references) //IL_023e: Unknown result type (might be due to invalid IL or missing references) //IL_024b: Unknown result type (might be due to invalid IL or missing references) //IL_0250: Unknown result type (might be due to invalid IL or missing references) //IL_0255: 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_0220: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Unknown result type (might be due to invalid IL or missing references) //IL_0227: Unknown result type (might be due to invalid IL or missing references) //IL_022c: Unknown result type (might be due to invalid IL or missing references) bool flag = false; PlayerController[] allPlayers; if (!SkipPlayerCheck) { allPlayers = GameManager.Instance.AllPlayers; for (int i = 0; i < allPlayers.Length; i++) { if (allPlayers[i].CurrentRoom == ((BraveBehaviour)this).aiActor.ParentRoom) { flag = true; } } } if (!(SkipPlayerCheck || flag) || !CanAwaken) { return; } Vector2 val = ((BraveBehaviour)this).specRigidbody.PixelColliders[0].UnitBottomLeft; Vector2 val2 = val; if (!m_failedWallConfigure) { val = ((BraveBehaviour)this).specRigidbody.PixelColliders[2].UnitBottomLeft; } if ((int)m_facingDirection == 4) { val += new Vector2(0f, -1.5f); val2 += new Vector2(2f, 0f); } else if ((int)m_facingDirection == 0) { val += new Vector2(0f, 1f); val2 += new Vector2(2f, 3f); } else if ((int)m_facingDirection == 6) { val += new Vector2(-1.5f, 0f); val2 += new Vector2(0f, 2f); } else if ((int)m_facingDirection == 2) { val += new Vector2(1f, 0f); val2 += new Vector2(2.5f, 2f); } bool flag2 = false; allPlayers = GameManager.Instance.AllPlayers; foreach (PlayerController val3 in allPlayers) { if (val3.CanDetectHiddenEnemies) { flag2 = true; if (!m_playerTrueSight) { m_playerTrueSight = true; ((BraveBehaviour)this).aiActor.ToggleRenderers(true); } } if (!Object.op_Implicit((Object)(object)val3) || !((BraveBehaviour)val3).healthHaver.IsAlive || val3.IsGhost || !Vector2Extensions.IsWithin(((BraveBehaviour)val3).specRigidbody.GetUnitCenter((ColliderType)1), val, val2)) { continue; } if (Object.op_Implicit((Object)(object)m_goopDoer)) { Vector2 val4 = ((BraveBehaviour)this).specRigidbody.PixelColliders[2].UnitCenter; if ((int)m_facingDirection == 0) { val4 += Vector2.up; } DeadlyDeadlyGoopManager goopManagerForGoopType = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(m_goopDoer.goopDefinition); Vector2 val5 = val4; IntVector2 intVector2FromDirection = DungeonData.GetIntVector2FromDirection(m_facingDirection); goopManagerForGoopType.TimedAddGoopArc(val5, 3f, 90f, ((IntVector2)(ref intVector2FromDirection)).ToVector2(), 0.2f, (AnimationCurve)null); } ((MonoBehaviour)this).StartCoroutine(BecomeMimic()); } if (!flag2 && m_playerTrueSight) { m_playerTrueSight = false; ((BraveBehaviour)this).aiActor.ToggleRenderers(false); } } private IEnumerator BecomeMimic() { PlayerController primaryPlayer = GameManager.Instance.PrimaryPlayer; PlayerController secondaryPlayer = GameManager.Instance.SecondaryPlayer; if (!SpawnEnemyMode) { if (Object.op_Implicit((Object)(object)primaryPlayer) && primaryPlayer.HasPassiveItem(293) && primaryPlayer.HasPassiveItem(CursedBrick.CursedBrickID)) { SpawnEnemyMode = true; } if (Object.op_Implicit((Object)(object)secondaryPlayer) && secondaryPlayer.HasPassiveItem(293) && secondaryPlayer.HasPassiveItem(CursedBrick.CursedBrickID)) { SpawnEnemyMode = true; } } if (m_hands == null) { ((MonoBehaviour)this).StartCoroutine(DoIntro()); } if (SpawnEnemyMode) { m_ItemDropOdds += 0.1f; } m_isHidden = false; SpeculativeRigidbody specRigidbody = ((BraveBehaviour)this).specRigidbody; specRigidbody.OnRigidbodyCollision = (OnRigidbodyCollisionDelegate)Delegate.Remove((Delegate?)(object)specRigidbody.OnRigidbodyCollision, (Delegate?)new OnRigidbodyCollisionDelegate(HandleRigidbodyCollision)); SpeculativeRigidbody specRigidbody2 = ((BraveBehaviour)this).specRigidbody; specRigidbody2.OnBeamCollision = (OnBeamCollisionDelegate)Delegate.Remove((Delegate?)(object)specRigidbody2.OnBeamCollision, (Delegate?)new OnBeamCollisionDelegate(HandleBeamCollision)); AIAnimator childAnimator = ((BraveBehaviour)this).aiAnimator.ChildAnimator; ((BraveBehaviour)childAnimator).renderer.enabled = true; ((Behaviour)((BraveBehaviour)childAnimator).spriteAnimator).enabled = true; AIAnimator childAnimator2 = childAnimator.ChildAnimator; ((BraveBehaviour)childAnimator2).renderer.enabled = true; ((Behaviour)((BraveBehaviour)childAnimator2).spriteAnimator).enabled = true; childAnimator.PlayUntilFinished("spawn", false, (string)null, -1f, false); float delay2 = childAnimator.CurrentClipLength; float timer2 = 0f; bool hasPlayedVFX = false; while (timer2 < delay2) { yield return null; timer2 += BraveTime.DeltaTime; if (hasPlayedVFX || !(delay2 - timer2 < 0.1f)) { continue; } hasPlayedVFX = true; if (!Object.op_Implicit((Object)(object)WallDisappearVFX)) { continue; } Vector2 zero = Vector2.zero; Vector2 zero2 = Vector2.zero; Direction facingDirection = m_facingDirection; if ((int)facingDirection != 4) { if ((int)facingDirection != 2) { if ((int)facingDirection == 6) { ((Vector2)(ref zero))..ctor(0f, -1f); ((Vector2)(ref zero2))..ctor(0f, 1f); } } else { ((Vector2)(ref zero))..ctor(0f, -1f); ((Vector2)(ref zero2))..ctor(0f, 1f); } } else { ((Vector2)(ref zero))..ctor(0f, -1f); ((Vector2)(ref zero2))..ctor(0f, 1f); } Vector2 val = Vector2.Min(((IntVector2)(ref pos1)).ToVector2(), ((IntVector2)(ref pos2)).ToVector2()) + zero; Vector2 val2 = Vector2.Max(((IntVector2)(ref pos1)).ToVector2(), ((IntVector2)(ref pos2)).ToVector2()) + new Vector2(1f, 1f) + zero2; for (int i = 0; i < 5; i++) { Vector2 val3 = BraveUtility.RandomVector2(val, val2, new Vector2(0.25f, 0.25f)) + new Vector2(0f, 1f); GameObject val4 = SpawnManager.SpawnVFX(WallDisappearVFX, Vector2.op_Implicit(val3), Quaternion.identity); tk2dBaseSprite val5 = ((!Object.op_Implicit((Object)(object)val4)) ? null : val4.GetComponent()); if (Object.op_Implicit((Object)(object)val5)) { val5.HeightOffGround = 8f; val5.UpdateZDepth(); } } } IntVector2 intVector2FromDirection; if (!m_failedWallConfigure && SpawnEnemyMode && ((BraveBehaviour)this).aiActor.ParentRoom != null && SpawnEnemyList != null && SpawnEnemyList.Count > 0 && Random.value <= m_spawnEnemyOdds) { int count = ((BraveBehaviour)this).specRigidbody.PixelColliders.Count; ((BraveBehaviour)this).specRigidbody.PixelColliders.RemoveAt(count - 1); ((BraveBehaviour)this).specRigidbody.PixelColliders.RemoveAt(count - 2); StaticReferenceManager.AllShadowSystemDepthHavers.Remove(m_fakeWall.transform); Object.Destroy((Object)(object)m_fakeWall); Object.Destroy((Object)(object)m_fakeCeiling); Vector3 startingPos = m_startingPos; intVector2FromDirection = DungeonData.GetIntVector2FromDirection(m_facingDirection); Vector3 targetPosForSpawn = startingPos + ((IntVector2)(ref intVector2FromDirection)).ToVector3(); while (timer2 < delay2) { ((BraveBehaviour)this).aiAnimator.LockFacingDirection = true; ((BraveBehaviour)this).aiAnimator.FacingDirection = DungeonData.GetAngleFromDirection(m_facingDirection); yield return null; timer2 += BraveTime.DeltaTime; ((BraveBehaviour)this).transform.position = Vector3.Lerp(m_startingPos, targetPosForSpawn, Mathf.InverseLerp(0.42f, 0.58f, timer2)); ((BraveBehaviour)this).specRigidbody.Reinitialize(); } yield return null; Vector3 FinalSpawnLocation = ((BraveBehaviour)this).transform.position; Vector3 VFXExplosionLocation = ((BraveBehaviour)this).transform.position; Vector2 VFXExplosionSource = Vector2.zero; Direction facingDirection2 = m_facingDirection; if ((int)facingDirection2 == 6) { FinalSpawnLocation += new Vector3(2.5f, 3.5f); VFXExplosionLocation += new Vector3(3.5f, 3.5f); VFXExplosionSource = new Vector2(1f, 0f); } else if ((int)facingDirection2 == 2) { FinalSpawnLocation += new Vector3(4f, 3.5f); VFXExplosionLocation += new Vector3(3f, 3.5f); } else if ((int)facingDirection2 == 0) { FinalSpawnLocation += new Vector3(3.5f, 4f); VFXExplosionLocation += new Vector3(3.5f, 3f); VFXExplosionSource = new Vector2(0f, 1f); } else if ((int)facingDirection2 == 4) { FinalSpawnLocation += new Vector3(3.5f, 1.5f); VFXExplosionLocation += new Vector3(3.5f, 2.5f); } yield return null; string text = BraveUtility.RandomElement(SpawnEnemyList); ExplosionData val6 = new ExplosionData(); val6.CopyFrom(GameManager.Instance.Dungeon.sharedSettingsPrefab.DefaultExplosionData); val6.damage = 0f; val6.force /= 1.6f; if (text != "RATCORPSE") { Exploder.Explode(VFXExplosionLocation, val6, VFXExplosionSource, (Action)null, true, (CoreDamageTypes)0, false); GameObject val7 = Object.Instantiate((GameObject)ResourceCache.Acquire("Global VFX/VFX_Item_Spawn_Poof")); if (Object.op_Implicit((Object)(object)val7)) { tk2dBaseSprite component = val7.GetComponent(); component.PlaceAtPositionByAnchor(FinalSpawnLocation + new Vector3(0f, 0.5f, 0f), (Anchor)4); component.HeightOffGround = 1f; component.UpdateZDepth(); } AIActor val8 = AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(text), Vector2.op_Implicit(FinalSpawnLocation), ((BraveBehaviour)this).aiActor.ParentRoom, true, (AwakenAnimationType)1, true); if (!Object.op_Implicit((Object)(object)val8)) { goto IL_0b27; } int num = ((!(Random.value >= 0.2f)) ? 3 : (BraveUtility.RandomBool() ? 1 : 2)); GenericLootTable val9 = ((!BraveUtility.RandomBool()) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable); PickupObject itemOfTypeAndQuality = LootEngine.GetItemOfTypeAndQuality((ItemQuality)num, val9, false); if (Object.op_Implicit((Object)(object)itemOfTypeAndQuality)) { val8.AdditionalSafeItemDrops.Add(itemOfTypeAndQuality); } if (m_isGlitched) { float glitchInterval = Random.Range(0.02f, 0.06f); float dispProbability = Random.Range(0.1f, 0.16f); float dispIntensity = Random.Range(0.1f, 0.4f); float colorProbability = Random.Range(0.05f, 0.2f); float colorIntensity = Random.Range(0.1f, 0.25f); int num2 = ((!(Random.value >= 0.2f)) ? 4 : ((!BraveUtility.RandomBool()) ? 3 : 2)); val9 = ((!BraveUtility.RandomBool()) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable); itemOfTypeAndQuality = LootEngine.GetItemOfTypeAndQuality((ItemQuality)num2, val9, false); if (Object.op_Implicit((Object)(object)itemOfTypeAndQuality)) { ((BraveBehaviour)this).aiActor.AdditionalSafeItemDrops.Add(itemOfTypeAndQuality); } ExpandShaders.Instance.ApplyGlitchShader(((BraveBehaviour)val8).sprite, usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); } if (val8.ParentRoom != null && !val8.ParentRoom.IsSealed) { val8.IgnoreForRoomClear = true; } } else { Exploder.Explode(VFXExplosionLocation, val6, VFXExplosionSource, (Action)null, true, (CoreDamageTypes)0, false); tk2dBaseSprite component2 = Object.Instantiate((GameObject)ResourceCache.Acquire("Global VFX/VFX_Item_Spawn_Poof")).GetComponent(); component2.PlaceAtPositionByAnchor(FinalSpawnLocation + new Vector3(0f, 0.5f, 0f), (Anchor)4); component2.HeightOffGround = 1f; component2.UpdateZDepth(); TalkDoerLite component3 = Object.Instantiate(ExpandPrefabs.RatCorpseNPC, FinalSpawnLocation, Quaternion.identity).GetComponent(); Vector3Extensions.GetAbsoluteRoom(Vector3Extensions.XY(((BraveBehaviour)component3).transform.position)).RegisterInteractable((IPlayerInteractable)(object)component3); Vector3Extensions.GetAbsoluteRoom(Vector3Extensions.XY(((BraveBehaviour)component3).transform.position)).TransferInteractableOwnershipToDungeon((IPlayerInteractable)(object)component3); ((BraveBehaviour)component3).playmakerFsm.SetState("Set Mode"); ExpandUtility.AddHealthHaver(((Component)component3).gameObject, 60f, explodesOnDeath: true, (DeathType)1, flashesOnDamage: false, exploderSpawnsItem: true); } yield return null; Object.Destroy((Object)(object)((Component)this).gameObject); yield break; } goto IL_0b27; IL_0b27: int num3 = ((!(Random.value >= 0.2f)) ? 3 : (BraveUtility.RandomBool() ? 1 : 2)); GenericLootTable val10 = ((!BraveUtility.RandomBool()) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable); PickupObject itemOfTypeAndQuality2 = LootEngine.GetItemOfTypeAndQuality((ItemQuality)num3, val10, false); if (Object.op_Implicit((Object)(object)itemOfTypeAndQuality2)) { if (CursedBrickMode) { if ((Random.value <= m_ItemDropOdds) | m_isGlitched) { ((BraveBehaviour)this).aiActor.AdditionalSafeItemDrops.Add(itemOfTypeAndQuality2); } else { ((BraveBehaviour)this).aiActor.AdditionalSafeItemDrops.Add(PickupObjectDatabase.GetById(70)); if (BraveUtility.RandomBool()) { ((BraveBehaviour)this).aiActor.AdditionalSafeItemDrops.Add(PickupObjectDatabase.GetById(70)); } if (SpawnEnemyMode) { ((BraveBehaviour)this).aiActor.AdditionalSafeItemDrops.Add(PickupObjectDatabase.GetById(70)); } } if (SpawnEnemyMode && Random.value <= m_FriendlyMimicOdds) { m_isFriendlyMimic = true; } if (m_isGlitched) { float glitchInterval2 = Random.Range(0.02f, 0.06f); float dispProbability2 = Random.Range(0.1f, 0.16f); float dispIntensity2 = Random.Range(0.1f, 0.4f); float colorProbability2 = Random.Range(0.05f, 0.2f); float colorIntensity2 = Random.Range(0.1f, 0.25f); int num4 = ((!(Random.value >= 0.2f)) ? 4 : ((!BraveUtility.RandomBool()) ? 3 : 2)); val10 = ((!BraveUtility.RandomBool()) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable); itemOfTypeAndQuality2 = LootEngine.GetItemOfTypeAndQuality((ItemQuality)num4, val10, false); if (Object.op_Implicit((Object)(object)itemOfTypeAndQuality2)) { ((BraveBehaviour)this).aiActor.AdditionalSafeItemDrops.Add(itemOfTypeAndQuality2); } ExpandShaders.Instance.ApplyGlitchShader(((BraveBehaviour)this).sprite, usesOverrideMaterial: true, glitchInterval2, dispProbability2, dispIntensity2, colorProbability2, colorIntensity2); } } else { ((BraveBehaviour)this).aiActor.AdditionalSafeItemDrops.Add(itemOfTypeAndQuality2); } } if (CursedBrickMode && SpawnEnemyMode && Random.value <= m_FriendlyMimicOdds) { m_isFriendlyMimic = true; } ((Behaviour)((BraveBehaviour)this).aiActor).enabled = true; ((Behaviour)((BraveBehaviour)this).behaviorSpeculator).enabled = true; if (((BraveBehaviour)this).aiActor.ParentRoom != null && ((BraveBehaviour)this).aiActor.ParentRoom.IsSealed && !m_isFriendlyMimic) { ((BraveBehaviour)this).aiActor.IgnoreForRoomClear = false; } if (m_isFriendlyMimic) { ((GameActor)((BraveBehaviour)this).aiActor).ApplyEffect((GameActorEffect)(object)GameManager.Instance.Dungeon.sharedSettingsPrefab.DefaultPermanentCharmEffect, 1f, (Projectile)null); } if (!m_failedWallConfigure) { int count2 = ((BraveBehaviour)this).specRigidbody.PixelColliders.Count; for (int j = 0; j < count2 - 2; j++) { ((BraveBehaviour)this).specRigidbody.PixelColliders[j].Enabled = true; } ((BraveBehaviour)this).specRigidbody.PixelColliders.RemoveAt(count2 - 1); ((BraveBehaviour)this).specRigidbody.PixelColliders.RemoveAt(count2 - 2); StaticReferenceManager.AllShadowSystemDepthHavers.Remove(m_fakeWall.transform); Object.Destroy((Object)(object)m_fakeWall); Object.Destroy((Object)(object)m_fakeCeiling); } else { int count3 = ((BraveBehaviour)this).specRigidbody.PixelColliders.Count; for (int k = 0; k < count3; k++) { ((BraveBehaviour)this).specRigidbody.PixelColliders[k].Enabled = true; } } for (int l = 0; l < m_hands.Length; l++) { ((Component)m_hands[l]).gameObject.SetActive(true); } ((BraveBehaviour)this).aiActor.ToggleRenderers(true); if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).aiShooter)) { ((BraveBehaviour)this).aiShooter.ToggleGunAndHandRenderers(true, "ExpandWallMimicManager"); } ((GameActor)((BraveBehaviour)this).aiActor).IsGone = false; ((BraveBehaviour)this).healthHaver.IsVulnerable = true; ((BraveBehaviour)this).aiActor.State = (ActorState)2; for (int m = 0; m < m_hands.Length; m++) { ((Component)m_hands[m]).gameObject.SetActive(false); } m_isFinished = true; delay2 = 0.58f; timer2 = 0f; Vector3 startingPos2 = m_startingPos; intVector2FromDirection = DungeonData.GetIntVector2FromDirection(m_facingDirection); Vector3 targetPos = startingPos2 + ((IntVector2)(ref intVector2FromDirection)).ToVector3(); while (timer2 < delay2) { ((BraveBehaviour)this).aiAnimator.LockFacingDirection = true; ((BraveBehaviour)this).aiAnimator.FacingDirection = DungeonData.GetAngleFromDirection(m_facingDirection); yield return null; timer2 += BraveTime.DeltaTime; ((BraveBehaviour)this).transform.position = Vector3.Lerp(m_startingPos, targetPos, Mathf.InverseLerp(0.42f, 0.58f, timer2)); ((BraveBehaviour)this).specRigidbody.Reinitialize(); } ((BraveBehaviour)this).aiAnimator.LockFacingDirection = false; ((BraveBehaviour)this).knockbackDoer.SetImmobile(false, "ExpandWallMimicManager"); ((BraveBehaviour)this).aiActor.CollisionDamage = 0.5f; ((BraveBehaviour)this).aiActor.CollisionKnockbackStrength = m_collisionKnockbackStrength; } public override void StartIntro() { ((MonoBehaviour)this).StartCoroutine(DoIntro()); } private IEnumerator DoIntro() { ((Behaviour)((BraveBehaviour)this).aiActor).enabled = false; ((Behaviour)((BraveBehaviour)this).behaviorSpeculator).enabled = false; ((BraveBehaviour)this).aiActor.ToggleRenderers(false); ((GameActor)((BraveBehaviour)this).aiActor).IsGone = true; ((BraveBehaviour)this).healthHaver.IsVulnerable = false; ((BraveBehaviour)this).knockbackDoer.SetImmobile(true, "ExpandWallMimicManager"); m_hands = ((Component)this).GetComponentsInChildren(); for (int i = 0; i < m_hands.Length; i++) { ((Component)m_hands[i]).gameObject.SetActive(false); } yield return null; ((BraveBehaviour)this).aiActor.ToggleRenderers(false); if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).aiShooter)) { ((BraveBehaviour)this).aiShooter.ToggleGunAndHandRenderers(false, "ExpandWallMimicManager"); } SpeculativeRigidbody specRigidbody = ((BraveBehaviour)this).specRigidbody; specRigidbody.OnRigidbodyCollision = (OnRigidbodyCollisionDelegate)Delegate.Combine((Delegate?)(object)specRigidbody.OnRigidbodyCollision, (Delegate?)new OnRigidbodyCollisionDelegate(HandleRigidbodyCollision)); SpeculativeRigidbody specRigidbody2 = ((BraveBehaviour)this).specRigidbody; specRigidbody2.OnBeamCollision = (OnBeamCollisionDelegate)Delegate.Combine((Delegate?)(object)specRigidbody2.OnBeamCollision, (Delegate?)new OnBeamCollisionDelegate(HandleBeamCollision)); for (int j = 0; j < m_hands.Length; j++) { ((Component)m_hands[j]).gameObject.SetActive(false); } } private void HandleRigidbodyCollision(CollisionData rigidbodyCollision) { if (CanAwaken && Object.op_Implicit((Object)(object)((BraveBehaviour)rigidbodyCollision.OtherRigidbody).projectile)) { ((MonoBehaviour)this).StartCoroutine(BecomeMimic()); } } private void HandleBeamCollision(BeamController beamController) { if (CanAwaken) { ((MonoBehaviour)this).StartCoroutine(BecomeMimic()); } } private void OnToggleRenderers() { if (m_isHidden && Object.op_Implicit((Object)(object)((BraveBehaviour)this).aiActor)) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)((BraveBehaviour)this).aiActor).sprite)) { ((BraveBehaviour)((BraveBehaviour)((BraveBehaviour)this).aiActor).sprite).renderer.enabled = false; } if (Object.op_Implicit((Object)(object)((GameActor)((BraveBehaviour)this).aiActor).ShadowObject)) { ((GameActor)((BraveBehaviour)this).aiActor).ShadowObject.GetComponent().enabled = false; } } } public void ConfigureOnPlacement(RoomHandler room) { //IL_0006: 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_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_0049: 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_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: 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_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0071: 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_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: 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_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Invalid comparison between Unknown and I4 //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Invalid comparison between Unknown and I4 //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_013f: 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_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Invalid comparison between Unknown and I4 //IL_01dd: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: Unknown result type (might be due to invalid IL or missing references) //IL_01c5: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Invalid comparison between Unknown and I4 Vector2 val = Vector3Extensions.XY(((BraveBehaviour)this).transform.position) + new Vector2((float)((BraveBehaviour)this).specRigidbody.GroundPixelCollider.ManualOffsetX / 16f, (float)((BraveBehaviour)this).specRigidbody.GroundPixelCollider.ManualOffsetY / 16f); IntVector2 val2 = Vector2Extensions.ToIntVector2(val, (VectorConversions)2); Vector2 val3 = ((IntVector2)(ref val2)).ToVector2(); Transform transform = ((BraveBehaviour)this).transform; transform.position += Vector2Extensions.ToVector3ZUp(val3 - val, 0f); pos1 = Vector2Extensions.ToIntVector2(val3, (VectorConversions)0); pos2 = pos1 + IntVector2.Right; m_facingDirection = GetFacingDirection(pos1, pos2); if ((int)m_facingDirection == 6) { pos1 = pos2; m_startingPos = ((BraveBehaviour)this).transform.position + new Vector3(1f, 0f); } else if ((int)m_facingDirection == 2) { pos2 = pos1; m_startingPos = ((BraveBehaviour)this).transform.position; } else { m_startingPos = ((BraveBehaviour)this).transform.position + new Vector3(0.5f, 0f); } try { CellData val4 = GameManager.Instance.Dungeon.data[pos1]; CellData obj = GameManager.Instance.Dungeon.data[pos2]; val4.isSecretRoomCell = true; obj.isSecretRoomCell = true; val4.forceDisallowGoop = true; obj.forceDisallowGoop = true; val4.cellVisualData.preventFloorStamping = true; obj.cellVisualData.preventFloorStamping = true; val4.isWallMimicHideout = true; obj.isWallMimicHideout = true; if ((int)m_facingDirection == 6 || (int)m_facingDirection == 2) { GameManager.Instance.Dungeon.data[pos1 + IntVector2.Up].isSecretRoomCell = true; } } catch (Exception ex) { Debug.Log((object)"[DEBUG] Warning: Exception caught during ExpandWallMimicManager.ConfigureOnPlacement!\nLikely due to Wall Mimic spawning in an area besides a normal Wall Mimic Hideout!"); Debug.LogException(ex); m_failedWallConfigure = true; } m_configured = true; } private Direction GetFacingDirection(IntVector2 pos1, IntVector2 pos2) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: 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_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0061: 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_0067: Unknown result type (might be due to invalid IL or missing references) //IL_004c: 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_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) DungeonData data = GameManager.Instance.Dungeon.data; if (data.isWall(pos1 + IntVector2.Down) && data.isWall(pos1 + IntVector2.Up)) { return (Direction)2; } if (data.isWall(pos2 + IntVector2.Down) && data.isWall(pos2 + IntVector2.Up)) { return (Direction)6; } if (data.isWall(pos1 + IntVector2.Down) && data.isWall(pos2 + IntVector2.Down)) { return (Direction)0; } if (data.isWall(pos1 + IntVector2.Up) && data.isWall(pos2 + IntVector2.Up)) { return (Direction)4; } Debug.LogError((object)"Not able to determine the direction of a wall mimic! Using random direction instead!"); return BraveUtility.RandomElement(new List { (Direction)2, (Direction)6, (Direction)0, (Direction)4 }); } private HashSet GetCeilingTileSet(IntVector2 pos1, IntVector2 pos2, Direction facingDirection) { //IL_0000: 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_0023: Invalid comparison between Unknown and I4 //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0006: 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_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Invalid comparison between Unknown and I4 //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //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) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Invalid comparison between Unknown and I4 //IL_0047: 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_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_0055: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: 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_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0079: 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_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) IntVector2 val; IntVector2 val2; if ((int)facingDirection == 0) { val = pos1 + new IntVector2(-1, 0); val2 = pos2 + new IntVector2(1, 1); } else if ((int)facingDirection == 4) { val = pos1 + new IntVector2(-1, 2); val2 = pos2 + new IntVector2(1, 3); } else if ((int)facingDirection == 2) { val = pos1 + new IntVector2(-1, 0); val2 = pos2 + new IntVector2(0, 3); } else { if ((int)facingDirection != 6) { return null; } val = pos1 + new IntVector2(0, 0); val2 = pos2 + new IntVector2(1, 3); } HashSet hashSet = new HashSet(); IntVector2 item = default(IntVector2); for (int i = val.x; i <= val2.x; i++) { for (int j = val.y; j <= val2.y; j++) { ((IntVector2)(ref item))..ctor(i, j); hashSet.Add(item); } } return hashSet; } protected override void OnDestroy() { if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).visibilityManager)) { ObjectVisibilityManager visibilityManager = ((BraveBehaviour)this).visibilityManager; visibilityManager.OnToggleRenderers = (Action)Delegate.Remove(visibilityManager.OnToggleRenderers, new Action(OnToggleRenderers)); } ((CustomEngageDoer)this).OnDestroy(); } } internal class ExpandWesternBroDeathController : BraveBehaviour { protected void Start() { ((BraveBehaviour)this).healthHaver.OnPreDeath += OnDeath; } private void OnDeath(Vector2 finalDeathDir) { //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) bool flag = false; foreach (ExpandWesternBroController allWesternBro in ExpandStaticReferenceManager.AllWesternBros) { if (Object.op_Implicit((Object)(object)allWesternBro) && (Object)(object)((Component)this).gameObject != (Object)(object)((Component)allWesternBro).gameObject && Object.op_Implicit((Object)(object)((BraveBehaviour)allWesternBro).healthHaver) && ((BraveBehaviour)allWesternBro).healthHaver.IsAlive) { allWesternBro.Enrage(); flag = true; } } if (flag) { return; } if (GameStatsManager.HasInstance && GameStatsManager.Instance.IsRainbowRun && Object.op_Implicit((Object)(object)GameManager.Instance.RewardManager.BowlerNoteOtherSource)) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).aiActor) && ((BraveBehaviour)this).aiActor.ParentRoom != null) { ExpandUtility.SpawnCustomBowlerNote(GameManager.Instance.RewardManager.BowlerNoteOtherSource, Vector3Extensions.XY(((BraveBehaviour)this).transform.position), ((BraveBehaviour)this).aiActor.ParentRoom, BraveUtility.RandomElement(ExpandLists.EXBowlerNotes_OldWestBros)); } return; } PickupObject val = ((((BraveBehaviour)this).aiActor.ParentRoom == null || ((BraveBehaviour)this).aiActor.ParentRoom.PlayerHasTakenDamageInThisRoom) ? PickupObjectDatabase.GetById(BlackAndGoldenRevolver.BlackRevolverID) : PickupObjectDatabase.GetById(BlackAndGoldenRevolver.GoldenRevolverID)); if (Object.op_Implicit((Object)(object)val) && Object.op_Implicit((Object)(object)((BraveBehaviour)this).aiActor)) { ((BraveBehaviour)this).aiActor.AdditionalSafeItemDrops.Add(val); } } } [RequireComponent(typeof(GenericIntroDoer))] public class ExpandWesternBroIntroDoer : SpecificIntroDoer { private bool initialized; private bool finished; private GameObject m_ScreenFXObject; private AIAnimator thisWesternBro; private List otherWesternBros; private Vector2 gunOffset = new Vector2(10f, -2f); private Vector2 negativeGunOffset = new Vector2(-10f, -2f); private readonly float facingDirection = -90f; private readonly string rendererReason = "WesternBrosIntroDoer"; public override Vector2? OverrideIntroPosition => ((BraveBehaviour)thisWesternBro).specRigidbody.GetUnitCenter((ColliderType)2) + new Vector2(4f, 0f); public override bool IsIntroFinished => finished; public void Update() { //IL_00a1: 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_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //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) if (initialized) { return; } thisWesternBro = ((BraveBehaviour)this).aiAnimator; otherWesternBros = new List(); foreach (ExpandWesternBroController allWesternBro in ExpandStaticReferenceManager.AllWesternBros) { if ((Object)(object)((Component)allWesternBro).gameObject != (Object)(object)((Component)this).gameObject) { otherWesternBros.Add(((BraveBehaviour)allWesternBro).aiAnimator); } } ((BraveBehaviour)thisWesternBro).aiShooter.ToggleGunAndHandRenderers(false, rendererReason); ((BraveBehaviour)thisWesternBro).aiShooter.AimAtPoint(((GameActor)((BraveBehaviour)thisWesternBro).aiActor).CenterPosition + negativeGunOffset); thisWesternBro.FacingDirection = facingDirection; foreach (AIAnimator otherWesternBro in otherWesternBros) { ((BraveBehaviour)otherWesternBro).aiShooter.ToggleGunAndHandRenderers(false, rendererReason); ((BraveBehaviour)otherWesternBro).aiShooter.AimAtPoint(((GameActor)((BraveBehaviour)otherWesternBro).aiActor).CenterPosition + gunOffset); otherWesternBro.FacingDirection = facingDirection; } initialized = true; } private void AnimationEventTriggered(tk2dSpriteAnimator animator, tk2dSpriteAnimationClip clip, int frame) { if (!(clip.GetFrame(frame).eventInfo == "guntoggle")) { return; } ((BraveBehaviour)thisWesternBro).aiShooter.ToggleGunAndHandRenderers(true, rendererReason); foreach (AIAnimator otherWesternBro in otherWesternBros) { ((BraveBehaviour)otherWesternBro).aiShooter.ToggleGunAndHandRenderers(true, rendererReason); } } public override void PlayerWalkedIn(PlayerController player, List animators) { //IL_0041: 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_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)((Component)this).gameObject.GetComponent()) && !Object.op_Implicit((Object)(object)m_ScreenFXObject)) { RoomHandler absoluteParentRoom = ((DungeonPlaceableBehaviour)((Component)this).gameObject.GetComponent()).GetAbsoluteParentRoom(); m_ScreenFXObject = Object.Instantiate(ExpandAssets.LoadAsset("EXWestFloorBossIntroScreenFX"), Vector2.op_Implicit(absoluteParentRoom.area.UnitCenter), Quaternion.identity); m_ScreenFXObject.transform.SetParent(((Component)GameManager.Instance.Dungeon).gameObject.transform); } if (Object.op_Implicit((Object)(object)thisWesternBro) && otherWesternBros != null) { foreach (AIAnimator otherWesternBro in otherWesternBros) { animators.Add(((BraveBehaviour)otherWesternBro).spriteAnimator); } ((Behaviour)((BraveBehaviour)thisWesternBro).aiAnimator).enabled = false; ((BraveBehaviour)thisWesternBro).spriteAnimator.AnimationEventTriggered = (Action)Delegate.Combine(((BraveBehaviour)this).spriteAnimator.AnimationEventTriggered, new Action(AnimationEventTriggered)); ((BraveBehaviour)thisWesternBro).spriteAnimator.Play("idle"); ((BraveBehaviour)thisWesternBro).aiShooter.AimAtPoint(((GameActor)((BraveBehaviour)thisWesternBro).aiActor).CenterPosition + negativeGunOffset); thisWesternBro.FacingDirection = facingDirection; foreach (AIAnimator otherWesternBro2 in otherWesternBros) { ((BraveBehaviour)otherWesternBro2).spriteAnimator.Play("idle"); ((BraveBehaviour)otherWesternBro2).aiShooter.AimAtPoint(((GameActor)((BraveBehaviour)otherWesternBro2).aiActor).CenterPosition + gunOffset); otherWesternBro2.FacingDirection = facingDirection; ((Behaviour)((BraveBehaviour)otherWesternBro2).aiAnimator).enabled = false; ((BraveBehaviour)otherWesternBro2).spriteAnimator.AnimationEventTriggered = (Action)Delegate.Combine(((BraveBehaviour)this).spriteAnimator.AnimationEventTriggered, new Action(AnimationEventTriggered)); } } ((MonoBehaviour)this).StartCoroutine(FuckOutlines()); } private IEnumerator FuckOutlines() { yield return null; SpriteOutlineManager.ToggleOutlineRenderers(((BraveBehaviour)thisWesternBro).sprite, false); foreach (AIAnimator otherWesternBro in otherWesternBros) { SpriteOutlineManager.ToggleOutlineRenderers(((BraveBehaviour)otherWesternBro).sprite, false); } } public override void StartIntro(List animators) { ((MonoBehaviour)this).StartCoroutine(DoIntro()); } public override void OnBossCard() { ((BraveBehaviour)thisWesternBro).aiShooter.ToggleGunAndHandRenderers(true, rendererReason); foreach (AIAnimator otherWesternBro in otherWesternBros) { ((BraveBehaviour)otherWesternBro).aiShooter.ToggleGunAndHandRenderers(true, rendererReason); } } private IEnumerator DoIntro() { ((BraveBehaviour)thisWesternBro).spriteAnimator.Play("intro"); ((BraveBehaviour)thisWesternBro).aiShooter.AimAtPoint(((GameActor)((BraveBehaviour)thisWesternBro).aiActor).CenterPosition + negativeGunOffset); thisWesternBro.FacingDirection = facingDirection; foreach (AIAnimator otherWesternBro in otherWesternBros) { ((BraveBehaviour)otherWesternBro).spriteAnimator.Play("intro"); ((BraveBehaviour)otherWesternBro).aiShooter.AimAtPoint(((GameActor)((BraveBehaviour)otherWesternBro).aiActor).CenterPosition + gunOffset); otherWesternBro.FacingDirection = facingDirection; } ((BraveBehaviour)thisWesternBro).aiShooter.ToggleGunAndHandRenderers(false, rendererReason); foreach (AIAnimator otherWesternBro2 in otherWesternBros) { ((BraveBehaviour)otherWesternBro2).aiShooter.ToggleGunAndHandRenderers(false, rendererReason); } while (((BraveBehaviour)thisWesternBro).spriteAnimator.IsPlaying("intro")) { yield return null; } foreach (AIAnimator otherWesternBro3 in otherWesternBros) { ((BraveBehaviour)otherWesternBro3).spriteAnimator.Play("intro2"); ((BraveBehaviour)otherWesternBro3).aiShooter.AimAtPoint(((GameActor)((BraveBehaviour)otherWesternBro3).aiActor).CenterPosition + gunOffset); otherWesternBro3.FacingDirection = facingDirection; } ((BraveBehaviour)thisWesternBro).spriteAnimator.Play("intro2"); ((BraveBehaviour)thisWesternBro).aiShooter.AimAtPoint(((GameActor)((BraveBehaviour)thisWesternBro).aiActor).CenterPosition + negativeGunOffset); thisWesternBro.FacingDirection = facingDirection; float elapsed = 0f; for (float duration = 1f; elapsed < duration; elapsed += GameManager.INVARIANT_DELTA_TIME) { yield return null; } finished = true; } public override void EndIntro() { //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) finished = true; ((MonoBehaviour)this).StopAllCoroutines(); ((Behaviour)((BraveBehaviour)thisWesternBro).aiAnimator).enabled = true; SpriteOutlineManager.ToggleOutlineRenderers(((BraveBehaviour)thisWesternBro).sprite, true); thisWesternBro.EndAnimation(); ((BraveBehaviour)thisWesternBro).aiShooter.ToggleGunAndHandRenderers(true, rendererReason); ((BraveBehaviour)thisWesternBro).specRigidbody.CollideWithOthers = true; ((GameActor)((BraveBehaviour)thisWesternBro).aiActor).IsGone = false; ((BraveBehaviour)thisWesternBro).aiActor.State = (ActorState)2; ((BraveBehaviour)thisWesternBro).aiShooter.AimAtPoint(((GameActor)((BraveBehaviour)thisWesternBro).aiActor).CenterPosition + negativeGunOffset); thisWesternBro.FacingDirection = facingDirection; foreach (AIAnimator otherWesternBro in otherWesternBros) { ((Behaviour)((BraveBehaviour)otherWesternBro).aiAnimator).enabled = true; SpriteOutlineManager.ToggleOutlineRenderers(((BraveBehaviour)otherWesternBro).sprite, true); otherWesternBro.EndAnimation(); ((BraveBehaviour)otherWesternBro).aiShooter.ToggleGunAndHandRenderers(true, rendererReason); ((BraveBehaviour)otherWesternBro).specRigidbody.CollideWithOthers = true; ((GameActor)((BraveBehaviour)otherWesternBro).aiActor).IsGone = false; ((BraveBehaviour)otherWesternBro).aiActor.State = (ActorState)2; ((BraveBehaviour)otherWesternBro).aiShooter.AimAtPoint(((GameActor)((BraveBehaviour)otherWesternBro).aiActor).CenterPosition + gunOffset); otherWesternBro.FacingDirection = facingDirection; } if (Object.op_Implicit((Object)(object)m_ScreenFXObject)) { Object.Destroy((Object)(object)m_ScreenFXObject); } } protected override void OnDestroy() { ((SpecificIntroDoer)this).OnDestroy(); } } public class ExpandWestPuzzleRoomController : BraveBehaviour, IPlaceConfigurable { public enum PuzzleType { None, BuildFakeWall, HideKeyOnRandomEnemy, HideKeyOnTable, PlaceChestPuzzle, PlaceWinchesterSign, PlaceHubSign } public PuzzleType SelectedType; public List ConfettiNames; private RoomHandler m_ParentRoom; public ExpandWestPuzzleRoomController() { SelectedType = PuzzleType.None; } private void Start() { switch (SelectedType) { case PuzzleType.BuildFakeWall: HandleBuildFakeWall(); break; case PuzzleType.HideKeyOnRandomEnemy: HandleHideKeyOnEnemy(); break; case PuzzleType.HideKeyOnTable: HandleHideKeyOnTable(); break; case PuzzleType.PlaceChestPuzzle: HandleChestRoomSetup(); break; case PuzzleType.PlaceWinchesterSign: HandleWinchesterRoomSetup(); break; case PuzzleType.PlaceHubSign: HandlePlaceHubSign(); break; case PuzzleType.None: Object.Destroy((Object)(object)((Component)this).gameObject); return; } Object.Destroy((Object)(object)((Component)this).gameObject); } private void HandleHideKeyOnEnemy() { List list = new List(); if (m_ParentRoom.HasActiveEnemies((ActiveEnemyType)0)) { list = m_ParentRoom.GetActiveEnemies((ActiveEnemyType)0); } if (list.Count > 0) { AIActor val = BraveUtility.RandomElement(list); ExpandShaders.Instance.ApplyGlitchShader(((Component)val).GetComponentInChildren()); ((Component)val).gameObject.AddComponent(); val.CanDropItems = true; val.AdditionalSimpleItemDrops = new List { PickupObjectDatabase.GetById(727) }; } } private void HandleHideKeyOnTable() { //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) IntVector2 val = default(IntVector2); ((IntVector2)(ref val))..ctor(9, 10); IntVector2 val2 = default(IntVector2); ((IntVector2)(ref val2))..ctor(9, 8); GameObject val3 = ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true).InstantiateObject(m_ParentRoom, val, false, false); GameObject val4 = ExpandUtility.GenerateDungeonPlacable(ExpandObjectDatabase.TableVertical, spawnsEnemy: false, useExternalPrefab: true).InstantiateObject(m_ParentRoom, val2, false, false); val3.transform.SetParent(m_ParentRoom.hierarchyParent, true); val4.transform.SetParent(m_ParentRoom.hierarchyParent, true); val3.AddComponent(); val4.AddComponent(); float glitchInterval = Random.Range(0.02f, 0.06f); float dispProbability = Random.Range(0.1f, 0.16f); float dispIntensity = Random.Range(0.1f, 0.2f); float colorProbability = Random.Range(0.05f, 0.2f); float colorIntensity = Random.Range(0.1f, 0.22f); if (BraveUtility.RandomBool()) { ExpandKickableObject component = val3.GetComponent(); component.SpawnedObject = ((Component)PickupObjectDatabase.GetById(727)).gameObject; component.willDefinitelyExplode = true; component.spawnObjectOnSelfDestruct = true; ExpandShaders.Instance.ApplyGlitchShader(((Component)component).GetComponentInChildren(), usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); } else { ExpandKickableObject component2 = val4.GetComponent(); component2.SpawnedObject = ((Component)PickupObjectDatabase.GetById(727)).gameObject; component2.willDefinitelyExplode = true; component2.spawnObjectOnSelfDestruct = true; ExpandShaders.Instance.ApplyGlitchShader(((Component)component2).GetComponentInChildren(), usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); } m_ParentRoom.RegisterInteractable((IPlayerInteractable)(object)val3.GetComponentInChildren()); m_ParentRoom.RegisterInteractable((IPlayerInteractable)(object)val4.GetComponentInChildren()); m_ParentRoom.RegisterInteractable((IPlayerInteractable)(object)val3.GetComponent()); m_ParentRoom.RegisterInteractable((IPlayerInteractable)(object)val4.GetComponent()); } private void HandleBuildFakeWall() { //IL_000a: 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_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0055: 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_0070: 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_0084: Unknown result type (might be due to invalid IL or missing references) Vector3 val = new Vector3(14f, 21f) + ((IntVector2)(ref m_ParentRoom.area.basePosition)).ToVector3(); GameObject obj = Object.Instantiate(ExpandPrefabs.RatKeyRewardPedestal, val, Quaternion.identity); obj.transform.SetParent(m_ParentRoom.hierarchyParent, true); new IntVector2(14, 20); Transform transform = obj.transform; transform.localScale -= new Vector3(0.7f, 0.7f); ExpandUtility.GenerateFakeWall((Direction)4, new IntVector2(14, 20), m_ParentRoom, "Fake Wall", markAsSecret: true); } private void HandleRatBossSetup() { //IL_0019: Unknown result type (might be due to invalid IL or missing references) AIActor component = DungeonPlaceableUtility.InstantiateDungeonPlaceable(((Component)EnemyDatabase.GetOrLoadByGuid("6868795625bd46f3ae3e4377adce288b")).gameObject, m_ParentRoom, new IntVector2(17, 28), true, (AwakenAnimationType)1, true).GetComponent(); if ((Object)(object)component != (Object)null) { int num = ((!(Random.value >= 0.2f)) ? 3 : (BraveUtility.RandomBool() ? 1 : 2)); GenericLootTable val = ((!BraveUtility.RandomBool()) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable); PickupObject itemOfTypeAndQuality = LootEngine.GetItemOfTypeAndQuality((ItemQuality)num, val, false); PickupObject itemOfTypeAndQuality2 = LootEngine.GetItemOfTypeAndQuality((ItemQuality)num, val, false); Object.Destroy((Object)(object)((Component)component).gameObject.GetComponent()); Object.Destroy((Object)(object)((Component)component).gameObject.GetComponent()); component.State = (ActorState)1; ((GameActor)component).StealthDeath = true; ((Component)((BraveBehaviour)component).healthHaver).gameObject.AddComponent(); ExpandSpawnGlitchObjectOnDeath component2 = ((Component)((BraveBehaviour)component).healthHaver).gameObject.GetComponent(); component2.spawnRatCorpse = true; component2.ratCorpseSpawnsKey = true; component2.parentEnemyWasRat = true; if (Object.op_Implicit((Object)(object)itemOfTypeAndQuality) && Object.op_Implicit((Object)(object)itemOfTypeAndQuality2)) { component.AdditionalSafeItemDrops = new List { itemOfTypeAndQuality, itemOfTypeAndQuality2 }; } ((Behaviour)((BraveBehaviour)component).healthHaver).enabled = true; ((BraveBehaviour)component).healthHaver.forcePreventVictoryMusic = true; component.ConfigureOnPlacement(m_ParentRoom); ((BraveBehaviour)component).specRigidbody.CollideWithOthers = true; } } private void HandleChestRoomSetup() { //IL_0048: 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_006b: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0091: 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) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_0164: 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_0185: 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_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_02af: Unknown result type (might be due to invalid IL or missing references) //IL_02c4: Unknown result type (might be due to invalid IL or missing references) //IL_02c9: Unknown result type (might be due to invalid IL or missing references) //IL_02ce: Unknown result type (might be due to invalid IL or missing references) //IL_02d5: Unknown result type (might be due to invalid IL or missing references) //IL_02d7: 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_0368: Unknown result type (might be due to invalid IL or missing references) //IL_036c: Unknown result type (might be due to invalid IL or missing references) //IL_0371: Unknown result type (might be due to invalid IL or missing references) //IL_0376: Unknown result type (might be due to invalid IL or missing references) //IL_0378: Unknown result type (might be due to invalid IL or missing references) //IL_037c: Unknown result type (might be due to invalid IL or missing references) //IL_0381: Unknown result type (might be due to invalid IL or missing references) //IL_0386: Unknown result type (might be due to invalid IL or missing references) //IL_0388: Unknown result type (might be due to invalid IL or missing references) //IL_038c: 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_0396: Unknown result type (might be due to invalid IL or missing references) //IL_0398: Unknown result type (might be due to invalid IL or missing references) //IL_039c: Unknown result type (might be due to invalid IL or missing references) //IL_03a1: Unknown result type (might be due to invalid IL or missing references) //IL_03a6: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: Unknown result type (might be due to invalid IL or missing references) //IL_03ac: 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_03b6: Unknown result type (might be due to invalid IL or missing references) //IL_03b8: Unknown result type (might be due to invalid IL or missing references) //IL_03bc: Unknown result type (might be due to invalid IL or missing references) //IL_03c1: Unknown result type (might be due to invalid IL or missing references) //IL_03c6: Unknown result type (might be due to invalid IL or missing references) //IL_03f5: Unknown result type (might be due to invalid IL or missing references) //IL_042d: Unknown result type (might be due to invalid IL or missing references) //IL_0465: Unknown result type (might be due to invalid IL or missing references) //IL_049d: Unknown result type (might be due to invalid IL or missing references) //IL_04d5: Unknown result type (might be due to invalid IL or missing references) //IL_050d: Unknown result type (might be due to invalid IL or missing references) //IL_051f: Unknown result type (might be due to invalid IL or missing references) //IL_0531: Unknown result type (might be due to invalid IL or missing references) //IL_0543: Unknown result type (might be due to invalid IL or missing references) //IL_0555: Unknown result type (might be due to invalid IL or missing references) //IL_0567: Unknown result type (might be due to invalid IL or missing references) //IL_0579: Unknown result type (might be due to invalid IL or missing references) //IL_06e5: Unknown result type (might be due to invalid IL or missing references) //IL_06fd: Unknown result type (might be due to invalid IL or missing references) //IL_071d: Unknown result type (might be due to invalid IL or missing references) //IL_0735: Unknown result type (might be due to invalid IL or missing references) //IL_074d: Unknown result type (might be due to invalid IL or missing references) //IL_0765: Unknown result type (might be due to invalid IL or missing references) //IL_09c8: Unknown result type (might be due to invalid IL or missing references) //IL_09dd: Unknown result type (might be due to invalid IL or missing references) //IL_09e2: Unknown result type (might be due to invalid IL or missing references) //IL_09e7: Unknown result type (might be due to invalid IL or missing references) //IL_09ee: Unknown result type (might be due to invalid IL or missing references) //IL_09f0: Unknown result type (might be due to invalid IL or missing references) try { DungeonPlaceable val = ExpandAssets.LoadOfficialAsset("Treasure_Dais_Stone_Carpet", ExpandAssets.AssetSource.SharedAuto2); GameObject objectPrefab = ExpandAssets.LoadOfficialAsset("Chest_Rainbow", ExpandAssets.AssetSource.SharedAuto1); IntVector2 val2 = default(IntVector2); ((IntVector2)(ref val2))..ctor(8, 29); IntVector2 val3 = default(IntVector2); ((IntVector2)(ref val3))..ctor(8, 56); IntVector2 val4 = default(IntVector2); ((IntVector2)(ref val4))..ctor(9, 31); IntVector2 val5 = default(IntVector2); ((IntVector2)(ref val5))..ctor(8, 58); GameObject val6 = val.InstantiateObject(m_ParentRoom, val2, false, false); GameObject val7 = val.InstantiateObject(m_ParentRoom, val3, false, false); Transform transform = val6.transform; transform.position -= new Vector3(0.55f, 0f); Transform transform2 = val7.transform; transform2.position -= new Vector3(0.55f, 0f); val6.transform.SetParent(m_ParentRoom.hierarchyParent, true); val7.transform.SetParent(m_ParentRoom.hierarchyParent, true); GameObject val8 = ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EX_Chest_West, spawnsEnemy: false, useExternalPrefab: true).InstantiateObject(m_ParentRoom, val4, false, false); GameObject obj = ExpandUtility.GenerateDungeonPlacable(objectPrefab, spawnsEnemy: false, useExternalPrefab: true).InstantiateObject(m_ParentRoom, val5, false, false); Transform transform3 = obj.transform; transform3.position += new Vector3(0.5f, 0f); Transform transform4 = val6.transform; transform4.position += new Vector3(0.5f, 0f); Transform transform5 = val7.transform; transform5.position += new Vector3(0.5f, 0f); val8.transform.SetParent(m_ParentRoom.hierarchyParent, true); obj.transform.SetParent(m_ParentRoom.hierarchyParent, true); GenericLootTable itemsLootTable = GameManager.Instance.RewardManager.ItemsLootTable; Chest component = val8.GetComponent(); Chest component2 = obj.GetComponent(); component.lootTable.lootTable = itemsLootTable; if (component.lootTable.canDropMultipleItems && component.lootTable.overrideItemLootTables != null && component.lootTable.overrideItemLootTables.Count > 0) { component.lootTable.overrideItemLootTables[0] = itemsLootTable; } component.overrideMimicChance = 0f; component.ForceUnlock(); component.PreventFuse = true; component2.ForceUnlock(); component2.PreventFuse = true; m_ParentRoom.RegisterInteractable((IPlayerInteractable)(object)component); m_ParentRoom.RegisterInteractable((IPlayerInteractable)(object)component2); Vector3 val9 = new Vector3(9f, 52.25f) + ((IntVector2)(ref m_ParentRoom.area.basePosition)).ToVector3(); GameObject obj2 = Object.Instantiate(ExpandObjectDatabase.LockedJailDoor, val9, Quaternion.identity); obj2.transform.SetParent(m_ParentRoom.hierarchyParent, true); InteractableLock componentInChildren = obj2.GetComponentInChildren(); componentInChildren.lockMode = (InteractableLockMode)1; componentInChildren.JailCellKeyId = 0; tk2dBaseSprite componentInChildren2 = ((Component)componentInChildren).GetComponentInChildren(); if ((Object)(object)componentInChildren2 != (Object)null) { ExpandShaders.Instance.ApplyRainbowShader(componentInChildren2); } IntVector2 val10 = default(IntVector2); ((IntVector2)(ref val10))..ctor(5, 20); IntVector2 val11 = default(IntVector2); ((IntVector2)(ref val11))..ctor(13, 20); IntVector2 val12 = default(IntVector2); ((IntVector2)(ref val12))..ctor(5, 41); IntVector2 val13 = default(IntVector2); ((IntVector2)(ref val13))..ctor(13, 41); IntVector2 val14 = default(IntVector2); ((IntVector2)(ref val14))..ctor(5, 51); IntVector2 val15 = default(IntVector2); ((IntVector2)(ref val15))..ctor(13, 51); IntVector2 val16 = val10 - new IntVector2(1, 2); IntVector2 val17 = val11 - new IntVector2(1, 2); IntVector2 val18 = val12 - new IntVector2(1, 2); IntVector2 val19 = val13 - new IntVector2(1, 2); IntVector2 val20 = val14 - new IntVector2(1, 2); IntVector2 val21 = val15 - new IntVector2(1, 2); GameObject val22 = ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EX_Chest_West, spawnsEnemy: false, useExternalPrefab: true).InstantiateObject(m_ParentRoom, val10, false, true); GameObject val23 = ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EX_Chest_West, spawnsEnemy: false, useExternalPrefab: true).InstantiateObject(m_ParentRoom, val11, false, true); GameObject val24 = ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EX_Chest_West, spawnsEnemy: false, useExternalPrefab: true).InstantiateObject(m_ParentRoom, val12, false, true); GameObject val25 = ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EX_Chest_West, spawnsEnemy: false, useExternalPrefab: true).InstantiateObject(m_ParentRoom, val13, false, true); GameObject val26 = ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EX_Chest_West, spawnsEnemy: false, useExternalPrefab: true).InstantiateObject(m_ParentRoom, val14, false, true); GameObject val27 = ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EX_Chest_West, spawnsEnemy: false, useExternalPrefab: true).InstantiateObject(m_ParentRoom, val15, false, true); GameObject val28 = val.InstantiateObject(m_ParentRoom, val16, false, false); GameObject val29 = val.InstantiateObject(m_ParentRoom, val17, false, false); GameObject val30 = val.InstantiateObject(m_ParentRoom, val18, false, false); GameObject val31 = val.InstantiateObject(m_ParentRoom, val19, false, false); GameObject val32 = val.InstantiateObject(m_ParentRoom, val20, false, false); GameObject val33 = val.InstantiateObject(m_ParentRoom, val21, false, false); val22.transform.SetParent(m_ParentRoom.hierarchyParent, true); val23.transform.SetParent(m_ParentRoom.hierarchyParent, true); val24.transform.SetParent(m_ParentRoom.hierarchyParent, true); val25.transform.SetParent(m_ParentRoom.hierarchyParent, true); val26.transform.SetParent(m_ParentRoom.hierarchyParent, true); val27.transform.SetParent(m_ParentRoom.hierarchyParent, true); val28.transform.SetParent(m_ParentRoom.hierarchyParent, true); val29.transform.SetParent(m_ParentRoom.hierarchyParent, true); val30.transform.SetParent(m_ParentRoom.hierarchyParent, true); val31.transform.SetParent(m_ParentRoom.hierarchyParent, true); val32.transform.SetParent(m_ParentRoom.hierarchyParent, true); val33.transform.SetParent(m_ParentRoom.hierarchyParent, true); Chest component3 = val22.GetComponent(); Chest component4 = val23.GetComponent(); Chest component5 = val24.GetComponent(); Chest component6 = val25.GetComponent(); Chest component7 = val26.GetComponent(); Chest component8 = val27.GetComponent(); component3.PreventFuse = true; component3.ChestIdentifier = (SpecialChestIdentifier)1; component3.IsLocked = true; component4.PreventFuse = true; component4.ChestIdentifier = (SpecialChestIdentifier)1; component4.IsLocked = true; component5.PreventFuse = true; component5.IsLocked = true; component5.ChestIdentifier = (SpecialChestIdentifier)1; component6.PreventFuse = true; component6.IsLocked = true; component6.ChestIdentifier = (SpecialChestIdentifier)1; component7.PreventFuse = true; component7.IsLocked = true; component7.ChestIdentifier = (SpecialChestIdentifier)1; component8.PreventFuse = true; component8.IsLocked = true; component8.ChestIdentifier = (SpecialChestIdentifier)1; if (Random.value < 0.5f) { component3.forceContentIds = new List { 68 }; component4.forceContentIds = new List { 727, 727 }; val23.AddComponent(); } else { component3.forceContentIds = new List { 727, 727 }; component4.forceContentIds = new List { 68 }; val22.AddComponent(); } if (Random.value < 0.5f) { component5.forceContentIds = new List { 70, 70, 70, 70 }; component6.forceContentIds = new List { 727, 727 }; val25.AddComponent(); } else { component5.forceContentIds = new List { 727, 727 }; component6.forceContentIds = new List { 70, 70, 70, 70 }; val24.AddComponent(); } if (Random.value < 0.5f) { component7.forceContentIds = new List { 74 }; component8.forceContentIds = new List { 316 }; val27.AddComponent(); } else { component7.forceContentIds = new List { 316 }; component8.forceContentIds = new List { 74 }; val26.AddComponent(); } component3.ConfigureOnPlacement(m_ParentRoom); component4.ConfigureOnPlacement(m_ParentRoom); component5.ConfigureOnPlacement(m_ParentRoom); component6.ConfigureOnPlacement(m_ParentRoom); component7.ConfigureOnPlacement(m_ParentRoom); component8.ConfigureOnPlacement(m_ParentRoom); m_ParentRoom.RegisterInteractable((IPlayerInteractable)(object)component3); m_ParentRoom.RegisterInteractable((IPlayerInteractable)(object)component4); m_ParentRoom.RegisterInteractable((IPlayerInteractable)(object)component5); m_ParentRoom.RegisterInteractable((IPlayerInteractable)(object)component6); m_ParentRoom.RegisterInteractable((IPlayerInteractable)(object)component7); m_ParentRoom.RegisterInteractable((IPlayerInteractable)(object)component8); Vector3 val34 = new Vector3(6f, 8f) + ((IntVector2)(ref m_ParentRoom.area.basePosition)).ToVector3(); GameObject val35 = Object.Instantiate(ExpandPrefabs.Jungle_BlobLostSign, val34, Quaternion.identity); ((Object)val35).name = "Lunk's Minigame Sign"; val35.GetComponent().stringKey = "A minigame Lunk created based on a game he used to play in a land far away.\nGuess the right chest to continue forward.\n If you can guess the correct chest 3 times, the ultimate prize shall be gained!"; Object.Destroy((Object)(object)val35.GetComponent()); Object.Destroy((Object)(object)val35.GetComponent()); m_ParentRoom.RegisterInteractable((IPlayerInteractable)(object)val35.GetComponent()); } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[ExpandTheGungeon] Warning: Exception caught in ExpandWestPuzzleRoomController.HandleChestRoomSetup!", false); Debug.Log((object)"[ExpandTheGungeon] Warning: Exception caught in ExpandWestPuzzleRoomController.HandleChestRoomSetup!"); Debug.LogException(ex); } } } public void HandleWinchesterRoomSetup() { //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_05d5: Unknown result type (might be due to invalid IL or missing references) //IL_05db: Invalid comparison between Unknown and I4 //IL_010c: 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_0126: Unknown result type (might be due to invalid IL or missing references) //IL_0149: 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_0191: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: 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_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Unknown result type (might be due to invalid IL or missing references) //IL_01b1: Unknown result type (might be due to invalid IL or missing references) //IL_055d: Unknown result type (might be due to invalid IL or missing references) //IL_055f: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01e9: Unknown result type (might be due to invalid IL or missing references) //IL_01ee: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: 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_01f9: 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_0231: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Unknown result type (might be due to invalid IL or missing references) //IL_023b: Unknown result type (might be due to invalid IL or missing references) //IL_023c: Unknown result type (might be due to invalid IL or missing references) //IL_0241: 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_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_0269: Unknown result type (might be due to invalid IL or missing references) //IL_0279: Unknown result type (might be due to invalid IL or missing references) //IL_027e: Unknown result type (might be due to invalid IL or missing references) //IL_0283: Unknown result type (might be due to invalid IL or missing references) //IL_0284: Unknown result type (might be due to invalid IL or missing references) //IL_0289: Unknown result type (might be due to invalid IL or missing references) //IL_02b1: 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_02cb: Unknown result type (might be due to invalid IL or missing references) //IL_02cc: Unknown result type (might be due to invalid IL or missing references) //IL_02d1: Unknown result type (might be due to invalid IL or missing references) //IL_02f9: Unknown result type (might be due to invalid IL or missing references) //IL_0309: Unknown result type (might be due to invalid IL or missing references) //IL_030e: Unknown result type (might be due to invalid IL or missing references) //IL_0313: Unknown result type (might be due to invalid IL or missing references) //IL_0314: Unknown result type (might be due to invalid IL or missing references) //IL_0319: Unknown result type (might be due to invalid IL or missing references) //IL_0341: Unknown result type (might be due to invalid IL or missing references) //IL_0351: Unknown result type (might be due to invalid IL or missing references) //IL_0356: Unknown result type (might be due to invalid IL or missing references) //IL_035b: Unknown result type (might be due to invalid IL or missing references) //IL_035c: Unknown result type (might be due to invalid IL or missing references) //IL_0361: Unknown result type (might be due to invalid IL or missing references) //IL_0389: Unknown result type (might be due to invalid IL or missing references) //IL_0399: Unknown result type (might be due to invalid IL or missing references) //IL_039e: Unknown result type (might be due to invalid IL or missing references) //IL_03a3: Unknown result type (might be due to invalid IL or missing references) //IL_03a4: Unknown result type (might be due to invalid IL or missing references) //IL_03a9: Unknown result type (might be due to invalid IL or missing references) //IL_03d1: Unknown result type (might be due to invalid IL or missing references) //IL_03e1: Unknown result type (might be due to invalid IL or missing references) //IL_03e6: Unknown result type (might be due to invalid IL or missing references) //IL_03eb: Unknown result type (might be due to invalid IL or missing references) //IL_03ec: Unknown result type (might be due to invalid IL or missing references) //IL_03f1: Unknown result type (might be due to invalid IL or missing references) //IL_0419: Unknown result type (might be due to invalid IL or missing references) //IL_0429: Unknown result type (might be due to invalid IL or missing references) //IL_042e: Unknown result type (might be due to invalid IL or missing references) //IL_0433: Unknown result type (might be due to invalid IL or missing references) //IL_0434: Unknown result type (might be due to invalid IL or missing references) //IL_0439: Unknown result type (might be due to invalid IL or missing references) //IL_0461: Unknown result type (might be due to invalid IL or missing references) //IL_0471: Unknown result type (might be due to invalid IL or missing references) //IL_0476: Unknown result type (might be due to invalid IL or missing references) //IL_047b: Unknown result type (might be due to invalid IL or missing references) //IL_047c: Unknown result type (might be due to invalid IL or missing references) //IL_0481: Unknown result type (might be due to invalid IL or missing references) //IL_04a9: Unknown result type (might be due to invalid IL or missing references) //IL_04b9: Unknown result type (might be due to invalid IL or missing references) //IL_04be: Unknown result type (might be due to invalid IL or missing references) //IL_04c3: Unknown result type (might be due to invalid IL or missing references) //IL_04c4: Unknown result type (might be due to invalid IL or missing references) //IL_04c9: Unknown result type (might be due to invalid IL or missing references) //IL_04f1: Unknown result type (might be due to invalid IL or missing references) //IL_0501: Unknown result type (might be due to invalid IL or missing references) //IL_0506: Unknown result type (might be due to invalid IL or missing references) //IL_050b: Unknown result type (might be due to invalid IL or missing references) //IL_050c: Unknown result type (might be due to invalid IL or missing references) //IL_0511: Unknown result type (might be due to invalid IL or missing references) //IL_0536: Unknown result type (might be due to invalid IL or missing references) //IL_0546: Unknown result type (might be due to invalid IL or missing references) //IL_054b: Unknown result type (might be due to invalid IL or missing references) //IL_0550: Unknown result type (might be due to invalid IL or missing references) //IL_0551: Unknown result type (might be due to invalid IL or missing references) //IL_0556: Unknown result type (might be due to invalid IL or missing references) RoomHandler val = null; foreach (RoomHandler room in GameManager.Instance.Dungeon.data.rooms) { if (!string.IsNullOrEmpty(room.GetRoomName()) && room.GetRoomName().ToLower().StartsWith("winchesterroom")) { val = room; break; } } if (val != null) { val.ForcePitfallForFliers = true; val.TargetPitfallRoom = val; new IntVector2(3, 3); Vector3 val2 = default(Vector3); ((Vector3)(ref val2))..ctor(1f, 0f, 0f); TalkDoerLite[] array = Object.FindObjectsOfType(); if (array != null && array.Length != 0) { TalkDoerLite[] array2 = array; foreach (TalkDoerLite val3 in array2) { if (((DungeonPlaceableBehaviour)val3).GetAbsoluteParentRoom() == val) { _ = Vector2Extensions.ToIntVector2(TransformExtensions.PositionVector2(((BraveBehaviour)val3).transform), (VectorConversions)2) - val.area.basePosition - new IntVector2(1, 0); break; } } } Vector3 val4 = new Vector3(3f, 3f) + ((IntVector2)(ref val.area.basePosition)).ToVector3(); if (val.GetRoomName().ToLower().StartsWith("winchesterroom_001")) { val4 = new Vector3(14f, 5f) + ((IntVector2)(ref val.area.basePosition)).ToVector3() - val2; } else if (val.GetRoomName().ToLower().StartsWith("winchesterroom_002")) { val4 = new Vector3(14f, 5f) + ((IntVector2)(ref val.area.basePosition)).ToVector3() - val2; } else if (val.GetRoomName().ToLower().StartsWith("winchesterroom_003")) { val4 = new Vector3(12f, 5f) + ((IntVector2)(ref val.area.basePosition)).ToVector3() - val2; } else if (val.GetRoomName().ToLower().StartsWith("winchesterroom_004")) { val4 = new Vector3(10f, 4f) + ((IntVector2)(ref val.area.basePosition)).ToVector3() - val2; } else if (val.GetRoomName().ToLower().StartsWith("winchesterroom_005")) { val4 = new Vector3(10f, 4f) + ((IntVector2)(ref val.area.basePosition)).ToVector3() - val2; } else if (val.GetRoomName().ToLower().StartsWith("winchesterroom_ag&d_001")) { val4 = new Vector3(4f, 15f) + ((IntVector2)(ref val.area.basePosition)).ToVector3() - val2; } else if (val.GetRoomName().ToLower().StartsWith("winchesterroom_ag&d_002")) { val4 = new Vector3(23f, 5f) + ((IntVector2)(ref val.area.basePosition)).ToVector3() - val2; } else if (val.GetRoomName().ToLower().StartsWith("winchesterroom_ag&d_003")) { val4 = new Vector3(10f, 18f) + ((IntVector2)(ref val.area.basePosition)).ToVector3() - val2; } else if (val.GetRoomName().ToLower().StartsWith("winchesterroom_ag&d_004")) { val4 = new Vector3(12f, 5f) + ((IntVector2)(ref val.area.basePosition)).ToVector3() - val2; } else if (val.GetRoomName().ToLower().StartsWith("winchesterroom_ag&d_005")) { val4 = new Vector3(6f, 11f) + ((IntVector2)(ref val.area.basePosition)).ToVector3() - val2; } else if (val.GetRoomName().ToLower().StartsWith("winchesterroom_joe_001")) { val4 = new Vector3(6f, 2f) + ((IntVector2)(ref val.area.basePosition)).ToVector3() - val2; } else if (val.GetRoomName().ToLower().StartsWith("winchesterroom_joe_002")) { val4 = new Vector3(6f, 2f) + ((IntVector2)(ref val.area.basePosition)).ToVector3() - val2; } else if (val.GetRoomName().ToLower().StartsWith("winchesterroom_joe_003")) { val4 = new Vector3(5f, 11f) + ((IntVector2)(ref val.area.basePosition)).ToVector3() - val2; } else if (val.GetRoomName().ToLower().StartsWith("winchesterroom_joe_004")) { val4 = new Vector3(7f, 2f) + ((IntVector2)(ref val.area.basePosition)).ToVector3() - val2; } else if (val.GetRoomName().ToLower().StartsWith("winchesterroom_joe_005")) { val4 = new Vector3(20f, 11f) + ((IntVector2)(ref val.area.basePosition)).ToVector3() - val2; } GameObject val5 = Object.Instantiate(ExpandPrefabs.Jungle_BlobLostSign, val4, Quaternion.identity); ((Object)val5).name = "Winchester's Sign"; val5.GetComponent().stringKey = "Notice: Anti-Flight Pits have been installed.\n I know you've been using fancy wings or that jetpack to cheat at my game!\n I'd like to see you try that again! [Winchester]."; val.RegisterInteractable((IPlayerInteractable)(object)val5.GetComponent()); val5.transform.SetParent(val.hierarchyParent, true); } if (Object.op_Implicit((Object)(object)GameManager.Instance.PrimaryPlayer)) { ((MonoBehaviour)this).StartCoroutine(HandleKeyInventoryCheck(GameManager.Instance.PrimaryPlayer)); } if ((int)GameManager.Instance.CurrentGameType == 1 && Object.op_Implicit((Object)(object)GameManager.Instance.SecondaryPlayer)) { ((MonoBehaviour)this).StartCoroutine(HandleKeyInventoryCheck(GameManager.Instance.SecondaryPlayer)); } } private IEnumerator HandleKeyInventoryCheck(PlayerController player) { bool hadKeys = false; if (player.HasPickupID(316)) { hadKeys = true; while (player.HasPickupID(316)) { player.RemovePassiveItem(316); if (!player.HasPickupID(316)) { break; } yield return null; } } if (player.carriedConsumables != null && player.carriedConsumables.ResourcefulRatKeys > 0) { hadKeys = true; player.carriedConsumables.ResourcefulRatKeys = 0; } yield return null; if (hadKeys) { GameUIRoot.Instance.UpdatePlayerConsumables(player.carriedConsumables); } } private void HandlePlaceHubSign() { //IL_001d: 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) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: 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) Vector3 val = new Vector3(3f, (float)(m_ParentRoom.area.dimensions.y - 2)) + ((IntVector2)(ref m_ParentRoom.area.basePosition)).ToVector3(); GameObject val2 = Object.Instantiate(ExpandPrefabs.Jungle_BlobLostSign, val, Quaternion.identity); ((Object)val2).name = "Lunk's Dungeon Sign"; val2.GetComponent().stringKey = "A mini dungeon strung together by Lunk based on previous Dungeons he had encountered.\nFind the keys to gain access to the final puzzle."; m_ParentRoom.RegisterInteractable((IPlayerInteractable)(object)val2.GetComponent()); val2.transform.SetParent(m_ParentRoom.hierarchyParent, true); } public void ConfigureOnPlacement(RoomHandler room) { if ((room == null) | string.IsNullOrEmpty(room.GetRoomName())) { SelectedType = PuzzleType.None; return; } m_ParentRoom = room; if (m_ParentRoom.GetRoomName().ToLower().StartsWith(((Object)ExpandRoomPrefabs.PuzzleRoom1).name.ToLower())) { SelectedType = PuzzleType.HideKeyOnRandomEnemy; } else if (m_ParentRoom.GetRoomName().ToLower().StartsWith(((Object)ExpandRoomPrefabs.PuzzleRoom2).name.ToLower())) { SelectedType = PuzzleType.HideKeyOnTable; } else if (m_ParentRoom.GetRoomName().ToLower().StartsWith(((Object)ExpandRoomPrefabs.PuzzleRoom3).name.ToLower())) { SelectedType = PuzzleType.BuildFakeWall; } else if (m_ParentRoom.GetRoomName().ToLower().StartsWith(((Object)ExpandRoomPrefabs.SecretRewardRoom).name.ToLower())) { SelectedType = PuzzleType.PlaceChestPuzzle; } else if (m_ParentRoom.IsActuallyWildWestEntrance()) { SelectedType = PuzzleType.PlaceWinchesterSign; } else if (m_ParentRoom.GetRoomName().ToLower().StartsWith(((Object)ExpandRoomPrefabs.Expand_West_SecretHub2).name.ToLower())) { SelectedType = PuzzleType.PlaceHubSign; } else { SelectedType = PuzzleType.None; } } protected override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); } } public class ExpandCasinoRoomController : BraveBehaviour { public ExpandCasinoGameController CasinoGame_Punchout; public ExpandCasinoGameController CasinoGame_GunBall; public GameObject Table; public GameObject Table2; [NonSerialized] private RoomHandler m_ParentRoom; private void Start() { //IL_000c: 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_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0240: Unknown result type (might be due to invalid IL or missing references) //IL_024b: Unknown result type (might be due to invalid IL or missing references) //IL_0250: Unknown result type (might be due to invalid IL or missing references) //IL_0255: Unknown result type (might be due to invalid IL or missing references) //IL_0279: Unknown result type (might be due to invalid IL or missing references) //IL_0284: Unknown result type (might be due to invalid IL or missing references) //IL_0289: Unknown result type (might be due to invalid IL or missing references) //IL_028e: Unknown result type (might be due to invalid IL or missing references) //IL_02b2: Unknown result type (might be due to invalid IL or missing references) //IL_02bd: Unknown result type (might be due to invalid IL or missing references) //IL_02c2: Unknown result type (might be due to invalid IL or missing references) //IL_02c7: Unknown result type (might be due to invalid IL or missing references) //IL_02eb: Unknown result type (might be due to invalid IL or missing references) //IL_02f6: Unknown result type (might be due to invalid IL or missing references) //IL_02fb: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Unknown result type (might be due to invalid IL or missing references) //IL_031f: Unknown result type (might be due to invalid IL or missing references) //IL_032a: Unknown result type (might be due to invalid IL or missing references) //IL_032f: Unknown result type (might be due to invalid IL or missing references) //IL_0334: Unknown result type (might be due to invalid IL or missing references) //IL_0335: Unknown result type (might be due to invalid IL or missing references) //IL_0340: Unknown result type (might be due to invalid IL or missing references) //IL_0345: Unknown result type (might be due to invalid IL or missing references) //IL_034a: Unknown result type (might be due to invalid IL or missing references) //IL_034b: Unknown result type (might be due to invalid IL or missing references) //IL_0356: Unknown result type (might be due to invalid IL or missing references) //IL_035b: Unknown result type (might be due to invalid IL or missing references) //IL_0360: Unknown result type (might be due to invalid IL or missing references) //IL_0366: Unknown result type (might be due to invalid IL or missing references) //IL_0367: Unknown result type (might be due to invalid IL or missing references) //IL_038b: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_03b0: 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_03da: Unknown result type (might be due to invalid IL or missing references) //IL_03e5: Unknown result type (might be due to invalid IL or missing references) //IL_03ea: Unknown result type (might be due to invalid IL or missing references) //IL_03ef: Unknown result type (might be due to invalid IL or missing references) //IL_03f1: Unknown result type (might be due to invalid IL or missing references) //IL_03fc: Unknown result type (might be due to invalid IL or missing references) //IL_0401: Unknown result type (might be due to invalid IL or missing references) //IL_0406: Unknown result type (might be due to invalid IL or missing references) //IL_0408: Unknown result type (might be due to invalid IL or missing references) //IL_0413: Unknown result type (might be due to invalid IL or missing references) //IL_0418: Unknown result type (might be due to invalid IL or missing references) //IL_041d: Unknown result type (might be due to invalid IL or missing references) //IL_0431: Unknown result type (might be due to invalid IL or missing references) //IL_0433: Unknown result type (might be due to invalid IL or missing references) //IL_0451: Unknown result type (might be due to invalid IL or missing references) //IL_0453: Unknown result type (might be due to invalid IL or missing references) //IL_0471: Unknown result type (might be due to invalid IL or missing references) //IL_0473: Unknown result type (might be due to invalid IL or missing references) //IL_04d2: Unknown result type (might be due to invalid IL or missing references) //IL_04dd: Unknown result type (might be due to invalid IL or missing references) //IL_04e2: Unknown result type (might be due to invalid IL or missing references) //IL_04e7: Unknown result type (might be due to invalid IL or missing references) //IL_0518: Unknown result type (might be due to invalid IL or missing references) //IL_0523: Unknown result type (might be due to invalid IL or missing references) //IL_0528: Unknown result type (might be due to invalid IL or missing references) //IL_052d: Unknown result type (might be due to invalid IL or missing references) //IL_054b: Unknown result type (might be due to invalid IL or missing references) //IL_0556: Unknown result type (might be due to invalid IL or missing references) //IL_055b: Unknown result type (might be due to invalid IL or missing references) //IL_0560: Unknown result type (might be due to invalid IL or missing references) //IL_057e: Unknown result type (might be due to invalid IL or missing references) //IL_0589: Unknown result type (might be due to invalid IL or missing references) //IL_058e: Unknown result type (might be due to invalid IL or missing references) //IL_0593: Unknown result type (might be due to invalid IL or missing references) //IL_05e5: Unknown result type (might be due to invalid IL or missing references) //IL_05ea: Unknown result type (might be due to invalid IL or missing references) //IL_05fa: Unknown result type (might be due to invalid IL or missing references) //IL_0610: Expected O, but got Unknown //IL_066d: Unknown result type (might be due to invalid IL or missing references) //IL_0673: Unknown result type (might be due to invalid IL or missing references) //IL_067e: Unknown result type (might be due to invalid IL or missing references) //IL_0683: Unknown result type (might be due to invalid IL or missing references) //IL_06a7: Unknown result type (might be due to invalid IL or missing references) //IL_06b2: Unknown result type (might be due to invalid IL or missing references) //IL_06b7: Unknown result type (might be due to invalid IL or missing references) //IL_06bc: Unknown result type (might be due to invalid IL or missing references) //IL_06fe: Unknown result type (might be due to invalid IL or missing references) //IL_0709: Unknown result type (might be due to invalid IL or missing references) //IL_070e: Unknown result type (might be due to invalid IL or missing references) //IL_0713: Unknown result type (might be due to invalid IL or missing references) //IL_0730: Unknown result type (might be due to invalid IL or missing references) //IL_073b: Unknown result type (might be due to invalid IL or missing references) //IL_0740: Unknown result type (might be due to invalid IL or missing references) //IL_0745: Unknown result type (might be due to invalid IL or missing references) //IL_0762: Unknown result type (might be due to invalid IL or missing references) //IL_076d: Unknown result type (might be due to invalid IL or missing references) //IL_0772: Unknown result type (might be due to invalid IL or missing references) //IL_0777: Unknown result type (might be due to invalid IL or missing references) //IL_0787: Unknown result type (might be due to invalid IL or missing references) //IL_0792: Unknown result type (might be due to invalid IL or missing references) //IL_0797: Unknown result type (might be due to invalid IL or missing references) //IL_079c: Unknown result type (might be due to invalid IL or missing references) //IL_07c0: Unknown result type (might be due to invalid IL or missing references) //IL_07cb: Unknown result type (might be due to invalid IL or missing references) //IL_07d0: Unknown result type (might be due to invalid IL or missing references) //IL_07d5: Unknown result type (might be due to invalid IL or missing references) //IL_07f9: Unknown result type (might be due to invalid IL or missing references) //IL_0804: Unknown result type (might be due to invalid IL or missing references) //IL_0809: Unknown result type (might be due to invalid IL or missing references) //IL_080e: Unknown result type (might be due to invalid IL or missing references) //IL_0832: Unknown result type (might be due to invalid IL or missing references) //IL_083d: Unknown result type (might be due to invalid IL or missing references) //IL_0842: Unknown result type (might be due to invalid IL or missing references) //IL_0847: Unknown result type (might be due to invalid IL or missing references) //IL_086b: Unknown result type (might be due to invalid IL or missing references) //IL_0876: Unknown result type (might be due to invalid IL or missing references) //IL_087b: Unknown result type (might be due to invalid IL or missing references) //IL_0880: Unknown result type (might be due to invalid IL or missing references) //IL_08a4: Unknown result type (might be due to invalid IL or missing references) //IL_08af: Unknown result type (might be due to invalid IL or missing references) //IL_08b4: Unknown result type (might be due to invalid IL or missing references) //IL_08b9: Unknown result type (might be due to invalid IL or missing references) //IL_08e9: Unknown result type (might be due to invalid IL or missing references) //IL_08f4: Unknown result type (might be due to invalid IL or missing references) //IL_08f9: Unknown result type (might be due to invalid IL or missing references) //IL_08fe: Unknown result type (might be due to invalid IL or missing references) //IL_0922: Unknown result type (might be due to invalid IL or missing references) //IL_092d: Unknown result type (might be due to invalid IL or missing references) //IL_0932: Unknown result type (might be due to invalid IL or missing references) //IL_0937: 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_00c9: Unknown result type (might be due to invalid IL or missing references) //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) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: 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_0115: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_011f: 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_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: 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) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_019a: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: 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_01be: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Unknown result type (might be due to invalid IL or missing references) m_ParentRoom = Vector3Extensions.GetAbsoluteRoom(((Component)this).gameObject.transform.position); Vector3 val = ((IntVector2)(ref m_ParentRoom.area.basePosition)).ToVector3(); if (Object.op_Implicit((Object)(object)CasinoGame_Punchout)) { CasinoGame_Punchout.ConfigureOnPlacement(m_ParentRoom); m_ParentRoom.RegisterInteractable((IPlayerInteractable)(object)CasinoGame_Punchout); } if (Object.op_Implicit((Object)(object)CasinoGame_GunBall)) { CasinoGame_GunBall.ConfigureOnPlacement(m_ParentRoom); m_ParentRoom.RegisterInteractable((IPlayerInteractable)(object)CasinoGame_GunBall); } if (Object.op_Implicit((Object)(object)Table) && Object.op_Implicit((Object)(object)Table2)) { Vector3 val2 = Table.transform.position + new Vector3(2.5f, 2.5f); Vector3 val3 = Table.transform.position - new Vector3(1f, 1f); Vector3 val4 = Table.transform.position + new Vector3(2.5f, -1f); Vector3 val5 = Table2.transform.position + new Vector3(2.8f, 1f); Vector3 val6 = Table2.transform.position + new Vector3(-1f, 1f); GameObject val7 = Object.Instantiate(ExpandObjectDatabase.KitchenChair_Front, val2, Quaternion.identity); GameObject val8 = Object.Instantiate(ExpandObjectDatabase.KitchenChair_Right, val3, Quaternion.identity); GameObject val9 = Object.Instantiate(ExpandObjectDatabase.KitchenChair_Left, val4, Quaternion.identity); GameObject val10 = Object.Instantiate(ExpandObjectDatabase.KitchenChair_Left, val5, Quaternion.identity); GameObject obj = Object.Instantiate(ExpandObjectDatabase.KitchenChair_Right, val6, Quaternion.identity); val7.transform.parent = m_ParentRoom.hierarchyParent; val8.transform.parent = m_ParentRoom.hierarchyParent; val9.transform.parent = m_ParentRoom.hierarchyParent; val10.transform.parent = m_ParentRoom.hierarchyParent; obj.transform.parent = m_ParentRoom.hierarchyParent; } Object.Instantiate(ExpandPrefabs.EXCasino_HatRack, val + new Vector3(0.35f, 10f), Quaternion.identity).transform.parent = m_ParentRoom.hierarchyParent; Object.Instantiate(ExpandPrefabs.EXCasino_Litter_Paper, val + new Vector3(9f, 14.75f), Quaternion.identity).transform.parent = m_ParentRoom.hierarchyParent; Object.Instantiate(ExpandPrefabs.EXCasino_Litter_Paper, val + new Vector3(4f, 2f), Quaternion.identity).transform.parent = m_ParentRoom.hierarchyParent; Object.Instantiate(ExpandPrefabs.EXCasino_Litter_Cans, val + new Vector3(3f, 8.5f), Quaternion.identity).transform.parent = m_ParentRoom.hierarchyParent; Vector3 val11 = val + new Vector3(10.5f, 8f); Vector3 val12 = val + new Vector3(13.5f, 8f); Vector3 val13 = val + new Vector3(13.5f, 11f); Object.Instantiate(ExpandPrefabs.EXArcadeGame_Prop_Depressed, val11, Quaternion.identity).transform.parent = m_ParentRoom.hierarchyParent; Object.Instantiate(ExpandPrefabs.EXArcadeGame_Prop, val12, Quaternion.identity).transform.parent = m_ParentRoom.hierarchyParent; Object.Instantiate(ExpandPrefabs.EXArcadeGame_Prop, val13, Quaternion.identity).transform.parent = m_ParentRoom.hierarchyParent; Dungeon obj2 = ExpandDungeonPrefabs.LoadOfficialDungeonPrefab("Base_Nakatomi"); Vector3 val14 = val + new Vector3(0.25f, 12f); Vector3 val15 = val + new Vector3(15.5f, 3f); Vector3 val16 = val + new Vector3(15.25f, 15.5f); GameObject val17 = Object.Instantiate(obj2.stampData.objectStamps[4].objectReference, val14, Quaternion.identity); GameObject val18 = Object.Instantiate(obj2.stampData.objectStamps[4].objectReference, val15, Quaternion.identity); GameObject obj3 = Object.Instantiate(obj2.stampData.objectStamps[3].objectReference, val16, Quaternion.identity); val17.transform.parent = m_ParentRoom.hierarchyParent; val18.transform.parent = m_ParentRoom.hierarchyParent; obj3.transform.parent = m_ParentRoom.hierarchyParent; Object.Instantiate(obj2.stampData.objectStamps[2].objectReference, val + new Vector3(15.25f, 2f), Quaternion.identity).transform.parent = m_ParentRoom.hierarchyParent; GameObject val19 = Object.Instantiate(obj2.stampData.objectStamps[7].objectReference, val + new Vector3(-0.25f, 1f), Quaternion.identity); GameObject val20 = Object.Instantiate(obj2.stampData.objectStamps[7].objectReference, val + new Vector3(2f, 1f), Quaternion.identity); GameObject obj4 = Object.Instantiate(obj2.stampData.objectStamps[8].objectReference, val + new Vector3(1f, 2f), Quaternion.identity); val19.transform.parent = m_ParentRoom.hierarchyParent; val20.transform.parent = m_ParentRoom.hierarchyParent; obj4.transform.parent = m_ParentRoom.hierarchyParent; GameObject val21 = new GameObject("EX Litter 01") { layer = LayerMask.NameToLayer("BG_Critical") }; tk2dSprite obj5 = SpriteSerializer.AddSpriteToObject(val21, ExpandPrefabs.EXFoyerCollection, "casino_litter_paper_001", (PerpendicularState)2); ((tk2dBaseSprite)obj5).HeightOffGround = -1.7f; ((tk2dBaseSprite)obj5).usesOverrideMaterial = true; ((BraveBehaviour)obj5).renderer.material.shader = ((BraveBehaviour)((Component)((Component)GameManager.Instance.RewardManager.A_Chest).gameObject.transform.Find("Shadow")).gameObject.GetComponent()).renderer.material.shader; val21.transform.position = val + new Vector3(11f, 3f); val21.transform.parent = m_ParentRoom.hierarchyParent; GameObject obj6 = Object.Instantiate(ExpandPrefabs.EXArcadeGame_Prop, val + new Vector3(10.5f, 5f), Quaternion.identity); ((tk2dBaseSprite)obj6.GetComponent()).SetSprite("cabinet_covered_001"); obj6.transform.parent = m_ParentRoom.hierarchyParent; Object.Instantiate(obj2.stampData.objectStamps[7].objectReference, val + new Vector3(13f, 2f), Quaternion.identity); Object.Instantiate(obj2.stampData.objectStamps[8].objectReference, val + new Vector3(13f, 5f), Quaternion.identity); Object.Instantiate(obj2.stampData.objectStamps[12].objectReference, val + new Vector3(11.5f, 1.5f), Quaternion.identity); Object.Instantiate(ExpandPrefabs.WestLight, val + new Vector3(0.25f, 6f), Quaternion.identity).transform.parent = m_ParentRoom.hierarchyParent; Object.Instantiate(ExpandObjectDatabase.DefaultTorchSide, val + new Vector3(0.25f, 6f), Quaternion.identity).transform.parent = m_ParentRoom.hierarchyParent; Object.Instantiate(ExpandPrefabs.WestLight, val + new Vector3(0.25f, 14f), Quaternion.identity).transform.parent = m_ParentRoom.hierarchyParent; Object.Instantiate(ExpandObjectDatabase.DefaultTorchSide, val + new Vector3(0.25f, 14f), Quaternion.identity).transform.parent = m_ParentRoom.hierarchyParent; Object.Instantiate(ExpandPrefabs.WestLight, val + new Vector3(16.4f, 6f), Quaternion.identity).transform.parent = m_ParentRoom.hierarchyParent; GameObject obj7 = Object.Instantiate(ExpandObjectDatabase.DefaultTorchSide, val + new Vector3(16.4f, 6f), Quaternion.identity); obj7.transform.parent = m_ParentRoom.hierarchyParent; ((tk2dBaseSprite)obj7.GetComponent()).FlipX = true; Object.Instantiate(ExpandPrefabs.WestLight, val + new Vector3(16.4f, 14f), Quaternion.identity).transform.parent = m_ParentRoom.hierarchyParent; GameObject obj8 = Object.Instantiate(ExpandObjectDatabase.DefaultTorchSide, val + new Vector3(16.4f, 14f), Quaternion.identity); obj8.transform.parent = m_ParentRoom.hierarchyParent; ((tk2dBaseSprite)obj8.GetComponent()).FlipX = true; } private void Update() { } protected override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); } } public class ExpandElevatorDepartureManager : DungeonPlaceableBehaviour, IPlaceConfigurable { public tk2dSpriteAnimator elevatorAnimator; public tk2dSpriteAnimator ceilingAnimator; public tk2dSpriteAnimator facewallAnimator; public tk2dSpriteAnimator floorAnimator; public tk2dSprite[] priorSprites; public tk2dSprite[] postSprites; public BreakableChunk chunker; public Transform spawnTransform; public GameObject elevatorFloor; public tk2dSpriteAnimator crumblyBumblyAnimator; public tk2dSpriteAnimator smokeAnimator; public string elevatorDescendAnimName; public string elevatorOpenAnimName; public string elevatorCloseAnimName; public string elevatorDepartAnimName; public ScreenShakeSettings arrivalShake; public ScreenShakeSettings doorOpenShake; public ScreenShakeSettings doorCloseShake; public ScreenShakeSettings departureShake; public bool UsesOverrideTargetFloor; public bool ConfigurationWasDeferred; public ValidTilesets OverrideTargetFloor; public bool IsGlitchElevator; public string OverrideExactLevelName; public string OverrideTargetFlorDungeonFlow; public const bool c_savingEnabled = true; private Tribool m_isArrived; private bool m_depatureIsPlayerless; private bool m_hasEverArrived; public ExpandElevatorDepartureManager() { //IL_0007: 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_0042: Unknown result type (might be due to invalid IL or missing references) m_isArrived = Tribool.Unready; ConfigurationWasDeferred = false; UsesOverrideTargetFloor = true; IsGlitchElevator = false; OverrideExactLevelName = "tt_tutorial"; OverrideTargetFlorDungeonFlow = string.Empty; OverrideTargetFloor = (ValidTilesets)1024; } private void Start() { //IL_0264: Unknown result type (might be due to invalid IL or missing references) //IL_026e: Expected O, but got Unknown //IL_026e: Unknown result type (might be due to invalid IL or missing references) //IL_0278: Expected O, but got Unknown //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Unknown result type (might be due to invalid IL or missing references) ElevatorDepartureController component = ((Component)this).gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { elevatorAnimator = component.elevatorAnimator; ceilingAnimator = component.ceilingAnimator; facewallAnimator = component.facewallAnimator; floorAnimator = component.floorAnimator; priorSprites = component.priorSprites; postSprites = component.postSprites; chunker = component.chunker; spawnTransform = component.spawnTransform; elevatorFloor = component.elevatorFloor; crumblyBumblyAnimator = component.crumblyBumblyAnimator; smokeAnimator = component.smokeAnimator; elevatorDescendAnimName = component.elevatorDescendAnimName; elevatorOpenAnimName = component.elevatorOpenAnimName; elevatorCloseAnimName = component.elevatorCloseAnimName; elevatorDepartAnimName = component.elevatorDepartAnimName; arrivalShake = component.arrivalShake; doorOpenShake = component.doorOpenShake; doorCloseShake = component.doorCloseShake; departureShake = component.departureShake; GameObject[] array = Object.FindObjectsOfType(); List list = new List(); if (array != null && array.Length != 0) { GameObject[] array2 = array; foreach (GameObject val in array2) { if ((Object)(object)val != (Object)null && (Object)(object)val.transform != (Object)null && !string.IsNullOrEmpty(((Object)val).name) && ((Object)val).name.StartsWith("CryoElevatorButton") && Vector3Extensions.GetAbsoluteRoom(val.transform.position) == ((DungeonPlaceableBehaviour)this).GetAbsoluteParentRoom()) { Vector2 val2 = TransformExtensions.PositionVector2(val.transform) - TransformExtensions.PositionVector2(((Component)this).gameObject.transform); if (((Vector2)(ref val2)).magnitude <= 7f) { list.Add(val); } } } } if (list.Count > 0) { for (int j = 0; j < list.Count; j++) { Object.Destroy((Object)(object)list[j]); } } ((Behaviour)component).enabled = false; Object.Destroy((Object)(object)component); Object.Destroy((Object)(object)((Component)this).gameObject.GetComponent()); SpeculativeRigidbody component2 = elevatorFloor.GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { if (ConfigurationWasDeferred) { PixelCollider primaryPixelCollider = component2.PrimaryPixelCollider; primaryPixelCollider.ManualOffsetY -= 8; PixelCollider primaryPixelCollider2 = component2.PrimaryPixelCollider; primaryPixelCollider2.ManualHeight += 8; component2.Reinitialize(); } component2.OnTriggerCollision = (OnTriggerDelegate)Delegate.Combine((Delegate?)(object)component2.OnTriggerCollision, (Delegate?)new OnTriggerDelegate(OnElevatorTriggerEnter)); } ToggleSprites(prior: true); } else if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: ElevatorDepatureComponent is null!", false); Object.Destroy((Object)(object)this); } if (ConfigurationWasDeferred) { Material val3 = Object.Instantiate(((BraveBehaviour)priorSprites[1]).renderer.material); val3.shader = ShaderCache.Acquire("Brave/Unity Transparent Cutout"); ((BraveBehaviour)priorSprites[1]).renderer.material = val3; Material val4 = Object.Instantiate(((BraveBehaviour)postSprites[2]).renderer.material); val4.shader = ShaderCache.Acquire("Brave/Unity Transparent Cutout"); ((BraveBehaviour)postSprites[2]).renderer.material = val4; ((tk2dBaseSprite)postSprites[1]).HeightOffGround = ((tk2dBaseSprite)postSprites[1]).HeightOffGround - 0.0625f; ((tk2dBaseSprite)postSprites[3]).HeightOffGround = ((tk2dBaseSprite)postSprites[3]).HeightOffGround - 0.0625f; ((tk2dBaseSprite)postSprites[1]).UpdateZDepth(); } } public void ConfigureOnPlacement(RoomHandler room) { //IL_0011: 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_0087: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Invalid comparison between Unknown and I4 //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Invalid comparison between Unknown and I4 //IL_003a: 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_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_0150: 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) if (!ConfigurationWasDeferred) { return; } IntVector2 val = Vector3Extensions.IntXY(((BraveBehaviour)this).transform.position, (VectorConversions)0); for (int i = 0; i < 6; i++) { for (int j = -2; j < 6; j++) { CellData val2 = GameManager.Instance.Dungeon.data.cellData[val.x + i][val.y + j]; val2.cellVisualData.precludeAllTileDrawing = true; if (j < 4) { val2.type = (CellType)4; val2.fallingPrevented = true; } val2.isOccupied = true; } } if (((int)GameManager.Instance.CurrentGameMode != 0 && (int)GameManager.Instance.CurrentGameMode != 1) || (int)GameManager.Instance.CurrentLevelOverrideState == 2) { return; } _ = (GameObject)Object.Instantiate(BraveResources.Load("Global Prefabs/CryoElevatorButton", ".prefab"), ((BraveBehaviour)this).transform.position + new Vector3(-1f, 0f, 0f), Quaternion.identity); IntVector2 val3 = Vector3Extensions.IntXY(((BraveBehaviour)this).transform.position, (VectorConversions)0) + new IntVector2(-2, 0); for (int k = 0; k < 2; k++) { for (int l = -1; l < 2; l++) { if (GameManager.Instance.Dungeon.data.CheckInBoundsAndValid(val3 + new IntVector2(k, l))) { CellData obj = GameManager.Instance.Dungeon.data[val3 + new IntVector2(k, l)]; obj.cellVisualData.containsWallSpaceStamp = true; obj.cellVisualData.containsObjectSpaceStamp = true; } } } } private void ToggleSprites(bool prior) { tk2dSprite[] array; if ((priorSprites != null) & (priorSprites.Length != 0)) { array = priorSprites; foreach (tk2dSprite val in array) { if (Object.op_Implicit((Object)(object)val) && Object.op_Implicit((Object)(object)((BraveBehaviour)val).renderer)) { ((BraveBehaviour)val).renderer.enabled = prior; } } } if (postSprites == null || postSprites.Length == 0) { return; } array = postSprites; foreach (tk2dSprite val2 in array) { if (Object.op_Implicit((Object)(object)val2) && Object.op_Implicit((Object)(object)((BraveBehaviour)val2).renderer)) { ((BraveBehaviour)val2).renderer.enabled = !prior; } } } private void TransitionToDoorOpen(tk2dSpriteAnimator animator, tk2dSpriteAnimationClip clip) { animator.AnimationCompleted = (Action)Delegate.Remove(animator.AnimationCompleted, new Action(TransitionToDoorOpen)); elevatorFloor.SetActive(true); ((Renderer)elevatorFloor.GetComponent()).enabled = true; ((Component)smokeAnimator).gameObject.SetActive(true); smokeAnimator.PlayAndDisableObject(string.Empty, (GameObject)null); GameManager.Instance.MainCameraController.DoScreenShake(doorOpenShake, (Vector2?)null, false); animator.Play(elevatorOpenAnimName); } private void TransitionToDoorClose(tk2dSpriteAnimator animator, tk2dSpriteAnimationClip clip) { GameManager.Instance.MainCameraController.DoScreenShake(doorCloseShake, (Vector2?)null, false); animator.Play(elevatorCloseAnimName); animator.AnimationCompleted = (Action)Delegate.Combine(animator.AnimationCompleted, new Action(TransitionToDepart)); } private IEnumerator DoDeparture(tk2dSpriteAnimator animator, tk2dSpriteAnimationClip clip) { GameManager.Instance.MainCameraController.DoDelayedScreenShake(departureShake, 0.25f, (Vector2?)null); if (!m_depatureIsPlayerless) { for (int i = 0; i < GameManager.Instance.AllPlayers.Length; i++) { GameManager.Instance.AllPlayers[i].PrepareForSceneTransition(); } elevatorFloor.SetActive(false); yield return null; animator.Play(elevatorDepartAnimName); while (!animator.IsPlaying(elevatorDepartAnimName)) { yield return null; } while (animator.IsPlaying(elevatorDepartAnimName)) { yield return null; } ((BraveBehaviour)animator).renderer.enabled = false; yield return null; float delay = 0.5f; if (ExpandDebugCamera.DebugCameraEnabled) { ExpandDebugCamera.SetInitialCameraPosition(Pixelator.Instance, GameManager.Instance.MainCameraController); } else { Pixelator.Instance.FadeToBlack(delay, false, 0f); } GameUIRoot.Instance.HideCoreUI(string.Empty); GameUIRoot.Instance.ToggleLowerPanels(false, false, string.Empty); float time = 0f; while (time < delay) { time += BraveTime.DeltaTime; yield return null; } yield return null; if ((int)GameManager.Instance.CurrentGameMode == 3) { GameManager.Instance.DelayedLoadBossrushFloor(delay); } else if ((int)GameManager.Instance.CurrentGameMode == 2) { GameManager.Instance.DelayedLoadBossrushFloor(delay); } else { if (!GameManager.Instance.IsFoyer && (int)GameManager.Instance.CurrentLevelOverrideState == 0) { GameManager.DoMidgameSave(GameManager.Instance.GetNextTileset(GameManager.Instance.Dungeon.tileIndices.tilesetId)); yield return null; } if (IsGlitchElevator) { ExpandSettings.glitchElevatorHasBeenUsed = true; ExpandLoadingScreen.overrideType = ExpandLoadingScreen.OverrideType.Glitched; ((MonoBehaviour)GameManager.Instance).StartCoroutine(ExpandUtility.DelayedGlitchLevelLoad(delay, BraveUtility.RandomElement(ExpandDungeonFlow.GlitchChestFlows), BraveUtility.RandomBool())); } else if (UsesOverrideTargetFloor) { ValidTilesets overrideTargetFloor = OverrideTargetFloor; if (!string.IsNullOrEmpty(OverrideTargetFlorDungeonFlow)) { GameManager.Instance.InjectedFlowPath = OverrideTargetFlorDungeonFlow; yield return null; } ValidTilesets val = overrideTargetFloor; if ((int)val <= 256) { if ((int)val <= 16) { switch (val - 1) { default: if ((int)val != 8) { if ((int)val == 16) { GameManager.Instance.DelayedLoadCustomLevel(delay, "tt_mines"); } } else { GameManager.Instance.DelayedLoadCustomLevel(delay, "tt_cathedral"); } break; case 1: GameManager.Instance.DelayedLoadCustomLevel(delay, "tt_castle"); break; case 3: GameManager.Instance.DelayedLoadCustomLevel(delay, "tt_sewer"); break; case 0: GameManager.Instance.DelayedLoadCustomLevel(delay, "tt5"); break; case 2: break; } } else if ((int)val <= 64) { if ((int)val != 32) { if ((int)val == 64) { GameManager.Instance.DelayedLoadCustomLevel(delay, "tt_forge"); } } else { GameManager.Instance.DelayedLoadCustomLevel(delay, "tt_catacombs"); } } else if ((int)val != 128) { if ((int)val == 256) { GameManager.Instance.DelayedLoadCustomLevel(delay, "tt_space"); } } else { GameManager.Instance.DelayedLoadCustomLevel(delay, "tt_bullethell"); } } else if ((int)val <= 2048) { if ((int)val != 512) { if ((int)val != 1024) { if ((int)val == 2048) { GameManager.Instance.DelayedLoadCustomLevel(delay, "tt_nakatomi"); } } else { GameManager.Instance.DelayedLoadCustomLevel(delay, "tt_west"); } } else { GameManager.Instance.DelayedLoadCustomLevel(delay, "tt_phobos"); } } else if ((int)val <= 8192) { if ((int)val != 4096) { if ((int)val == 8192) { GameManager.Instance.DelayedLoadCustomLevel(delay, "tt_jungle"); } } else { GameManager.Instance.DelayedLoadCustomLevel(delay, "tt_belly"); } } else if ((int)val != 16384) { if ((int)val == 32768) { GameManager.Instance.DelayedLoadCustomLevel(delay, "ss_resourcefulrat"); } } else { GameManager.Instance.DelayedLoadCustomLevel(delay, OverrideExactLevelName); } } else { GameManager.Instance.DelayedLoadNextLevel(delay); } AkSoundEngine.PostEvent("Stop_MUS_All", ((Component)this).gameObject); } } else { elevatorFloor.SetActive(false); yield return null; animator.Play(elevatorDepartAnimName); yield return null; while (animator.IsPlaying(elevatorDepartAnimName)) { yield return null; } ((BraveBehaviour)((BraveBehaviour)this).sprite).renderer.enabled = false; } yield return null; ((Component)this).gameObject.SetActive(false); } private void TransitionToDepart(tk2dSpriteAnimator animator, tk2dSpriteAnimationClip clip) { animator.AnimationCompleted = (Action)Delegate.Remove(animator.AnimationCompleted, new Action(TransitionToDepart)); ((MonoBehaviour)this).StartCoroutine(DoDeparture(animator, clip)); } private void DeflagCells() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0048: 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) IntVector2 val = Vector3Extensions.IntXY(((BraveBehaviour)this).transform.position, (VectorConversions)0); for (int i = 0; i < 6; i++) { for (int j = -2; j < 6; j++) { if ((j != -2 || (i >= 2 && i <= 3)) && (j != -1 || (i >= 1 && i <= 4))) { CellData val2 = GameManager.Instance.Dungeon.data.cellData[val.x + i][val.y + j]; if (j < 4) { val2.fallingPrevented = false; } } } } } private IEnumerator HandleDepartMotion() { Transform elevatorTransform = ((BraveBehaviour)elevatorAnimator).transform; Vector3 elevatorStartDepartPosition = elevatorTransform.position; float elapsed = 0f; float duration = 0.55f; float yDistance = 20f; bool hasLayerSwapped = false; while (elapsed < duration) { if (elapsed > 0.15f && !((Component)crumblyBumblyAnimator).gameObject.activeSelf) { ((Component)crumblyBumblyAnimator).gameObject.SetActive(true); crumblyBumblyAnimator.PlayAndDisableObject(string.Empty, (GameObject)null); } elapsed += BraveTime.DeltaTime; float num = Mathf.SmoothStep(0f, 1f, elapsed / duration); float num2 = BraveMathCollege.SmoothLerp(0f, 0f - yDistance, num); if (num2 < -2f && !hasLayerSwapped) { hasLayerSwapped = true; GameObjectExtensions.SetLayerRecursively(((Component)elevatorAnimator).gameObject, LayerMask.NameToLayer("BG_Critical")); } elevatorTransform.position = elevatorStartDepartPosition + new Vector3(0f, num2, 0f); if ((Object)(object)facewallAnimator != (Object)null) { facewallAnimator.Sprite.UpdateZDepth(); } yield return null; } } private void OnElevatorTriggerEnter(SpeculativeRigidbody otherSpecRigidbody, SpeculativeRigidbody sourceSpecRigidbody, CollisionData collisionData) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) if (!(m_isArrived == Tribool.Ready) || !((Object)(object)((Component)otherSpecRigidbody).GetComponent() != (Object)null)) { return; } if ((int)GameManager.Instance.CurrentGameType == 1) { bool flag = true; for (int i = 0; i < GameManager.Instance.AllPlayers.Length; i++) { if (!((BraveBehaviour)GameManager.Instance.AllPlayers[i]).healthHaver.IsDead && !sourceSpecRigidbody.ContainsPoint(Vector3Extensions.XY(GameManager.Instance.AllPlayers[i].SpriteBottomCenter), int.MaxValue, true)) { flag = false; break; } } if (flag) { DoDeparture(); } } else { DoDeparture(); } } private void Update() { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: 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_002b: 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_0048: Unknown result type (might be due to invalid IL or missing references) PlayerController activePlayerClosestToPoint = GameManager.Instance.GetActivePlayerClosestToPoint(Vector3Extensions.XY(spawnTransform.position), true); if ((Object)(object)activePlayerClosestToPoint != (Object)null && m_isArrived == Tribool.Unready && Vector2.Distance(Vector3Extensions.XY(spawnTransform.position), ((GameActor)activePlayerClosestToPoint).CenterPosition) < 8f && !((DungeonPlaceableBehaviour)this).GetAbsoluteParentRoom().HasActiveEnemies((ActiveEnemyType)1)) { DoArrival(); } } public void DoPlayerlessDeparture() { //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) m_depatureIsPlayerless = true; m_isArrived = Tribool.Complete; TransitionToDoorClose(elevatorAnimator, elevatorAnimator.CurrentClip); } public void DoDeparture() { //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) m_depatureIsPlayerless = false; m_isArrived = Tribool.Complete; if (Object.op_Implicit((Object)(object)Minimap.Instance)) { Minimap.Instance.PreventAllTeleports = true; } if (GameManager.HasInstance && GameManager.Instance.AllPlayers != null) { for (int i = 0; i < GameManager.Instance.AllPlayers.Length; i++) { if (Object.op_Implicit((Object)(object)GameManager.Instance.AllPlayers[i])) { GameManager.Instance.AllPlayers[i].CurrentInputState = (PlayerInputState)1; } } } TransitionToDoorClose(elevatorAnimator, elevatorAnimator.CurrentClip); } public void DoArrival() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) m_isArrived = Tribool.Ready; m_hasEverArrived = true; ((MonoBehaviour)this).StartCoroutine(HandleArrival(0f)); } private IEnumerator HandleArrival(float initialDelay) { yield return (object)new WaitForSeconds(initialDelay); ((Component)elevatorAnimator).gameObject.SetActive(true); Transform elevatorTransform = ((BraveBehaviour)elevatorAnimator).transform; Vector3 elevatorStartPosition = elevatorTransform.position; int sprite = ((!((Object)(object)ceilingAnimator != (Object)null)) ? (-1) : ceilingAnimator.Sprite.spriteId); int sprite2 = ((!((Object)(object)facewallAnimator != (Object)null)) ? (-1) : facewallAnimator.Sprite.spriteId); int spriteId = floorAnimator.Sprite.spriteId; elevatorFloor.SetActive(false); elevatorAnimator.Play(elevatorDescendAnimName); elevatorAnimator.StopAndResetFrame(); if ((Object)(object)ceilingAnimator != (Object)null) { ceilingAnimator.Sprite.SetSprite(sprite); } if ((Object)(object)facewallAnimator != (Object)null) { facewallAnimator.Sprite.SetSprite(sprite2); } floorAnimator.Sprite.SetSprite(spriteId); if (!m_hasEverArrived) { ToggleSprites(prior: true); } float elapsed = 0f; float duration = 0.1f; float yDistance = 20f; while (elapsed < duration) { elapsed += BraveTime.DeltaTime; float num = elapsed / duration; float num2 = Mathf.Lerp(yDistance, 0f, num); elevatorTransform.position = elevatorStartPosition + new Vector3(0f, num2, 0f); if ((Object)(object)facewallAnimator != (Object)null) { facewallAnimator.Sprite.UpdateZDepth(); } yield return null; } GameManager.Instance.MainCameraController.DoScreenShake(arrivalShake, (Vector2?)null, false); elevatorAnimator.Play(); tk2dSpriteAnimator obj = elevatorAnimator; obj.AnimationCompleted = (Action)Delegate.Combine(obj.AnimationCompleted, new Action(TransitionToDoorOpen)); ToggleSprites(prior: false); if ((Object)(object)chunker != (Object)null) { chunker.Trigger(true, (Vector3?)(((BraveBehaviour)this).transform.position + new Vector3(3f, 3f, 3f))); } if ((Object)(object)ceilingAnimator != (Object)null) { ceilingAnimator.Play(); } if ((Object)(object)facewallAnimator != (Object)null) { facewallAnimator.Play(); } floorAnimator.Play(); } protected override void OnDestroy() { ((DungeonPlaceableBehaviour)this).OnDestroy(); } } public class ExpandForgeHammerComponent : DungeonPlaceableBehaviour, IPlaceConfigurable { public enum ExpandHammerState { InitialDelay, PreSwing, Swing, Grounded, UpSwing, Gone } public bool TracksRandomEnemy; public bool IsActive; public bool IsCapturedHammer; public bool PowerScalesWithFloors; public bool DisablesRegularForgeHammers; public bool BulletIsAlreadlyFriendly; public PlayerController Owner; [DwarfConfigurable] public bool TracksPlayer; [DwarfConfigurable] public bool DeactivateOnEnemiesCleared; [DwarfConfigurable] public bool ForceLeft; [DwarfConfigurable] public bool ForceRight; public float FlashDurationBeforeAttack; public float AdditionalTrackingTime; public float DamageToEnemies; public float KnockbackForcePlayers; public float KnockbackForceEnemies; [DwarfConfigurable] public float InitialDelay; [DwarfConfigurable] public float MinTimeBetweenAttacks; [DwarfConfigurable] public float MaxTimeBetweenAttacks; [DwarfConfigurable] public float MinTimeToRestOnGround; [DwarfConfigurable] public float MaxTimeToRestOnGround; public bool DoScreenShake; public ScreenShakeSettings ScreenShake; public string Hammer_Anim_In_Left; public string Hammer_Anim_Out_Left; public string Hammer_Anim_In_Right; public string Hammer_Anim_Out_Right; public tk2dSpriteAnimator HitEffectAnimator; public tk2dSpriteAnimator TargetAnimator; public tk2dSpriteAnimator ShadowAnimator; public tk2dSprite StaticTarget; public bool DoGoopOnImpact; [ShowInInspectorIf("DoGoopOnImpact", false)] public GoopDefinition GoopToDo; [DwarfConfigurable] public bool DoesBulletsOnImpact; [ShowInInspectorIf("DoGoopOnImpact", false)] public BulletScriptSelector BulletScript; [ShowInInspectorIf("DoGoopOnImpact", false)] public Transform ShootPoint; public RoomHandler ParentRoom; private float m_localTimeScale; private ExpandHammerState m_state; private float m_timer; private PlayerController m_targetPlayer; private AIActor m_SelectedEnemy; private Vector2 m_targetOffset; private string m_inAnim; private string m_outAnim; private float m_additionalTrackTimer; private Vector2 m_LastKnownPosition; private bool m_isActive; private bool m_destroyOnGone; private bool m_attackIsLeft; private BulletScriptSource m_bulletSource; public ExpandHammerState State { get { return m_state; } set { if (value != m_state) { EndHammerState(m_state); m_state = value; BeginHammerState(m_state); } } } private float LocalDeltaTime => BraveTime.DeltaTime * LocalTimeScale; public float LocalTimeScale { get { return m_localTimeScale; } set { ((BraveBehaviour)this).spriteAnimator.OverrideTimeScale = value; m_localTimeScale = value; } } public static GameObject BuildHammerPrefab(AssetBundle expandAssets, string HammerAssetName, string HammerBulletName, bool SkipBulletBuild, bool IsFriendlyBullet, bool isHattyHammer, out GameObject HammerBullet) { //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: Unknown result type (might be due to invalid IL or missing references) //IL_0205: Unknown result type (might be due to invalid IL or missing references) //IL_0213: Unknown result type (might be due to invalid IL or missing references) //IL_0271: Unknown result type (might be due to invalid IL or missing references) //IL_0276: Unknown result type (might be due to invalid IL or missing references) //IL_0281: Unknown result type (might be due to invalid IL or missing references) //IL_0288: Unknown result type (might be due to invalid IL or missing references) //IL_028f: Unknown result type (might be due to invalid IL or missing references) //IL_029a: 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_02ac: Unknown result type (might be due to invalid IL or missing references) //IL_02b3: Unknown result type (might be due to invalid IL or missing references) //IL_02ba: 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_02c8: Unknown result type (might be due to invalid IL or missing references) //IL_02d3: Unknown result type (might be due to invalid IL or missing references) //IL_02de: Unknown result type (might be due to invalid IL or missing references) //IL_02e5: Unknown result type (might be due to invalid IL or missing references) //IL_02f0: Unknown result type (might be due to invalid IL or missing references) //IL_02f7: Unknown result type (might be due to invalid IL or missing references) //IL_02fe: Unknown result type (might be due to invalid IL or missing references) //IL_0309: Unknown result type (might be due to invalid IL or missing references) //IL_0314: Unknown result type (might be due to invalid IL or missing references) //IL_031f: Unknown result type (might be due to invalid IL or missing references) //IL_0326: Unknown result type (might be due to invalid IL or missing references) //IL_032d: Unknown result type (might be due to invalid IL or missing references) //IL_0334: Unknown result type (might be due to invalid IL or missing references) //IL_0335: Unknown result type (might be due to invalid IL or missing references) //IL_033a: Unknown result type (might be due to invalid IL or missing references) //IL_0345: Unknown result type (might be due to invalid IL or missing references) //IL_0350: Unknown result type (might be due to invalid IL or missing references) //IL_035b: Unknown result type (might be due to invalid IL or missing references) //IL_0366: Unknown result type (might be due to invalid IL or missing references) //IL_036d: Unknown result type (might be due to invalid IL or missing references) //IL_036e: Unknown result type (might be due to invalid IL or missing references) //IL_0378: Expected O, but got Unknown //IL_0378: Unknown result type (might be due to invalid IL or missing references) //IL_0383: Unknown result type (might be due to invalid IL or missing references) //IL_0384: Unknown result type (might be due to invalid IL or missing references) //IL_0389: Unknown result type (might be due to invalid IL or missing references) //IL_0399: Expected O, but got Unknown //IL_039e: Expected O, but got Unknown //IL_039e: Unknown result type (might be due to invalid IL or missing references) //IL_039f: Unknown result type (might be due to invalid IL or missing references) //IL_03a4: Unknown result type (might be due to invalid IL or missing references) //IL_03a6: Unknown result type (might be due to invalid IL or missing references) //IL_03ab: Unknown result type (might be due to invalid IL or missing references) //IL_03bc: Expected O, but got Unknown //IL_03c1: Expected O, but got Unknown GameObject val = expandAssets.LoadAsset(HammerAssetName); if (SkipBulletBuild) { HammerBullet = null; } else { HammerBullet = expandAssets.LoadAsset(HammerBulletName); } tk2dSprite val2 = val.AddComponent(); ExpandUtility.DuplicateSprite(val2, ExpandObjectDatabase.ForgeHammer.GetComponent()); if (isHattyHammer) { ((tk2dBaseSprite)val2).Collection = ExpandPrefabs.EXHattyHammerCollection.GetComponent(); } tk2dSpriteAnimation library = ExpandObjectDatabase.ForgeHammer.GetComponent().Library; tk2dSpriteAnimation val3 = val.AddComponent(); List list = new List(); tk2dSpriteAnimationClip[] clips = library.clips; foreach (tk2dSpriteAnimationClip val4 in clips) { if (!string.IsNullOrEmpty(val4.name)) { if (val4.name.ToLower().StartsWith("hammer_right_out")) { list.Add(ExpandUtility.DuplicateAnimationClip(val4)); } else if (val4.name.ToLower().StartsWith("hammer_left_out")) { list.Add(ExpandUtility.DuplicateAnimationClip(val4)); } else if (val4.name.ToLower().StartsWith("hammer_right_slam")) { list.Add(ExpandUtility.DuplicateAnimationClip(val4)); } else if (val4.name.ToLower().StartsWith("hammer_left_slam")) { list.Add(ExpandUtility.DuplicateAnimationClip(val4)); } } } if (isHattyHammer) { foreach (tk2dSpriteAnimationClip item in list) { tk2dSpriteAnimationFrame[] frames = item.frames; for (int i = 0; i < frames.Length; i++) { frames[i].spriteCollection = ExpandPrefabs.EXHattyHammerCollection.GetComponent(); } } } if (list.Count > 0) { val3.clips = list.ToArray(); } ExpandUtility.GenerateSpriteAnimator(val, val3, 0, 0f, AnimateDuringBossIntros: false, AlwaysIgnoreTimeScale: false, ignoreTimeScale: false, ForceSetEveryFrame: false, playAutomatically: false, IsFrameBlendedAnimation: false, 0f, 0f); ExpandUtility.GenerateOrAddToRigidBody(val, (CollisionLayer)6, (PixelColliderGeneration)0, collideWithTileMap: true, CollideWithOthers: true, CanBeCarried: false, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(30, 24), (IntVector2?)new IntVector2(16, 24)); ExpandUtility.GenerateOrAddToRigidBody(val, (CollisionLayer)5, (PixelColliderGeneration)0, collideWithTileMap: true, CollideWithOthers: true, CanBeCarried: false, CanBePushed: false, RecheckTriggers: false, IsTrigger: false, replaceExistingColliders: false, UsesPixelsAsUnitSize: true, (IntVector2?)new IntVector2(30, 8), (IntVector2?)new IntVector2(16, 16)); GoopDefinition goopToDo = ExpandUtility.DuplicateGoop(ExpandObjectDatabase.ForgeHammer.GetComponent().GoopToDo, "EXNapalmGoopQuickIgnite"); ExpandForgeHammerComponent expandForgeHammerComponent = val.AddComponent(); expandForgeHammerComponent.GoopToDo = goopToDo; AIBulletBank val5 = val.AddComponent(); val5.useDefaultBulletIfMissing = true; val5.transforms = new List(0); val5.Bullets = new List { new Entry { Name = "default", OverrideProjectile = false, PlayAudio = false, AudioSwitch = string.Empty, AudioEvent = string.Empty, AudioLimitOncePerFrame = false, AudioLimitOncePerAttack = false, MuzzleLimitOncePerFrame = false, MuzzleInheritsTransformDirection = false, SpawnShells = false, ShellForce = 1.75f, ShellForceVariance = 0.75f, DontRotateShell = false, ShellGroundOffset = 0f, ShellsLimitOncePerFrame = false, rampBullets = false, rampStartHeight = 0f, rampTime = 0f, conditionalMinDegFromNorth = 0f, forceCanHitEnemies = true, suppressHitEffectsIfOffscreen = false, preloadCount = 0, ProjectileData = new ProjectileData { damage = 0f, speed = 0f, range = 0f, damping = 0f, UsesCustomAccelerationCurve = false, AccelerationCurve = new AnimationCurve(), CustomAccelerationCurveDuration = 0f, onDestroyBulletScript = new BulletScriptSelector { scriptTypeName = string.Empty } }, MuzzleFlashEffects = new VFXPool { type = (VFXPoolType)0, effects = (VFXComplex[])(object)new VFXComplex[0] } } }; if (!SkipBulletBuild) { Projectile val6 = HammerBullet.AddComponent(); SpeculativeRigidbody targetRigidBody = HammerBullet.AddComponent(); tk2dSprite val7 = ((Component)HammerBullet.transform.Find("Sprite")).gameObject.AddComponent(); tk2dSpriteAnimator targetAnimator = ((Component)val7).gameObject.AddComponent(); ExpandUtility.DuplicateComponent(val6, ExpandObjectDatabase.ForgeHammer.GetComponent().Bullets[0].BulletObject.GetComponent()); ExpandUtility.DuplicateRigidBody(targetRigidBody, ExpandObjectDatabase.ForgeHammer.GetComponent().Bullets[0].BulletObject.GetComponent()); ExpandUtility.DuplicateSprite(val7, ((Component)ExpandObjectDatabase.ForgeHammer.GetComponent().Bullets[0].BulletObject.transform.Find("Sprite")).gameObject.GetComponent()); ExpandUtility.DuplicateSpriteAnimator(targetAnimator, ((Component)ExpandObjectDatabase.ForgeHammer.GetComponent().Bullets[0].BulletObject.transform.Find("Sprite")).gameObject.GetComponent()); if (IsFriendlyBullet) { val6.collidesWithPlayer = false; val6.collidesWithEnemies = true; val6.TreatedAsNonProjectileForChallenge = true; } val5.Bullets[0].BulletObject = HammerBullet; } GameObject gameObject = ((Component)val.transform.Find("Target")).gameObject; ExpandUtility.DuplicateSprite(gameObject.AddComponent(), ((Component)ExpandObjectDatabase.ForgeHammer.GetComponent().TargetAnimator).gameObject.GetComponent()); tk2dSpriteAnimator targetAnimator2 = ExpandUtility.DuplicateSpriteAnimator(gameObject, ExpandObjectDatabase.ForgeHammer.GetComponent().TargetAnimator); GameObject gameObject2 = ((Component)val.transform.Find("HitEffect")).gameObject; ExpandUtility.DuplicateSprite(gameObject2.AddComponent(), ((Component)ExpandObjectDatabase.ForgeHammer.GetComponent().HitEffectAnimator).gameObject.GetComponent()); tk2dSpriteAnimator hitEffectAnimator = ExpandUtility.DuplicateSpriteAnimator(gameObject2, ExpandObjectDatabase.ForgeHammer.GetComponent().HitEffectAnimator); GameObject gameObject3 = ((Component)val.transform.Find("Shadow")).gameObject; ExpandUtility.DuplicateSprite(gameObject3.AddComponent(), ((Component)ExpandObjectDatabase.ForgeHammer.GetComponent().ShadowAnimator).gameObject.GetComponent()); tk2dSpriteAnimator val8 = ExpandUtility.DuplicateSpriteAnimator(gameObject3, ExpandObjectDatabase.ForgeHammer.GetComponent().ShadowAnimator); val8.playAutomatically = false; val8.DefaultClipId = 28; expandForgeHammerComponent.TargetAnimator = targetAnimator2; expandForgeHammerComponent.HitEffectAnimator = hitEffectAnimator; expandForgeHammerComponent.ShadowAnimator = val8; expandForgeHammerComponent.ShootPoint = val.transform.Find("ShootPoint"); return val; } public ExpandForgeHammerComponent() { //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Expected O, but got Unknown //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0154: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Expected O, but got Unknown IsCapturedHammer = false; TracksPlayer = false; TracksRandomEnemy = true; PowerScalesWithFloors = true; DisablesRegularForgeHammers = true; BulletIsAlreadlyFriendly = true; DoGoopOnImpact = false; DoesBulletsOnImpact = false; DeactivateOnEnemiesCleared = true; DamageToEnemies = 30f; InitialDelay = 1.5f; MinTimeBetweenAttacks = 1.5f; MaxTimeBetweenAttacks = 3f; ForceLeft = false; ForceRight = false; DoScreenShake = true; FlashDurationBeforeAttack = 0.75f; AdditionalTrackingTime = 0.5f; KnockbackForcePlayers = 50f; KnockbackForceEnemies = 65f; MinTimeToRestOnGround = 0.75f; MaxTimeToRestOnGround = 0.75f; ScreenShake = new ScreenShakeSettings { magnitude = 0.48f, speed = 6f, time = 0.08f, falloff = 0.1f, direction = Vector2.zero, vibrationType = (VibrationType)10, simpleVibrationTime = (Time)20, simpleVibrationStrength = (Strength)20 }; Hammer_Anim_In_Left = "hammer_left_slam"; Hammer_Anim_Out_Left = "hammer_left_out"; Hammer_Anim_In_Right = "hammer_right_slam"; Hammer_Anim_Out_Right = "hammer_right_out"; BulletScript = new BulletScriptSelector { scriptTypeName = "ForgeHammerCircle1" }; m_localTimeScale = 1f; m_state = ExpandHammerState.Gone; m_isActive = false; m_destroyOnGone = false; IsActive = false; } public void Start() { PhysicsEngine.Instance.OnPostRigidbodyMovement += OnPostRigidbodyMovement; } public void Update() { //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_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_0096: 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_009d: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) if (!m_isActive && State == ExpandHammerState.Gone) { if (m_destroyOnGone) { Object.Destroy((Object)(object)((Component)this).gameObject); } return; } if (m_isActive && State == ExpandHammerState.Gone && !IsCapturedHammer) { Vector2 unitBottomLeft = ParentRoom.area.UnitBottomLeft; Vector2 unitTopRight = ParentRoom.area.UnitTopRight; int num = 0; for (int i = 0; i < GameManager.Instance.AllPlayers.Length; i++) { PlayerController val = GameManager.Instance.AllPlayers[i]; if (Object.op_Implicit((Object)(object)val) && ((BraveBehaviour)val).healthHaver.IsAlive) { Vector2 centerPosition = ((GameActor)val).CenterPosition; if (BraveMathCollege.AABBContains(unitBottomLeft - Vector2.one, unitTopRight + Vector2.one, centerPosition)) { num++; } } } if (num == 0) { Deactivate(); } } if (!IsCapturedHammer | (IsCapturedHammer && State != ExpandHammerState.Gone)) { m_timer = Mathf.Max(0f, m_timer - LocalDeltaTime); } UpdateState(State); if (IsCapturedHammer && TracksPlayer && State != ExpandHammerState.UpSwing && State != ExpandHammerState.Grounded && State != ExpandHammerState.PreSwing && m_additionalTrackTimer <= 0f && State != ExpandHammerState.Swing) { UpdatePosition(); } } public bool DoManualHammerBlow() { if (!m_isActive) { Activate(); return false; } if (State == ExpandHammerState.Gone) { m_timer = 0f; return true; } return false; } public void Activate() { //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_014e: 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_0136: Unknown result type (might be due to invalid IL or missing references) //IL_0114: 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_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_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) if (m_isActive) { return; } if (IsCapturedHammer && !Object.op_Implicit((Object)(object)StaticTarget)) { StaticTarget = ((Component)Object.Instantiate(MrCap.MrCapHammerTarget, Vector2.op_Implicit(((GameActor)Owner).CenterPosition), Quaternion.identity).transform.Find("Sprite")).gameObject.GetComponent(); } if (DeactivateOnEnemiesCleared && !ParentRoom.HasActiveEnemies((ActiveEnemyType)1)) { ForceStop(); return; } if (TracksRandomEnemy) { m_SelectedEnemy = ParentRoom.GetRandomActiveEnemy(false); if (Object.op_Implicit((Object)(object)m_SelectedEnemy)) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)m_SelectedEnemy).healthHaver)) { if (!((BraveBehaviour)m_SelectedEnemy).healthHaver.IsDead) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)m_SelectedEnemy).specRigidbody)) { m_LastKnownPosition = ((BraveBehaviour)m_SelectedEnemy).specRigidbody.GetUnitCenter((ColliderType)1); } else { m_LastKnownPosition = ((BraveBehaviour)m_SelectedEnemy).sprite.WorldCenter; } } else { m_LastKnownPosition = Vector2.op_Implicit(((BraveBehaviour)this).transform.position); } } else { m_LastKnownPosition = Vector2.op_Implicit(((BraveBehaviour)this).transform.position); } } else { m_LastKnownPosition = Vector2.op_Implicit(((BraveBehaviour)this).transform.position); } } IsActive = true; m_isActive = true; if (State == ExpandHammerState.Gone) { State = ExpandHammerState.InitialDelay; } } public void Deactivate() { if (m_isActive) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).encounterTrackable)) { GameStatsManager.Instance.HandleEncounteredObject(((BraveBehaviour)this).encounterTrackable); } if (Object.op_Implicit((Object)(object)StaticTarget)) { Object.Destroy((Object)(object)((Component)((BraveBehaviour)StaticTarget).transform.parent).gameObject); } IsActive = false; m_isActive = false; } } public void Deactivate(bool destroy) { if (m_isActive) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).encounterTrackable)) { GameStatsManager.Instance.HandleEncounteredObject(((BraveBehaviour)this).encounterTrackable); } if (Object.op_Implicit((Object)(object)StaticTarget)) { Object.Destroy((Object)(object)((Component)((BraveBehaviour)StaticTarget).transform.parent).gameObject); } IsActive = false; m_destroyOnGone = destroy; m_isActive = false; } } private void UpdateState(ExpandHammerState state) { //IL_003c: 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_0047: 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_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Invalid comparison between Unknown and I4 //IL_00b9: 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_00c0: 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_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Invalid comparison between Unknown and I4 switch (state) { case ExpandHammerState.InitialDelay: if (IsCapturedHammer) { m_targetPlayer = Owner; IntVector2 val = Vector2Extensions.ToIntVector2(((GameActor)m_targetPlayer).CenterPosition, (VectorConversions)0); if (ForceLeft) { m_attackIsLeft = true; } else if (ForceRight) { m_attackIsLeft = false; } else { int i; for (i = 0; (int)GameManager.Instance.Dungeon.data[val + IntVector2.Left * i].type != 1; i++) { } int j; for (j = 0; (int)GameManager.Instance.Dungeon.data[val + IntVector2.Right * j].type != 1; j++) { } m_attackIsLeft = i < j; } m_inAnim = ((!m_attackIsLeft) ? Hammer_Anim_In_Right : Hammer_Anim_In_Left); m_outAnim = ((!m_attackIsLeft) ? Hammer_Anim_Out_Right : Hammer_Anim_Out_Left); ((BraveBehaviour)TargetAnimator).renderer.enabled = false; ((Behaviour)((BraveBehaviour)this).specRigidbody).enabled = false; State = ExpandHammerState.Gone; } else if (m_timer <= 0f) { State = ExpandHammerState.PreSwing; } break; case ExpandHammerState.PreSwing: if (m_timer <= 0f) { State = ExpandHammerState.Swing; } break; case ExpandHammerState.Swing: m_additionalTrackTimer -= LocalDeltaTime; if (!((BraveBehaviour)this).spriteAnimator.IsPlaying(m_inAnim)) { State = ExpandHammerState.Grounded; } break; case ExpandHammerState.Grounded: if (m_timer <= 0f) { State = ExpandHammerState.UpSwing; } break; case ExpandHammerState.UpSwing: if (!((BraveBehaviour)this).spriteAnimator.IsPlaying(m_outAnim)) { State = ExpandHammerState.Gone; } break; case ExpandHammerState.Gone: if (m_timer <= 0f) { State = ExpandHammerState.PreSwing; if (TracksRandomEnemy) { m_SelectedEnemy = ParentRoom.GetRandomActiveEnemy(false); } } break; } } private void BeginHammerState(ExpandHammerState state) { //IL_040b: 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_01fa: Unknown result type (might be due to invalid IL or missing references) //IL_01ff: 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_0132: Invalid comparison between Unknown and I4 //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Invalid comparison between Unknown and I4 //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_04a4: Unknown result type (might be due to invalid IL or missing references) //IL_04a9: Unknown result type (might be due to invalid IL or missing references) //IL_023f: Unknown result type (might be due to invalid IL or missing references) //IL_0240: Unknown result type (might be due to invalid IL or missing references) //IL_0247: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Unknown result type (might be due to invalid IL or missing references) //IL_0256: Unknown result type (might be due to invalid IL or missing references) //IL_025c: Invalid comparison between Unknown and I4 //IL_0278: Unknown result type (might be due to invalid IL or missing references) //IL_0279: Unknown result type (might be due to invalid IL or missing references) //IL_0280: Unknown result type (might be due to invalid IL or missing references) //IL_0285: Unknown result type (might be due to invalid IL or missing references) //IL_028f: Unknown result type (might be due to invalid IL or missing references) //IL_0295: Invalid comparison between Unknown and I4 //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_019e: 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_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_052b: Unknown result type (might be due to invalid IL or missing references) //IL_0536: Unknown result type (might be due to invalid IL or missing references) //IL_053b: Unknown result type (might be due to invalid IL or missing references) //IL_0540: Unknown result type (might be due to invalid IL or missing references) //IL_06c6: Unknown result type (might be due to invalid IL or missing references) //IL_06d5: Unknown result type (might be due to invalid IL or missing references) //IL_06da: Unknown result type (might be due to invalid IL or missing references) //IL_06e5: Unknown result type (might be due to invalid IL or missing references) //IL_06f4: Unknown result type (might be due to invalid IL or missing references) //IL_06f9: Unknown result type (might be due to invalid IL or missing references) //IL_0638: Unknown result type (might be due to invalid IL or missing references) //IL_072a: Unknown result type (might be due to invalid IL or missing references) //IL_072f: Unknown result type (might be due to invalid IL or missing references) //IL_0744: Unknown result type (might be due to invalid IL or missing references) //IL_0670: Unknown result type (might be due to invalid IL or missing references) //IL_0759: Unknown result type (might be due to invalid IL or missing references) //IL_075f: Invalid comparison between Unknown and I4 //IL_035c: Unknown result type (might be due to invalid IL or missing references) //IL_034b: Unknown result type (might be due to invalid IL or missing references) //IL_05c5: Unknown result type (might be due to invalid IL or missing references) //IL_0361: Unknown result type (might be due to invalid IL or missing references) //IL_0600: Unknown result type (might be due to invalid IL or missing references) switch (state) { case ExpandHammerState.InitialDelay: ((BraveBehaviour)TargetAnimator).renderer.enabled = false; ((BraveBehaviour)HitEffectAnimator).renderer.enabled = false; ((BraveBehaviour)((BraveBehaviour)this).sprite).renderer.enabled = false; m_timer = InitialDelay; break; case ExpandHammerState.PreSwing: { if (Object.op_Implicit((Object)(object)Owner)) { m_targetPlayer = Owner; } else { m_targetPlayer = GameManager.Instance.GetRandomActivePlayer(); } if (TracksRandomEnemy) { m_SelectedEnemy = ParentRoom.GetRandomActiveEnemy(false); if (DisablesRegularForgeHammers && (int)GameManager.Instance.Dungeon.tileIndices.tilesetId == 64 && StaticReferenceManager.AllForgeHammers != null && StaticReferenceManager.AllForgeHammers.Count > 0) { List allForgeHammers = StaticReferenceManager.AllForgeHammers; for (int j = 0; j < allForgeHammers.Count; j++) { if (Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)allForgeHammers[j]).transform.position) == ParentRoom) { allForgeHammers[j].Deactivate(); } } } } if (!IsCapturedHammer && (int)GameManager.Instance.CurrentGameType == 1) { List list = new List(2); Vector2 unitBottomLeft = ParentRoom.area.UnitBottomLeft; Vector2 unitTopRight = ParentRoom.area.UnitTopRight; for (int k = 0; k < GameManager.Instance.AllPlayers.Length; k++) { PlayerController val3 = GameManager.Instance.AllPlayers[k]; if (Object.op_Implicit((Object)(object)val3) && ((BraveBehaviour)val3).healthHaver.IsAlive) { Vector2 centerPosition = ((GameActor)val3).CenterPosition; if (BraveMathCollege.AABBContains(unitBottomLeft - Vector2.one, unitTopRight + Vector2.one, centerPosition)) { list.Add(val3); } } } if (list.Count > 0) { m_targetPlayer = BraveUtility.RandomElement(list); } } IntVector2 val4 = Vector2Extensions.ToIntVector2(((GameActor)m_targetPlayer).CenterPosition, (VectorConversions)0); if (ForceLeft) { m_attackIsLeft = true; } else if (ForceRight) { m_attackIsLeft = false; } else { int l; for (l = 0; (int)GameManager.Instance.Dungeon.data[val4 + IntVector2.Left * l].type != 1; l++) { } int m; for (m = 0; (int)GameManager.Instance.Dungeon.data[val4 + IntVector2.Right * m].type != 1; m++) { } m_attackIsLeft = l < m; } m_inAnim = ((!m_attackIsLeft) ? Hammer_Anim_In_Right : Hammer_Anim_In_Left); m_outAnim = ((!m_attackIsLeft) ? Hammer_Anim_Out_Right : Hammer_Anim_Out_Left); TargetAnimator.StopAndResetFrame(); if (TracksPlayer | TracksRandomEnemy) { ((BraveBehaviour)TargetAnimator).renderer.enabled = true; } else { ((BraveBehaviour)TargetAnimator).renderer.enabled = false; } TargetAnimator.PlayAndDisableRenderer((!m_attackIsLeft) ? "hammer_right_target" : "hammer_left_target"); m_targetOffset = ((!m_attackIsLeft) ? new Vector2(4.625f, 1.9375f) : new Vector2(1.9375f, 1.9375f)); m_timer = FlashDurationBeforeAttack; break; } case ExpandHammerState.Swing: ((BraveBehaviour)((BraveBehaviour)this).sprite).renderer.enabled = true; ((BraveBehaviour)this).spriteAnimator.Play(m_inAnim); ((BraveBehaviour)ShadowAnimator).renderer.enabled = true; ShadowAnimator.Play((!m_attackIsLeft) ? "hammer_right_slam_shadow" : "hammer_left_slam_shadow"); ((BraveBehaviour)this).sprite.HeightOffGround = -2.5f; ((BraveBehaviour)this).sprite.UpdateZDepth(); m_additionalTrackTimer = AdditionalTrackingTime; break; case ExpandHammerState.Grounded: { if (DoScreenShake) { GameManager.Instance.MainCameraController.DoScreenShake(ScreenShake, (Vector2?)((BraveBehaviour)this).specRigidbody.UnitCenter, false); } ((Behaviour)((BraveBehaviour)this).specRigidbody).enabled = true; ((BraveBehaviour)this).specRigidbody.PixelColliders[0].ManualOffsetX = ((!m_attackIsLeft) ? 59 : 16); ((BraveBehaviour)this).specRigidbody.PixelColliders[1].ManualOffsetX = ((!m_attackIsLeft) ? 59 : 16); ((BraveBehaviour)this).specRigidbody.ForceRegenerate((bool?)null, (bool?)null); ((BraveBehaviour)this).specRigidbody.Reinitialize(); Exploder.DoRadialMinorBreakableBreak(Vector2.op_Implicit(((BraveBehaviour)TargetAnimator).sprite.WorldCenter), 4f); ((BraveBehaviour)HitEffectAnimator).renderer.enabled = true; HitEffectAnimator.PlayAndDisableRenderer((!m_attackIsLeft) ? "hammer_right_slam_vfx" : "hammer_left_slam_vfx"); List overlappingRigidbodies = PhysicsEngine.Instance.GetOverlappingRigidbodies(((BraveBehaviour)this).specRigidbody, (int?)null, false); for (int i = 0; i < overlappingRigidbodies.Count; i++) { if (!Object.op_Implicit((Object)(object)((BraveBehaviour)overlappingRigidbodies[i]).gameActor)) { continue; } Vector2 val = overlappingRigidbodies[i].UnitCenter - ((BraveBehaviour)this).specRigidbody.UnitCenter; if (((BraveBehaviour)overlappingRigidbodies[i]).gameActor is PlayerController) { if (IsCapturedHammer) { continue; } GameActor gameActor = ((BraveBehaviour)overlappingRigidbodies[i]).gameActor; PlayerController val2 = (PlayerController)(object)((gameActor is PlayerController) ? gameActor : null); if (overlappingRigidbodies[i].CollideWithOthers && (!val2.DodgeRollIsBlink || !val2.IsDodgeRolling)) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)overlappingRigidbodies[i]).healthHaver)) { ((BraveBehaviour)overlappingRigidbodies[i]).healthHaver.ApplyDamage(0.5f, val, StringTableManager.GetEnemiesString("#FORGE_HAMMER", -1), (CoreDamageTypes)0, (DamageCategory)0, false, (PixelCollider)null, false); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)overlappingRigidbodies[i]).knockbackDoer)) { ((BraveBehaviour)overlappingRigidbodies[i]).knockbackDoer.ApplyKnockback(val, KnockbackForcePlayers, false); } } } else { if (Object.op_Implicit((Object)(object)((BraveBehaviour)overlappingRigidbodies[i]).healthHaver)) { ((BraveBehaviour)overlappingRigidbodies[i]).healthHaver.ApplyDamage(DamageToEnemies, val, StringTableManager.GetEnemiesString("#FORGE_HAMMER", -1), (CoreDamageTypes)0, (DamageCategory)0, false, (PixelCollider)null, false); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)overlappingRigidbodies[i]).knockbackDoer)) { ((BraveBehaviour)overlappingRigidbodies[i]).knockbackDoer.ApplyKnockback(val, KnockbackForceEnemies, false); } } } PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(((BraveBehaviour)this).specRigidbody, (int?)null, false); if (DoGoopOnImpact) { DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(GoopToDo).AddGoopRect(((BraveBehaviour)this).specRigidbody.UnitCenter + new Vector2(-1f, -1.25f), ((BraveBehaviour)this).specRigidbody.UnitCenter + new Vector2(1f, 0.75f)); } if (DoesBulletsOnImpact && m_isActive) { ((Component)ShootPoint).transform.position = Vector2.op_Implicit(((BraveBehaviour)this).specRigidbody.UnitCenter); CellData cell = Vector3Extensions.GetCell(((Component)ShootPoint).transform.position); if (cell != null && (int)cell.type != 1) { if (!Object.op_Implicit((Object)(object)m_bulletSource)) { m_bulletSource = GameObjectExtensions.GetOrAddComponent(((Component)ShootPoint).gameObject); } m_bulletSource.BulletManager = ((BraveBehaviour)this).bulletBank; m_bulletSource.BulletScript = BulletScript; m_bulletSource.Initialize(); if ((TracksRandomEnemy | IsCapturedHammer) && Object.op_Implicit((Object)(object)Owner) && Object.op_Implicit((Object)(object)((BraveBehaviour)this).bulletBank)) { ((BraveBehaviour)this).bulletBank.OnProjectileCreated = (Action)Delegate.Combine(((BraveBehaviour)this).bulletBank.OnProjectileCreated, new Action(HandleForgeHammerPostProcessProjectile)); } } } m_timer = Random.Range(MinTimeToRestOnGround, MaxTimeToRestOnGround); break; } case ExpandHammerState.UpSwing: ((BraveBehaviour)this).spriteAnimator.Play(m_outAnim); ShadowAnimator.PlayAndDisableRenderer((!m_attackIsLeft) ? "hammer_right_out_shadow" : "hammer_left_out_shadow"); break; case ExpandHammerState.Gone: ((BraveBehaviour)((BraveBehaviour)this).sprite).renderer.enabled = false; if (IsCapturedHammer) { m_timer = 999f; } else { m_timer = Random.Range(MinTimeBetweenAttacks, MaxTimeBetweenAttacks); } break; } } private void EndHammerState(ExpandHammerState state) { if (state == ExpandHammerState.Grounded) { ((Behaviour)((BraveBehaviour)this).specRigidbody).enabled = false; } } public void ConfigureOnPlacement(RoomHandler room) { //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Invalid comparison between Unknown and I4 //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_003c: Unknown result type (might be due to invalid IL or missing references) ExpandStaticReferenceManager.AllFriendlyHammers.Add(this); ParentRoom = room; m_targetPlayer = Owner; if (IsCapturedHammer) { StaticTarget = ((Component)Object.Instantiate(MrCap.MrCapHammerTarget, Vector2.op_Implicit(((GameActor)Owner).CenterPosition), Quaternion.identity).transform.Find("Sprite")).gameObject.GetComponent(); } if (((int)room.visibility == 2) | IsCapturedHammer) { DoRealConfigure(activateNow: true); } else { ((MonoBehaviour)this).StartCoroutine(FrameDelayedConfigure()); } } private IEnumerator FrameDelayedConfigure() { yield return null; DoRealConfigure(activateNow: false); } private void DoRealConfigure(bool activateNow) { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0096: 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_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Expected O, but got Unknown InitStats(); if (IsCapturedHammer) { ((BraveBehaviour)this).transform.position = Vector2.op_Implicit(((GameActor)m_targetPlayer).CenterPosition); } if (ForceLeft) { Transform transform = ((BraveBehaviour)this).transform; transform.position += new Vector3(-1f, -1f, 0f); } else if (ForceRight) { Transform transform2 = ((BraveBehaviour)this).transform; transform2.position += new Vector3(-3.5625f, -1f, 0f); } m_LastKnownPosition = Vector2.op_Implicit(((BraveBehaviour)this).transform.position); ((BraveBehaviour)this).spriteAnimator.AnimationEventTriggered = (Action)Delegate.Combine(((BraveBehaviour)this).spriteAnimator.AnimationEventTriggered, new Action(HandleAnimationEvent)); if (!IsCapturedHammer) { ParentRoom.Entered += (OnEnteredEventHandler)delegate { Activate(); }; } if (activateNow) { Activate(); } if (DeactivateOnEnemiesCleared) { ParentRoom.OnEnemiesCleared = (Action)Delegate.Combine(ParentRoom.OnEnemiesCleared, new Action(Deactivate)); } } private void InitStats() { //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_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Invalid comparison between Unknown and I4 //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Invalid comparison between Unknown and I4 //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Invalid comparison between Unknown and I4 //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Invalid comparison between Unknown and I4 //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Invalid comparison between Unknown and I4 //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Invalid comparison between Unknown and I4 //IL_0069: 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_0081: Expected I4, but got Unknown //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Invalid comparison between Unknown and I4 //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Invalid comparison between Unknown and I4 //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Invalid comparison between Unknown and I4 //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Invalid comparison between Unknown and I4 //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Invalid comparison between Unknown and I4 if (IsCapturedHammer && !PowerScalesWithFloors) { DamageToEnemies = 60f; DoesBulletsOnImpact = true; DoGoopOnImpact = true; MinTimeBetweenAttacks = 1.25f; MaxTimeBetweenAttacks = 2.5f; } else { if (!PowerScalesWithFloors) { return; } ValidTilesets tilesetId = GameManager.Instance.Dungeon.tileIndices.tilesetId; if ((int)tilesetId <= 32) { if ((int)tilesetId <= 8) { switch (tilesetId - 1) { default: if ((int)tilesetId != 8) { break; } DamageToEnemies = 45f; DoesBulletsOnImpact = false; DoGoopOnImpact = false; return; case 2: break; case 1: DamageToEnemies = 30f; DoesBulletsOnImpact = false; DoGoopOnImpact = false; return; case 3: DamageToEnemies = 40f; DoesBulletsOnImpact = false; DoGoopOnImpact = false; return; case 0: DamageToEnemies = 35f; DoesBulletsOnImpact = false; DoGoopOnImpact = false; return; } } else { if ((int)tilesetId == 16) { DamageToEnemies = 40f; DoesBulletsOnImpact = false; DoGoopOnImpact = true; return; } if ((int)tilesetId == 32) { DamageToEnemies = 45f; DoesBulletsOnImpact = false; DoGoopOnImpact = true; return; } } } else if ((int)tilesetId <= 128) { if ((int)tilesetId == 64) { DamageToEnemies = 60f; DoesBulletsOnImpact = true; DoGoopOnImpact = true; MinTimeBetweenAttacks = 1.25f; MaxTimeBetweenAttacks = 2.5f; return; } if ((int)tilesetId == 128) { DamageToEnemies = 65f; DoesBulletsOnImpact = true; DoGoopOnImpact = true; MinTimeBetweenAttacks = 1.25f; MaxTimeBetweenAttacks = 2.5f; return; } } else { if ((int)tilesetId == 1024) { DamageToEnemies = 57f; DoesBulletsOnImpact = false; DoGoopOnImpact = true; return; } if ((int)tilesetId == 2048) { DamageToEnemies = 55f; DoesBulletsOnImpact = false; DoGoopOnImpact = true; return; } if ((int)tilesetId == 32768) { DamageToEnemies = 50f; DoesBulletsOnImpact = false; DoGoopOnImpact = true; return; } } DamageToEnemies = 40f; DoesBulletsOnImpact = false; DoGoopOnImpact = false; } } private void HandleAnimationEvent(tk2dSpriteAnimator sourceAnimator, tk2dSpriteAnimationClip sourceClip, int sourceFrame) { if (State == ExpandHammerState.Swing && sourceClip.frames[sourceFrame].eventInfo == "impact") { State = ExpandHammerState.Grounded; } } private void OnPostRigidbodyMovement() { if ((TracksPlayer | TracksRandomEnemy) && (State == ExpandHammerState.PreSwing || (m_additionalTrackTimer > 0f && State == ExpandHammerState.Swing))) { if (TracksPlayer) { UpdatePosition(); } else if (TracksRandomEnemy) { UpdatePosition(m_SelectedEnemy); } else { UpdatePosition(); } } } private void UpdatePosition(AIActor targetActor = null) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: 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_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0089: 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_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_011a: 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_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) Vector2 unitBottomLeft = ParentRoom.area.UnitBottomLeft; Vector2 unitTopRight = ParentRoom.area.UnitTopRight; if (TracksRandomEnemy) { if ((Object)(object)targetActor != (Object)null && (Object)(object)((BraveBehaviour)targetActor).healthHaver != (Object)null && !((BraveBehaviour)targetActor).healthHaver.IsDead) { if (Object.op_Implicit((Object)(object)((BraveBehaviour)targetActor).specRigidbody)) { m_LastKnownPosition = ((BraveBehaviour)targetActor).specRigidbody.GetUnitCenter((ColliderType)1); } else { m_LastKnownPosition = ((BraveBehaviour)targetActor).sprite.WorldCenter; } } } else { m_LastKnownPosition = ((GameActor)m_targetPlayer).CenterPosition; } if (!IsCapturedHammer) { m_LastKnownPosition = BraveMathCollege.ClampToBounds(m_LastKnownPosition, unitBottomLeft + Vector2.one, unitTopRight - Vector2.one); } ((BraveBehaviour)this).transform.position = Vector2.op_Implicit(dfVectorExtensions.Quantize(m_LastKnownPosition - m_targetOffset, 0.0625f)); if (Object.op_Implicit((Object)(object)StaticTarget)) { ((Component)StaticTarget).gameObject.transform.parent.position = Vector2.op_Implicit(((GameActor)m_targetPlayer).CenterPosition); ((tk2dBaseSprite)StaticTarget).UpdateZDepth(); } ((BraveBehaviour)TargetAnimator).sprite.UpdateZDepth(); ((BraveBehaviour)this).sprite.UpdateZDepth(); } protected void HandleForgeHammerPostProcessProjectile(Projectile obj) { if (!Object.op_Implicit((Object)(object)obj)) { return; } if (!BulletIsAlreadlyFriendly) { obj.collidesWithPlayer = false; obj.collidesWithEnemies = true; obj.TreatedAsNonProjectileForChallenge = true; } if (Object.op_Implicit((Object)(object)Owner)) { if (PassiveItem.IsFlagSetForCharacter(Owner, typeof(BattleStandardItem))) { ProjectileData baseData = obj.baseData; baseData.damage *= BattleStandardItem.BattleStandardCompanionDamageMultiplier; } if (Object.op_Implicit((Object)(object)((GameActor)Owner).CurrentGun) && ((GameActor)Owner).CurrentGun.LuteCompanionBuffActive) { ProjectileData baseData2 = obj.baseData; baseData2.damage *= 2f; obj.RuntimeUpdateScale(1f / obj.AdditionalScaleMultiplier); obj.RuntimeUpdateScale(1.75f); } ProjectileData baseData3 = obj.baseData; baseData3.damage *= 5f; Owner.DoPostProcessProjectile(obj); } else { ProjectileData baseData4 = obj.baseData; baseData4.damage *= 4f; } } private void ForceStop() { if (Object.op_Implicit((Object)(object)TargetAnimator)) { ((BraveBehaviour)TargetAnimator).renderer.enabled = false; } if (Object.op_Implicit((Object)(object)HitEffectAnimator)) { ((BraveBehaviour)HitEffectAnimator).renderer.enabled = false; } if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).sprite)) { ((BraveBehaviour)((BraveBehaviour)this).sprite).renderer.enabled = false; } if (Object.op_Implicit((Object)(object)ShadowAnimator)) { ((BraveBehaviour)ShadowAnimator).renderer.enabled = false; } ((Behaviour)((BraveBehaviour)this).specRigidbody).enabled = false; if (Object.op_Implicit((Object)(object)m_bulletSource)) { m_bulletSource.ForceStop(); } State = ExpandHammerState.Gone; } protected override void OnDestroy() { ExpandStaticReferenceManager.AllFriendlyHammers.Remove(this); if (Object.op_Implicit((Object)(object)StaticTarget)) { Object.Destroy((Object)(object)((Component)((BraveBehaviour)StaticTarget).transform.parent).gameObject); } ((DungeonPlaceableBehaviour)this).OnDestroy(); } } public class ExpandThwompManager : BraveBehaviour { public bool destroyOnRoomDeparture; public bool inactiveWhilePlayerOutsideRoom; private RoomHandler m_StartRoom; public ExpandThwompManager() { destroyOnRoomDeparture = true; inactiveWhilePlayerOutsideRoom = true; } private void Start() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) m_StartRoom = Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)((BraveBehaviour)this).aiActor).transform.position); } private void Update() { if (destroyOnRoomDeparture) { ((MonoBehaviour)this).StartCoroutine(CheckCurrentRoom()); } if (inactiveWhilePlayerOutsideRoom) { CheckPlayerRoom(); } } private void CheckPlayerRoom() { if ((((DungeonPlaceableBehaviour)GameManager.Instance.PrimaryPlayer).GetAbsoluteParentRoom() == null) | (((DungeonPlaceableBehaviour)GameManager.Instance.PrimaryPlayer).GetAbsoluteParentRoom() != m_StartRoom)) { ((Behaviour)((BraveBehaviour)((BraveBehaviour)this).aiActor).behaviorSpeculator).enabled = false; } else { ((Behaviour)((BraveBehaviour)((BraveBehaviour)this).aiActor).behaviorSpeculator).enabled = true; } } private IEnumerator CheckCurrentRoom() { if ((Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)((BraveBehaviour)this).aiActor).transform.position) == null) | (Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)((BraveBehaviour)this).aiActor).transform.position) != m_StartRoom)) { destroyOnRoomDeparture = false; if (((BraveBehaviour)this).healthHaver.PreventAllDamage) { ((BraveBehaviour)this).healthHaver.PreventAllDamage = false; } if (((BraveBehaviour)this).aiActor.CollisionDamage > 0f) { ((BraveBehaviour)this).aiActor.CollisionDamage = 0f; } if (((BraveBehaviour)this).aiActor.CollisionKnockbackStrength > 0f) { ((BraveBehaviour)this).aiActor.CollisionKnockbackStrength = 0f; } ((BraveBehaviour)this).healthHaver.ApplyDamage(100000f, Vector2.zero, "Telefrag", (CoreDamageTypes)0, (DamageCategory)0, true, (PixelCollider)null, false); } yield break; } protected override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); } } public class ExpandGlitchedSuperReaperController : BraveBehaviour { private static ExpandGlitchedSuperReaperController m_instance; public static bool PreventShooting; public BulletScriptSelector BulletScript; public Transform ShootPoint; public bool becomesBlackPhantom; public float MinSpeed; public float MaxSpeed; public float MinSpeedDistance; public float MaxSpeedDistance; [NonSerialized] public Vector2 knockbackComponent; private PlayerController m_currentTargetPlayer; private int c_particlesPerSecond; public static ExpandGlitchedSuperReaperController Instance => m_instance; public ExpandGlitchedSuperReaperController() { //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) MinSpeed = 3f; MaxSpeed = 6f; MinSpeedDistance = 10f; MaxSpeedDistance = 50f; c_particlesPerSecond = 50; knockbackComponent = Vector2.zero; becomesBlackPhantom = false; } private void Start() { //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Invalid comparison between Unknown and I4 m_instance = this; ShootPoint = ((BraveBehaviour)((BraveBehaviour)this).aiActor).transform; ((BraveBehaviour)this).aiAnimator.PlayUntilCancelled("idle", false, (string)null, -1f, false); ((BraveBehaviour)this).aiAnimator.PlayUntilFinished("intro", false, (string)null, -1f, false); ((BraveBehaviour)this).specRigidbody.RegisterSpecificCollisionException(((BraveBehaviour)GameManager.Instance.PrimaryPlayer).specRigidbody); ((BraveBehaviour)this).specRigidbody.PrimaryPixelCollider.Enabled = false; ((BraveBehaviour)this).specRigidbody.CollideWithTileMap = false; ((BraveBehaviour)this).healthHaver.SetHealthMaximum(150f, (float?)null, false); ((BraveBehaviour)this).healthHaver.PreventAllDamage = false; ((GameActor)((BraveBehaviour)this).aiActor).actorTypes = (CoreActorTypes)2; ((Component)((BraveBehaviour)this).healthHaver).gameObject.AddComponent(); ((OnDeathBehavior)((Component)((BraveBehaviour)this).healthHaver).GetComponent()).deathType = (DeathType)1; AttackBehaviorBase obj = ((BraveBehaviour)this).behaviorSpeculator.AttackBehaviors[1]; ((BasicAttackBehavior)((obj is TeleportBehavior) ? obj : null)).MaxUsages = 1; if ((int)GameManager.Instance.CurrentGameType == 1) { ((BraveBehaviour)this).specRigidbody.RegisterSpecificCollisionException(((BraveBehaviour)GameManager.Instance.SecondaryPlayer).specRigidbody); } if (becomesBlackPhantom) { ((BraveBehaviour)this).aiActor.BecomeBlackPhantom(); } if (((Component)((BraveBehaviour)this).aiActor).GetComponentsInChildren(true) != null) { float glitchInterval = Random.Range(0.02f, 0.06f); float dispProbability = Random.Range(0.1f, 0.16f); float dispIntensity = Random.Range(0.1f, 0.4f); float colorProbability = Random.Range(0.05f, 0.2f); float colorIntensity = Random.Range(0.1f, 0.25f); tk2dBaseSprite[] componentsInChildren = ((Component)((BraveBehaviour)this).aiActor).GetComponentsInChildren(); foreach (tk2dBaseSprite sprite in componentsInChildren) { ExpandShaders.Instance.ApplyGlitchShader(sprite, usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, colorProbability, colorIntensity); } } m_currentTargetPlayer = GameManager.Instance.GetRandomActivePlayer(); } protected override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); m_instance = null; } private void Update() { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Invalid comparison between Unknown and I4 //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Invalid comparison between Unknown and I4 //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Invalid comparison between Unknown and I4 if ((int)GameManager.Instance.CurrentLevelOverrideState != 4 && (int)GameManager.Instance.CurrentLevelOverrideState != 5 && (int)GameManager.Instance.CurrentLevelOverrideState != 1 && !BossKillCam.BossDeathCamRunning && !GameManager.Instance.PreventPausing) { if (TimeTubeCreditsController.IsTimeTubing) { ((Component)this).gameObject.SetActive(false); return; } HandleMotion(); UpdateBlackPhantomParticles(); } } private void UpdateBlackPhantomParticles() { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Invalid comparison between Unknown and I4 //IL_0045: 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_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0065: 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_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007e: 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_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) if ((int)GameManager.Options.ShaderQuality != 0 && (int)GameManager.Options.ShaderQuality != 3 && !((BraveBehaviour)this).aiAnimator.IsPlaying("intro") && !becomesBlackPhantom) { Vector3 val = Vector2Extensions.ToVector3ZisY(((BraveBehaviour)this).specRigidbody.UnitBottomLeft, 0f); Vector3 val2 = Vector2Extensions.ToVector3ZisY(((BraveBehaviour)this).specRigidbody.UnitTopRight, 0f); float num = (val2.y - val.y) * (val2.x - val.x); float num2 = (float)c_particlesPerSecond * num; int num3 = Mathf.CeilToInt(Mathf.Max(1f, num2 * BraveTime.DeltaTime)); Vector3 val3 = val; Vector3 val4 = val2; Vector3 up = Vector3.up; float num4 = 120f; float num5 = 0.5f; float? num6 = Random.Range(1f, 1.65f); GlobalSparksDoer.DoRandomParticleBurst(num3, val3, val4, up, num4, num5, (float?)null, num6, (Color?)null, (SparksType)1); } } private void HandleMotion() { //IL_0006: 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_0067: 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_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) ((BraveBehaviour)this).specRigidbody.Velocity = Vector2.zero; if (!((BraveBehaviour)this).aiAnimator.IsPlaying("intro") && !((Object)(object)m_currentTargetPlayer == (Object)null)) { if (((BraveBehaviour)m_currentTargetPlayer).healthHaver.IsDead || m_currentTargetPlayer.IsGhost) { m_currentTargetPlayer = GameManager.Instance.GetRandomActivePlayer(); } Vector2 val = ((GameActor)m_currentTargetPlayer).CenterPosition - ((BraveBehaviour)this).specRigidbody.UnitCenter; float magnitude = ((Vector2)(ref val)).magnitude; float num = Mathf.Lerp(MinSpeed, MaxSpeed, (magnitude - MinSpeedDistance) / (MaxSpeedDistance - MinSpeedDistance)); ((BraveBehaviour)this).specRigidbody.Velocity = ((Vector2)(ref val)).normalized * num; SpeculativeRigidbody specRigidbody = ((BraveBehaviour)this).specRigidbody; specRigidbody.Velocity += knockbackComponent; } } } internal class ExpandTripleTroubleChallengeComponent : ChallengeModifier { public bool ReplaceReinforcementWaves; public float AlternateEnemySpawnOdds; public ExpandTripleTroubleChallengeComponent() { base.DisplayName = "Triple Trouble!"; base.AlternateLanguageDisplayName = string.Empty; base.AtlasSpriteName = "Big_Boss_icon_001"; base.ValidInBossChambers = true; base.MutuallyExclusive = new List(0); ReplaceReinforcementWaves = true; AlternateEnemySpawnOdds = 0.5f; } private void Start() { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Invalid comparison between Unknown and I4 //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Invalid comparison between Unknown and I4 //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) if (((int)GameManager.Instance.CurrentLevelOverrideState == 1) | GameManager.Instance.IsLoadingLevel | Dungeon.IsGenerating) { return; } RoomHandler currentRoom = GameManager.Instance.BestActivePlayer.CurrentRoom; if (currentRoom == null || (int)currentRoom.area.PrototypeRoomCategory != 3) { return; } AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(BraveUtility.RandomElement(new List { "ea40fcc863d34b0088f490f4e57f8913", "c00390483f394a849c36143eb878998f" })), new IntVector2(18, 19) + currentRoom.area.basePosition, currentRoom, true, (AwakenAnimationType)0, true).HandleReinforcementFallIntoRoom(1f); if (!ReplaceReinforcementWaves) { return; } List list = ReflectionHelpers.ReflectGetField>(typeof(RoomHandler), "remainingReinforcementLayers", currentRoom); if (list == null) { return; } string enemyBehaviourGuid = "70216cae6c1346309d86d4a0b4603045"; string enemyBehaviourGuid2 = "70216cae6c1346309d86d4a0b4603045"; if (Random.value <= AlternateEnemySpawnOdds) { enemyBehaviourGuid = "05cb719e0178478685dc610f8b3e8bfc"; enemyBehaviourGuid2 = "5861e5a077244905a8c25c2b7b4d6ebb"; } if (list[0] != null) { if (list[0].placedObjects[0] != null) { list[0].placedObjects[0].enemyBehaviourGuid = enemyBehaviourGuid; } if (list[0].placedObjects[1] != null) { list[0].placedObjects[1].enemyBehaviourGuid = enemyBehaviourGuid2; } if (list[0].placedObjects[2] != null) { list[0].placedObjects[2].enemyBehaviourGuid = enemyBehaviourGuid; } if (list[0].placedObjects[3] != null) { list[0].placedObjects[3].enemyBehaviourGuid = enemyBehaviourGuid2; } } if (list[1] != null) { if (list[1].placedObjects[0] != null) { list[1].placedObjects[0].enemyBehaviourGuid = enemyBehaviourGuid2; } if (list[1].placedObjects[1] != null) { list[1].placedObjects[1].enemyBehaviourGuid = enemyBehaviourGuid; } if (list[1].placedObjects[2] != null) { list[1].placedObjects[2].enemyBehaviourGuid = enemyBehaviourGuid2; } if (list[1].placedObjects[3] != null) { list[1].placedObjects[3].enemyBehaviourGuid = enemyBehaviourGuid; } } } private void Update() { } private void LateUpdate() { } private void OnDestroy() { } } public class ExpandZoneControlChallengeComponent : ChallengeModifier { public DungeonPlaceable BoxPlaceable; public float AuraRadius; public float WinTimer; public float DecayScale; public int MinBoxes; public int ExtraBoxAboveArea; public int ExtraBoxEveryArea; private FlippableCover[] m_instanceBox; private float m_timeElapsed; private void Start() { //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Expected O, but got Unknown //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_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) RoomHandler currentRoom = GameManager.Instance.PrimaryPlayer.CurrentRoom; int num = MinBoxes; int count = currentRoom.Cells.Count; for (count -= ExtraBoxAboveArea; count > 0; count -= ExtraBoxEveryArea) { num++; } num = Mathf.Clamp(num, MinBoxes, 11); m_instanceBox = (FlippableCover[])(object)new FlippableCover[num]; CellValidator val = (CellValidator)delegate(IntVector2 c) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) CellData val3 = GameManager.Instance.Dungeon.data[c]; if (val3 == null || val3.containsTrap || val3.isOccupied) { return false; } for (int j = 0; j < m_instanceBox.Length; j++) { if ((Object)(object)m_instanceBox[j] != (Object)null && Vector2.Distance(((BraveBehaviour)m_instanceBox[j]).specRigidbody.UnitCenter, ((IntVector2)(ref c)).ToCenterVector2()) < 5f) { return false; } } return true; }; for (int i = 0; i < num; i++) { IntVector2? randomAvailableCell = currentRoom.GetRandomAvailableCell((IntVector2?)new IntVector2(4, 4), (CellTypes?)(CellTypes)2, false, val); if (randomAvailableCell.HasValue) { GameObject val2 = BoxPlaceable.InstantiateObject(currentRoom, randomAvailableCell.Value + IntVector2.One - currentRoom.area.basePosition, false, false); m_instanceBox[i] = val2.GetComponent(); ((Component)m_instanceBox[i]).GetComponentInChildren().Play("moving_box_in"); PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(((BraveBehaviour)m_instanceBox[i]).specRigidbody, (int?)null, false); } } } private void UpdateAnimation(tk2dSpriteAnimator anim, bool playerRadius) { if (!anim.IsPlaying("moving_box_in") && !anim.IsPlaying("moving_box_out")) { if (playerRadius && !anim.IsPlaying("moving_box_open")) { anim.Play("moving_box_open"); } if (!playerRadius && !anim.IsPlaying("moving_box_close")) { anim.Play("moving_box_close"); } } } private void Update() { //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0088: 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_01ce: Unknown result type (might be due to invalid IL or missing references) bool flag = false; for (int i = 0; i < GameManager.Instance.AllPlayers.Length; i++) { GameManager.Instance.AllPlayers[i].IsGunLocked = true; } for (int j = 0; j < m_instanceBox.Length; j++) { if (!Object.op_Implicit((Object)(object)m_instanceBox[j])) { continue; } flag = true; bool playerRadius = false; for (int k = 0; k < GameManager.Instance.AllPlayers.Length; k++) { PlayerController val = GameManager.Instance.AllPlayers[k]; if ((Vector2.Distance(((BraveBehaviour)m_instanceBox[j]).specRigidbody.UnitCenter, ((GameActor)val).CenterPosition) < AuraRadius) | (Vector3Extensions.GetAbsoluteRoom(((GameActor)val).CenterPosition) != Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)m_instanceBox[j]).transform.position))) { val.IsGunLocked = false; m_timeElapsed = Mathf.Clamp(m_timeElapsed + BraveTime.DeltaTime, 0f, WinTimer + 1f); playerRadius = true; } else { m_timeElapsed = Mathf.Clamp(m_timeElapsed - BraveTime.DeltaTime * DecayScale, 0f, WinTimer + 1f); } } UpdateAnimation(((BraveBehaviour)m_instanceBox[j]).spriteAnimator, playerRadius); } if (!flag) { for (int l = 0; l < GameManager.Instance.AllPlayers.Length; l++) { GameManager.Instance.AllPlayers[l].IsGunLocked = false; } } float num = Mathf.Lerp(0.01f, 1f, m_timeElapsed / WinTimer); for (int m = 0; m < m_instanceBox.Length; m++) { if (Object.op_Implicit((Object)(object)m_instanceBox[m])) { ((tk2dBaseSprite)m_instanceBox[m].outlineEast.GetComponent()).scale = new Vector3(num, num, num); } } if (m_timeElapsed >= WinTimer) { PopBox(); } } private void PopBox() { if (!GameManager.HasInstance || !Object.op_Implicit((Object)(object)GameManager.Instance.Dungeon)) { return; } for (int i = 0; i < m_instanceBox.Length; i++) { if (Object.op_Implicit((Object)(object)m_instanceBox[i])) { ((MonoBehaviour)GameManager.Instance.Dungeon).StartCoroutine(HandleBoxPop(m_instanceBox[i])); m_instanceBox[i] = null; } } } private IEnumerator HandleBoxPop(FlippableCover box) { float elapsed = 0f; float duration = ((BraveBehaviour)box).spriteAnimator.GetClipByName("moving_box_out").BaseClipLength; ((BraveBehaviour)box).spriteAnimator.Play("moving_box_out"); while (elapsed < duration) { elapsed += BraveTime.DeltaTime; float num = Mathf.SmoothStep(0f, 1f, elapsed / duration); if (Object.op_Implicit((Object)(object)box.outlineNorth)) { ((tk2dBaseSprite)box.outlineNorth.GetComponent()).scale = Vector3.Lerp(Vector3.one, Vector3.zero, num); } if (Object.op_Implicit((Object)(object)box.outlineEast)) { ((tk2dBaseSprite)box.outlineEast.GetComponent()).scale = Vector3.Lerp(Vector3.one, Vector3.zero, num); } yield return null; } LootEngine.DoDefaultPurplePoof(((BraveBehaviour)box).specRigidbody.UnitBottomCenter, false); Object.Destroy((Object)(object)((Component)box).gameObject); } private void OnDestroy() { for (int i = 0; i < GameManager.Instance.AllPlayers.Length; i++) { GameManager.Instance.AllPlayers[i].IsGunLocked = false; } PopBox(); } } public class ExpandSpawnGlitchEnemyOnDeath : OnDeathBehavior { public enum EnemySelection { All = 10, Random = 20 } public enum SpawnPosition { InsideCollider = 0, ScreenEdge = 1, InsideRadius = 20 } [EnemyIdentifier] public string[] enemyGuidsToSpawn = new string[2] { "2d4f8b5404614e7d8b235006acde427a", "042edb1dfb614dc385d5ad1b010f2ee3" }; public bool useGlitchedActorPrefab; public bool IsGlitchedLJ; private int ActorPrefabSpawnCount; public GameObject ActorObjectTarget; public GameObject ActorOverrideSource; public float chanceToSpawn; public string spawnVfx; [Header("Enemies to Spawn")] public EnemySelection enemySelection; [ShowInInspectorIf("ShowRandomPrams", true)] public int minSpawnCount; [ShowInInspectorIf("ShowRandomPrams", true)] public int maxSpawnCount; [FormerlySerializedAs("spawnType")] [Header("Placement")] public SpawnPosition spawnPosition; [ShowInInspectorIf("ShowInsideColliderParams", true)] public int extraPixelWidth; [ShowInInspectorIf("ShowInsideRadiusParams", true)] public float spawnRadius; [Header("Spawn Parameters")] public float guaranteedSpawnGenerations; public string spawnAnim; public string LJSpawnAnim; public bool spawnsCanDropLoot; public bool DoNormalReinforcement; private bool m_hasTriggered; public ExpandSpawnGlitchEnemyOnDeath() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) base.deathType = (DeathType)0; base.preDeathDelay = 0f; chanceToSpawn = 1f; base.triggerName = ""; spawnVfx = ""; enemySelection = EnemySelection.All; spawnPosition = SpawnPosition.InsideCollider; extraPixelWidth = 7; minSpawnCount = 1; maxSpawnCount = 1; spawnRadius = 1f; guaranteedSpawnGenerations = 0f; spawnAnim = "awaken"; spawnsCanDropLoot = true; DoNormalReinforcement = false; useGlitchedActorPrefab = true; IsGlitchedLJ = true; ActorPrefabSpawnCount = 1; } private bool ShowRandomPrams() { return enemySelection == EnemySelection.Random; } private bool ShowInsideColliderParams() { return spawnPosition == SpawnPosition.InsideCollider; } private bool ShowInsideRadiusParams() { return spawnPosition == SpawnPosition.InsideRadius; } public void ManuallyTrigger(Vector2 damageDirection) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) ((OnDeathBehavior)this).OnTrigger(damageDirection); } protected override void OnTrigger(Vector2 damageDirection) { if (m_hasTriggered) { return; } m_hasTriggered = true; if (guaranteedSpawnGenerations <= 0f && chanceToSpawn < 1f && Random.value > chanceToSpawn) { return; } if (!string.IsNullOrEmpty(spawnVfx)) { ((BraveBehaviour)this).aiAnimator.PlayVfx(spawnVfx, (Vector2?)null, (Vector2?)null, (Vector2?)null); } string[] array = null; if (enemySelection == EnemySelection.All) { array = enemyGuidsToSpawn; } else if (enemySelection == EnemySelection.Random) { array = new string[Random.Range(minSpawnCount, maxSpawnCount)]; for (int i = 0; i < array.Length; i++) { array[i] = BraveUtility.RandomElement(enemyGuidsToSpawn); } } SpawnEnemies(array); } private void SpawnEnemies(string[] selectedEnemyGuids) { //IL_0011: 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_041c: Unknown result type (might be due to invalid IL or missing references) //IL_0422: Unknown result type (might be due to invalid IL or missing references) //IL_0427: 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_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0447: Unknown result type (might be due to invalid IL or missing references) //IL_0451: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0977: Unknown result type (might be due to invalid IL or missing references) //IL_097c: Unknown result type (might be due to invalid IL or missing references) //IL_0468: Unknown result type (might be due to invalid IL or missing references) //IL_048b: Unknown result type (might be due to invalid IL or missing references) //IL_0490: Unknown result type (might be due to invalid IL or missing references) //IL_075d: Unknown result type (might be due to invalid IL or missing references) //IL_0763: Unknown result type (might be due to invalid IL or missing references) //IL_099a: Unknown result type (might be due to invalid IL or missing references) //IL_099c: Unknown result type (might be due to invalid IL or missing references) //IL_09a7: Unknown result type (might be due to invalid IL or missing references) //IL_09ac: Unknown result type (might be due to invalid IL or missing references) //IL_09b1: Unknown result type (might be due to invalid IL or missing references) //IL_09b8: Unknown result type (might be due to invalid IL or missing references) //IL_09be: Invalid comparison between Unknown and I4 //IL_07ad: Unknown result type (might be due to invalid IL or missing references) //IL_07b3: Unknown result type (might be due to invalid IL or missing references) //IL_07b8: Unknown result type (might be due to invalid IL or missing references) //IL_07bd: Unknown result type (might be due to invalid IL or missing references) //IL_07ce: Unknown result type (might be due to invalid IL or missing references) //IL_07d4: Unknown result type (might be due to invalid IL or missing references) //IL_07d9: Unknown result type (might be due to invalid IL or missing references) //IL_07de: Unknown result type (might be due to invalid IL or missing references) //IL_07e7: Unknown result type (might be due to invalid IL or missing references) //IL_07ed: Unknown result type (might be due to invalid IL or missing references) //IL_07f2: Unknown result type (might be due to invalid IL or missing references) //IL_07fb: Unknown result type (might be due to invalid IL or missing references) //IL_0801: Unknown result type (might be due to invalid IL or missing references) //IL_0806: Unknown result type (might be due to invalid IL or missing references) //IL_080b: Unknown result type (might be due to invalid IL or missing references) //IL_0810: Unknown result type (might be due to invalid IL or missing references) //IL_081d: Unknown result type (might be due to invalid IL or missing references) //IL_0824: Expected O, but got Unknown //IL_0844: Unknown result type (might be due to invalid IL or missing references) //IL_085a: Unknown result type (might be due to invalid IL or missing references) //IL_085f: Unknown result type (might be due to invalid IL or missing references) //IL_0864: Unknown result type (might be due to invalid IL or missing references) //IL_0869: Unknown result type (might be due to invalid IL or missing references) //IL_0888: Unknown result type (might be due to invalid IL or missing references) //IL_089e: Unknown result type (might be due to invalid IL or missing references) //IL_04a9: Unknown result type (might be due to invalid IL or missing references) //IL_04af: 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_0a53: Unknown result type (might be due to invalid IL or missing references) //IL_0a56: Unknown result type (might be due to invalid IL or missing references) //IL_09c3: Unknown result type (might be due to invalid IL or missing references) //IL_09c8: Unknown result type (might be due to invalid IL or missing references) //IL_08fe: Unknown result type (might be due to invalid IL or missing references) //IL_090f: Unknown result type (might be due to invalid IL or missing references) //IL_0914: Unknown result type (might be due to invalid IL or missing references) //IL_0919: Unknown result type (might be due to invalid IL or missing references) //IL_091b: Unknown result type (might be due to invalid IL or missing references) //IL_0920: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_0a85: Unknown result type (might be due to invalid IL or missing references) //IL_0a8f: Unknown result type (might be due to invalid IL or missing references) //IL_0a94: Unknown result type (might be due to invalid IL or missing references) //IL_0a99: Unknown result type (might be due to invalid IL or missing references) //IL_0aa2: Unknown result type (might be due to invalid IL or missing references) //IL_0aa4: Unknown result type (might be due to invalid IL or missing references) //IL_09fc: Unknown result type (might be due to invalid IL or missing references) //IL_0a0b: Unknown result type (might be due to invalid IL or missing references) //IL_0a10: Unknown result type (might be due to invalid IL or missing references) //IL_0a15: Unknown result type (might be due to invalid IL or missing references) //IL_0a21: Unknown result type (might be due to invalid IL or missing references) //IL_0a30: Unknown result type (might be due to invalid IL or missing references) //IL_0a35: Unknown result type (might be due to invalid IL or missing references) //IL_0a3a: Unknown result type (might be due to invalid IL or missing references) //IL_0a3c: Unknown result type (might be due to invalid IL or missing references) //IL_0a3e: Unknown result type (might be due to invalid IL or missing references) //IL_0a43: Unknown result type (might be due to invalid IL or missing references) //IL_0a48: Unknown result type (might be due to invalid IL or missing references) //IL_04ed: Unknown result type (might be due to invalid IL or missing references) //IL_04f6: Unknown result type (might be due to invalid IL or missing references) //IL_0502: Unknown result type (might be due to invalid IL or missing references) //IL_0507: Unknown result type (might be due to invalid IL or missing references) //IL_050c: Unknown result type (might be due to invalid IL or missing references) //IL_0511: Unknown result type (might be due to invalid IL or missing references) //IL_0516: Unknown result type (might be due to invalid IL or missing references) //IL_0518: Unknown result type (might be due to invalid IL or missing references) //IL_0525: Unknown result type (might be due to invalid IL or missing references) //IL_0536: Unknown result type (might be due to invalid IL or missing references) //IL_054b: Unknown result type (might be due to invalid IL or missing references) //IL_0550: Unknown result type (might be due to invalid IL or missing references) //IL_0555: Unknown result type (might be due to invalid IL or missing references) //IL_055e: Unknown result type (might be due to invalid IL or missing references) //IL_0560: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_0165: 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_057d: Unknown result type (might be due to invalid IL or missing references) //IL_0582: Unknown result type (might be due to invalid IL or missing references) //IL_0598: Unknown result type (might be due to invalid IL or missing references) //IL_05aa: Unknown result type (might be due to invalid IL or missing references) //IL_05af: Unknown result type (might be due to invalid IL or missing references) //IL_05b4: Unknown result type (might be due to invalid IL or missing references) //IL_05b6: Unknown result type (might be due to invalid IL or missing references) //IL_05c8: Unknown result type (might be due to invalid IL or missing references) //IL_05cd: Unknown result type (might be due to invalid IL or missing references) //IL_05d2: Unknown result type (might be due to invalid IL or missing references) //IL_05d4: Unknown result type (might be due to invalid IL or missing references) //IL_05d6: Unknown result type (might be due to invalid IL or missing references) //IL_05f3: Unknown result type (might be due to invalid IL or missing references) //IL_05ff: Unknown result type (might be due to invalid IL or missing references) //IL_0604: Unknown result type (might be due to invalid IL or missing references) //IL_0609: Unknown result type (might be due to invalid IL or missing references) //IL_060e: Unknown result type (might be due to invalid IL or missing references) //IL_0613: Unknown result type (might be due to invalid IL or missing references) //IL_0624: 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_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_01d0: Unknown result type (might be due to invalid IL or missing references) //IL_01d5: 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_01e4: Unknown result type (might be due to invalid IL or missing references) //IL_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_020a: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_0214: Unknown result type (might be due to invalid IL or missing references) //IL_021d: Unknown result type (might be due to invalid IL or missing references) //IL_021f: Unknown result type (might be due to invalid IL or missing references) //IL_0660: Unknown result type (might be due to invalid IL or missing references) //IL_0665: Unknown result type (might be due to invalid IL or missing references) //IL_0667: Unknown result type (might be due to invalid IL or missing references) //IL_0671: Unknown result type (might be due to invalid IL or missing references) //IL_0676: Unknown result type (might be due to invalid IL or missing references) //IL_0645: Unknown result type (might be due to invalid IL or missing references) //IL_064a: 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_0247: Unknown result type (might be due to invalid IL or missing references) //IL_025d: Unknown result type (might be due to invalid IL or missing references) //IL_026f: Unknown result type (might be due to invalid IL or missing references) //IL_0274: Unknown result type (might be due to invalid IL or missing references) //IL_0279: Unknown result type (might be due to invalid IL or missing references) //IL_027b: Unknown result type (might be due to invalid IL or missing references) //IL_028d: Unknown result type (might be due to invalid IL or missing references) //IL_0292: Unknown result type (might be due to invalid IL or missing references) //IL_0297: Unknown result type (might be due to invalid IL or missing references) //IL_0299: Unknown result type (might be due to invalid IL or missing references) //IL_029b: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02ca: Unknown result type (might be due to invalid IL or missing references) //IL_02cf: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Unknown result type (might be due to invalid IL or missing references) //IL_02de: Unknown result type (might be due to invalid IL or missing references) //IL_02ef: Unknown result type (might be due to invalid IL or missing references) //IL_032a: Unknown result type (might be due to invalid IL or missing references) //IL_032f: Unknown result type (might be due to invalid IL or missing references) //IL_0331: Unknown result type (might be due to invalid IL or missing references) //IL_033b: Unknown result type (might be due to invalid IL or missing references) //IL_0340: Unknown result type (might be due to invalid IL or missing references) //IL_030f: Unknown result type (might be due to invalid IL or missing references) //IL_0314: Unknown result type (might be due to invalid IL or missing references) if (useGlitchedActorPrefab) { IntVector2 val = Vector2Extensions.ToIntVector2(((BraveBehaviour)this).specRigidbody.UnitCenter, (VectorConversions)0); if ((((GameActor)((BraveBehaviour)this).aiActor).IsFalling && !IsGlitchedLJ) || (GameManager.Instance.Dungeon.CellIsPit(Vector2Extensions.ToVector3ZUp(((BraveBehaviour)this).specRigidbody.UnitCenter, 0f)) && !IsGlitchedLJ)) { return; } RoomHandler roomFromPosition = GameManager.Instance.Dungeon.GetRoomFromPosition(val); List list = new List(); list.Add(((BraveBehaviour)this).specRigidbody); Vector2 unitBottomLeft = ((BraveBehaviour)this).specRigidbody.UnitBottomLeft; for (int i = 0; i < ActorPrefabSpawnCount; i++) { if (IsGlitchedLJ) { if (Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)this).transform.position) != null) { RoomHandler absoluteRoom = Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)this).transform.position); IntVector2 spawnLocation = Vector2Extensions.ToIntVector2(((BraveBehaviour)this).specRigidbody.UnitCenter, (VectorConversions)0) - absoluteRoom.area.basePosition; ExpandEnemyCorruptor.Instance.SpawnGlitchedSuperReaper(absoluteRoom, spawnLocation); return; } continue; } if ((Object)(object)ActorObjectTarget == (Object)null) { return; } AwakenAnimationType val2 = (AwakenAnimationType)0; AIActor val3 = null; GameObject val4 = Object.Instantiate(ActorObjectTarget); bool explodesOnDeath = false; bool spawnsGlitchedObjectOnDeath = false; if (Random.value <= 0.25f) { explodesOnDeath = true; } if (Random.value <= 0.15f) { spawnsGlitchedObjectOnDeath = true; } val3 = AIActor.Spawn(ExpandEnemyCorruptor.Instance.GenerateGlitchedActorPrefab(val4, ActorOverrideSource, explodesOnDeath, spawnsGlitchedObjectOnDeath), Vector2Extensions.ToIntVector2(((BraveBehaviour)this).specRigidbody.UnitCenter, (VectorConversions)0), roomFromPosition, true, val2, true); if ((Object)(object)val3 == (Object)null) { return; } if (((BraveBehaviour)this).aiActor.IsBlackPhantom) { val3.BecomeBlackPhantom(); } if (Object.op_Implicit((Object)(object)val3)) { ((BraveBehaviour)val3).specRigidbody.Initialize(); Vector2 val5 = unitBottomLeft - (((BraveBehaviour)val3).specRigidbody.UnitBottomLeft - Vector3Extensions.XY(((BraveBehaviour)val3).transform.position)); Vector2 val6 = val5 + new Vector2(Mathf.Max(0f, ((BraveBehaviour)this).specRigidbody.UnitDimensions.x - ((BraveBehaviour)val3).specRigidbody.UnitDimensions.x), 0f); ((BraveBehaviour)val3).transform.position = Vector2.op_Implicit(Vector2.Lerp(val5, val6, (ActorPrefabSpawnCount != 1) ? ((float)i / ((float)ActorPrefabSpawnCount - 1f)) : 0f)); ((BraveBehaviour)val3).specRigidbody.Reinitialize(); val5 -= new Vector2(PhysicsEngine.PixelToUnit(extraPixelWidth), 0f); val6 += new Vector2(PhysicsEngine.PixelToUnit(extraPixelWidth), 0f); IntVector2 val7 = PhysicsEngine.UnitToPixel(Vector2.Lerp(val5, val6, (ActorPrefabSpawnCount != 1) ? ((float)i / ((float)ActorPrefabSpawnCount - 1f)) : 0.5f) - Vector3Extensions.XY(((BraveBehaviour)val3).transform.position)); CollisionData val8 = null; if (PhysicsEngine.Instance.RigidbodyCastWithIgnores(((BraveBehaviour)val3).specRigidbody, val7, ref val8, true, true, (int?)null, false, list.ToArray())) { val7 = val8.NewPixelsToMove; } CollisionData.Pool.Free(ref val8); Transform transform = ((BraveBehaviour)val3).transform; transform.position += Vector2Extensions.ToVector3ZUp(PhysicsEngine.PixelToUnit(val7), 1f); ((BraveBehaviour)val3).specRigidbody.Reinitialize(); if (i == 0) { ((BraveBehaviour)val3).aiAnimator.FacingDirection = 180f; } else if (i == ActorPrefabSpawnCount - 1) { ((BraveBehaviour)val3).aiAnimator.FacingDirection = 0f; } HandleSpawn(val3); list.Add(((BraveBehaviour)val3).specRigidbody); Object.Destroy((Object)(object)val4); } } if (list.Count <= 0) { return; } for (int j = 0; j < list.Count; j++) { for (int k = 0; k < list.Count; k++) { if (j != k) { list[j].RegisterGhostCollisionException(list[k]); } } } } else if (spawnPosition == SpawnPosition.InsideCollider) { IntVector2 val9 = Vector2Extensions.ToIntVector2(((BraveBehaviour)this).specRigidbody.UnitCenter, (VectorConversions)0); if (((GameActor)((BraveBehaviour)this).aiActor).IsFalling || GameManager.Instance.Dungeon.CellIsPit(Vector2Extensions.ToVector3ZUp(((BraveBehaviour)this).specRigidbody.UnitCenter, 0f))) { return; } RoomHandler roomFromPosition2 = GameManager.Instance.Dungeon.GetRoomFromPosition(val9); List list2 = new List(); list2.Add(((BraveBehaviour)this).specRigidbody); Vector2 unitBottomLeft2 = ((BraveBehaviour)this).specRigidbody.UnitBottomLeft; for (int l = 0; l < selectedEnemyGuids.Length; l++) { AIActor val10 = AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(selectedEnemyGuids[l]), Vector2Extensions.ToIntVector2(((BraveBehaviour)this).specRigidbody.UnitCenter, (VectorConversions)0), roomFromPosition2, false, (AwakenAnimationType)0, true); if (((BraveBehaviour)this).aiActor.IsBlackPhantom) { val10.ForceBlackPhantom = true; } if (Object.op_Implicit((Object)(object)val10)) { ((BraveBehaviour)val10).specRigidbody.Initialize(); Vector2 val11 = unitBottomLeft2 - (((BraveBehaviour)val10).specRigidbody.UnitBottomLeft - Vector3Extensions.XY(((BraveBehaviour)val10).transform.position)); Vector2 val12 = val11 + new Vector2(Mathf.Max(0f, ((BraveBehaviour)this).specRigidbody.UnitDimensions.x - ((BraveBehaviour)val10).specRigidbody.UnitDimensions.x), 0f); ((BraveBehaviour)val10).transform.position = Vector2.op_Implicit(Vector2.Lerp(val11, val12, (selectedEnemyGuids.Length != 1) ? ((float)l / ((float)selectedEnemyGuids.Length - 1f)) : 0f)); ((BraveBehaviour)val10).specRigidbody.Reinitialize(); val11 -= new Vector2(PhysicsEngine.PixelToUnit(extraPixelWidth), 0f); val12 += new Vector2(PhysicsEngine.PixelToUnit(extraPixelWidth), 0f); IntVector2 val13 = PhysicsEngine.UnitToPixel(Vector2.Lerp(val11, val12, (selectedEnemyGuids.Length != 1) ? ((float)l / ((float)selectedEnemyGuids.Length - 1f)) : 0.5f) - Vector3Extensions.XY(((BraveBehaviour)val10).transform.position)); CollisionData val14 = null; if (PhysicsEngine.Instance.RigidbodyCastWithIgnores(((BraveBehaviour)val10).specRigidbody, val13, ref val14, true, true, (int?)null, false, list2.ToArray())) { val13 = val14.NewPixelsToMove; } CollisionData.Pool.Free(ref val14); Transform transform2 = ((BraveBehaviour)val10).transform; transform2.position += Vector2Extensions.ToVector3ZUp(PhysicsEngine.PixelToUnit(val13), 1f); ((BraveBehaviour)val10).specRigidbody.Reinitialize(); if (l == 0) { ((BraveBehaviour)val10).aiAnimator.FacingDirection = 180f; } else if (l == selectedEnemyGuids.Length - 1) { ((BraveBehaviour)val10).aiAnimator.FacingDirection = 0f; } HandleSpawn(val10); list2.Add(((BraveBehaviour)val10).specRigidbody); } } for (int m = 0; m < list2.Count; m++) { for (int n = 0; n < list2.Count; n++) { if (m != n) { list2[m].RegisterGhostCollisionException(list2[n]); } } } } else if (spawnPosition == SpawnPosition.ScreenEdge) { for (int num = 0; num < selectedEnemyGuids.Length; num++) { AIActor orLoadByGuid = EnemyDatabase.GetOrLoadByGuid(selectedEnemyGuids[num]); AIActor spawnedActor = AIActor.Spawn(orLoadByGuid, Vector2Extensions.ToIntVector2(((BraveBehaviour)this).specRigidbody.UnitCenter, (VectorConversions)0), ((BraveBehaviour)this).aiActor.ParentRoom, false, (AwakenAnimationType)0, true); if (!Object.op_Implicit((Object)(object)spawnedActor)) { continue; } Vector2 cameraBottomLeft = Vector2.op_Implicit(BraveUtility.ViewportToWorldpoint(new Vector2(0f, 0f), (ViewportType)1)); Vector2 cameraTopRight = Vector2.op_Implicit(BraveUtility.ViewportToWorldpoint(new Vector2(1f, 1f), (ViewportType)1)); IntVector2 bottomLeft = Vector2Extensions.ToIntVector2(cameraBottomLeft, (VectorConversions)1); IntVector2 topRight = Vector2Extensions.ToIntVector2(cameraTopRight, (VectorConversions)0) - IntVector2.One; CellValidator val15 = (CellValidator)delegate(IntVector2 c) { //IL_0089: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_0017: 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_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) for (int num5 = 0; num5 < spawnedActor.Clearance.x; num5++) { for (int num6 = 0; num6 < spawnedActor.Clearance.y; num6++) { if (GameManager.Instance.Dungeon.data.isTopWall(c.x + num5, c.y + num6)) { return false; } if (GameManager.Instance.Dungeon.data[c.x + num5, c.y + num6].isExitCell) { return false; } } } return c.x >= bottomLeft.x && c.y >= bottomLeft.y && c.x + spawnedActor.Clearance.x - 1 <= topRight.x && c.y + spawnedActor.Clearance.y - 1 <= topRight.y; }; Func func = (IntVector2 c) => Mathf.Min(Mathf.Min(Mathf.Min(Mathf.Min(float.MaxValue, (float)c.x - cameraBottomLeft.x), (float)c.y - cameraBottomLeft.y), cameraTopRight.x - (float)c.x + (float)spawnedActor.Clearance.x), cameraTopRight.y - (float)c.y + (float)spawnedActor.Clearance.y); Vector2 val16 = ((BraveBehaviour)spawnedActor).specRigidbody.UnitCenter - Vector3Extensions.XY(((BraveBehaviour)spawnedActor).transform.position); IntVector2? randomWeightedAvailableCell = spawnedActor.ParentRoom.GetRandomWeightedAvailableCell((IntVector2?)spawnedActor.Clearance, (CellTypes?)spawnedActor.PathableTiles, false, val15, func, 0.25f); if (!randomWeightedAvailableCell.HasValue) { Debug.LogError((object)"Screen Edge Spawn FAILED!", (Object)(object)spawnedActor); Object.Destroy((Object)(object)spawnedActor); } else { ((BraveBehaviour)spawnedActor).transform.position = Vector2.op_Implicit(Pathfinder.GetClearanceOffset(randomWeightedAvailableCell.Value, spawnedActor.Clearance) - val16); ((BraveBehaviour)spawnedActor).specRigidbody.Reinitialize(); HandleSpawn(spawnedActor); } } } else if (spawnPosition == SpawnPosition.InsideRadius) { Vector2 unitCenter = ((BraveBehaviour)this).specRigidbody.GetUnitCenter((ColliderType)2); List list3 = new List(); list3.Add(((BraveBehaviour)this).specRigidbody); for (int num2 = 0; num2 < selectedEnemyGuids.Length; num2++) { Vector2 val17 = unitCenter + Random.insideUnitCircle * spawnRadius; if ((int)GameManager.Instance.CurrentLevelOverrideState == 5) { Scene activeScene = SceneManager.GetActiveScene(); if (((Scene)(ref activeScene)).name == "fs_robot") { RoomHandler entrance = GameManager.Instance.Dungeon.data.Entrance; Vector2 val18 = ((IntVector2)(ref entrance.area.basePosition)).ToVector2() + new Vector2(7f, 7f); val17 = Vector2.Min(((IntVector2)(ref entrance.area.basePosition)).ToVector2() + new Vector2(38f, 36f), Vector2.Max(val18, val17)); } } AIActor val19 = AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(selectedEnemyGuids[num2]), Vector2Extensions.ToIntVector2(unitCenter, (VectorConversions)0), ((BraveBehaviour)this).aiActor.ParentRoom, true, (AwakenAnimationType)0, true); if (Object.op_Implicit((Object)(object)val19)) { ((BraveBehaviour)val19).specRigidbody.Initialize(); Vector2 val20 = val17 - ((BraveBehaviour)val19).specRigidbody.GetUnitCenter((ColliderType)2); ((BraveBehaviour)val19).specRigidbody.ImpartedPixelsToMove = PhysicsEngine.UnitToPixel(val20); HandleSpawn(val19); list3.Add(((BraveBehaviour)val19).specRigidbody); } } for (int num3 = 0; num3 < list3.Count; num3++) { for (int num4 = 0; num4 < list3.Count; num4++) { if (num3 != num4) { list3[num3].RegisterGhostCollisionException(list3[num4]); } } } } else { Debug.LogError((object)("Unknown spawn type: " + spawnPosition)); } } private void HandleSpawn(AIActor spawnedActor) { if (!IsGlitchedLJ && !string.IsNullOrEmpty(spawnAnim)) { ((BraveBehaviour)spawnedActor).aiAnimator.PlayUntilFinished(spawnAnim, false, (string)null, -1f, false); } if (!IsGlitchedLJ) { ExpandSpawnGlitchEnemyOnDeath component = ((Component)spawnedActor).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.guaranteedSpawnGenerations = Mathf.Max(0f, guaranteedSpawnGenerations - 1f); } } if (!spawnsCanDropLoot) { spawnedActor.CanDropCurrency = false; spawnedActor.CanDropItems = false; } if (DoNormalReinforcement) { spawnedActor.HandleReinforcementFallIntoRoom(0.1f); } } protected override void OnDestroy() { ((OnDeathBehavior)this).OnDestroy(); } } public class ExpandSpawnGlitchObjectOnDeath : OnDeathBehavior { public enum ObjectSelection { All = 10, Random = 20 } public GameObject[] objectsToSpawn; public ObjectSelection objectSelection; public float chanceToSpawn; public int minSpawnCount; public int maxSpawnCount; public int extraPixelWidth; public bool allowSpawnOverPit; public bool usesExternalObjectArray; public bool ratCorpseSpawnsKey; public bool spawnRatCorpse; public bool spawnRatKey; public bool ratCorpseSpawnsItemOnExplosion; public bool parentEnemyWasRat; private int ObjectPrefabSpawnCount; private bool m_hasTriggered; public ExpandSpawnGlitchObjectOnDeath() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) base.deathType = (DeathType)1; base.preDeathDelay = 0f; chanceToSpawn = 1f; base.triggerName = ""; extraPixelWidth = 7; minSpawnCount = 1; maxSpawnCount = 1; allowSpawnOverPit = true; spawnRatCorpse = false; spawnRatKey = false; ratCorpseSpawnsKey = false; parentEnemyWasRat = false; ratCorpseSpawnsItemOnExplosion = false; usesExternalObjectArray = false; objectSelection = ObjectSelection.Random; objectsToSpawn = (GameObject[])(object)new GameObject[46] { ExpandPrefabs.MimicNPC, ExpandPrefabs.RatCorpseNPC, ExpandPrefabs.MouseTrap1, ExpandPrefabs.MouseTrap2, ExpandPrefabs.MouseTrap3, ExpandPrefabs.PlayerLostRatNote, ExpandPrefabs.NPCBabyDragunChaos, ExpandObjectDatabase.NPCTruthKnower, ExpandObjectDatabase.ChestTruth, ExpandObjectDatabase.ConvictPastDancers[Random.Range(0, 15)], ExpandObjectDatabase.HangingPot, ExpandObjectDatabase.RatTrapDoorIcon, ExpandObjectDatabase.RedDrum, ExpandObjectDatabase.IceBomb, ExpandObjectDatabase.YellowDrum, ExpandObjectDatabase.WaterDrum, ExpandObjectDatabase.TableHorizontal, ExpandObjectDatabase.TableVertical, ExpandObjectDatabase.TableHorizontalStone, ExpandObjectDatabase.TableVerticalStone, ExpandObjectDatabase.SlipperySign, ExpandObjectDatabase.KitchenChair_Front, ExpandObjectDatabase.KitchenChair_Left, ExpandObjectDatabase.KitchenChair_Right, ExpandObjectDatabase.NPCOldMan, ExpandObjectDatabase.NPCSynergrace, ExpandObjectDatabase.NPCGunMuncher, ExpandObjectDatabase.NPCMonsterManuel, ExpandObjectDatabase.NPCTruthKnower, ExpandObjectDatabase.NPCGuardLeft, ExpandObjectDatabase.NPCGuardRight, ExpandObjectDatabase.AmygdalaNorth, ExpandObjectDatabase.AmygdalaSouth, ExpandObjectDatabase.AmygdalaWest, ExpandObjectDatabase.AmygdalaEast, ExpandObjectDatabase.SpaceFog, ExpandObjectDatabase.LockedDoor, ExpandObjectDatabase.SpikeTrap, ExpandObjectDatabase.FlameTrap, ExpandObjectDatabase.CultistBaldBowBackLeft, ExpandObjectDatabase.CultistBaldBowBackRight, ExpandObjectDatabase.CultistBaldBowBack, ExpandObjectDatabase.CultistBaldBowLeft, ExpandObjectDatabase.CultistHoodBowBack, ExpandObjectDatabase.CultistHoodBowLeft, ExpandObjectDatabase.CultistHoodBowRight }; } public void ManuallyTrigger(Vector2 damageDirection) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) ((OnDeathBehavior)this).OnTrigger(damageDirection); } protected override void OnTrigger(Vector2 damageDirection) { if (m_hasTriggered) { return; } m_hasTriggered = true; if (chanceToSpawn < 1f && Random.value > chanceToSpawn) { return; } if (spawnRatKey) { SpawnRatKey(); return; } GameObject[] array = null; if (objectSelection == ObjectSelection.All) { array = objectsToSpawn; } else if (objectSelection == ObjectSelection.Random) { array = (GameObject[])(object)new GameObject[Random.Range(minSpawnCount, maxSpawnCount)]; for (int i = 0; i < array.Length; i++) { array[i] = BraveUtility.RandomElement(objectsToSpawn); } } if (parentEnemyWasRat) { PickupObject.RatBeatenAtPunchout = true; } SpawnObjects(array); } private void SpawnRatKey() { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) LootEngine.SpawnItem(((Component)PickupObjectDatabase.GetById(727)).gameObject, Vector2.op_Implicit(((BraveBehaviour)this).specRigidbody.GetUnitCenter((ColliderType)2)), Vector2.zero, 0f, true, false, false); } private void SpawnObjects(GameObject[] selectedObjects) { //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0065: 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_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_0114: 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_01e1: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: 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) //IL_01f0: Unknown result type (might be due to invalid IL or missing references) //IL_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_019a: Expected O, but got Unknown //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Expected O, but got Unknown //IL_01c0: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_06a2: Unknown result type (might be due to invalid IL or missing references) //IL_06a5: Unknown result type (might be due to invalid IL or missing references) //IL_06b1: Unknown result type (might be due to invalid IL or missing references) //IL_06b6: Unknown result type (might be due to invalid IL or missing references) //IL_06bb: Unknown result type (might be due to invalid IL or missing references) //IL_06c0: Unknown result type (might be due to invalid IL or missing references) //IL_06c5: Unknown result type (might be due to invalid IL or missing references) //IL_06c7: Unknown result type (might be due to invalid IL or missing references) //IL_06d4: Unknown result type (might be due to invalid IL or missing references) //IL_06e0: Unknown result type (might be due to invalid IL or missing references) //IL_06f5: Unknown result type (might be due to invalid IL or missing references) //IL_06fa: Unknown result type (might be due to invalid IL or missing references) //IL_06ff: Unknown result type (might be due to invalid IL or missing references) //IL_0708: Unknown result type (might be due to invalid IL or missing references) //IL_070a: Unknown result type (might be due to invalid IL or missing references) //IL_0386: Unknown result type (might be due to invalid IL or missing references) //IL_038b: Unknown result type (might be due to invalid IL or missing references) //IL_072c: Unknown result type (might be due to invalid IL or missing references) //IL_0731: Unknown result type (might be due to invalid IL or missing references) //IL_0742: Unknown result type (might be due to invalid IL or missing references) //IL_0754: Unknown result type (might be due to invalid IL or missing references) //IL_0759: Unknown result type (might be due to invalid IL or missing references) //IL_075e: Unknown result type (might be due to invalid IL or missing references) //IL_0760: Unknown result type (might be due to invalid IL or missing references) //IL_0772: Unknown result type (might be due to invalid IL or missing references) //IL_0777: Unknown result type (might be due to invalid IL or missing references) //IL_077c: Unknown result type (might be due to invalid IL or missing references) //IL_077e: Unknown result type (might be due to invalid IL or missing references) //IL_0780: Unknown result type (might be due to invalid IL or missing references) //IL_050b: Unknown result type (might be due to invalid IL or missing references) //IL_0510: Unknown result type (might be due to invalid IL or missing references) //IL_052a: Unknown result type (might be due to invalid IL or missing references) //IL_052f: Unknown result type (might be due to invalid IL or missing references) //IL_0556: Unknown result type (might be due to invalid IL or missing references) //IL_055b: Unknown result type (might be due to invalid IL or missing references) //IL_04ae: Unknown result type (might be due to invalid IL or missing references) //IL_04b3: Unknown result type (might be due to invalid IL or missing references) //IL_04cd: Unknown result type (might be due to invalid IL or missing references) //IL_04d2: Unknown result type (might be due to invalid IL or missing references) //IL_03ea: Unknown result type (might be due to invalid IL or missing references) //IL_03ef: Unknown result type (might be due to invalid IL or missing references) //IL_03c3: Unknown result type (might be due to invalid IL or missing references) //IL_03c8: Unknown result type (might be due to invalid IL or missing references) //IL_07a2: Unknown result type (might be due to invalid IL or missing references) //IL_07ae: Unknown result type (might be due to invalid IL or missing references) //IL_07b3: Unknown result type (might be due to invalid IL or missing references) //IL_07b8: Unknown result type (might be due to invalid IL or missing references) //IL_07bd: Unknown result type (might be due to invalid IL or missing references) //IL_07c2: Unknown result type (might be due to invalid IL or missing references) //IL_07ce: Unknown result type (might be due to invalid IL or missing references) //IL_0593: Unknown result type (might be due to invalid IL or missing references) //IL_0598: Unknown result type (might be due to invalid IL or missing references) //IL_0809: Unknown result type (might be due to invalid IL or missing references) //IL_080e: Unknown result type (might be due to invalid IL or missing references) //IL_0810: Unknown result type (might be due to invalid IL or missing references) //IL_081a: Unknown result type (might be due to invalid IL or missing references) //IL_081f: Unknown result type (might be due to invalid IL or missing references) //IL_07ee: Unknown result type (might be due to invalid IL or missing references) //IL_07f3: Unknown result type (might be due to invalid IL or missing references) ObjectPrefabSpawnCount = selectedObjects.Length; if (ObjectPrefabSpawnCount < 0 || selectedObjects == null) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG] ERROR: Object array is empty or null! Nothing to spawn!", false); } return; } IntVector2 val = Vector2Extensions.ToIntVector2(((BraveBehaviour)this).specRigidbody.UnitCenter, (VectorConversions)0); if ((((GameActor)((BraveBehaviour)this).aiActor).IsFalling && !allowSpawnOverPit) || (GameManager.Instance.Dungeon.CellIsPit(Vector2Extensions.ToVector3ZUp(((BraveBehaviour)this).specRigidbody.UnitCenter, 0f)) && !allowSpawnOverPit)) { return; } GameManager.Instance.Dungeon.GetRoomFromPosition(val); List list = new List(); list.Add(((BraveBehaviour)this).specRigidbody); Vector2 unitBottomLeft = ((BraveBehaviour)this).specRigidbody.UnitBottomLeft; for (int i = 0; i < ObjectPrefabSpawnCount; i++) { if (objectsToSpawn == null) { return; } GameObject val2 = selectedObjects[i]; if (spawnRatCorpse) { val2 = ExpandPrefabs.RatCorpseNPC; } GameObject val3 = null; if (!usesExternalObjectArray) { if (spawnRatCorpse) { val3 = Object.Instantiate(val2, Vector2Extensions.ToVector3ZUp(((BraveBehaviour)this).specRigidbody.GetUnitCenter((ColliderType)2) - new Vector2(0.6f, 0.6f), 0f), Quaternion.identity); } else if ((Object)(object)val2.GetComponent() != (Object)null) { if (GameManager.Instance.Dungeon.GetRoomFromPosition(Vector2Extensions.ToIntVector2(TransformExtensions.PositionVector2(((BraveBehaviour)((BraveBehaviour)this).aiActor).transform), (VectorConversions)2)) != null) { RoomHandler roomFromPosition = GameManager.Instance.Dungeon.GetRoomFromPosition(Vector2Extensions.ToIntVector2(TransformExtensions.PositionVector2(((BraveBehaviour)((BraveBehaviour)this).aiActor).transform), (VectorConversions)2)); val2.GetComponent(); WeightedGameObject val4 = new WeightedGameObject(); val4.rawGameObject = val2; WeightedGameObjectCollection val5 = new WeightedGameObjectCollection(); val5.Add(val4); val3 = ((Component)roomFromPosition.SpawnRoomRewardChest(val5, Vector2Extensions.ToIntVector2(TransformExtensions.PositionVector2(((BraveBehaviour)((BraveBehaviour)this).aiActor).transform), (VectorConversions)2))).gameObject; } } else { GameObject obj = val2; IntVector2 val6 = Vector2Extensions.ToIntVector2(((BraveBehaviour)this).specRigidbody.UnitCenter, (VectorConversions)0); val3 = Object.Instantiate(obj, ((IntVector2)(ref val6)).ToVector3(), Quaternion.identity); } if ((Object)(object)val3 == (Object)null) { return; } } if ((Object)(object)val3 == (Object)null) { return; } if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"About to Spawn an object after death.", false); ETGModConsole.Log((object)("Object: " + ((Object)val3).name), false); ETGModConsole.Log((object)("AIActor:" + ((BraveBehaviour)this).aiActor.GetActorName()), false); } float glitchInterval = Random.Range(0.02f, 0.06f); float dispProbability = Random.Range(0.1f, 0.16f); float dispIntensity = Random.Range(0.1f, 0.4f); float num = Random.Range(0.05f, 0.2f); Random.Range(0.1f, 0.25f); if (!spawnRatCorpse) { if ((Object)(object)val3.GetComponent() != (Object)null) { ExpandShaders.Instance.ApplyGlitchShader(val3.GetComponent(), usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, num, num); } else if ((Object)(object)val3.GetComponentInChildren() != (Object)null && (Object)(object)val3.GetComponent() == (Object)null) { ExpandShaders.Instance.ApplyGlitchShader(val3.GetComponentInChildren(), usesOverrideMaterial: true, glitchInterval, dispProbability, dispIntensity, num, num); } } if ((Object)(object)val3 != (Object)null) { if (!usesExternalObjectArray && (Object)(object)val3.GetComponent() != (Object)null) { Object.Destroy((Object)(object)val3.GetComponent()); } if (!usesExternalObjectArray && (Object)(object)val3.GetComponent() != (Object)null) { TalkDoerLite component = val3.GetComponent(); component.SpeaksGleepGlorpenese = true; Vector3Extensions.GetAbsoluteRoom(Vector3Extensions.XY(((BraveBehaviour)component).transform.position)).RegisterInteractable((IPlayerInteractable)(object)component); if (((Object)val3).name == ((Object)ExpandPrefabs.RatCorpseNPC).name && !usesExternalObjectArray) { Vector3Extensions.GetAbsoluteRoom(Vector3Extensions.XY(((BraveBehaviour)component).transform.position)).TransferInteractableOwnershipToDungeon((IPlayerInteractable)(object)component); } else if (spawnRatCorpse) { Vector3Extensions.GetAbsoluteRoom(Vector3Extensions.XY(((BraveBehaviour)component).transform.position)).TransferInteractableOwnershipToDungeon((IPlayerInteractable)(object)component); } if (((Object)val3).name.StartsWith(((Object)ExpandPrefabs.RatCorpseNPC).name)) { ((BraveBehaviour)component).playmakerFsm.SetState("Set Mode"); ExpandUtility.GenerateHealthHaver(((Component)component).gameObject, 60f, disableAnimator: true, explodesOnDeath: true, (DeathType)1, flashesOnDamage: false, ratCorpseSpawnsItemOnExplosion, isCorruptedObject: false, isRatNPC: true); if (ratCorpseSpawnsKey) { HealthHaver component2 = ((Component)component).gameObject.GetComponent(); ((Component)component2).gameObject.AddComponent(); ((Component)component2).gameObject.GetComponent().spawnRatKey = true; } } } if (!usesExternalObjectArray && (Object)(object)val3.GetComponentInChildren() != (Object)null && (Object)(object)val3.GetComponent() == (Object)null) { KickableObject componentInChildren = val3.GetComponentInChildren(); Vector3Extensions.GetAbsoluteRoom(Vector3Extensions.XY(((BraveBehaviour)componentInChildren).transform.position)).RegisterInteractable((IPlayerInteractable)(object)componentInChildren); componentInChildren.ConfigureOnPlacement(Vector3Extensions.GetAbsoluteRoom(Vector3Extensions.XY(((BraveBehaviour)componentInChildren).transform.position))); } if (!usesExternalObjectArray && (Object)(object)val3.GetComponent() != (Object)null) { FlippableCover component3 = val3.GetComponent(); Vector3Extensions.GetAbsoluteRoom(Vector3Extensions.XY(((BraveBehaviour)component3).transform.position)).RegisterInteractable((IPlayerInteractable)(object)component3); component3.ConfigureOnPlacement(Vector3Extensions.GetAbsoluteRoom(Vector3Extensions.XY(((BraveBehaviour)component3).transform.position))); val3.AddComponent(); ExpandKickableObject component4 = val3.GetComponent(); Vector3Extensions.GetAbsoluteRoom(Vector3Extensions.XY(((BraveBehaviour)component4).transform.position)).RegisterInteractable((IPlayerInteractable)(object)component4); } if (!usesExternalObjectArray && (Object)(object)val3.GetComponent() != (Object)null) { NoteDoer component5 = val3.GetComponent(); Vector3Extensions.GetAbsoluteRoom(Vector3Extensions.XY(((BraveBehaviour)component5).transform.position)).RegisterInteractable((IPlayerInteractable)(object)component5); component5.alreadyLocalized = true; component5.useAdditionalStrings = false; component5.stringKey = "Here lies " + ((BraveBehaviour)this).aiActor.GetActorName() + "\nHe was annoying anyways...."; } if ((Object)(object)val3.GetComponentInChildren() != (Object)null && (Object)(object)val3.GetComponentInChildren() == (Object)null && (Object)(object)val3.GetComponent() == (Object)null && (Object)(object)val3.GetComponent() == (Object)null && (Object)(object)val3.GetComponent() == (Object)null && ((Object)val2).name != "NPC_ResourcefulRat_Beaten" && !usesExternalObjectArray) { SpeculativeRigidbody componentInChildren2 = val3.GetComponentInChildren(); componentInChildren2.PrimaryPixelCollider.Enabled = false; componentInChildren2.HitboxPixelCollider.Enabled = false; componentInChildren2.CollideWithOthers = false; } } if (!((Object)(object)val3.GetComponentInChildren() != (Object)null) || !((Object)val3).name.ToLower().StartsWith("Table")) { continue; } try { SpeculativeRigidbody componentInChildren3 = val3.GetComponentInChildren(); componentInChildren3.Initialize(); Vector2 val7 = unitBottomLeft - (componentInChildren3.UnitBottomLeft - Vector3Extensions.XY(val3.transform.position)); Vector2 val8 = val7 + new Vector2(Mathf.Max(0f, ((BraveBehaviour)this).specRigidbody.UnitDimensions.x - componentInChildren3.UnitDimensions.x), 0f); val3.transform.position = Vector2.op_Implicit(Vector2.Lerp(val7, val8, (ObjectPrefabSpawnCount != 1) ? ((float)i / ((float)ObjectPrefabSpawnCount - 1f)) : 0f)); componentInChildren3.Reinitialize(); val7 -= new Vector2(PhysicsEngine.PixelToUnit(extraPixelWidth), 0f); val8 += new Vector2(PhysicsEngine.PixelToUnit(extraPixelWidth), 0f); IntVector2 val9 = PhysicsEngine.UnitToPixel(Vector2.Lerp(val7, val8, (ObjectPrefabSpawnCount != 1) ? ((float)i / ((float)ObjectPrefabSpawnCount - 1f)) : 0.5f) - Vector3Extensions.XY(val3.transform.position)); CollisionData val10 = null; if (PhysicsEngine.Instance.RigidbodyCastWithIgnores(componentInChildren3, val9, ref val10, true, true, (int?)null, false, list.ToArray())) { val9 = val10.NewPixelsToMove; } CollisionData.Pool.Free(ref val10); Transform transform = val3.transform; transform.position += Vector2Extensions.ToVector3ZUp(PhysicsEngine.PixelToUnit(val9), 1f); componentInChildren3.Reinitialize(); list.Add(componentInChildren3); } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"[DEBUG]: Warning: Exception caught while setting up rigid body settings in ChaosSpawnGlitchedObjectONDeath!", false); Debug.Log((object)"Warning: Exception caught while setting up rigid body settings in ChaosSpawnGlitchedObjectONDeath!"); Debug.LogException(ex); } } } if (list.Count <= 0) { return; } for (int j = 0; j < list.Count; j++) { for (int k = 0; k < list.Count; k++) { if (j != k) { list[j].RegisterGhostCollisionException(list[k]); } } } } protected override void OnDestroy() { ((OnDeathBehavior)this).OnDestroy(); } } public class ExpandThunderStormPlacable : DungeonPlaceableBehaviour, IPlaceConfigurable { public bool useCustomIntensity; public float RainIntensity; public bool enableLightning; public bool isSecretFloor; private ExpandThunderStormPlacable() { RainIntensity = 100f; useCustomIntensity = true; enableLightning = false; isSecretFloor = true; } public void Start() { } public void Update() { } public void ConfigureOnPlacement(RoomHandler room) { ExpandWeatherController expandWeatherController = ((Component)GameManager.Instance.Dungeon).gameObject.AddComponent(); expandWeatherController.RainIntensity = RainIntensity; expandWeatherController.useCustomIntensity = useCustomIntensity; expandWeatherController.enableLightning = enableLightning; expandWeatherController.isSecretFloor = isSecretFloor; } protected override void OnDestroy() { ((DungeonPlaceableBehaviour)this).OnDestroy(); } } public class ExpandWeatherController : BraveBehaviour { public bool isActive; public bool isSecretFloor; public float MinTimeBetweenLightningStrikes; public float MaxTimeBetweenLightningStrikes; public float AmbientBoost; public float RainIntensity; public bool useCustomIntensity; public bool enableLightning; public bool isLocalToRoom; public ScreenShakeSettings ThunderShake; public Renderer[] LightningRenderers; private ThunderstormController m_StormController; private float m_lightningTimer; public ExpandWeatherController() { //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_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0071: 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_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: 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_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Expected O, but got Unknown isActive = false; isSecretFloor = true; MinTimeBetweenLightningStrikes = 5f; MaxTimeBetweenLightningStrikes = 10f; AmbientBoost = 1f; RainIntensity = 250f; useCustomIntensity = true; enableLightning = false; isLocalToRoom = false; ThunderShake = new ScreenShakeSettings { magnitude = 0.2f, speed = 3f, time = 0f, falloff = 0.5f, direction = new Vector2(1f, 0f), vibrationType = (VibrationType)10, simpleVibrationTime = (Time)20, simpleVibrationStrength = (Strength)20 }; m_lightningTimer = Random.Range(MinTimeBetweenLightningStrikes, MaxTimeBetweenLightningStrikes); } private void Start() { GameObject val = Object.Instantiate(((Component)((Component)DungeonDatabase.GetOrLoadByName("finalscenario_guide").PatternSettings.flows[0].AllNodes[0].overrideExactRoom.placedObjects[0].nonenemyBehaviour).gameObject.transform.Find("Rain")).gameObject); ((Object)val).name = "ExpandRain"; m_StormController = val.GetComponent(); ParticleSystem component = ((Component)m_StormController.RainSystemTransform).GetComponent(); if (useCustomIntensity) { BraveUtility.SetEmissionRate(component, RainIntensity); } m_StormController.DecayVertical = isLocalToRoom; m_StormController.DoLighting = false; LightningRenderers = m_StormController.LightningRenderers; val.transform.parent = ((Component)this).gameObject.transform; isActive = true; } private void Update() { if (GameManager.Instance.IsLoadingLevel) { return; } if (isSecretFloor) { PlayerController primaryPlayer = GameManager.Instance.PrimaryPlayer; if (Object.op_Implicit((Object)(object)primaryPlayer)) { CheckForWeatherFX(primaryPlayer, RainIntensity); } } if (!isActive || !enableLightning) { return; } m_lightningTimer -= ((!GameManager.IsBossIntro) ? BraveTime.DeltaTime : GameManager.INVARIANT_DELTA_TIME); if (!(m_lightningTimer <= 0f) || !isActive) { return; } ((MonoBehaviour)this).StartCoroutine(DoLightningStrike()); if (LightningRenderers != null) { for (int i = 0; i < LightningRenderers.Length; i++) { ((MonoBehaviour)this).StartCoroutine(ProcessLightningRenderer(LightningRenderers[i])); } } ((MonoBehaviour)this).StartCoroutine(HandleLightningAmbientBoost()); m_lightningTimer = Random.Range(MinTimeBetweenLightningStrikes, MaxTimeBetweenLightningStrikes); } private void CheckForWeatherFX(PlayerController player, float RainIntensity) { try { ((MonoBehaviour)GameManager.Instance).StartCoroutine(ToggleRainFX(player, RainIntensity)); } catch (Exception ex) { if (ExpandSettings.debugMode) { Debug.Log((object)"[WARNING] Exception caught while checking room for WeatherFX toggle!..."); Debug.LogException(ex); ETGModConsole.Log((object)"[WARNING] Exception caught while checking room for WeatherFX toggle!...", false); ETGModConsole.Log((object)"Exception has been logged.", false); } } } private IEnumerator ToggleRainFX(PlayerController player, float cachedRate) { if (!Object.op_Implicit((Object)(object)m_StormController)) { yield break; } bool Active = true; yield return null; if (!Active) { if (((Behaviour)m_StormController).enabled || isActive) { AkSoundEngine.PostEvent("Stop_ENV_rain_loop_01", ((Component)m_StormController).gameObject); BraveUtility.SetEmissionRate(((Component)m_StormController.RainSystemTransform).GetComponent(), 0f); yield return (object)new WaitForSeconds(2f); ((Behaviour)m_StormController).enabled = false; isActive = false; yield return null; } } else if (!((Behaviour)m_StormController).enabled || !isActive) { BraveUtility.SetEmissionRate(((Component)m_StormController.RainSystemTransform).GetComponent(), cachedRate); ((Behaviour)m_StormController).enabled = true; isActive = true; } } protected IEnumerator HandleLightningAmbientBoost() { Color cachedAmbient = RenderSettings.ambientLight; Color modAmbient = new Color(cachedAmbient.r + AmbientBoost, cachedAmbient.g + AmbientBoost, cachedAmbient.b + AmbientBoost); GameManager.Instance.Dungeon.OverrideAmbientLight = true; for (int i = 0; i < 2; i++) { float elapsed = 0f; float duration = 0.15f * (float)(i + 1); while (elapsed < duration) { elapsed += GameManager.INVARIANT_DELTA_TIME; float num = elapsed / duration; GameManager.Instance.Dungeon.OverrideAmbientColor = Color.Lerp(modAmbient, cachedAmbient, num); yield return null; } } yield return null; GameManager.Instance.Dungeon.OverrideAmbientLight = false; } protected IEnumerator ProcessLightningRenderer(Renderer target) { target.enabled = true; yield return ((MonoBehaviour)this).StartCoroutine(InvariantWait(0.05f)); target.enabled = false; yield return ((MonoBehaviour)this).StartCoroutine(InvariantWait(0.1f)); target.enabled = true; yield return ((MonoBehaviour)this).StartCoroutine(InvariantWait(0.1f)); target.enabled = false; } protected IEnumerator InvariantWait(float duration) { float elapsed = 0f; while (elapsed < duration) { elapsed += GameManager.INVARIANT_DELTA_TIME; yield return null; } } protected IEnumerator DoLightningStrike() { AkSoundEngine.PostEvent("Play_ENV_thunder_flash_01", ((Component)GameManager.Instance.PrimaryPlayer).gameObject); if ((int)Application.platform == 2) { PlatformInterface.SetAlienFXColor(Color32.op_Implicit(new Color(1f, 1f, 1f, 1f)), 0.25f); } yield return (object)new WaitForSeconds(0.25f); GameManager.Instance.MainCameraController.DoScreenShake(ThunderShake, (Vector2?)null, false); } protected override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); } } public class ExpandExplodeOnDeath : ExplodeOnDeath { public bool useDefaultExplosion; public bool spawnItemsOnExplosion; public bool isCorruptedObject; public bool isCorruptedNPC; public bool ExplosionNotGuranteed; public bool spawnShardsOnDeath; public int numberOfDefaultItemsToSpawn; public float ExplosionOdds; public float ExplosionDamage; private bool m_hasTriggered; public List ItemList; public ExplosionData ExpandExplosionData; public BaseShopController NPCShop; public BreakStyle breakStyle; public Vector2 direction; public float minAngle; public float maxAngle; public float verticalSpeed; public float minMagnitude; public float maxMagnitude; public float heightOffGround; public ShardCluster[] shardClusters; public ExpandExplodeOnDeath() { //IL_000f: 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_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) base.immuneToIBombApp = false; ((OnDeathBehavior)this).deathType = (DeathType)0; ((OnDeathBehavior)this).preDeathDelay = 0.1f; useDefaultExplosion = false; spawnItemsOnExplosion = false; isCorruptedObject = false; ExplosionNotGuranteed = false; isCorruptedNPC = false; spawnShardsOnDeath = false; numberOfDefaultItemsToSpawn = 1; ExplosionOdds = 0.3f; ExplosionDamage = 120f; breakStyle = (BreakStyle)1; direction = Vector2.zero; minAngle = 0f; maxAngle = 0f; verticalSpeed = 0.4f; minMagnitude = 0.25f; maxMagnitude = 0.5f; heightOffGround = 0.1f; m_hasTriggered = false; ExpandExplosionData = ExpandUtility.GenerateExplosionData(); } public void ManuallyTrigger(Vector2 damageDirection) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) ((OnDeathBehavior)this).OnTrigger(damageDirection); } protected override void OnTrigger(Vector2 dirVec) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) if (!m_hasTriggered) { m_hasTriggered = true; if (isCorruptedNPC) { EnableShopTheftAndCurse(); } if (isCorruptedObject) { DoCorruptedDeathSFX(); } if (spawnShardsOnDeath) { HandleShardSpawns(dirVec); } DoExplosion(); if (spawnItemsOnExplosion) { DoItemSpawn(); } } } private void DoCorruptedDeathSFX() { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Expected O, but got Unknown //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject(); val.transform.position = ((Component)this).gameObject.transform.position; if (Vector3Extensions.GetAbsoluteRoom(val.transform.position) != null) { val.transform.parent = Vector3Extensions.GetAbsoluteRoom(val.transform.position).hierarchyParent; ((MonoBehaviour)GameManager.Instance).StartCoroutine(DoDelayedCorruptionDeathSound(val)); } else { Object.Destroy((Object)(object)val); } } private void EnableShopTheftAndCurse() { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Expected O, but got Unknown PlayerController bestActivePlayer = GameManager.Instance.BestActivePlayer; StatModifier item = new StatModifier { amount = 1f, modifyType = (ModifyMethod)0, statToBoost = (StatType)14 }; bestActivePlayer.ownerlessStatModifiers.Add(item); bestActivePlayer.stats.RecalculateStats(bestActivePlayer, false, false); if ((Object)(object)NPCShop != (Object)null) { NPCShop.SetCapableOfBeingStolenFrom(true, "DestroyedShopOwner", (float?)null); } } private void DoExplosion() { //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_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002f: 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_004f: Unknown result type (might be due to invalid IL or missing references) if (!ExplosionNotGuranteed || !(Random.value > ExplosionOdds)) { if (useDefaultExplosion) { Exploder.DoDefaultExplosion(Vector2.op_Implicit(((BraveBehaviour)this).specRigidbody.GetUnitCenter((ColliderType)2)), Vector2.zero, (Action)null, true, (CoreDamageTypes)0, false); Exploder.DoRadialDamage(ExplosionDamage, Vector2.op_Implicit(((BraveBehaviour)this).specRigidbody.GetUnitCenter((ColliderType)2)), 3.5f, true, true, false, (VFXPool)null); } else { Exploder.Explode(Vector2.op_Implicit(((BraveBehaviour)this).specRigidbody.GetUnitCenter((ColliderType)2)), ExpandExplosionData, Vector2.zero, (Action)null, true, (CoreDamageTypes)0, false); } } } private void DoItemSpawn() { //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_014d: 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_0196: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) if (ItemList == null) { ItemList = new List(); if (numberOfDefaultItemsToSpawn == 1) { int num = ((!(Random.value >= 0.2f)) ? 3 : (BraveUtility.RandomBool() ? 1 : 2)); GenericLootTable val = ((!BraveUtility.RandomBool()) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable); PickupObject itemOfTypeAndQuality = LootEngine.GetItemOfTypeAndQuality((ItemQuality)num, val, false); if (Object.op_Implicit((Object)(object)itemOfTypeAndQuality)) { LootEngine.SpawnItem(((Component)itemOfTypeAndQuality).gameObject, Vector2.op_Implicit(((BraveBehaviour)this).specRigidbody.GetUnitCenter((ColliderType)2)), Vector2.zero, 0f, true, true, false); } return; } for (int i = 0; i < numberOfDefaultItemsToSpawn; i++) { int num2 = ((!(Random.value >= 0.2f)) ? 3 : (BraveUtility.RandomBool() ? 1 : 2)); GenericLootTable val2 = ((!BraveUtility.RandomBool()) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable); PickupObject itemOfTypeAndQuality2 = LootEngine.GetItemOfTypeAndQuality((ItemQuality)num2, val2, false); if (Object.op_Implicit((Object)(object)itemOfTypeAndQuality2)) { ItemList.Add(itemOfTypeAndQuality2); } } } if (ItemList.Count <= 0) { return; } if (ItemList.Count == 1) { LootEngine.SpawnItem(((Component)ItemList[0]).gameObject, Vector2.op_Implicit(((BraveBehaviour)this).specRigidbody.GetUnitCenter((ColliderType)2)), Vector2.zero, 0f, true, true, false); } else { if (ItemList.Count <= 1) { return; } foreach (PickupObject item in ItemList) { LootEngine.SpawnItem(((Component)item).gameObject, Vector2.op_Implicit(((BraveBehaviour)this).specRigidbody.GetUnitCenter((ColliderType)2)), Vector2.zero, 0f, true, true, false); } } } private IEnumerator DoDelayedCorruptionDeathSound(GameObject parentObject, float delay = 0.2f) { yield return (object)new WaitForSeconds(delay); AkSoundEngine.PostEvent("Play_EX_CorruptedObjectDestroyed_01", parentObject); } public void HandleShardSpawns(Vector2 sourceVelocity) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //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_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Expected I4, but got Unknown //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Invalid comparison between Unknown and I4 //IL_003b: 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_0089: 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_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Invalid comparison between Unknown and I4 //IL_00bc: Unknown result type (might be due to invalid IL or missing references) BreakStyle val = breakStyle; if (sourceVelocity == Vector2.zero && (int)breakStyle != 100) { val = (BreakStyle)1; } float num = 1.5f; switch ((int)val) { case 0: SpawnShards(sourceVelocity, -45f, 45f, num, ((Vector2)(ref sourceVelocity)).magnitude * 0.5f, ((Vector2)(ref sourceVelocity)).magnitude * 1.5f); return; case 1: SpawnShards(Vector2.right, -180f, 180f, num, 1f, 2f); return; case 2: SpawnShards(sourceVelocity, -15f, 15f, num, ((Vector2)(ref sourceVelocity)).magnitude * 0.5f, ((Vector2)(ref sourceVelocity)).magnitude * 1.5f); return; } if ((int)val == 100) { SpawnShards(direction, minAngle, maxAngle, verticalSpeed, minMagnitude, maxMagnitude); } } public void SpawnShards(Vector2 direction, float minAngle, float maxAngle, float verticalSpeed, float minMagnitude, float maxMagnitude) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0099: 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_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: 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_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) Vector3 val = Vector2.op_Implicit(((BraveBehaviour)this).specRigidbody.GetUnitCenter((ColliderType)2)); if (shardClusters == null || shardClusters.Length == 0) { return; } int num = Random.Range(0, 10); for (int i = 0; i < shardClusters.Length; i++) { ShardCluster val2 = shardClusters[i]; int num2 = Random.Range(val2.minFromCluster, val2.maxFromCluster + 1); int num3 = Random.Range(0, val2.clusterObjects.Length); for (int j = 0; j < num2; j++) { float lowDiscrepancyRandom = BraveMathCollege.GetLowDiscrepancyRandom(num); num++; float num4 = Mathf.Lerp(minAngle, maxAngle, lowDiscrepancyRandom); Vector3 val3 = Quaternion.Euler(0f, 0f, num4) * Vector2Extensions.ToVector3ZUp(((Vector2)(ref direction)).normalized * Random.Range(minMagnitude, maxMagnitude), verticalSpeed); int num5 = (num3 + j) % val2.clusterObjects.Length; GameObject obj = SpawnManager.SpawnDebris(((Component)val2.clusterObjects[num5]).gameObject, val, Quaternion.identity); tk2dSprite component = obj.GetComponent(); if ((Object)(object)((BraveBehaviour)this).sprite.attachParent != (Object)null && (Object)(object)component != (Object)null) { ((tk2dBaseSprite)component).attachParent = ((BraveBehaviour)this).sprite.attachParent; ((tk2dBaseSprite)component).HeightOffGround = ((BraveBehaviour)this).sprite.HeightOffGround; } DebrisObject component2 = obj.GetComponent(); val3 = Vector3.Scale(val3, val2.forceAxialMultiplier) * val2.forceMultiplier; component2.Trigger(val3, heightOffGround, val2.rotationMultiplier); } } } protected override void OnDestroy() { ((ExplodeOnDeath)this).OnDestroy(); } } public class ExpandKickableObject : DungeonPlaceableBehaviour, IPlayerInteractable, IPlaceConfigurable { public ExplosionData TableExplosionData; public GameObject SpawnedObject; public bool spawnObjectOnSelfDestruct; public bool willDefinitelyExplode; public bool explodesOnKick; public bool useDefaultExplosion; public bool hasRollingAnimations; public float rollSpeed; [CheckAnimation(null)] public string[] rollAnimations; [CheckAnimation(null)] public string[] impactAnimations; public bool leavesGoopTrail; [ShowInInspectorIf("leavesGoopTrail", false)] public GoopDefinition goopType; [ShowInInspectorIf("leavesGoopTrail", false)] public float goopFrequency; [ShowInInspectorIf("leavesGoopTrail", false)] public float goopRadius; public bool triggersBreakTimer; [ShowInInspectorIf("triggersBreakTimer", false)] public float breakTimerLength; [ShowInInspectorIf("triggersBreakTimer", false)] public GameObject timerVFX; public bool RollingDestroysSafely; public string RollingBreakAnim; private float m_goopElapsed; private DeadlyDeadlyGoopManager m_goopManager; private RoomHandler m_room; private bool m_isBouncingBack; private bool m_timerIsActive; private bool m_objectSpawned; [NonSerialized] public bool AllowTopWallTraversal; public IntVector2? m_lastDirectionKicked; private bool m_shouldDisplayOutline; private PlayerController m_lastInteractingPlayer; private Direction m_lastOutlineDirection; private int m_lastSpriteId; private bool m_WasKicked; public ExpandKickableObject() { //IL_007e: Unknown result type (might be due to invalid IL or missing references) rollSpeed = 6f; rollAnimations = null; goopFrequency = 0.05f; goopRadius = 1f; breakTimerLength = 3f; RollingDestroysSafely = false; triggersBreakTimer = false; AllowTopWallTraversal = true; explodesOnKick = true; willDefinitelyExplode = false; spawnObjectOnSelfDestruct = false; useDefaultExplosion = false; hasRollingAnimations = false; RollingBreakAnim = "red_barrel_break"; m_lastOutlineDirection = (Direction)(-1); m_objectSpawned = false; TableExplosionData = ExpandUtility.GenerateExplosionData(); m_WasKicked = false; } private void Start() { //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Expected O, but got Unknown //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Expected O, but got Unknown if (m_room == null) { m_room = ((DungeonPlaceableBehaviour)this).GetAbsoluteParentRoom(); } SpeculativeRigidbody specRigidbody = ((BraveBehaviour)this).specRigidbody; try { if ((Object)(object)specRigidbody != (Object)null) { specRigidbody.OnRigidbodyCollision = (OnRigidbodyCollisionDelegate)Delegate.Combine((Delegate?)(object)specRigidbody.OnRigidbodyCollision, (Delegate?)new OnRigidbodyCollisionDelegate(OnPlayerCollision)); } } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"Exception Caught at [GetDistanceToPoint] in ExpandKickableObject class.", false); ETGModConsole.Log((object)(ex.Message + ex.Source), false); ETGModConsole.Log((object)ex.StackTrace, false); } } } public void Update() { //IL_0065: 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_0074: 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_0077: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00be: 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_0190: Unknown result type (might be due to invalid IL or missing references) //IL_0196: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Unknown result type (might be due to invalid IL or missing references) if (m_WasKicked) { if (((DungeonPlaceableBehaviour)this).GetAbsoluteParentRoom() == null) { m_WasKicked = false; willDefinitelyExplode = true; SelfDestructOnKick(); } FlippableCover component = ((Component)this).GetComponent(); if (Object.op_Implicit((Object)(object)component) && component.IsBroken) { m_WasKicked = false; willDefinitelyExplode = true; SelfDestructOnKick(); } } if (m_shouldDisplayOutline) { int quadrant; Direction inverseDirection = DungeonData.GetInverseDirection(DungeonData.GetDirectionFromIntVector2(GetFlipDirection(((BraveBehaviour)m_lastInteractingPlayer).specRigidbody, out quadrant))); if (inverseDirection != m_lastOutlineDirection || ((BraveBehaviour)this).sprite.spriteId != m_lastSpriteId) { SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)this).sprite, false); SpriteOutlineManager.AddSingleOutlineToSprite(((BraveBehaviour)this).sprite, DungeonData.GetIntVector2FromDirection(inverseDirection), Color.white, 0.25f, 0f); } m_lastOutlineDirection = inverseDirection; m_lastSpriteId = ((BraveBehaviour)this).sprite.spriteId; } if (!leavesGoopTrail || !(((Vector2)(ref ((BraveBehaviour)this).specRigidbody.Velocity)).magnitude > 0.1f)) { return; } m_goopElapsed += BraveTime.DeltaTime; if (m_goopElapsed > goopFrequency) { m_goopElapsed -= BraveTime.DeltaTime; if ((Object)(object)m_goopManager == (Object)null) { m_goopManager = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(goopType); } m_goopManager.AddGoopCircle(((BraveBehaviour)this).sprite.WorldCenter, goopRadius + 0.1f, -1, false, -1); } if (AllowTopWallTraversal && GameManager.Instance.Dungeon.data.CheckInBoundsAndValid(Vector2Extensions.ToIntVector2(((BraveBehaviour)this).sprite.WorldCenter, (VectorConversions)0)) && GameManager.Instance.Dungeon.data[Vector2Extensions.ToIntVector2(((BraveBehaviour)this).sprite.WorldCenter, (VectorConversions)0)].IsFireplaceCell) { MinorBreakable component2 = ((Component)this).GetComponent(); if (Object.op_Implicit((Object)(object)component2) && !component2.IsBroken) { component2.Break(Vector2.zero); GameStatsManager.Instance.SetFlag((GungeonFlags)125001, true); } } } public void ForceDeregister() { if (m_room != null) { m_room.DeregisterInteractable((IPlayerInteractable)(object)this); } RoomHandler.unassignedInteractableObjects.Remove((IPlayerInteractable)(object)this); } protected override void OnDestroy() { ((DungeonPlaceableBehaviour)this).OnDestroy(); } public string GetAnimationState(PlayerController interactor, out bool shouldBeFlipped) { //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) shouldBeFlipped = false; switch (BraveMathCollege.VectorToQuadrant(((GameActor)interactor).CenterPosition - ((BraveBehaviour)this).specRigidbody.UnitCenter)) { case 0: return "tablekick_down"; case 1: shouldBeFlipped = true; return "tablekick_right"; case 2: return "tablekick_up"; case 3: return "tablekick_right"; default: Debug.Log((object)"[ExpandKickableObject] Failed to find table animation state. Using fall back 'tablekick_up' instead."); return "tablekick_up"; } } public void OnEnteredRange(PlayerController interactor) { if (Object.op_Implicit((Object)(object)this)) { m_lastInteractingPlayer = interactor; m_shouldDisplayOutline = true; } } public void OnExitRange(PlayerController interactor) { if (Object.op_Implicit((Object)(object)this)) { ClearOutlines(); m_shouldDisplayOutline = false; } } public float GetDistanceToPoint(Vector2 point) { //IL_0006: 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_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0074: 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_008d: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) try { Bounds bounds = ((BraveBehaviour)this).sprite.GetBounds(); ((Bounds)(ref bounds)).SetMinMax(((Bounds)(ref bounds)).min + ((BraveBehaviour)((BraveBehaviour)this).sprite).transform.position, ((Bounds)(ref bounds)).max + ((BraveBehaviour)((BraveBehaviour)this).sprite).transform.position); float num = Mathf.Max(Mathf.Min(point.x, ((Bounds)(ref bounds)).max.x), ((Bounds)(ref bounds)).min.x); float num2 = Mathf.Max(Mathf.Min(point.y, ((Bounds)(ref bounds)).max.y), ((Bounds)(ref bounds)).min.y); return Mathf.Sqrt((point.x - num) * (point.x - num) + (point.y - num2) * (point.y - num2)); } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)string.Concat("Exception Caught at [GetDistanceToPoint] in ExpandKickableObject class.", ex.Message, ex.Source, ex.InnerException, ex.StackTrace, ex.TargetSite), false); } ForceDeregister(); Object.Destroy((Object)(object)this); return 0f; } } public float GetOverrideMaxDistance() { return -1f; } public void Interact(PlayerController player) { //IL_0010: 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) GameManager.Instance.Dungeon.GetRoomFromPosition(Vector2Extensions.ToIntVector2(((BraveBehaviour)this).specRigidbody.UnitCenter, (VectorConversions)2)).DeregisterInteractable((IPlayerInteractable)(object)this); RoomHandler.unassignedInteractableObjects.Remove((IPlayerInteractable)(object)this); Kick(((BraveBehaviour)player).specRigidbody); AkSoundEngine.PostEvent("Play_OBJ_table_flip_01", ((Component)player).gameObject); ClearOutlines(); m_shouldDisplayOutline = false; if (GameManager.Instance.InTutorial) { GameManager.BroadcastRoomTalkDoerFsmEvent("playerRolledBarrel"); } } private void NoPits(SpeculativeRigidbody specRigidbody, IntVector2 prevPixelOffset, IntVector2 pixelOffset, ref bool validLocation) { //IL_0037: 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_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0053: 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_010b: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: 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_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0067: 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_016e: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: 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_007c: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_012e: 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_0134: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0090: 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_0196: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: 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_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: 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_015c: Unknown result type (might be due to invalid IL or missing references) //IL_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_01be: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Unknown result type (might be due to invalid IL or missing references) try { if (!validLocation) { return; } Func func = delegate(IntVector2 pixel) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_002a: 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_0049: Unknown result type (might be due to invalid IL or missing references) Vector2 val2 = PhysicsEngine.PixelToUnitMidpoint(pixel); if (!GameManager.Instance.Dungeon.CellSupportsFalling(Vector2.op_Implicit(val2))) { return false; } List platformsAt = GameManager.Instance.Dungeon.GetPlatformsAt(Vector2.op_Implicit(val2)); if (platformsAt != null) { for (int i = 0; i < platformsAt.Count; i++) { if (platformsAt[i].PrimaryPixelCollider.ContainsPixel(pixel)) { return false; } } } return true; }; PixelCollider primaryPixelCollider = specRigidbody.PrimaryPixelCollider; if (primaryPixelCollider != null) { IntVector2 val = pixelOffset - prevPixelOffset; if (val == IntVector2.Down && func(primaryPixelCollider.LowerLeft + pixelOffset) && func(primaryPixelCollider.LowerRight + pixelOffset) && (!func(primaryPixelCollider.UpperRight + prevPixelOffset) || !func(primaryPixelCollider.UpperLeft + prevPixelOffset))) { validLocation = false; } else if (val == IntVector2.Right && func(primaryPixelCollider.LowerRight + pixelOffset) && func(primaryPixelCollider.UpperRight + pixelOffset) && (!func(primaryPixelCollider.UpperLeft + prevPixelOffset) || !func(primaryPixelCollider.LowerLeft + prevPixelOffset))) { validLocation = false; } else if (val == IntVector2.Up && func(primaryPixelCollider.UpperRight + pixelOffset) && func(primaryPixelCollider.UpperLeft + pixelOffset) && (!func(primaryPixelCollider.LowerLeft + prevPixelOffset) || !func(primaryPixelCollider.LowerRight + prevPixelOffset))) { validLocation = false; } else if (val == IntVector2.Left && func(primaryPixelCollider.UpperLeft + pixelOffset) && func(primaryPixelCollider.LowerLeft + pixelOffset) && (!func(primaryPixelCollider.LowerRight + prevPixelOffset) || !func(primaryPixelCollider.UpperRight + prevPixelOffset))) { validLocation = false; } } if (!validLocation) { StopRolling(bounceBack: true); } } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)string.Concat("Exception Caught at [NoPits] in ExpandKickableObject class.", ex.Message, ex.Source, ex.InnerException, ex.StackTrace, ex.TargetSite), false); } } } public void ConfigureOnPlacement(RoomHandler room) { m_room = room; } private void OnPlayerCollision(CollisionData rigidbodyCollision) { //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) PlayerController component = ((Component)rigidbodyCollision.OtherRigidbody).GetComponent(); if (RollingDestroysSafely && (Object)(object)component != (Object)null && component.IsDodgeRolling) { MinorBreakable component2 = ((Component)this).GetComponent(); component2.destroyOnBreak = true; component2.makeParallelOnBreak = false; if (hasRollingAnimations) { component2.breakAnimName = RollingBreakAnim; } component2.explodesOnBreak = false; component2.Break(-((CastResult)rigidbodyCollision).Normal); } } private void OnPreCollision(SpeculativeRigidbody myRigidbody, PixelCollider myPixelCollider, SpeculativeRigidbody otherRigidbody, PixelCollider otherPixelCollider) { //IL_0026: Unknown result type (might be due to invalid IL or missing references) MinorBreakable component = ((Component)otherRigidbody).GetComponent(); if (Object.op_Implicit((Object)(object)component) && !component.onlyVulnerableToGunfire && !component.IsBig) { component.Break(((BraveBehaviour)this).specRigidbody.Velocity); PhysicsEngine.SkipCollision = true; } if (Object.op_Implicit((Object)(object)otherRigidbody) && Object.op_Implicit((Object)(object)((BraveBehaviour)otherRigidbody).aiActor) && !((BraveBehaviour)otherRigidbody).aiActor.IsNormalEnemy) { PhysicsEngine.SkipCollision = true; } } private void OnCollision(CollisionData collision) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Invalid comparison between Unknown and I4 if (((int)collision.collisionType != 0 || !((Object)(object)((BraveBehaviour)collision.OtherRigidbody).projectile != (Object)null)) && ((BraveMathCollege.ActualSign(((BraveBehaviour)this).specRigidbody.Velocity.x) != 0f && Mathf.Sign(((CastResult)collision).Normal.x) != Mathf.Sign(((BraveBehaviour)this).specRigidbody.Velocity.x)) || (BraveMathCollege.ActualSign(((BraveBehaviour)this).specRigidbody.Velocity.y) != 0f && Mathf.Sign(((CastResult)collision).Normal.y) != Mathf.Sign(((BraveBehaviour)this).specRigidbody.Velocity.y))) && ((BraveMathCollege.ActualSign(((BraveBehaviour)this).specRigidbody.Velocity.x) != 0f && Mathf.Sign(((CastResult)collision).Contact.x - ((BraveBehaviour)this).specRigidbody.UnitCenter.x) == Mathf.Sign(((BraveBehaviour)this).specRigidbody.Velocity.x)) || (BraveMathCollege.ActualSign(((BraveBehaviour)this).specRigidbody.Velocity.y) != 0f && Mathf.Sign(((CastResult)collision).Contact.y - ((BraveBehaviour)this).specRigidbody.UnitCenter.y) == Mathf.Sign(((BraveBehaviour)this).specRigidbody.Velocity.y)))) { StopRolling((int)collision.collisionType == 1); } } private bool IsRollAnimation() { try { if (!hasRollingAnimations) { return false; } for (int i = 0; i < rollAnimations.Length; i++) { if (((BraveBehaviour)this).spriteAnimator.CurrentClip.name == rollAnimations[i]) { return true; } } } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"Exception Caught at [IsRollAnimation] in ExpandKickableObject class.", false); ETGModConsole.Log((object)ex.Message, false); ETGModConsole.Log((object)(ex.StackTrace + ex.Source), false); } return false; } return false; } private void StopRolling(bool bounceBack) { //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_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Expected O, but got Unknown //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Expected O, but got Unknown if (bounceBack && !m_isBouncingBack) { ((MonoBehaviour)this).StartCoroutine(HandleBounceback()); return; } ((BraveBehaviour)this).spriteAnimator.Stop(); if (hasRollingAnimations && IsRollAnimation()) { tk2dSpriteAnimationClip currentClip = ((BraveBehaviour)this).spriteAnimator.CurrentClip; ((BraveBehaviour)this).spriteAnimator.Stop(); ((BraveBehaviour)this).spriteAnimator.Sprite.SetSprite(currentClip.frames[currentClip.frames.Length - 1].spriteId); } ((BraveBehaviour)this).specRigidbody.Velocity = Vector2.zero; MinorBreakable component = ((Component)this).GetComponent(); if ((Object)(object)component != (Object)null) { component.onlyVulnerableToGunfire = false; } SpeculativeRigidbody specRigidbody = ((BraveBehaviour)this).specRigidbody; specRigidbody.OnCollision = (Action)Delegate.Remove(specRigidbody.OnCollision, new Action(OnCollision)); SpeculativeRigidbody specRigidbody2 = ((BraveBehaviour)this).specRigidbody; specRigidbody2.MovementRestrictor = (MovementRestrictorDelegate)Delegate.Remove((Delegate?)(object)specRigidbody2.MovementRestrictor, (Delegate?)new MovementRestrictorDelegate(NoPits)); RoomHandler.unassignedInteractableObjects.Add((IPlayerInteractable)(object)this); m_isBouncingBack = false; } private IEnumerator HandleBounceback() { if (!m_lastDirectionKicked.HasValue) { yield break; } m_isBouncingBack = true; IntVector2 value = m_lastDirectionKicked.Value; Vector2 val = ((IntVector2)(ref value)).ToVector2(); Vector2 dirToMove = ((Vector2)(ref val)).normalized * -1f; int num = BraveMathCollege.VectorToQuadrant(dirToMove); ((BraveBehaviour)this).specRigidbody.Velocity = rollSpeed * dirToMove; IntVector2? lastDirectionKicked = m_lastDirectionKicked; m_lastDirectionKicked = ((!lastDirectionKicked.HasValue) ? null : new IntVector2?(lastDirectionKicked.GetValueOrDefault() * -1)); if (hasRollingAnimations) { tk2dSpriteAnimationClip clipByName = ((BraveBehaviour)this).spriteAnimator.GetClipByName(rollAnimations[num]); if ((int)clipByName.wrapMode == 1) { ((BraveBehaviour)this).spriteAnimator.PlayFromFrame(clipByName, clipByName.loopStart); } else { ((BraveBehaviour)this).spriteAnimator.Play(clipByName); } } float ela = 0f; float dura = 1.5f / ((Vector2)(ref ((BraveBehaviour)this).specRigidbody.Velocity)).magnitude; while (ela < dura && m_isBouncingBack) { ela += BraveTime.DeltaTime; ((BraveBehaviour)this).specRigidbody.Velocity = rollSpeed * dirToMove; yield return null; } if (m_isBouncingBack) { StopRolling(bounceBack: false); } } private void ClearOutlines() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) m_lastOutlineDirection = (Direction)(-1); m_lastSpriteId = -1; SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)this).sprite, false); } private IEnumerator HandleBreakTimer() { m_timerIsActive = true; if ((Object)(object)timerVFX != (Object)null) { timerVFX.SetActive(true); } yield return (object)new WaitForSeconds(breakTimerLength); ((BraveBehaviour)this).minorBreakable.Break(); } private void RemoveFromRoomHierarchy() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) Transform hierarchyParent = Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)this).transform.position).hierarchyParent; Transform val = ((BraveBehaviour)this).transform; while ((Object)(object)val.parent != (Object)null) { if ((Object)(object)val.parent == (Object)(object)hierarchyParent) { val.parent = null; break; } val = val.parent; } } private void Kick(SpeculativeRigidbody kickerRigidbody) { //IL_026a: Unknown result type (might be due to invalid IL or missing references) //IL_026f: Unknown result type (might be due to invalid IL or missing references) //IL_020e: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Expected O, but got Unknown //IL_0252: Unknown result type (might be due to invalid IL or missing references) //IL_025c: Expected O, but got Unknown //IL_025c: Unknown result type (might be due to invalid IL or missing references) //IL_0266: Expected O, but got Unknown //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Expected O, but got Unknown //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01ad: Expected O, but got Unknown //IL_01e7: Unknown result type (might be due to invalid IL or missing references) //IL_01f1: Expected O, but got Unknown //IL_01f1: Unknown result type (might be due to invalid IL or missing references) //IL_01fb: Expected O, but got Unknown //IL_0299: Unknown result type (might be due to invalid IL or missing references) //IL_029e: Unknown result type (might be due to invalid IL or missing references) //IL_02a3: Unknown result type (might be due to invalid IL or missing references) //IL_02df: Unknown result type (might be due to invalid IL or missing references) //IL_02fd: Unknown result type (might be due to invalid IL or missing references) //IL_02eb: Unknown result type (might be due to invalid IL or missing references) //IL_0323: Unknown result type (might be due to invalid IL or missing references) //IL_0329: Invalid comparison between Unknown and I4 //IL_0309: Unknown result type (might be due to invalid IL or missing references) //IL_03ae: 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_03b9: Unknown result type (might be due to invalid IL or missing references) //IL_03ca: Unknown result type (might be due to invalid IL or missing references) //IL_03d8: Unknown result type (might be due to invalid IL or missing references) m_WasKicked = true; if (explodesOnKick) { try { if (willDefinitelyExplode) { ((MonoBehaviour)this).Invoke("SelfDestructOnKick", Random.Range(0f, 0.15f)); } else { ((MonoBehaviour)this).Invoke("SelfDestructOnKick", Random.Range(0.25f, 3f)); } } catch (Exception ex) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"Exception Caught at [SelfDestructOnKick] in ExpandKickableObject class.", false); ETGModConsole.Log((object)(ex.Message + ex.Source + ex.StackTrace), false); } } } try { if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).specRigidbody) && !((Behaviour)((BraveBehaviour)this).specRigidbody).enabled) { return; } RemoveFromRoomHierarchy(); List overlappingRigidbodies = PhysicsEngine.Instance.GetOverlappingRigidbodies(((BraveBehaviour)this).specRigidbody.PrimaryPixelCollider, (int?)null, false); for (int i = 0; i < overlappingRigidbodies.Count; i++) { if (Object.op_Implicit((Object)(object)overlappingRigidbodies[i]) && Object.op_Implicit((Object)(object)((BraveBehaviour)overlappingRigidbodies[i]).minorBreakable) && !((BraveBehaviour)overlappingRigidbodies[i]).minorBreakable.IsBroken && !((BraveBehaviour)overlappingRigidbodies[i]).minorBreakable.onlyVulnerableToGunfire && !((BraveBehaviour)overlappingRigidbodies[i]).minorBreakable.OnlyBrokenByCode) { ((BraveBehaviour)overlappingRigidbodies[i]).minorBreakable.Break(); } } int value = ~CollisionMask.LayerToMask((CollisionLayer)1, (CollisionLayer)0); PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(((BraveBehaviour)this).specRigidbody, (int?)value, false); SpeculativeRigidbody specRigidbody = ((BraveBehaviour)this).specRigidbody; if ((Object)(object)specRigidbody != (Object)null && specRigidbody.MovementRestrictor != null) { specRigidbody.MovementRestrictor = (MovementRestrictorDelegate)Delegate.Combine((Delegate?)(object)specRigidbody.MovementRestrictor, (Delegate?)new MovementRestrictorDelegate(NoPits)); SpeculativeRigidbody specRigidbody2 = ((BraveBehaviour)this).specRigidbody; specRigidbody2.OnCollision = (Action)Delegate.Combine(specRigidbody2.OnCollision, new Action(OnCollision)); SpeculativeRigidbody specRigidbody3 = ((BraveBehaviour)this).specRigidbody; specRigidbody3.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Combine((Delegate?)(object)specRigidbody3.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(OnPreCollision)); } else if ((Object)(object)specRigidbody != (Object)null) { specRigidbody.MovementRestrictor = new MovementRestrictorDelegate(NoPits); SpeculativeRigidbody specRigidbody4 = ((BraveBehaviour)this).specRigidbody; specRigidbody4.OnCollision = (Action)Delegate.Combine(specRigidbody4.OnCollision, new Action(OnCollision)); SpeculativeRigidbody specRigidbody5 = ((BraveBehaviour)this).specRigidbody; specRigidbody5.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Combine((Delegate?)(object)specRigidbody5.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(OnPreCollision)); } int quadrant; IntVector2 flipDirection = GetFlipDirection(kickerRigidbody, out quadrant); if (AllowTopWallTraversal) { ((BraveBehaviour)this).specRigidbody.AddCollisionLayerOverride(CollisionMask.LayerToMask((CollisionLayer)9)); } ((BraveBehaviour)this).specRigidbody.Velocity = rollSpeed * ((IntVector2)(ref flipDirection)).ToVector2(); tk2dSpriteAnimationClip val = null; if (hasRollingAnimations) { val = ((BraveBehaviour)this).spriteAnimator.GetClipByName(rollAnimations[quadrant]); } bool flag = false; if (m_lastDirectionKicked.HasValue) { if (m_lastDirectionKicked.Value.y == 0 && flipDirection.y == 0) { flag = true; } if (m_lastDirectionKicked.Value.x == 0 && flipDirection.x == 0) { flag = true; } } if (hasRollingAnimations) { if (val != null && (int)val.wrapMode == 1 && flag) { ((BraveBehaviour)this).spriteAnimator.PlayFromFrame(val, val.loopStart); } else { ((BraveBehaviour)this).spriteAnimator.Play(val); } } if (triggersBreakTimer && !m_timerIsActive) { ((MonoBehaviour)this).StartCoroutine(HandleBreakTimer()); } MinorBreakable component = ((Component)this).GetComponent(); if ((Object)(object)component != (Object)null) { if (impactAnimations[quadrant] != null) { component.breakAnimName = impactAnimations[quadrant]; } component.onlyVulnerableToGunfire = true; } IntVector2 val2 = Vector2Extensions.ToIntVector2(TransformExtensions.PositionVector2(((BraveBehaviour)this).transform), (VectorConversions)2); GameManager.Instance.Dungeon.data[val2].isOccupied = false; m_lastDirectionKicked = flipDirection; } catch (Exception) { if (ExpandSettings.debugMode) { ETGModConsole.Log((object)"Exception Caught at [Kick] in ExpandKickableObject class.", false); } } } public IntVector2 GetFlipDirection(SpeculativeRigidbody kickerRigidbody, out int quadrant) { //IL_0025: 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_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: 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_006c: Unknown result type (might be due to invalid IL or missing references) //IL_004c: 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_005c: Unknown result type (might be due to invalid IL or missing references) Vector2 val = default(Vector2); ((Vector2)(ref val))..ctor(0f, 1f); if ((Object)(object)((BraveBehaviour)this).specRigidbody != (Object)null) { val = ((BraveBehaviour)this).specRigidbody.UnitCenter - kickerRigidbody.UnitCenter; } else if ((Object)(object)((BraveBehaviour)this).sprite != (Object)null) { val = ((BraveBehaviour)this).sprite.WorldCenter - kickerRigidbody.UnitCenter; } quadrant = BraveMathCollege.VectorToQuadrant(val); return IntVector2.Cardinals[quadrant]; } private void SelfDestructOnKick() { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Unknown result type (might be due to invalid IL or missing references) //IL_0184: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) int totalCurse = PlayerStats.GetTotalCurse(); int totalCoolness = PlayerStats.GetTotalCoolness(); float num = 0.25f; float num2 = 150f; Vector2 worldCenter = ((BraveBehaviour)this).sprite.WorldCenter; bool flag = BraveUtility.RandomBool(); if (willDefinitelyExplode) { flag = false; num2 = 200f; } else { if (totalCoolness >= 3) { flag = false; num2 = 175f; } if (totalCurse >= 3) { num = 0.35f; num2 = 200f; } } if (!flag) { TableExplosionData.damageToPlayer = 0f; } if (spawnObjectOnSelfDestruct && (Object)(object)SpawnedObject != (Object)null && !m_objectSpawned) { m_objectSpawned = true; GameObject val = ExpandUtility.GenerateDungeonPlacable(SpawnedObject, spawnsEnemy: false, useExternalPrefab: true).InstantiateObject(Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)this).transform.position), Vector2Extensions.ToIntVector2(((BraveBehaviour)this).specRigidbody.GetUnitCenter((ColliderType)2) - ((IntVector2)(ref Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)this).transform.position).area.basePosition)).ToVector2(), (VectorConversions)0), false, false); val.transform.parent = Vector3Extensions.GetAbsoluteRoom(((BraveBehaviour)this).transform.position).hierarchyParent; if ((Object)(object)val.GetComponent() != (Object)null) { val.GetComponent().RespawnsIfPitfall = true; } } if ((Random.value <= num) | willDefinitelyExplode) { if (useDefaultExplosion) { Exploder.DoDefaultExplosion(Vector2.op_Implicit(worldCenter), Vector2.zero, (Action)null, true, (CoreDamageTypes)0, false); Exploder.DoRadialDamage(num2, Vector2.op_Implicit(worldCenter), 4f, flag, true, true, (VFXPool)null); } else { Exploder.Explode(Vector2.op_Implicit(worldCenter), TableExplosionData, Vector2.zero, (Action)null, false, (CoreDamageTypes)0, false); } Object.Destroy((Object)(object)((Component)this).gameObject); } } } }