using System; using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; using Cpp2IlInjected; using Photon.Pun; using RecRoom.Core.AI; using RecRoom.Core.Combat; using RecRoom.Core.Pools; using UnityEngine; namespace RecRoom.Tools.Weapons { // Token: 0x02002B6B RID: 11115 [Token(Token = "0x2002B6B")] public class ExplosiveRangedWeapon : RangedWeapon { // Token: 0x06012B1D RID: 76573 RVA: 0x0044A248 File Offset: 0x00448448 [Token(Token = "0x6012B1D")] [Address(RVA = "0x10D5EA0", Offset = "0x10D4CA0", VA = "0x1810D5EA0", 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: 0x06012B1E RID: 76574 RVA: 0x0044A294 File Offset: 0x00448494 [Token(Token = "0x6012B1E")] [Address(RVA = "0x10D6E60", Offset = "0x10D5C60", VA = "0x1810D6E60", 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: 0x06012B1F RID: 76575 RVA: 0x0044A2E0 File Offset: 0x004484E0 [Token(Token = "0x6012B1F")] [Address(RVA = "0x10D6D70", Offset = "0x10D5B70", VA = "0x1810D6D70", Slot = "36")] protected override bool ODPDBPCMGKE() { if (!this.HKDIKDABNCK || this.HKDIKDABNCK.enabled) { } GameObject fpemcijjpmj = this.FPEMCIJJPMJ; return !fpemcijjpmj || !fpemcijjpmj.activeSelf; } // Token: 0x06012B20 RID: 76576 RVA: 0x0044A32C File Offset: 0x0044852C [Token(Token = "0x6012B20")] [Address(RVA = "0x10D6AF0", Offset = "0x10D58F0", VA = "0x1810D6AF0", Slot = "44")] protected override Bullet LEKAAHGOLBN([Optional] Bullet CFAPNBBHEKB) { Bullet bullet = base.LEKAAHGOLBN(CFAPNBBHEKB); this.HKDIKDABNCK = bullet; return bullet; } // Token: 0x06012B21 RID: 76577 RVA: 0x0044A34C File Offset: 0x0044854C [Token(Token = "0x6012B21")] [Address(RVA = "0x10D6B10", Offset = "0x10D5910", VA = "0x1810D6B10", 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: 0x06012B22 RID: 76578 RVA: 0x0044A3E8 File Offset: 0x004485E8 [Token(Token = "0x6012B22")] [Address(RVA = "0x10D69E0", Offset = "0x10D57E0", VA = "0x1810D69E0")] protected void KFECAEGMNDF(float NBOCPMDNOCF, Vector3 DDHPAFKBMON, float OMLBPICLALA, float LFDFFDCJAAD = 1f) { if (base.OGIBLNIIHDK) { PhotonView photonView = base.JDHMIOJKLCK; DGLOJCGDOGG.BNALDBHFCMB bnaldbhfcmb = new DGLOJCGDOGG.BNALDBHFCMB(this.RpcManualExplode); float z = DDHPAFKBMON.z; } } // Token: 0x06012B23 RID: 76579 RVA: 0x0044A420 File Offset: 0x00448620 [Token(Token = "0x6012B23")] [Address(RVA = "0x10D6FC0", Offset = "0x10D5DC0", VA = "0x1810D6FC0")] [NFOMENMAOIA] protected void RpcManualExplode(float NBOCPMDNOCF, Vector3 DDHPAFKBMON, float OMLBPICLALA, float LFDFFDCJAAD) { float z = DDHPAFKBMON.z; this.PlayPreFireAnimation(); } // Token: 0x06012B24 RID: 76580 RVA: 0x0044A43C File Offset: 0x0044863C [Token(Token = "0x6012B24")] [Address(RVA = "0x10D67C0", Offset = "0x10D55C0", VA = "0x1810D67C0", 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: 0x06012B25 RID: 76581 RVA: 0x0044A498 File Offset: 0x00448698 [Token(Token = "0x6012B25")] [Address(RVA = "0x10D6710", Offset = "0x10D5510", VA = "0x1810D6710")] private IEnumerator IDDAEFPBAKC(float NBOCPMDNOCF, Vector3 DDHPAFKBMON, float OMLBPICLALA, float LFDFFDCJAAD = 1f) { /* An exception occurred when decompiling this method (06012B25) 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 1660 */; } // Token: 0x06012B26 RID: 76582 RVA: 0x0044A4E4 File Offset: 0x004486E4 [Token(Token = "0x6012B26")] [Address(RVA = "0x10D6000", Offset = "0x10D4E00", VA = "0x1810D6000")] 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: 0x06012B27 RID: 76583 RVA: 0x0044A550 File Offset: 0x00448750 [Token(Token = "0x6012B27")] [Address(RVA = "0x10D6910", Offset = "0x10D5710", VA = "0x1810D6910", Slot = "39")] public override bool ImpactAlreadyRegistered(byte JKPAIMCLIBI, AGAJMBPABDL 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: 0x06012B28 RID: 76584 RVA: 0x0044A5AC File Offset: 0x004487AC [Token(Token = "0x6012B28")] [Address(RVA = "0x10D6D00", Offset = "0x10D5B00", VA = "0x1810D6D00", Slot = "46")] protected override void ODOBKGAHAGH(Bullet NLLMMPLAPBK, Player IEKDDPPNFPF, Player.GAHEJKDCLLE NMKAKHOEMGB, GHMDIDJLFMC KNLMJBAKCGF) { if (this.applyDirectDamage) { } } // Token: 0x06012B29 RID: 76585 RVA: 0x0044A5C4 File Offset: 0x004487C4 [Token(Token = "0x6012B29")] [Address(RVA = "0x10D6420", Offset = "0x10D5220", VA = "0x1810D6420", Slot = "47")] protected override void EIEJLOGPMGM(Bullet NLLMMPLAPBK, Enemy BPJNEFJBBML, ANBBFGKPJFD EMPFLFOEDFD, GHMDIDJLFMC KNLMJBAKCGF) { if (this.applyDirectDamage) { } } // Token: 0x06012B2A RID: 76586 RVA: 0x0044A5DC File Offset: 0x004487DC [Token(Token = "0x6012B2A")] [Address(RVA = "0x10D64F0", Offset = "0x10D52F0", VA = "0x1810D64F0", Slot = "48")] protected override void GLFCGNNCNIB(Bullet NLLMMPLAPBK, Tool BKKNJFFJBKN, GHMDIDJLFMC KNLMJBAKCGF) { if (this.applyDirectDamage) { base.GLFCGNNCNIB(NLLMMPLAPBK, BKKNJFFJBKN, KNLMJBAKCGF); } } // Token: 0x06012B2B RID: 76587 RVA: 0x0044A5FC File Offset: 0x004487FC [Token(Token = "0x6012B2B")] [Address(RVA = "0x10D6490", Offset = "0x10D5290", VA = "0x1810D6490", Slot = "49")] protected override void EJAEGPHPGBL(Bullet NLLMMPLAPBK, Trap JHIDLPIGNBD, GHMDIDJLFMC KNLMJBAKCGF) { if (this.applyDirectDamage) { base.EJAEGPHPGBL(NLLMMPLAPBK, JHIDLPIGNBD, KNLMJBAKCGF); } } // Token: 0x06012B2C RID: 76588 RVA: 0x0044A61C File Offset: 0x0044881C [Token(Token = "0x6012B2C")] [Address(RVA = "0xBB5340", Offset = "0xBB4140", VA = "0x180BB5340", Slot = "53")] protected virtual void CDIOEBNIGJF(Player EDIBICHIJJH, Player.GAHEJKDCLLE EAMJHCGHCIE, GHMDIDJLFMC KNLMJBAKCGF) { float y = KNLMJBAKCGF.NKKJICPFILJ.y; float z = KNLMJBAKCGF.FEDGOFKEGEF.z; float z2 = KNLMJBAKCGF.EGJBGIIHEEL.z; } // Token: 0x06012B2D RID: 76589 RVA: 0x0044A650 File Offset: 0x00448850 [Token(Token = "0x6012B2D")] [Address(RVA = "0x10D61A0", Offset = "0x10D4FA0", VA = "0x1810D61A0", 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.OGIBLNIIHDK || FDJDEJIKCFH.OGIBLNIIHDK) { } } } // Token: 0x06012B2E RID: 76590 RVA: 0x0044A690 File Offset: 0x00448890 [Token(Token = "0x6012B2E")] [Address(RVA = "0x10D6350", Offset = "0x10D5150", VA = "0x1810D6350", 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: 0x06012B2F RID: 76591 RVA: 0x0044A6D4 File Offset: 0x004488D4 [Token(Token = "0x6012B2F")] [Address(RVA = "0x10D6600", Offset = "0x10D5400", VA = "0x1810D6600", Slot = "56")] protected virtual void HMOBOJKIGPO(Trap AMPLOOJODLP, GHMDIDJLFMC KNLMJBAKCGF) { float y = KNLMJBAKCGF.NKKJICPFILJ.y; float z = KNLMJBAKCGF.FEDGOFKEGEF.z; if (base.OGIBLNIIHDK && AMPLOOJODLP.OGIBLNIIHDK) { float y2 = KNLMJBAKCGF.NKKJICPFILJ.y; } } // Token: 0x06012B30 RID: 76592 RVA: 0x0044A720 File Offset: 0x00448920 [Token(Token = "0x6012B30")] [Address(RVA = "0x10D6550", Offset = "0x10D5350", VA = "0x1810D6550", Slot = "21")] public override int GetPlayerImpactDamage(Player.GAHEJKDCLLE EAMJHCGHCIE, float DBINDJBHOKM, bool COEKCNDDMKK) { return Mathf.RoundToInt(Mathf.Clamp01(DBINDJBHOKM)); } // Token: 0x06012B31 RID: 76593 RVA: 0x0044A738 File Offset: 0x00448938 [Token(Token = "0x6012B31")] [Address(RVA = "0x10D7010", Offset = "0x10D5E10", VA = "0x1810D7010")] 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: 0x0400C13C RID: 49468 [global::Cpp2IlInjected.FieldOffset(Offset = "0x2F0")] [Token(Token = "0x400C13C")] [SerializeField] [Header("Direct Damage")] private bool applyDirectDamage; // Token: 0x0400C13D RID: 49469 [global::Cpp2IlInjected.FieldOffset(Offset = "0x2F8")] [Token(Token = "0x400C13D")] [SerializeField] private PooledParticle directDamageParticles; // Token: 0x0400C13E RID: 49470 [global::Cpp2IlInjected.FieldOffset(Offset = "0x300")] [Token(Token = "0x400C13E")] [SerializeField] private RecRoomAudioClip directDamageImpactAudio; // Token: 0x0400C13F RID: 49471 [global::Cpp2IlInjected.FieldOffset(Offset = "0x308")] [Token(Token = "0x400C13F")] [SerializeField] [Header("Explosives")] private float explosionDelay; // Token: 0x0400C140 RID: 49472 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30C")] [Token(Token = "0x400C140")] [SerializeField] protected float explosionRadius = 2f; // Token: 0x0400C141 RID: 49473 [global::Cpp2IlInjected.FieldOffset(Offset = "0x310")] [Token(Token = "0x400C141")] [SerializeField] protected float explosionForce = 30f; // Token: 0x0400C142 RID: 49474 [global::Cpp2IlInjected.FieldOffset(Offset = "0x318")] [Token(Token = "0x400C142")] [SerializeField] protected PooledParticle explosionParticles; // Token: 0x0400C143 RID: 49475 [global::Cpp2IlInjected.FieldOffset(Offset = "0x320")] [Token(Token = "0x400C143")] [SerializeField] protected RecRoomAudioClip explosionAudio; // Token: 0x0400C144 RID: 49476 [global::Cpp2IlInjected.FieldOffset(Offset = "0x328")] [Token(Token = "0x400C144")] [SerializeField] protected AnimationCurve forceFalloff; // Token: 0x0400C145 RID: 49477 [global::Cpp2IlInjected.FieldOffset(Offset = "0x330")] [Token(Token = "0x400C145")] [SerializeField] protected AnimationCurve damageFalloff; // Token: 0x0400C146 RID: 49478 [global::Cpp2IlInjected.FieldOffset(Offset = "0x338")] [Token(Token = "0x400C146")] [SerializeField] [Range(0f, 1f)] protected float maxPlayerDamageFalloff; // Token: 0x0400C147 RID: 49479 [global::Cpp2IlInjected.FieldOffset(Offset = "0x340")] [Token(Token = "0x400C147")] protected EMPJPPLIPMG OEJMNKBJCHC; // Token: 0x0400C148 RID: 49480 [global::Cpp2IlInjected.FieldOffset(Offset = "0x348")] [Token(Token = "0x400C148")] private Bullet HKDIKDABNCK; // Token: 0x0400C149 RID: 49481 [global::Cpp2IlInjected.FieldOffset(Offset = "0x350")] [Token(Token = "0x400C149")] private GameObject FPEMCIJJPMJ; // Token: 0x0400C14A RID: 49482 [global::Cpp2IlInjected.FieldOffset(Offset = "0x358")] [Token(Token = "0x400C14A")] private float OCIINOPLKPK; // Token: 0x0400C14B RID: 49483 [global::Cpp2IlInjected.FieldOffset(Offset = "0x360")] [Token(Token = "0x400C14B")] private List GOFBMKPDJEM; } }