443 lines
14 KiB
C#
443 lines
14 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Runtime.InteropServices;
|
|
using Cpp2IlInjected;
|
|
using RecRoom.Core.AI;
|
|
using UnityEngine;
|
|
|
|
namespace RecRoom.Core.Combat
|
|
{
|
|
// Token: 0x02002E03 RID: 11779
|
|
[Token(Token = "0x2002E03")]
|
|
[Serializable]
|
|
[StructLayout(3)]
|
|
public class MeleeWeaponChunk
|
|
{
|
|
// Token: 0x17003852 RID: 14418
|
|
// (get) Token: 0x060150C7 RID: 86215 RVA: 0x0050E6F4 File Offset: 0x0050C8F4
|
|
[Token(Token = "0x17003852")]
|
|
public Vector3 OriginPosition
|
|
{
|
|
[Token(Token = "0x60150C7")]
|
|
[Address(RVA = "0x13BC050", Offset = "0x13BAA50", VA = "0x1813BC050")]
|
|
get
|
|
{
|
|
bool flag;
|
|
if (!flag)
|
|
{
|
|
bool flag2;
|
|
if (!flag2)
|
|
{
|
|
Vector3 zero = Vector3.zero;
|
|
}
|
|
Vector3 vector;
|
|
float z = vector.z;
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
}
|
|
|
|
// Token: 0x17003853 RID: 14419
|
|
// (get) Token: 0x060150C8 RID: 86216 RVA: 0x0050E720 File Offset: 0x0050C920
|
|
[Token(Token = "0x17003853")]
|
|
public int Durability
|
|
{
|
|
[Token(Token = "0x60150C8")]
|
|
[Address(RVA = "0x3C1C50", Offset = "0x3C0650", VA = "0x1803C1C50")]
|
|
get
|
|
{
|
|
return this.durability;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17003854 RID: 14420
|
|
// (get) Token: 0x060150C9 RID: 86217 RVA: 0x0050E734 File Offset: 0x0050C934
|
|
[Token(Token = "0x17003854")]
|
|
public IEnumerable<MeleeWeaponChunk.DurabilityGameObject> DurabilityGameObjects
|
|
{
|
|
[Token(Token = "0x60150C9")]
|
|
[Address(RVA = "0x3C1220", Offset = "0x3BFC20", VA = "0x1803C1220")]
|
|
get
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (060150C9)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.Generic.IEnumerable`1<RecRoom.Core.Combat.MeleeWeaponChunk/DurabilityGameObject> RecRoom.Core.Combat.MeleeWeaponChunk::get_DurabilityGameObjects()
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
Block_0:
|
|
stloc:valuetype RecRoom.Core.Combat.MeleeWeaponChunk/DurabilityGameObject[](var_0_06, ldfld:valuetype RecRoom.Core.Combat.MeleeWeaponChunk/DurabilityGameObject[](MeleeWeaponChunk::durabilityGameObjects, ldloc:MeleeWeaponChunk(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: 0x17003855 RID: 14421
|
|
// (get) Token: 0x060150CA RID: 86218 RVA: 0x0050E748 File Offset: 0x0050C948
|
|
[Token(Token = "0x17003855")]
|
|
public float WeaponAttackContribution
|
|
{
|
|
[Token(Token = "0x60150CA")]
|
|
[Address(RVA = "0x57B8E0", Offset = "0x57A2E0", VA = "0x18057B8E0")]
|
|
get
|
|
{
|
|
return this.weaponAttackContribution;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17003856 RID: 14422
|
|
// (set) Token: 0x060150CB RID: 86219 RVA: 0x0050E75C File Offset: 0x0050C95C
|
|
[Token(Token = "0x17003856")]
|
|
public int DurabilityDamageTaken
|
|
{
|
|
[Token(Token = "0x60150CB")]
|
|
[Address(RVA = "0x13BB980", Offset = "0x13BA380", VA = "0x1813BB980")]
|
|
set
|
|
{
|
|
MeleeWeaponChunk.DurabilityGameObject[] array = this.durabilityGameObjects;
|
|
if (array != 0)
|
|
{
|
|
int num = 0;
|
|
int num2 = 0;
|
|
if (num2 < array.Length)
|
|
{
|
|
num += num;
|
|
bool flag = value <= "{il2cpp field on 2, offset 0x2C}";
|
|
MeleeWeaponChunk.DurabilityGameObject[] array2 = this.durabilityGameObjects;
|
|
num++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x17003857 RID: 14423
|
|
// (get) Token: 0x060150CC RID: 86220 RVA: 0x0050E7A8 File Offset: 0x0050C9A8
|
|
// (set) Token: 0x060150CD RID: 86221 RVA: 0x0050E7BC File Offset: 0x0050C9BC
|
|
[Token(Token = "0x17003857")]
|
|
public bool IsEnabled
|
|
{
|
|
[Token(Token = "0x60150CC")]
|
|
[Address(RVA = "0x8EFB20", Offset = "0x8EE520", VA = "0x1808EFB20")]
|
|
get
|
|
{
|
|
return this._isEnabled;
|
|
}
|
|
[Token(Token = "0x60150CD")]
|
|
[Address(RVA = "0x13BC170", Offset = "0x13BAB70", VA = "0x1813BC170")]
|
|
set
|
|
{
|
|
this._isEnabled = value;
|
|
MeleeWeaponCollider[] array = this.meleeColliders;
|
|
int num = 0;
|
|
if (num < array.Length)
|
|
{
|
|
MeleeWeaponCollider meleeWeaponCollider = array[num];
|
|
int num2 = 0;
|
|
if (meleeWeaponCollider != num2)
|
|
{
|
|
MeleeWeaponCollider meleeWeaponCollider2 = this.meleeColliders[num];
|
|
bool enabled = meleeWeaponCollider2.enabled;
|
|
meleeWeaponCollider2.enabled = enabled;
|
|
}
|
|
MeleeWeaponCollider[] array2 = this.meleeColliders;
|
|
num++;
|
|
}
|
|
DynamicMeshTrail[] array3 = this.trails;
|
|
if (num < array3.Length)
|
|
{
|
|
DynamicMeshTrail dynamicMeshTrail = array3[num];
|
|
bool enabled2 = dynamicMeshTrail.enabled;
|
|
dynamicMeshTrail.enabled = enabled2;
|
|
DynamicMeshTrail[] array4 = this.trails;
|
|
num++;
|
|
while (array4 != 0)
|
|
{
|
|
}
|
|
}
|
|
if (!value)
|
|
{
|
|
if ((this.isShattered ? 1 : 0) != num)
|
|
{
|
|
return;
|
|
}
|
|
RagdollPiece[] array5 = this.ragdollPieces;
|
|
if (num >= array5.Length)
|
|
{
|
|
return;
|
|
}
|
|
GameObject gameObject = array5[num].gameObject;
|
|
int num3 = 0;
|
|
gameObject.SetActive(num3 != 0);
|
|
RagdollPiece[] array6 = this.ragdollPieces;
|
|
num++;
|
|
while (array6 != 0)
|
|
{
|
|
}
|
|
}
|
|
RagdollPiece[] array7 = this.ragdollPieces;
|
|
this.isShattered = num != 0;
|
|
if (num < array7.Length)
|
|
{
|
|
array7[num].gameObject.SetActive(true);
|
|
this.ragdollPieces[num].StopRagdoll();
|
|
RagdollPiece[] array8 = this.ragdollPieces;
|
|
num++;
|
|
while (array8 != 0)
|
|
{
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x060150CE RID: 86222 RVA: 0x0050E908 File Offset: 0x0050CB08
|
|
[Token(Token = "0x60150CE")]
|
|
[Address(RVA = "0x13BBFA0", Offset = "0x13BA9A0", VA = "0x1813BBFA0")]
|
|
public void OFFLOPLJBBG(MeleeWeapon GDIGKHINJCG)
|
|
{
|
|
MeleeWeaponChunk.DurabilityGameObject[] array = this.durabilityGameObjects;
|
|
this.weapon = GDIGKHINJCG;
|
|
this.isShattered = false;
|
|
if (array != 0)
|
|
{
|
|
int num = 0;
|
|
int num2 = 0;
|
|
if (num2 < array.Length)
|
|
{
|
|
num += num;
|
|
int num3 = 0;
|
|
bool flag = "{il2cpp array field local2->}" >= num3;
|
|
MeleeWeaponChunk.DurabilityGameObject[] array2 = this.durabilityGameObjects;
|
|
num++;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x060150CF RID: 86223 RVA: 0x0050E964 File Offset: 0x0050CB64
|
|
[Token(Token = "0x60150CF")]
|
|
[Address(RVA = "0x13BBA30", Offset = "0x13BA430", VA = "0x1813BBA30")]
|
|
public void EMLOHBHENFF(Vector3 POMGIDPAKLH, float OCHEHCGCCIJ)
|
|
{
|
|
int num = 0;
|
|
this.isShattered = true;
|
|
RagdollPiece[] array = this.ragdollPieces;
|
|
if (num < array.Length)
|
|
{
|
|
array[num].gameObject.SetActive(true);
|
|
RagdollPiece ragdollPiece = this.ragdollPieces[num];
|
|
Transform transform = this.origin;
|
|
int num2 = 0;
|
|
if (!(transform != num2))
|
|
{
|
|
Weapon weapon = this.weapon;
|
|
int num3 = 0;
|
|
if (!(weapon != num3))
|
|
{
|
|
Vector3 zero = Vector3.zero;
|
|
}
|
|
Transform transform2 = this.weapon.transform;
|
|
}
|
|
Transform transform3 = this.origin;
|
|
Vector3 vector;
|
|
float z = vector.z;
|
|
float z2 = POMGIDPAKLH.z;
|
|
RagdollPiece[] array2 = this.ragdollPieces;
|
|
num++;
|
|
}
|
|
}
|
|
|
|
// Token: 0x060150D0 RID: 86224 RVA: 0x0050EA18 File Offset: 0x0050CC18
|
|
[Token(Token = "0x60150D0")]
|
|
[Address(RVA = "0x13BBC80", Offset = "0x13BA680", VA = "0x1813BBC80")]
|
|
public void KEFJFGLPCGI()
|
|
{
|
|
MeleeWeaponCollider[] array = this.meleeColliders;
|
|
int num = 0;
|
|
if (num < array.Length)
|
|
{
|
|
MeleeWeaponCollider meleeWeaponCollider = array[num];
|
|
int num2 = 0;
|
|
if (meleeWeaponCollider != num2)
|
|
{
|
|
MeleeWeaponCollider meleeWeaponCollider2 = this.meleeColliders[num];
|
|
bool enabled = meleeWeaponCollider2.enabled;
|
|
bool isEnabled = this._isEnabled;
|
|
meleeWeaponCollider2.enabled = isEnabled;
|
|
}
|
|
MeleeWeaponCollider[] array2 = this.meleeColliders;
|
|
num++;
|
|
}
|
|
}
|
|
|
|
// Token: 0x060150D1 RID: 86225 RVA: 0x0050EA88 File Offset: 0x0050CC88
|
|
[Token(Token = "0x60150D1")]
|
|
[Address(RVA = "0x13BBF00", Offset = "0x13BA900", VA = "0x1813BBF00")]
|
|
public void OEJHLOAANFG()
|
|
{
|
|
DynamicMeshTrail[] array = this.trails;
|
|
int num = 0;
|
|
if (num < array.Length)
|
|
{
|
|
DynamicMeshTrail dynamicMeshTrail = array[num];
|
|
bool enabled = dynamicMeshTrail.enabled;
|
|
bool isEnabled = this._isEnabled;
|
|
dynamicMeshTrail.enabled = isEnabled;
|
|
DynamicMeshTrail[] array2 = this.trails;
|
|
num++;
|
|
}
|
|
}
|
|
|
|
// Token: 0x060150D2 RID: 86226 RVA: 0x0050EAD8 File Offset: 0x0050CCD8
|
|
[Token(Token = "0x60150D2")]
|
|
[Address(RVA = "0x13BBE70", Offset = "0x13BA870", VA = "0x1813BBE70")]
|
|
private void MMPLKGAPCAO()
|
|
{
|
|
if (!this.isShattered)
|
|
{
|
|
RagdollPiece[] array = this.ragdollPieces;
|
|
int num = 0;
|
|
if (num < array.Length)
|
|
{
|
|
GameObject gameObject = array[num].gameObject;
|
|
int num2 = 0;
|
|
gameObject.SetActive(num2 != 0);
|
|
RagdollPiece[] array2 = this.ragdollPieces;
|
|
num++;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x060150D3 RID: 86227 RVA: 0x0050EB28 File Offset: 0x0050CD28
|
|
[Token(Token = "0x60150D3")]
|
|
[Address(RVA = "0x13BBDA0", Offset = "0x13BA7A0", VA = "0x1813BBDA0")]
|
|
private void MEAOOANLNHB()
|
|
{
|
|
RagdollPiece[] array = this.ragdollPieces;
|
|
int num = 0;
|
|
this.isShattered = false;
|
|
if (num < array.Length)
|
|
{
|
|
array[num].gameObject.SetActive(true);
|
|
this.ragdollPieces[num].StopRagdoll();
|
|
RagdollPiece[] array2 = this.ragdollPieces;
|
|
num++;
|
|
}
|
|
}
|
|
|
|
// Token: 0x060150D4 RID: 86228 RVA: 0x0050EB84 File Offset: 0x0050CD84
|
|
[Token(Token = "0x60150D4")]
|
|
[Address(RVA = "0x13BB980", Offset = "0x13BA380", VA = "0x1813BB980")]
|
|
private void DNIDIIKMKLM(int IOPIDGNPMLF)
|
|
{
|
|
MeleeWeaponChunk.DurabilityGameObject[] array = this.durabilityGameObjects;
|
|
if (array != 0)
|
|
{
|
|
int num = 0;
|
|
int num2 = 0;
|
|
if (num2 < array.Length)
|
|
{
|
|
num += num;
|
|
bool flag = IOPIDGNPMLF <= "{il2cpp field on 2, offset 0x2C}";
|
|
MeleeWeaponChunk.DurabilityGameObject[] array2 = this.durabilityGameObjects;
|
|
num++;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x060150D5 RID: 86229 RVA: 0x0050EBD0 File Offset: 0x0050CDD0
|
|
[Token(Token = "0x60150D5")]
|
|
[Address(RVA = "0x13BC040", Offset = "0x13BAA40", VA = "0x1813BC040")]
|
|
public MeleeWeaponChunk()
|
|
{
|
|
}
|
|
|
|
// Token: 0x0400E062 RID: 57442
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x400E062")]
|
|
[SerializeField]
|
|
[Header("Config")]
|
|
private int durability;
|
|
|
|
// Token: 0x0400E063 RID: 57443
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x14")]
|
|
[Token(Token = "0x400E063")]
|
|
[SerializeField]
|
|
private float weaponAttackContribution;
|
|
|
|
// Token: 0x0400E064 RID: 57444
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x400E064")]
|
|
[SerializeField]
|
|
[Header("References")]
|
|
private Transform origin;
|
|
|
|
// Token: 0x0400E065 RID: 57445
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x400E065")]
|
|
[SerializeField]
|
|
private MeleeWeaponChunk.DurabilityGameObject[] durabilityGameObjects;
|
|
|
|
// Token: 0x0400E066 RID: 57446
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x400E066")]
|
|
[SerializeField]
|
|
private RagdollPiece[] ragdollPieces;
|
|
|
|
// Token: 0x0400E067 RID: 57447
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x400E067")]
|
|
[SerializeField]
|
|
private MeleeWeaponCollider[] meleeColliders;
|
|
|
|
// Token: 0x0400E068 RID: 57448
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x400E068")]
|
|
[SerializeField]
|
|
private DynamicMeshTrail[] trails;
|
|
|
|
// Token: 0x0400E069 RID: 57449
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
|
|
[Token(Token = "0x400E069")]
|
|
private Weapon weapon;
|
|
|
|
// Token: 0x0400E06A RID: 57450
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
|
|
[Token(Token = "0x400E06A")]
|
|
private bool isShattered;
|
|
|
|
// Token: 0x0400E06B RID: 57451
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x49")]
|
|
[Token(Token = "0x400E06B")]
|
|
private bool _isEnabled = true;
|
|
|
|
// Token: 0x02002E04 RID: 11780
|
|
[Token(Token = "0x2002E04")]
|
|
[Serializable]
|
|
public struct DurabilityGameObject
|
|
{
|
|
// Token: 0x0400E06C RID: 57452
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x0")]
|
|
[Token(Token = "0x400E06C")]
|
|
public GameObject GameObject;
|
|
|
|
// Token: 0x0400E06D RID: 57453
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x8")]
|
|
[Token(Token = "0x400E06D")]
|
|
public int MinimumVisibilityDamage;
|
|
|
|
// Token: 0x0400E06E RID: 57454
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0xC")]
|
|
[Token(Token = "0x400E06E")]
|
|
public int MaximumVisibilityDamage;
|
|
}
|
|
}
|
|
}
|