437 lines
15 KiB
C#
437 lines
15 KiB
C#
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<Collider>(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<Rigidbody>();
|
|
}
|
|
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<PooledParticle>(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<ISchedule> GGDNEPBAPNP()
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0601520F)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.Generic.IEnumerator`1<RecRoom.Core.ISchedule> 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<PooledParticle>(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
|
|
}
|
|
}
|
|
}
|