Due to update 2.4.3, some mods may no longer function. FixedConfig may be necessary.
Decompiled source of OmniGravity v3.0.2
OmniGravity.dll
Decompiled 10 months ago
The result has been truncated due to the large size, download it to view full contents!
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 System.Threading.Tasks; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using BoplFixedMath; using CessilCellsCeaChells.CeaChore; using HarmonyLib; using HarmonyLib.Tools; using Microsoft.CodeAnalysis; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: RequiresField(typeof(PlayerBody), "grav_dir", typeof(Vector2), false)] [assembly: RequiresField(typeof(BoplBody), "grav_dir", typeof(Vector2), false)] [assembly: RequiresField(typeof(BoplBody), "grav_scale", typeof(float), false)] [assembly: RequiresField(typeof(BoplBody), "grav_enabled", typeof(bool), false)] [assembly: RequiresField(typeof(RopeBody), "grav_dir", typeof(Vector2), false)] [assembly: RequiresMethod(typeof(RopeBody), "Awake", typeof(void), new Type[] { })] [assembly: RequiresField(typeof(PlayerPhysics), "currentInputVector", typeof(Vector2), false)] [assembly: RequiresField(typeof(SpeedContainer), "grav_dir", typeof(Vector2), false)] [assembly: TargetFramework(".NETFramework,Version=v4.6", FrameworkDisplayName = "")] [assembly: AssemblyCompany("OmniGravity")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyDescription("Omni Gravity allows for gravity in any direction")] [assembly: AssemblyFileVersion("3.0.2.0")] [assembly: AssemblyInformationalVersion("3.0.2")] [assembly: AssemblyProduct("OmniGravity")] [assembly: AssemblyTitle("OmniGravity")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("3.0.2.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 OmniGravity { public static class PluginInfo { public const string PLUGIN_GUID = "OmniGravity"; public const string PLUGIN_NAME = "OmniGravity"; public const string PLUGIN_VERSION = "3.0.2"; } } namespace NewPlugin { [BepInPlugin("com.Starbox614.OmniGravity", "OmniGravity", "3.0.2")] public class OmniGravityPlugin : BaseUnityPlugin { [HarmonyPatch(typeof(PlayerPhysics), "AddGravityFactor")] private class PlayerPhysicsAddGravityFactorPatch { private static bool Prefix(ref Fix ___gravity_accel, ref Fix ___gravity_modifier, ref Fix ___gravity_maxFallSpeed, ref PlayerBody ___body) { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: 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) //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_001e: 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_0030: 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_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0058: 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_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) Vec2 orig = floatVecToFix((Vector2)reflectGet(___body, "grav_dir")); float num = Vector2.SignedAngle(fixVecToFloat(orig), Vector2.down); Vector3 val = Vector2.op_Implicit(fixVecToFloat(___body.selfImposedVelocity)); val = Quaternion.AngleAxis(num, Vector3.forward) * val; Vec2 val2 = floatVecToFix(Vector2.op_Implicit(val)); Fix val3 = (Constants.isSpaceLevel ? (___gravity_modifier * (Fix)0.5f) : ___gravity_modifier); val2 += Vec2.down * ___gravity_accel * val3; Fix val4 = ___gravity_accel * val3 / ___gravity_maxFallSpeed; val2 += Vec2.down * val4 * val2.y; val = Vector2.op_Implicit(fixVecToFloat(val2)); val = Quaternion.AngleAxis(0f - num, Vector3.forward) * val; val2 = floatVecToFix(Vector2.op_Implicit(val)); ___body.selfImposedVelocity = val2; return false; } } [HarmonyReversePatch(/*Could not decode attribute arguments.*/)] [HarmonyPatch(typeof(PlayerPhysics), "Jump")] private class PlayerPhysicsJumpPatch { private static bool Prefix(ref PlayerPhysics __instance, ref bool ___jumpedThisFrame, ref bool ___isGrounded, ref StickyRoundedRectangle ___attachedGround, ref PlayerBody ___body, ref Fix ___jumpNormalScaleFactor, ref Fix ___jumpExtraXStrength, ref Fix ___jumpStrength, ref Fix ___extraJumpTeleportMultiplier, ref Fix ___jumpKeptMomentum) { //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_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_001c: 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_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0060: 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_0064: 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_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_0093: 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) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Unknown result type (might be due to invalid IL or missing references) //IL_0163: Unknown result type (might be due to invalid IL or missing references) //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_017f: Unknown result type (might be due to invalid IL or missing references) //IL_0184: Unknown result type (might be due to invalid IL or missing references) //IL_0189: Unknown result type (might be due to invalid IL or missing references) //IL_018e: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_01a6: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01c5: Unknown result type (might be due to invalid IL or missing references) //IL_01ca: Unknown result type (might be due to invalid IL or missing references) Vector2 val = (Vector2)reflectGet(___body, "grav_dir"); Vector2 val2 = -val; float num = Vector2.SignedAngle(val2, Vector2.up); ___jumpedThisFrame = true; Vec2 orig = ((!___isGrounded) ? floatVecToFix(val2) : ___attachedGround.currentNormal(___body)); Vector3 val3 = Vector2.op_Implicit(fixVecToFloat(orig)); val3 = Quaternion.AngleAxis(num, Vector3.forward) * val3; orig = floatVecToFix(Vector2.op_Implicit(val3)); Vec2 val4 = default(Vec2); ((Vec2)(ref val4))..ctor(orig.x, Fix.Zero); Vec2 up = Vec2.up; Fix val5 = (orig.y + Fix.One) / ___jumpNormalScaleFactor; val5 = Fix.Min(Fix.One, val5); val5 = Fix.Max(Fix.Zero, val5); up *= val5; up += val4 * ___jumpExtraXStrength; Vec2 orig2 = new Vec2(orig.y, -orig.x) * __instance.groundedSpeed; Vector3 val6 = Vector2.op_Implicit(fixVecToFloat(orig2)); val6 = Quaternion.AngleAxis(0f - num, Vector3.forward) * val6; orig2 = floatVecToFix(Vector2.op_Implicit(val6)); Vector3 val7 = Vector2.op_Implicit(fixVecToFloat(up)); val7 = Quaternion.AngleAxis(0f - num, Vector3.forward) * val7; up = floatVecToFix(Vector2.op_Implicit(val7)); ___body.selfImposedVelocity = orig2 * ___jumpKeptMomentum + up * ___jumpStrength; PlayerBody obj = ___body; obj.position += ___body.selfImposedVelocity * ___extraJumpTeleportMultiplier; ((Component)__instance).transform.position = (Vector3)___body.position; __instance.UnGround(true, true); return false; } } [HarmonyPatch(typeof(PlayerPhysics), "Move")] private class PlayerPhysicsMovePatch { private static void Prefix(ref Vec2 inputVector, ref Vector2 ___currentInputVector) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) ___currentInputVector = fixVecToFloat(inputVector); } } [HarmonyPatch(typeof(PlayerPhysics), "MachoMove")] private class PlayerPhysicsMachoMovePatch { private static void Prefix(ref Vec2 inputVector, ref Vector2 ___currentInputVector) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) ___currentInputVector = fixVecToFloat(inputVector); } } [HarmonyPatch(typeof(PlayerPhysics), "AirealMovement")] private class PlayerPhysicsAirealMovementPatch { private static bool Prefix(ref Vector2 ___currentInputVector, ref PlayerBody ___body, ref Fix ___airAccel, ref Fix ___maxSpeed) { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: 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_0024: 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_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0068: 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) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_0116: 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_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_0169: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_0178: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Unknown result type (might be due to invalid IL or missing references) float num = Vector2.SignedAngle((Vector2)reflectGet(___body, "grav_dir"), Vector2.down); Vector2 val = Vector2.op_Implicit(Quaternion.AngleAxis(0f - num, Vector3.forward) * Vector3.left); Vector2 val2 = Vector2.op_Implicit(Quaternion.AngleAxis(0f - num, Vector3.forward) * Vector3.right); float num2 = Vector2.Angle(___currentInputVector, val); float num3 = Vector2.Angle(___currentInputVector, val2); if (num2 > 45f && num3 > 45f) { ___currentInputVector = Vector2.zeroVector; } else { ___currentInputVector = Vector2.op_Implicit(Quaternion.AngleAxis(num, Vector3.forward) * Vector2.op_Implicit(___currentInputVector)); } Vec2 val3 = floatVecToFix(Vector2.op_Implicit(Quaternion.AngleAxis(num, Vector3.forward) * Vector2.op_Implicit(fixVecToFloat(___body.selfImposedVelocity)))); val3 += new Vec2((Fix)___currentInputVector.x * ___airAccel, Fix.Zero); Fix val4 = ___airAccel / (___maxSpeed + ___airAccel); val3 += Vec2.left * val4 * val3.x; ___body.selfImposedVelocity = floatVecToFix(Vector2.op_Implicit(Quaternion.AngleAxis(0f - num, Vector3.forward) * Vector2.op_Implicit(fixVecToFloat(val3)))); ___currentInputVector = Vector2.zeroVector; return false; } } [HarmonyPatch(typeof(PlayerBody), "UpdateSim")] private class PlayerBodyUpdateSimPatch { private static void Prefix(ref Vec2 ___prevPlayerVel, ref Vec2 __state) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) __state = ___prevPlayerVel; } private static void Postfix(ref Vec2 __state, ref Vector2 ___grav_dir, ref RopeBody ___ropeBody, ref PlayerPhysics ___physics, ref Vec2 ___externalVelocity, ref Vec2 ___selfImposedVelocity, ref bool ___topAttachment, ref bool ___ignoreGravityWhenRoped) { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: 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_0098: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) if (___ropeBody != null && ___ropeBody.enabled && !___ropeBody.hasBeenDettached && ___ropeBody.hookHasArrived && (!((Object)(object)___physics != (Object)null) || !___physics.IsGrounded())) { float num = Vector2.SignedAngle(___grav_dir, Vector2.down); Vec2 val = floatVecToFix(Vector2.op_Implicit(Quaternion.AngleAxis(num, Vector3.forward) * Vector2.op_Implicit(fixVecToFloat(___externalVelocity + ___selfImposedVelocity - __state)))); Vec2 val2 = default(Vec2); ((Vec2)(ref val2))..ctor(val.x * (Fix)5L, ___ignoreGravityWhenRoped ? Fix.Zero : (-DetPhysics.Get().playerGravity)); val2 = floatVecToFix(Vector2.op_Implicit(Quaternion.AngleAxis(0f - num, Vector3.forward) * Vector2.op_Implicit(fixVecToFloat(val2)))); ___ropeBody.SetForce(val2, ___topAttachment); } } } [HarmonyReversePatch(/*Could not decode attribute arguments.*/)] [HarmonyPatch(typeof(PlayerBody), "AttachRope")] private class PlayerBodyAttachRopePatch { private static bool Prefix(ref RopeBody rope, ref Vector2 ___grav_dir, ref PlayerBody __instance, ref RopeBody ___ropeBody, ref bool ___ignoreGravityWhenRoped, ref bool ___topAttachment, ref Vec2 ___prevPlayerVel, ref Vec2 ___externalVelocity, ref Vec2 ___selfImposedVelocity, ref Fix ___RopePlayerMass01) { //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: 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) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: 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_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0082: 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) if (___ropeBody != null) { ___ropeBody.SetForce(___ignoreGravityWhenRoped ? Vec2.zero : (floatVecToFix(___grav_dir) * DetPhysics.Get().ropeGravity), ___topAttachment); ___ropeBody.SetTimeInAir((Fix)100L, ___topAttachment); if (rope == null) { ___ropeBody.Dettach(___topAttachment); } else { ___ropeBody.SetMass01((___RopePlayerMass01 == Fix.Zero) ? ((Fix)0.5) : ___RopePlayerMass01, ___topAttachment, Fix.One); } } ___prevPlayerVel = ___externalVelocity + ___selfImposedVelocity; ___ropeBody = rope; if (___ropeBody != null) { reflectSet(___ropeBody, "grav_dir", ___grav_dir); } __instance.topAttachment = ___topAttachment; return false; } } [HarmonyReversePatch(/*Could not decode attribute arguments.*/)] [HarmonyPatch(typeof(PlayerBody), "Awake")] private class PlayerBodyAwakePatch { private static void Postfix(ref Vector2 ___grav_dir, ref PlayerBody __instance) { //IL_000b: 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) //IL_001c: Unknown result type (might be due to invalid IL or missing references) __instance.fixtrans.rotation = (Fix)90L; ___grav_dir = default_grav; } } [HarmonyPatch(typeof(Drill), "UpdateSim")] private class DrillUpdateSimPatch { private static void Postfix(ref Fix SimDeltaTime, ref bool ___isUnderground, ref PlayerBody ___body, ref Fix ___timePassed, ref Fix ___keepStrongGravitySeconds, ref Fix ___maxEarlyFallSpeed, ref Fix ___strongGravity, ref Fix ___gravityStr) { //IL_002b: 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_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_0063: 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_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) if (!___isUnderground & (___body.ropeBody == null || !___body.ropeBody.enabled)) { Fix val = ((___timePassed < ___keepStrongGravitySeconds && ___body.selfImposedVelocity.y < ___maxEarlyFallSpeed) ? ___strongGravity : ___gravityStr); PlayerBody obj = ___body; obj.selfImposedVelocity -= Vec2.down * val * SimDeltaTime; Vector2 val2 = (Vector2)reflectGet(___body, "grav_dir"); float num = Vector2.SignedAngle(val2, Vector2.down); Vec2 val3 = floatVecToFix(Vector2.op_Implicit(Quaternion.AngleAxis(num, Vector3.forward) * Vector2.op_Implicit(fixVecToFloat(___body.selfImposedVelocity)))); Fix val4 = ((___timePassed < ___keepStrongGravitySeconds && val3.y < ___maxEarlyFallSpeed) ? ___strongGravity : ___gravityStr); PlayerBody obj2 = ___body; obj2.selfImposedVelocity += floatVecToFix(val2) * val4 * SimDeltaTime; } } } [HarmonyPatch(typeof(MeteorSmash), "Jump")] private class MeteorSmashJumpPatch { private static bool Prefix(ref MeteorSmash __instance, ref PlayerBody ___body, ref PlayerInfo ___playerInfo, ref PlayerPhysics ___physics, ref FixTransform ___fixTrans, ref AnimationData ___animData, ref Fix ___trueMinHoldTime, ref Fix ___minHoldTime, ref State ___state, ref Fix ___timePassed, ref Fix ___jumpSpeed, ref SpriteAnimator ___animator, ref AnimationCurveFixed ___speedCurve) { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: 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) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_0057: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) //IL_018c: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) Vec2 val = floatVecToFix((Vector2)reflectGet(___body, "grav_dir")); float num = (float)Math.PI / 180f * Vector2.SignedAngle(fixVecToFloat(val), Vector2.down); if (!___playerInfo.isGrounded) { ___trueMinHoldTime = ___minHoldTime; __instance.Vibrate_fromAirStart(); ___body.rotation = (Fix)(0f - num); return false; } ___trueMinHoldTime = Fix.Zero; AudioManager.Get().Play("meteor_jump"); bool flag = ___physics.IsGrounded(); ___physics.UnGround(true, false); if (flag) { PlayerBody obj = ___body; obj.position += -val * ___physics.extraJumpTeleportMultiplier; } else { PlayerBody obj2 = ___body; obj2.position += -val * (Fix)1.75; } ((Component)__instance).transform.position = (Vector3)___body.position; if (___physics.VelocityBasedRaycasts(true, Updater.standardFixedDeltaTime)) { ___body.selfImposedVelocity = Vec2.zero; MeteorSmashExitAbilityGrounded(__instance); return false; } FixTransform obj3 = ___fixTrans; obj3.position += -val * ___physics.extraJumpTeleportMultiplier; ___body.selfImposedVelocity = -val * ___speedCurve.Evaluate(___timePassed) * ___jumpSpeed; ___animator.beginAnimThenDoAction(___animData.GetAnimation("air"), (Action)__instance.Vibrate); ___state = (State)1; ___body.rotation = (Fix)(0f - num); return false; } [HarmonyReversePatch(/*Could not decode attribute arguments.*/)] [HarmonyPatch(typeof(MeteorSmash), "ExitAbilityGrounded")] public static void MeteorSmashExitAbilityGrounded(object instance) { throw new NotImplementedException("It's a stub"); } } [HarmonyPatch(typeof(MeteorSmash), "UpdateSim")] private class MeteorSmashUpdateSimPatch { private static void Postfix(ref State ___state, ref PlayerBody ___body, ref AnimationCurveFixed ___speedCurve, ref Fix ___timePassed, ref Fix ___jumpSpeed) { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: 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_0030: 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_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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) if ((int)___state == 1) { ___body.selfImposedVelocity = -floatVecToFix((Vector2)reflectGet(___body, "grav_dir")) * ___speedCurve.Evaluate(___timePassed) * ___jumpSpeed; } } } [HarmonyReversePatch(/*Could not decode attribute arguments.*/)] [HarmonyPatch(typeof(MeteorSmash), "Dash")] private class MeteorSmashDashPatch { private static bool Prefix(ref MeteorSmash __instance, ref PlayerBody ___body, ref Ability ___ability, ref Fix ___timePassed, ref Fix ___maxHoldTime, ref State ___state, ref int ___updatesPassedInDash, ref SpriteRenderer ___spriteRen, ref List<RaycastInformation> ___raycastHits, ref FixTransform ___fixTrans, ref PlayerPhysics ___physics, ref LayerMask ___raycastMask, ref DPhysicsBox ___hitbox, ref ParticleSystem ___smokeParticle, ref Fix ___HitGroundLocalPosition, ref Fix ___groundForce, ref Fix ___timeBeforeDrop, ref PlayerInfo ___playerInfo, ref Fix ___playerPushForce, ref Fix ___shakeDuration, ref Fix ___shakeStr, ref AnimationCurveFixed ___spinCurve, ref Shockwave ___ShockwavePrefab, ref bool ___hasEnteredAbility) { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: 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) //IL_0021: 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) //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_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_066b: Unknown result type (might be due to invalid IL or missing references) //IL_066c: Unknown result type (might be due to invalid IL or missing references) //IL_0671: Unknown result type (might be due to invalid IL or missing references) //IL_0675: Unknown result type (might be due to invalid IL or missing references) //IL_067a: Unknown result type (might be due to invalid IL or missing references) //IL_067f: Unknown result type (might be due to invalid IL or missing references) //IL_0681: Unknown result type (might be due to invalid IL or missing references) //IL_068f: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_0720: Unknown result type (might be due to invalid IL or missing references) //IL_06aa: Unknown result type (might be due to invalid IL or missing references) //IL_06b7: 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_06cd: Unknown result type (might be due to invalid IL or missing references) //IL_06d8: Unknown result type (might be due to invalid IL or missing references) //IL_06e0: Unknown result type (might be due to invalid IL or missing references) //IL_06f1: Unknown result type (might be due to invalid IL or missing references) //IL_06f8: Unknown result type (might be due to invalid IL or missing references) //IL_0703: Unknown result type (might be due to invalid IL or missing references) //IL_070b: Unknown result type (might be due to invalid IL or missing references) //IL_03ba: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_072e: Unknown result type (might be due to invalid IL or missing references) //IL_08d0: Unknown result type (might be due to invalid IL or missing references) //IL_08d5: 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_08e5: Unknown result type (might be due to invalid IL or missing references) //IL_08f2: Unknown result type (might be due to invalid IL or missing references) //IL_08f7: Unknown result type (might be due to invalid IL or missing references) //IL_08fe: Unknown result type (might be due to invalid IL or missing references) //IL_0903: Unknown result type (might be due to invalid IL or missing references) //IL_0480: Unknown result type (might be due to invalid IL or missing references) //IL_048b: Unknown result type (might be due to invalid IL or missing references) //IL_0490: Unknown result type (might be due to invalid IL or missing references) //IL_0494: Unknown result type (might be due to invalid IL or missing references) //IL_0496: Unknown result type (might be due to invalid IL or missing references) //IL_049d: Unknown result type (might be due to invalid IL or missing references) //IL_04a5: Unknown result type (might be due to invalid IL or missing references) //IL_04b3: Unknown result type (might be due to invalid IL or missing references) //IL_04bb: Unknown result type (might be due to invalid IL or missing references) //IL_04c0: Unknown result type (might be due to invalid IL or missing references) //IL_04c5: Unknown result type (might be due to invalid IL or missing references) //IL_04cf: Unknown result type (might be due to invalid IL or missing references) //IL_04d4: Unknown result type (might be due to invalid IL or missing references) //IL_04db: Unknown result type (might be due to invalid IL or missing references) //IL_04dd: Unknown result type (might be due to invalid IL or missing references) //IL_04f7: Unknown result type (might be due to invalid IL or missing references) //IL_04fc: Unknown result type (might be due to invalid IL or missing references) //IL_0508: Unknown result type (might be due to invalid IL or missing references) //IL_050d: Unknown result type (might be due to invalid IL or missing references) //IL_0519: Unknown result type (might be due to invalid IL or missing references) //IL_051e: Unknown result type (might be due to invalid IL or missing references) //IL_0523: Unknown result type (might be due to invalid IL or missing references) //IL_0528: Unknown result type (might be due to invalid IL or missing references) //IL_052a: Unknown result type (might be due to invalid IL or missing references) //IL_0531: Unknown result type (might be due to invalid IL or missing references) //IL_0536: Unknown result type (might be due to invalid IL or missing references) //IL_0540: Unknown result type (might be due to invalid IL or missing references) //IL_054a: Unknown result type (might be due to invalid IL or missing references) //IL_0557: Unknown result type (might be due to invalid IL or missing references) //IL_055c: Unknown result type (might be due to invalid IL or missing references) //IL_0561: Unknown result type (might be due to invalid IL or missing references) //IL_056d: Unknown result type (might be due to invalid IL or missing references) //IL_057e: Unknown result type (might be due to invalid IL or missing references) //IL_0583: Unknown result type (might be due to invalid IL or missing references) //IL_0588: Unknown result type (might be due to invalid IL or missing references) //IL_058a: Unknown result type (might be due to invalid IL or missing references) //IL_058e: Unknown result type (might be due to invalid IL or missing references) //IL_0596: 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_05b5: Unknown result type (might be due to invalid IL or missing references) //IL_05ba: Unknown result type (might be due to invalid IL or missing references) //IL_05bf: Unknown result type (might be due to invalid IL or missing references) //IL_05c6: Unknown result type (might be due to invalid IL or missing references) //IL_05c8: Unknown result type (might be due to invalid IL or missing references) //IL_05d4: Unknown result type (might be due to invalid IL or missing references) //IL_05e5: Unknown result type (might be due to invalid IL or missing references) //IL_05ea: Unknown result type (might be due to invalid IL or missing references) //IL_05f6: Unknown result type (might be due to invalid IL or missing references) //IL_05fb: Unknown result type (might be due to invalid IL or missing references) //IL_0605: Unknown result type (might be due to invalid IL or missing references) //IL_060a: Unknown result type (might be due to invalid IL or missing references) //IL_060f: Unknown result type (might be due to invalid IL or missing references) //IL_0611: Unknown result type (might be due to invalid IL or missing references) //IL_0616: Unknown result type (might be due to invalid IL or missing references) //IL_03da: Unknown result type (might be due to invalid IL or missing references) //IL_03df: Unknown result type (might be due to invalid IL or missing references) //IL_03e1: Unknown result type (might be due to invalid IL or missing references) //IL_03e2: Unknown result type (might be due to invalid IL or missing references) //IL_03e7: Unknown result type (might be due to invalid IL or missing references) //IL_03e8: Unknown result type (might be due to invalid IL or missing references) //IL_03ed: Unknown result type (might be due to invalid IL or missing references) //IL_03f2: Unknown result type (might be due to invalid IL or missing references) //IL_03f4: Unknown result type (might be due to invalid IL or missing references) //IL_03fb: 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_040c: Unknown result type (might be due to invalid IL or missing references) //IL_0411: Unknown result type (might be due to invalid IL or missing references) //IL_0416: Unknown result type (might be due to invalid IL or missing references) //IL_041b: Unknown result type (might be due to invalid IL or missing references) //IL_041f: Unknown result type (might be due to invalid IL or missing references) //IL_0421: Unknown result type (might be due to invalid IL or missing references) //IL_0428: Unknown result type (might be due to invalid IL or missing references) //IL_042d: Unknown result type (might be due to invalid IL or missing references) //IL_0432: 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_0458: Unknown result type (might be due to invalid IL or missing references) //IL_0459: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01be: Unknown result type (might be due to invalid IL or missing references) //IL_01c3: Unknown result type (might be due to invalid IL or missing references) //IL_063d: Unknown result type (might be due to invalid IL or missing references) //IL_063e: Unknown result type (might be due to invalid IL or missing references) //IL_01db: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: Unknown result type (might be due to invalid IL or missing references) //IL_01e8: Unknown result type (might be due to invalid IL or missing references) //IL_01ea: Unknown result type (might be due to invalid IL or missing references) //IL_01ef: 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_0217: Unknown result type (might be due to invalid IL or missing references) //IL_0240: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Unknown result type (might be due to invalid IL or missing references) //IL_026e: Unknown result type (might be due to invalid IL or missing references) //IL_0275: Unknown result type (might be due to invalid IL or missing references) //IL_07bf: Unknown result type (might be due to invalid IL or missing references) //IL_0749: Unknown result type (might be due to invalid IL or missing references) //IL_0756: Unknown result type (might be due to invalid IL or missing references) //IL_0765: Unknown result type (might be due to invalid IL or missing references) //IL_076c: Unknown result type (might be due to invalid IL or missing references) //IL_0777: Unknown result type (might be due to invalid IL or missing references) //IL_077f: Unknown result type (might be due to invalid IL or missing references) //IL_0790: Unknown result type (might be due to invalid IL or missing references) //IL_0797: Unknown result type (might be due to invalid IL or missing references) //IL_07a2: Unknown result type (might be due to invalid IL or missing references) //IL_07aa: Unknown result type (might be due to invalid IL or missing references) //IL_0291: Unknown result type (might be due to invalid IL or missing references) //IL_0297: Unknown result type (might be due to invalid IL or missing references) //IL_029c: Unknown result type (might be due to invalid IL or missing references) //IL_07cd: Unknown result type (might be due to invalid IL or missing references) //IL_02e1: Unknown result type (might be due to invalid IL or missing references) //IL_02e8: Unknown result type (might be due to invalid IL or missing references) //IL_02ef: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Unknown result type (might be due to invalid IL or missing references) //IL_02b6: Unknown result type (might be due to invalid IL or missing references) //IL_02bd: Unknown result type (might be due to invalid IL or missing references) //IL_0859: Unknown result type (might be due to invalid IL or missing references) //IL_0866: Unknown result type (might be due to invalid IL or missing references) //IL_0875: Unknown result type (might be due to invalid IL or missing references) //IL_087c: Unknown result type (might be due to invalid IL or missing references) //IL_0887: Unknown result type (might be due to invalid IL or missing references) //IL_088f: Unknown result type (might be due to invalid IL or missing references) //IL_08a0: Unknown result type (might be due to invalid IL or missing references) //IL_08a7: Unknown result type (might be due to invalid IL or missing references) //IL_08b2: Unknown result type (might be due to invalid IL or missing references) //IL_08ba: Unknown result type (might be due to invalid IL or missing references) //IL_07e5: Unknown result type (might be due to invalid IL or missing references) //IL_07f2: Unknown result type (might be due to invalid IL or missing references) //IL_0801: Unknown result type (might be due to invalid IL or missing references) //IL_0808: Unknown result type (might be due to invalid IL or missing references) //IL_0813: Unknown result type (might be due to invalid IL or missing references) //IL_081b: Unknown result type (might be due to invalid IL or missing references) //IL_082c: Unknown result type (might be due to invalid IL or missing references) //IL_0833: Unknown result type (might be due to invalid IL or missing references) //IL_083e: Unknown result type (might be due to invalid IL or missing references) //IL_0846: Unknown result type (might be due to invalid IL or missing references) //IL_0308: Unknown result type (might be due to invalid IL or missing references) //IL_0337: Unknown result type (might be due to invalid IL or missing references) //IL_033c: Unknown result type (might be due to invalid IL or missing references) //IL_033e: Unknown result type (might be due to invalid IL or missing references) //IL_0343: Unknown result type (might be due to invalid IL or missing references) //IL_034b: Unknown result type (might be due to invalid IL or missing references) //IL_0350: Unknown result type (might be due to invalid IL or missing references) //IL_0352: Unknown result type (might be due to invalid IL or missing references) //IL_0357: Unknown result type (might be due to invalid IL or missing references) //IL_035e: Unknown result type (might be due to invalid IL or missing references) //IL_035f: Unknown result type (might be due to invalid IL or missing references) //IL_036d: Unknown result type (might be due to invalid IL or missing references) //IL_0375: Unknown result type (might be due to invalid IL or missing references) //IL_037a: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Unknown result type (might be due to invalid IL or missing references) Vec2 val = floatVecToFix((Vector2)reflectGet(___body, "grav_dir")); ___ability.KillPlayersOnContact = true; Fix val2 = Fix.Min(___timePassed / ___maxHoldTime, Fix.One); ___state = (State)3; ___updatesPassedInDash = 0; ___body.selfImposedVelocity = Vec2.zero; ___body.externalVelocity = Vec2.zero; ((Renderer)___spriteRen).enabled = false; ___raycastHits.Clear(); bool flag = DetPhysics.Get().RaycastAll(___fixTrans.position + val * ___physics.radius, val, (Fix)1000000L, ___raycastMask, ___raycastHits, ___hitbox.GetPhysicsParent().instanceId); Vec2 position = ___body.position; if (flag) { for (int i = 0; i < ___raycastHits.Count; i++) { Vec2 nearPos = ___raycastHits[i].nearPos; if (___raycastHits[i].layer == LayerMask.NameToLayer("wall")) { StickyRoundedRectangle component = ((Component)___raycastHits[i].pp.fixTrans).GetComponent<StickyRoundedRectangle>(); Vec2 closestPoint = component.GetClosestPoint(nearPos); ((Component)((Component)___smokeParticle).transform.parent).transform.position = (Vector3)closestPoint; ___smokeParticle.Play(); ___body.position = nearPos; ___HitGroundLocalPosition = component.LocalPlayerPosFromPos(closestPoint, ___physics.radius); Fix val3 = (val2 + Fix.One) * (Fix)0.5f; if (!(closestPoint.x < component.GetGroundBody().position.x)) { _ = -Fix.One; } else { _ = Fix.One; } component.GetGroundBody().AddForceAtPosition(val * ___groundForce * val3, nearPos, (ForceMode2D)0); StickyRoundedRectangle component2 = ((Component)component).GetComponent<StickyRoundedRectangle>(); float num = (1f + (float)val2 * 0.4f) * Mathf.Min((float)___fixTrans.Scale, 1.5f); ((Component)___smokeParticle).transform.localScale = new Vector3(num, num, 1f); ((Component)___smokeParticle).transform.GetChild(0).localScale = new Vector3(num, num, 1f); if (___timePassed > ___timeBeforeDrop) { component2.DropAllAttachedPlayers(___playerInfo.playerId, ___playerPushForce * ___timePassed); ShakablePlatform component3 = ((Component)component).GetComponent<ShakablePlatform>(); if (component3 != null) { component3.AddShake(___shakeDuration, ___shakeStr, 100, (Material)null, ___spinCurve); } } else { ShakablePlatform component4 = ((Component)component).GetComponent<ShakablePlatform>(); if (component4 != null) { component4.AddShake(___shakeDuration, ___shakeStr / (Fix)3L, 0, (Material)null, ___spinCurve); } } Shockwave val4 = FixTransform.InstantiateFixed<Shockwave>(___ShockwavePrefab, nearPos); val4.SetPlayerId(___playerInfo.playerId); val4.AddObjectToIgnore(((Object)((Component)component).gameObject).GetInstanceID()); val4.platformForce *= val3; val4.defaultForce *= val3; MeteorSmashSpawnSmearEffect(__instance, position, nearPos); ___body.position = component.PositionFromLocalPlayerPos(___HitGroundLocalPosition, ___physics.radius); ___physics.AttachToGround(component, ___fixTrans.position); AudioManager.Get().Play("meteor_dash"); MeteorSmashExitAbilityGrounded(__instance); break; } if (___raycastHits[i].layer == LayerMask.NameToLayer("Water")) { Fix waterHeight = SceneBounds.WaterHeight; Fix val5 = val.x / val.y * waterHeight + ___body.position.x + ___body.position.y; ___body.position = new Vec2(val5, waterHeight - (Fix)20f); ((Component)__instance).transform.position = (Vector3)___body.position; MeteorSmashSpawnSmearEffect(__instance, position, nearPos); AudioManager.Get().Play("dash"); MeteorSmashExitAbilityNoGround(__instance); break; } ___body.position = nearPos; Box physicsBox = ___hitbox.physicsBox; physicsBox.center = nearPos; CollisionInformation val6 = default(CollisionInformation); val6.collider = (IShape)(object)physicsBox; val6.colliderImpactVelocity = Vec2.down * (Fix)50L; val6.colliderPP = ___hitbox.pp; val6.contactPoint = nearPos; val6.layer = ((Component)__instance).gameObject.layer; val6.normal = Vec2.up; val6.penetration = (Fix)0.1f; val6.pp = ___raycastHits[i].pp; CollisionInformation val7 = val6; ___raycastHits[i].pp.collisionCallback.OnCollide(val7); Circle val8 = default(Circle); val8.center = ___raycastHits[i].nearPos; val8.layer = ___raycastHits[i].layer; val8.radius = Fix.One; Circle val9 = val8; val6 = default(CollisionInformation); val6.collider = (IShape)(object)val9; val6.colliderImpactVelocity = Vec2.zero; val6.colliderPP = ___raycastHits[i].pp; val6.contactPoint = nearPos; val6.layer = ___raycastHits[i].layer; val6.normal = Vec2.up; val6.penetration = (Fix)0.1f; val6.pp = ___hitbox.pp; val7 = val6; ___hitbox.OnCollide(val7); if (!___hasEnteredAbility) { AudioManager.Get().Play("dash"); MeteorSmashSpawnSmearEffect(__instance, position, nearPos); break; } } } else { Vector2 val10 = fixVecToFloat(val); Vector2 val11 = fixVecToFloat(___body.position); float num4; float num5; if (val10.x > 0f && val10.y >= 0f) { float num2 = (float)SceneBounds.BlastZone_XMax; float num3 = (float)SceneBounds.BlastZone_YMax; num4 = Mathf.Min(num2, val10.x / val10.y * num3 + val11.x + val11.y); num5 = Mathf.Min(num3, val10.y / val10.x * num2 + val11.x + val11.y); } else if (val10.x < 0f && val10.y >= 0f) { float num2 = (float)SceneBounds.BlastZone_XMin; float num3 = (float)SceneBounds.BlastZone_YMax; num4 = Mathf.Max(num2, val10.x / val10.y * num3 + val11.x + val11.y); num5 = Mathf.Min(num3, val10.y / val10.x * num2 + val11.x + val11.y); } else if (val10.x >= 0f && val10.y < 0f) { float num2 = (float)SceneBounds.BlastZone_XMax; float num3 = (float)SceneBounds.WaterHeight; num4 = Mathf.Min(num2, val10.x / val10.y * num3 + val11.x + val11.y); num5 = Mathf.Max(num3, val10.y / val10.x * num2 + val11.x + val11.y); } else { float num2 = (float)SceneBounds.BlastZone_XMin; float num3 = (float)SceneBounds.WaterHeight; num4 = Mathf.Max(num2, val10.x / val10.y * num3 + val11.x + val11.y); num5 = Mathf.Max(num3, val10.y / val10.x * num2 + val11.x + val11.y); } ___body.position = floatVecToFix(new Vector2(num4, num5)); MeteorSmashSpawnSmearEffect(__instance, position, ___body.position); ___body.selfImposedVelocity = Vec2.zero; ___body.externalVelocity = Vec2.zero; AudioManager.Get().Play("dash"); MeteorSmashExitAbilityNoGround(__instance); } return false; } public static void MeteorSmashSpawnSmearEffect(object instance, Vec2 from, Vec2 to) { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) MethodInfo method = instance.GetType().GetMethod("SpawnSmearEffect", BindingFlags.Instance | BindingFlags.NonPublic); method.Invoke(instance, new object[2] { from, to }); } [HarmonyReversePatch(/*Could not decode attribute arguments.*/)] [HarmonyPatch(typeof(MeteorSmash), "ExitAbilityNoGround")] public static void MeteorSmashExitAbilityNoGround(object instance) { throw new NotImplementedException("It's a stub"); } [HarmonyReversePatch(/*Could not decode attribute arguments.*/)] [HarmonyPatch(typeof(MeteorSmash), "ExitAbilityGrounded")] public static void MeteorSmashExitAbilityGrounded(object instance) { throw new NotImplementedException("It's a stub"); } } [HarmonyReversePatch(/*Could not decode attribute arguments.*/)] [HarmonyPatch(typeof(MeteorSmash), "SpawnSmearEffect")] private class MeteorSmashSpawnSmearEffectPatch { private static bool Prefix(ref PlayerBody ___body, ref Vec2 to, ref Vec2 from, ref FixTransform ___fixTrans, ref Ability ___ability, ref SpriteRenderer ___spriteRen, ref Fix ___smearScaling, ref PlayerInfo ___playerInfo, ref GameObject ___SmearFramePrefab) { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_018c: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: 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) float num = Vector2.SignedAngle((Vector2)reflectGet(___body, "grav_dir"), Vector2.down); GameObject val = FixTransform.InstantiateFixed(___SmearFramePrefab, to); SpriteRenderer component = val.GetComponent<SpriteRenderer>(); DPhysicsBox component2 = val.GetComponent<DPhysicsBox>(); FixTransform component3 = val.GetComponent<FixTransform>(); component2.ManualInit(); ((AbilityMonoBehaviour)___ability).GetSlimeController().GetPlayerCollision().ignoredCollider[0] = (IPhysicsCollider)(object)component2; ((AbilityMonoBehaviour)___ability).GetPlayerCollision().ignoredCollider[0] = (IPhysicsCollider)(object)component2; Vec2 val2 = to - from; Vec2 val3 = component2.CalcExtents(); Fix y = val3.y; Fix x = val3.x; val3.y = Vec2.Magnitude(val2) * (Fix)0.5f; ref Fix x2 = ref val3.x; x2 *= ___fixTrans.Scale; component2.SetExtents(val3); Vec2 offset = component3.offset; ref Fix y2 = ref offset.y; y2 *= val3.y / y; component3.offset = offset; Vector2 val4 = (Vector2)val2; float num2 = ((Vector2)(ref val4)).magnitude / (float)y; val.transform.localScale = new Vector3((float)___fixTrans.Scale, num2, 1f); component2.rotation = (Fix)((float)Math.PI / 180f * (0f - num)); ((Renderer)component).material.SetVector("_Scale", new Vector4(1f, val.transform.localScale.y * (float)___smearScaling, 1f)); ((Renderer)component).material.SetColor("_ShadowColor", ((Renderer)___spriteRen).material.GetColor("_ShadowColor")); ((Renderer)component).material.SetColor("_MainColor", ((Renderer)___spriteRen).material.GetColor("_MainColor")); ((Renderer)component).material.SetColor("_ReflectionColour", ((Renderer)___spriteRen).material.GetColor("_ReflectionColour")); val.GetComponent<Explosion>().PlayerOwnerId = ___playerInfo.playerId; return false; } } [HarmonyReversePatch(/*Could not decode attribute arguments.*/)] [HarmonyPatch(typeof(BowTransform), "Shoot")] private class BowTransformShootPatch { private static bool Prefix(Vec2 dir, ref PlayerBody ___body, ref RingBuffer<BoplBody> ___Arrows, ref Vec2 ___FirepointOffset, ref BoplBody ___Arrow, ref PlayerInfo ___playerInfo, ref Fix ___ArrowSpeed, ref Fix ___TimeBeforeArrowsHurtOwner, ref bool ___hasFired, ref int ___loadingFrame) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //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_001a: 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) //IL_0027: 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_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0036: 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_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) Vec2 val = ___body.position + ___FirepointOffset.x * ___body.right + ___FirepointOffset.y * ___body.up; BoplBody val2 = FixTransform.InstantiateFixed<BoplBody>(___Arrow, val, ___body.rotation); val2.Scale = ___body.fixtrans.Scale; Fix val3 = Fix.One + (___body.fixtrans.Scale - Fix.One) / (Fix)2L; ___Arrows.Add(val2); ((Component)val2).GetComponent<IPlayerIdHolder>().SetPlayerId(___playerInfo.playerId); ((Renderer)((Component)val2).GetComponent<SpriteRenderer>()).material = ___playerInfo.playerMaterial; val2.StartVelocity = dir * ((Fix)(long)___loadingFrame + Fix.One) * ___ArrowSpeed * val3 + ___body.selfImposedVelocity; ((Component)val2).GetComponent<Projectile>().DelayedEnableHurtOwner(___TimeBeforeArrowsHurtOwner * val3 / Vec2.Magnitude(val2.StartVelocity)); val2.rotation = ___body.rotation; reflectSet(val2, "grav_dir", reflectGet(___body, "grav_dir")); ___hasFired = true; return false; } } [HarmonyReversePatch(/*Could not decode attribute arguments.*/)] [HarmonyPatch(typeof(ThrowItem2), "Fire")] private class ThrowItem2FirePatch { private static void Prefix(ref Grenade ___grenade, ref bool __state) { __state = (Object)(object)___grenade != (Object)null && !___grenade.hasBeenThrown; } private static void Postfix(ref Grenade ___grenade, ref BoplBody ___grenadeBody, ref PlayerBody ___body, ref bool __state) { if (__state) { reflectSet(___grenadeBody, "grav_dir", reflectGet(___body, "grav_dir")); } } } [HarmonyReversePatch(/*Could not decode attribute arguments.*/)] [HarmonyPatch(typeof(MachoThrow2), "Fire")] private class MachoThrow2FirePatch { private static bool Prefix(ref MachoThrow2 __instance, ref bool quickThrow, ref Boulder ___boulderPrefab, ref PlayerBody ___body, ref Player ___player, ref RingBufferSimple<Boulder> ___ringBuffer, ref PlatformType ___boulderType, ref SpriteRenderer ___boulderDummy, ref Boulder ___heldBoulder, ref Vec2 ___minThrowVector, ref bool ___facingRight, ref Fix ___quickThrowStr, ref SpriteAnimator ___animator, ref Fix ___quickThrowChargeScaling, ref Fix ___throwSpeed, ref DPhysicsBox ___hurtbox, ref Fix ___proportionOfExtraStrFromScale, ref Fix ___rotationVelOnThrow) { //IL_001c: 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_0021: 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_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_0194: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_019a: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0202: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Unknown result type (might be due to invalid IL or missing references) //IL_0217: Unknown result type (might be due to invalid IL or missing references) //IL_021c: Unknown result type (might be due to invalid IL or missing references) //IL_0221: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Unknown result type (might be due to invalid IL or missing references) //IL_01eb: Unknown result type (might be due to invalid IL or missing references) //IL_01f0: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0232: Unknown result type (might be due to invalid IL or missing references) //IL_0237: Unknown result type (might be due to invalid IL or missing references) //IL_023c: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_024d: Unknown result type (might be due to invalid IL or missing references) //IL_0252: Unknown result type (might be due to invalid IL or missing references) //IL_0255: Unknown result type (might be due to invalid IL or missing references) //IL_0256: Unknown result type (might be due to invalid IL or missing references) //IL_0258: Unknown result type (might be due to invalid IL or missing references) //IL_025d: Unknown result type (might be due to invalid IL or missing references) //IL_025f: Unknown result type (might be due to invalid IL or missing references) //IL_0265: Unknown result type (might be due to invalid IL or missing references) //IL_026a: Unknown result type (might be due to invalid IL or missing references) //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_027d: Unknown result type (might be due to invalid IL or missing references) Boulder val2; DPhysicsRoundedRect val3; if (quickThrow) { Vec2 val = (quickThrow ? MachoThrow2quickThrowFirePos(__instance) : MachoThrow2firePos(__instance)); val2 = FixTransform.InstantiateFixed<Boulder>(___boulderPrefab, val); val3 = val2.hitbox; val3.Scale = ___body.fixtrans.Scale; ___ringBuffer.Add(val2); val3.ManualInit(); val3.Scale = ___body.fixtrans.Scale; ((Component)val3).GetComponent<StickyRoundedRectangle>().platformType = ___boulderType; SpriteRenderer component = ((Component)val3).GetComponent<SpriteRenderer>(); component.sprite = ___boulderDummy.sprite; component.color = ___boulderDummy.color; } else { val2 = ___heldBoulder; val3 = ___heldBoulder?.hitbox; } if ((Object)(object)val2 == (Object)null || !((Behaviour)val2).isActiveAndEnabled) { return false; } reflectSet(reflectGet(val3, "body"), "grav_dir", reflectGet(___body, "grav_dir")); val2.Drop(); AudioManager.Get().Play("throwBoulder"); Vec2 val4 = (quickThrow ? Vec2.right : Vec2.NormalizedSafe(___minThrowVector)); Vec2 val5 = ___player.AimVector(); if (val5 == Vec2.zero) { val5 = ___body.right * (___facingRight ? Fix.One : (-Fix.One)); } if (Vec2.Dot(___body.up, val5) < Vec2.Dot(val4, Vec2.up)) { if (Vec2.Dot(___body.right, val5) < Fix.Zero) { ref Fix x = ref val4.x; x *= -Fix.One; val5 = Vec2.ComplexMul(val4, ___body.right); } else { val5 = Vec2.ComplexMul(val4, ___body.right); } } Fix val6 = (quickThrow ? (___quickThrowStr + (Fix)(long)___animator.getNumberOfPassedSprites() * ___quickThrowChargeScaling) : ___throwSpeed); Fix val7 = (___hurtbox.Scale + (___proportionOfExtraStrFromScale - Fix.One)) / ___proportionOfExtraStrFromScale; val3.velocity = val5 * val6 * val7 * val3.inverseMass; val3.angularVelocity = (___facingRight ? (-___rotationVelOnThrow) : ___rotationVelOnThrow); ((Component)___boulderDummy).gameObject.SetActive(false); ___heldBoulder = null; return false; } [HarmonyReversePatch(/*Could not decode attribute arguments.*/)] [HarmonyPatch(typeof(MachoThrow2), "quickThrowFirePos")] public static Vec2 MachoThrow2quickThrowFirePos(object instance) { throw new NotImplementedException("It's a stub"); } [HarmonyReversePatch(/*Could not decode attribute arguments.*/)] [HarmonyPatch(typeof(MachoThrow2), "firePos")] public static Vec2 MachoThrow2firePos(object instance) { throw new NotImplementedException("It's a stub"); } } [HarmonyPatch(typeof(Boulder), "Drop")] private class BoulderDropPatch { private static void Postfix(ref DPhysicsRoundedRect ___hitbox) { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Invalid comparison between Unknown and I4 if (!((Object)(object)___hitbox == (Object)null) && !((MonoUpdatable)___hitbox).IsDestroyed && ___hitbox.initHasBeenCalled) { ___hitbox.SetGravityScale(Fix.Zero); reflectSet(reflectGet(___hitbox, "body"), "grav_enabled", true); reflectSet(reflectGet(___hitbox, "body"), "grav_scale", ((int)Constants.leveltype == 2) ? 0.5f : 1f); } } } [HarmonyPatch(typeof(Drill), "OnEnterAbility")] private class DrillOnEnterAbilityPatch { private static void Postfix(ref BoplBody ___body, ref PlayerInfo ___playerInfo, ref Ability ___ability) { reflectSet(___body, "grav_dir", reflectGet(___playerInfo.slimeController.body, "grav_dir")); } } [HarmonyPatch(typeof(BounceBall), "OnEnterAbility")] private class BounceBallOnEnterAbilityPatch { private static void Postfix(ref BoplBody ___body, ref PlayerInfo ___playerInfo, ref Ability ___ability) { reflectSet(___body, "grav_dir", reflectGet(___playerInfo.slimeController.body, "grav_dir")); } } [HarmonyReversePatch(/*Could not decode attribute arguments.*/)] [HarmonyPatch(typeof(BowTransform), "OnEnterAbility")] private class BowTransformOnEnterAbilityPatch { private static void Postfix(ref Ability ___ability, ref PlayerBody ___body, ref PlayerInfo ___playerInfo) { reflectSet(___body, "grav_dir", reflectGet(___playerInfo.slimeController.body, "grav_dir")); } } [HarmonyReversePatch(/*Could not decode attribute arguments.*/)] [HarmonyPatch(typeof(ThrowItem2), "OnEnterAbility")] private class ThrowItem2OnEnterAbilityPatch { private static void Postfix(ref Ability ___ability, ref PlayerBody ___body, ref PlayerInfo ___playerInfo) { reflectSet(___body, "grav_dir", reflectGet(___playerInfo.slimeController.body, "grav_dir")); } } [HarmonyReversePatch(/*Could not decode attribute arguments.*/)] [HarmonyPatch(typeof(GunTransform), "OnEnterAbility")] private class GunTransformOnEnterAbilityPatch { private static void Postfix(ref Ability ___ability, ref PlayerBody ___body, ref PlayerInfo ___playerInfo) { reflectSet(___body, "grav_dir", reflectGet(___playerInfo.slimeController.body, "grav_dir")); } } [HarmonyPatch(typeof(Beam), "OnEnterAbility")] private class BeamOnEnterAbilityPatch { private static void Postfix(ref BoplBody ___body, ref PlayerInfo ___playerInfo, ref Ability ___ability) { reflectSet(___body, "grav_dir", reflectGet(___playerInfo.slimeController.body, "grav_dir")); } } [HarmonyReversePatch(/*Could not decode attribute arguments.*/)] [HarmonyPatch(typeof(MachoThrow2), "OnEnterAbility")] private class MachoThrow2OnEnterAbilityPatch { private static void Postfix(ref Ability ___ability, ref PlayerBody ___body, ref PlayerInfo ___playerInfo) { reflectSet(___body, "grav_dir", reflectGet(___playerInfo.slimeController.body, "grav_dir")); } } [HarmonyReversePatch(/*Could not decode attribute arguments.*/)] [HarmonyPatch(typeof(PhysicsBody))] private class PhysicsBodyPhysicsBodyPatch { private static void PostFix(ref PhysicsBody __instance, ref Vector2 ___grav_dir, ref float ___true_gravity_scale) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (migh