390 lines
12 KiB
C#
390 lines
12 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Cpp2IlInjected;
|
|
using RecRoom.Core.AI;
|
|
using UnityEngine;
|
|
|
|
namespace RecRoom.Core.Combat
|
|
{
|
|
// Token: 0x020034B9 RID: 13497
|
|
[Token(Token = "0x20034B9")]
|
|
[Serializable]
|
|
public class MeleeWeaponChunk
|
|
{
|
|
// Token: 0x17004087 RID: 16519
|
|
// (get) Token: 0x060176C4 RID: 95940 RVA: 0x00574B84 File Offset: 0x00572D84
|
|
[Token(Token = "0x17004087")]
|
|
public Vector3 OriginPosition
|
|
{
|
|
[Token(Token = "0x60176C4")]
|
|
[Address(RVA = "0x1F160A0", Offset = "0x1F150A0", VA = "0x181F160A0")]
|
|
get
|
|
{
|
|
bool flag;
|
|
if (!flag)
|
|
{
|
|
bool flag2;
|
|
if (!flag2)
|
|
{
|
|
Vector3 zero = Vector3.zero;
|
|
}
|
|
Vector3 vector;
|
|
float z = vector.z;
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
}
|
|
|
|
// Token: 0x17004088 RID: 16520
|
|
// (get) Token: 0x060176C5 RID: 95941 RVA: 0x00574BB0 File Offset: 0x00572DB0
|
|
[Token(Token = "0x17004088")]
|
|
public int Durability
|
|
{
|
|
[Token(Token = "0x60176C5")]
|
|
[Address(RVA = "0x40F000", Offset = "0x40E000", VA = "0x18040F000")]
|
|
get
|
|
{
|
|
return this.durability;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17004089 RID: 16521
|
|
// (get) Token: 0x060176C6 RID: 95942 RVA: 0x00574BC4 File Offset: 0x00572DC4
|
|
[Token(Token = "0x17004089")]
|
|
public IEnumerable<MeleeWeaponChunk.DurabilityGameObject> DurabilityGameObjects
|
|
{
|
|
[Token(Token = "0x60176C6")]
|
|
[Address(RVA = "0x4157C0", Offset = "0x4147C0", VA = "0x1804157C0")]
|
|
get
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (060176C6)
|
|
|
|
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: 0x1700408A RID: 16522
|
|
// (get) Token: 0x060176C7 RID: 95943 RVA: 0x00574BD8 File Offset: 0x00572DD8
|
|
[Token(Token = "0x1700408A")]
|
|
public float WeaponAttackContribution
|
|
{
|
|
[Token(Token = "0x60176C7")]
|
|
[Address(RVA = "0x7A91E0", Offset = "0x7A81E0", VA = "0x1807A91E0")]
|
|
get
|
|
{
|
|
return this.weaponAttackContribution;
|
|
}
|
|
}
|
|
|
|
// Token: 0x1700408B RID: 16523
|
|
// (set) Token: 0x060176C8 RID: 95944 RVA: 0x00574BEC File Offset: 0x00572DEC
|
|
[Token(Token = "0x1700408B")]
|
|
public int DurabilityDamageTaken
|
|
{
|
|
[Token(Token = "0x60176C8")]
|
|
[Address(RVA = "0x1F15B40", Offset = "0x1F14B40", VA = "0x181F15B40")]
|
|
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: 0x1700408C RID: 16524
|
|
// (get) Token: 0x060176C9 RID: 95945 RVA: 0x00574C38 File Offset: 0x00572E38
|
|
// (set) Token: 0x060176CA RID: 95946 RVA: 0x00574C4C File Offset: 0x00572E4C
|
|
[Token(Token = "0x1700408C")]
|
|
public bool IsEnabled
|
|
{
|
|
[Token(Token = "0x60176C9")]
|
|
[Address(RVA = "0x4B4FF0", Offset = "0x4B3FF0", VA = "0x1804B4FF0")]
|
|
get
|
|
{
|
|
return this._isEnabled;
|
|
}
|
|
[Token(Token = "0x60176CA")]
|
|
[Address(RVA = "0x1F161C0", Offset = "0x1F151C0", VA = "0x181F161C0")]
|
|
set
|
|
{
|
|
this._isEnabled = value;
|
|
this.KEFJFGLPCGI();
|
|
this.OEJHLOAANFG();
|
|
if (!value)
|
|
{
|
|
if (this.isShattered != value)
|
|
{
|
|
return;
|
|
}
|
|
RagdollPiece[] array = this.ragdollPieces;
|
|
int num = 0;
|
|
if (num >= array.Length)
|
|
{
|
|
return;
|
|
}
|
|
GameObject gameObject = array[num].gameObject;
|
|
int num2 = 0;
|
|
gameObject.SetActive(num2 != 0);
|
|
RagdollPiece[] array2 = this.ragdollPieces;
|
|
num++;
|
|
}
|
|
RagdollPiece[] array3 = this.ragdollPieces;
|
|
int num3 = 0;
|
|
this.isShattered = false;
|
|
if (num3 < array3.Length)
|
|
{
|
|
array3[num3].gameObject.SetActive(true);
|
|
this.ragdollPieces[num3].StopRagdoll();
|
|
RagdollPiece[] array4 = this.ragdollPieces;
|
|
num3++;
|
|
while (array4 != 0)
|
|
{
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x060176CB RID: 95947 RVA: 0x00574D0C File Offset: 0x00572F0C
|
|
[Token(Token = "0x60176CB")]
|
|
[Address(RVA = "0x1F16070", Offset = "0x1F15070", VA = "0x181F16070")]
|
|
public void OFFLOPLJBBG(MeleeWeapon GDIGKHINJCG)
|
|
{
|
|
this.weapon = GDIGKHINJCG;
|
|
int num = 0;
|
|
this.isShattered = false;
|
|
this.DurabilityDamageTaken = num;
|
|
}
|
|
|
|
// Token: 0x060176CC RID: 95948 RVA: 0x00574D30 File Offset: 0x00572F30
|
|
[Token(Token = "0x60176CC")]
|
|
[Address(RVA = "0x1F15BF0", Offset = "0x1F14BF0", VA = "0x181F15BF0")]
|
|
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];
|
|
Vector3 vector;
|
|
float z = vector.z;
|
|
float z2 = POMGIDPAKLH.z;
|
|
RagdollPiece[] array2 = this.ragdollPieces;
|
|
num++;
|
|
}
|
|
}
|
|
|
|
// Token: 0x060176CD RID: 95949 RVA: 0x00574D98 File Offset: 0x00572F98
|
|
[Token(Token = "0x60176CD")]
|
|
[Address(RVA = "0x1F15D50", Offset = "0x1F14D50", VA = "0x181F15D50")]
|
|
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: 0x060176CE RID: 95950 RVA: 0x00574E08 File Offset: 0x00573008
|
|
[Token(Token = "0x60176CE")]
|
|
[Address(RVA = "0x1F15FD0", Offset = "0x1F14FD0", VA = "0x181F15FD0")]
|
|
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: 0x060176CF RID: 95951 RVA: 0x00574E58 File Offset: 0x00573058
|
|
[Token(Token = "0x60176CF")]
|
|
[Address(RVA = "0x1F15F40", Offset = "0x1F14F40", VA = "0x181F15F40")]
|
|
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: 0x060176D0 RID: 95952 RVA: 0x00574EA8 File Offset: 0x005730A8
|
|
[Token(Token = "0x60176D0")]
|
|
[Address(RVA = "0x1F15E70", Offset = "0x1F14E70", VA = "0x181F15E70")]
|
|
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: 0x060176D1 RID: 95953 RVA: 0x00574F04 File Offset: 0x00573104
|
|
[Token(Token = "0x60176D1")]
|
|
[Address(RVA = "0x1F15B40", Offset = "0x1F14B40", VA = "0x181F15B40")]
|
|
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: 0x060176D2 RID: 95954 RVA: 0x00574F50 File Offset: 0x00573150
|
|
[Token(Token = "0x60176D2")]
|
|
[Address(RVA = "0x1F16090", Offset = "0x1F15090", VA = "0x181F16090")]
|
|
public MeleeWeaponChunk()
|
|
{
|
|
}
|
|
|
|
// Token: 0x0400F33F RID: 62271
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x400F33F")]
|
|
[SerializeField]
|
|
[Header("Config")]
|
|
private int durability;
|
|
|
|
// Token: 0x0400F340 RID: 62272
|
|
[FieldOffset(Offset = "0x14")]
|
|
[Token(Token = "0x400F340")]
|
|
[SerializeField]
|
|
private float weaponAttackContribution;
|
|
|
|
// Token: 0x0400F341 RID: 62273
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x400F341")]
|
|
[SerializeField]
|
|
[Header("References")]
|
|
private Transform origin;
|
|
|
|
// Token: 0x0400F342 RID: 62274
|
|
[FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x400F342")]
|
|
[SerializeField]
|
|
private MeleeWeaponChunk.DurabilityGameObject[] durabilityGameObjects;
|
|
|
|
// Token: 0x0400F343 RID: 62275
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x400F343")]
|
|
[SerializeField]
|
|
private RagdollPiece[] ragdollPieces;
|
|
|
|
// Token: 0x0400F344 RID: 62276
|
|
[FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x400F344")]
|
|
[SerializeField]
|
|
private MeleeWeaponCollider[] meleeColliders;
|
|
|
|
// Token: 0x0400F345 RID: 62277
|
|
[FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x400F345")]
|
|
[SerializeField]
|
|
private DynamicMeshTrail[] trails;
|
|
|
|
// Token: 0x0400F346 RID: 62278
|
|
[FieldOffset(Offset = "0x40")]
|
|
[Token(Token = "0x400F346")]
|
|
private Weapon weapon;
|
|
|
|
// Token: 0x0400F347 RID: 62279
|
|
[FieldOffset(Offset = "0x48")]
|
|
[Token(Token = "0x400F347")]
|
|
private bool isShattered;
|
|
|
|
// Token: 0x0400F348 RID: 62280
|
|
[FieldOffset(Offset = "0x49")]
|
|
[Token(Token = "0x400F348")]
|
|
private bool _isEnabled = true;
|
|
|
|
// Token: 0x020034BA RID: 13498
|
|
[Token(Token = "0x20034BA")]
|
|
[Serializable]
|
|
public struct DurabilityGameObject
|
|
{
|
|
// Token: 0x0400F349 RID: 62281
|
|
[FieldOffset(Offset = "0x0")]
|
|
[Token(Token = "0x400F349")]
|
|
public GameObject GameObject;
|
|
|
|
// Token: 0x0400F34A RID: 62282
|
|
[FieldOffset(Offset = "0x8")]
|
|
[Token(Token = "0x400F34A")]
|
|
public int MinimumVisibilityDamage;
|
|
|
|
// Token: 0x0400F34B RID: 62283
|
|
[FieldOffset(Offset = "0xC")]
|
|
[Token(Token = "0x400F34B")]
|
|
public int MaximumVisibilityDamage;
|
|
}
|
|
}
|
|
}
|