using System; using System.Collections.Generic; using Cpp2IlInjected; using RecNet; using RecRoom.Core.Pools; using UnityEngine; namespace RecRoom.Core.AI { // Token: 0x020033EB RID: 13291 [Token(Token = "0x20033EB")] public class RagdollPiece : MonoBehaviour { // Token: 0x06017378 RID: 95096 RVA: 0x0056F2F4 File Offset: 0x0056D4F4 [Token(Token = "0x6017378")] [Address(RVA = "0x1149450", Offset = "0x1148250", VA = "0x181149450")] public static void UseCustomGravity(Vector3 OPHDFCHKOBI) { float z = OPHDFCHKOBI.z; } // Token: 0x06017379 RID: 95097 RVA: 0x0056F308 File Offset: 0x0056D508 [Token(Token = "0x6017379")] [Address(RVA = "0x11494D0", Offset = "0x11482D0", VA = "0x1811494D0")] public static void UseDefaultGravity() { float z = Physics.gravity.z; } // Token: 0x0601737A RID: 95098 RVA: 0x0056F320 File Offset: 0x0056D520 [Token(Token = "0x601737A")] [Address(RVA = "0x1148090", Offset = "0x1146E90", VA = "0x181148090")] 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: 0x0601737B RID: 95099 RVA: 0x0056F434 File Offset: 0x0056D634 [Token(Token = "0x601737B")] [Address(RVA = "0x11484E0", Offset = "0x11472E0", VA = "0x1811484E0")] private void OnDisable() { if (!base.gameObject.activeSelf) { Transform transform = base.transform; Vector3 vector; float z = vector.z; Vector3 vector2; float z2 = vector2.z; } } // Token: 0x0601737C RID: 95100 RVA: 0x0056F46C File Offset: 0x0056D66C [Token(Token = "0x601737C")] [Address(RVA = "0x11485E0", Offset = "0x11473E0", VA = "0x1811485E0")] 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: 0x0601737D RID: 95101 RVA: 0x0056F734 File Offset: 0x0056D934 [Token(Token = "0x601737D")] [Address(RVA = "0x1149010", Offset = "0x1147E10", VA = "0x181149010")] 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: 0x0601737E RID: 95102 RVA: 0x0056F858 File Offset: 0x0056DA58 [Token(Token = "0x601737E")] [Address(RVA = "0x1148480", Offset = "0x1147280", VA = "0x181148480")] private IEnumerator GGDNEPBAPNP() { /* An exception occurred when decompiling this method (0601737E) 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: 0x0601737F RID: 95103 RVA: 0x0056F87C File Offset: 0x0056DA7C [Token(Token = "0x601737F")] [Address(RVA = "0x1148300", Offset = "0x1147100", VA = "0x181148300")] 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: 0x06017380 RID: 95104 RVA: 0x0056F908 File Offset: 0x0056DB08 [Token(Token = "0x6017380")] [Address(RVA = "0x11495B0", Offset = "0x11483B0", VA = "0x1811495B0")] 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: 0x06017381 RID: 95105 RVA: 0x0056F9A8 File Offset: 0x0056DBA8 // Note: this type is marked as 'beforefieldinit'. [Token(Token = "0x6017381")] [Address(RVA = "0x1149550", Offset = "0x1148350", VA = "0x181149550")] static RagdollPiece() { float z = Physics.gravity.z; } // Token: 0x0400F1C1 RID: 61889 [FieldOffset(Offset = "0x18")] [Token(Token = "0x400F1C1")] [SerializeField] [Tooltip("Only mark colliders as disable when not ragdolling if the colliders are exclusively used for ragdolling.")] private bool disableColliderWhenNotRagdolling; // Token: 0x0400F1C2 RID: 61890 [FieldOffset(Offset = "0x19")] [Token(Token = "0x400F1C2")] [SerializeField] private bool disableInsteadOfRagdoll; // Token: 0x0400F1C3 RID: 61891 [FieldOffset(Offset = "0x1C")] [Token(Token = "0x400F1C3")] [SerializeField] [Header("Critical Hits")] private float criticalHitShatterSpeedMultiplier = 1f; // Token: 0x0400F1C4 RID: 61892 [FieldOffset(Offset = "0x20")] [Token(Token = "0x400F1C4")] [SerializeField] private RagdollPiece.KFONPGFNBKP criticalHitActionOverride = (RagdollPiece.KFONPGFNBKP)((ulong)4294967295L); // Token: 0x0400F1C5 RID: 61893 [FieldOffset(Offset = "0x24")] [Token(Token = "0x400F1C5")] [SerializeField] private float criticalHitOverrideChance; // Token: 0x0400F1C6 RID: 61894 [FieldOffset(Offset = "0x28")] [Token(Token = "0x400F1C6")] [SerializeField] private bool disableWhenOverriding = true; // Token: 0x0400F1C7 RID: 61895 [FieldOffset(Offset = "0x30")] [Token(Token = "0x400F1C7")] [SerializeField] private PooledParticle criticalHitActionEffect; // Token: 0x0400F1C8 RID: 61896 [FieldOffset(Offset = "0x38")] [Token(Token = "0x400F1C8")] [SerializeField] private RecRoomAudioClip criticalHitActionAudioClip; // Token: 0x0400F1C9 RID: 61897 [FieldOffset(Offset = "0x40")] [Token(Token = "0x400F1C9")] private List CCLAGGKGHMI; // Token: 0x0400F1CA RID: 61898 [FieldOffset(Offset = "0x48")] [Token(Token = "0x400F1CA")] private List NNBALFKKNDO; // Token: 0x0400F1CB RID: 61899 [FieldOffset(Offset = "0x50")] [Token(Token = "0x400F1CB")] private Rigidbody EELOMEPLLID; // Token: 0x0400F1CC RID: 61900 [FieldOffset(Offset = "0x58")] [Token(Token = "0x400F1CC")] private Transform HICENEOPGOF; // Token: 0x0400F1CD RID: 61901 [FieldOffset(Offset = "0x60")] [Token(Token = "0x400F1CD")] private Vector3 GHBPCACOCOL; // Token: 0x0400F1CE RID: 61902 [FieldOffset(Offset = "0x6C")] [Token(Token = "0x400F1CE")] private Quaternion LDAKIHFDIFN; // Token: 0x0400F1CF RID: 61903 [FieldOffset(Offset = "0x7C")] [Token(Token = "0x400F1CF")] private Vector3 MCBHKKGJLKD; // Token: 0x0400F1D0 RID: 61904 [FieldOffset(Offset = "0x88")] [Token(Token = "0x400F1D0")] private bool FJJHBFPKLAN; // Token: 0x0400F1D1 RID: 61905 [FieldOffset(Offset = "0x8C")] [Token(Token = "0x400F1D1")] private float BEPEMKEPPFK; // Token: 0x0400F1D2 RID: 61906 [FieldOffset(Offset = "0x90")] [Token(Token = "0x400F1D2")] private Vector3 NGEHEHMAALH; // Token: 0x0400F1D3 RID: 61907 [FieldOffset(Offset = "0xA0")] [Token(Token = "0x400F1D3")] private KFBABPAPIMB NHJOJNGHAMH; // Token: 0x0400F1D4 RID: 61908 [Token(Token = "0x400F1D4")] private const float NLHMOAAOOIG = 3.33f; // Token: 0x0400F1D5 RID: 61909 [Token(Token = "0x400F1D5")] private const float EJOCNEBMJCJ = 0.66f; // Token: 0x0400F1D6 RID: 61910 [Token(Token = "0x400F1D6")] private static bool EINFCILHKNG; // Token: 0x0400F1D7 RID: 61911 [Token(Token = "0x400F1D7")] private static Vector3 OPHDFCHKOBI; // Token: 0x020033EC RID: 13292 [Token(Token = "0x20033EC")] private enum KFONPGFNBKP { // Token: 0x0400F1D9 RID: 61913 [Token(Token = "0x400F1D9")] NONE = -1, // Token: 0x0400F1DA RID: 61914 [Token(Token = "0x400F1DA")] PLAY_EFFECT } } }