using System; using System.Runtime.InteropServices; using Cpp2IlInjected; using Photon.Pun; using RecRoom.Core.Combat; using RecRoom.Core.Pools; using RecRoom.Networking.SynchronizedFields; using UnityEngine; namespace RecRoom.Tools.Weapons { // Token: 0x02002679 RID: 9849 [Token(Token = "0x2002679")] [StructLayout(3)] public class ChargeGun : RangedWeapon { // Token: 0x17002E64 RID: 11876 // (get) Token: 0x0601115D RID: 69981 RVA: 0x0040751C File Offset: 0x0040571C [Token(Token = "0x17002E64")] private float ADANMKIMIOD { [Token(Token = "0x601115D")] [Address(RVA = "0x193C640", Offset = "0x193B040", VA = "0x18193C640")] get { /* An exception occurred when decompiling this method (0601115D) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Single RecRoom.Tools.Weapons.ChargeGun::ODGLMJEGEPC() ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: stloc:float64(var_1_07, callgetter:float64(PhotonNetwork::get_Time)) } 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: 0x17002E65 RID: 11877 // (get) Token: 0x0601115E RID: 69982 RVA: 0x00407530 File Offset: 0x00405730 // (set) Token: 0x0601115F RID: 69983 RVA: 0x00407550 File Offset: 0x00405750 [Token(Token = "0x17002E65")] private bool DJNLHFNFIKA { [Token(Token = "0x601115E")] [Address(RVA = "0x193C0F0", Offset = "0x193AAF0", VA = "0x18193C0F0")] get { return this.NLBEOHMNEGO.Get() != null; } [Token(Token = "0x601115F")] [Address(RVA = "0x193C140", Offset = "0x193AB40", VA = "0x18193C140")] set { if (this.NLBEOHMNEGO.Get() == 0) { SynchronizedField ghbmjkkecpm = this.GHBMJKKECPM; double time = PhotonNetwork.Time; } SynchronizedField nlbeohmnego = this.NLBEOHMNEGO; } } // Token: 0x17002E66 RID: 11878 // (get) Token: 0x06011160 RID: 69984 RVA: 0x00407588 File Offset: 0x00405788 [Token(Token = "0x17002E66")] private float OLEOICPGCFD { [Token(Token = "0x6011160")] [Address(RVA = "0x193BC20", Offset = "0x193A620", VA = "0x18193BC20")] get { double time = PhotonNetwork.Time; SynchronizedField ghbmjkkecpm = this.GHBMJKKECPM; float num = ghbmjkkecpm.Get(); throw new NullReferenceException(); } } // Token: 0x17002E67 RID: 11879 // (get) Token: 0x06011161 RID: 69985 RVA: 0x004075B4 File Offset: 0x004057B4 [Token(Token = "0x17002E67")] private float BACGDPEOEMN { [Token(Token = "0x6011161")] [Address(RVA = "0x193BF10", Offset = "0x193A910", VA = "0x18193BF10")] get { float num = this.maxChargeTime; float num2 = this.OLEOICPGCFD; float num3 = Mathf.InverseLerp((float)0, num, num2); AnimationCurve animationCurve = this.chargeCurve; num = num3; return Mathf.Clamp01(animationCurve.Evaluate(num)); } } // Token: 0x06011162 RID: 69986 RVA: 0x004075F4 File Offset: 0x004057F4 [Token(Token = "0x6011162")] [Address(RVA = "0x193C2B0", Offset = "0x193ACB0", VA = "0x18193C2B0")] private void GDPCAAHGLJN(Tool NBHJPDBHDHB) { if (!base.hasAuthority) { return; } if (!base.NOOCGFJOMEM) { bool isCompleted = ((IAsyncResult)this).IsCompleted; return; } if (!base.MJDHKAHMGMO && !base.LAJLNCJKALH) { this.DJNLHFNFIKA = true; return; } this._weaponAudio.OnMisfire(); } // Token: 0x06011163 RID: 69987 RVA: 0x00407648 File Offset: 0x00405848 [Token(Token = "0x6011163")] [Address(RVA = "0x193C3D0", Offset = "0x193ADD0", VA = "0x18193C3D0")] private void KBPEKMLDNHC(Tool NBHJPDBHDHB) { if (base.hasAuthority && this.NLBEOHMNEGO.Get() != 0) { int num = 0; this.DJNLHFNFIKA = num != 0; float num2 = this.BACGDPEOEMN; bool isCompleted = ((IAsyncResult)this).IsCompleted; return; } } // Token: 0x06011164 RID: 69988 RVA: 0x0040768C File Offset: 0x0040588C [Token(Token = "0x6011164")] [Address(RVA = "0x193C240", Offset = "0x193AC40", VA = "0x18193C240")] private void FIECILCCNFD(Tool NBHJPDBHDHB) { if (base.hasAuthority && this.NLBEOHMNEGO.Get() != 0) { int num = 0; this.DJNLHFNFIKA = num != 0; return; } } // Token: 0x06011165 RID: 69989 RVA: 0x004076C0 File Offset: 0x004058C0 [Token(Token = "0x6011165")] [Address(RVA = "0x193C690", Offset = "0x193B090", VA = "0x18193C690", Slot = "42")] protected override void OICJPFPBIIK(Vector3 DDHPAFKBMON, Quaternion IGPENJBJADK, Vector3 NHAOMEMANJA, float LFDFFDCJAAD, bool FLKHKHDBIOH, byte LNPHJIHHNPN) { float z = NHAOMEMANJA.z; float z2 = DDHPAFKBMON.z; float z3 = NHAOMEMANJA.z; float z4 = DDHPAFKBMON.z; } // Token: 0x06011166 RID: 69990 RVA: 0x004076EC File Offset: 0x004058EC [Token(Token = "0x6011166")] [Address(RVA = "0x193BCD0", Offset = "0x193A6D0", VA = "0x18193BCD0", Slot = "13")] protected override void Awake() { base.Awake(); Action action = new Action(this.LIGHPMIHPCL); int num; int num2; SynchronizedField synchronizedField = new SynchronizedField(this, "IS_CHARGING", num, (SetterPermissionMode)num2, action, num2); num2 = 0; num = 0; this.NLBEOHMNEGO = synchronizedField; SynchronizedField synchronizedField2 = new SynchronizedField(this, "CHARGE_START_TIME", num, (SetterPermissionMode)num2, num2, num2); this.GHBMJKKECPM = synchronizedField2; Tool tool = this._tool; int num3 = 0; if (tool != num3) { Tool tool2 = this._tool; ActionEvent inputDownEvent = tool2.InputDownEvent; Action action2 = new Action(this.GDPCAAHGLJN); ActionEvent actionEvent = inputDownEvent + action2; tool2.InputDownEvent = actionEvent; Tool tool3 = this._tool; ActionEvent inputUpEvent = tool3.InputUpEvent; Action action3 = new Action(this.KBPEKMLDNHC); ActionEvent actionEvent2 = inputUpEvent + action3; tool3.InputUpEvent = actionEvent2; Tool tool4 = this._tool; ActionEvent inputCancelledEvent = tool4.InputCancelledEvent; Action action4 = new Action(this.FIECILCCNFD); ActionEvent actionEvent3 = inputCancelledEvent + action4; tool4.InputCancelledEvent = actionEvent3; } } // Token: 0x06011167 RID: 69991 RVA: 0x004077FC File Offset: 0x004059FC [Token(Token = "0x6011167")] [Address(RVA = "0x193C7D0", Offset = "0x193B1D0", VA = "0x18193C7D0", Slot = "14")] protected override void OnDestroy() { base.OnDestroy(); Tool tool = this._tool; int num = 0; if (tool != num) { Tool tool2 = this._tool; ActionEvent inputDownEvent = tool2.InputDownEvent; Action action = new Action(this.GDPCAAHGLJN); ActionEvent actionEvent = inputDownEvent - action; tool2.InputDownEvent = actionEvent; Tool tool3 = this._tool; ActionEvent inputUpEvent = tool3.InputUpEvent; Action action2 = new Action(this.KBPEKMLDNHC); ActionEvent actionEvent2 = inputUpEvent - action2; tool3.InputUpEvent = actionEvent2; Tool tool4 = this._tool; ActionEvent inputCancelledEvent = tool4.InputCancelledEvent; Action action3 = new Action(this.FIECILCCNFD); ActionEvent actionEvent3 = inputCancelledEvent - action3; tool4.InputCancelledEvent = actionEvent3; } } // Token: 0x06011168 RID: 69992 RVA: 0x004078C0 File Offset: 0x00405AC0 [Token(Token = "0x6011168")] [Address(RVA = "0x193C960", Offset = "0x193B360", VA = "0x18193C960", Slot = "17")] protected override void Start() { base.Start(); this.LIGHPMIHPCL(); } // Token: 0x06011169 RID: 69993 RVA: 0x004078DC File Offset: 0x00405ADC [Token(Token = "0x6011169")] [Address(RVA = "0x193C460", Offset = "0x193AE60", VA = "0x18193C460")] private void LIGHPMIHPCL() { if (this.NLBEOHMNEGO.Get() == 0) { this.IOJDCBKBPKC(); this._weaponAudio.OnStopCharge(); if (this._weaponAudio.LIBPLCAGHKI) { this._weaponAudio.OnFullyChargedLoopStop(); } return; } this.IOJDCBKBPKC(); PooledParticle pooledParticle = this.chargeParticlePrefab; int num = 0; if (pooledParticle != num) { GlobalPool instance = GlobalPool.ONCPNMDGGKG; PooledParticle pooledParticle2 = this.chargeParticlePrefab; PooledParticle pooledParticle3 = instance.Acquire(pooledParticle2); this.OIHJPCBJPMH = pooledParticle3; int num2 = 0; if (pooledParticle3 != num2) { PooledParticle oihjpcbjpmh = this.OIHJPCBJPMH; Transform muzzleFlashOrigin = this.muzzleFlashOrigin; oihjpcbjpmh.Play(muzzleFlashOrigin, true, -1f); } } WeaponAudio weaponAudio = this._weaponAudio; float num3 = this.OLEOICPGCFD; weaponAudio.OnCharge(num3); } // Token: 0x0601116A RID: 69994 RVA: 0x004079AC File Offset: 0x00405BAC [Token(Token = "0x601116A")] [Address(RVA = "0x193C980", Offset = "0x193B380", VA = "0x18193C980")] private void Update() { if (this.NLBEOHMNEGO.Get() != 0) { float num = this.BACGDPEOEMN; if (!this._weaponAudio.LIBPLCAGHKI) { this._weaponAudio.OnStopCharge(); this._weaponAudio.OnFullyChargedLoopStart(); return; } } } // Token: 0x0601116B RID: 69995 RVA: 0x004079FC File Offset: 0x00405BFC [Token(Token = "0x601116B")] [Address(RVA = "0x193BFC0", Offset = "0x193A9C0", VA = "0x18193BFC0")] private void CHMFCMEABBC() { this.IOJDCBKBPKC(); PooledParticle pooledParticle = this.chargeParticlePrefab; int num = 0; if (pooledParticle != num) { GlobalPool instance = GlobalPool.ONCPNMDGGKG; PooledParticle pooledParticle2 = this.chargeParticlePrefab; PooledParticle pooledParticle3 = instance.Acquire(pooledParticle2); this.OIHJPCBJPMH = pooledParticle3; int num2 = 0; if (pooledParticle3 != num2) { PooledParticle oihjpcbjpmh = this.OIHJPCBJPMH; Transform muzzleFlashOrigin = this.muzzleFlashOrigin; oihjpcbjpmh.Play(muzzleFlashOrigin, true, -1f); } } } // Token: 0x0601116C RID: 69996 RVA: 0x00407A78 File Offset: 0x00405C78 [Token(Token = "0x601116C")] [Address(RVA = "0x193C340", Offset = "0x193AD40", VA = "0x18193C340")] private void IOJDCBKBPKC() { PooledParticle oihjpcbjpmh = this.OIHJPCBJPMH; int num = 0; if (oihjpcbjpmh != num) { this.OIHJPCBJPMH.Stop(); this.OIHJPCBJPMH = (ulong)0L; } } // Token: 0x0601116D RID: 69997 RVA: 0x00407AB4 File Offset: 0x00405CB4 [Token(Token = "0x601116D")] [Address(RVA = "0x193CA20", Offset = "0x193B420", VA = "0x18193CA20")] public ChargeGun() { } // Token: 0x0400B5B6 RID: 46518 [global::Cpp2IlInjected.FieldOffset(Offset = "0x2E8")] [Token(Token = "0x400B5B6")] [SerializeField] [Header("Charging")] private float maxChargeTime = 2.5f; // Token: 0x0400B5B7 RID: 46519 [global::Cpp2IlInjected.FieldOffset(Offset = "0x2F0")] [Token(Token = "0x400B5B7")] [SerializeField] private AnimationCurve chargeCurve; // Token: 0x0400B5B8 RID: 46520 [global::Cpp2IlInjected.FieldOffset(Offset = "0x2F8")] [Token(Token = "0x400B5B8")] [SerializeField] private PooledParticle chargeParticlePrefab; // Token: 0x0400B5B9 RID: 46521 [global::Cpp2IlInjected.FieldOffset(Offset = "0x300")] [Token(Token = "0x400B5B9")] private SynchronizedField NLBEOHMNEGO; // Token: 0x0400B5BA RID: 46522 [global::Cpp2IlInjected.FieldOffset(Offset = "0x308")] [Token(Token = "0x400B5BA")] private SynchronizedField GHBMJKKECPM; // Token: 0x0400B5BB RID: 46523 [global::Cpp2IlInjected.FieldOffset(Offset = "0x310")] [Token(Token = "0x400B5BB")] private PooledParticle OIHJPCBJPMH; } }