using System; using System.Collections.Generic; using Cpp2IlInjected; using RecNet; using RecRoom.Core.Pools; using UnityEngine; namespace RecRoom.Core.AI { // Token: 0x020034D8 RID: 13528 [Token(Token = "0x20034D8")] public class RagdollPiece : MonoBehaviour { // Token: 0x06017807 RID: 96263 RVA: 0x0057A440 File Offset: 0x00578640 [Token(Token = "0x6017807")] [Address(RVA = "0x1C980C0", Offset = "0x1C970C0", VA = "0x181C980C0")] public static void UseCustomGravity(Vector3 OPHDFCHKOBI) { float z = OPHDFCHKOBI.z; } // Token: 0x06017808 RID: 96264 RVA: 0x0057A454 File Offset: 0x00578654 [Token(Token = "0x6017808")] [Address(RVA = "0x1C98140", Offset = "0x1C97140", VA = "0x181C98140")] public static void UseDefaultGravity() { float z = Physics.gravity.z; } // Token: 0x06017809 RID: 96265 RVA: 0x0057A46C File Offset: 0x0057866C [Token(Token = "0x6017809")] [Address(RVA = "0x1C96D00", Offset = "0x1C95D00", VA = "0x181C96D00")] 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); int num = 0; int length = componentsInChildren.Length; if (num < length) { RecRoomCollider component = componentsInChildren[num].gameObject.GetComponent(); int num2 = 0; if (!(component != num2)) { List nnbalfkkndo = this.NNBALFKKNDO; Collider collider = componentsInChildren[num]; nnbalfkkndo.Add(collider); if (!this.disableColliderWhenNotRagdolling) { goto IL_F9; } Collider collider2 = componentsInChildren[num]; int num3 = 0; collider2.enabled = num3 != 0; num++; } this.CCLAGGKGHMI.Add(component); if (this.disableColliderWhenNotRagdolling) { int num4 = 0; component.enabled = num4 != 0; } IL_F9: num++; } } // Token: 0x0601780A RID: 96266 RVA: 0x0057A580 File Offset: 0x00578780 [Token(Token = "0x601780A")] [Address(RVA = "0x1C97150", Offset = "0x1C96150", VA = "0x181C97150")] private void OnDisable() { if (!base.gameObject.activeSelf) { Transform transform = base.transform; Vector3 vector; float z = vector.z; Vector3 vector2; float z2 = vector2.z; } } // Token: 0x0601780B RID: 96267 RVA: 0x0057A5B8 File Offset: 0x005787B8 [Token(Token = "0x601780B")] [Address(RVA = "0x1C97250", Offset = "0x1C96250", VA = "0x181C97250")] public void StartRagdoll(Vector3 GJFAEGPLDAB, Vector3 JIPJCDCNJKB, float FJLCMDJONID, bool MPOLJMBILKN = false) { int num; int num3; for (;;) { num = 0; if ((this.FJJHBFPKLAN ? 1 : 0) != num) { return; } this.FJJHBFPKLAN = true; if (this.criticalHitActionOverride != RagdollPiece.KFONPGFNBKP.NONE) { break; } if ((this.disableInsteadOfRagdoll ? 1 : 0) != num) { goto IL_294; } Vector3 onUnitSphere = global::UnityEngine.Random.onUnitSphere; Transform transform = base.transform; float z = JIPJCDCNJKB.z; Vector3 vector; float z2 = vector.z; bool flag = Matchmaking.KDIKBBAPFDH; base.gameObject.layer = 24; List cclaggkghmi = this.CCLAGGKGHMI; bool flag2; if (flag2) { GameObject gameObject; gameObject.layer = 24; } int num2 = 0; if (num != 0) { goto IL_2AE; } if (num2 != -1) { } List nnbalfkkndo = this.NNBALFKKNDO; bool flag3; if (flag3) { GameObject gameObject2; gameObject2.layer = 24; } num3 = 0; if (num == 0) { goto Block_11; } } float num4 = global::UnityEngine.Random.Range((float)0, 1f); float num5 = this.criticalHitOverrideChance; if (this.criticalHitActionOverride == (RagdollPiece.KFONPGFNBKP)num) { if ((this.disableWhenOverriding ? 1 : 0) != num) { GameObject gameObject3 = base.gameObject; int num6 = 0; gameObject3.SetActive(num6 != 0); } PooledParticle pooledParticle = this.criticalHitActionEffect; int num7 = 0; if (pooledParticle != num7) { GlobalPool instance = GlobalPool.ONCPNMDGGKG; PooledParticle pooledParticle2 = this.criticalHitActionEffect; PooledParticle pooledParticle3 = instance.Acquire(pooledParticle2); if (pooledParticle3 != 0) { Transform transform2 = base.transform; pooledParticle3.Play(transform2); } } if (this.criticalHitActionAudioClip != 0) { Transform transform3 = base.transform; } } return; Block_11: base.transform.localPosition = num3; int num8 = 0; base.transform.localRotation = num8; int num9 = 0; base.transform.localScale = num9; Transform transform4 = base.transform; int num10 = 0; transform4.SetParent(num10, true); Rigidbody eelomepllid = this.EELOMEPLLID; int num11 = 0; if (eelomepllid == num11) { Rigidbody rigidbody = base.gameObject.AddComponent(); this.EELOMEPLLID = rigidbody; } Rigidbody eelomepllid2 = this.EELOMEPLLID; int num12 = 0; if (eelomepllid2 != num12) { Rigidbody eelomepllid3 = this.EELOMEPLLID; int num13 = 0; eelomepllid3.isKinematic = num13 != 0; Rigidbody eelomepllid4 = this.EELOMEPLLID; int num14 = 0; eelomepllid4.angularDrag = (float)num14; Rigidbody eelomepllid5 = this.EELOMEPLLID; int num15 = 0; eelomepllid5.drag = (float)num15; this.EELOMEPLLID.velocity = num13; this.EELOMEPLLID.angularVelocity = num13; Rigidbody eelomepllid6 = this.EELOMEPLLID; bool flag4 = "{il2cpp field on {'constant105' (constant value of type Cpp2IL.Core.Analysis.ResultModels.StaticFieldsPtr)}, offset 0x0}" == (ulong)0L; eelomepllid6.useGravity = flag4; } float time = Time.time; this.BEPEMKEPPFK = time; Transform transform5 = base.transform; Vector3 vector2; float z3 = vector2.z; this.NGEHEHMAALH.z = z3; Scheduler instance2 = SingletonMonoBehaviour.ONCPNMDGGKG; RagdollPiece.PLIOINMPJOG plioinmpjog; plioinmpjog.<>1__state = (int)((ulong)0L); plioinmpjog.<>4__this = this; KFBABPAPIMB kfbabpapimb = instance2.Run(this, plioinmpjog); this.NHJOJNGHAMH = kfbabpapimb; IL_294: GameObject gameObject4 = base.gameObject; int num16 = 0; gameObject4.SetActive(num16 != 0); throw new NullReferenceException(); IL_2AE: throw new NullReferenceException(); } // Token: 0x0601780C RID: 96268 RVA: 0x0057A880 File Offset: 0x00578A80 [Token(Token = "0x601780C")] [Address(RVA = "0x1C97C80", Offset = "0x1C96C80", VA = "0x181C97C80")] public void StopRagdoll() { int num; do { num = 0; if ((this.FJJHBFPKLAN ? 1 : 0) == num) { return; } GameObject gameObject = base.gameObject; int num2 = 0; if (gameObject != num2) { base.gameObject.SetActive(true); } Rigidbody eelomepllid = this.EELOMEPLLID; int num3 = 0; if (eelomepllid != num3) { global::UnityEngine.Object.Destroy(this.EELOMEPLLID); this.EELOMEPLLID = num; } bool flag = (this.disableColliderWhenNotRagdolling ? 1 : 0) == num; List cclaggkghmi = this.CCLAGGKGHMI; bool flag2; if (flag2) { } int num4 = 0; if (num != 0) { goto IL_110; } if (num4 != -1) { } List nnbalfkkndo = this.NNBALFKKNDO; bool flag3; if (flag3) { } } while (num != 0); Transform transform = base.transform; int num5 = 0; if (transform != num5) { Transform transform2 = base.transform; Transform hiceneopgof = this.HICENEOPGOF; transform2.SetParent(hiceneopgof, true); int num6 = 0; base.transform.localPosition = num6; int num7 = 0; base.transform.localRotation = num7; int num8 = 0; base.transform.localScale = num8; } if (this.NHJOJNGHAMH != 0) { this.NHJOJNGHAMH = (ulong)0L; } this.FJJHBFPKLAN = false; return; IL_110: throw new NullReferenceException(); } // Token: 0x0601780D RID: 96269 RVA: 0x0057A9A4 File Offset: 0x00578BA4 [Token(Token = "0x601780D")] [Address(RVA = "0x1C970F0", Offset = "0x1C960F0", VA = "0x181C970F0")] private IEnumerator GGDNEPBAPNP() { /* An exception occurred when decompiling this method (0601780D) 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(PLIOINMPJOG::System.IDisposable.Dispose, ldloc:PLIOINMPJOG(var_0)) stfld:int32(PLIOINMPJOG::<>1__state, ldloc:PLIOINMPJOG(var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](0))) stfld:RagdollPiece(PLIOINMPJOG::<>4__this, ldloc:PLIOINMPJOG(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: 0x0601780E RID: 96270 RVA: 0x0057A9C8 File Offset: 0x00578BC8 [Token(Token = "0x601780E")] [Address(RVA = "0x1C96F70", Offset = "0x1C95F70", VA = "0x181C96F70")] 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: 0x0601780F RID: 96271 RVA: 0x0057AA54 File Offset: 0x00578C54 [Token(Token = "0x601780F")] [Address(RVA = "0x1C98220", Offset = "0x1C97220", VA = "0x181C98220")] public RagdollPiece() { List list = new List(); this.CCLAGGKGHMI = list; List list2 = new List(); this.NNBALFKKNDO = list2; 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: 0x06017810 RID: 96272 RVA: 0x0057AAF4 File Offset: 0x00578CF4 // Note: this type is marked as 'beforefieldinit'. [Token(Token = "0x6017810")] [Address(RVA = "0x1C981C0", Offset = "0x1C971C0", VA = "0x181C981C0")] static RagdollPiece() { float z = Physics.gravity.z; } // Token: 0x0400F409 RID: 62473 [FieldOffset(Offset = "0x18")] [Token(Token = "0x400F409")] [SerializeField] [Tooltip("Only mark colliders as disable when not ragdolling if the colliders are exclusively used for ragdolling.")] private bool disableColliderWhenNotRagdolling; // Token: 0x0400F40A RID: 62474 [FieldOffset(Offset = "0x19")] [Token(Token = "0x400F40A")] [SerializeField] private bool disableInsteadOfRagdoll; // Token: 0x0400F40B RID: 62475 [FieldOffset(Offset = "0x1C")] [Token(Token = "0x400F40B")] [SerializeField] [Header("Critical Hits")] private float criticalHitShatterSpeedMultiplier = 1f; // Token: 0x0400F40C RID: 62476 [FieldOffset(Offset = "0x20")] [Token(Token = "0x400F40C")] [SerializeField] private RagdollPiece.KFONPGFNBKP criticalHitActionOverride = (RagdollPiece.KFONPGFNBKP)((ulong)4294967295L); // Token: 0x0400F40D RID: 62477 [FieldOffset(Offset = "0x24")] [Token(Token = "0x400F40D")] [SerializeField] private float criticalHitOverrideChance; // Token: 0x0400F40E RID: 62478 [FieldOffset(Offset = "0x28")] [Token(Token = "0x400F40E")] [SerializeField] private bool disableWhenOverriding = true; // Token: 0x0400F40F RID: 62479 [FieldOffset(Offset = "0x30")] [Token(Token = "0x400F40F")] [SerializeField] private PooledParticle criticalHitActionEffect; // Token: 0x0400F410 RID: 62480 [FieldOffset(Offset = "0x38")] [Token(Token = "0x400F410")] [SerializeField] private RecRoomAudioClip criticalHitActionAudioClip; // Token: 0x0400F411 RID: 62481 [FieldOffset(Offset = "0x40")] [Token(Token = "0x400F411")] private List CCLAGGKGHMI; // Token: 0x0400F412 RID: 62482 [FieldOffset(Offset = "0x48")] [Token(Token = "0x400F412")] private List NNBALFKKNDO; // Token: 0x0400F413 RID: 62483 [FieldOffset(Offset = "0x50")] [Token(Token = "0x400F413")] private Rigidbody EELOMEPLLID; // Token: 0x0400F414 RID: 62484 [FieldOffset(Offset = "0x58")] [Token(Token = "0x400F414")] private Transform HICENEOPGOF; // Token: 0x0400F415 RID: 62485 [FieldOffset(Offset = "0x60")] [Token(Token = "0x400F415")] private Vector3 GHBPCACOCOL; // Token: 0x0400F416 RID: 62486 [FieldOffset(Offset = "0x6C")] [Token(Token = "0x400F416")] private Quaternion LDAKIHFDIFN; // Token: 0x0400F417 RID: 62487 [FieldOffset(Offset = "0x7C")] [Token(Token = "0x400F417")] private Vector3 MCBHKKGJLKD; // Token: 0x0400F418 RID: 62488 [FieldOffset(Offset = "0x88")] [Token(Token = "0x400F418")] private bool FJJHBFPKLAN; // Token: 0x0400F419 RID: 62489 [FieldOffset(Offset = "0x8C")] [Token(Token = "0x400F419")] private float BEPEMKEPPFK; // Token: 0x0400F41A RID: 62490 [FieldOffset(Offset = "0x90")] [Token(Token = "0x400F41A")] private Vector3 NGEHEHMAALH; // Token: 0x0400F41B RID: 62491 [FieldOffset(Offset = "0xA0")] [Token(Token = "0x400F41B")] private KFBABPAPIMB NHJOJNGHAMH; // Token: 0x0400F41C RID: 62492 [Token(Token = "0x400F41C")] private const float NLHMOAAOOIG = 3.33f; // Token: 0x0400F41D RID: 62493 [Token(Token = "0x400F41D")] private const float EJOCNEBMJCJ = 0.66f; // Token: 0x0400F41E RID: 62494 [Token(Token = "0x400F41E")] private static bool EINFCILHKNG; // Token: 0x0400F41F RID: 62495 [Token(Token = "0x400F41F")] private static Vector3 OPHDFCHKOBI; // Token: 0x020034D9 RID: 13529 [Token(Token = "0x20034D9")] private enum KFONPGFNBKP { // Token: 0x0400F421 RID: 62497 [Token(Token = "0x400F421")] NONE = -1, // Token: 0x0400F422 RID: 62498 [Token(Token = "0x400F422")] PLAY_EFFECT } } }