using System; using System.Collections; using System.Runtime.InteropServices; using Cpp2IlInjected; using RecRoom.Core.Combat; using UnityEngine; namespace RecRoom.Tools.Weapons { // Token: 0x02002674 RID: 9844 [Token(Token = "0x2002674")] [StructLayout(3)] public class AutomaticGun : RangedWeapon { // Token: 0x17002E59 RID: 11865 // (get) Token: 0x06011129 RID: 69929 RVA: 0x00406540 File Offset: 0x00404740 [Token(Token = "0x17002E59")] public virtual bool PNJFDBBDPLK { [Token(Token = "0x6011129")] [Address(RVA = "0x15A3220", Offset = "0x15A1C20", VA = "0x1815A3220", Slot = "52")] get { if (this.MOHJLDOAEMP && base.NOOCGFJOMEM) { return !base.MJDHKAHMGMO; } } } // Token: 0x0601112A RID: 69930 RVA: 0x0040656C File Offset: 0x0040476C [Token(Token = "0x601112A")] [Address(RVA = "0x15A2670", Offset = "0x15A1070", VA = "0x1815A2670", Slot = "13")] protected override void Awake() { base.Awake(); Tool tool = this._tool; int num = 0; if (tool != num) { Tool tool2 = this._tool; ActionEvent postPickupEvent = tool2.PostPickupEvent; Action action = new Action(this.EOEEJHHPNNO); ActionEvent actionEvent = postPickupEvent + action; tool2.PostPickupEvent = actionEvent; Tool tool3 = this._tool; ActionEvent inputDownEvent = tool3.InputDownEvent; Action action2 = new Action(this.OnInputDown); ActionEvent actionEvent2 = inputDownEvent + action2; tool3.InputDownEvent = actionEvent2; Tool tool4 = this._tool; ActionEvent inputPressedEvent = tool4.InputPressedEvent; Action action3 = new Action(this.LKFFMLDMLAB); ActionEvent actionEvent3 = inputPressedEvent + action3; tool4.InputPressedEvent = actionEvent3; Tool tool5 = this._tool; ActionEvent inputUpEvent = tool5.InputUpEvent; Action action4 = new Action(this.OnInputUp); ActionEvent actionEvent4 = inputUpEvent + action4; tool5.InputUpEvent = actionEvent4; Tool tool6 = this._tool; ActionEvent inputCancelledEvent = tool6.InputCancelledEvent; Action action5 = new Action(this.FIECILCCNFD); ActionEvent actionEvent5 = inputCancelledEvent + action5; tool6.InputCancelledEvent = actionEvent5; } } // Token: 0x0601112B RID: 69931 RVA: 0x00406698 File Offset: 0x00404898 [Token(Token = "0x601112B")] [Address(RVA = "0x15A2F70", Offset = "0x15A1970", VA = "0x1815A2F70", Slot = "14")] protected override void OnDestroy() { base.OnDestroy(); Tool tool = this._tool; int num = 0; if (tool != num) { Tool tool2 = this._tool; ActionEvent postPickupEvent = tool2.PostPickupEvent; Action action = new Action(this.EOEEJHHPNNO); ActionEvent actionEvent = postPickupEvent - action; tool2.PostPickupEvent = actionEvent; Tool tool3 = this._tool; ActionEvent inputDownEvent = tool3.InputDownEvent; Action action2 = new Action(this.OnInputDown); ActionEvent actionEvent2 = inputDownEvent - action2; tool3.InputDownEvent = actionEvent2; Tool tool4 = this._tool; ActionEvent inputPressedEvent = tool4.InputPressedEvent; Action action3 = new Action(this.LKFFMLDMLAB); ActionEvent actionEvent3 = inputPressedEvent - action3; tool4.InputPressedEvent = actionEvent3; Tool tool5 = this._tool; ActionEvent inputUpEvent = tool5.InputUpEvent; Action action4 = new Action(this.OnInputUp); ActionEvent actionEvent4 = inputUpEvent - action4; tool5.InputUpEvent = actionEvent4; Tool tool6 = this._tool; ActionEvent inputCancelledEvent = tool6.InputCancelledEvent; Action action5 = new Action(this.FIECILCCNFD); ActionEvent actionEvent5 = inputCancelledEvent - action5; tool6.InputCancelledEvent = actionEvent5; } } // Token: 0x0601112C RID: 69932 RVA: 0x004067C4 File Offset: 0x004049C4 [Token(Token = "0x601112C")] [Address(RVA = "0x15A2AB0", Offset = "0x15A14B0", VA = "0x1815A2AB0")] private void EOEEJHHPNNO(Tool NBHJPDBHDHB) { this.MCJNFKDIACH = false; } // Token: 0x0601112D RID: 69933 RVA: 0x004067D8 File Offset: 0x004049D8 [Token(Token = "0x601112D")] [Address(RVA = "0x15A31B0", Offset = "0x15A1BB0", VA = "0x1815A31B0")] public void OnInputDown(Tool NBHJPDBHDHB) { this.MCJNFKDIACH = true; this.DDKKKPDMLEK(); } // Token: 0x0601112E RID: 69934 RVA: 0x004067F4 File Offset: 0x004049F4 [Token(Token = "0x601112E")] [Address(RVA = "0x15A2D10", Offset = "0x15A1710", VA = "0x1815A2D10")] private void LKFFMLDMLAB(Tool NBHJPDBHDHB) { if (this.MCJNFKDIACH && this.BEPNKDAGFBN <= (ulong)0L && base.NOOCGFJOMEM && !base.MJDHKAHMGMO && !base.LAJLNCJKALH) { this.DDKKKPDMLEK(); return; } } // Token: 0x0601112F RID: 69935 RVA: 0x00406838 File Offset: 0x00404A38 [Token(Token = "0x601112F")] [Address(RVA = "0x15A28B0", Offset = "0x15A12B0", VA = "0x1815A28B0")] private void DDKKKPDMLEK() { if (base.hasAuthority) { if (base.NOOCGFJOMEM) { if (!base.MJDHKAHMGMO && !base.LAJLNCJKALH) { this.IGIDNLPODPD(); } this._weaponAudio.OnMisfire(); } this.MIKJDLDPIEP(); } if (base.NOOCGFJOMEM && !base.MJDHKAHMGMO && !base.LAJLNCJKALH) { this.MOHJLDOAEMP = true; } } // Token: 0x06011130 RID: 69936 RVA: 0x004068A8 File Offset: 0x00404AA8 [Token(Token = "0x6011130")] [Address(RVA = "0x15A2AD0", Offset = "0x15A14D0", VA = "0x1815A2AD0")] public void OnInputUp(Tool NBHJPDBHDHB) { bool firing = this.PNJFDBBDPLK; this.MOHJLDOAEMP = false; } // Token: 0x06011131 RID: 69937 RVA: 0x004068C4 File Offset: 0x00404AC4 [Token(Token = "0x6011131")] [Address(RVA = "0x15A2AD0", Offset = "0x15A14D0", VA = "0x1815A2AD0")] private void FIECILCCNFD(Tool NBHJPDBHDHB) { bool firing = this.PNJFDBBDPLK; this.MOHJLDOAEMP = false; } // Token: 0x06011132 RID: 69938 RVA: 0x004068E0 File Offset: 0x00404AE0 [Token(Token = "0x6011132")] [Address(RVA = "0x15A2B00", Offset = "0x15A1500", VA = "0x1815A2B00", Slot = "40")] public override void Fire(float LFDFFDCJAAD = 1f) { float num = this.bulletFireSpeed; Vector3 vector; float z = vector.z; Vector3 vector2; float z2 = vector2.z; float num2 = this.spreadAngleRange * 0.5f; float num3 = global::UnityEngine.Random.Range(num2, LFDFFDCJAAD); num3 = num2; float num4 = global::UnityEngine.Random.Range(num3, LFDFFDCJAAD); num4 = num2; float num5 = global::UnityEngine.Random.Range(num4, LFDFFDCJAAD); num = num4; Quaternion quaternion = Quaternion.Euler(num5, LFDFFDCJAAD, num); Vector3 vector3; float z3 = vector3.z; this.Fire(LFDFFDCJAAD); } // Token: 0x06011133 RID: 69939 RVA: 0x0040695C File Offset: 0x00404B5C [Token(Token = "0x6011133")] [Address(RVA = "0x15A2DD0", Offset = "0x15A17D0", VA = "0x1815A2DD0", 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; float num = this.maxProjectileLifetime; } // Token: 0x06011134 RID: 69940 RVA: 0x00406990 File Offset: 0x00404B90 [Token(Token = "0x6011134")] [Address(RVA = "0x15A2CE0", Offset = "0x15A16E0", VA = "0x1815A2CE0", Slot = "53")] protected virtual void IGIDNLPODPD() { Coroutine bepnkdagfbn = this.BEPNKDAGFBN; if (bepnkdagfbn != 0) { base.StopCoroutine(bepnkdagfbn); this.BEPNKDAGFBN = (ulong)0L; } } // Token: 0x06011135 RID: 69941 RVA: 0x004069B8 File Offset: 0x00404BB8 [Token(Token = "0x6011135")] [Address(RVA = "0x15A25E0", Offset = "0x15A0FE0", VA = "0x1815A25E0", Slot = "54")] protected virtual void ABNPFEDICFJ() { Coroutine bepnkdagfbn = this.BEPNKDAGFBN; if (bepnkdagfbn != 0) { base.StopCoroutine(bepnkdagfbn); this.BEPNKDAGFBN = (ulong)0L; } AutomaticGun.OJFCILJHBHP ojfciljhbhp; ojfciljhbhp.System.IDisposable.Dispose(); ojfciljhbhp.<>1__state = (int)((ulong)0L); ojfciljhbhp.<>4__this = this; Coroutine coroutine = base.StartCoroutine(ojfciljhbhp); this.BEPNKDAGFBN = coroutine; } // Token: 0x06011136 RID: 69942 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x6011136")] [Address(RVA = "0x15A2AC0", Offset = "0x15A14C0", VA = "0x1815A2AC0")] private bool FADFNLCAHDL() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06011137 RID: 69943 RVA: 0x00406A08 File Offset: 0x00404C08 [Token(Token = "0x6011137")] [Address(RVA = "0x15A2F10", Offset = "0x15A1910", VA = "0x1815A2F10")] private IEnumerator OKGEHOCJFJL() { /* An exception occurred when decompiling this method (06011137) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.IEnumerator RecRoom.Tools.Weapons.AutomaticGun::OKGEHOCJFJL() ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: call:void(OJFCILJHBHP::System.IDisposable.Dispose, ldloc:OJFCILJHBHP(var_0)) stfld:int32(OJFCILJHBHP::<>1__state, ldloc:OJFCILJHBHP(var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](0))) stfld:AutomaticGun(OJFCILJHBHP::<>4__this, ldloc:OJFCILJHBHP(var_0), ldloc:AutomaticGun(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: 0x06011138 RID: 69944 RVA: 0x00406A2C File Offset: 0x00404C2C [Token(Token = "0x6011138")] [Address(RVA = "0x15A2D70", Offset = "0x15A1770", VA = "0x1815A2D70")] protected IEnumerator MBDNELNADAJ(float MOPKOPOKKEE) { /* An exception occurred when decompiling this method (06011138) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.IEnumerator RecRoom.Tools.Weapons.AutomaticGun::MBDNELNADAJ(System.Single) ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: call:void(IBGNIBNDBFM::System.IDisposable.Dispose, ldloc:IBGNIBNDBFM(var_0)) stfld:float32(IBGNIBNDBFM::time, ldloc:IBGNIBNDBFM(var_0), ldloc:float32(MOPKOPOKKEE)) stfld:int32(IBGNIBNDBFM::<>1__state, ldloc:IBGNIBNDBFM(var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](0))) } 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: 0x06011139 RID: 69945 RVA: 0x00406A50 File Offset: 0x00404C50 [Token(Token = "0x6011139")] [Address(RVA = "0x15A2970", Offset = "0x15A1370", VA = "0x1815A2970")] protected Vector3 DIGPIBMCOHL(Vector3 NHAOMEMANJA) { /* An exception occurred when decompiling this method (06011139) ICSharpCode.Decompiler.DecompilerException: Error decompiling UnityEngine.Vector3 RecRoom.Tools.Weapons.AutomaticGun::DIGPIBMCOHL(UnityEngine.Vector3) ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: stloc:float32(var_1_07, call:float32(Random::Range, ldloc:float32(var_0), ldloc:float32(var_0))) stloc:float32(var_1_09, ldloc:float32(var_0)) stloc:float32(var_2_11, call:float32(Random::Range, ldloc:float32(var_1_09), ldloc:float32(var_0))) stloc:float32(var_2_13, ldloc:float32(var_0)) stloc:float32(var_3_1B, call:float32(Random::Range, ldloc:float32(var_2_13), ldloc:float32(var_0))) stloc:float32(var_0, ldloc:float32(var_3_1B)) stloc:float32(var_0, ldloc:float32(var_1_09)) stloc:Quaternion(var_5_28, call:Quaternion(Quaternion::Euler, ldloc:float32(var_3_1B), ldloc:float32(var_0), ldloc:float32(var_2_13))) stloc:float32(var_7_31, ldfld:float32(Vector3::z, ldloc:Vector3[exp:valuetype [UnityEngine.CoreModule]UnityEngine.Vector3&](var_6))) } 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: 0x0601113A RID: 69946 RVA: 0x00406A90 File Offset: 0x00404C90 [Token(Token = "0x601113A")] [Address(RVA = "0x15A31C0", Offset = "0x15A1BC0", VA = "0x1815A31C0")] public AutomaticGun() { } // Token: 0x0400B586 RID: 46470 [global::Cpp2IlInjected.FieldOffset(Offset = "0x2E8")] [Token(Token = "0x400B586")] [SerializeField] [Header("Automatic Fire")] private float spreadAngleRange; // Token: 0x0400B587 RID: 46471 [global::Cpp2IlInjected.FieldOffset(Offset = "0x2EC")] [Token(Token = "0x400B587")] [SerializeField] private float maxProjectileLifetime = -1f; // Token: 0x0400B588 RID: 46472 [global::Cpp2IlInjected.FieldOffset(Offset = "0x2F0")] [Token(Token = "0x400B588")] protected Coroutine BEPNKDAGFBN; // Token: 0x0400B589 RID: 46473 [global::Cpp2IlInjected.FieldOffset(Offset = "0x2F8")] [Token(Token = "0x400B589")] protected bool MOHJLDOAEMP; // Token: 0x0400B58A RID: 46474 [global::Cpp2IlInjected.FieldOffset(Offset = "0x2F9")] [Token(Token = "0x400B58A")] private bool MCJNFKDIACH; } }