using System; using System.Collections; using Cpp2IlInjected; using RecRoom.Core.Combat; using UnityEngine; // Token: 0x02000548 RID: 1352 [Token(Token = "0x2000548")] public class ToolTrail : MonoBehaviour { // Token: 0x06002912 RID: 10514 RVA: 0x000A7838 File Offset: 0x000A5A38 [Token(Token = "0x6002912")] [Address(RVA = "0x846B10", Offset = "0x845910", VA = "0x180846B10")] private void Awake() { Tool componentInParent = base.GetComponentInParent(); this.NBHJPDBHDHB = componentInParent; MFBGLIHGCGO postReleaseEvent = componentInParent.PostReleaseEvent; Action action = new Action(this.PAEFCHDJPHF); MFBGLIHGCGO mfbglihgcgo = MFBGLIHGCGO.BPJDFPACLMK(postReleaseEvent, action); componentInParent.PostReleaseEvent = mfbglihgcgo; Tool nbhjpdbhdhb = this.NBHJPDBHDHB; MFBGLIHGCGO postPickupEvent = nbhjpdbhdhb.PostPickupEvent; Action action2 = new Action(this.AEHDEJPEAKM); MFBGLIHGCGO mfbglihgcgo2 = MFBGLIHGCGO.BPJDFPACLMK(postPickupEvent, action2); nbhjpdbhdhb.PostPickupEvent = mfbglihgcgo2; Tool nbhjpdbhdhb2 = this.NBHJPDBHDHB; EAHPNACBLDD attackAppliedEvent = nbhjpdbhdhb2.AttackAppliedEvent; Action action3 = new Action(this.FCAOMHKOJOH); EAHPNACBLDD eahpnacbldd = EAHPNACBLDD.BPJDFPACLMK(attackAppliedEvent, action3); nbhjpdbhdhb2.AttackAppliedEvent = eahpnacbldd; Tool nbhjpdbhdhb3 = this.NBHJPDBHDHB; EAHPNACBLDD postResetEvent = nbhjpdbhdhb3.PostResetEvent; Action action4 = new Action(this.LBODGLNOABB); EAHPNACBLDD eahpnacbldd2 = EAHPNACBLDD.BPJDFPACLMK(postResetEvent, action4); nbhjpdbhdhb3.PostResetEvent = eahpnacbldd2; TrailRenderer component = base.GetComponent(); this.DEOCLFNKJBN = component; } // Token: 0x06002913 RID: 10515 RVA: 0x000A7928 File Offset: 0x000A5B28 [Token(Token = "0x6002913")] [Address(RVA = "0x846E30", Offset = "0x845C30", VA = "0x180846E30")] private void Start() { TrailRenderer deoclfnkjbn = this.DEOCLFNKJBN; int num = 0; deoclfnkjbn.enabled = num != 0; this.DEOCLFNKJBN.Clear(); TrailRenderer deoclfnkjbn2 = this.DEOCLFNKJBN; int num2 = 0; deoclfnkjbn2.time = (float)num2; } // Token: 0x06002914 RID: 10516 RVA: 0x000A7968 File Offset: 0x000A5B68 [Token(Token = "0x6002914")] [Address(RVA = "0x846CE0", Offset = "0x845AE0", VA = "0x180846CE0")] private void OnDisable() { Coroutine onpijmcgcig = this.ONPIJMCGCIG; if (onpijmcgcig != 0) { base.StopCoroutine(onpijmcgcig); this.ONPIJMCGCIG = (ulong)0L; } } // Token: 0x06002915 RID: 10517 RVA: 0x000A7990 File Offset: 0x000A5B90 [Token(Token = "0x6002915")] [Address(RVA = "0x846FB0", Offset = "0x845DB0", VA = "0x180846FB0")] private void OnDestroy() { Tool nbhjpdbhdhb = this.NBHJPDBHDHB; int num = 0; if (nbhjpdbhdhb != num) { Tool nbhjpdbhdhb2 = this.NBHJPDBHDHB; MFBGLIHGCGO postReleaseEvent = nbhjpdbhdhb2.PostReleaseEvent; Action action = new Action(this.PAEFCHDJPHF); MFBGLIHGCGO mfbglihgcgo = MFBGLIHGCGO.GMNMHGMFGOL(postReleaseEvent, action); nbhjpdbhdhb2.PostReleaseEvent = mfbglihgcgo; Tool nbhjpdbhdhb3 = this.NBHJPDBHDHB; MFBGLIHGCGO postPickupEvent = nbhjpdbhdhb3.PostPickupEvent; Action action2 = new Action(this.AEHDEJPEAKM); MFBGLIHGCGO mfbglihgcgo2 = MFBGLIHGCGO.GMNMHGMFGOL(postPickupEvent, action2); nbhjpdbhdhb3.PostPickupEvent = mfbglihgcgo2; Tool nbhjpdbhdhb4 = this.NBHJPDBHDHB; EAHPNACBLDD attackAppliedEvent = nbhjpdbhdhb4.AttackAppliedEvent; Action action3 = new Action(this.FCAOMHKOJOH); EAHPNACBLDD eahpnacbldd = EAHPNACBLDD.GMNMHGMFGOL(attackAppliedEvent, action3); nbhjpdbhdhb4.AttackAppliedEvent = eahpnacbldd; Tool nbhjpdbhdhb5 = this.NBHJPDBHDHB; EAHPNACBLDD postResetEvent = nbhjpdbhdhb5.PostResetEvent; Action action4 = new Action(this.LBODGLNOABB); EAHPNACBLDD eahpnacbldd2 = EAHPNACBLDD.GMNMHGMFGOL(postResetEvent, action4); nbhjpdbhdhb5.PostResetEvent = eahpnacbldd2; } } // Token: 0x06002916 RID: 10518 RVA: 0x000A7A80 File Offset: 0x000A5C80 [Token(Token = "0x6002916")] [Address(RVA = "0x846E30", Offset = "0x845C30", VA = "0x180846E30")] private void LBODGLNOABB(Tool NBHJPDBHDHB, Vector3 BNMOCBJEEPN, Quaternion LPHCCEOHNIN, Vector3 GMMJHABHDHE, bool ACPOOMGHPKJ) { TrailRenderer deoclfnkjbn = this.DEOCLFNKJBN; int num = 0; deoclfnkjbn.enabled = num != 0; this.DEOCLFNKJBN.Clear(); TrailRenderer deoclfnkjbn2 = this.DEOCLFNKJBN; int num2 = 0; deoclfnkjbn2.time = (float)num2; } // Token: 0x06002917 RID: 10519 RVA: 0x000A7AC0 File Offset: 0x000A5CC0 [Token(Token = "0x6002917")] [Address(RVA = "0x847190", Offset = "0x845F90", VA = "0x180847190")] private void PAEFCHDJPHF(Tool EGFEJGHDNAI) { if (this.visibleUponRelease) { float num = this.releaseTime; this.DEOCLFNKJBN.enabled = true; this.DEOCLFNKJBN.time = num; if (this.fadeOutUponRelease) { float num2 = this.releaseTime; float num3 = this.releaseFadeOutDuration; this.LOCGIDPMDHA(num3, num2); } return; } TrailRenderer deoclfnkjbn = this.DEOCLFNKJBN; int num4 = 0; deoclfnkjbn.enabled = num4 != 0; this.DEOCLFNKJBN.Clear(); TrailRenderer deoclfnkjbn2 = this.DEOCLFNKJBN; int num5 = 0; deoclfnkjbn2.time = (float)num5; } // Token: 0x06002918 RID: 10520 RVA: 0x000A7B4C File Offset: 0x000A5D4C [Token(Token = "0x6002918")] [Address(RVA = "0x8469E0", Offset = "0x8457E0", VA = "0x1808469E0")] private void AEHDEJPEAKM(Tool EGFEJGHDNAI) { Coroutine onpijmcgcig = this.ONPIJMCGCIG; if (onpijmcgcig != 0) { base.StopCoroutine(onpijmcgcig); this.ONPIJMCGCIG = (ulong)0L; } TrailRenderer deoclfnkjbn = this.DEOCLFNKJBN; TrailRenderer deoclfnkjbn2; if (this.visibleWhileHeld) { float num = this.heldTime; deoclfnkjbn.enabled = true; deoclfnkjbn2 = this.DEOCLFNKJBN; deoclfnkjbn2.time = num; return; } int num2 = 0; deoclfnkjbn2.enabled = num2 != 0; this.DEOCLFNKJBN.Clear(); TrailRenderer deoclfnkjbn3 = this.DEOCLFNKJBN; int num3 = 0; deoclfnkjbn3.time = (float)num3; } // Token: 0x06002919 RID: 10521 RVA: 0x000A7BD4 File Offset: 0x000A5DD4 [Token(Token = "0x6002919")] [Address(RVA = "0x846D10", Offset = "0x845B10", VA = "0x180846D10")] private void FCAOMHKOJOH(Tool NBHJPDBHDHB, Weapon GDIGKHINJCG, FJDJKDOJKDO GMPCPLNNMGD, Vector3 KPLDEODOJID, Vector3 CDFHDACBFKN) { Coroutine onpijmcgcig = this.ONPIJMCGCIG; if (onpijmcgcig != 0) { base.StopCoroutine(onpijmcgcig); this.ONPIJMCGCIG = (ulong)0L; } TrailRenderer deoclfnkjbn = this.DEOCLFNKJBN; if (this.visibleAfterAttackApplied) { float num = this.forceAppliedTime; deoclfnkjbn.enabled = true; this.DEOCLFNKJBN.time = num; if (this.fadeOutAfterForceApplied) { float num2 = this.forceAppliedTime; float num3 = this.forceAppliedFadeOutDuration; this.LOCGIDPMDHA(num3, num2); } return; } this.DEOCLFNKJBN.Clear(); TrailRenderer deoclfnkjbn2 = this.DEOCLFNKJBN; int num4 = 0; deoclfnkjbn2.time = (float)num4; } // Token: 0x0600291A RID: 10522 RVA: 0x000A7C70 File Offset: 0x000A5E70 [Token(Token = "0x600291A")] [Address(RVA = "0x846E80", Offset = "0x845C80", VA = "0x180846E80")] private void LOCGIDPMDHA(float BJJEDIGOMGC, float IOACKBLNMHC) { Coroutine onpijmcgcig = this.ONPIJMCGCIG; if (onpijmcgcig != 0) { base.StopCoroutine(onpijmcgcig); this.ONPIJMCGCIG = (ulong)0L; } Tool nbhjpdbhdhb = this.NBHJPDBHDHB; int num = 0; if (nbhjpdbhdhb != num && this.NBHJPDBHDHB.gameObject.activeSelf) { ToolTrail.APCHLEMDPBM apchlemdpbm; apchlemdpbm.System.IDisposable.Dispose(); apchlemdpbm.duration = BJJEDIGOMGC; apchlemdpbm.maxTime = IOACKBLNMHC; apchlemdpbm.<>1__state = (int)((ulong)0L); apchlemdpbm.<>4__this = this; Coroutine coroutine = base.StartCoroutine(apchlemdpbm); this.ONPIJMCGCIG = coroutine; } } // Token: 0x0600291B RID: 10523 RVA: 0x000A7CFC File Offset: 0x000A5EFC [Token(Token = "0x600291B")] [Address(RVA = "0x846CE0", Offset = "0x845AE0", VA = "0x180846CE0")] private void BAMHBLEOJHF() { Coroutine onpijmcgcig = this.ONPIJMCGCIG; if (onpijmcgcig != 0) { base.StopCoroutine(onpijmcgcig); this.ONPIJMCGCIG = (ulong)0L; } } // Token: 0x0600291C RID: 10524 RVA: 0x000A7D24 File Offset: 0x000A5F24 [Token(Token = "0x600291C")] [Address(RVA = "0x846A90", Offset = "0x845890", VA = "0x180846A90")] private IEnumerator AIEENHBGKCA(float BJJEDIGOMGC, float IOACKBLNMHC) { /* An exception occurred when decompiling this method (0600291C) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.IEnumerator ToolTrail::AIEENHBGKCA(System.Single,System.Single) ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: call:void(APCHLEMDPBM::System.IDisposable.Dispose, ldloc:APCHLEMDPBM(var_0)) stfld:float32(APCHLEMDPBM::duration, ldloc:APCHLEMDPBM(var_0), ldloc:float32(BJJEDIGOMGC)) stfld:float32(APCHLEMDPBM::maxTime, ldloc:APCHLEMDPBM(var_0), ldloc:float32(IOACKBLNMHC)) stfld:int32(APCHLEMDPBM::<>1__state, ldloc:APCHLEMDPBM(var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](0))) stfld:ToolTrail(APCHLEMDPBM::<>4__this, ldloc:APCHLEMDPBM(var_0), ldloc:ToolTrail(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: 0x0600291D RID: 10525 RVA: 0x000A7D54 File Offset: 0x000A5F54 [Token(Token = "0x600291D")] [Address(RVA = "0x846E30", Offset = "0x845C30", VA = "0x180846E30")] private void JCJBALBOHOO() { TrailRenderer deoclfnkjbn = this.DEOCLFNKJBN; int num = 0; deoclfnkjbn.enabled = num != 0; this.DEOCLFNKJBN.Clear(); TrailRenderer deoclfnkjbn2 = this.DEOCLFNKJBN; int num2 = 0; deoclfnkjbn2.time = (float)num2; } // Token: 0x0600291E RID: 10526 RVA: 0x000A7D94 File Offset: 0x000A5F94 [Token(Token = "0x600291E")] [Address(RVA = "0x846DE0", Offset = "0x845BE0", VA = "0x180846DE0")] private void GIEOIPBDGCD(float DBIHDDMKDJN) { this.DEOCLFNKJBN.enabled = true; this.DEOCLFNKJBN.time = DBIHDDMKDJN; } // Token: 0x0600291F RID: 10527 RVA: 0x000A7DC0 File Offset: 0x000A5FC0 [Token(Token = "0x600291F")] [Address(RVA = "0x847250", Offset = "0x846050", VA = "0x180847250")] public ToolTrail() { } // Token: 0x04002101 RID: 8449 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4002101")] [SerializeField] [Header("Held Trails")] private bool visibleWhileHeld = true; // Token: 0x04002102 RID: 8450 [FieldOffset(Offset = "0x1C")] [Token(Token = "0x4002102")] [SerializeField] private float heldTime = 2f; // Token: 0x04002103 RID: 8451 [FieldOffset(Offset = "0x20")] [Token(Token = "0x4002103")] [SerializeField] [Header("Release Trails")] private bool visibleUponRelease = true; // Token: 0x04002104 RID: 8452 [FieldOffset(Offset = "0x24")] [Token(Token = "0x4002104")] [SerializeField] private float releaseTime = 2f; // Token: 0x04002105 RID: 8453 [FieldOffset(Offset = "0x28")] [Token(Token = "0x4002105")] [SerializeField] private bool fadeOutUponRelease; // Token: 0x04002106 RID: 8454 [FieldOffset(Offset = "0x2C")] [Token(Token = "0x4002106")] [SerializeField] private float releaseFadeOutDuration = 1f; // Token: 0x04002107 RID: 8455 [FieldOffset(Offset = "0x30")] [Token(Token = "0x4002107")] [SerializeField] [Header("Force Applied Trails")] private bool visibleAfterAttackApplied = true; // Token: 0x04002108 RID: 8456 [FieldOffset(Offset = "0x34")] [Token(Token = "0x4002108")] [SerializeField] private float forceAppliedTime = 2f; // Token: 0x04002109 RID: 8457 [FieldOffset(Offset = "0x38")] [Token(Token = "0x4002109")] [SerializeField] private bool fadeOutAfterForceApplied = true; // Token: 0x0400210A RID: 8458 [FieldOffset(Offset = "0x3C")] [Token(Token = "0x400210A")] [SerializeField] private float forceAppliedFadeOutDuration = 1f; // Token: 0x0400210B RID: 8459 [FieldOffset(Offset = "0x40")] [Token(Token = "0x400210B")] private Tool NBHJPDBHDHB; // Token: 0x0400210C RID: 8460 [FieldOffset(Offset = "0x48")] [Token(Token = "0x400210C")] private TrailRenderer DEOCLFNKJBN; // Token: 0x0400210D RID: 8461 [FieldOffset(Offset = "0x50")] [Token(Token = "0x400210D")] private Coroutine ONPIJMCGCIG; }