Files
niko 8fc35183db a
2026-04-11 22:19:20 +02:00

372 lines
13 KiB
C#

using System;
using Cpp2IlInjected;
using RecRoom.Core.Combat;
using RecRoom.Core.Pools;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B64 RID: 11108
[Token(Token = "0x2002B64")]
public class ChargeGun : RangedWeapon
{
// Token: 0x1700342A RID: 13354
// (get) Token: 0x06012ADC RID: 76508 RVA: 0x00448DF4 File Offset: 0x00446FF4
[Token(Token = "0x1700342A")]
private float ADANMKIMIOD
{
[Token(Token = "0x6012ADC")]
[Address(RVA = "0x10D1650", Offset = "0x10D0450", VA = "0x1810D1650")]
get
{
/*
An exception occurred when decompiling this method (06012ADC)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Single RecRoom.Tools.Weapons.ChargeGun::ODGLMJEGEPC()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:float64(var_1_07, callgetter:float64(KKPBCOOONNK::MLNCKCNEANC))
}
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 1660
*/;
}
}
// Token: 0x1700342B RID: 13355
// (get) Token: 0x06012ADD RID: 76509 RVA: 0x00448E08 File Offset: 0x00447008
// (set) Token: 0x06012ADE RID: 76510 RVA: 0x00448E28 File Offset: 0x00447028
[Token(Token = "0x1700342B")]
private bool DJNLHFNFIKA
{
[Token(Token = "0x6012ADD")]
[Address(RVA = "0x10D1100", Offset = "0x10CFF00", VA = "0x1810D1100")]
get
{
return this.NLBEOHMNEGO.IAHDANBDAAM() != null;
}
[Token(Token = "0x6012ADE")]
[Address(RVA = "0x10D1150", Offset = "0x10CFF50", VA = "0x1810D1150")]
set
{
if (this.NLBEOHMNEGO.IAHDANBDAAM() == 0)
{
KLLMCPFPIIE<float> ghbmjkkecpm = this.GHBMJKKECPM;
double num = KKPBCOOONNK.EDNCMGJJLIH;
}
KLLMCPFPIIE<bool> nlbeohmnego = this.NLBEOHMNEGO;
}
}
// Token: 0x1700342C RID: 13356
// (get) Token: 0x06012ADF RID: 76511 RVA: 0x00448E60 File Offset: 0x00447060
[Token(Token = "0x1700342C")]
private float OLEOICPGCFD
{
[Token(Token = "0x6012ADF")]
[Address(RVA = "0x10D0C30", Offset = "0x10CFA30", VA = "0x1810D0C30")]
get
{
double num = KKPBCOOONNK.EDNCMGJJLIH;
KLLMCPFPIIE<float> ghbmjkkecpm = this.GHBMJKKECPM;
float num2 = ghbmjkkecpm.IAHDANBDAAM();
throw new NullReferenceException();
}
}
// Token: 0x1700342D RID: 13357
// (get) Token: 0x06012AE0 RID: 76512 RVA: 0x00448E8C File Offset: 0x0044708C
[Token(Token = "0x1700342D")]
private float BACGDPEOEMN
{
[Token(Token = "0x6012AE0")]
[Address(RVA = "0x10D0F20", Offset = "0x10CFD20", VA = "0x1810D0F20")]
get
{
float num = this.maxChargeTime;
float num2 = this.OLEOICPGCFD;
float num3 = Mathf.InverseLerp((float)0, num, num2);
AnimationCurve animationCurve = this.chargeCurve;
num = num3;
return Mathf.Clamp01(animationCurve.Evaluate(num));
}
}
// Token: 0x06012AE1 RID: 76513 RVA: 0x00448ECC File Offset: 0x004470CC
[Token(Token = "0x6012AE1")]
[Address(RVA = "0x10D12C0", Offset = "0x10D00C0", VA = "0x1810D12C0")]
private void GDPCAAHGLJN(Tool NBHJPDBHDHB)
{
if (!base.OGIBLNIIHDK)
{
return;
}
if (!base.NOOCGFJOMEM)
{
bool isCompleted = ((IAsyncResult)this).IsCompleted;
return;
}
if (!base.MJDHKAHMGMO && !base.LAJLNCJKALH)
{
this.DJNLHFNFIKA = true;
return;
}
this._weaponAudio.OnMisfire();
}
// Token: 0x06012AE2 RID: 76514 RVA: 0x00448F20 File Offset: 0x00447120
[Token(Token = "0x6012AE2")]
[Address(RVA = "0x10D13E0", Offset = "0x10D01E0", VA = "0x1810D13E0")]
private void KBPEKMLDNHC(Tool NBHJPDBHDHB)
{
if (base.OGIBLNIIHDK && this.NLBEOHMNEGO.IAHDANBDAAM() != 0)
{
int num = 0;
this.DJNLHFNFIKA = num != 0;
float num2 = this.BACGDPEOEMN;
bool isCompleted = ((IAsyncResult)this).IsCompleted;
return;
}
}
// Token: 0x06012AE3 RID: 76515 RVA: 0x00448F64 File Offset: 0x00447164
[Token(Token = "0x6012AE3")]
[Address(RVA = "0x10D1250", Offset = "0x10D0050", VA = "0x1810D1250")]
private void FIECILCCNFD(Tool NBHJPDBHDHB)
{
if (base.OGIBLNIIHDK && this.NLBEOHMNEGO.IAHDANBDAAM() != 0)
{
int num = 0;
this.DJNLHFNFIKA = num != 0;
return;
}
}
// Token: 0x06012AE4 RID: 76516 RVA: 0x00448F98 File Offset: 0x00447198
[Token(Token = "0x6012AE4")]
[Address(RVA = "0x10D16A0", Offset = "0x10D04A0", VA = "0x1810D16A0", Slot = "42")]
protected override void OICJPFPBIIK(Vector3 DDHPAFKBMON, Quaternion IGPENJBJADK, Vector3 NHAOMEMANJA, float LFDFFDCJAAD, bool FLKHKHDBIOH, byte LNPHJIHHNPN)
{
float z = NHAOMEMANJA.z;
float z2 = DDHPAFKBMON.z;
float z3 = NHAOMEMANJA.z;
float z4 = DDHPAFKBMON.z;
}
// Token: 0x06012AE5 RID: 76517 RVA: 0x00448FC4 File Offset: 0x004471C4
[Token(Token = "0x6012AE5")]
[Address(RVA = "0x10D0CE0", Offset = "0x10CFAE0", VA = "0x1810D0CE0", Slot = "13")]
protected override void Awake()
{
base.Awake();
Action action = new Action(this.LIGHPMIHPCL);
int num;
int num2;
KLLMCPFPIIE<bool> kllmcpfpiie = new KLLMCPFPIIE(this, "IS_CHARGING", num, (OHOEENCHJJE)num2, action, num2);
num2 = 0;
num = 0;
this.NLBEOHMNEGO = kllmcpfpiie;
KLLMCPFPIIE<float> kllmcpfpiie2 = new KLLMCPFPIIE(this, "CHARGE_START_TIME", num, (OHOEENCHJJE)num2, num2, num2);
this.GHBMJKKECPM = kllmcpfpiie2;
Tool tool = this._tool;
int num3 = 0;
if (tool != num3)
{
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> inputDownEvent = tool2.InputDownEvent;
Action<Tool> action2 = new Action(this.GDPCAAHGLJN);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.BPJDFPACLMK(inputDownEvent, action2);
tool2.InputDownEvent = mfbglihgcgo;
Tool tool3 = this._tool;
MFBGLIHGCGO<Tool> inputUpEvent = tool3.InputUpEvent;
Action<Tool> action3 = new Action(this.KBPEKMLDNHC);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.BPJDFPACLMK(inputUpEvent, action3);
tool3.InputUpEvent = mfbglihgcgo2;
Tool tool4 = this._tool;
MFBGLIHGCGO<Tool> inputCancelledEvent = tool4.InputCancelledEvent;
Action<Tool> action4 = new Action(this.FIECILCCNFD);
MFBGLIHGCGO<Tool> mfbglihgcgo3 = MFBGLIHGCGO.BPJDFPACLMK(inputCancelledEvent, action4);
tool4.InputCancelledEvent = mfbglihgcgo3;
}
}
// Token: 0x06012AE6 RID: 76518 RVA: 0x004490D4 File Offset: 0x004472D4
[Token(Token = "0x6012AE6")]
[Address(RVA = "0x10D17E0", Offset = "0x10D05E0", VA = "0x1810D17E0", Slot = "14")]
protected override void OnDestroy()
{
base.OnDestroy();
Tool tool = this._tool;
int num = 0;
if (tool != num)
{
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> inputDownEvent = tool2.InputDownEvent;
Action<Tool> action = new Action(this.GDPCAAHGLJN);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.GMNMHGMFGOL(inputDownEvent, action);
tool2.InputDownEvent = mfbglihgcgo;
Tool tool3 = this._tool;
MFBGLIHGCGO<Tool> inputUpEvent = tool3.InputUpEvent;
Action<Tool> action2 = new Action(this.KBPEKMLDNHC);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.GMNMHGMFGOL(inputUpEvent, action2);
tool3.InputUpEvent = mfbglihgcgo2;
Tool tool4 = this._tool;
MFBGLIHGCGO<Tool> inputCancelledEvent = tool4.InputCancelledEvent;
Action<Tool> action3 = new Action(this.FIECILCCNFD);
MFBGLIHGCGO<Tool> mfbglihgcgo3 = MFBGLIHGCGO.GMNMHGMFGOL(inputCancelledEvent, action3);
tool4.InputCancelledEvent = mfbglihgcgo3;
}
}
// Token: 0x06012AE7 RID: 76519 RVA: 0x00449198 File Offset: 0x00447398
[Token(Token = "0x6012AE7")]
[Address(RVA = "0x10D1970", Offset = "0x10D0770", VA = "0x1810D1970", Slot = "17")]
protected override void Start()
{
base.Start();
this.LIGHPMIHPCL();
}
// Token: 0x06012AE8 RID: 76520 RVA: 0x004491B4 File Offset: 0x004473B4
[Token(Token = "0x6012AE8")]
[Address(RVA = "0x10D1470", Offset = "0x10D0270", VA = "0x1810D1470")]
private void LIGHPMIHPCL()
{
if (this.NLBEOHMNEGO.IAHDANBDAAM() == 0)
{
this.IOJDCBKBPKC();
this._weaponAudio.OnStopCharge();
if (this._weaponAudio.LIBPLCAGHKI)
{
this._weaponAudio.OnFullyChargedLoopStop();
}
return;
}
this.IOJDCBKBPKC();
PooledParticle pooledParticle = this.chargeParticlePrefab;
int num = 0;
if (pooledParticle != num)
{
GlobalPool instance = GlobalPool.ONCPNMDGGKG;
PooledParticle pooledParticle2 = this.chargeParticlePrefab;
PooledParticle pooledParticle3 = instance.Acquire<PooledParticle>(pooledParticle2);
this.OIHJPCBJPMH = pooledParticle3;
int num2 = 0;
if (pooledParticle3 != num2)
{
PooledParticle oihjpcbjpmh = this.OIHJPCBJPMH;
Transform muzzleFlashOrigin = this.muzzleFlashOrigin;
oihjpcbjpmh.Play(muzzleFlashOrigin, true, -1f);
}
}
WeaponAudio weaponAudio = this._weaponAudio;
float num3 = this.OLEOICPGCFD;
weaponAudio.OnCharge(num3);
}
// Token: 0x06012AE9 RID: 76521 RVA: 0x00449284 File Offset: 0x00447484
[Token(Token = "0x6012AE9")]
[Address(RVA = "0x10D1990", Offset = "0x10D0790", VA = "0x1810D1990")]
private void Update()
{
if (this.NLBEOHMNEGO.IAHDANBDAAM() != 0)
{
float num = this.BACGDPEOEMN;
if (!this._weaponAudio.LIBPLCAGHKI)
{
this._weaponAudio.OnStopCharge();
this._weaponAudio.OnFullyChargedLoopStart();
return;
}
}
}
// Token: 0x06012AEA RID: 76522 RVA: 0x004492D4 File Offset: 0x004474D4
[Token(Token = "0x6012AEA")]
[Address(RVA = "0x10D0FD0", Offset = "0x10CFDD0", VA = "0x1810D0FD0")]
private void CHMFCMEABBC()
{
this.IOJDCBKBPKC();
PooledParticle pooledParticle = this.chargeParticlePrefab;
int num = 0;
if (pooledParticle != num)
{
GlobalPool instance = GlobalPool.ONCPNMDGGKG;
PooledParticle pooledParticle2 = this.chargeParticlePrefab;
PooledParticle pooledParticle3 = instance.Acquire<PooledParticle>(pooledParticle2);
this.OIHJPCBJPMH = pooledParticle3;
int num2 = 0;
if (pooledParticle3 != num2)
{
PooledParticle oihjpcbjpmh = this.OIHJPCBJPMH;
Transform muzzleFlashOrigin = this.muzzleFlashOrigin;
oihjpcbjpmh.Play(muzzleFlashOrigin, true, -1f);
}
}
}
// Token: 0x06012AEB RID: 76523 RVA: 0x00449350 File Offset: 0x00447550
[Token(Token = "0x6012AEB")]
[Address(RVA = "0x10D1350", Offset = "0x10D0150", VA = "0x1810D1350")]
private void IOJDCBKBPKC()
{
PooledParticle oihjpcbjpmh = this.OIHJPCBJPMH;
int num = 0;
if (oihjpcbjpmh != num)
{
this.OIHJPCBJPMH.Stop();
this.OIHJPCBJPMH = (ulong)0L;
}
}
// Token: 0x06012AEC RID: 76524 RVA: 0x0044938C File Offset: 0x0044758C
[Token(Token = "0x6012AEC")]
[Address(RVA = "0x10D1A30", Offset = "0x10D0830", VA = "0x1810D1A30")]
public ChargeGun()
{
}
// Token: 0x0400C110 RID: 49424
[FieldOffset(Offset = "0x2F0")]
[Token(Token = "0x400C110")]
[SerializeField]
[Header("Charging")]
private float maxChargeTime = 2.5f;
// Token: 0x0400C111 RID: 49425
[FieldOffset(Offset = "0x2F8")]
[Token(Token = "0x400C111")]
[SerializeField]
private AnimationCurve chargeCurve;
// Token: 0x0400C112 RID: 49426
[FieldOffset(Offset = "0x300")]
[Token(Token = "0x400C112")]
[SerializeField]
private PooledParticle chargeParticlePrefab;
// Token: 0x0400C113 RID: 49427
[FieldOffset(Offset = "0x308")]
[Token(Token = "0x400C113")]
private KLLMCPFPIIE<bool> NLBEOHMNEGO;
// Token: 0x0400C114 RID: 49428
[FieldOffset(Offset = "0x310")]
[Token(Token = "0x400C114")]
private KLLMCPFPIIE<float> GHBMJKKECPM;
// Token: 0x0400C115 RID: 49429
[FieldOffset(Offset = "0x318")]
[Token(Token = "0x400C115")]
private PooledParticle OIHJPCBJPMH;
}
}