Decompiled source of OmniGravity v3.0.2
OmniGravity.dll
Decompiled 2 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