Some mods may be broken due to the recent Alloyed Collective update.
Decompiled source of EntropyStages v0.9.9
EntropyStages.dll
Decompiled 2 years agousing System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using Microsoft.CodeAnalysis; using On.RoR2; using On.RoR2.UI; using R2API; using RoR2; using RoR2.Navigation; using RoR2.Skills; using RoR2.UI; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Networking; using UnityEngine.SceneManagement; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName = ".NET Standard 2.0")] [assembly: AssemblyCompany("EntropyStages")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("EntropyStages")] [assembly: AssemblyTitle("EntropyStages")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace EntropyStages { public class CrystalController : MonoBehaviour { public SpawnCard crystalSpawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/WeeklyRun/bscTimeCrystal.asset").WaitForCompletion(); public uint crystalCount = 3u; public uint crystalsRequiredToKill = 3u; private List<OnDestroyCallback> crystalActiveList = new List<OnDestroyCallback>(); public uint crystalsKilled => (uint)(crystalCount - crystalActiveList.Count); public static event Action<CrystalController> onBossGroupStartServer; public void OnStart() { if (NetworkServer.active) { CrystalController.onBossGroupStartServer?.Invoke(this); } } private void OnEnable() { //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_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Expected O, but got Unknown DirectorPlacementRule val = new DirectorPlacementRule(); val.placementMode = (PlacementMode)4; for (int i = 0; i < crystalCount; i++) { crystalActiveList.Add(OnDestroyCallback.AddCallback(DirectorCore.instance.TrySpawnObject(new DirectorSpawnRequest(crystalSpawnCard, val, Run.instance.stageRng)), (Action<OnDestroyCallback>)delegate(OnDestroyCallback component) { crystalActiveList.Remove(component); })); } InstanceTracker.Add<CrystalController>(this); ObjectivePanelController.collectObjectiveSources += ReportObjective; } private void OnDisable() { ObjectivePanelController.collectObjectiveSources -= ReportObjective; InstanceTracker.Remove<CrystalController>(this); } public void ReportObjective(CharacterMaster master, List<ObjectiveSourceDescriptor> output) { //IL_0012: 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 (crystalsKilled != crystalCount) { output.Add(new ObjectiveSourceDescriptor { source = (Object)(object)this, master = master, objectiveType = typeof(DestroyTimeCrystals) }); } } public void FixedUpdate() { //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_0093: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Expected O, but got Unknown if (!Object.op_Implicit((Object)(object)TeleporterInteraction.instance)) { return; } bool flag = crystalsRequiredToKill > crystalsKilled; if (flag == TeleporterInteraction.instance.locked) { return; } if (flag) { if (NetworkServer.active) { TeleporterInteraction.instance.locked = true; } return; } if (NetworkServer.active) { TeleporterInteraction.instance.locked = false; } ChildLocator component = ((Component)((Component)TeleporterInteraction.instance).GetComponent<ModelLocator>().modelTransform).GetComponent<ChildLocator>(); if (Object.op_Implicit((Object)(object)component)) { Transform val = component.FindChild("TimeCrystalBeaconBlocker"); EffectManager.SpawnEffect(LegacyResourcesAPI.Load<GameObject>("Prefabs/Effects/TimeCrystalDeath"), new EffectData { origin = ((Component)val).transform.position }, false); ((Component)val).gameObject.SetActive(false); ((Behaviour)this).enabled = false; } } } [BepInPlugin("com.Nuxlar.EntropyStages", "EntropyStages", "0.9.9")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public class EntropyStages : BaseUnityPlugin { private SpawnCard teleporterSpawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/Teleporters/iscTeleporter.asset").WaitForCompletion(); private GameObject tearPortal = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/PortalArena/PortalArena.prefab").WaitForCompletion(), "NuxVoidTear"); private InteractableSpawnCard deepVoidSpawnCard = Addressables.LoadAssetAsync<InteractableSpawnCard>((object)"RoR2/DLC1/DeepVoidPortal/iscDeepVoidPortal.asset").WaitForCompletion(); private GameObject tear = PrefabAPI.InstantiateClone(((Component)Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/gauntlets/GauntletEntranceOrb.prefab").WaitForCompletion().transform.GetChild(0)).gameObject, "NuxTearVFX"); private EliteDef voidElite = Addressables.LoadAssetAsync<EliteDef>((object)"RoR2/DLC1/EliteVoid/edVoid.asset").WaitForCompletion(); private SceneDef voidPlains = Addressables.LoadAssetAsync<SceneDef>((object)"RoR2/DLC1/itgolemplains/itgolemplains.asset").WaitForCompletion(); private SceneDef voidAphelian = Addressables.LoadAssetAsync<SceneDef>((object)"RoR2/DLC1/itancientloft/itancientloft.asset").WaitForCompletion(); private SceneDef voidAqueduct = Addressables.LoadAssetAsync<SceneDef>((object)"RoR2/DLC1/itgoolake/itgoolake.asset").WaitForCompletion(); private SceneDef voidRallypoint = Addressables.LoadAssetAsync<SceneDef>((object)"RoR2/DLC1/itfrozenwall/itfrozenwall.asset").WaitForCompletion(); private SceneDef voidAbyssal = Addressables.LoadAssetAsync<SceneDef>((object)"RoR2/DLC1/itdampcave/itdampcave.asset").WaitForCompletion(); private SceneDef voidMeadow = Addressables.LoadAssetAsync<SceneDef>((object)"RoR2/DLC1/itskymeadow/itskymeadow.asset").WaitForCompletion(); private SceneCollection sc1 = Addressables.LoadAssetAsync<SceneCollection>((object)"RoR2/Base/SceneGroups/sgStage1.asset").WaitForCompletion(); private SceneCollection sc2 = Addressables.LoadAssetAsync<SceneCollection>((object)"RoR2/Base/SceneGroups/sgStage2.asset").WaitForCompletion(); private SceneCollection sc3 = Addressables.LoadAssetAsync<SceneCollection>((object)"RoR2/Base/SceneGroups/sgStage3.asset").WaitForCompletion(); private SceneCollection sc4 = Addressables.LoadAssetAsync<SceneCollection>((object)"RoR2/Base/SceneGroups/sgStage4.asset").WaitForCompletion(); private SceneCollection sc5 = Addressables.LoadAssetAsync<SceneCollection>((object)"RoR2/Base/SceneGroups/sgStage5.asset").WaitForCompletion(); private InteractableSpawnCard iscVoidTear = ScriptableObject.CreateInstance<InteractableSpawnCard>(); private static DirectorCardCategorySelection[] dccsInteractables = (DirectorCardCategorySelection[])(object)new DirectorCardCategorySelection[1] { Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/DLC1/GameModes/InfiniteTowerRun/InfiniteTowerAssets/dccsInfiniteTowerInteractables.asset").WaitForCompletion() }; private GameObject voidSeed = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/VoidCamp/VoidCamp.prefab").WaitForCompletion(), "RescueMissionNux"); private static Material shieldMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Engi/matDefenseMatrix.mat").WaitForCompletion(); private static Material shieldMat2 = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Engi/matDefenseMatrixCenter.mat").WaitForCompletion(); private GameObject survivorPod = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/SurvivorPod/SurvivorPod.prefab").WaitForCompletion(), "EmergencyPodNux"); private InteractableSpawnCard interactableSpawnCard = ScriptableObject.CreateInstance<InteractableSpawnCard>(); private static string[] voidStageNames = new string[6] { "itgolemplains", "itgoolake", "itancientloft", "itfrozenwall", "itdampcave", "itskymeadow" }; public static ConfigEntry<float> riftChance; public static ConfigEntry<bool> balanceToggle; private static ConfigFile ESConfig { get; set; } public void Awake() { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Expected O, but got Unknown //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Expected O, but got Unknown //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Expected O, but got Unknown //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: 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_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Expected O, but got Unknown //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Expected O, but got Unknown //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Expected O, but got Unknown ESConfig = new ConfigFile(Paths.ConfigPath + "\\com.Nuxlar.EntropyStages.cfg", true); riftChance = ESConfig.Bind<float>("General", "Rift Spawn Chance", 0.25f, "How likely is it for a void rift to appear?"); balanceToggle = ESConfig.Bind<bool>("General", "Toggle Stage Balancer", true, "Enable/Disable vanilla stage balancing tweaks."); if (balanceToggle.Value) { new StageBalancer(); } SetupVoidTear(); AddVoidStagesToPool(); Stage.Start += new hook_Start(Stage_Start); CombatDirector.Init += new hook_Init(CombatDirector_Init); ClassicStageInfo.Start += new hook_Start(ClassicStageInfo_Start); VoidSuppressorBehavior.Start += new hook_Start(VoidSuppressorBehavior_Start); EliteTierDef.GetRandomAvailableEliteDef += new hook_GetRandomAvailableEliteDef(EliteTierDef_GetRandomAvailableEliteDef); DestroyTimeCrystals.GenerateString += new hook_GenerateString(DestroyTimeCrystals_GenerateString); TeleporterInteraction.AttemptToSpawnAllEligiblePortals += new hook_AttemptToSpawnAllEligiblePortals(TeleporterInteraction_AttemptToSpawnAllEligiblePortals); } private void SetupVoidTear() { //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Expected O, but got Unknown //IL_00cf: 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_010d: 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_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_0186: 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_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) tearPortal.GetComponent<GenericInteraction>().contextToken = "Enter ???"; tearPortal.GetComponent<SceneExitController>().destinationScene = voidPlains; tearPortal.GetComponent<SceneExitController>().useRunNextStageScene = false; foreach (Transform item in tearPortal.transform.GetChild(0)) { Transform val = item; if (((Object)val).name != "Collider") { Object.Destroy((Object)(object)((Component)val).gameObject); } } Transform transform = Object.Instantiate<GameObject>(tear, tearPortal.transform).transform; Object.Destroy((Object)(object)((Component)transform).GetComponent<ObjectScaleCurve>()); transform.localScale = new Vector3(0.75f, 0.75f, 0.75f); transform.localPosition = new Vector3(0f, 5f, 0f); transform.localRotation = Quaternion.identity; transform.Rotate(new Vector3(0f, 0f, 45f)); ((Object)iscVoidTear).name = "iscVoidTearNux"; ((SpawnCard)iscVoidTear).prefab = tearPortal; ((SpawnCard)iscVoidTear).sendOverNetwork = ((SpawnCard)deepVoidSpawnCard).sendOverNetwork; ((SpawnCard)iscVoidTear).hullSize = ((SpawnCard)deepVoidSpawnCard).hullSize; ((SpawnCard)iscVoidTear).nodeGraphType = ((SpawnCard)deepVoidSpawnCard).nodeGraphType; ((SpawnCard)iscVoidTear).requiredFlags = ((SpawnCard)deepVoidSpawnCard).requiredFlags; ((SpawnCard)iscVoidTear).forbiddenFlags = ((SpawnCard)deepVoidSpawnCard).forbiddenFlags; PrefabAPI.RegisterNetworkPrefab(tearPortal); } private void VoidSuppressorBehavior_Start(orig_Start orig, VoidSuppressorBehavior self) { orig.Invoke(self); self.numItemsToReveal = 3; self.itemsSuppressedPerPurchase = 3; } private void AddVoidStagesToPool() { List<SceneDef> obj = new List<SceneDef> { voidPlains }; List<SceneDef> list = new List<SceneDef> { voidAphelian, voidAqueduct }; List<SceneDef> list2 = new List<SceneDef> { voidRallypoint, voidMeadow }; List<SceneDef> list3 = new List<SceneDef> { voidAbyssal }; foreach (SceneDef item in obj) { item.destinationsGroup = sc2; } foreach (SceneDef item2 in list) { item2.destinationsGroup = sc3; } foreach (SceneDef item3 in list2) { item3.destinationsGroup = sc4; } foreach (SceneDef item4 in list3) { item4.destinationsGroup = sc5; } } private string DestroyTimeCrystals_GenerateString(orig_GenerateString orig, ObjectiveTracker self) { //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) Scene activeScene = SceneManager.GetActiveScene(); string name = ((Scene)(ref activeScene)).name; if (!voidStageNames.Contains(name)) { return orig.Invoke(self); } CrystalController crystalController = (CrystalController)(object)InstanceTracker.FindInstancesEnumerable(typeof(CrystalController)).First(); return string.Format(Language.GetString(self.baseToken), crystalController.crystalsKilled, crystalController.crystalsRequiredToKill); } private void CombatDirector_Init(orig_Init orig) { orig.Invoke(); if (EliteAPI.VanillaEliteTiers.Length > 2) { EliteTierDef obj = EliteAPI.VanillaEliteTiers[2]; List<EliteDef> list = obj.eliteTypes.ToList(); list.Add(voidElite); obj.eliteTypes = list.ToArray(); } if (EliteAPI.VanillaEliteTiers.Length > 1) { EliteTierDef obj2 = EliteAPI.VanillaEliteTiers[1]; List<EliteDef> list2 = obj2.eliteTypes.ToList(); list2.Add(voidElite); obj2.eliteTypes = list2.ToArray(); } } private EliteDef EliteTierDef_GetRandomAvailableEliteDef(orig_GetRandomAvailableEliteDef orig, EliteTierDef self, Xoroshiro128Plus rng) { //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) Scene activeScene = SceneManager.GetActiveScene(); string name = ((Scene)(ref activeScene)).name; EliteDef val = orig.Invoke(self, rng); if (!voidStageNames.Contains(name) && (Object)(object)val == (Object)(object)voidElite) { do { val = orig.Invoke(self, rng); } while (!((Object)(object)val != (Object)(object)voidElite)); return val; } return val; } private GameObject SpawnTear(TeleporterInteraction tpInteraction) { //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_0026: 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_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_0055: Expected O, but got Unknown //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Expected O, but got Unknown return DirectorCore.instance.TrySpawnObject(new DirectorSpawnRequest((SpawnCard)(object)iscVoidTear, new DirectorPlacementRule { minDistance = 10f, maxDistance = 40f, placementMode = (PlacementMode)1, position = ((Component)tpInteraction).transform.position, spawnOnTarget = ((Component)tpInteraction).transform }, tpInteraction.rng)); } private void TeleporterInteraction_AttemptToSpawnAllEligiblePortals(orig_AttemptToSpawnAllEligiblePortals orig, TeleporterInteraction self) { //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) Scene activeScene = SceneManager.GetActiveScene(); string name = ((Scene)(ref activeScene)).name; if (Random.value < riftChance.Value) { switch (name) { case "golemplains": { GameObject val = SpawnTear(self); if (Object.op_Implicit((Object)(object)val)) { val.GetComponent<SceneExitController>().destinationScene = voidPlains; } break; } case "goolake": { GameObject val = SpawnTear(self); if (Object.op_Implicit((Object)(object)val)) { val.GetComponent<SceneExitController>().destinationScene = voidAqueduct; } break; } case "ancientloft": { GameObject val = SpawnTear(self); if (Object.op_Implicit((Object)(object)val)) { val.GetComponent<SceneExitController>().destinationScene = voidAphelian; } break; } case "frozenwall": { GameObject val = SpawnTear(self); if (Object.op_Implicit((Object)(object)val)) { val.GetComponent<SceneExitController>().destinationScene = voidRallypoint; } break; } case "dampcave": { GameObject val = SpawnTear(self); if (Object.op_Implicit((Object)(object)val)) { val.GetComponent<SceneExitController>().destinationScene = voidAbyssal; } break; } case "skymeadow": { GameObject val = SpawnTear(self); if (Object.op_Implicit((Object)(object)val)) { val.GetComponent<SceneExitController>().destinationScene = voidMeadow; } break; } } } orig.Invoke(self); } private void ClassicStageInfo_Start(orig_Start orig, ClassicStageInfo self) { //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) Scene activeScene = SceneManager.GetActiveScene(); switch (((Scene)(ref activeScene)).name) { case "itgolemplains": self.sceneDirectorInteractibleCredits /= 4; self.sceneDirectorMonsterCredits = 100; break; case "itgoolake": self.sceneDirectorInteractibleCredits /= 4; self.sceneDirectorMonsterCredits = 150; break; case "itancientloft": self.sceneDirectorInteractibleCredits /= 4; self.sceneDirectorMonsterCredits = 150; break; case "itfrozenwall": self.sceneDirectorInteractibleCredits /= 4; self.sceneDirectorMonsterCredits = 175; break; case "itdampcave": self.sceneDirectorInteractibleCredits /= 4; self.sceneDirectorMonsterCredits = 200; break; case "itskymeadow": self.sceneDirectorInteractibleCredits /= 4; self.sceneDirectorMonsterCredits = 250; break; } orig.Invoke(self); } private void Stage_Start(orig_Start orig, Stage self) { //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_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Expected O, but got Unknown //IL_00d2: 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_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Expected O, but got Unknown //IL_0144: 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_0164: 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_01c3: 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_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_01fd: 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_020a: 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_0211: 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_023b: Expected O, but got Unknown //IL_023e: 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_0252: 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_0271: Expected O, but got Unknown Scene activeScene = SceneManager.GetActiveScene(); string name = ((Scene)(ref activeScene)).name; if (voidStageNames.Contains(name)) { GameObject val = GameObject.Find("InfiniteTowerSceneDirector"); if (Object.op_Implicit((Object)(object)val)) { if (!Object.op_Implicit((Object)(object)val.GetComponent<DirectorCore>())) { val.AddComponent<DirectorCore>(); } if (((NetworkBehaviour)self).isServer) { val.AddComponent<CrystalController>(); SceneDirector component = val.GetComponent<SceneDirector>(); if (Object.op_Implicit((Object)(object)component)) { if (val.GetComponents<CombatDirector>().Length == 0) { CombatDirector val2 = val.AddComponent<CombatDirector>(); CombatDirector val3 = val.AddComponent<CombatDirector>(); val2.customName = "Director"; val2.minRerollSpawnInterval = 4.5f; val2.maxRerollSpawnInterval = 9f; val2.creditMultiplier = 1.075f; val2.onSpawnedServer = new OnSpawnedServer(); val2.moneyWaveIntervals = (RangeFloat[])(object)new RangeFloat[1] { new RangeFloat { min = 1f, max = 1f } }; val3.customName = "Director"; val3.minRerollSpawnInterval = 22.5f; val3.maxRerollSpawnInterval = 30f; val3.creditMultiplier = 1.075f; val3.onSpawnedServer = new OnSpawnedServer(); val3.moneyWaveIntervals = (RangeFloat[])(object)new RangeFloat[1] { new RangeFloat { min = 1f, max = 1f } }; val2.Awake(); val3.Awake(); ((Behaviour)val2).enabled = true; ((Behaviour)val3).enabled = true; component.PopulateScene(); component.teleporterSpawnCard = teleporterSpawnCard; component.PlaceTeleporter(); } if (!Object.op_Implicit((Object)(object)TeleporterInteraction.instance)) { return; } Vector3 position = ((Component)TeleporterInteraction.instance).transform.position; NodeGraph nodeGraph = SceneInfo.instance.GetNodeGraph((GraphType)0); Vector3 val4 = default(Vector3); foreach (NodeIndex item in nodeGraph.FindNodesInRangeWithFlagConditions(position, 0f, 50f, (HullMask)1, (NodeFlags)0, (NodeFlags)4, false)) { if (nodeGraph.GetNodePosition(item, ref val4)) { SpawnPoint.AddSpawnPoint(val4, Quaternion.LookRotation(position, Vector3.up)); } } DirectorPlacementRule val5 = new DirectorPlacementRule(); val5.placementMode = (PlacementMode)4; DirectorCore.instance.TrySpawnObject(new DirectorSpawnRequest(Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/VoidSuppressor/iscVoidSuppressor.asset").WaitForCompletion(), val5, Run.instance.stageRng)); } } if (!Object.op_Implicit((Object)(object)TeleporterInteraction.instance)) { return; } ChildLocator component2 = ((Component)((Component)TeleporterInteraction.instance).GetComponent<ModelLocator>().modelTransform).GetComponent<ChildLocator>(); if (!Object.op_Implicit((Object)(object)component2)) { return; } ((Component)component2.FindChild("TimeCrystalProps")).gameObject.SetActive(true); ((Component)component2.FindChild("TimeCrystalBeaconBlocker")).gameObject.SetActive(true); } } orig.Invoke(self); } } [RequireComponent(typeof(MeshFilter))] public class ReverseNormals : MonoBehaviour { private void Start() { //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) Component component = ((Component)this).GetComponent(typeof(MeshFilter)); MeshFilter val = (MeshFilter)(object)((component is MeshFilter) ? component : null); if ((Object)(object)val != (Object)null) { Mesh mesh = val.mesh; Vector3[] normals = mesh.normals; for (int i = 0; i < normals.Length; i++) { normals[i] = -normals[i]; } mesh.normals = normals; for (int j = 0; j < mesh.subMeshCount; j++) { int[] triangles = mesh.GetTriangles(j); for (int k = 0; k < triangles.Length; k += 3) { int num = triangles[k]; triangles[k] = triangles[k + 1]; triangles[k + 1] = num; } mesh.SetTriangles(triangles, j); } } ((Component)this).GetComponent<MeshCollider>().sharedMesh = val.mesh; } } public class StageBalancer : MonoBehaviour { private SkillDef AWUUlt = Addressables.LoadAssetAsync<SkillDef>((object)"RoR2/Base/RoboBallBoss/SuperFireDelayKnockup.asset").WaitForCompletion(); private SpawnCard categoryChest2Healing = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/CategoryChest2/iscCategoryChest2Healing.asset").WaitForCompletion(); private SpawnCard categoryChest2Damage = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/CategoryChest2/iscCategoryChest2Damage.asset").WaitForCompletion(); private SpawnCard larva = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/AcidLarva/cscAcidLarva.asset").WaitForCompletion(); private SpawnCard vulture = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/Vulture/cscVulture.asset").WaitForCompletion(); private SpawnCard probe = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/RoboBallBoss/cscRoboBallMini.asset").WaitForCompletion(); private SpawnCard alphaConstruct = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/MajorAndMinorConstruct/cscMinorConstruct.asset").WaitForCompletion(); private SpawnCard apothecary = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/ClayGrenadier/cscClayGrenadier.asset").WaitForCompletion(); private SpawnCard templar = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ClayBruiser/cscClayBruiser.asset").WaitForCompletion(); private SpawnCard lemurian = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/Lemurian/cscLemurian.asset").WaitForCompletion(); private SpawnCard vermin = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/Vermin/cscVermin.asset").WaitForCompletion(); private SpawnCard hermitCrab = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/HermitCrab/cscHermitCrab.asset").WaitForCompletion(); private SpawnCard grovetender = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/Gravekeeper/cscGravekeeper.asset").WaitForCompletion(); private SpawnCard xiConstruct = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/MajorAndMinorConstruct/cscMegaConstruct.asset").WaitForCompletion(); private SpawnCard magmaWorm = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/MagmaWorm/cscMagmaWorm.asset").WaitForCompletion(); private DirectorCardCategorySelection aqueductMonsters = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/goolake/dccsGooLakeMonstersDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection rpdMonsters = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/frozenwall/dccsFrozenWallMonstersDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection poolsMonsters = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/DLC1/sulfurpools/dccsSulfurPoolsMonstersDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection acresMonsters = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/wispgraveyard/dccsWispGraveyardMonstersDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection sirensMonsters = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/shipgraveyard/dccsShipgraveyardMonstersDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection abyssalMonsters = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/dampcave/dccsDampCaveMonstersDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection groveMonsters = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/rootjungle/dccsRootJungleMonstersDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection meadowMonsters = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/skymeadow/dccsSkyMeadowMonstersDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection forestInteractables = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/DLC1/snowyforest/dccsSnowyForestInteractablesDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection plainsInteractables = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/golemplains/dccsGolemplainsInteractablesDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection bbInteractables = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/blackbeach/dccsBlackBeachInteractablesDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection aphelianInteractables = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/DLC1/ancientloft/dccsAncientLoftInteractablesDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection aqueductInteractables = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/goolake/dccsGooLakeInteractablesDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection wetlandInteractables = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/foggyswamp/dccsFoggySwampInteractablesDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection acresInteractables = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/wispgraveyard/dccsWispGraveyardInteractablesDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection poolsInteractables = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/DLC1/sulfurpools/dccsSulfurPoolsInteractablesDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection rpdInteractables = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/frozenwall/dccsFrozenWallInteractablesDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection sirensInteractables = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/shipgraveyard/dccsShipgraveyardInteractablesDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection groveInteractables = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/rootjungle/dccsRootJungleInteractablesDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection abyssalInteractables = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/dampcave/dccsDampCaveInteractablesDLC1.asset").WaitForCompletion(); public StageBalancer() { //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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_0186: 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_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_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_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_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_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_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_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_0246: 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_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_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_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_02a6: 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_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_02d6: 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_02ee: 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_0306: 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_031e: 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_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_0361: Unknown result type (might be due to invalid IL or missing references) //IL_036b: Expected O, but got Unknown //IL_0372: Unknown result type (might be due to invalid IL or missing references) //IL_037c: Expected O, but got Unknown //IL_0383: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Expected O, but got Unknown //IL_0394: Unknown result type (might be due to invalid IL or missing references) //IL_039e: Expected O, but got Unknown //IL_03a5: Unknown result type (might be due to invalid IL or missing references) //IL_03af: Expected O, but got Unknown //IL_03b6: Unknown result type (might be due to invalid IL or missing references) //IL_03c0: Expected O, but got Unknown AWUUlt.beginSkillCooldownOnSkillEnd = true; Stage.Start += new hook_Start(Stage_Start); ClassicStageInfo.Start += new hook_Start(ClassicStageInfo_Start); TimedChestController.OnEnable += new hook_OnEnable(TimedChestController_OnEnable); GoldshoresMissionController.Start += new hook_Start(GoldshoresMissionController_Start); MoonBatteryMissionController.Awake += new hook_Awake(MoonBatteryMissionController_Awake); VoidStageMissionController.Start += new hook_Start(VoidStageMissionController_Start); ChangeCatChest(forestInteractables, categoryChest2Healing, "iscCategoryChest2Damage"); ChangeCatChest(plainsInteractables, categoryChest2Damage, "iscCategoryChest2Healing"); AddMiniboss(aqueductMonsters, templar); ChangeCatChest(aqueductInteractables, categoryChest2Healing, "iscCategoryChest2Damage"); ChangeCatChest(wetlandInteractables, categoryChest2Damage, "iscCategoryChest2Healing"); RemoveAphelianChest(); ChangeEnemy(rpdMonsters, alphaConstruct, "cscVerminSnowy"); ChangeEnemy(poolsMonsters, hermitCrab, "cscMinorConstruct"); ChangeEnemy(acresMonsters, lemurian, "cscBeetle"); ChangeMiniboss(acresMonsters, apothecary, "cscBeetleGuard"); ChangeBoss(poolsMonsters, magmaWorm, "cscMegaConstruct"); ChangeBoss(rpdMonsters, xiConstruct, "cscClayBoss"); ChangeCatChest(acresInteractables, categoryChest2Healing, "iscCategoryChest2Damage"); ChangeCatChest(poolsInteractables, categoryChest2Damage, "iscCategoryChest2Healing"); AcresBarrelIncrease(); PoolsBarrelDecrease(); ChangeEnemy(sirensMonsters, lemurian, "cscAcidLarva"); ChangeEnemy(groveMonsters, alphaConstruct, "cscAcidLarva"); ChangeEnemy(abyssalMonsters, larva, "cscHermitCrab"); ChangeBoss(groveMonsters, grovetender, "cscClayBoss"); ChangeBoss(groveMonsters, xiConstruct, "cscVagrant"); ChangeCatChest(abyssalInteractables, categoryChest2Healing, "iscCategoryChest2Damage"); ChangeCatChest(sirensInteractables, categoryChest2Damage, "iscCategoryChest2Healing"); BalanceSirenGrove(); SirensDroneShrineDecrease(); ChangeEnemy(meadowMonsters, vulture, "cscMinorConstruct"); ChangeBoss(meadowMonsters, magmaWorm, "cscMegaConstruct"); } private void InspectMonsters(DirectorCardCategorySelection dccs) { //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) for (int i = 0; i < dccs.categories.Length; i++) { Category val = dccs.categories[i]; Debug.LogWarning((object)val.name); Debug.LogWarning((object)"--------------------------------------"); DirectorCard[] cards = val.cards; for (int j = 0; j < cards.Length; j++) { Debug.LogWarning((object)((Object)cards[j].spawnCard).name); } } } private void GoldshoresMissionController_Start(orig_Start orig, GoldshoresMissionController self) { self.beaconsToSpawnOnMap = 4; orig.Invoke(self); } private void VoidStageMissionController_Start(orig_Start orig, VoidStageMissionController self) { self.batteryCount = 2; orig.Invoke(self); } private void MoonBatteryMissionController_Awake(orig_Awake orig, MoonBatteryMissionController self) { orig.Invoke(self); self._numRequiredBatteries = 2; } private void Stage_Start(orig_Start orig, Stage self) { //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) Scene activeScene = SceneManager.GetActiveScene(); if (((Scene)(ref activeScene)).name == "blackbeach") { GameObject val = GameObject.Find("HOLDER: Preplaced Objects"); if (Object.op_Implicit((Object)(object)val) && !((Component)val.transform.GetChild(0)).gameObject.activeSelf && !((Component)val.transform.GetChild(1)).gameObject.activeSelf && !((Component)val.transform.GetChild(2)).gameObject.activeSelf) { Debug.Log((object)"StageBalancer: Manually activating random newt altar"); ((Component)val.transform.GetChild(Random.Range(0, 2))).gameObject.SetActive(true); } } orig.Invoke(self); } private void ClassicStageInfo_Start(orig_Start orig, ClassicStageInfo self) { //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) Scene activeScene = SceneManager.GetActiveScene(); string name = ((Scene)(ref activeScene)).name; switch (name) { case "golemplains": case "golemplains2": case "blackbeach": case "blackbeach2": self.sceneDirectorInteractibleCredits = 230; break; } if (name == "snowyforest") { self.sceneDirectorInteractibleCredits = 290; } if (name == "foggyswamp") { self.sceneDirectorInteractibleCredits = 320; } if (name == "shipgraveyard" || name == "rootjungle") { self.sceneDirectorInteractibleCredits = 430; } if (name == "dampcavesimple" && self.bonusInteractibleCreditObjects != null) { Debug.Log((object)"StageBalancer: Adjusting extra abyssal credits"); for (int i = 0; i < self.bonusInteractibleCreditObjects.Length; i++) { self.bonusInteractibleCreditObjects[i].points /= 2; } } orig.Invoke(self); } private void TimedChestController_OnEnable(orig_OnEnable orig, TimedChestController self) { self.lockTime = 720f; orig.Invoke(self); } private void ChangeCatChest(DirectorCardCategorySelection dccs, SpawnCard newChest, string chestName) { //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_0014: 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_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Expected O, but got Unknown //IL_0045: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < dccs.categories.Length; i++) { Category val = dccs.categories[i]; if (!(val.name == "Chests")) { continue; } List<DirectorCard> list = new List<DirectorCard>(); list.Add(new DirectorCard { spawnCard = newChest, selectionWeight = 3 }); DirectorCard[] cards = val.cards; foreach (DirectorCard val2 in cards) { if (((Object)val2.spawnCard).name != chestName) { list.Add(val2); } } dccs.categories[i].cards = list.ToArray(); } } private void ChangeEnemy(DirectorCardCategorySelection dccs, SpawnCard newEnemy, string enemyName) { //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_0014: 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_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_0069: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Expected O, but got Unknown for (int i = 0; i < dccs.categories.Length; i++) { Category val = dccs.categories[i]; if (!(val.name == "Basic Monsters")) { continue; } List<DirectorCard> list = new List<DirectorCard>(); DirectorCard[] cards = val.cards; foreach (DirectorCard val2 in cards) { if (((Object)val2.spawnCard).name != enemyName) { list.Add(val2); continue; } list.Add(new DirectorCard { spawnCard = newEnemy, selectionWeight = val2.selectionWeight }); } dccs.categories[i].cards = list.ToArray(); } } private void AddMiniboss(DirectorCardCategorySelection dccs, SpawnCard newEnemy) { //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_0014: 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_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Expected O, but got Unknown //IL_0045: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < dccs.categories.Length; i++) { Category val = dccs.categories[i]; if (val.name == "Minibosses") { List<DirectorCard> list = new List<DirectorCard>(); list.Add(new DirectorCard { spawnCard = newEnemy, selectionWeight = 1 }); DirectorCard[] cards = val.cards; foreach (DirectorCard item in cards) { list.Add(item); } dccs.categories[i].cards = list.ToArray(); } } } private void ChangeMiniboss(DirectorCardCategorySelection dccs, SpawnCard newEnemy, string enemyName) { //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_0014: 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_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_0069: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Expected O, but got Unknown for (int i = 0; i < dccs.categories.Length; i++) { Category val = dccs.categories[i]; if (!(val.name == "Minibosses")) { continue; } List<DirectorCard> list = new List<DirectorCard>(); DirectorCard[] cards = val.cards; foreach (DirectorCard val2 in cards) { if (((Object)val2.spawnCard).name != enemyName) { list.Add(val2); continue; } list.Add(new DirectorCard { spawnCard = newEnemy, selectionWeight = val2.selectionWeight }); } dccs.categories[i].cards = list.ToArray(); } } private void ChangeBoss(DirectorCardCategorySelection dccs, SpawnCard newBoss, string bossName) { //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_0014: 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_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_0069: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Expected O, but got Unknown for (int i = 0; i < dccs.categories.Length; i++) { Category val = dccs.categories[i]; if (!(val.name == "Champions")) { continue; } List<DirectorCard> list = new List<DirectorCard>(); DirectorCard[] cards = val.cards; foreach (DirectorCard val2 in cards) { if (((Object)val2.spawnCard).name != bossName) { list.Add(val2); continue; } list.Add(new DirectorCard { spawnCard = newBoss, selectionWeight = val2.selectionWeight }); } dccs.categories[i].cards = list.ToArray(); } } private void RemoveAphelianChest() { //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_0019: 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) for (int i = 0; i < aphelianInteractables.categories.Length; i++) { Category val = aphelianInteractables.categories[i]; if (!(val.name == "Chests")) { continue; } List<DirectorCard> list = new List<DirectorCard>(); DirectorCard[] cards = val.cards; foreach (DirectorCard val2 in cards) { if (((Object)val2.spawnCard).name != "iscLunarChest") { list.Add(val2); } } aphelianInteractables.categories[i].cards = list.ToArray(); } } private void AcresBarrelIncrease() { //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) for (int i = 0; i < acresInteractables.categories.Length; i++) { Category val = acresInteractables.categories[i]; if (val.name == "Barrels") { val.selectionWeight *= 1.2f; } } } private void PoolsBarrelDecrease() { //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) for (int i = 0; i < poolsInteractables.categories.Length; i++) { Category val = poolsInteractables.categories[i]; if (val.name == "Barrels") { val.selectionWeight *= 0.6f; } } } private void RPDDroneDecrease() { //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) for (int i = 0; i < rpdInteractables.categories.Length; i++) { Category val = rpdInteractables.categories[i]; if (val.name == "Drones") { val.selectionWeight /= 2f; } } } private void SirensDroneShrineDecrease() { //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_0028: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < sirensInteractables.categories.Length; i++) { Category val = sirensInteractables.categories[i]; if (val.name == "Drones" || val.name == "Shrines") { val.selectionWeight /= 2f; } } } private void BalanceSirenGrove() { //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_0019: 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_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_0115: 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) for (int i = 0; i < sirensInteractables.categories.Length; i++) { Category val = sirensInteractables.categories[i]; if (!(val.name == "Chests")) { continue; } DirectorCard[] cards = val.cards; foreach (DirectorCard val2 in cards) { if (((Object)val2.spawnCard).name == "iscChest1" || ((Object)val2.spawnCard).name == "iscChest2") { val2.selectionWeight -= (int)Math.Round((double)val2.selectionWeight * 0.1); } if (((Object)val2.spawnCard).name == "iscTripleShopLarge") { val2.selectionWeight += (int)Math.Round((double)val2.selectionWeight * 0.2); } } } for (int k = 0; k < groveInteractables.categories.Length; k++) { Category val3 = groveInteractables.categories[k]; if (!(val3.name == "Chests")) { continue; } DirectorCard[] cards = val3.cards; foreach (DirectorCard val4 in cards) { if (((Object)val4.spawnCard).name == "iscChest1" || ((Object)val4.spawnCard).name == "iscChest2") { val4.selectionWeight -= (int)Math.Round((double)val4.selectionWeight * 0.1); } if (((Object)val4.spawnCard).name == "iscCasinoChest") { val4.selectionWeight += (int)Math.Round((double)val4.selectionWeight * 0.3); } } } } } }