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