Files
2026-04-08 23:40:05 +02:00

450 lines
14 KiB
C#

using System;
using System.Collections;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using RecRoom.Core.Combat;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002656 RID: 9814
[Token(Token = "0x2002656")]
[StructLayout(3)]
public class BurstFireGun : RangedWeapon
{
// Token: 0x06010FEF RID: 69615 RVA: 0x003FF17C File Offset: 0x003FD37C
[Token(Token = "0x6010FEF")]
[Address(RVA = "0x15A96B0", Offset = "0x15A80B0", VA = "0x1815A96B0", Slot = "13")]
protected override void Awake()
{
base.Awake();
if (this.burstMode == BurstFireGun.CDKPGNAAAGK.SPRAY)
{
Transform transform = this.sprayTargetRoot;
int num = 0;
if (!(transform == num) && this.sprayTargetRoot.childCount != 0)
{
Transform[] array = new Transform[this.sprayTargetRoot.childCount];
int num2 = 0;
this.NGFEFMLCMJA = array;
int childCount = this.sprayTargetRoot.childCount;
if (num2 >= childCount)
{
goto IL_A9;
}
Transform transform2 = this.sprayTargetRoot;
Transform[] ngfefmlcmja = this.NGFEFMLCMJA;
Transform child = transform2.GetChild(num2);
if (child != 0)
{
}
num2++;
ngfefmlcmja[0] = child;
Transform transform3 = this.sprayTargetRoot;
}
Debug.LogError(base.name + " is missing spray targets.");
}
IL_A9:
Tool tool = this._tool;
int num3 = 0;
if (tool != num3)
{
Tool tool2 = this._tool;
ActionEvent<Tool> inputDownEvent = tool2.InputDownEvent;
Action<Tool> action = new Action(this.GDPCAAHGLJN);
ActionEvent<Tool> actionEvent = inputDownEvent + action;
tool2.InputDownEvent = actionEvent;
Tool tool3 = this._tool;
ActionEvent<Tool> inputUpEvent = tool3.InputUpEvent;
Action<Tool> action2 = new Action(this.KBPEKMLDNHC);
ActionEvent<Tool> actionEvent2 = inputUpEvent + action2;
tool3.InputUpEvent = actionEvent2;
Tool tool4 = this._tool;
ActionEvent<Tool> inputCancelledEvent = tool4.InputCancelledEvent;
Action<Tool> action3 = new Action(this.FIECILCCNFD);
ActionEvent<Tool> actionEvent3 = inputCancelledEvent + action3;
tool4.InputCancelledEvent = actionEvent3;
}
}
// Token: 0x06010FF0 RID: 69616 RVA: 0x003FF2EC File Offset: 0x003FD4EC
[Token(Token = "0x6010FF0")]
[Address(RVA = "0x15AA2C0", Offset = "0x15A8CC0", VA = "0x1815AA2C0", Slot = "14")]
protected override void OnDestroy()
{
base.OnDestroy();
Tool tool = this._tool;
int num = 0;
if (tool != num)
{
Tool tool2 = this._tool;
ActionEvent<Tool> inputDownEvent = tool2.InputDownEvent;
Action<Tool> action = new Action(this.GDPCAAHGLJN);
ActionEvent<Tool> actionEvent = inputDownEvent - action;
tool2.InputDownEvent = actionEvent;
Tool tool3 = this._tool;
ActionEvent<Tool> inputUpEvent = tool3.InputUpEvent;
Action<Tool> action2 = new Action(this.KBPEKMLDNHC);
ActionEvent<Tool> actionEvent2 = inputUpEvent - action2;
tool3.InputUpEvent = actionEvent2;
Tool tool4 = this._tool;
ActionEvent<Tool> inputCancelledEvent = tool4.InputCancelledEvent;
Action<Tool> action3 = new Action(this.FIECILCCNFD);
ActionEvent<Tool> actionEvent3 = inputCancelledEvent - action3;
tool4.InputCancelledEvent = actionEvent3;
}
}
// Token: 0x06010FF1 RID: 69617 RVA: 0x003FF3B0 File Offset: 0x003FD5B0
[Token(Token = "0x6010FF1")]
[Address(RVA = "0x15A9AF0", Offset = "0x15A84F0", VA = "0x1815A9AF0")]
private void GDPCAAHGLJN(Tool NBHJPDBHDHB)
{
if (base.hasAuthority)
{
if (!base.NOOCGFJOMEM)
{
WeaponAudio weaponAudio;
bool isCompleted = ((IAsyncResult)weaponAudio).IsCompleted;
return;
}
if (base.MJDHKAHMGMO || base.LAJLNCJKALH)
{
WeaponAudio weaponAudio = this._weaponAudio;
weaponAudio.OnMisfire();
return;
}
Coroutine ehfgnpndain = this.EHFGNPNDAIN;
if (ehfgnpndain != 0)
{
base.StopCoroutine(ehfgnpndain);
this.EHFGNPNDAIN = (ulong)0L;
}
int num;
BurstFireGun.DILDONIOPLG dildonioplg = new BurstFireGun.DILDONIOPLG(num);
num = 0;
dildonioplg.<>4__this = this;
Coroutine coroutine = base.StartCoroutine(dildonioplg);
this.EHFGNPNDAIN = coroutine;
}
}
// Token: 0x06010FF2 RID: 69618 RVA: 0x003FF43C File Offset: 0x003FD63C
[Token(Token = "0x6010FF2")]
[Address(RVA = "0x15A9CF0", Offset = "0x15A86F0", VA = "0x1815A9CF0")]
private void KBPEKMLDNHC(Tool NBHJPDBHDHB)
{
Coroutine ehfgnpndain = this.EHFGNPNDAIN;
if (ehfgnpndain != 0)
{
base.StopCoroutine(ehfgnpndain);
this.EHFGNPNDAIN = (ulong)0L;
}
}
// Token: 0x06010FF3 RID: 69619 RVA: 0x003FF464 File Offset: 0x003FD664
[Token(Token = "0x6010FF3")]
[Address(RVA = "0x15A9AB0", Offset = "0x15A84B0", VA = "0x1815A9AB0")]
private void FIECILCCNFD(Tool NBHJPDBHDHB)
{
if (base.hasAuthority)
{
Coroutine ehfgnpndain = this.EHFGNPNDAIN;
if (ehfgnpndain != 0)
{
base.StopCoroutine(ehfgnpndain);
this.EHFGNPNDAIN = (ulong)0L;
}
}
}
// Token: 0x06010FF4 RID: 69620 RVA: 0x003FF498 File Offset: 0x003FD698
[Token(Token = "0x6010FF4")]
[Address(RVA = "0x15AA070", Offset = "0x15A8A70", VA = "0x1815AA070", 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;
if (!base.hasAuthority)
{
Coroutine bkmbbgmfgem = this.BKMBBGMFGEM;
if (bkmbbgmfgem != 0)
{
base.StopCoroutine(bkmbbgmfgem);
this.BKMBBGMFGEM = (ulong)0L;
}
int num;
BurstFireGun.EBDJGJFLOPF ebdjgjflopf = new BurstFireGun.EBDJGJFLOPF(num);
num = 0;
ebdjgjflopf.<>4__this = this;
int num2;
ebdjgjflopf.semiAutomaticShotCount = num2;
Coroutine coroutine = base.StartCoroutine(ebdjgjflopf);
this.BKMBBGMFGEM = coroutine;
}
float z3 = NHAOMEMANJA.z;
float z4 = DDHPAFKBMON.z;
}
// Token: 0x06010FF5 RID: 69621 RVA: 0x003FF520 File Offset: 0x003FD720
[Token(Token = "0x6010FF5")]
[Address(RVA = "0x15A9570", Offset = "0x15A7F70", VA = "0x1815A9570")]
private void ABNPFEDICFJ()
{
Coroutine ehfgnpndain = this.EHFGNPNDAIN;
if (ehfgnpndain != 0)
{
base.StopCoroutine(ehfgnpndain);
this.EHFGNPNDAIN = (ulong)0L;
}
int num;
BurstFireGun.DILDONIOPLG dildonioplg = new BurstFireGun.DILDONIOPLG(num);
num = 0;
dildonioplg.<>4__this = this;
Coroutine coroutine = base.StartCoroutine(dildonioplg);
this.EHFGNPNDAIN = coroutine;
}
// Token: 0x06010FF6 RID: 69622 RVA: 0x003FF570 File Offset: 0x003FD770
[Token(Token = "0x6010FF6")]
[Address(RVA = "0x15A9CF0", Offset = "0x15A86F0", VA = "0x1815A9CF0")]
private void IGIDNLPODPD()
{
Coroutine ehfgnpndain = this.EHFGNPNDAIN;
if (ehfgnpndain != 0)
{
base.StopCoroutine(ehfgnpndain);
this.EHFGNPNDAIN = (ulong)0L;
}
}
// Token: 0x06010FF7 RID: 69623 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6010FF7")]
[Address(RVA = "0x15A9F40", Offset = "0x15A8940", VA = "0x1815A9F40")]
private bool LFHJJNKDMJA()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06010FF8 RID: 69624 RVA: 0x003FF598 File Offset: 0x003FD798
[Token(Token = "0x6010FF8")]
[Address(RVA = "0x15A9D20", Offset = "0x15A8720", VA = "0x1815A9D20")]
private IEnumerator JNOBFPLKDMB()
{
int num;
BurstFireGun.DILDONIOPLG dildonioplg = new BurstFireGun.DILDONIOPLG(num);
num = 0;
dildonioplg.<>4__this = this;
throw new NullReferenceException();
}
// Token: 0x06010FF9 RID: 69625 RVA: 0x003FF5BC File Offset: 0x003FD7BC
[Token(Token = "0x6010FF9")]
[Address(RVA = "0x15A9F50", Offset = "0x15A8950", VA = "0x1815A9F50")]
private IEnumerator MBDNELNADAJ(float MOPKOPOKKEE)
{
int num;
BurstFireGun.MPCMFFHNNJG mpcmffhnnjg = new BurstFireGun.MPCMFFHNNJG(num);
num = 0;
mpcmffhnnjg.time = MOPKOPOKKEE;
throw new NullReferenceException();
}
// Token: 0x06010FFA RID: 69626 RVA: 0x003FF5E0 File Offset: 0x003FD7E0
[Token(Token = "0x6010FFA")]
[Address(RVA = "0x15A9E90", Offset = "0x15A8890", VA = "0x1815A9E90")]
private void KNGKMOKBCAE(int HPBJPHFFGAI)
{
Coroutine bkmbbgmfgem = this.BKMBBGMFGEM;
if (bkmbbgmfgem != 0)
{
base.StopCoroutine(bkmbbgmfgem);
this.BKMBBGMFGEM = (ulong)0L;
}
int num;
BurstFireGun.EBDJGJFLOPF ebdjgjflopf = new BurstFireGun.EBDJGJFLOPF(num);
num = 0;
ebdjgjflopf.<>4__this = this;
ebdjgjflopf.semiAutomaticShotCount = HPBJPHFFGAI;
Coroutine coroutine = base.StartCoroutine(ebdjgjflopf);
this.BKMBBGMFGEM = coroutine;
}
// Token: 0x06010FFB RID: 69627 RVA: 0x003FF634 File Offset: 0x003FD834
[Token(Token = "0x6010FFB")]
[Address(RVA = "0x15A9610", Offset = "0x15A8010", VA = "0x1815A9610")]
private void ACDNBPLCMDC()
{
Coroutine bkmbbgmfgem = this.BKMBBGMFGEM;
if (bkmbbgmfgem != 0)
{
base.StopCoroutine(bkmbbgmfgem);
this.BKMBBGMFGEM = (ulong)0L;
}
}
// Token: 0x17002E37 RID: 11831
// (get) Token: 0x06010FFC RID: 69628 RVA: 0x003FF65C File Offset: 0x003FD85C
// (set) Token: 0x06010FFD RID: 69629 RVA: 0x003FF68C File Offset: 0x003FD88C
[Token(Token = "0x17002E37")]
private float GNNKANFOEDF
{
[Token(Token = "0x6010FFC")]
[Address(RVA = "0x15A99D0", Offset = "0x15A83D0", VA = "0x1815A99D0")]
get
{
Transform transform = this.kickbackTransform;
int num = 0;
if (transform != num)
{
Transform transform2 = this.kickbackTransform;
}
throw new NullReferenceException();
}
[Token(Token = "0x6010FFD")]
[Address(RVA = "0x15A9D90", Offset = "0x15A8790", VA = "0x1815A9D90")]
set
{
Transform transform = this.kickbackTransform;
int num = 0;
if (transform != num)
{
Transform transform2 = this.kickbackTransform;
Transform transform3 = this.kickbackTransform;
Vector3 vector;
float z = vector.z;
}
}
}
// Token: 0x06010FFE RID: 69630 RVA: 0x003FF6CC File Offset: 0x003FD8CC
[Token(Token = "0x6010FFE")]
[Address(RVA = "0x15A9640", Offset = "0x15A8040", VA = "0x1815A9640")]
private IEnumerator AKOJNEAJEJD(int HPBJPHFFGAI)
{
int num;
BurstFireGun.EBDJGJFLOPF ebdjgjflopf = new BurstFireGun.EBDJGJFLOPF(num);
num = 0;
ebdjgjflopf.<>4__this = this;
ebdjgjflopf.semiAutomaticShotCount = HPBJPHFFGAI;
throw new NullReferenceException();
}
// Token: 0x06010FFF RID: 69631 RVA: 0x003FF6F8 File Offset: 0x003FD8F8
[Token(Token = "0x6010FFF")]
[Address(RVA = "0x15A9C00", Offset = "0x15A8600", VA = "0x1815A9C00")]
private void GHJLGIHFOPJ(float JLCOILDNDCP, float JFDEMJMDJPH, float FGOANKIAJAK, float AMFBDLGKMGG, out float POMGIDPAKLH, out float PHMMKNJHDJO)
{
float num = Mathf.InverseLerp(JLCOILDNDCP, 1f, JFDEMJMDJPH);
}
// Token: 0x06011000 RID: 69632 RVA: 0x003FF714 File Offset: 0x003FD914
[Token(Token = "0x6011000")]
[Address(RVA = "0x15A9FC0", Offset = "0x15A89C0", VA = "0x1815A9FC0")]
private float NGKOCAPENMB(float KMHEHJCNMJC, float POMGIDPAKLH, float PHMMKNJHDJO)
{
int num = 0;
return MathExt.SolveQuadraticEquationMaxValue(PHMMKNJHDJO * 0.5f, KMHEHJCNMJC, (float)num);
}
// Token: 0x06011001 RID: 69633 RVA: 0x003FF734 File Offset: 0x003FD934
[Token(Token = "0x6011001")]
[Address(RVA = "0x15AA450", Offset = "0x15A8E50", VA = "0x1815AA450")]
public BurstFireGun()
{
}
// Token: 0x0400B490 RID: 46224
[Token(Token = "0x400B490")]
private const float IBNBNGLIKBJ = -1f;
// Token: 0x0400B491 RID: 46225
[Token(Token = "0x400B491")]
private const float MPJMEKMGFCJ = 50f;
// Token: 0x0400B492 RID: 46226
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2E8")]
[Token(Token = "0x400B492")]
[SerializeField]
[Header("Burst")]
private BurstFireGun.CDKPGNAAAGK burstMode;
// Token: 0x0400B493 RID: 46227
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2F0")]
[Token(Token = "0x400B493")]
[SerializeField]
[Header("Kickback")]
private Transform kickbackTransform;
// Token: 0x0400B494 RID: 46228
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2F8")]
[Token(Token = "0x400B494")]
[SerializeField]
private float totalBurstAngle = 5f;
// Token: 0x0400B495 RID: 46229
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2FC")]
[Token(Token = "0x400B495")]
private float PFOJFHAAFJJ = 0.25f;
// Token: 0x0400B496 RID: 46230
[global::Cpp2IlInjected.FieldOffset(Offset = "0x300")]
[Token(Token = "0x400B496")]
[SerializeField]
private float curveNextShotTimeNormalized = 0.75f;
// Token: 0x0400B497 RID: 46231
[global::Cpp2IlInjected.FieldOffset(Offset = "0x304")]
[Token(Token = "0x400B497")]
[SerializeField]
[Header("Simple Burst")]
private float simpleBurstModeBurstSize = 16f;
// Token: 0x0400B498 RID: 46232
[global::Cpp2IlInjected.FieldOffset(Offset = "0x308")]
[Token(Token = "0x400B498")]
[SerializeField]
[Header("Spray")]
private bool hasMaxDistance;
// Token: 0x0400B499 RID: 46233
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30C")]
[Token(Token = "0x400B499")]
[SerializeField]
private float maxDistance = 50f;
// Token: 0x0400B49A RID: 46234
[global::Cpp2IlInjected.FieldOffset(Offset = "0x310")]
[Token(Token = "0x400B49A")]
[SerializeField]
private Transform sprayTargetRoot;
// Token: 0x0400B49B RID: 46235
[global::Cpp2IlInjected.FieldOffset(Offset = "0x318")]
[Token(Token = "0x400B49B")]
private Transform[] NGFEFMLCMJA;
// Token: 0x0400B49C RID: 46236
[global::Cpp2IlInjected.FieldOffset(Offset = "0x320")]
[Token(Token = "0x400B49C")]
private Coroutine EHFGNPNDAIN;
// Token: 0x0400B49D RID: 46237
[global::Cpp2IlInjected.FieldOffset(Offset = "0x328")]
[Token(Token = "0x400B49D")]
private Coroutine BKMBBGMFGEM;
// Token: 0x02002657 RID: 9815
[Token(Token = "0x2002657")]
private enum CDKPGNAAAGK
{
// Token: 0x0400B49F RID: 46239
[Token(Token = "0x400B49F")]
SPRAY,
// Token: 0x0400B4A0 RID: 46240
[Token(Token = "0x400B4A0")]
SIMPLE
}
}
}