Some mods may be broken due to the recent Alloyed Collective update.
Decompiled source of GettingOverItWithProvidence v1.0.1
GettingOverItWithProvidence.dll
Decompiled 7 months agousing System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Logging; using On.RoR2; using R2API.Networking; using R2API.Networking.Interfaces; using R2API.Utils; using RoR2; using UnityEngine; using UnityEngine.Networking; using UnityEngine.SceneManagement; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("GettingOverItWithProvidence")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+4e8fa4c474ac486aea2bc09d1666eb16fe1960e8")] [assembly: AssemblyProduct("GettingOverItWithProvidence")] [assembly: AssemblyTitle("GettingOverItWithProvidence")] [assembly: AssemblyVersion("1.0.0.0")] namespace GettingOverItWithProvidence; [BepInDependency(/*Could not decode attribute arguments.*/)] [NetworkCompatibility(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.Synodii.GettingOverItWithProvidence", "GettingOverItWithProvidence", "1.0.0")] public class Main : BaseUnityPlugin { public class AdvanceStageMessage : INetMessage, ISerializableObject { private string stage; public AdvanceStageMessage() { } public AdvanceStageMessage(string stage) { this.stage = stage; } public void Deserialize(NetworkReader reader) { stage = reader.ReadString(); } public void Serialize(NetworkWriter writer) { writer.Write(stage); } public void OnReceived() { Run.instance.AdvanceStage(SceneCatalog.FindSceneDef(stage)); } } public static ManualLogSource ModLogger; private static Dictionary<Collider, int> thatRoofThatIHate = new Dictionary<Collider, int>(); public void Awake() { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown ModLogger = ((BaseUnityPlugin)this).Logger; IdkWhatIAmDoing(); MapZone.TryZoneStart += new hook_TryZoneStart(UpDown); MapZone.TeleportBody += new hook_TeleportBody(ConditionalTeleport); } public void UpDown(orig_TryZoneStart orig, MapZone self, Collider other) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) if (((Component)other).transform.position.y > ((Component)self).transform.position.y) { thatRoofThatIHate[other] = 1; } else { thatRoofThatIHate[other] = 0; } orig.Invoke(self, other); } private void ConditionalTeleport(orig_TeleportBody orig, MapZone self, CharacterBody characterBody) { Collider component = ((Component)characterBody).gameObject.GetComponent<Collider>(); if (Object.op_Implicit((Object)(object)component) && thatRoofThatIHate.TryGetValue(component, out var value)) { thatRoofThatIHate.Remove(component); if (value == 1) { PathLevelUp(orig, self, characterBody); } else { PathLevelDown(orig, self, characterBody); } } else { orig.Invoke(self, characterBody); } } private void PathLevelDown(orig_TeleportBody orig, MapZone self, CharacterBody characterBody) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) Scene activeScene; int num; if (Object.op_Implicit((Object)(object)characterBody) && characterBody.isPlayerControlled) { activeScene = SceneManager.GetActiveScene(); num = ((((Scene)(ref activeScene)).name == "habitat") ? 1 : 0); } else { num = 0; } bool flag = (byte)num != 0; int num2; if (Object.op_Implicit((Object)(object)characterBody) && characterBody.isPlayerControlled) { activeScene = SceneManager.GetActiveScene(); num2 = ((((Scene)(ref activeScene)).name == "lemuriantemple") ? 1 : 0); } else { num2 = 0; } bool flag2 = (byte)num2 != 0; int num3; if (Object.op_Implicit((Object)(object)characterBody) && characterBody.isPlayerControlled) { activeScene = SceneManager.GetActiveScene(); num3 = ((((Scene)(ref activeScene)).name == "meridian") ? 1 : 0); } else { num3 = 0; } bool flag3 = (byte)num3 != 0; int num4; if (Object.op_Implicit((Object)(object)characterBody) && characterBody.isPlayerControlled) { activeScene = SceneManager.GetActiveScene(); num4 = ((((Scene)(ref activeScene)).name == "habitatfall") ? 1 : 0); } else { num4 = 0; } bool flag4 = (byte)num4 != 0; if (NetworkServer.active) { if (flag || flag4) { Run.instance.AdvanceStage(SceneCatalog.FindSceneDef("lemuriantemple")); } else if (flag3) { if (Run.instance.loopClearCount > 0) { Run.instance.AdvanceStage(SceneCatalog.FindSceneDef("habitatfall")); } else { Run.instance.AdvanceStage(SceneCatalog.FindSceneDef("habitat")); } } else { orig.Invoke(self, characterBody); } return; } if (flag || flag4) { NetMessageExtensions.Send((INetMessage)(object)new AdvanceStageMessage("lemuriantemple"), (NetworkDestination)2); } if (flag3) { if (Run.instance.loopClearCount > 0) { NetMessageExtensions.Send((INetMessage)(object)new AdvanceStageMessage("habitatfall"), (NetworkDestination)2); } else { NetMessageExtensions.Send((INetMessage)(object)new AdvanceStageMessage("habitat"), (NetworkDestination)2); } } } private void PathLevelUp(orig_TeleportBody orig, MapZone self, CharacterBody characterBody) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) Scene activeScene; int num; if (Object.op_Implicit((Object)(object)characterBody) && characterBody.isPlayerControlled) { activeScene = SceneManager.GetActiveScene(); num = ((((Scene)(ref activeScene)).name == "habitat") ? 1 : 0); } else { num = 0; } bool flag = (byte)num != 0; int num2; if (Object.op_Implicit((Object)(object)characterBody) && characterBody.isPlayerControlled) { activeScene = SceneManager.GetActiveScene(); num2 = ((((Scene)(ref activeScene)).name == "lemuriantemple") ? 1 : 0); } else { num2 = 0; } bool flag2 = (byte)num2 != 0; int num3; if (Object.op_Implicit((Object)(object)characterBody) && characterBody.isPlayerControlled) { activeScene = SceneManager.GetActiveScene(); num3 = ((((Scene)(ref activeScene)).name == "habitatfall") ? 1 : 0); } else { num3 = 0; } bool flag3 = (byte)num3 != 0; int num4; if (Object.op_Implicit((Object)(object)characterBody) && characterBody.isPlayerControlled) { activeScene = SceneManager.GetActiveScene(); num4 = ((((Scene)(ref activeScene)).name == "meridian") ? 1 : 0); } else { num4 = 0; } bool flag4 = (byte)num4 != 0; if (NetworkServer.active) { if (flag || flag3) { Run.instance.AdvanceStage(SceneCatalog.FindSceneDef("meridian")); } else if (flag2) { if (Run.instance.loopClearCount > 0) { Run.instance.AdvanceStage(SceneCatalog.FindSceneDef("habitatfall")); } else { Run.instance.AdvanceStage(SceneCatalog.FindSceneDef("habitat")); } } else { orig.Invoke(self, characterBody); } return; } if (flag || flag3) { NetMessageExtensions.Send((INetMessage)(object)new AdvanceStageMessage("meridian"), (NetworkDestination)2); } if (flag2) { if (Run.instance.loopClearCount > 0) { NetMessageExtensions.Send((INetMessage)(object)new AdvanceStageMessage("habitatfall"), (NetworkDestination)2); } else { NetMessageExtensions.Send((INetMessage)(object)new AdvanceStageMessage("habitat"), (NetworkDestination)2); } } } private void IdkWhatIAmDoing() { NetworkingAPI.RegisterMessageType<AdvanceStageMessage>(); } }