450 lines
14 KiB
C#
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
|
|
}
|
|
}
|
|
}
|