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: 0x02002C54 RID: 11348 [Token(Token = "0x2002C54")] public class ExplosiveRangedWeapon : RangedWeapon { // Token: 0x06012F5C RID: 77660 RVA: 0x00453ED4 File Offset: 0x004520D4 [Token(Token = "0x6012F5C")] [Address(RVA = "0x1D30B70", Offset = "0x1D2FB70", VA = "0x181D30B70", 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: 0x06012F5D RID: 77661 RVA: 0x00453F20 File Offset: 0x00452120 [Token(Token = "0x6012F5D")] [Address(RVA = "0x1D31BC0", Offset = "0x1D30BC0", VA = "0x181D31BC0", 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: 0x06012F5E RID: 77662 RVA: 0x00453F6C File Offset: 0x0045216C [Token(Token = "0x6012F5E")] [Address(RVA = "0x1D31AD0", Offset = "0x1D30AD0", VA = "0x181D31AD0", Slot = "36")] protected override bool ODPDBPCMGKE() { if (!this.HKDIKDABNCK || this.HKDIKDABNCK.enabled) { } GameObject fpemcijjpmj = this.FPEMCIJJPMJ; return !fpemcijjpmj || !fpemcijjpmj.activeSelf; } // Token: 0x06012F5F RID: 77663 RVA: 0x00453FB8 File Offset: 0x004521B8 [Token(Token = "0x6012F5F")] [Address(RVA = "0x1D31820", Offset = "0x1D30820", VA = "0x181D31820", Slot = "44")] protected override Bullet LEKAAHGOLBN([Optional] Bullet CFAPNBBHEKB) { Bullet bullet = base.LEKAAHGOLBN(CFAPNBBHEKB); this.HKDIKDABNCK = bullet; return bullet; } // Token: 0x06012F60 RID: 77664 RVA: 0x00453FD8 File Offset: 0x004521D8 [Token(Token = "0x6012F60")] [Address(RVA = "0x1D31840", Offset = "0x1D30840", VA = "0x181D31840", 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); } } int num4 = 0; if (this != num4) { GameObject gameObject = base.gameObject; this.FPEMCIJJPMJ = gameObject; } float z3 = DDHPAFKBMON.z; this.PlayPreFireAnimation(); } // Token: 0x06012F61 RID: 77665 RVA: 0x00454084 File Offset: 0x00452284 [Token(Token = "0x6012F61")] [Address(RVA = "0x1D31710", Offset = "0x1D30710", VA = "0x181D31710")] 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: 0x06012F62 RID: 77666 RVA: 0x004540BC File Offset: 0x004522BC [Token(Token = "0x6012F62")] [Address(RVA = "0x1D31D20", Offset = "0x1D30D20", VA = "0x181D31D20")] [NFOMENMAOIA] protected void RpcManualExplode(float NBOCPMDNOCF, Vector3 DDHPAFKBMON, float OMLBPICLALA, float LFDFFDCJAAD) { float z = DDHPAFKBMON.z; this.PlayPreFireAnimation(); } // Token: 0x06012F63 RID: 77667 RVA: 0x004540D8 File Offset: 0x004522D8 [Token(Token = "0x6012F63")] [Address(RVA = "0x1D314F0", Offset = "0x1D304F0", VA = "0x181D314F0", 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: 0x06012F64 RID: 77668 RVA: 0x00454134 File Offset: 0x00452334 [Token(Token = "0x6012F64")] [Address(RVA = "0x1D31440", Offset = "0x1D30440", VA = "0x181D31440")] private IEnumerator IDDAEFPBAKC(float NBOCPMDNOCF, Vector3 DDHPAFKBMON, float OMLBPICLALA, float LFDFFDCJAAD = 1f) { /* An exception occurred when decompiling this method (06012F64) 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: 0x06012F65 RID: 77669 RVA: 0x00454180 File Offset: 0x00452380 [Token(Token = "0x6012F65")] [Address(RVA = "0x1D30D30", Offset = "0x1D2FD30", VA = "0x181D30D30")] 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: 0x06012F66 RID: 77670 RVA: 0x004541EC File Offset: 0x004523EC [Token(Token = "0x6012F66")] [Address(RVA = "0x1D31640", Offset = "0x1D30640", VA = "0x181D31640", 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: 0x06012F67 RID: 77671 RVA: 0x00454248 File Offset: 0x00452448 [Token(Token = "0x6012F67")] [Address(RVA = "0x1D31A60", Offset = "0x1D30A60", VA = "0x181D31A60", Slot = "46")] protected override void ODOBKGAHAGH(Bullet NLLMMPLAPBK, Player IEKDDPPNFPF, Player.GAHEJKDCLLE NMKAKHOEMGB, GHMDIDJLFMC KNLMJBAKCGF) { if (this.applyDirectDamage) { } } // Token: 0x06012F68 RID: 77672 RVA: 0x00454260 File Offset: 0x00452460 [Token(Token = "0x6012F68")] [Address(RVA = "0x1D31150", Offset = "0x1D30150", VA = "0x181D31150", Slot = "47")] protected override void EIEJLOGPMGM(Bullet NLLMMPLAPBK, Enemy BPJNEFJBBML, ANBBFGKPJFD EMPFLFOEDFD, GHMDIDJLFMC KNLMJBAKCGF) { if (this.applyDirectDamage) { } } // Token: 0x06012F69 RID: 77673 RVA: 0x00454278 File Offset: 0x00452478 [Token(Token = "0x6012F69")] [Address(RVA = "0x1D31220", Offset = "0x1D30220", VA = "0x181D31220", Slot = "48")] protected override void GLFCGNNCNIB(Bullet NLLMMPLAPBK, Tool BKKNJFFJBKN, GHMDIDJLFMC KNLMJBAKCGF) { if (this.applyDirectDamage) { base.GLFCGNNCNIB(NLLMMPLAPBK, BKKNJFFJBKN, KNLMJBAKCGF); } } // Token: 0x06012F6A RID: 77674 RVA: 0x00454298 File Offset: 0x00452498 [Token(Token = "0x6012F6A")] [Address(RVA = "0x1D311C0", Offset = "0x1D301C0", VA = "0x181D311C0", Slot = "49")] protected override void EJAEGPHPGBL(Bullet NLLMMPLAPBK, Trap JHIDLPIGNBD, GHMDIDJLFMC KNLMJBAKCGF) { if (this.applyDirectDamage) { base.EJAEGPHPGBL(NLLMMPLAPBK, JHIDLPIGNBD, KNLMJBAKCGF); } } // Token: 0x06012F6B RID: 77675 RVA: 0x004542B8 File Offset: 0x004524B8 [Token(Token = "0x6012F6B")] [Address(RVA = "0x1D30CD0", Offset = "0x1D2FCD0", VA = "0x181D30CD0", 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: 0x06012F6C RID: 77676 RVA: 0x004542EC File Offset: 0x004524EC [Token(Token = "0x6012F6C")] [Address(RVA = "0x1D30ED0", Offset = "0x1D2FED0", VA = "0x181D30ED0", 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: 0x06012F6D RID: 77677 RVA: 0x0045432C File Offset: 0x0045252C [Token(Token = "0x6012F6D")] [Address(RVA = "0x1D31080", Offset = "0x1D30080", VA = "0x181D31080", 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: 0x06012F6E RID: 77678 RVA: 0x00454370 File Offset: 0x00452570 [Token(Token = "0x6012F6E")] [Address(RVA = "0x1D31330", Offset = "0x1D30330", VA = "0x181D31330", 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: 0x06012F6F RID: 77679 RVA: 0x004543BC File Offset: 0x004525BC [Token(Token = "0x6012F6F")] [Address(RVA = "0x1D31280", Offset = "0x1D30280", VA = "0x181D31280", Slot = "21")] public override int GetPlayerImpactDamage(Player.GAHEJKDCLLE EAMJHCGHCIE, float DBINDJBHOKM, bool COEKCNDDMKK) { return Mathf.RoundToInt(Mathf.Clamp01(DBINDJBHOKM)); } // Token: 0x06012F70 RID: 77680 RVA: 0x004543D4 File Offset: 0x004525D4 [Token(Token = "0x6012F70")] [Address(RVA = "0x1D31D70", Offset = "0x1D30D70", VA = "0x181D31D70")] 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: 0x0400C350 RID: 50000 [global::Cpp2IlInjected.FieldOffset(Offset = "0x2F0")] [Token(Token = "0x400C350")] [SerializeField] [Header("Direct Damage")] private bool applyDirectDamage; // Token: 0x0400C351 RID: 50001 [global::Cpp2IlInjected.FieldOffset(Offset = "0x2F8")] [Token(Token = "0x400C351")] [SerializeField] private PooledParticle directDamageParticles; // Token: 0x0400C352 RID: 50002 [global::Cpp2IlInjected.FieldOffset(Offset = "0x300")] [Token(Token = "0x400C352")] [SerializeField] private RecRoomAudioClip directDamageImpactAudio; // Token: 0x0400C353 RID: 50003 [global::Cpp2IlInjected.FieldOffset(Offset = "0x308")] [Token(Token = "0x400C353")] [SerializeField] [Header("Explosives")] private float explosionDelay; // Token: 0x0400C354 RID: 50004 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30C")] [Token(Token = "0x400C354")] [SerializeField] protected float explosionRadius = 2f; // Token: 0x0400C355 RID: 50005 [global::Cpp2IlInjected.FieldOffset(Offset = "0x310")] [Token(Token = "0x400C355")] [SerializeField] protected float explosionForce = 30f; // Token: 0x0400C356 RID: 50006 [global::Cpp2IlInjected.FieldOffset(Offset = "0x318")] [Token(Token = "0x400C356")] [SerializeField] protected PooledParticle explosionParticles; // Token: 0x0400C357 RID: 50007 [global::Cpp2IlInjected.FieldOffset(Offset = "0x320")] [Token(Token = "0x400C357")] [SerializeField] protected RecRoomAudioClip explosionAudio; // Token: 0x0400C358 RID: 50008 [global::Cpp2IlInjected.FieldOffset(Offset = "0x328")] [Token(Token = "0x400C358")] [SerializeField] protected AnimationCurve forceFalloff; // Token: 0x0400C359 RID: 50009 [global::Cpp2IlInjected.FieldOffset(Offset = "0x330")] [Token(Token = "0x400C359")] [SerializeField] protected AnimationCurve damageFalloff; // Token: 0x0400C35A RID: 50010 [global::Cpp2IlInjected.FieldOffset(Offset = "0x338")] [Token(Token = "0x400C35A")] [SerializeField] [Range(0f, 1f)] protected float maxPlayerDamageFalloff; // Token: 0x0400C35B RID: 50011 [global::Cpp2IlInjected.FieldOffset(Offset = "0x340")] [Token(Token = "0x400C35B")] protected EMPJPPLIPMG OEJMNKBJCHC; // Token: 0x0400C35C RID: 50012 [global::Cpp2IlInjected.FieldOffset(Offset = "0x348")] [Token(Token = "0x400C35C")] private Bullet HKDIKDABNCK; // Token: 0x0400C35D RID: 50013 [global::Cpp2IlInjected.FieldOffset(Offset = "0x350")] [Token(Token = "0x400C35D")] private GameObject FPEMCIJJPMJ; // Token: 0x0400C35E RID: 50014 [global::Cpp2IlInjected.FieldOffset(Offset = "0x358")] [Token(Token = "0x400C35E")] private float OCIINOPLKPK; // Token: 0x0400C35F RID: 50015 [global::Cpp2IlInjected.FieldOffset(Offset = "0x360")] [Token(Token = "0x400C35F")] private List GOFBMKPDJEM; } }