Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of StageBalancer v1.0.7
StageBalancer.dll
Decompiled 2 years agousing System; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using Microsoft.CodeAnalysis; using On.RoR2; using RoR2; using RoR2.Skills; using UnityEngine; using UnityEngine.AddressableAssets; 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("StageBalancer")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("StageBalancer")] [assembly: AssemblyTitle("StageBalancer")] [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 StageBalancer { [BepInPlugin("com.Nuxlar.StageBalancer", "StageBalancer", "1.0.7")] public class StageBalancer : BaseUnityPlugin { 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 equipTrishop = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/TripleShopEquipment/iscTripleShopEquipment.asset").WaitForCompletion(); private SpawnCard categoryChest2Damage = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/CategoryChest2/iscCategoryChest2Damage.asset").WaitForCompletion(); private SpawnCard combatShrine = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineCombat/iscShrineCombat.asset").WaitForCompletion(); private SpawnCard chanceShrine = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineChance/iscShrineChance.asset").WaitForCompletion(); private SpawnCard larva = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/AcidLarva/cscAcidLarva.asset").WaitForCompletion(); private SpawnCard beetleGuard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/Beetle/cscBeetleGuard.asset").WaitForCompletion(); private SpawnCard greaterWisp = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/GreaterWisp/cscGreaterWisp.asset").WaitForCompletion(); private SpawnCard alphaConstruct = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/MajorAndMinorConstruct/cscMinorConstruct.asset").WaitForCompletion(); private SpawnCard lemurian = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/Lemurian/cscLemurian.asset").WaitForCompletion(); private SpawnCard gup = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/Gup/cscGupBody.asset").WaitForCompletion(); private SpawnCard bbTitan = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/Titan/cscTitanBlackBeach.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 vermin = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/Vermin/cscVermin.asset").WaitForCompletion(); private SpawnCard pest = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/FlyingVermin/cscFlyingVermin.asset").WaitForCompletion(); private SpawnCard imp = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/Imp/cscImp.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 SpawnCard solus = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/RoboBallBoss/cscRoboBallBoss.asset").WaitForCompletion(); private DirectorCardCategorySelection poolsMonsters = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/DLC1/sulfurpools/dccsSulfurPoolsMonstersDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection rpdMonsters = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/frozenwall/dccsFrozenWallMonstersDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection aqueductMonsters = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/goolake/dccsGooLakeMonstersDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection aphelianMonsters = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/DLC1/ancientloft/dccsAncientLoftMonstersDLC1.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 forestInteractables = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/DLC1/snowyforest/dccsSnowyForestInteractablesDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection plainsDLCInteractables = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/golemplains/dccsGolemplainsInteractablesDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection aphelianInteractables = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/DLC1/ancientloft/dccsAncientLoftInteractablesDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection acqueductDLCInteractables = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/goolake/dccsGooLakeInteractablesDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection wetlandDLCInteractables = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/foggyswamp/dccsFoggySwampInteractablesDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection acresDLCInteractables = 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 rpdDLCInteractables = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/frozenwall/dccsFrozenWallInteractablesDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection sirensDLCInteractables = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/shipgraveyard/dccsShipgraveyardInteractablesDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection groveDLCInteractables = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/rootjungle/dccsRootJungleInteractablesDLC1.asset").WaitForCompletion(); private DirectorCardCategorySelection abyssalDLCInteractables = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/dampcave/dccsDampCaveInteractablesDLC1.asset").WaitForCompletion(); private Category voidStuff; private DirectorCardCategorySelection verdantInteractables = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/CU8/lakes/dccsLakesInteractables.asset").WaitForCompletion(); public void Awake() { //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Expected O, but got Unknown //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Expected O, but got Unknown //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Expected O, but got Unknown AWUUlt.beginSkillCooldownOnSkillEnd = true; greaterWisp.directorCreditCost = 150; apothecary.directorCreditCost = 100; templar.directorCreditCost = 80; Stage.Start += new hook_Start(Stage_Start); ClassicStageInfo.Start += new hook_Start(ClassicStageInfo_Start); TimedChestController.OnEnable += new hook_OnEnable(TimedChestController_OnEnable); LoadVoidStuff(); AddVerdantVoidStuff(); ChangeCatChest(forestInteractables, categoryChest2Healing, "iscCategoryChest2Damage"); ChangeCatChest(plainsDLCInteractables, categoryChest2Damage, "iscCategoryChest2Healing"); ChangeCatChest(acqueductDLCInteractables, categoryChest2Healing, "iscCategoryChest2Damage"); ChangeCatChest(wetlandDLCInteractables, categoryChest2Damage, "iscCategoryChest2Healing"); RemoveAphelianChest(); ChangeEnemy(aqueductMonsters, pest, "cscLesserWisp"); ChangeEnemy(aqueductMonsters, vermin, "cscBeetle"); ChangeEnemy(poolsMonsters, vermin, "cscMinorConstruct"); ChangeEnemy(acresMonsters, alphaConstruct, "cscBeetle"); ChangeEnemy(acresMonsters, vermin, "cscImp"); ChangeEnemy(acresMonsters, apothecary, "cscBeetleGuard"); ChangeBoss(poolsMonsters, magmaWorm, "cscMegaConstruct"); ChangeBoss(acresMonsters, xiConstruct, "cscImpBoss"); ChangeBoss(rpdMonsters, bbTitan, "cscClayBoss"); ChangeCatChest(acresDLCInteractables, categoryChest2Healing, "iscCategoryChest2Damage"); ChangeCatChest(poolsInteractables, categoryChest2Damage, "iscCategoryChest2Healing"); AcresBarrelIncrease(); PoolsBarrelDecrease(); AddEquipTrishopRPD(); RPDDroneDecrease(); ChangeEnemy(sirensMonsters, lemurian, "cscAcidLarva"); ChangeBoss(groveMonsters, grovetender, "cscClayBoss"); ChangeCatChest(abyssalDLCInteractables, categoryChest2Healing, "iscCategoryChest2Damage"); ChangeCatChest(sirensDLCInteractables, categoryChest2Damage, "iscCategoryChest2Healing"); BalanceSirenGrove(); SirensDroneDecrease(); } private void LoadVoidStuff() { //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_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) for (int i = 0; i < plainsDLCInteractables.categories.Length; i++) { Category val = plainsDLCInteractables.categories[i]; if (val.name == "Void Stuff") { voidStuff = val; } } } private void AddVerdantVoidStuff() { //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_0025: 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) List<Category> list = new List<Category>(); Category[] categories = verdantInteractables.categories; foreach (Category val in categories) { list.Add(val); Debug.Log((object)(val.name + " added to categories")); } list.Add(voidStuff); Debug.Log((object)"void stuff added to categories"); verdantInteractables.categories = list.ToArray(); Debug.Log((object)"Categories overwritten"); } 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 = 280; } if (name == "foggyswamp") { self.sceneDirectorInteractibleCredits = 300; } if (name == "shipgraveyard" || name == "rootjungle") { self.sceneDirectorInteractibleCredits = 420; } 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 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 AddEquipTrishopRPD() { //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_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_0053: Expected O, but got Unknown //IL_0053: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < rpdDLCInteractables.categories.Length; i++) { Category val = rpdDLCInteractables.categories[i]; if (!(val.name == "Chests")) { continue; } List<DirectorCard> list = new List<DirectorCard>(); list.Add(new DirectorCard { spawnCard = equipTrishop, selectionWeight = 20 }); DirectorCard[] cards = val.cards; foreach (DirectorCard val2 in cards) { if (((Object)val2.spawnCard).name != "iscEquipmentBarrel") { list.Add(val2); } rpdDLCInteractables.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) //IL_0028: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < acresDLCInteractables.categories.Length; i++) { Category val = acresDLCInteractables.categories[i]; if (val.name == "Barrels") { DirectorCard[] cards = val.cards; foreach (DirectorCard val2 in cards) { val2.selectionWeight = (int)Math.Round(1.2f * (float)val2.selectionWeight); } } } } 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) //IL_0028: 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") { DirectorCard[] cards = val.cards; foreach (DirectorCard val2 in cards) { val2.selectionWeight = (int)Math.Round(0.6f * (float)val2.selectionWeight); } } } } 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) //IL_0028: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < rpdDLCInteractables.categories.Length; i++) { Category val = rpdDLCInteractables.categories[i]; if (val.name == "Drones") { DirectorCard[] cards = val.cards; foreach (DirectorCard obj in cards) { obj.selectionWeight = (int)Math.Round((float)obj.selectionWeight / 2f); } } } } private void SirensDroneDecrease() { //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_005c: 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_006e: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < sirensDLCInteractables.categories.Length; i++) { Category val = sirensDLCInteractables.categories[i]; if (val.name == "Drones") { DirectorCard[] cards = val.cards; foreach (DirectorCard obj in cards) { obj.selectionWeight = (int)Math.Round((float)obj.selectionWeight / 2f); } } if (val.name == "Misc") { DirectorCard[] cards = val.cards; for (int j = 0; j < cards.Length; j++) { cards[j].selectionWeight = 0; } } } } 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_0107: 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_011c: 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_0208: 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) for (int i = 0; i < sirensDLCInteractables.categories.Length; i++) { Category val = sirensDLCInteractables.categories[i]; DirectorCard[] cards; if (val.name == "Shrines") { List<DirectorCard> list = new List<DirectorCard>(); cards = val.cards; foreach (DirectorCard val2 in cards) { if (((Object)val2.spawnCard).name == "iscShrineBoss") { val2.selectionWeight = 2; list.Add(val2); } if (((Object)val2.spawnCard).name == "iscShrineHealing") { val2.spawnCard = combatShrine; val2.selectionWeight = 3; list.Add(val2); } if (((Object)val2.spawnCard).name == "iscShrineBlood") { val2.spawnCard = chanceShrine; val2.selectionWeight = 4; list.Add(val2); } } sirensDLCInteractables.categories[i].cards = list.ToArray(); } if (!(val.name == "Chests")) { continue; } cards = val.cards; foreach (DirectorCard val3 in cards) { if (((Object)val3.spawnCard).name == "iscChest1" || ((Object)val3.spawnCard).name == "iscChest2") { val3.selectionWeight -= (int)Math.Round((double)val3.selectionWeight * 0.1); } if (((Object)val3.spawnCard).name == "iscTripleShopLarge") { val3.selectionWeight += (int)Math.Round((double)val3.selectionWeight * 0.2); } } } for (int k = 0; k < groveDLCInteractables.categories.Length; k++) { Category val4 = groveDLCInteractables.categories[k]; if (!(val4.name == "Chests")) { continue; } DirectorCard[] cards = val4.cards; foreach (DirectorCard val5 in cards) { if (((Object)val5.spawnCard).name == "iscChest1" || ((Object)val5.spawnCard).name == "iscChest2") { val5.selectionWeight -= (int)Math.Round((double)val5.selectionWeight * 0.1); } if (((Object)val5.spawnCard).name == "iscCasinoChest") { val5.selectionWeight += (int)Math.Round((double)val5.selectionWeight * 0.3); } } } } } }