using System; using System.Collections; using System.Runtime.CompilerServices; using Cpp2IlInjected; using RecRoom.Core.Combat; using UnityEngine; namespace RecRoom.Tools.Weapons { // Token: 0x02002B70 RID: 11120 [Token(Token = "0x2002B70")] public class WeaponReloader : WeaponAccessory { // Token: 0x17003434 RID: 13364 // (get) Token: 0x06012B48 RID: 76616 RVA: 0x0044B0E8 File Offset: 0x004492E8 [Token(Token = "0x17003434")] private int DGBHNIGIJLO { [Token(Token = "0x6012B48")] [Address(RVA = "0xBC5080", Offset = "0xBC3E80", VA = "0x180BC5080")] get { int num = this.pullTickCount; return num + 1; } } // Token: 0x17003435 RID: 13365 // (get) Token: 0x06012B49 RID: 76617 RVA: 0x0044B104 File Offset: 0x00449304 // (set) Token: 0x06012B4A RID: 76618 RVA: 0x0044B118 File Offset: 0x00449318 [Token(Token = "0x17003435")] public bool FAMGOEKHBGF { [Token(Token = "0x6012B49")] [Address(RVA = "0xBC6B10", Offset = "0xBC5910", VA = "0x180BC6B10")] get; [Token(Token = "0x6012B4A")] [Address(RVA = "0xBC6B20", Offset = "0xBC5920", VA = "0x180BC6B20")] set; } // Token: 0x06012B4B RID: 76619 RVA: 0x0044B12C File Offset: 0x0044932C [Token(Token = "0x6012B4B")] [Address(RVA = "0xBC4920", Offset = "0xBC3720", VA = "0x180BC4920", Slot = "5")] protected override void Awake() { 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)) { 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_263; } DelayedRangedWeaponTrigger delayedRangedWeaponTrigger2 = this.delayedWeaponTrigger; DelayedRangedWeaponTrigger.IOGLIBAPLLG ioglibapllg = new DelayedRangedWeaponTrigger.IOGLIBAPLLG(this.GDFPOLCEBCJ); delayedRangedWeaponTrigger2.ABHIBNPKAIN += ioglibapllg; DelayedRangedWeaponTrigger delayedRangedWeaponTrigger3 = this.delayedWeaponTrigger; DelayedRangedWeaponTrigger.IOGLIBAPLLG ioglibapllg2 = new DelayedRangedWeaponTrigger.IOGLIBAPLLG(this.PBBPDKFNPKG); delayedRangedWeaponTrigger3.JFPBBAHBCPN += ioglibapllg2; } Debug.LogError(base.name + " is missing weapon reference."); IL_263: 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: 0x06012B4C RID: 76620 RVA: 0x0044B410 File Offset: 0x00449610 [Token(Token = "0x6012B4C")] [Address(RVA = "0xBC6250", Offset = "0xBC5050", VA = "0x180BC6250", Slot = "7")] protected override void OnDestroy() { 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) { DelayedRangedWeaponTrigger delayedRangedWeaponTrigger2 = this.delayedWeaponTrigger; DelayedRangedWeaponTrigger.IOGLIBAPLLG ioglibapllg = new DelayedRangedWeaponTrigger.IOGLIBAPLLG(this.GDFPOLCEBCJ); delayedRangedWeaponTrigger2.ABHIBNPKAIN -= ioglibapllg; DelayedRangedWeaponTrigger delayedRangedWeaponTrigger3 = this.delayedWeaponTrigger; DelayedRangedWeaponTrigger.IOGLIBAPLLG ioglibapllg2 = new DelayedRangedWeaponTrigger.IOGLIBAPLLG(this.PBBPDKFNPKG); delayedRangedWeaponTrigger3.JFPBBAHBCPN -= ioglibapllg2; } } // Token: 0x06012B4D RID: 76621 RVA: 0x0044B5D4 File Offset: 0x004497D4 [Token(Token = "0x6012B4D")] [Address(RVA = "0xBC67D0", Offset = "0xBC55D0", VA = "0x180BC67D0", 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: 0x06012B4E RID: 76622 RVA: 0x0044B6D0 File Offset: 0x004498D0 [Token(Token = "0x6012B4E")] [Address(RVA = "0xBC65F0", Offset = "0xBC53F0", VA = "0x180BC65F0")] private void OnEnable() { if (!this._tool.k__BackingField) { Quaternion gicdoidpckn = this.GICDOIDPCKN; float z = this.JNJIAPLPIGB.z; } } // Token: 0x06012B4F RID: 76623 RVA: 0x0044B704 File Offset: 0x00449904 [Token(Token = "0x6012B4F")] [Address(RVA = "0xBC5B90", Offset = "0xBC4990", VA = "0x180BC5B90")] 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: 0x06012B50 RID: 76624 RVA: 0x0044B784 File Offset: 0x00449984 [Token(Token = "0x6012B50")] [Address(RVA = "0xBC5890", Offset = "0xBC4690", VA = "0x180BC5890")] 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: 0x06012B51 RID: 76625 RVA: 0x0044B8D4 File Offset: 0x00449AD4 [Token(Token = "0x6012B51")] [Address(RVA = "0xBC60E0", Offset = "0xBC4EE0", VA = "0x180BC60E0")] private void OICGKLMBONC() { float uniformScale = this._tool.rigidbodyEx.MKDHFENOFDO; this.GPAHAFBLMIG = uniformScale; } // Token: 0x06012B52 RID: 76626 RVA: 0x0044B900 File Offset: 0x00449B00 [Token(Token = "0x6012B52")] [Address(RVA = "0xBC5320", Offset = "0xBC4120", VA = "0x180BC5320")] 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: 0x06012B53 RID: 76627 RVA: 0x0044B970 File Offset: 0x00449B70 [Token(Token = "0x6012B53")] [Address(RVA = "0xBC6130", Offset = "0xBC4F30", VA = "0x180BC6130")] 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: 0x06012B54 RID: 76628 RVA: 0x0044B9E4 File Offset: 0x00449BE4 [Token(Token = "0x6012B54")] [Address(RVA = "0xBC4F70", Offset = "0xBC3D70", VA = "0x180BC4F70")] 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: 0x06012B55 RID: 76629 RVA: 0x0044BA48 File Offset: 0x00449C48 [Token(Token = "0x6012B55")] [Address(RVA = "0xBC5CC0", Offset = "0xBC4AC0", VA = "0x180BC5CC0")] 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: 0x06012B56 RID: 76630 RVA: 0x0044BA8C File Offset: 0x00449C8C [Token(Token = "0x6012B56")] [Address(RVA = "0xBC51A0", Offset = "0xBC3FA0", VA = "0x180BC51A0", Slot = "10")] protected override void FAFIPDEIOCK(Tool EGFEJGHDNAI) { base.FAFIPDEIOCK(EGFEJGHDNAI); this.MIKJDLDPIEP(); } // Token: 0x06012B57 RID: 76631 RVA: 0x0044BAA8 File Offset: 0x00449CA8 [Token(Token = "0x6012B57")] [Address(RVA = "0xBC5090", Offset = "0xBC3E90", VA = "0x180BC5090", Slot = "8")] protected override void CFODJFFPDFP(Tool EGFEJGHDNAI) { base.CFODJFFPDFP(EGFEJGHDNAI); this.KBMDJLKAPNO(); } // Token: 0x06012B58 RID: 76632 RVA: 0x0044BAC4 File Offset: 0x00449CC4 [Token(Token = "0x6012B58")] [Address(RVA = "0xBC5190", Offset = "0xBC3F90", VA = "0x180BC5190", Slot = "9")] protected override void ELJGGDGLEHE(RigidbodyEx PJBJCJPOOGL) { this.KBMDJLKAPNO(); } // Token: 0x06012B59 RID: 76633 RVA: 0x0044BAD8 File Offset: 0x00449CD8 [Token(Token = "0x6012B59")] [Address(RVA = "0xBC5EE0", Offset = "0xBC4CE0", VA = "0x180BC5EE0")] 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: 0x06012B5A RID: 76634 RVA: 0x0044BBC8 File Offset: 0x00449DC8 [Token(Token = "0x6012B5A")] [Address(RVA = "0xBC50B0", Offset = "0xBC3EB0", VA = "0x180BC50B0")] 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: 0x06012B5B RID: 76635 RVA: 0x0044BC18 File Offset: 0x00449E18 [Token(Token = "0x6012B5B")] [Address(RVA = "0xBC5230", Offset = "0xBC4030", VA = "0x180BC5230")] private void GADODEBHGIA() { Coroutine mjeplmpjlil = this.MJEPLMPJLIL; if (mjeplmpjlil != 0) { base.StopCoroutine(mjeplmpjlil); this.MJEPLMPJLIL = (ulong)0L; return; } this.MJEPLMPJLIL = (ulong)0L; } // Token: 0x06012B5C RID: 76636 RVA: 0x0044BC4C File Offset: 0x00449E4C [Token(Token = "0x6012B5C")] [Address(RVA = "0xBC5DE0", Offset = "0xBC4BE0", VA = "0x180BC5DE0")] private IEnumerator LDIOLMPCPKO() { /* An exception occurred when decompiling this method (06012B5C) 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 1660 */; } // Token: 0x06012B5D RID: 76637 RVA: 0x0044BC70 File Offset: 0x00449E70 [Token(Token = "0x6012B5D")] [Address(RVA = "0xBC5140", Offset = "0xBC3F40", VA = "0x180BC5140")] private void ECFPALFHBHG(bool CDFHDACBFKN) { Quaternion gicdoidpckn = this.GICDOIDPCKN; float z = this.JNJIAPLPIGB.z; } // Token: 0x06012B5E RID: 76638 RVA: 0x0044BC90 File Offset: 0x00449E90 [Token(Token = "0x6012B5E")] [Address(RVA = "0xBC51C0", Offset = "0xBC3FC0", VA = "0x180BC51C0")] private IEnumerator FKDLDMKBFEK(float HMHIMJBPKJF) { /* An exception occurred when decompiling this method (06012B5E) 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 1660 */; } // Token: 0x06012B5F RID: 76639 RVA: 0x0044BCBC File Offset: 0x00449EBC [Token(Token = "0x6012B5F")] [Address(RVA = "0xBC5440", Offset = "0xBC4240", VA = "0x180BC5440")] 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: 0x06012B60 RID: 76640 RVA: 0x0044BD60 File Offset: 0x00449F60 [Token(Token = "0x6012B60")] [Address(RVA = "0xBC6670", Offset = "0xBC5470", VA = "0x180BC6670")] 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: 0x06012B61 RID: 76641 RVA: 0x0044BE10 File Offset: 0x0044A010 [Token(Token = "0x6012B61")] [Address(RVA = "0xBC5270", Offset = "0xBC4070", VA = "0x180BC5270")] 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: 0x06012B62 RID: 76642 RVA: 0x0044BE5C File Offset: 0x0044A05C [Token(Token = "0x6012B62")] [Address(RVA = "0xBC6660", Offset = "0xBC5460", VA = "0x180BC6660")] private void PBBPDKFNPKG(DelayedRangedWeaponTrigger OOONNFPBMKC) { bool flag = this.animateParentWeaponReloader; this.k__BackingField = flag; } // Token: 0x06012B63 RID: 76643 RVA: 0x0044BE78 File Offset: 0x0044A078 [Token(Token = "0x6012B63")] [Address(RVA = "0xBC5E90", Offset = "0xBC4C90", VA = "0x180BC5E90")] private bool LPLIIBBAAOI(Tool NBHJPDBHDHB, Player JKPGNHBEMOK, Vector3 JEDLNAEEMEN, bool GEJJBENPHJG) { return this.parentWeapon.KKCCBKKKAKF != 0 || this.parentWeapon.hasInfiniteReserveAmmunition; } // Token: 0x06012B64 RID: 76644 RVA: 0x0044BEA8 File Offset: 0x0044A0A8 [Token(Token = "0x6012B64")] [Address(RVA = "0xBC55C0", Offset = "0xBC43C0", VA = "0x180BC55C0")] 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: 0x06012B65 RID: 76645 RVA: 0x0044BFE0 File Offset: 0x0044A1E0 [Token(Token = "0x6012B65")] [Address(RVA = "0xBC6A10", Offset = "0xBC5810", VA = "0x180BC6A10")] 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: 0x06012B67 RID: 76647 RVA: 0x0044C080 File Offset: 0x0044A280 [Token(Token = "0x6012B67")] [Address(RVA = "0xBC5E40", Offset = "0xBC4C40", VA = "0x180BC5E40")] [CompilerGenerated] private void LNHANACJAIF() { Quaternion gicdoidpckn = this.GICDOIDPCKN; float z = this.JNJIAPLPIGB.z; } // Token: 0x0400C167 RID: 49511 [Token(Token = "0x400C167")] private const float BMILAAPFFNO = 0.99f; // Token: 0x0400C168 RID: 49512 [FieldOffset(Offset = "0x68")] [Token(Token = "0x400C168")] [SerializeField] [Header("Reloader")] private WeaponReloader.OFIHDMNINPD reloaderType = (WeaponReloader.OFIHDMNINPD)((ulong)1L); // Token: 0x0400C169 RID: 49513 [FieldOffset(Offset = "0x70")] [Token(Token = "0x400C169")] [SerializeField] private Transform emptyClipTransform; // Token: 0x0400C16A RID: 49514 [FieldOffset(Offset = "0x78")] [Token(Token = "0x400C16A")] [SerializeField] private Transform fullClipTransform; // Token: 0x0400C16B RID: 49515 [FieldOffset(Offset = "0x80")] [Token(Token = "0x400C16B")] [SerializeField] private float extraPullDistance = 0.05f; // Token: 0x0400C16C RID: 49516 [FieldOffset(Offset = "0x88")] [Token(Token = "0x400C16C")] [SerializeField] [Header("Feedback")] private RecRoomAudioClip pullTickAudio; // Token: 0x0400C16D RID: 49517 [FieldOffset(Offset = "0x90")] [Token(Token = "0x400C16D")] [SerializeField] private int pullTickCount = (int)((ulong)10L); // Token: 0x0400C16E RID: 49518 [FieldOffset(Offset = "0x94")] [Token(Token = "0x400C16E")] [SerializeField] private float returnToConstraintSpeed = 20f; // Token: 0x0400C16F RID: 49519 [FieldOffset(Offset = "0x98")] [Token(Token = "0x400C16F")] [SerializeField] [Header("Weapon Animation")] private bool animateParentWeaponReloader; // Token: 0x0400C170 RID: 49520 [FieldOffset(Offset = "0x9C")] [Token(Token = "0x400C170")] [SerializeField] private float reloaderAnimationBlendWhileFiring = -1f; // Token: 0x0400C171 RID: 49521 [Token(Token = "0x400C171")] private static readonly int JOHDLNMALMA = Animator.StringToHash("ReloaderBlend"); // Token: 0x0400C172 RID: 49522 [Token(Token = "0x400C172")] private const float ADLODEJNHEB = 0.45f; // Token: 0x0400C173 RID: 49523 [FieldOffset(Offset = "0xA0")] [Token(Token = "0x400C173")] [NonSerialized] public bool ReloadsAutomatically = true; // Token: 0x0400C174 RID: 49524 [FieldOffset(Offset = "0xA8")] [Token(Token = "0x400C174")] [SerializeField] [OCIDFHDICIP(JIBDPHMGEGO.SelfAndParent, false, false, false)] private DelayedRangedWeaponTrigger delayedWeaponTrigger; // Token: 0x0400C175 RID: 49525 [FieldOffset(Offset = "0xB0")] [Token(Token = "0x400C175")] private PlungerRigidbodyPickup GNFGOLPHEAI; // Token: 0x0400C176 RID: 49526 [FieldOffset(Offset = "0xB8")] [Token(Token = "0x400C176")] private Vector3 JNJIAPLPIGB; // Token: 0x0400C177 RID: 49527 [FieldOffset(Offset = "0xC4")] [Token(Token = "0x400C177")] private Quaternion GICDOIDPCKN; // Token: 0x0400C178 RID: 49528 [FieldOffset(Offset = "0xD4")] [Token(Token = "0x400C178")] private Vector3 HABNDFDLPCM; // Token: 0x0400C179 RID: 49529 [FieldOffset(Offset = "0xE0")] [Token(Token = "0x400C179")] private float MKFDOOGDODK; // Token: 0x0400C17A RID: 49530 [FieldOffset(Offset = "0xE4")] [Token(Token = "0x400C17A")] private float GPAHAFBLMIG; // Token: 0x0400C17B RID: 49531 [FieldOffset(Offset = "0xE8")] [Token(Token = "0x400C17B")] private bool AFHFMMDPEFB; // Token: 0x0400C17C RID: 49532 [FieldOffset(Offset = "0xEC")] [Token(Token = "0x400C17C")] private float NLFNFGNNBNF; // Token: 0x0400C17D RID: 49533 [FieldOffset(Offset = "0xF0")] [Token(Token = "0x400C17D")] private float? HMHIMJBPKJF; // Token: 0x0400C17E RID: 49534 [FieldOffset(Offset = "0xF8")] [Token(Token = "0x400C17E")] private IDisposable AENELEOCFPJ; // Token: 0x0400C180 RID: 49536 [FieldOffset(Offset = "0x108")] [Token(Token = "0x400C180")] private Coroutine MJEPLMPJLIL; // Token: 0x02002B71 RID: 11121 [Token(Token = "0x2002B71")] private enum OFIHDMNINPD { // Token: 0x0400C182 RID: 49538 [Token(Token = "0x400C182")] PUMP, // Token: 0x0400C183 RID: 49539 [Token(Token = "0x400C183")] PULL } } }