Some mods may be broken due to the recent Alloyed Collective update.
Decompiled source of StartInBazaar v0.2.2
StartInBazaar.dll
Decompiled 8 months agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using BepInEx; using On.RoR2; using R2API.Utils; using RoR2; using UnityEngine; using UnityEngine.Networking; using UnityEngine.SceneManagement; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("StartInBazaar")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+db00d670ee92516c59fcaa02a80800b7c9a2867d")] [assembly: AssemblyProduct("StartInBazaar")] [assembly: AssemblyTitle("StartInBazaar")] [assembly: AssemblyVersion("1.0.0.0")] namespace StartInBazaar; [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.MagnusMagnuson.StartInBazaar", "StartInBazaar", "0.2.2")] [NetworkCompatibility(/*Could not decode attribute arguments.*/)] public class StartInBazaar : BaseUnityPlugin { private bool isFirstBazaarVisit = true; private bool isFirstStage = true; public void Awake() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Expected O, but got Unknown //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Expected O, but got Unknown //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Expected O, but got Unknown Run.Start += (hook_Start)delegate(orig_Start orig, Run self) { isFirstBazaarVisit = true; isFirstStage = true; orig.Invoke(self); }; SceneDirector.Start += (hook_Start)delegate(orig_Start orig, SceneDirector self) { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) if (NetworkServer.active && Run.instance.stageClearCount == 0) { if (isFirstBazaarVisit) { Scene activeScene = SceneManager.GetActiveScene(); if (((Scene)(ref activeScene)).name.Contains("bazaar")) { GiveMoneyToPlayers((int)(0 - Run.instance.ruleBook.startingMoney)); goto IL_0070; } } if (isFirstStage) { GiveMoneyToPlayers((int)Run.instance.ruleBook.startingMoney); isFirstStage = false; } } goto IL_0070; IL_0070: orig.Invoke(self); }; Run.PickNextStageScene += new hook_PickNextStageScene(Run_PickNextStageScene); SceneExitController.Begin += new hook_Begin(SceneExitController_Begin); } private void SceneExitController_Begin(orig_Begin orig, SceneExitController self) { if (!NetworkServer.active) { return; } if (isFirstBazaarVisit) { isFirstBazaarVisit = false; WeightedSelection<SceneDef> val = new WeightedSelection<SceneDef>(8); if (Object.op_Implicit((Object)(object)Run.instance.startingSceneGroup)) { Run.instance.startingSceneGroup.AddToWeightedSelection(val, (Func<SceneDef, bool>)Run.instance.CanPickStage); } Run.instance.PickNextStageScene(val); } orig.Invoke(self); } private void Run_PickNextStageScene(orig_PickNextStageScene orig, Run self, WeightedSelection<SceneDef> choices) { if (Run.instance.stageClearCount == 0 && isFirstBazaarVisit) { SceneDef nextStageScene = SceneCatalog.FindSceneDef("bazaar"); self.nextStageScene = nextStageScene; } else { orig.Invoke(self, choices); } } public void GiveMoneyToPlayers(int money) { for (int i = 0; i < PlayerCharacterMasterController.instances.Count; i++) { CharacterMaster master = PlayerCharacterMasterController.instances[i].master; master.money += (uint)money; } } }