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

919 lines
35 KiB
C#

using System;
using System.Collections;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using RecRoom.Core;
using RecRoom.Core.Combat;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002685 RID: 9861
[Token(Token = "0x2002685")]
[StructLayout(3)]
public class WeaponReloader : WeaponAccessory
{
// Token: 0x17002E6E RID: 11886
// (get) Token: 0x060111C9 RID: 70089 RVA: 0x004097D8 File Offset: 0x004079D8
[Token(Token = "0x17002E6E")]
private int DGBHNIGIJLO
{
[Token(Token = "0x60111C9")]
[Address(RVA = "0x194E7A0", Offset = "0x194D1A0", VA = "0x18194E7A0")]
get
{
int num = this.pullTickCount;
return num + 1;
}
}
// Token: 0x17002E6F RID: 11887
// (get) Token: 0x060111CA RID: 70090 RVA: 0x004097F4 File Offset: 0x004079F4
// (set) Token: 0x060111CB RID: 70091 RVA: 0x00409808 File Offset: 0x00407A08
[Token(Token = "0x17002E6F")]
public bool FAMGOEKHBGF
{
[Token(Token = "0x60111CA")]
[Address(RVA = "0x97B0F0", Offset = "0x979AF0", VA = "0x18097B0F0")]
get;
[Token(Token = "0x60111CB")]
[Address(RVA = "0x97B120", Offset = "0x979B20", VA = "0x18097B120")]
set;
}
// Token: 0x060111CC RID: 70092 RVA: 0x0040981C File Offset: 0x00407A1C
[Token(Token = "0x60111CC")]
[Address(RVA = "0x194DFC0", Offset = "0x194C9C0", VA = "0x18194DFC0", 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;
ActionEvent<Tool> postPickupEvent = tool3.PostPickupEvent;
Action<Tool> action = new Action(this.HAAIALDMMEL);
ActionEvent<Tool> actionEvent = postPickupEvent + action;
tool3.PostPickupEvent = actionEvent;
Tool tool4 = this._tool;
ActionEvent<Tool> postReleaseEvent = tool4.PostReleaseEvent;
Action<Tool> action2 = new Action(this.OIOCPLEKMEK);
ActionEvent<Tool> actionEvent2 = postReleaseEvent + action2;
tool4.PostReleaseEvent = actionEvent2;
Tool tool5 = this._tool;
ActionEvent<Tool> postAttachEvent = tool5.PostAttachEvent;
Action<Tool> action3 = new Action(this.BLKAKANNEJP);
ActionEvent<Tool> actionEvent3 = postAttachEvent + action3;
tool5.PostAttachEvent = actionEvent3;
Tool tool6 = this._tool;
ActionEvent<Tool, Vector3, Quaternion, Vector3, bool> postResetEvent = tool6.PostResetEvent;
Action<Tool, Vector3, Quaternion, Vector3, bool> action4 = new Action(this.LBODGLNOABB);
ActionEvent<Tool> actionEvent4;
tool6.PostResetEvent = actionEvent4;
this._tool.rigidbodyEx.AddKinematic(this);
this._tool.ReleaseWithVelocity = false;
}
Weapon parentWeapon = this.parentWeapon;
int num2 = 0;
if (parentWeapon == num2)
{
goto IL_28C;
}
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_2A1;
}
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_28C:
Debug.LogError(base.name + " is missing weapon reference.");
IL_2A1:
Transform transform5 = this.fullClipTransform;
Transform transform6 = this.emptyClipTransform;
Vector3 vector3;
float z3 = vector3.z;
Vector3 vector4;
float z4 = vector4.z;
this.HABNDFDLPCM.z = z4;
float uniformScale = this._tool.rigidbodyEx.MKDHFENOFDO;
bool flag = this.animateParentWeaponReloader;
this.<BABGDIBCNEO>k__BackingField = flag;
this.GPAHAFBLMIG = uniformScale;
}
// Token: 0x060111CD RID: 70093 RVA: 0x00409B2C File Offset: 0x00407D2C
[Token(Token = "0x60111CD")]
[Address(RVA = "0x194F970", Offset = "0x194E370", VA = "0x18194F970", 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;
ActionEvent<Tool> postPickupEvent = tool2.PostPickupEvent;
Action<Tool> action = new Action(this.HAAIALDMMEL);
ActionEvent<Tool> actionEvent = postPickupEvent - action;
tool2.PostPickupEvent = actionEvent;
Tool tool3 = this._tool;
ActionEvent<Tool> postReleaseEvent = tool3.PostReleaseEvent;
Action<Tool> action2 = new Action(this.OIOCPLEKMEK);
ActionEvent<Tool> actionEvent2 = postReleaseEvent - action2;
tool3.PostReleaseEvent = actionEvent2;
Tool tool4 = this._tool;
ActionEvent<Tool> postAttachEvent = tool4.PostAttachEvent;
Action<Tool> action3 = new Action(this.BLKAKANNEJP);
ActionEvent<Tool> actionEvent3 = postAttachEvent - action3;
tool4.PostAttachEvent = actionEvent3;
Tool tool5 = this._tool;
ActionEvent<Tool, Vector3, Quaternion, Vector3, bool> postResetEvent = tool5.PostResetEvent;
Action<Tool, Vector3, Quaternion, Vector3, bool> action4 = new Action(this.LBODGLNOABB);
ActionEvent<Tool> actionEvent4;
tool5.PostResetEvent = actionEvent4;
}
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: 0x060111CE RID: 70094 RVA: 0x00409D30 File Offset: 0x00407F30
[Token(Token = "0x60111CE")]
[Address(RVA = "0x194FF60", Offset = "0x194E960", VA = "0x18194FF60", 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: 0x060111CF RID: 70095 RVA: 0x00409E2C File Offset: 0x0040802C
[Token(Token = "0x60111CF")]
[Address(RVA = "0x194FD80", Offset = "0x194E780", VA = "0x18194FD80")]
private void OnEnable()
{
if (!this._tool.<BIPMAHKMNKF>k__BackingField)
{
Quaternion gicdoidpckn = this.GICDOIDPCKN;
float z = this.JNJIAPLPIGB.z;
}
}
// Token: 0x060111D0 RID: 70096 RVA: 0x00409E60 File Offset: 0x00408060
[Token(Token = "0x60111D0")]
[Address(RVA = "0x194F2B0", Offset = "0x194DCB0", VA = "0x18194F2B0")]
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.Update(action);
this.AENELEOCFPJ = disposable;
return;
}
this.AENELEOCFPJ = (ulong)0L;
}
// Token: 0x060111D1 RID: 70097 RVA: 0x00409EE0 File Offset: 0x004080E0
[Token(Token = "0x60111D1")]
[Address(RVA = "0x194EFB0", Offset = "0x194D9B0", VA = "0x18194EFB0")]
private void JJGODHDABOH()
{
if (this._tool.hasAuthority && 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: 0x060111D2 RID: 70098 RVA: 0x0040A030 File Offset: 0x00408230
[Token(Token = "0x60111D2")]
[Address(RVA = "0x194F800", Offset = "0x194E200", VA = "0x18194F800")]
private void OICGKLMBONC()
{
float uniformScale = this._tool.rigidbodyEx.MKDHFENOFDO;
this.GPAHAFBLMIG = uniformScale;
}
// Token: 0x060111D3 RID: 70099 RVA: 0x0040A05C File Offset: 0x0040825C
[Token(Token = "0x60111D3")]
[Address(RVA = "0x194EA40", Offset = "0x194D440", VA = "0x18194EA40")]
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: 0x060111D4 RID: 70100 RVA: 0x0040A0CC File Offset: 0x004082CC
[Token(Token = "0x60111D4")]
[Address(RVA = "0x194F850", Offset = "0x194E250", VA = "0x18194F850")]
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.hasAuthority)
{
Action action = new Action(this.LNHANACJAIF);
Coroutine coroutine = this.EndOfFrameRoutine(action);
}
}
// Token: 0x060111D5 RID: 70101 RVA: 0x0040A140 File Offset: 0x00408340
[Token(Token = "0x60111D5")]
[Address(RVA = "0x194E690", Offset = "0x194D090", VA = "0x18194E690")]
private void BLKAKANNEJP(Tool EGFEJGHDNAI)
{
if (this.parentWeapon._tool.<BIPMAHKMNKF>k__BackingField && this._tool.hasAuthority && base.isActiveAndEnabled)
{
WeaponReloader.FADPLMHEKKG fadplmhekkg;
fadplmhekkg.System.IDisposable.Dispose();
fadplmhekkg.<>1__state = (int)((ulong)0L);
fadplmhekkg.<>4__this = this;
Coroutine coroutine = base.StartCoroutine(fadplmhekkg);
}
}
// Token: 0x060111D6 RID: 70102 RVA: 0x0040A19C File Offset: 0x0040839C
[Token(Token = "0x60111D6")]
[Address(RVA = "0x194F3E0", Offset = "0x194DDE0", VA = "0x18194F3E0")]
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: 0x060111D7 RID: 70103 RVA: 0x0040A1E0 File Offset: 0x004083E0
[Token(Token = "0x60111D7")]
[Address(RVA = "0x194E8C0", Offset = "0x194D2C0", VA = "0x18194E8C0", Slot = "10")]
protected override void FAFIPDEIOCK(Tool EGFEJGHDNAI)
{
base.FAFIPDEIOCK(EGFEJGHDNAI);
this.MIKJDLDPIEP();
}
// Token: 0x060111D8 RID: 70104 RVA: 0x0040A1FC File Offset: 0x004083FC
[Token(Token = "0x60111D8")]
[Address(RVA = "0x194E7B0", Offset = "0x194D1B0", VA = "0x18194E7B0", Slot = "8")]
protected override void CFODJFFPDFP(Tool EGFEJGHDNAI)
{
base.CFODJFFPDFP(EGFEJGHDNAI);
this.KBMDJLKAPNO();
}
// Token: 0x060111D9 RID: 70105 RVA: 0x0040A218 File Offset: 0x00408418
[Token(Token = "0x60111D9")]
[Address(RVA = "0x194E8B0", Offset = "0x194D2B0", VA = "0x18194E8B0", Slot = "9")]
protected override void ELJGGDGLEHE(RigidbodyEx PJBJCJPOOGL)
{
this.KBMDJLKAPNO();
}
// Token: 0x060111DA RID: 70106 RVA: 0x0040A22C File Offset: 0x0040842C
[Token(Token = "0x60111DA")]
[Address(RVA = "0x194F600", Offset = "0x194E000", VA = "0x18194F600")]
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: 0x060111DB RID: 70107 RVA: 0x0040A31C File Offset: 0x0040851C
[Token(Token = "0x60111DB")]
[Address(RVA = "0x194E7D0", Offset = "0x194D1D0", VA = "0x18194E7D0")]
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: 0x060111DC RID: 70108 RVA: 0x0040A36C File Offset: 0x0040856C
[Token(Token = "0x60111DC")]
[Address(RVA = "0x194E950", Offset = "0x194D350", VA = "0x18194E950")]
private void GADODEBHGIA()
{
Coroutine mjeplmpjlil = this.MJEPLMPJLIL;
if (mjeplmpjlil != 0)
{
base.StopCoroutine(mjeplmpjlil);
this.MJEPLMPJLIL = (ulong)0L;
return;
}
this.MJEPLMPJLIL = (ulong)0L;
}
// Token: 0x060111DD RID: 70109 RVA: 0x0040A3A0 File Offset: 0x004085A0
[Token(Token = "0x60111DD")]
[Address(RVA = "0x194F500", Offset = "0x194DF00", VA = "0x18194F500")]
private IEnumerator LDIOLMPCPKO()
{
/*
An exception occurred when decompiling this method (060111DD)
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: 0x060111DE RID: 70110 RVA: 0x0040A3C4 File Offset: 0x004085C4
[Token(Token = "0x60111DE")]
[Address(RVA = "0x194E860", Offset = "0x194D260", VA = "0x18194E860")]
private void ECFPALFHBHG(bool CDFHDACBFKN)
{
Quaternion gicdoidpckn = this.GICDOIDPCKN;
float z = this.JNJIAPLPIGB.z;
}
// Token: 0x060111DF RID: 70111 RVA: 0x0040A3E4 File Offset: 0x004085E4
[Token(Token = "0x60111DF")]
[Address(RVA = "0x194E8E0", Offset = "0x194D2E0", VA = "0x18194E8E0")]
private IEnumerator FKDLDMKBFEK(float HMHIMJBPKJF)
{
/*
An exception occurred when decompiling this method (060111DF)
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: 0x060111E0 RID: 70112 RVA: 0x0040A410 File Offset: 0x00408610
[Token(Token = "0x60111E0")]
[Address(RVA = "0x194EB60", Offset = "0x194D560", VA = "0x18194EB60")]
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: 0x060111E1 RID: 70113 RVA: 0x0040A4B4 File Offset: 0x004086B4
[Token(Token = "0x60111E1")]
[Address(RVA = "0x194FE00", Offset = "0x194E800", VA = "0x18194FE00")]
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: 0x060111E2 RID: 70114 RVA: 0x0040A564 File Offset: 0x00408764
[Token(Token = "0x60111E2")]
[Address(RVA = "0x194E990", Offset = "0x194D390", VA = "0x18194E990")]
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: 0x060111E3 RID: 70115 RVA: 0x0040A5B0 File Offset: 0x004087B0
[Token(Token = "0x60111E3")]
[Address(RVA = "0x194FDF0", Offset = "0x194E7F0", VA = "0x18194FDF0")]
private void PBBPDKFNPKG(DelayedRangedWeaponTrigger OOONNFPBMKC)
{
bool flag = this.animateParentWeaponReloader;
this.<BABGDIBCNEO>k__BackingField = flag;
}
// Token: 0x060111E4 RID: 70116 RVA: 0x0040A5CC File Offset: 0x004087CC
[Token(Token = "0x60111E4")]
[Address(RVA = "0x194F5B0", Offset = "0x194DFB0", VA = "0x18194F5B0")]
private bool LPLIIBBAAOI(Tool NBHJPDBHDHB, Player JKPGNHBEMOK, Vector3 JEDLNAEEMEN, bool GEJJBENPHJG)
{
return this.parentWeapon.KKCCBKKKAKF != 0 || this.parentWeapon.hasInfiniteReserveAmmunition;
}
// Token: 0x060111E5 RID: 70117 RVA: 0x0040A5FC File Offset: 0x004087FC
[Token(Token = "0x60111E5")]
[Address(RVA = "0x194ECE0", Offset = "0x194D6E0", VA = "0x18194ECE0")]
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: 0x060111E6 RID: 70118 RVA: 0x0040A734 File Offset: 0x00408934
[Token(Token = "0x60111E6")]
[Address(RVA = "0x19501A0", Offset = "0x194EBA0", VA = "0x1819501A0")]
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: 0x060111E8 RID: 70120 RVA: 0x0040A7D4 File Offset: 0x004089D4
[Token(Token = "0x60111E8")]
[Address(RVA = "0x194F560", Offset = "0x194DF60", VA = "0x18194F560")]
[CompilerGenerated]
private void LNHANACJAIF()
{
Quaternion gicdoidpckn = this.GICDOIDPCKN;
float z = this.JNJIAPLPIGB.z;
}
// Token: 0x0400B60D RID: 46605
[Token(Token = "0x400B60D")]
private const float BMILAAPFFNO = 0.99f;
// Token: 0x0400B60E RID: 46606
[global::Cpp2IlInjected.FieldOffset(Offset = "0x68")]
[Token(Token = "0x400B60E")]
[SerializeField]
[Header("Reloader")]
private WeaponReloader.OFIHDMNINPD reloaderType = (WeaponReloader.OFIHDMNINPD)((ulong)1L);
// Token: 0x0400B60F RID: 46607
[global::Cpp2IlInjected.FieldOffset(Offset = "0x70")]
[Token(Token = "0x400B60F")]
[SerializeField]
private Transform emptyClipTransform;
// Token: 0x0400B610 RID: 46608
[global::Cpp2IlInjected.FieldOffset(Offset = "0x78")]
[Token(Token = "0x400B610")]
[SerializeField]
private Transform fullClipTransform;
// Token: 0x0400B611 RID: 46609
[global::Cpp2IlInjected.FieldOffset(Offset = "0x80")]
[Token(Token = "0x400B611")]
[SerializeField]
private float extraPullDistance = 0.05f;
// Token: 0x0400B612 RID: 46610
[global::Cpp2IlInjected.FieldOffset(Offset = "0x88")]
[Token(Token = "0x400B612")]
[SerializeField]
[Header("Feedback")]
private RecRoomAudioClip pullTickAudio;
// Token: 0x0400B613 RID: 46611
[global::Cpp2IlInjected.FieldOffset(Offset = "0x90")]
[Token(Token = "0x400B613")]
[SerializeField]
private int pullTickCount = (int)((ulong)10L);
// Token: 0x0400B614 RID: 46612
[global::Cpp2IlInjected.FieldOffset(Offset = "0x94")]
[Token(Token = "0x400B614")]
[SerializeField]
private float returnToConstraintSpeed = 20f;
// Token: 0x0400B615 RID: 46613
[global::Cpp2IlInjected.FieldOffset(Offset = "0x98")]
[Token(Token = "0x400B615")]
[SerializeField]
[Header("Weapon Animation")]
private bool animateParentWeaponReloader;
// Token: 0x0400B616 RID: 46614
[global::Cpp2IlInjected.FieldOffset(Offset = "0x9C")]
[Token(Token = "0x400B616")]
[SerializeField]
private float reloaderAnimationBlendWhileFiring = -1f;
// Token: 0x0400B617 RID: 46615
[Token(Token = "0x400B617")]
private static readonly int JOHDLNMALMA = Animator.StringToHash("ReloaderBlend");
// Token: 0x0400B618 RID: 46616
[Token(Token = "0x400B618")]
private const float ADLODEJNHEB = 0.45f;
// Token: 0x0400B619 RID: 46617
[global::Cpp2IlInjected.FieldOffset(Offset = "0xA0")]
[Token(Token = "0x400B619")]
[NonSerialized]
public bool ReloadsAutomatically = true;
// Token: 0x0400B61A RID: 46618
[global::Cpp2IlInjected.FieldOffset(Offset = "0xA8")]
[Token(Token = "0x400B61A")]
[SerializeField]
[OCIDFHDICIP(JIBDPHMGEGO.SelfAndParent, false, false)]
private DelayedRangedWeaponTrigger delayedWeaponTrigger;
// Token: 0x0400B61B RID: 46619
[global::Cpp2IlInjected.FieldOffset(Offset = "0xB0")]
[Token(Token = "0x400B61B")]
private PlungerRigidbodyPickup GNFGOLPHEAI;
// Token: 0x0400B61C RID: 46620
[global::Cpp2IlInjected.FieldOffset(Offset = "0xB8")]
[Token(Token = "0x400B61C")]
private Vector3 JNJIAPLPIGB;
// Token: 0x0400B61D RID: 46621
[global::Cpp2IlInjected.FieldOffset(Offset = "0xC4")]
[Token(Token = "0x400B61D")]
private Quaternion GICDOIDPCKN;
// Token: 0x0400B61E RID: 46622
[global::Cpp2IlInjected.FieldOffset(Offset = "0xD4")]
[Token(Token = "0x400B61E")]
private Vector3 HABNDFDLPCM;
// Token: 0x0400B61F RID: 46623
[global::Cpp2IlInjected.FieldOffset(Offset = "0xE0")]
[Token(Token = "0x400B61F")]
private float MKFDOOGDODK;
// Token: 0x0400B620 RID: 46624
[global::Cpp2IlInjected.FieldOffset(Offset = "0xE4")]
[Token(Token = "0x400B620")]
private float GPAHAFBLMIG;
// Token: 0x0400B621 RID: 46625
[global::Cpp2IlInjected.FieldOffset(Offset = "0xE8")]
[Token(Token = "0x400B621")]
private bool AFHFMMDPEFB;
// Token: 0x0400B622 RID: 46626
[global::Cpp2IlInjected.FieldOffset(Offset = "0xEC")]
[Token(Token = "0x400B622")]
private float NLFNFGNNBNF;
// Token: 0x0400B623 RID: 46627
[global::Cpp2IlInjected.FieldOffset(Offset = "0xF0")]
[Token(Token = "0x400B623")]
private float? HMHIMJBPKJF;
// Token: 0x0400B624 RID: 46628
[global::Cpp2IlInjected.FieldOffset(Offset = "0xF8")]
[Token(Token = "0x400B624")]
private IDisposable AENELEOCFPJ;
// Token: 0x0400B626 RID: 46630
[global::Cpp2IlInjected.FieldOffset(Offset = "0x108")]
[Token(Token = "0x400B626")]
private Coroutine MJEPLMPJLIL;
// Token: 0x02002686 RID: 9862
[Token(Token = "0x2002686")]
private enum OFIHDMNINPD
{
// Token: 0x0400B628 RID: 46632
[Token(Token = "0x400B628")]
PUMP,
// Token: 0x0400B629 RID: 46633
[Token(Token = "0x400B629")]
PULL
}
}
}