using 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);
}
}
}
}
}
}