using System; using System.Collections.Generic; using System.Runtime.InteropServices; using Cpp2IlInjected; using RecNet; using RecRoom.Core.Pools; using UnityEngine; namespace RecRoom.Core.AI { // Token: 0x02002E22 RID: 11810 [Token(Token = "0x2002E22")] [StructLayout(3)] public class RagdollPiece : MonoBehaviour { // Token: 0x06015209 RID: 86537 RVA: 0x00514058 File Offset: 0x00512258 [Token(Token = "0x6015209")] [Address(RVA = "0x1B7FD20", Offset = "0x1B7E720", VA = "0x181B7FD20")] public static void UseCustomGravity(Vector3 OPHDFCHKOBI) { float z = OPHDFCHKOBI.z; } // Token: 0x0601520A RID: 86538 RVA: 0x0051406C File Offset: 0x0051226C [Token(Token = "0x601520A")] [Address(RVA = "0x1B7FDA0", Offset = "0x1B7E7A0", VA = "0x181B7FDA0")] public static void UseDefaultGravity() { float z = Physics.gravity.z; } // Token: 0x0601520B RID: 86539 RVA: 0x00514084 File Offset: 0x00512284 [Token(Token = "0x601520B")] [Address(RVA = "0x1B7ED80", Offset = "0x1B7D780", VA = "0x181B7ED80")] private void Awake() { Transform parent = base.transform.parent; this.HICENEOPGOF = parent; Transform transform = base.transform; Vector3 vector; float z = vector.z; this.GHBPCACOCOL.z = z; Transform transform2 = base.transform; Transform transform3 = base.transform; Vector3 vector2; float z2 = vector2.z; this.MCBHKKGJLKD.z = z2; Collider[] componentsInChildren = base.GetComponentsInChildren(true); this.NNBALFKKNDO = componentsInChildren; if (this.disableColliderWhenNotRagdolling) { int num = 0; if (num < componentsInChildren.Length) { Collider collider = componentsInChildren[num]; int num2 = 0; collider.enabled = num2 != 0; Collider[] nnbalfkkndo = this.NNBALFKKNDO; num++; } } } // Token: 0x0601520C RID: 86540 RVA: 0x00514138 File Offset: 0x00512338 [Token(Token = "0x601520C")] [Address(RVA = "0x1B7F0C0", Offset = "0x1B7DAC0", VA = "0x181B7F0C0")] private void OnDisable() { if (!base.gameObject.activeSelf) { Transform transform = base.transform; Vector3 vector; float z = vector.z; Vector3 vector2; float z2 = vector2.z; } } // Token: 0x0601520D RID: 86541 RVA: 0x00514170 File Offset: 0x00512370 [Token(Token = "0x601520D")] [Address(RVA = "0x1B7F1C0", Offset = "0x1B7DBC0", VA = "0x181B7F1C0")] public void StartRagdoll(Vector3 GJFAEGPLDAB, Vector3 JIPJCDCNJKB, float FJLCMDJONID, bool MPOLJMBILKN = false) { int num = 0; if ((this.FJJHBFPKLAN ? 1 : 0) == num) { this.FJJHBFPKLAN = true; if (this.criticalHitActionOverride == RagdollPiece.KFONPGFNBKP.NONE) { Vector3 onUnitSphere = global::UnityEngine.Random.onUnitSphere; float z = JIPJCDCNJKB.z; Vector3 vector; float z2 = vector.z; bool flag = Matchmaking.KDIKBBAPFDH; GameObject gameObject; gameObject.layer = 24; int num2 = 0; GameObject gameObject2; gameObject2.layer = 24; num2++; int num3 = 0; Transform transform; transform.localPosition = num3; int num4 = 0; Transform transform2; transform2.localRotation = num4; int num5 = 0; Transform transform3; transform3.localScale = num5; int num6 = 0; Transform transform4; transform4.SetParent(num6, true); int num7 = 0; if (num2 == num7) { GameObject gameObject3; Rigidbody rigidbody = gameObject3.AddComponent(); } int num8 = 0; if (num2 != num8) { bool flag2 = "{il2cpp field on {'constant104' (constant value of type Cpp2IL.Core.Analysis.ResultModels.StaticFieldsPtr)}, offset 0x0}" == (ulong)0L; } float time = Time.time; Scheduler instance = SingletonMonoBehaviour.Instance; RagdollPiece.KHNGENMIICE khngenmiice; khngenmiice.System.IDisposable.Dispose(); khngenmiice.<>1__state = (int)((ulong)0L); khngenmiice.<>4__this = 0; int num9 = 0; GameObject gameObject4; gameObject4.SetActive(num9 != 0); throw new NullReferenceException(); } float num10 = global::UnityEngine.Random.Range((float)0, 1f); float num11 = this.criticalHitOverrideChance; if (this.criticalHitActionOverride == RagdollPiece.KFONPGFNBKP.PLAY_EFFECT) { if (this.disableWhenOverriding) { GameObject gameObject5 = base.gameObject; int num12 = 0; gameObject5.SetActive(num12 != 0); } PooledParticle pooledParticle = this.criticalHitActionEffect; int num13 = 0; if (pooledParticle != num13) { GlobalPool instance2 = GlobalPool.ONCPNMDGGKG; PooledParticle pooledParticle2 = this.criticalHitActionEffect; PooledParticle pooledParticle3 = instance2.Acquire(pooledParticle2); if (pooledParticle3 != 0) { Transform transform5 = base.transform; pooledParticle3.Play(transform5); } } if (this.criticalHitActionAudioClip != 0) { Transform transform6 = base.transform; } } } } // Token: 0x0601520E RID: 86542 RVA: 0x00514324 File Offset: 0x00512524 [Token(Token = "0x601520E")] [Address(RVA = "0x1B7F9F0", Offset = "0x1B7E3F0", VA = "0x181B7F9F0")] public void StopRagdoll() { if (this.FJJHBFPKLAN) { GameObject gameObject = base.gameObject; int num = 0; if (gameObject != num) { base.gameObject.SetActive(true); } Rigidbody eelomepllid = this.EELOMEPLLID; int num2 = 0; if (eelomepllid != num2) { global::UnityEngine.Object.Destroy(this.EELOMEPLLID); this.EELOMEPLLID = (ulong)0L; } Collider[] nnbalfkkndo = this.NNBALFKKNDO; bool flag = !this.disableColliderWhenNotRagdolling; int num3 = 0; int num4 = 0; if (num4 < nnbalfkkndo.Length) { Collider collider = nnbalfkkndo[num3]; int num5 = 0; if (collider != num5) { this.NNBALFKKNDO[num3].enabled = flag; } Collider[] nnbalfkkndo2 = this.NNBALFKKNDO; num3++; } Transform transform = base.transform; int num6 = 0; if (transform != num6) { Transform transform2 = base.transform; Transform hiceneopgof = this.HICENEOPGOF; transform2.SetParent(hiceneopgof, true); Transform transform3 = base.transform; float z = this.GHBPCACOCOL.z; Transform transform4 = base.transform; Quaternion ldakihfdifn = this.LDAKIHFDIFN; transform4.localRotation = ldakihfdifn; Transform transform5 = base.transform; float z2 = this.MCBHKKGJLKD.z; } if (this.NHJOJNGHAMH != 0) { this.NHJOJNGHAMH = (ulong)0L; } this.FJJHBFPKLAN = false; } } // Token: 0x0601520F RID: 86543 RVA: 0x0051447C File Offset: 0x0051267C [Token(Token = "0x601520F")] [Address(RVA = "0x1B7F060", Offset = "0x1B7DA60", VA = "0x181B7F060")] private IEnumerator GGDNEPBAPNP() { /* An exception occurred when decompiling this method (0601520F) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.Generic.IEnumerator`1 RecRoom.Core.AI.RagdollPiece::GGDNEPBAPNP() ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: call:void(KHNGENMIICE::System.IDisposable.Dispose, ldloc:KHNGENMIICE(var_0)) stfld:int32(KHNGENMIICE::<>1__state, ldloc:KHNGENMIICE(var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](0))) stfld:RagdollPiece(KHNGENMIICE::<>4__this, ldloc:KHNGENMIICE(var_0), ldloc:RagdollPiece(this)) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } // Token: 0x06015210 RID: 86544 RVA: 0x005144A0 File Offset: 0x005126A0 [Token(Token = "0x6015210")] [Address(RVA = "0x1B7EEE0", Offset = "0x1B7D8E0", VA = "0x181B7EEE0")] private void BPGOLGMELEO() { if (this.disableWhenOverriding) { GameObject gameObject = base.gameObject; int num = 0; gameObject.SetActive(num != 0); } PooledParticle pooledParticle = this.criticalHitActionEffect; int num2 = 0; if (pooledParticle != num2) { GlobalPool instance = GlobalPool.ONCPNMDGGKG; PooledParticle pooledParticle2 = this.criticalHitActionEffect; PooledParticle pooledParticle3 = instance.Acquire(pooledParticle2); if (pooledParticle3 != 0) { Transform transform = base.transform; pooledParticle3.Play(transform); } } if (this.criticalHitActionAudioClip != 0) { Transform transform2 = base.transform; Vector3 vector; float z = vector.z; } } // Token: 0x06015211 RID: 86545 RVA: 0x0051452C File Offset: 0x0051272C [Token(Token = "0x6015211")] [Address(RVA = "0x1B7FE80", Offset = "0x1B7E880", VA = "0x181B7FE80")] public RagdollPiece() { float z = Vector3.zero.z; this.GHBPCACOCOL.z = z; Quaternion identity = Quaternion.identity; float z2 = Vector3.one.z; this.MCBHKKGJLKD.z = z2; float z3 = Vector3.one.z; this.NGEHEHMAALH.z = z3; base..ctor(); } // Token: 0x06015212 RID: 86546 RVA: 0x005145AC File Offset: 0x005127AC // Note: this type is marked as 'beforefieldinit'. [Token(Token = "0x6015212")] [Address(RVA = "0x1B7FE20", Offset = "0x1B7E820", VA = "0x181B7FE20")] static RagdollPiece() { float z = Physics.gravity.z; } // Token: 0x0400E12A RID: 57642 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x400E12A")] [SerializeField] [Tooltip("Only mark colliders as disable when not ragdolling if the colliders are exclusively used for ragdolling.")] private bool disableColliderWhenNotRagdolling; // Token: 0x0400E12B RID: 57643 [global::Cpp2IlInjected.FieldOffset(Offset = "0x19")] [Token(Token = "0x400E12B")] [SerializeField] private bool disableInsteadOfRagdoll; // Token: 0x0400E12C RID: 57644 [global::Cpp2IlInjected.FieldOffset(Offset = "0x1C")] [Token(Token = "0x400E12C")] [SerializeField] [Header("Critical Hits")] private float criticalHitShatterSpeedMultiplier = 1f; // Token: 0x0400E12D RID: 57645 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x400E12D")] [SerializeField] private RagdollPiece.KFONPGFNBKP criticalHitActionOverride = (RagdollPiece.KFONPGFNBKP)((ulong)4294967295L); // Token: 0x0400E12E RID: 57646 [global::Cpp2IlInjected.FieldOffset(Offset = "0x24")] [Token(Token = "0x400E12E")] [SerializeField] private float criticalHitOverrideChance; // Token: 0x0400E12F RID: 57647 [global::Cpp2IlInjected.FieldOffset(Offset = "0x28")] [Token(Token = "0x400E12F")] [SerializeField] private bool disableWhenOverriding = true; // Token: 0x0400E130 RID: 57648 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30")] [Token(Token = "0x400E130")] [SerializeField] private PooledParticle criticalHitActionEffect; // Token: 0x0400E131 RID: 57649 [global::Cpp2IlInjected.FieldOffset(Offset = "0x38")] [Token(Token = "0x400E131")] [SerializeField] private RecRoomAudioClip criticalHitActionAudioClip; // Token: 0x0400E132 RID: 57650 [global::Cpp2IlInjected.FieldOffset(Offset = "0x40")] [Token(Token = "0x400E132")] private Collider[] NNBALFKKNDO; // Token: 0x0400E133 RID: 57651 [global::Cpp2IlInjected.FieldOffset(Offset = "0x48")] [Token(Token = "0x400E133")] private Rigidbody EELOMEPLLID; // Token: 0x0400E134 RID: 57652 [global::Cpp2IlInjected.FieldOffset(Offset = "0x50")] [Token(Token = "0x400E134")] private Transform HICENEOPGOF; // Token: 0x0400E135 RID: 57653 [global::Cpp2IlInjected.FieldOffset(Offset = "0x58")] [Token(Token = "0x400E135")] private Vector3 GHBPCACOCOL; // Token: 0x0400E136 RID: 57654 [global::Cpp2IlInjected.FieldOffset(Offset = "0x64")] [Token(Token = "0x400E136")] private Quaternion LDAKIHFDIFN; // Token: 0x0400E137 RID: 57655 [global::Cpp2IlInjected.FieldOffset(Offset = "0x74")] [Token(Token = "0x400E137")] private Vector3 MCBHKKGJLKD; // Token: 0x0400E138 RID: 57656 [global::Cpp2IlInjected.FieldOffset(Offset = "0x80")] [Token(Token = "0x400E138")] private bool FJJHBFPKLAN; // Token: 0x0400E139 RID: 57657 [global::Cpp2IlInjected.FieldOffset(Offset = "0x84")] [Token(Token = "0x400E139")] private float BEPEMKEPPFK; // Token: 0x0400E13A RID: 57658 [global::Cpp2IlInjected.FieldOffset(Offset = "0x88")] [Token(Token = "0x400E13A")] private Vector3 NGEHEHMAALH; // Token: 0x0400E13B RID: 57659 [global::Cpp2IlInjected.FieldOffset(Offset = "0x98")] [Token(Token = "0x400E13B")] private ISchedulerPromise NHJOJNGHAMH; // Token: 0x0400E13C RID: 57660 [Token(Token = "0x400E13C")] private const float NLHMOAAOOIG = 3.33f; // Token: 0x0400E13D RID: 57661 [Token(Token = "0x400E13D")] private const float EJOCNEBMJCJ = 0.66f; // Token: 0x0400E13E RID: 57662 [Token(Token = "0x400E13E")] private static bool EINFCILHKNG; // Token: 0x0400E13F RID: 57663 [Token(Token = "0x400E13F")] private static Vector3 OPHDFCHKOBI; // Token: 0x02002E23 RID: 11811 [Token(Token = "0x2002E23")] private enum KFONPGFNBKP { // Token: 0x0400E141 RID: 57665 [Token(Token = "0x400E141")] NONE = -1, // Token: 0x0400E142 RID: 57666 [Token(Token = "0x400E142")] PLAY_EFFECT } } }