Files
27Aug2021-Cpp2IL-Dump/Assembly-CSharp/RecRoom/Tools/Weapons/WeaponReloader.cs
T
niko c12fbe3fc6 m
2026-04-12 16:51:38 +02:00

923 lines
35 KiB
C#

using System;
using System.Collections;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
using RecRoom.Core.Combat;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002C59 RID: 11353
[Token(Token = "0x2002C59")]
public class WeaponReloader : WeaponAccessory
{
// Token: 0x170034E8 RID: 13544
// (get) Token: 0x06012F87 RID: 77703 RVA: 0x00454D68 File Offset: 0x00452F68
[Token(Token = "0x170034E8")]
private int DGBHNIGIJLO
{
[Token(Token = "0x6012F87")]
[Address(RVA = "0x1D3F4F0", Offset = "0x1D3E4F0", VA = "0x181D3F4F0")]
get
{
int num = this.pullTickCount;
return num + 1;
}
}
// Token: 0x170034E9 RID: 13545
// (get) Token: 0x06012F88 RID: 77704 RVA: 0x00454D84 File Offset: 0x00452F84
// (set) Token: 0x06012F89 RID: 77705 RVA: 0x00454D98 File Offset: 0x00452F98
[Token(Token = "0x170034E9")]
public bool FAMGOEKHBGF
{
[Token(Token = "0x6012F88")]
[Address(RVA = "0x4D9870", Offset = "0x4D8870", VA = "0x1804D9870")]
get;
[Token(Token = "0x6012F89")]
[Address(RVA = "0x164E370", Offset = "0x164D370", VA = "0x18164E370")]
set;
}
// Token: 0x06012F8A RID: 77706 RVA: 0x00454DAC File Offset: 0x00452FAC
[Token(Token = "0x6012F8A")]
[Address(RVA = "0x1D3ED10", Offset = "0x1D3DD10", VA = "0x181D3ED10", Slot = "5")]
protected override void Awake()
{
DelayedRangedWeaponTrigger.IOGLIBAPLLG abhibnpkain;
Delegate @delegate;
do
{
base.Awake();
Tool tool = this._tool;
int num = 0;
if (tool != num)
{
this._tool.IgnorePickupDirection = true;
Tool tool2 = this._tool;
Tool.OGLAJAFKBMN oglajafkbmn = new Tool.OGLAJAFKBMN(this.LPLIIBBAAOI);
tool2.AddCustomPickupCondition(oglajafkbmn);
Tool tool3 = this._tool;
MFBGLIHGCGO<Tool> postPickupEvent = tool3.PostPickupEvent;
Action<Tool> action = new Action(this.HAAIALDMMEL);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.BPJDFPACLMK(postPickupEvent, action);
tool3.PostPickupEvent = mfbglihgcgo;
Tool tool4 = this._tool;
MFBGLIHGCGO<Tool> postReleaseEvent = tool4.PostReleaseEvent;
Action<Tool> action2 = new Action(this.OIOCPLEKMEK);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.BPJDFPACLMK(postReleaseEvent, action2);
tool4.PostReleaseEvent = mfbglihgcgo2;
Tool tool5 = this._tool;
MFBGLIHGCGO<Tool> postAttachEvent = tool5.PostAttachEvent;
Action<Tool> action3 = new Action(this.BLKAKANNEJP);
MFBGLIHGCGO<Tool> mfbglihgcgo3 = MFBGLIHGCGO.BPJDFPACLMK(postAttachEvent, action3);
tool5.PostAttachEvent = mfbglihgcgo3;
Tool tool6 = this._tool;
EAHPNACBLDD<Tool, Vector3, Quaternion, Vector3, bool> postResetEvent = tool6.PostResetEvent;
Action<Tool, Vector3, Quaternion, Vector3, bool> action4 = new Action(this.LBODGLNOABB);
EAHPNACBLDD<Tool, Vector3, Quaternion, Vector3, bool> eahpnacbldd = EAHPNACBLDD.BPJDFPACLMK(postResetEvent, action4);
tool6.PostResetEvent = eahpnacbldd;
this._tool.rigidbodyEx.AddKinematic(this);
this._tool.ReleaseWithVelocity = false;
}
Weapon parentWeapon = this.parentWeapon;
int num2 = 0;
if (parentWeapon == num2)
{
goto IL_297;
}
Tool tool7 = this.parentWeapon._tool;
Action action5 = new Action(this.OICGKLMBONC);
tool7.NBBKCDDPBPD += action5;
Weapon parentWeapon2 = this.parentWeapon;
Action action6 = new Action(this.DONOOFPPPOB);
parentWeapon2.DONOOFPPPOB += action6;
Weapon parentWeapon3 = this.parentWeapon;
Action action7 = new Action(this.MIKJDLDPIEP);
parentWeapon3.OFOLKCFPBEN += action7;
Transform transform = this.parentWeapon.transform;
Transform transform2 = this.emptyClipTransform;
Vector3 vector;
float z = vector.z;
Weapon parentWeapon4 = this.parentWeapon;
Vector3 vector2;
float z2 = vector2.z;
this.JNJIAPLPIGB.z = z2;
Transform transform3 = parentWeapon4.transform;
Transform transform4 = this.emptyClipTransform;
DelayedRangedWeaponTrigger delayedRangedWeaponTrigger = this.delayedWeaponTrigger;
int num3 = 0;
if (!(delayedRangedWeaponTrigger != num3))
{
goto IL_2AC;
}
DelayedRangedWeaponTrigger delayedRangedWeaponTrigger2 = this.delayedWeaponTrigger;
DelayedRangedWeaponTrigger.IOGLIBAPLLG ioglibapllg;
ioglibapllg.method_ptr = ldftn(GDFPOLCEBCJ);
ioglibapllg.method = ldftn(GDFPOLCEBCJ);
ioglibapllg.m_target = this;
abhibnpkain = delayedRangedWeaponTrigger2.ABHIBNPKAIN;
@delegate = Delegate.Combine(abhibnpkain, ioglibapllg);
}
while (@delegate != 0 && @delegate == 0);
while (@delegate != abhibnpkain)
{
}
DelayedRangedWeaponTrigger delayedRangedWeaponTrigger3 = this.delayedWeaponTrigger;
DelayedRangedWeaponTrigger.IOGLIBAPLLG ioglibapllg2;
ioglibapllg2.method_ptr = ldftn(PBBPDKFNPKG);
ioglibapllg2.method = ldftn(PBBPDKFNPKG);
ioglibapllg2.m_target = this;
delayedRangedWeaponTrigger3.JFPBBAHBCPN += ioglibapllg2;
IL_297:
Debug.LogError(base.name + " is missing weapon reference.");
IL_2AC:
Transform transform5 = this.fullClipTransform;
Transform transform6 = this.emptyClipTransform;
Vector3 vector3;
float z3 = vector3.z;
Vector3 vector4;
float z4 = vector4.z;
Vector3 vector5;
float z5 = vector5.z;
this.HABNDFDLPCM.z = z5;
Tool tool8 = this._tool;
float num4;
this.MKFDOOGDODK = num4;
float uniformScale = tool8.rigidbodyEx.MKDHFENOFDO;
bool flag = this.animateParentWeaponReloader;
this.<BABGDIBCNEO>k__BackingField = flag;
this.GPAHAFBLMIG = uniformScale;
}
// Token: 0x06012F8B RID: 77707 RVA: 0x004550DC File Offset: 0x004532DC
[Token(Token = "0x6012F8B")]
[Address(RVA = "0x1D406C0", Offset = "0x1D3F6C0", VA = "0x181D406C0", Slot = "7")]
protected override void OnDestroy()
{
DelayedRangedWeaponTrigger.IOGLIBAPLLG abhibnpkain;
Delegate @delegate;
do
{
base.OnDestroy();
Tool tool = this._tool;
int num = 0;
if (tool != num)
{
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> postPickupEvent = tool2.PostPickupEvent;
Action<Tool> action = new Action(this.HAAIALDMMEL);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.GMNMHGMFGOL(postPickupEvent, action);
tool2.PostPickupEvent = mfbglihgcgo;
Tool tool3 = this._tool;
MFBGLIHGCGO<Tool> postReleaseEvent = tool3.PostReleaseEvent;
Action<Tool> action2 = new Action(this.OIOCPLEKMEK);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.GMNMHGMFGOL(postReleaseEvent, action2);
tool3.PostReleaseEvent = mfbglihgcgo2;
Tool tool4 = this._tool;
MFBGLIHGCGO<Tool> postAttachEvent = tool4.PostAttachEvent;
Action<Tool> action3 = new Action(this.BLKAKANNEJP);
MFBGLIHGCGO<Tool> mfbglihgcgo3 = MFBGLIHGCGO.GMNMHGMFGOL(postAttachEvent, action3);
tool4.PostAttachEvent = mfbglihgcgo3;
Tool tool5 = this._tool;
EAHPNACBLDD<Tool, Vector3, Quaternion, Vector3, bool> postResetEvent = tool5.PostResetEvent;
Action<Tool, Vector3, Quaternion, Vector3, bool> action4 = new Action(this.LBODGLNOABB);
EAHPNACBLDD<Tool, Vector3, Quaternion, Vector3, bool> eahpnacbldd = EAHPNACBLDD.GMNMHGMFGOL(postResetEvent, action4);
tool5.PostResetEvent = eahpnacbldd;
}
Weapon parentWeapon = this.parentWeapon;
int num2 = 0;
if (parentWeapon != num2)
{
Tool tool6 = this.parentWeapon._tool;
Action action5 = new Action(this.OICGKLMBONC);
tool6.NBBKCDDPBPD -= action5;
Weapon parentWeapon2 = this.parentWeapon;
Action action6 = new Action(this.MIKJDLDPIEP);
parentWeapon2.OFOLKCFPBEN -= action6;
Weapon parentWeapon3 = this.parentWeapon;
Action action7 = new Action(this.DONOOFPPPOB);
parentWeapon3.DONOOFPPPOB -= action7;
}
DelayedRangedWeaponTrigger delayedRangedWeaponTrigger = this.delayedWeaponTrigger;
int num3 = 0;
if (!(delayedRangedWeaponTrigger != num3))
{
return;
}
DelayedRangedWeaponTrigger delayedRangedWeaponTrigger2 = this.delayedWeaponTrigger;
DelayedRangedWeaponTrigger.IOGLIBAPLLG ioglibapllg;
ioglibapllg.method_ptr = ldftn(GDFPOLCEBCJ);
ioglibapllg.method = ldftn(GDFPOLCEBCJ);
ioglibapllg.m_target = this;
abhibnpkain = delayedRangedWeaponTrigger2.ABHIBNPKAIN;
@delegate = Delegate.Remove(abhibnpkain, ioglibapllg);
}
while (@delegate != 0 && @delegate == 0);
while (@delegate != abhibnpkain)
{
}
DelayedRangedWeaponTrigger delayedRangedWeaponTrigger3 = this.delayedWeaponTrigger;
DelayedRangedWeaponTrigger.IOGLIBAPLLG ioglibapllg2;
ioglibapllg2.method_ptr = ldftn(PBBPDKFNPKG);
ioglibapllg2.method = ldftn(PBBPDKFNPKG);
ioglibapllg2.m_target = this;
delayedRangedWeaponTrigger3.JFPBBAHBCPN -= ioglibapllg2;
}
// Token: 0x06012F8C RID: 77708 RVA: 0x004552EC File Offset: 0x004534EC
[Token(Token = "0x6012F8C")]
[Address(RVA = "0x1D40CB0", Offset = "0x1D3FCB0", VA = "0x181D40CB0", Slot = "6")]
protected override void Start()
{
RigidbodyPickup rigidbodyPickup = this._tool.rigidbodyPickup;
if (rigidbodyPickup == 0)
{
}
Weapon parentWeapon = this.parentWeapon;
this.GNFGOLPHEAI = rigidbodyPickup;
RigidbodyPickup rigidbodyPickup2 = parentWeapon._tool.rigidbodyPickup;
PlungerRigidbodyPickup gnfgolpheai = this.GNFGOLPHEAI;
float z = this.JNJIAPLPIGB.z;
gnfgolpheai.ConstraintOffsetPosition.z = z;
PlungerRigidbodyPickup gnfgolpheai2 = this.GNFGOLPHEAI;
Quaternion gicdoidpckn = this.GICDOIDPCKN;
gnfgolpheai2.ConstraintOffsetRotation = gicdoidpckn;
PlungerRigidbodyPickup gnfgolpheai3 = this.GNFGOLPHEAI;
float z2 = this.HABNDFDLPCM.z;
gnfgolpheai3.ConstraintLocalAxis.z = z2;
this.GNFGOLPHEAI.MinimumConstraintDistance = 0f;
PlungerRigidbodyPickup gnfgolpheai4 = this.GNFGOLPHEAI;
float mkfdoogdodk = this.MKFDOOGDODK;
gnfgolpheai4.MaximumConstraintDistance = mkfdoogdodk;
this.MIKJDLDPIEP();
this.KBMDJLKAPNO();
if (!this._tool.<BIPMAHKMNKF>k__BackingField)
{
Quaternion gicdoidpckn2 = this.GICDOIDPCKN;
float z3 = this.JNJIAPLPIGB.z;
}
base.Start();
}
// Token: 0x06012F8D RID: 77709 RVA: 0x004553E8 File Offset: 0x004535E8
[Token(Token = "0x6012F8D")]
[Address(RVA = "0x1D40AD0", Offset = "0x1D3FAD0", VA = "0x181D40AD0")]
private void OnEnable()
{
if (!this._tool.<BIPMAHKMNKF>k__BackingField)
{
Quaternion gicdoidpckn = this.GICDOIDPCKN;
float z = this.JNJIAPLPIGB.z;
}
}
// Token: 0x06012F8E RID: 77710 RVA: 0x0045541C File Offset: 0x0045361C
[Token(Token = "0x6012F8E")]
[Address(RVA = "0x1D40000", Offset = "0x1D3F000", VA = "0x181D40000")]
private void KBMDJLKAPNO()
{
if (this.AENELEOCFPJ != 0)
{
}
Weapon parentWeapon = this.parentWeapon;
int num = 0;
if (parentWeapon != num && (this.parentWeapon._tool.FNFNLDBILFE || !this.parentWeapon._tool.rigidbodyEx.IsSleeping()))
{
Action action = new Action(this.JJGODHDABOH);
IDisposable disposable = this.OPEMIFENIJM(action);
this.AENELEOCFPJ = disposable;
return;
}
this.AENELEOCFPJ = (ulong)0L;
}
// Token: 0x06012F8F RID: 77711 RVA: 0x0045549C File Offset: 0x0045369C
[Token(Token = "0x6012F8F")]
[Address(RVA = "0x1D3FD00", Offset = "0x1D3ED00", VA = "0x181D3FD00")]
private void JJGODHDABOH()
{
if (this._tool.OGIBLNIIHDK && this._tool.FNFNLDBILFE)
{
PlungerRigidbodyPickup gnfgolpheai = this.GNFGOLPHEAI;
int num = 0;
if (gnfgolpheai != num)
{
PlungerRigidbodyPickup gnfgolpheai2 = this.GNFGOLPHEAI;
float num2 = this.GPAHAFBLMIG;
float currentDistance = gnfgolpheai2.CurrentDistance;
float num3 = Mathf.InverseLerp((float)0, num2, currentDistance);
int num4 = this.pullTickCount;
num2 = num3;
num4++;
this.ICJOIHKKABO(num2);
this.NLFNFGNNBNF = num2;
if (gnfgolpheai != 0 && !this.AFHFMMDPEFB)
{
if (this.ReloadsAutomatically)
{
this.parentWeapon.ReloadAmmunition();
}
this.GADODEBHGIA();
}
this.AFHFMMDPEFB = gnfgolpheai != null;
}
}
if (this.<BABGDIBCNEO>k__BackingField)
{
if (this.reloaderType == WeaponReloader.OFIHDMNINPD.PULL)
{
float magazineAmmunitionNormalized = this.parentWeapon.CGOPGIAIOIK;
}
PlungerRigidbodyPickup gnfgolpheai3 = this.GNFGOLPHEAI;
int num5 = 0;
float num6;
float num7;
if (gnfgolpheai3 != num5 && this._tool.FNFNLDBILFE && !this._tool.<LPPHFOBBGNL>k__BackingField)
{
PlungerRigidbodyPickup gnfgolpheai4 = this.GNFGOLPHEAI;
num6 = this.GPAHAFBLMIG;
num7 = gnfgolpheai4.CurrentDistance;
num6 = Mathf.InverseLerp((float)0, num6, num7);
}
Weapon parentWeapon = this.parentWeapon;
num7 = num6;
int johdlnmalma = WeaponReloader.JOHDLNMALMA;
parentWeapon.SetAnimationFloat(johdlnmalma, num7);
}
}
// Token: 0x06012F90 RID: 77712 RVA: 0x004555EC File Offset: 0x004537EC
[Token(Token = "0x6012F90")]
[Address(RVA = "0x1D40550", Offset = "0x1D3F550", VA = "0x181D40550")]
private void OICGKLMBONC()
{
float uniformScale = this._tool.rigidbodyEx.MKDHFENOFDO;
this.GPAHAFBLMIG = uniformScale;
}
// Token: 0x06012F91 RID: 77713 RVA: 0x00455618 File Offset: 0x00453818
[Token(Token = "0x6012F91")]
[Address(RVA = "0x1D3F790", Offset = "0x1D3E790", VA = "0x181D3F790")]
private void HAAIALDMMEL(Tool EGFEJGHDNAI)
{
float gpahafblmig = this.GPAHAFBLMIG;
PlungerRigidbodyPickup gnfgolpheai = this.GNFGOLPHEAI;
this.AFHFMMDPEFB = false;
int num = 0;
if (gnfgolpheai != num)
{
PlungerRigidbodyPickup gnfgolpheai2 = this.GNFGOLPHEAI;
}
int num2 = 0;
float num3 = Mathf.InverseLerp((float)0, gpahafblmig, (float)num2);
int num4 = this.pullTickCount;
num4++;
Weapon parentWeapon = this.parentWeapon;
this.NLFNFGNNBNF = num3;
parentWeapon.<FAGFHDDIHHD>k__BackingField = true;
}
// Token: 0x06012F92 RID: 77714 RVA: 0x00455688 File Offset: 0x00453888
[Token(Token = "0x6012F92")]
[Address(RVA = "0x1D405A0", Offset = "0x1D3F5A0", VA = "0x181D405A0")]
private void OIOCPLEKMEK(Tool EGFEJGHDNAI)
{
this.parentWeapon.<FAGFHDDIHHD>k__BackingField = false;
PlungerRigidbodyPickup gnfgolpheai = this.GNFGOLPHEAI;
int num = 0;
if (gnfgolpheai != num)
{
PlungerRigidbodyPickup gnfgolpheai2 = this.GNFGOLPHEAI;
int num2 = 0;
this.HMHIMJBPKJF = num2;
this.GNFGOLPHEAI.CurrentDistance = (float)num2;
}
if (this._tool.OGIBLNIIHDK)
{
Action action = new Action(this.LNHANACJAIF);
Coroutine coroutine = this.CHAAKFJCLIH(action);
}
}
// Token: 0x06012F93 RID: 77715 RVA: 0x004556FC File Offset: 0x004538FC
[Token(Token = "0x6012F93")]
[Address(RVA = "0x1D3F3E0", Offset = "0x1D3E3E0", VA = "0x181D3F3E0")]
private void BLKAKANNEJP(Tool EGFEJGHDNAI)
{
if (this.parentWeapon._tool.<BIPMAHKMNKF>k__BackingField && this._tool.OGIBLNIIHDK && base.isActiveAndEnabled)
{
WeaponReloader.FADPLMHEKKG fadplmhekkg;
fadplmhekkg.System.IDisposable.Dispose();
float num;
fadplmhekkg.returnDistance = num;
fadplmhekkg.<>1__state = (int)((ulong)0L);
fadplmhekkg.<>4__this = this;
Coroutine coroutine = base.StartCoroutine(fadplmhekkg);
}
}
// Token: 0x06012F94 RID: 77716 RVA: 0x00455760 File Offset: 0x00453960
[Token(Token = "0x6012F94")]
[Address(RVA = "0x1D40130", Offset = "0x1D3F130", VA = "0x181D40130")]
private void LBODGLNOABB(Tool EGFEJGHDNAI, Vector3 BNMOCBJEEPN, Quaternion LPHCCEOHNIN, Vector3 GMMJHABHDHE, bool ACPOOMGHPKJ)
{
object[] array = new object[1];
if (this != 0)
{
}
array[0] = this;
Debug.LogErrorFormat("Resetting reloader subtool {0}. Subtools generally shouldn't be manually reset.", array);
Quaternion gicdoidpckn = this.GICDOIDPCKN;
float z = this.JNJIAPLPIGB.z;
}
// Token: 0x06012F95 RID: 77717 RVA: 0x004557A4 File Offset: 0x004539A4
[Token(Token = "0x6012F95")]
[Address(RVA = "0x1D3F610", Offset = "0x1D3E610", VA = "0x181D3F610", Slot = "10")]
protected override void FAFIPDEIOCK(Tool EGFEJGHDNAI)
{
base.FAFIPDEIOCK(EGFEJGHDNAI);
this.MIKJDLDPIEP();
}
// Token: 0x06012F96 RID: 77718 RVA: 0x004557C0 File Offset: 0x004539C0
[Token(Token = "0x6012F96")]
[Address(RVA = "0x1D3F500", Offset = "0x1D3E500", VA = "0x181D3F500", Slot = "8")]
protected override void CFODJFFPDFP(Tool EGFEJGHDNAI)
{
base.CFODJFFPDFP(EGFEJGHDNAI);
this.KBMDJLKAPNO();
}
// Token: 0x06012F97 RID: 77719 RVA: 0x004557DC File Offset: 0x004539DC
[Token(Token = "0x6012F97")]
[Address(RVA = "0x1D3F600", Offset = "0x1D3E600", VA = "0x181D3F600", Slot = "9")]
protected override void ELJGGDGLEHE(RigidbodyEx PJBJCJPOOGL)
{
this.KBMDJLKAPNO();
}
// Token: 0x06012F98 RID: 77720 RVA: 0x004557F0 File Offset: 0x004539F0
[Token(Token = "0x6012F98")]
[Address(RVA = "0x1D40350", Offset = "0x1D3F350", VA = "0x181D40350")]
private void MIKJDLDPIEP()
{
if (base.gameObject.activeInHierarchy)
{
PlungerRigidbodyPickup gnfgolpheai = this.GNFGOLPHEAI;
int num = 0;
if (gnfgolpheai != num)
{
PlungerRigidbodyPickup gnfgolpheai2 = this.GNFGOLPHEAI;
int num2 = 0;
if (gnfgolpheai2 != num2)
{
WeaponReloader.OFIHDMNINPD ofihdmninpd = this.reloaderType;
if (ofihdmninpd != WeaponReloader.OFIHDMNINPD.PULL)
{
if (ofihdmninpd != WeaponReloader.OFIHDMNINPD.PUMP)
{
goto IL_AE;
}
this.GNFGOLPHEAI.MinimumConstraintDistance = 0f;
}
Weapon parentWeapon = this.parentWeapon;
PlungerRigidbodyPickup gnfgolpheai3 = this.GNFGOLPHEAI;
float mkfdoogdodk = this.MKFDOOGDODK;
float magazineAmmunitionNormalized = parentWeapon.CGOPGIAIOIK;
float num3 = Mathf.Lerp((float)0, mkfdoogdodk, magazineAmmunitionNormalized);
gnfgolpheai3.MinimumConstraintDistance = num3;
PlungerRigidbodyPickup gnfgolpheai4 = this.GNFGOLPHEAI;
float mkfdoogdodk2 = this.MKFDOOGDODK;
gnfgolpheai4.MaximumConstraintDistance = mkfdoogdodk2;
IL_AE:
PlungerRigidbodyPickup gnfgolpheai5 = this.GNFGOLPHEAI;
float num4 = this.extraPullDistance;
gnfgolpheai5.MaximumConstraintDistance = num4;
}
if (!this._tool.FNFNLDBILFE)
{
this.ECFPALFHBHG(true);
}
}
}
}
// Token: 0x06012F99 RID: 77721 RVA: 0x004558E0 File Offset: 0x00453AE0
[Token(Token = "0x6012F99")]
[Address(RVA = "0x1D3F520", Offset = "0x1D3E520", VA = "0x181D3F520")]
private void DONOOFPPPOB()
{
Coroutine mjeplmpjlil = this.MJEPLMPJLIL;
if (mjeplmpjlil != 0)
{
base.StopCoroutine(mjeplmpjlil);
}
this.MJEPLMPJLIL = (ulong)0L;
WeaponReloader.CIJEKHDBNIA cijekhdbnia;
cijekhdbnia.System.IDisposable.Dispose();
cijekhdbnia.<>1__state = (int)((ulong)0L);
cijekhdbnia.<>4__this = this;
Coroutine coroutine = base.StartCoroutine(cijekhdbnia);
this.MJEPLMPJLIL = coroutine;
}
// Token: 0x06012F9A RID: 77722 RVA: 0x00455930 File Offset: 0x00453B30
[Token(Token = "0x6012F9A")]
[Address(RVA = "0x1D3F6A0", Offset = "0x1D3E6A0", VA = "0x181D3F6A0")]
private void GADODEBHGIA()
{
Coroutine mjeplmpjlil = this.MJEPLMPJLIL;
if (mjeplmpjlil != 0)
{
base.StopCoroutine(mjeplmpjlil);
this.MJEPLMPJLIL = (ulong)0L;
return;
}
this.MJEPLMPJLIL = (ulong)0L;
}
// Token: 0x06012F9B RID: 77723 RVA: 0x00455964 File Offset: 0x00453B64
[Token(Token = "0x6012F9B")]
[Address(RVA = "0x1D40250", Offset = "0x1D3F250", VA = "0x181D40250")]
private IEnumerator LDIOLMPCPKO()
{
/*
An exception occurred when decompiling this method (06012F9B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.IEnumerator RecRoom.Tools.Weapons.WeaponReloader::LDIOLMPCPKO()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
call:void(CIJEKHDBNIA::System.IDisposable.Dispose, ldloc:CIJEKHDBNIA(var_0))
stfld:int32(CIJEKHDBNIA::<>1__state, ldloc:CIJEKHDBNIA(var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](0)))
stfld:WeaponReloader(CIJEKHDBNIA::<>4__this, ldloc:CIJEKHDBNIA(var_0), ldloc:WeaponReloader(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: 0x06012F9C RID: 77724 RVA: 0x00455988 File Offset: 0x00453B88
[Token(Token = "0x6012F9C")]
[Address(RVA = "0x1D3F5B0", Offset = "0x1D3E5B0", VA = "0x181D3F5B0")]
private void ECFPALFHBHG(bool CDFHDACBFKN)
{
Quaternion gicdoidpckn = this.GICDOIDPCKN;
float z = this.JNJIAPLPIGB.z;
}
// Token: 0x06012F9D RID: 77725 RVA: 0x004559A8 File Offset: 0x00453BA8
[Token(Token = "0x6012F9D")]
[Address(RVA = "0x1D3F630", Offset = "0x1D3E630", VA = "0x181D3F630")]
private IEnumerator FKDLDMKBFEK(float HMHIMJBPKJF)
{
/*
An exception occurred when decompiling this method (06012F9D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.IEnumerator RecRoom.Tools.Weapons.WeaponReloader::FKDLDMKBFEK(System.Single)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
call:void(FADPLMHEKKG::System.IDisposable.Dispose, ldloc:FADPLMHEKKG(var_0))
stfld:float32(FADPLMHEKKG::returnDistance, ldloc:FADPLMHEKKG(var_0), ldloc:float32(HMHIMJBPKJF))
stfld:int32(FADPLMHEKKG::<>1__state, ldloc:FADPLMHEKKG(var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](0)))
stfld:WeaponReloader(FADPLMHEKKG::<>4__this, ldloc:FADPLMHEKKG(var_0), ldloc:WeaponReloader(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: 0x06012F9E RID: 77726 RVA: 0x004559D4 File Offset: 0x00453BD4
[Token(Token = "0x6012F9E")]
[Address(RVA = "0x1D3F8B0", Offset = "0x1D3E8B0", VA = "0x181D3F8B0")]
private void HOGCECKPMPB()
{
if (this.<BABGDIBCNEO>k__BackingField)
{
if (this.reloaderType == WeaponReloader.OFIHDMNINPD.PULL)
{
float magazineAmmunitionNormalized = this.parentWeapon.CGOPGIAIOIK;
}
PlungerRigidbodyPickup gnfgolpheai = this.GNFGOLPHEAI;
int num = 0;
float num2;
float num3;
if (gnfgolpheai != num && this._tool.FNFNLDBILFE && !this._tool.<LPPHFOBBGNL>k__BackingField)
{
PlungerRigidbodyPickup gnfgolpheai2 = this.GNFGOLPHEAI;
num2 = this.GPAHAFBLMIG;
num3 = gnfgolpheai2.CurrentDistance;
num2 = Mathf.InverseLerp((float)0, num2, num3);
}
Weapon parentWeapon = this.parentWeapon;
num3 = num2;
int johdlnmalma = WeaponReloader.JOHDLNMALMA;
parentWeapon.SetAnimationFloat(johdlnmalma, num3);
}
}
// Token: 0x06012F9F RID: 77727 RVA: 0x00455A78 File Offset: 0x00453C78
[Token(Token = "0x6012F9F")]
[Address(RVA = "0x1D40B50", Offset = "0x1D3FB50", VA = "0x181D40B50")]
private void PPCFMBJFAGG()
{
PlungerRigidbodyPickup gnfgolpheai = this.GNFGOLPHEAI;
int num = 0;
if (gnfgolpheai != num)
{
WeaponReloader.OFIHDMNINPD ofihdmninpd = this.reloaderType;
if (ofihdmninpd != WeaponReloader.OFIHDMNINPD.PULL)
{
if (ofihdmninpd != WeaponReloader.OFIHDMNINPD.PUMP)
{
goto IL_82;
}
this.GNFGOLPHEAI.MinimumConstraintDistance = 0f;
}
Weapon parentWeapon = this.parentWeapon;
PlungerRigidbodyPickup gnfgolpheai2 = this.GNFGOLPHEAI;
float mkfdoogdodk = this.MKFDOOGDODK;
float magazineAmmunitionNormalized = parentWeapon.CGOPGIAIOIK;
float num2 = Mathf.Lerp((float)0, mkfdoogdodk, magazineAmmunitionNormalized);
gnfgolpheai2.MinimumConstraintDistance = num2;
PlungerRigidbodyPickup gnfgolpheai3 = this.GNFGOLPHEAI;
float mkfdoogdodk2 = this.MKFDOOGDODK;
gnfgolpheai3.MaximumConstraintDistance = mkfdoogdodk2;
IL_82:
PlungerRigidbodyPickup gnfgolpheai4 = this.GNFGOLPHEAI;
float num3 = this.extraPullDistance;
gnfgolpheai4.MaximumConstraintDistance = num3;
}
}
// Token: 0x06012FA0 RID: 77728 RVA: 0x00455B28 File Offset: 0x00453D28
[Token(Token = "0x6012FA0")]
[Address(RVA = "0x1D3F6E0", Offset = "0x1D3E6E0", VA = "0x181D3F6E0")]
private void GDFPOLCEBCJ(DelayedRangedWeaponTrigger OOONNFPBMKC)
{
if (this.<BABGDIBCNEO>k__BackingField)
{
float num = this.reloaderAnimationBlendWhileFiring;
Weapon parentWeapon = this.parentWeapon;
float num2 = this.reloaderAnimationBlendWhileFiring;
int johdlnmalma = WeaponReloader.JOHDLNMALMA;
parentWeapon.SetAnimationFloat(johdlnmalma, num2);
this.<BABGDIBCNEO>k__BackingField = false;
}
}
// Token: 0x06012FA1 RID: 77729 RVA: 0x00455B74 File Offset: 0x00453D74
[Token(Token = "0x6012FA1")]
[Address(RVA = "0x1D40B40", Offset = "0x1D3FB40", VA = "0x181D40B40")]
private void PBBPDKFNPKG(DelayedRangedWeaponTrigger OOONNFPBMKC)
{
bool flag = this.animateParentWeaponReloader;
this.<BABGDIBCNEO>k__BackingField = flag;
}
// Token: 0x06012FA2 RID: 77730 RVA: 0x00455B90 File Offset: 0x00453D90
[Token(Token = "0x6012FA2")]
[Address(RVA = "0x1D40300", Offset = "0x1D3F300", VA = "0x181D40300")]
private bool LPLIIBBAAOI(Tool NBHJPDBHDHB, Player JKPGNHBEMOK, Vector3 JEDLNAEEMEN, bool GEJJBENPHJG)
{
return this.parentWeapon.KKCCBKKKAKF != 0 || this.parentWeapon.hasInfiniteReserveAmmunition;
}
// Token: 0x06012FA3 RID: 77731 RVA: 0x00455BC0 File Offset: 0x00453DC0
[Token(Token = "0x6012FA3")]
[Address(RVA = "0x1D3FA30", Offset = "0x1D3EA30", VA = "0x181D3FA30")]
private void ICJOIHKKABO(float GKBMLDJDEEE)
{
if (this._tool.FNFNLDBILFE)
{
Weapon parentWeapon = this.parentWeapon;
int num = 0;
if (!(parentWeapon == num) && this.parentWeapon._tool.FNFNLDBILFE)
{
RecRoomAudioClip recRoomAudioClip = this.pullTickAudio;
if (recRoomAudioClip != 0)
{
float num2 = GKBMLDJDEEE * 0.45f;
recRoomAudioClip.pitchShift = num2;
Transform transform = base.transform;
int num3 = 0;
int num4 = 0;
SFXAudioSource sfxaudioSource = AudioManager.Play3DSFX(recRoomAudioClip, transform, num4, num3);
}
Tool tool = this.parentWeapon._tool;
if (tool.<BIPMAHKMNKF>k__BackingField)
{
PlayerHand <PBCNKLKCIHJ>k__BackingField = tool.<PBCNKLKCIHJ>k__BackingField;
int num5 = 0;
if (<PBCNKLKCIHJ>k__BackingField != num5)
{
PlayerHand <PBCNKLKCIHJ>k__BackingField2 = this.parentWeapon._tool.<PBCNKLKCIHJ>k__BackingField;
Tool tool2 = this._tool;
if (tool2.<BIPMAHKMNKF>k__BackingField)
{
PlayerHand <PBCNKLKCIHJ>k__BackingField3 = tool2.<PBCNKLKCIHJ>k__BackingField;
int num6 = 0;
if (<PBCNKLKCIHJ>k__BackingField3 != num6)
{
PlayerHand <PBCNKLKCIHJ>k__BackingField4 = this._tool.<PBCNKLKCIHJ>k__BackingField;
this._tool.<PBCNKLKCIHJ>k__BackingField.Vibrate(20, 0.5f);
this.parentWeapon._tool.<PBCNKLKCIHJ>k__BackingField.Vibrate(20, 0.5f);
}
}
}
}
}
}
}
// Token: 0x06012FA4 RID: 77732 RVA: 0x00455CF8 File Offset: 0x00453EF8
[Token(Token = "0x6012FA4")]
[Address(RVA = "0x1D40EF0", Offset = "0x1D3FEF0", VA = "0x181D40EF0")]
public WeaponReloader()
{
float z = Vector3.zero.z;
this.JNJIAPLPIGB.z = z;
Quaternion identity = Quaternion.identity;
float z2 = Vector3.zero.z;
this.HABNDFDLPCM.z = z2;
base..ctor();
}
// Token: 0x06012FA6 RID: 77734 RVA: 0x00455D98 File Offset: 0x00453F98
[Token(Token = "0x6012FA6")]
[Address(RVA = "0x1D402B0", Offset = "0x1D3F2B0", VA = "0x181D402B0")]
[CompilerGenerated]
private void LNHANACJAIF()
{
Quaternion gicdoidpckn = this.GICDOIDPCKN;
float z = this.JNJIAPLPIGB.z;
}
// Token: 0x0400C37B RID: 50043
[Token(Token = "0x400C37B")]
private const float BMILAAPFFNO = 0.99f;
// Token: 0x0400C37C RID: 50044
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x400C37C")]
[SerializeField]
[Header("Reloader")]
private WeaponReloader.OFIHDMNINPD reloaderType = (WeaponReloader.OFIHDMNINPD)((ulong)1L);
// Token: 0x0400C37D RID: 50045
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x400C37D")]
[SerializeField]
private Transform emptyClipTransform;
// Token: 0x0400C37E RID: 50046
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x400C37E")]
[SerializeField]
private Transform fullClipTransform;
// Token: 0x0400C37F RID: 50047
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x400C37F")]
[SerializeField]
private float extraPullDistance = 0.05f;
// Token: 0x0400C380 RID: 50048
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x400C380")]
[SerializeField]
[Header("Feedback")]
private RecRoomAudioClip pullTickAudio;
// Token: 0x0400C381 RID: 50049
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x400C381")]
[SerializeField]
private int pullTickCount = (int)((ulong)10L);
// Token: 0x0400C382 RID: 50050
[FieldOffset(Offset = "0x94")]
[Token(Token = "0x400C382")]
[SerializeField]
private float returnToConstraintSpeed = 20f;
// Token: 0x0400C383 RID: 50051
[FieldOffset(Offset = "0x98")]
[Token(Token = "0x400C383")]
[SerializeField]
[Header("Weapon Animation")]
private bool animateParentWeaponReloader;
// Token: 0x0400C384 RID: 50052
[FieldOffset(Offset = "0x9C")]
[Token(Token = "0x400C384")]
[SerializeField]
private float reloaderAnimationBlendWhileFiring = -1f;
// Token: 0x0400C385 RID: 50053
[Token(Token = "0x400C385")]
private static readonly int JOHDLNMALMA = Animator.StringToHash("ReloaderBlend");
// Token: 0x0400C386 RID: 50054
[Token(Token = "0x400C386")]
private const float ADLODEJNHEB = 0.45f;
// Token: 0x0400C387 RID: 50055
[FieldOffset(Offset = "0xA0")]
[Token(Token = "0x400C387")]
[NonSerialized]
public bool ReloadsAutomatically = true;
// Token: 0x0400C388 RID: 50056
[FieldOffset(Offset = "0xA8")]
[Token(Token = "0x400C388")]
[SerializeField]
[OAGJHJAIMMP(FHBJCBPFODN.SelfAndParent, false, false, false)]
private DelayedRangedWeaponTrigger delayedWeaponTrigger;
// Token: 0x0400C389 RID: 50057
[FieldOffset(Offset = "0xB0")]
[Token(Token = "0x400C389")]
private PlungerRigidbodyPickup GNFGOLPHEAI;
// Token: 0x0400C38A RID: 50058
[FieldOffset(Offset = "0xB8")]
[Token(Token = "0x400C38A")]
private Vector3 JNJIAPLPIGB;
// Token: 0x0400C38B RID: 50059
[FieldOffset(Offset = "0xC4")]
[Token(Token = "0x400C38B")]
private Quaternion GICDOIDPCKN;
// Token: 0x0400C38C RID: 50060
[FieldOffset(Offset = "0xD4")]
[Token(Token = "0x400C38C")]
private Vector3 HABNDFDLPCM;
// Token: 0x0400C38D RID: 50061
[FieldOffset(Offset = "0xE0")]
[Token(Token = "0x400C38D")]
private float MKFDOOGDODK;
// Token: 0x0400C38E RID: 50062
[FieldOffset(Offset = "0xE4")]
[Token(Token = "0x400C38E")]
private float GPAHAFBLMIG;
// Token: 0x0400C38F RID: 50063
[FieldOffset(Offset = "0xE8")]
[Token(Token = "0x400C38F")]
private bool AFHFMMDPEFB;
// Token: 0x0400C390 RID: 50064
[FieldOffset(Offset = "0xEC")]
[Token(Token = "0x400C390")]
private float NLFNFGNNBNF;
// Token: 0x0400C391 RID: 50065
[FieldOffset(Offset = "0xF0")]
[Token(Token = "0x400C391")]
private float? HMHIMJBPKJF;
// Token: 0x0400C392 RID: 50066
[FieldOffset(Offset = "0xF8")]
[Token(Token = "0x400C392")]
private IDisposable AENELEOCFPJ;
// Token: 0x0400C394 RID: 50068
[FieldOffset(Offset = "0x108")]
[Token(Token = "0x400C394")]
private Coroutine MJEPLMPJLIL;
// Token: 0x02002C5A RID: 11354
[Token(Token = "0x2002C5A")]
private enum OFIHDMNINPD
{
// Token: 0x0400C396 RID: 50070
[Token(Token = "0x400C396")]
PUMP,
// Token: 0x0400C397 RID: 50071
[Token(Token = "0x400C397")]
PULL
}
}
}