using System; using System.Collections; using System.Runtime.InteropServices; using Cpp2IlInjected; using RecRoom; using RecRoom.Core.Combat; using UnityEngine; // Token: 0x02000556 RID: 1366 [Token(Token = "0x2000556")] [StructLayout(3)] public class ToolTrail : MonoBehaviour { // Token: 0x06002936 RID: 10550 RVA: 0x000AB258 File Offset: 0x000A9458 [Token(Token = "0x6002936")] [Address(RVA = "0x1892700", Offset = "0x1891100", VA = "0x181892700")] private void Awake() { Tool componentInParent = base.GetComponentInParent(); this.NBHJPDBHDHB = componentInParent; ActionEvent postReleaseEvent = componentInParent.PostReleaseEvent; Action action = new Action(this.PAEFCHDJPHF); ActionEvent actionEvent = postReleaseEvent + action; componentInParent.PostReleaseEvent = actionEvent; Tool nbhjpdbhdhb = this.NBHJPDBHDHB; ActionEvent postPickupEvent = nbhjpdbhdhb.PostPickupEvent; Action action2 = new Action(this.AEHDEJPEAKM); ActionEvent actionEvent2 = postPickupEvent + action2; nbhjpdbhdhb.PostPickupEvent = actionEvent2; Tool nbhjpdbhdhb2 = this.NBHJPDBHDHB; ActionEvent attackAppliedEvent = nbhjpdbhdhb2.AttackAppliedEvent; Action action3 = new Action(this.FCAOMHKOJOH); ActionEvent actionEvent3; nbhjpdbhdhb2.AttackAppliedEvent = actionEvent3; Tool nbhjpdbhdhb3 = this.NBHJPDBHDHB; ActionEvent postResetEvent = nbhjpdbhdhb3.PostResetEvent; Action action4 = new Action(this.LBODGLNOABB); ActionEvent actionEvent4; nbhjpdbhdhb3.PostResetEvent = actionEvent4; TrailRenderer component = base.GetComponent(); this.DEOCLFNKJBN = component; } // Token: 0x06002937 RID: 10551 RVA: 0x000AB330 File Offset: 0x000A9530 [Token(Token = "0x6002937")] [Address(RVA = "0x18929E0", Offset = "0x18913E0", VA = "0x1818929E0")] private void Start() { TrailRenderer deoclfnkjbn = this.DEOCLFNKJBN; int num = 0; deoclfnkjbn.enabled = num != 0; TrailRenderer deoclfnkjbn2 = this.DEOCLFNKJBN; int num2 = 0; deoclfnkjbn2.time = (float)num2; } // Token: 0x06002938 RID: 10552 RVA: 0x000AB364 File Offset: 0x000A9564 [Token(Token = "0x6002938")] [Address(RVA = "0x145F460", Offset = "0x145DE60", VA = "0x18145F460")] private void OnDisable() { Coroutine onpijmcgcig = this.ONPIJMCGCIG; if (onpijmcgcig != 0) { base.StopCoroutine(onpijmcgcig); this.ONPIJMCGCIG = (ulong)0L; } } // Token: 0x06002939 RID: 10553 RVA: 0x000AB38C File Offset: 0x000A958C [Token(Token = "0x6002939")] [Address(RVA = "0x1892B50", Offset = "0x1891550", VA = "0x181892B50")] private void OnDestroy() { Tool nbhjpdbhdhb = this.NBHJPDBHDHB; int num = 0; if (nbhjpdbhdhb != num) { Tool nbhjpdbhdhb2 = this.NBHJPDBHDHB; ActionEvent postReleaseEvent = nbhjpdbhdhb2.PostReleaseEvent; Action action = new Action(this.PAEFCHDJPHF); ActionEvent actionEvent = postReleaseEvent - action; nbhjpdbhdhb2.PostReleaseEvent = actionEvent; Tool nbhjpdbhdhb3 = this.NBHJPDBHDHB; ActionEvent postPickupEvent = nbhjpdbhdhb3.PostPickupEvent; Action action2 = new Action(this.AEHDEJPEAKM); ActionEvent actionEvent2 = postPickupEvent - action2; nbhjpdbhdhb3.PostPickupEvent = actionEvent2; Tool nbhjpdbhdhb4 = this.NBHJPDBHDHB; ActionEvent attackAppliedEvent = nbhjpdbhdhb4.AttackAppliedEvent; Action action3 = new Action(this.FCAOMHKOJOH); ActionEvent actionEvent3; nbhjpdbhdhb4.AttackAppliedEvent = actionEvent3; Tool nbhjpdbhdhb5 = this.NBHJPDBHDHB; ActionEvent postResetEvent = nbhjpdbhdhb5.PostResetEvent; Action action4 = new Action(this.LBODGLNOABB); ActionEvent actionEvent4; nbhjpdbhdhb5.PostResetEvent = actionEvent4; } } // Token: 0x0600293A RID: 10554 RVA: 0x000AB468 File Offset: 0x000A9668 [Token(Token = "0x600293A")] [Address(RVA = "0x18929E0", Offset = "0x18913E0", VA = "0x1818929E0")] private void LBODGLNOABB(Tool NBHJPDBHDHB, Vector3 BNMOCBJEEPN, Quaternion LPHCCEOHNIN, Vector3 GMMJHABHDHE, bool ACPOOMGHPKJ) { TrailRenderer deoclfnkjbn = this.DEOCLFNKJBN; int num = 0; deoclfnkjbn.enabled = num != 0; TrailRenderer deoclfnkjbn2 = this.DEOCLFNKJBN; int num2 = 0; deoclfnkjbn2.time = (float)num2; } // Token: 0x0600293B RID: 10555 RVA: 0x000AB49C File Offset: 0x000A969C [Token(Token = "0x600293B")] [Address(RVA = "0x1892D30", Offset = "0x1891730", VA = "0x181892D30")] 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; TrailRenderer deoclfnkjbn2 = this.DEOCLFNKJBN; int num5 = 0; deoclfnkjbn2.time = (float)num5; } // Token: 0x0600293C RID: 10556 RVA: 0x000AB520 File Offset: 0x000A9720 [Token(Token = "0x600293C")] [Address(RVA = "0x18925E0", Offset = "0x1890FE0", VA = "0x1818925E0")] 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; TrailRenderer deoclfnkjbn3 = this.DEOCLFNKJBN; int num3 = 0; deoclfnkjbn3.time = (float)num3; } // Token: 0x0600293D RID: 10557 RVA: 0x000AB59C File Offset: 0x000A979C [Token(Token = "0x600293D")] [Address(RVA = "0x18928D0", Offset = "0x18912D0", VA = "0x1818928D0")] 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; } TrailRenderer deoclfnkjbn2 = this.DEOCLFNKJBN; int num4 = 0; deoclfnkjbn2.time = (float)num4; } // Token: 0x0600293E RID: 10558 RVA: 0x000AB630 File Offset: 0x000A9830 [Token(Token = "0x600293E")] [Address(RVA = "0x1892A20", Offset = "0x1891420", VA = "0x181892A20")] 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: 0x0600293F RID: 10559 RVA: 0x000AB6BC File Offset: 0x000A98BC [Token(Token = "0x600293F")] [Address(RVA = "0x145F460", Offset = "0x145DE60", VA = "0x18145F460")] private void BAMHBLEOJHF() { Coroutine onpijmcgcig = this.ONPIJMCGCIG; if (onpijmcgcig != 0) { base.StopCoroutine(onpijmcgcig); this.ONPIJMCGCIG = (ulong)0L; } } // Token: 0x06002940 RID: 10560 RVA: 0x000AB6E4 File Offset: 0x000A98E4 [Token(Token = "0x6002940")] [Address(RVA = "0x1892680", Offset = "0x1891080", VA = "0x181892680")] private IEnumerator AIEENHBGKCA(float BJJEDIGOMGC, float IOACKBLNMHC) { /* An exception occurred when decompiling this method (06002940) 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: 0x06002941 RID: 10561 RVA: 0x000AB714 File Offset: 0x000A9914 [Token(Token = "0x6002941")] [Address(RVA = "0x18929E0", Offset = "0x18913E0", VA = "0x1818929E0")] private void JCJBALBOHOO() { TrailRenderer deoclfnkjbn = this.DEOCLFNKJBN; int num = 0; deoclfnkjbn.enabled = num != 0; TrailRenderer deoclfnkjbn2 = this.DEOCLFNKJBN; int num2 = 0; deoclfnkjbn2.time = (float)num2; } // Token: 0x06002942 RID: 10562 RVA: 0x000AB748 File Offset: 0x000A9948 [Token(Token = "0x6002942")] [Address(RVA = "0x1892990", Offset = "0x1891390", VA = "0x181892990")] private void GIEOIPBDGCD(float DBIHDDMKDJN) { this.DEOCLFNKJBN.enabled = true; this.DEOCLFNKJBN.time = DBIHDDMKDJN; } // Token: 0x06002943 RID: 10563 RVA: 0x000AB774 File Offset: 0x000A9974 [Token(Token = "0x6002943")] [Address(RVA = "0x1892DD0", Offset = "0x18917D0", VA = "0x181892DD0")] public ToolTrail() { } // Token: 0x040022B5 RID: 8885 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x40022B5")] [SerializeField] [Header("Held Trails")] private bool visibleWhileHeld = true; // Token: 0x040022B6 RID: 8886 [global::Cpp2IlInjected.FieldOffset(Offset = "0x1C")] [Token(Token = "0x40022B6")] [SerializeField] private float heldTime = 2f; // Token: 0x040022B7 RID: 8887 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x40022B7")] [SerializeField] [Header("Release Trails")] private bool visibleUponRelease = true; // Token: 0x040022B8 RID: 8888 [global::Cpp2IlInjected.FieldOffset(Offset = "0x24")] [Token(Token = "0x40022B8")] [SerializeField] private float releaseTime = 2f; // Token: 0x040022B9 RID: 8889 [global::Cpp2IlInjected.FieldOffset(Offset = "0x28")] [Token(Token = "0x40022B9")] [SerializeField] private bool fadeOutUponRelease; // Token: 0x040022BA RID: 8890 [global::Cpp2IlInjected.FieldOffset(Offset = "0x2C")] [Token(Token = "0x40022BA")] [SerializeField] private float releaseFadeOutDuration = 1f; // Token: 0x040022BB RID: 8891 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30")] [Token(Token = "0x40022BB")] [SerializeField] [Header("Force Applied Trails")] private bool visibleAfterAttackApplied = true; // Token: 0x040022BC RID: 8892 [global::Cpp2IlInjected.FieldOffset(Offset = "0x34")] [Token(Token = "0x40022BC")] [SerializeField] private float forceAppliedTime = 2f; // Token: 0x040022BD RID: 8893 [global::Cpp2IlInjected.FieldOffset(Offset = "0x38")] [Token(Token = "0x40022BD")] [SerializeField] private bool fadeOutAfterForceApplied = true; // Token: 0x040022BE RID: 8894 [global::Cpp2IlInjected.FieldOffset(Offset = "0x3C")] [Token(Token = "0x40022BE")] [SerializeField] private float forceAppliedFadeOutDuration = 1f; // Token: 0x040022BF RID: 8895 [global::Cpp2IlInjected.FieldOffset(Offset = "0x40")] [Token(Token = "0x40022BF")] private Tool NBHJPDBHDHB; // Token: 0x040022C0 RID: 8896 [global::Cpp2IlInjected.FieldOffset(Offset = "0x48")] [Token(Token = "0x40022C0")] private TrailRenderer DEOCLFNKJBN; // Token: 0x040022C1 RID: 8897 [global::Cpp2IlInjected.FieldOffset(Offset = "0x50")] [Token(Token = "0x40022C1")] private Coroutine ONPIJMCGCIG; }