Some mods may be broken due to the recent Alloyed Collective update.
Decompiled source of BetterJumpPads v1.2.1
BetterJumpPads.dll
Decompiled 2 years agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Logging; using IL.RoR2; using Microsoft.CodeAnalysis; using Mono.Cecil.Cil; using MonoMod.Cil; using On.RoR2; using R2API; 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.0", FrameworkDisplayName = ".NET Standard 2.0")] [assembly: AssemblyCompany("BetterJumpPads")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("BetterJumpPads")] [assembly: AssemblyTitle("BetterJumpPads")] [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 BetterJumpPads { [BepInPlugin("HIFU.BetterJumpPads", "BetterJumpPads", "1.2.0")] public class Main : BaseUnityPlugin { public const string PluginGUID = "HIFU.BetterJumpPads"; public const string PluginAuthor = "HIFU"; public const string PluginName = "BetterJumpPads"; public const string PluginVersion = "1.2.0"; public ManualLogSource BJPLogger; public static AssetBundle betterraincoaticon; public static BuffDef fallDamageRemoval; public void Awake() { //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Expected O, but got Unknown //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Expected O, but got Unknown //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Expected O, but got Unknown //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Expected O, but got Unknown //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Expected O, but got Unknown BJPLogger = ((BaseUnityPlugin)this).Logger; fallDamageRemoval = ScriptableObject.CreateInstance<BuffDef>(); fallDamageRemoval.isDebuff = false; fallDamageRemoval.isHidden = true; fallDamageRemoval.isCooldown = false; fallDamageRemoval.canStack = false; ((Object)fallDamageRemoval).name = "Fall Damage Removal"; ContentAddition.AddBuffDef(fallDamageRemoval); JumpVolume.OnTriggerStay += new hook_OnTriggerStay(JumpVolume_OnTriggerStay1); JumpVolume.OnTriggerStay += new Manipulator(JumpVolume_OnTriggerStay); SceneDirector.Start += new hook_Start(SceneDirector_Start); HealthComponent.TakeDamage += new hook_TakeDamage(HealthComponent_TakeDamage); CharacterMotor.OnLanded += new hook_OnLanded(CharacterMotor_OnLanded); } private void CharacterMotor_OnLanded(orig_OnLanded orig, CharacterMotor self) { orig.Invoke(self); CharacterBody body = self.body; if (Object.op_Implicit((Object)(object)body) && NetworkServer.active && body.HasBuff(fallDamageRemoval)) { body.RemoveBuff(fallDamageRemoval); } } private void HealthComponent_TakeDamage(orig_TakeDamage orig, HealthComponent self, DamageInfo damageInfo) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Invalid comparison between Unknown and I4 if ((damageInfo.damageType & 0x200000) > 0 && Object.op_Implicit((Object)(object)self.body) && self.body.HasBuff(fallDamageRemoval)) { damageInfo.damage = 0f; } orig.Invoke(self, damageInfo); } private void JumpVolume_OnTriggerStay1(orig_OnTriggerStay orig, JumpVolume self, Collider other) { orig.Invoke(self, other); CharacterBody component = ((Component)other).GetComponent<CharacterBody>(); if (NetworkServer.active && Object.op_Implicit((Object)(object)component) && !component.HasBuff(fallDamageRemoval)) { component.AddBuff(fallDamageRemoval); } } private void SceneDirector_Start(orig_Start orig, SceneDirector self) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) Scene activeScene = SceneManager.GetActiveScene(); ApplyJumpPadChanges(((Scene)(ref activeScene)).name); orig.Invoke(self); } private void ApplyJumpPadChanges(string sceneName) { //IL_0691: Unknown result type (might be due to invalid IL or missing references) //IL_0696: Unknown result type (might be due to invalid IL or missing references) //IL_06c1: Unknown result type (might be due to invalid IL or missing references) //IL_06c6: Unknown result type (might be due to invalid IL or missing references) //IL_05a4: Unknown result type (might be due to invalid IL or missing references) //IL_05a9: Unknown result type (might be due to invalid IL or missing references) //IL_02d3: Unknown result type (might be due to invalid IL or missing references) //IL_02d8: Unknown result type (might be due to invalid IL or missing references) //IL_0320: Unknown result type (might be due to invalid IL or missing references) //IL_0325: Unknown result type (might be due to invalid IL or missing references) //IL_034f: Unknown result type (might be due to invalid IL or missing references) //IL_0354: Unknown result type (might be due to invalid IL or missing references) //IL_037e: Unknown result type (might be due to invalid IL or missing references) //IL_0383: Unknown result type (might be due to invalid IL or missing references) //IL_03bf: Unknown result type (might be due to invalid IL or missing references) //IL_03c4: Unknown result type (might be due to invalid IL or missing references) //IL_0400: Unknown result type (might be due to invalid IL or missing references) //IL_0405: Unknown result type (might be due to invalid IL or missing references) //IL_028f: Unknown result type (might be due to invalid IL or missing references) //IL_0294: Unknown result type (might be due to invalid IL or missing references) //IL_0214: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Unknown result type (might be due to invalid IL or missing references) //IL_0249: Unknown result type (might be due to invalid IL or missing references) //IL_024e: Unknown result type (might be due to invalid IL or missing references) //IL_079a: Unknown result type (might be due to invalid IL or missing references) //IL_079f: Unknown result type (might be due to invalid IL or missing references) //IL_07ca: Unknown result type (might be due to invalid IL or missing references) //IL_07cf: Unknown result type (might be due to invalid IL or missing references) //IL_07fa: Unknown result type (might be due to invalid IL or missing references) //IL_07ff: Unknown result type (might be due to invalid IL or missing references) //IL_082a: Unknown result type (might be due to invalid IL or missing references) //IL_082f: Unknown result type (might be due to invalid IL or missing references) //IL_0876: Unknown result type (might be due to invalid IL or missing references) //IL_087b: Unknown result type (might be due to invalid IL or missing references) //IL_08ac: Unknown result type (might be due to invalid IL or missing references) //IL_08b1: Unknown result type (might be due to invalid IL or missing references) //IL_08e2: Unknown result type (might be due to invalid IL or missing references) //IL_08e7: Unknown result type (might be due to invalid IL or missing references) //IL_0918: Unknown result type (might be due to invalid IL or missing references) //IL_091d: Unknown result type (might be due to invalid IL or missing references) //IL_094e: Unknown result type (might be due to invalid IL or missing references) //IL_0953: Unknown result type (might be due to invalid IL or missing references) //IL_0984: Unknown result type (might be due to invalid IL or missing references) //IL_0989: Unknown result type (might be due to invalid IL or missing references) //IL_09ba: Unknown result type (might be due to invalid IL or missing references) //IL_09bf: Unknown result type (might be due to invalid IL or missing references) //IL_0718: Unknown result type (might be due to invalid IL or missing references) //IL_071d: Unknown result type (might be due to invalid IL or missing references) //IL_0754: Unknown result type (might be due to invalid IL or missing references) //IL_0759: Unknown result type (might be due to invalid IL or missing references) //IL_04bc: Unknown result type (might be due to invalid IL or missing references) //IL_04c1: Unknown result type (might be due to invalid IL or missing references) //IL_04ec: Unknown result type (might be due to invalid IL or missing references) //IL_04f1: Unknown result type (might be due to invalid IL or missing references) //IL_0532: Unknown result type (might be due to invalid IL or missing references) //IL_0537: Unknown result type (might be due to invalid IL or missing references) //IL_0562: Unknown result type (might be due to invalid IL or missing references) //IL_0567: Unknown result type (might be due to invalid IL or missing references) //IL_0446: Unknown result type (might be due to invalid IL or missing references) //IL_044b: Unknown result type (might be due to invalid IL or missing references) //IL_0476: Unknown result type (might be due to invalid IL or missing references) //IL_047b: Unknown result type (might be due to invalid IL or missing references) //IL_05fc: Unknown result type (might be due to invalid IL or missing references) //IL_0601: Unknown result type (might be due to invalid IL or missing references) //IL_064b: Unknown result type (might be due to invalid IL or missing references) //IL_0650: Unknown result type (might be due to invalid IL or missing references) if (sceneName == null) { return; } switch (sceneName.Length) { case 11: switch (sceneName[2]) { case 'c': if (sceneName == "ancientloft") { JumpVolume component9 = ((Component)GameObject.Find("AncientLoft_Geyser (1)").transform.GetChild(0)).GetComponent<JumpVolume>(); component9.jumpVelocity = new Vector3(-40.8797f, 59.0024f, 6.0314f); JumpVolume component10 = ((Component)GameObject.Find("AncientLoft_Geyser").transform.GetChild(0)).GetComponent<JumpVolume>(); component10.jumpVelocity = new Vector3(-50.912f, 27.0073f, -50.3548f); } break; case 'o': if (sceneName == "snowyforest") { Transform transform5 = GameObject.Find("HOLDER: Geysers").transform; JumpVolume component11 = ((Component)transform5.GetChild(0).GetChild(2)).GetComponent<JumpVolume>(); component11.jumpVelocity = new Vector3(-9.5988f, 47.1578f, -9.6674f); JumpVolume component12 = ((Component)transform5.GetChild(2).GetChild(2)).GetComponent<JumpVolume>(); component12.jumpVelocity = new Vector3(-25.7586f, 45.8282f, -1.8743f); } break; case 'l': if (sceneName == "sulfurpools") { Transform transform4 = GameObject.Find("HOLDER: Geysers").transform; JumpVolume component7 = ((Component)transform4.GetChild(5).GetChild(2)).GetComponent<JumpVolume>(); component7.jumpVelocity = new Vector3(-15.6221f, 30.876f, 45.2898f); JumpVolume component8 = ((Component)transform4.GetChild(3).GetChild(2)).GetComponent<JumpVolume>(); component8.jumpVelocity = new Vector3(5.9332f, 40.0777f, -33.4413f); } break; } break; case 10: switch (sceneName[0]) { case 'f': if (sceneName == "frozenwall") { JumpVolume component5 = ((Component)GameObject.Find("PERMUTATION: Human Fan").transform.GetChild(2).GetChild(0).GetChild(0)).GetComponent<JumpVolume>(); component5.jumpVelocity = new Vector3(2.2689f, 46.7217f, 13.1013f); } break; case 'r': if (sceneName == "rootjungle") { Transform transform2 = GameObject.Find("HOLDER: Jump Pads").transform; Transform transform3 = GameObject.Find("HOLDER: Randomization").transform; JumpVolume component3 = ((Component)transform2.GetChild(1).GetChild(0)).GetComponent<JumpVolume>(); component3.jumpVelocity = new Vector3(-30f, 67f, 0.9657f); JumpVolume component4 = ((Component)transform3.GetChild(2).GetChild(0).GetChild(2) .GetChild(0)).GetComponent<JumpVolume>(); component4.jumpVelocity = new Vector3(30.5242f, 57.02f, -45.692f); } break; } break; case 9: switch (sceneName[0]) { case 's': if (sceneName == "skymeadow") { Transform transform10 = GameObject.Find("HOLDER: Jump Pads").transform; JumpVolume component28 = ((Component)transform10.GetChild(0).GetChild(2)).GetComponent<JumpVolume>(); component28.jumpVelocity = new Vector3(10.8445f, 70.7327f, 50.4467f); GameObject val = GameObject.Find("HOLDER: Randomization"); JumpVolume component29 = ((Component)val.transform.GetChild(4).GetChild(0).GetChild(3) .GetChild(2)).GetComponent<JumpVolume>(); component29.jumpVelocity = new Vector3(-140.6104f, 20.6631f, -33.7556f); JumpVolume component30 = ((Component)transform10.GetChild(4).GetChild(2)).GetComponent<JumpVolume>(); component30.jumpVelocity = new Vector3(-45.5706f, 20.4607f, 115.4046f); JumpVolume component31 = ((Component)transform10.GetChild(3).GetChild(2)).GetComponent<JumpVolume>(); component31.jumpVelocity = new Vector3(-48.1144f, 43.5799f, 6.7542f); JumpVolume component32 = ((Component)val.transform.GetChild(0).GetChild(2).GetChild(0) .GetChild(2)).GetComponent<JumpVolume>(); component32.jumpVelocity = new Vector3(-65f, 66f, -4.60673f); JumpVolume component33 = ((Component)val.transform.GetChild(0).GetChild(1).GetChild(2) .GetChild(2)).GetComponent<JumpVolume>(); component33.jumpVelocity = new Vector3(-35f, 65f, -12f); } break; case 'v': if (sceneName == "voidstage") { Transform transform9 = GameObject.Find("HOLDER: Geysers").transform; JumpVolume component21 = ((Component)transform9.GetChild(2).GetChild(4).GetChild(0)).GetComponent<JumpVolume>(); component21.jumpVelocity = new Vector3(-11.56456f, 35f, 60f); JumpVolume component22 = ((Component)transform9.GetChild(0).GetChild(4).GetChild(0)).GetComponent<JumpVolume>(); component22.jumpVelocity = new Vector3(11.98292f, 15f, -60f); JumpVolume component23 = ((Component)transform9.GetChild(3).GetChild(4).GetChild(0)).GetComponent<JumpVolume>(); component23.jumpVelocity = new Vector3(70f, 22f, 32.141f); JumpVolume component24 = ((Component)transform9.GetChild(1).GetChild(4).GetChild(0)).GetComponent<JumpVolume>(); component24.jumpVelocity = new Vector3(-3.829206f, 85f, -50f); JumpVolume component25 = ((Component)transform9.GetChild(6).GetChild(4).GetChild(0)).GetComponent<JumpVolume>(); component25.jumpVelocity = new Vector3(-12.05236f, 55f, -45f); JumpVolume component26 = ((Component)transform9.GetChild(5).GetChild(4).GetChild(0)).GetComponent<JumpVolume>(); component26.jumpVelocity = new Vector3(-30f, 35f, -60f); JumpVolume component27 = ((Component)transform9.GetChild(4).GetChild(4).GetChild(0)).GetComponent<JumpVolume>(); component27.jumpVelocity = new Vector3(19.65478f, 25f, 75f); } break; } break; case 13: switch (sceneName[0]) { case 's': if (sceneName == "shipgraveyard") { Transform transform7 = GameObject.Find("HOLDER: Jump Pads").transform; JumpVolume component17 = ((Component)transform7.GetChild(0).GetChild(2)).GetComponent<JumpVolume>(); component17.jumpVelocity = new Vector3(-11.1291f, 55.3482f, -40.5845f); JumpVolume component18 = ((Component)transform7.GetChild(1).GetChild(2)).GetComponent<JumpVolume>(); component18.jumpVelocity = new Vector3(2.9656f, 45.0318f, 13.4763f); } break; case 'w': if (sceneName == "wispgraveyard") { Transform transform8 = GameObject.Find("ENTIRE SCENE HOLDER").transform; JumpVolume component19 = ((Component)transform8.GetChild(4).GetChild(2).GetChild(0) .GetChild(0) .GetChild(2)).GetComponent<JumpVolume>(); component19.jumpVelocity = new Vector3(65.3068f, 46.1934f, -2.5635f); JumpVolume component20 = ((Component)transform8.GetChild(4).GetChild(3).GetChild(4) .GetChild(12) .GetChild(0) .GetChild(6) .GetChild(2)).GetComponent<JumpVolume>(); component20.jumpVelocity = new Vector3(-65.2731f, 0.442f, 7.7863f); } break; case 'a': if (sceneName == "artifactworld") { Transform transform6 = GameObject.Find("HOLDER: Geysers").transform; JumpVolume component13 = ((Component)transform6.GetChild(3).GetChild(0)).GetComponent<JumpVolume>(); component13.jumpVelocity = new Vector3(0f, 20f, -40f); JumpVolume component14 = ((Component)transform6.GetChild(4).GetChild(0)).GetComponent<JumpVolume>(); component14.jumpVelocity = new Vector3(0f, 5f, 45f); JumpVolume component15 = ((Component)transform6.GetChild(2).GetChild(0)).GetComponent<JumpVolume>(); component15.jumpVelocity = new Vector3(60f, 0f, 0f); JumpVolume component16 = ((Component)transform6.GetChild(1).GetChild(0)).GetComponent<JumpVolume>(); component16.jumpVelocity = new Vector3(15f, 40f, -11f); } break; } break; case 14: if (sceneName == "dampcavesimple") { JumpVolume component6 = ((Component)GameObject.Find("HOLDER: Geyser").transform.GetChild(2).GetChild(2)).GetComponent<JumpVolume>(); component6.jumpVelocity = new Vector3(45.2695f, 50.4077f, 35.7247f); } break; case 12: if (sceneName == "golemplains2") { Transform transform = GameObject.Find("HOLDER: Jump Pads").transform; JumpVolume component = ((Component)transform.GetChild(1).GetChild(2)).GetComponent<JumpVolume>(); component.jumpVelocity = new Vector3(38.2099f, 64.9923f, -5.1331f); JumpVolume component2 = ((Component)transform.GetChild(0).GetChild(2)).GetComponent<JumpVolume>(); component2.jumpVelocity = new Vector3(-13.4416f, 44.981f, 8.4832f); } break; } } private void JumpVolume_OnTriggerStay(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown ILCursor val = new ILCursor(il); if (val.TryGotoNext((MoveType)0, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchLdcI4(x, 1) })) { val.Index += 1; val.EmitDelegate<Func<int, int>>((Func<int, int>)((int useless) => 0)); } else { BJPLogger.LogError((object)"Failed to apply Jump Pad hook"); } } } }