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 postPickupEvent = tool3.PostPickupEvent; Action action = new Action(this.HAAIALDMMEL); MFBGLIHGCGO mfbglihgcgo = MFBGLIHGCGO.BPJDFPACLMK(postPickupEvent, action); tool3.PostPickupEvent = mfbglihgcgo; Tool tool4 = this._tool; MFBGLIHGCGO postReleaseEvent = tool4.PostReleaseEvent; Action action2 = new Action(this.OIOCPLEKMEK); MFBGLIHGCGO mfbglihgcgo2 = MFBGLIHGCGO.BPJDFPACLMK(postReleaseEvent, action2); tool4.PostReleaseEvent = mfbglihgcgo2; Tool tool5 = this._tool; MFBGLIHGCGO postAttachEvent = tool5.PostAttachEvent; Action action3 = new Action(this.BLKAKANNEJP); MFBGLIHGCGO mfbglihgcgo3 = MFBGLIHGCGO.BPJDFPACLMK(postAttachEvent, action3); tool5.PostAttachEvent = mfbglihgcgo3; Tool tool6 = this._tool; EAHPNACBLDD postResetEvent = tool6.PostResetEvent; Action action4 = new Action(this.LBODGLNOABB); EAHPNACBLDD 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.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 postPickupEvent = tool2.PostPickupEvent; Action action = new Action(this.HAAIALDMMEL); MFBGLIHGCGO mfbglihgcgo = MFBGLIHGCGO.GMNMHGMFGOL(postPickupEvent, action); tool2.PostPickupEvent = mfbglihgcgo; Tool tool3 = this._tool; MFBGLIHGCGO postReleaseEvent = tool3.PostReleaseEvent; Action action2 = new Action(this.OIOCPLEKMEK); MFBGLIHGCGO mfbglihgcgo2 = MFBGLIHGCGO.GMNMHGMFGOL(postReleaseEvent, action2); tool3.PostReleaseEvent = mfbglihgcgo2; Tool tool4 = this._tool; MFBGLIHGCGO postAttachEvent = tool4.PostAttachEvent; Action action3 = new Action(this.BLKAKANNEJP); MFBGLIHGCGO mfbglihgcgo3 = MFBGLIHGCGO.GMNMHGMFGOL(postAttachEvent, action3); tool4.PostAttachEvent = mfbglihgcgo3; Tool tool5 = this._tool; EAHPNACBLDD postResetEvent = tool5.PostResetEvent; Action action4 = new Action(this.LBODGLNOABB); EAHPNACBLDD 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.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.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.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.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.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.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.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.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.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.k__BackingField) { float num = this.reloaderAnimationBlendWhileFiring; Weapon parentWeapon = this.parentWeapon; float num2 = this.reloaderAnimationBlendWhileFiring; int johdlnmalma = WeaponReloader.JOHDLNMALMA; parentWeapon.SetAnimationFloat(johdlnmalma, num2); this.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.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.k__BackingField) { PlayerHand k__BackingField = tool.k__BackingField; int num5 = 0; if (k__BackingField != num5) { PlayerHand k__BackingField2 = this.parentWeapon._tool.k__BackingField; Tool tool2 = this._tool; if (tool2.k__BackingField) { PlayerHand k__BackingField3 = tool2.k__BackingField; int num6 = 0; if (k__BackingField3 != num6) { PlayerHand k__BackingField4 = this._tool.k__BackingField; this._tool.k__BackingField.Vibrate(20, 0.5f); this.parentWeapon._tool.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 } } }