using System; using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; using Cpp2IlInjected; using Photon.Pun; using Photon.Realtime; using RecRoom.Core.AI; using RecRoom.Core.Combat; using RecRoom.Core.Pools; using RecRoom.Networking.RPC; using UnityEngine; namespace RecRoom.Tools.Weapons { // Token: 0x02002680 RID: 9856 [Token(Token = "0x2002680")] [StructLayout(3)] public class ExplosiveRangedWeapon : RangedWeapon { // Token: 0x0601119E RID: 70046 RVA: 0x00408954 File Offset: 0x00406B54 [Token(Token = "0x601119E")] [Address(RVA = "0x1941060", Offset = "0x193FA60", VA = "0x181941060", Slot = "13")] protected override void Awake() { base.Awake(); EMPJPPLIPMG.HCEABLFOLPA hceablfolpa; this.OEJMNKBJCHC.BEKCCHHMPEH += hceablfolpa; EMPJPPLIPMG.EKKCNCNMEOB ekkcncnmeob; this.OEJMNKBJCHC.EIMFCMEGGPP += ekkcncnmeob; EMPJPPLIPMG.KNGHDKHHMIK knghdkhhmik; this.OEJMNKBJCHC.KBMHDAGMLAF += knghdkhhmik; EMPJPPLIPMG.HPBJOLBAKDB hpbjolbakdb; this.OEJMNKBJCHC.JMKEOLOEKFM += hpbjolbakdb; } // Token: 0x0601119F RID: 70047 RVA: 0x004089A0 File Offset: 0x00406BA0 [Token(Token = "0x601119F")] [Address(RVA = "0x1942080", Offset = "0x1940A80", VA = "0x181942080", Slot = "14")] protected override void OnDestroy() { base.OnDestroy(); EMPJPPLIPMG.HCEABLFOLPA hceablfolpa; this.OEJMNKBJCHC.BEKCCHHMPEH -= hceablfolpa; EMPJPPLIPMG.EKKCNCNMEOB ekkcncnmeob; this.OEJMNKBJCHC.EIMFCMEGGPP -= ekkcncnmeob; EMPJPPLIPMG.KNGHDKHHMIK knghdkhhmik; this.OEJMNKBJCHC.KBMHDAGMLAF -= knghdkhhmik; EMPJPPLIPMG.HPBJOLBAKDB hpbjolbakdb; this.OEJMNKBJCHC.JMKEOLOEKFM -= hpbjolbakdb; } // Token: 0x060111A0 RID: 70048 RVA: 0x004089EC File Offset: 0x00406BEC [Token(Token = "0x60111A0")] [Address(RVA = "0x1941F90", Offset = "0x1940990", VA = "0x181941F90", Slot = "36")] protected override bool ODPDBPCMGKE() { if (!this.HKDIKDABNCK || this.HKDIKDABNCK.enabled) { } GameObject fpemcijjpmj = this.FPEMCIJJPMJ; return !fpemcijjpmj || !fpemcijjpmj.activeSelf; } // Token: 0x060111A1 RID: 70049 RVA: 0x00408A38 File Offset: 0x00406C38 [Token(Token = "0x60111A1")] [Address(RVA = "0x1941D10", Offset = "0x1940710", VA = "0x181941D10", Slot = "44")] protected override Bullet LEKAAHGOLBN([Optional] Bullet CFAPNBBHEKB) { Bullet bullet = base.LEKAAHGOLBN(CFAPNBBHEKB); this.HKDIKDABNCK = bullet; return bullet; } // Token: 0x060111A2 RID: 70050 RVA: 0x00408A58 File Offset: 0x00406C58 [Token(Token = "0x60111A2")] [Address(RVA = "0x1941D30", Offset = "0x1940730", VA = "0x181941D30", Slot = "45")] protected override void LPEPECEFNCK(Bullet NLLMMPLAPBK, Vector3 DDHPAFKBMON) { float z = DDHPAFKBMON.z; base..ctor(); if (this.HKDIKDABNCK == NLLMMPLAPBK) { this.HKDIKDABNCK = (ulong)0L; } if (this.applyDirectDamage) { float z2 = DDHPAFKBMON.z; Transform transform = base.transform; int num = 0; if (transform != num) { RecRoomAudioClip recRoomAudioClip = this.directDamageImpactAudio; Transform transform2 = base.transform; int num2 = 0; int num3 = 0; SFXAudioSource sfxaudioSource = AudioManager.Play3DSFX(recRoomAudioClip, transform2, num3, num2); } } GameObject gameObject = base.gameObject; this.FPEMCIJJPMJ = gameObject; float z3 = DDHPAFKBMON.z; this.PlayPreFireAnimation(); } // Token: 0x060111A3 RID: 70051 RVA: 0x00408AF4 File Offset: 0x00406CF4 [Token(Token = "0x60111A3")] [Address(RVA = "0x1941C00", Offset = "0x1940600", VA = "0x181941C00")] protected void KFECAEGMNDF(float NBOCPMDNOCF, Vector3 DDHPAFKBMON, float OMLBPICLALA, float LFDFFDCJAAD = 1f) { if (base.hasAuthority) { PhotonView photonView = base.photonView; RPCActions.RPCAction rpcaction = new RPCActions.RPCAction(this.RpcManualExplode); float z = DDHPAFKBMON.z; } } // Token: 0x060111A4 RID: 70052 RVA: 0x00408B2C File Offset: 0x00406D2C [Token(Token = "0x60111A4")] [Address(RVA = "0x19421E0", Offset = "0x1940BE0", VA = "0x1819421E0")] [PunRPC] protected void RpcManualExplode(float NBOCPMDNOCF, Vector3 DDHPAFKBMON, float OMLBPICLALA, float LFDFFDCJAAD) { float z = DDHPAFKBMON.z; this.PlayPreFireAnimation(); } // Token: 0x060111A5 RID: 70053 RVA: 0x00408B48 File Offset: 0x00406D48 [Token(Token = "0x60111A5")] [Address(RVA = "0x19419E0", Offset = "0x19403E0", VA = "0x1819419E0", Slot = "52")] protected virtual void IMNCAGFEELB(float NBOCPMDNOCF, Vector3 DDHPAFKBMON, float OMLBPICLALA, float LFDFFDCJAAD = 1f) { ExplosiveRangedWeapon.BJKFCAHGJJK bjkfcahgjjk; bjkfcahgjjk.System.IDisposable.Dispose(); float z = DDHPAFKBMON.z; bjkfcahgjjk.position.z = z; bjkfcahgjjk.chargeAmount = (float)0; bjkfcahgjjk.delay = NBOCPMDNOCF; bjkfcahgjjk.radius = OMLBPICLALA; bjkfcahgjjk.<>1__state = (int)((ulong)0L); bjkfcahgjjk.<>4__this = this; Coroutine coroutine = base.StartCoroutine(bjkfcahgjjk); float z2 = DDHPAFKBMON.z; } // Token: 0x060111A6 RID: 70054 RVA: 0x00408BA4 File Offset: 0x00406DA4 [Token(Token = "0x60111A6")] [Address(RVA = "0x1941930", Offset = "0x1940330", VA = "0x181941930")] private IEnumerator IDDAEFPBAKC(float NBOCPMDNOCF, Vector3 DDHPAFKBMON, float OMLBPICLALA, float LFDFFDCJAAD = 1f) { /* An exception occurred when decompiling this method (060111A6) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.IEnumerator RecRoom.Tools.Weapons.ExplosiveRangedWeapon::IDDAEFPBAKC(System.Single,UnityEngine.Vector3,System.Single,System.Single) ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: call:void(BJKFCAHGJJK::System.IDisposable.Dispose, ldloc:BJKFCAHGJJK(var_0)) stloc:float32(var_1_0C, ldfld:float32(Vector3::z, ldloc:Vector3[exp:valuetype [UnityEngine.CoreModule]UnityEngine.Vector3&](DDHPAFKBMON))) stfld:float32(BJKFCAHGJJK::delay, ldloc:BJKFCAHGJJK(var_0), ldloc:float32(NBOCPMDNOCF)) stfld:float32(BJKFCAHGJJK::radius, ldloc:BJKFCAHGJJK(var_0), ldloc:float32(OMLBPICLALA)) stfld:ExplosiveRangedWeapon(BJKFCAHGJJK::<>4__this, ldloc:BJKFCAHGJJK(var_0), ldloc:ExplosiveRangedWeapon(this)) stfld:float32(BJKFCAHGJJK::chargeAmount, ldloc:BJKFCAHGJJK(var_0), ldc.i4:int32[exp:float32](0)) stfld:int32(BJKFCAHGJJK::<>1__state, ldloc:BJKFCAHGJJK(var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](0))) stfld:float32(Vector3::z, ldfld:Vector3[exp:valuetype [UnityEngine.CoreModule]UnityEngine.Vector3&](BJKFCAHGJJK::position, ldloc:BJKFCAHGJJK(var_0)), ldloc:float32(var_1_0C)) } 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: 0x060111A7 RID: 70055 RVA: 0x00408BF0 File Offset: 0x00406DF0 [Token(Token = "0x60111A7")] [Address(RVA = "0x1941220", Offset = "0x193FC20", VA = "0x181941220")] protected void DFGHNBLOFFK(Vector3 DDHPAFKBMON, float OMLBPICLALA, float LFDFFDCJAAD = 1f, float BKOHFEOCAII = 1f) { float z = DDHPAFKBMON.z; PooledParticle pooledParticle; if (pooledParticle) { GameObject gameObject = pooledParticle.gameObject; this.FPEMCIJJPMJ = gameObject; } RecRoomAudioClip recRoomAudioClip = this.explosionAudio; float z2 = DDHPAFKBMON.z; EMPJPPLIPMG oejmnkbjchc = this.OEJMNKBJCHC; float z3 = DDHPAFKBMON.z; AnimationCurve animationCurve = this.forceFalloff; float num = this.maxPlayerDamageFalloff; AnimationCurve animationCurve2 = this.damageFalloff; } // Token: 0x060111A8 RID: 70056 RVA: 0x00408C5C File Offset: 0x00406E5C [Token(Token = "0x60111A8")] [Address(RVA = "0x1941B30", Offset = "0x1940530", VA = "0x181941B30", Slot = "39")] public override bool ImpactAlreadyRegistered(byte JKPAIMCLIBI, Photon.Realtime.Player HMEIODIHDCL) { float realtimeSinceStartup = Time.realtimeSinceStartup; List gofbmkpdjem = this.GOFBMKPDJEM; if (realtimeSinceStartup >= 1f || gofbmkpdjem.Contains(HMEIODIHDCL)) { gofbmkpdjem.Clear(); } this.GOFBMKPDJEM.Add(HMEIODIHDCL); float realtimeSinceStartup2 = Time.realtimeSinceStartup; this.OCIINOPLKPK = realtimeSinceStartup2; throw new NullReferenceException(); } // Token: 0x060111A9 RID: 70057 RVA: 0x00408CB8 File Offset: 0x00406EB8 [Token(Token = "0x60111A9")] [Address(RVA = "0x1941F20", Offset = "0x1940920", VA = "0x181941F20", Slot = "46")] protected override void ODOBKGAHAGH(Bullet NLLMMPLAPBK, global::Player IEKDDPPNFPF, global::Player.GAHEJKDCLLE NMKAKHOEMGB, GHMDIDJLFMC KNLMJBAKCGF) { if (this.applyDirectDamage) { } } // Token: 0x060111AA RID: 70058 RVA: 0x00408CD0 File Offset: 0x00406ED0 [Token(Token = "0x60111AA")] [Address(RVA = "0x1941640", Offset = "0x1940040", VA = "0x181941640", Slot = "47")] protected override void EIEJLOGPMGM(Bullet NLLMMPLAPBK, Enemy BPJNEFJBBML, ANBBFGKPJFD EMPFLFOEDFD, GHMDIDJLFMC KNLMJBAKCGF) { if (this.applyDirectDamage) { } } // Token: 0x060111AB RID: 70059 RVA: 0x00408CE8 File Offset: 0x00406EE8 [Token(Token = "0x60111AB")] [Address(RVA = "0x1941710", Offset = "0x1940110", VA = "0x181941710", Slot = "48")] protected override void GLFCGNNCNIB(Bullet NLLMMPLAPBK, Tool BKKNJFFJBKN, GHMDIDJLFMC KNLMJBAKCGF) { if (this.applyDirectDamage) { base.GLFCGNNCNIB(NLLMMPLAPBK, BKKNJFFJBKN, KNLMJBAKCGF); } } // Token: 0x060111AC RID: 70060 RVA: 0x00408D08 File Offset: 0x00406F08 [Token(Token = "0x60111AC")] [Address(RVA = "0x19416B0", Offset = "0x19400B0", VA = "0x1819416B0", Slot = "49")] protected override void EJAEGPHPGBL(Bullet NLLMMPLAPBK, Trap JHIDLPIGNBD, GHMDIDJLFMC KNLMJBAKCGF) { if (this.applyDirectDamage) { base.EJAEGPHPGBL(NLLMMPLAPBK, JHIDLPIGNBD, KNLMJBAKCGF); } } // Token: 0x060111AD RID: 70061 RVA: 0x00408D28 File Offset: 0x00406F28 [Token(Token = "0x60111AD")] [Address(RVA = "0x19411C0", Offset = "0x193FBC0", VA = "0x1819411C0", Slot = "53")] protected virtual void CDIOEBNIGJF(global::Player EDIBICHIJJH, global::Player.GAHEJKDCLLE EAMJHCGHCIE, GHMDIDJLFMC KNLMJBAKCGF) { float y = KNLMJBAKCGF.NKKJICPFILJ.y; float z = KNLMJBAKCGF.FEDGOFKEGEF.z; float z2 = KNLMJBAKCGF.EGJBGIIHEEL.z; } // Token: 0x060111AE RID: 70062 RVA: 0x00408D5C File Offset: 0x00406F5C [Token(Token = "0x60111AE")] [Address(RVA = "0x19413C0", Offset = "0x193FDC0", VA = "0x1819413C0", Slot = "54")] protected virtual void DJIINLLBBHH(Enemy FDJDEJIKCFH, ANBBFGKPJFD PAKELHPNJDI, GHMDIDJLFMC KNLMJBAKCGF) { bool flag; if (!flag) { float z = KNLMJBAKCGF.EGJBGIIHEEL.z; int enemyDamage = this.GetEnemyDamage(z); if (!base.hasAuthority || FDJDEJIKCFH.hasAuthority) { } } } // Token: 0x060111AF RID: 70063 RVA: 0x00408D9C File Offset: 0x00406F9C [Token(Token = "0x60111AF")] [Address(RVA = "0x1941570", Offset = "0x193FF70", VA = "0x181941570", Slot = "55")] protected virtual void EEHAEDNIDDK(Tool BKKNJFFJBKN, GHMDIDJLFMC KNLMJBAKCGF) { Tool tool = this._tool; if (!(BKKNJFFJBKN == tool)) { float y = KNLMJBAKCGF.NKKJICPFILJ.y; float z = KNLMJBAKCGF.FEDGOFKEGEF.z; float z2 = KNLMJBAKCGF.EGJBGIIHEEL.z; } } // Token: 0x060111B0 RID: 70064 RVA: 0x00408DE0 File Offset: 0x00406FE0 [Token(Token = "0x60111B0")] [Address(RVA = "0x1941820", Offset = "0x1940220", VA = "0x181941820", Slot = "56")] protected virtual void HMOBOJKIGPO(Trap AMPLOOJODLP, GHMDIDJLFMC KNLMJBAKCGF) { float y = KNLMJBAKCGF.NKKJICPFILJ.y; float z = KNLMJBAKCGF.FEDGOFKEGEF.z; if (base.hasAuthority && AMPLOOJODLP.hasAuthority) { float y2 = KNLMJBAKCGF.NKKJICPFILJ.y; } } // Token: 0x060111B1 RID: 70065 RVA: 0x00408E2C File Offset: 0x0040702C [Token(Token = "0x60111B1")] [Address(RVA = "0x1941770", Offset = "0x1940170", VA = "0x181941770", Slot = "21")] public override int GetPlayerImpactDamage(global::Player.GAHEJKDCLLE EAMJHCGHCIE, float DBINDJBHOKM, bool COEKCNDDMKK) { return Mathf.RoundToInt(Mathf.Clamp01(DBINDJBHOKM)); } // Token: 0x060111B2 RID: 70066 RVA: 0x00408E44 File Offset: 0x00407044 [Token(Token = "0x60111B2")] [Address(RVA = "0x1942230", Offset = "0x1940C30", VA = "0x181942230")] public ExplosiveRangedWeapon() { AnimationCurve animationCurve = AnimationCurve.Linear((float)0, 1f, 1f, 1f); this.forceFalloff = animationCurve; AnimationCurve animationCurve2 = AnimationCurve.Linear((float)0, 1f, 1f, 1f); this.damageFalloff = animationCurve2; this.maxPlayerDamageFalloff = 1f; EMPJPPLIPMG empjpplipmg = new EMPJPPLIPMG(); this.OEJMNKBJCHC = empjpplipmg; List list = new List(); this.GOFBMKPDJEM = list; base..ctor(); } // Token: 0x0400B5E2 RID: 46562 [global::Cpp2IlInjected.FieldOffset(Offset = "0x2E8")] [Token(Token = "0x400B5E2")] [SerializeField] [Header("Direct Damage")] private bool applyDirectDamage; // Token: 0x0400B5E3 RID: 46563 [global::Cpp2IlInjected.FieldOffset(Offset = "0x2F0")] [Token(Token = "0x400B5E3")] [SerializeField] private PooledParticle directDamageParticles; // Token: 0x0400B5E4 RID: 46564 [global::Cpp2IlInjected.FieldOffset(Offset = "0x2F8")] [Token(Token = "0x400B5E4")] [SerializeField] private RecRoomAudioClip directDamageImpactAudio; // Token: 0x0400B5E5 RID: 46565 [global::Cpp2IlInjected.FieldOffset(Offset = "0x300")] [Token(Token = "0x400B5E5")] [SerializeField] [Header("Explosives")] private float explosionDelay; // Token: 0x0400B5E6 RID: 46566 [global::Cpp2IlInjected.FieldOffset(Offset = "0x304")] [Token(Token = "0x400B5E6")] [SerializeField] protected float explosionRadius = 2f; // Token: 0x0400B5E7 RID: 46567 [global::Cpp2IlInjected.FieldOffset(Offset = "0x308")] [Token(Token = "0x400B5E7")] [SerializeField] protected float explosionForce = 30f; // Token: 0x0400B5E8 RID: 46568 [global::Cpp2IlInjected.FieldOffset(Offset = "0x310")] [Token(Token = "0x400B5E8")] [SerializeField] protected PooledParticle explosionParticles; // Token: 0x0400B5E9 RID: 46569 [global::Cpp2IlInjected.FieldOffset(Offset = "0x318")] [Token(Token = "0x400B5E9")] [SerializeField] protected RecRoomAudioClip explosionAudio; // Token: 0x0400B5EA RID: 46570 [global::Cpp2IlInjected.FieldOffset(Offset = "0x320")] [Token(Token = "0x400B5EA")] [SerializeField] protected AnimationCurve forceFalloff; // Token: 0x0400B5EB RID: 46571 [global::Cpp2IlInjected.FieldOffset(Offset = "0x328")] [Token(Token = "0x400B5EB")] [SerializeField] protected AnimationCurve damageFalloff; // Token: 0x0400B5EC RID: 46572 [global::Cpp2IlInjected.FieldOffset(Offset = "0x330")] [Token(Token = "0x400B5EC")] [SerializeField] [Range(0f, 1f)] protected float maxPlayerDamageFalloff; // Token: 0x0400B5ED RID: 46573 [global::Cpp2IlInjected.FieldOffset(Offset = "0x338")] [Token(Token = "0x400B5ED")] protected EMPJPPLIPMG OEJMNKBJCHC; // Token: 0x0400B5EE RID: 46574 [global::Cpp2IlInjected.FieldOffset(Offset = "0x340")] [Token(Token = "0x400B5EE")] private Bullet HKDIKDABNCK; // Token: 0x0400B5EF RID: 46575 [global::Cpp2IlInjected.FieldOffset(Offset = "0x348")] [Token(Token = "0x400B5EF")] private GameObject FPEMCIJJPMJ; // Token: 0x0400B5F0 RID: 46576 [global::Cpp2IlInjected.FieldOffset(Offset = "0x350")] [Token(Token = "0x400B5F0")] private float OCIINOPLKPK; // Token: 0x0400B5F1 RID: 46577 [global::Cpp2IlInjected.FieldOffset(Offset = "0x358")] [Token(Token = "0x400B5F1")] private List GOFBMKPDJEM; } }