This commit is contained in:
niko
2026-04-10 22:50:51 +02:00
parent 6d1607d5a2
commit f18d448581
17033 changed files with 2863270 additions and 0 deletions
@@ -0,0 +1,375 @@
using System;
using System.Collections;
using Cpp2IlInjected;
using RecRoom.Core.Combat;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B5F RID: 11103
[Token(Token = "0x2002B5F")]
public class AutomaticGun : RangedWeapon
{
// Token: 0x1700341F RID: 13343
// (get) Token: 0x06012AA8 RID: 76456 RVA: 0x00447E18 File Offset: 0x00446018
[Token(Token = "0x1700341F")]
public virtual bool PNJFDBBDPLK
{
[Token(Token = "0x6012AA8")]
[Address(RVA = "0x10C9440", Offset = "0x10C8240", VA = "0x1810C9440", Slot = "52")]
get
{
if (this.MOHJLDOAEMP && base.NOOCGFJOMEM)
{
return !base.MJDHKAHMGMO;
}
}
}
// Token: 0x06012AA9 RID: 76457 RVA: 0x00447E44 File Offset: 0x00446044
[Token(Token = "0x6012AA9")]
[Address(RVA = "0x10C8890", Offset = "0x10C7690", VA = "0x1810C8890", Slot = "13")]
protected override void Awake()
{
base.Awake();
Tool tool = this._tool;
int num = 0;
if (tool != num)
{
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> postPickupEvent = tool2.PostPickupEvent;
Action<Tool> action = new Action(this.EOEEJHHPNNO);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.BPJDFPACLMK(postPickupEvent, action);
tool2.PostPickupEvent = mfbglihgcgo;
Tool tool3 = this._tool;
MFBGLIHGCGO<Tool> inputDownEvent = tool3.InputDownEvent;
Action<Tool> action2 = new Action(this.OnInputDown);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.BPJDFPACLMK(inputDownEvent, action2);
tool3.InputDownEvent = mfbglihgcgo2;
Tool tool4 = this._tool;
MFBGLIHGCGO<Tool> inputPressedEvent = tool4.InputPressedEvent;
Action<Tool> action3 = new Action(this.LKFFMLDMLAB);
MFBGLIHGCGO<Tool> mfbglihgcgo3 = MFBGLIHGCGO.BPJDFPACLMK(inputPressedEvent, action3);
tool4.InputPressedEvent = mfbglihgcgo3;
Tool tool5 = this._tool;
MFBGLIHGCGO<Tool> inputUpEvent = tool5.InputUpEvent;
Action<Tool> action4 = new Action(this.OnInputUp);
MFBGLIHGCGO<Tool> mfbglihgcgo4 = MFBGLIHGCGO.BPJDFPACLMK(inputUpEvent, action4);
tool5.InputUpEvent = mfbglihgcgo4;
Tool tool6 = this._tool;
MFBGLIHGCGO<Tool> inputCancelledEvent = tool6.InputCancelledEvent;
Action<Tool> action5 = new Action(this.FIECILCCNFD);
MFBGLIHGCGO<Tool> mfbglihgcgo5 = MFBGLIHGCGO.BPJDFPACLMK(inputCancelledEvent, action5);
tool6.InputCancelledEvent = mfbglihgcgo5;
}
}
// Token: 0x06012AAA RID: 76458 RVA: 0x00447F70 File Offset: 0x00446170
[Token(Token = "0x6012AAA")]
[Address(RVA = "0x10C9190", Offset = "0x10C7F90", VA = "0x1810C9190", Slot = "14")]
protected override void OnDestroy()
{
base.OnDestroy();
Tool tool = this._tool;
int num = 0;
if (tool != num)
{
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> postPickupEvent = tool2.PostPickupEvent;
Action<Tool> action = new Action(this.EOEEJHHPNNO);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.GMNMHGMFGOL(postPickupEvent, action);
tool2.PostPickupEvent = mfbglihgcgo;
Tool tool3 = this._tool;
MFBGLIHGCGO<Tool> inputDownEvent = tool3.InputDownEvent;
Action<Tool> action2 = new Action(this.OnInputDown);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.GMNMHGMFGOL(inputDownEvent, action2);
tool3.InputDownEvent = mfbglihgcgo2;
Tool tool4 = this._tool;
MFBGLIHGCGO<Tool> inputPressedEvent = tool4.InputPressedEvent;
Action<Tool> action3 = new Action(this.LKFFMLDMLAB);
MFBGLIHGCGO<Tool> mfbglihgcgo3 = MFBGLIHGCGO.GMNMHGMFGOL(inputPressedEvent, action3);
tool4.InputPressedEvent = mfbglihgcgo3;
Tool tool5 = this._tool;
MFBGLIHGCGO<Tool> inputUpEvent = tool5.InputUpEvent;
Action<Tool> action4 = new Action(this.OnInputUp);
MFBGLIHGCGO<Tool> mfbglihgcgo4 = MFBGLIHGCGO.GMNMHGMFGOL(inputUpEvent, action4);
tool5.InputUpEvent = mfbglihgcgo4;
Tool tool6 = this._tool;
MFBGLIHGCGO<Tool> inputCancelledEvent = tool6.InputCancelledEvent;
Action<Tool> action5 = new Action(this.FIECILCCNFD);
MFBGLIHGCGO<Tool> mfbglihgcgo5 = MFBGLIHGCGO.GMNMHGMFGOL(inputCancelledEvent, action5);
tool6.InputCancelledEvent = mfbglihgcgo5;
}
}
// Token: 0x06012AAB RID: 76459 RVA: 0x0044809C File Offset: 0x0044629C
[Token(Token = "0x6012AAB")]
[Address(RVA = "0x10C8CD0", Offset = "0x10C7AD0", VA = "0x1810C8CD0")]
private void EOEEJHHPNNO(Tool NBHJPDBHDHB)
{
this.MCJNFKDIACH = false;
}
// Token: 0x06012AAC RID: 76460 RVA: 0x004480B0 File Offset: 0x004462B0
[Token(Token = "0x6012AAC")]
[Address(RVA = "0x10C93D0", Offset = "0x10C81D0", VA = "0x1810C93D0")]
public void OnInputDown(Tool NBHJPDBHDHB)
{
this.MCJNFKDIACH = true;
this.DDKKKPDMLEK();
}
// Token: 0x06012AAD RID: 76461 RVA: 0x004480CC File Offset: 0x004462CC
[Token(Token = "0x6012AAD")]
[Address(RVA = "0x10C8F30", Offset = "0x10C7D30", VA = "0x1810C8F30")]
private void LKFFMLDMLAB(Tool NBHJPDBHDHB)
{
if (this.MCJNFKDIACH && this.BEPNKDAGFBN <= (ulong)0L && base.NOOCGFJOMEM && !base.MJDHKAHMGMO && !base.LAJLNCJKALH)
{
this.DDKKKPDMLEK();
return;
}
}
// Token: 0x06012AAE RID: 76462 RVA: 0x00448110 File Offset: 0x00446310
[Token(Token = "0x6012AAE")]
[Address(RVA = "0x10C8AD0", Offset = "0x10C78D0", VA = "0x1810C8AD0")]
private void DDKKKPDMLEK()
{
if (base.OGIBLNIIHDK)
{
if (base.NOOCGFJOMEM)
{
if (!base.MJDHKAHMGMO && !base.LAJLNCJKALH)
{
this.IGIDNLPODPD();
}
this._weaponAudio.OnMisfire();
}
this.MIKJDLDPIEP();
}
if (base.NOOCGFJOMEM && !base.MJDHKAHMGMO && !base.LAJLNCJKALH)
{
this.MOHJLDOAEMP = true;
}
}
// Token: 0x06012AAF RID: 76463 RVA: 0x00448180 File Offset: 0x00446380
[Token(Token = "0x6012AAF")]
[Address(RVA = "0x10C8CF0", Offset = "0x10C7AF0", VA = "0x1810C8CF0")]
public void OnInputUp(Tool NBHJPDBHDHB)
{
bool firing = this.PNJFDBBDPLK;
this.MOHJLDOAEMP = false;
}
// Token: 0x06012AB0 RID: 76464 RVA: 0x0044819C File Offset: 0x0044639C
[Token(Token = "0x6012AB0")]
[Address(RVA = "0x10C8CF0", Offset = "0x10C7AF0", VA = "0x1810C8CF0")]
private void FIECILCCNFD(Tool NBHJPDBHDHB)
{
bool firing = this.PNJFDBBDPLK;
this.MOHJLDOAEMP = false;
}
// Token: 0x06012AB1 RID: 76465 RVA: 0x004481B8 File Offset: 0x004463B8
[Token(Token = "0x6012AB1")]
[Address(RVA = "0x10C8D20", Offset = "0x10C7B20", VA = "0x1810C8D20", Slot = "40")]
public override void Fire(float LFDFFDCJAAD = 1f)
{
float num = this.bulletFireSpeed;
Vector3 vector;
float z = vector.z;
Vector3 vector2;
float z2 = vector2.z;
float num2 = this.spreadAngleRange * 0.5f;
float num3 = global::UnityEngine.Random.Range(num2, LFDFFDCJAAD);
num3 = num2;
float num4 = global::UnityEngine.Random.Range(num3, LFDFFDCJAAD);
num4 = num2;
float num5 = global::UnityEngine.Random.Range(num4, LFDFFDCJAAD);
num = num4;
Quaternion quaternion = Quaternion.Euler(num5, LFDFFDCJAAD, num);
Vector3 vector3;
float z3 = vector3.z;
this.Fire(LFDFFDCJAAD);
}
// Token: 0x06012AB2 RID: 76466 RVA: 0x00448234 File Offset: 0x00446434
[Token(Token = "0x6012AB2")]
[Address(RVA = "0x10C8FF0", Offset = "0x10C7DF0", VA = "0x1810C8FF0", Slot = "42")]
protected override void OICJPFPBIIK(Vector3 DDHPAFKBMON, Quaternion IGPENJBJADK, Vector3 NHAOMEMANJA, float LFDFFDCJAAD, bool FLKHKHDBIOH, byte LNPHJIHHNPN)
{
float z = NHAOMEMANJA.z;
float z2 = DDHPAFKBMON.z;
float z3 = NHAOMEMANJA.z;
float z4 = DDHPAFKBMON.z;
float num = this.maxProjectileLifetime;
}
// Token: 0x06012AB3 RID: 76467 RVA: 0x00448268 File Offset: 0x00446468
[Token(Token = "0x6012AB3")]
[Address(RVA = "0x10C8F00", Offset = "0x10C7D00", VA = "0x1810C8F00", Slot = "53")]
protected virtual void IGIDNLPODPD()
{
Coroutine bepnkdagfbn = this.BEPNKDAGFBN;
if (bepnkdagfbn != 0)
{
base.StopCoroutine(bepnkdagfbn);
this.BEPNKDAGFBN = (ulong)0L;
}
}
// Token: 0x06012AB4 RID: 76468 RVA: 0x00448290 File Offset: 0x00446490
[Token(Token = "0x6012AB4")]
[Address(RVA = "0x10C8800", Offset = "0x10C7600", VA = "0x1810C8800", Slot = "54")]
protected virtual void ABNPFEDICFJ()
{
Coroutine bepnkdagfbn = this.BEPNKDAGFBN;
if (bepnkdagfbn != 0)
{
base.StopCoroutine(bepnkdagfbn);
this.BEPNKDAGFBN = (ulong)0L;
}
AutomaticGun.OJFCILJHBHP ojfciljhbhp;
ojfciljhbhp.System.IDisposable.Dispose();
ojfciljhbhp.<>1__state = (int)((ulong)0L);
ojfciljhbhp.<>4__this = this;
Coroutine coroutine = base.StartCoroutine(ojfciljhbhp);
this.BEPNKDAGFBN = coroutine;
}
// Token: 0x06012AB5 RID: 76469 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6012AB5")]
[Address(RVA = "0x10C8CE0", Offset = "0x10C7AE0", VA = "0x1810C8CE0")]
private bool FADFNLCAHDL()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06012AB6 RID: 76470 RVA: 0x004482E0 File Offset: 0x004464E0
[Token(Token = "0x6012AB6")]
[Address(RVA = "0x10C9130", Offset = "0x10C7F30", VA = "0x1810C9130")]
private IEnumerator OKGEHOCJFJL()
{
/*
An exception occurred when decompiling this method (06012AB6)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.IEnumerator RecRoom.Tools.Weapons.AutomaticGun::OKGEHOCJFJL()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
call:void(OJFCILJHBHP::System.IDisposable.Dispose, ldloc:OJFCILJHBHP(var_0))
stfld:int32(OJFCILJHBHP::<>1__state, ldloc:OJFCILJHBHP(var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](0)))
stfld:AutomaticGun(OJFCILJHBHP::<>4__this, ldloc:OJFCILJHBHP(var_0), ldloc:AutomaticGun(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: 0x06012AB7 RID: 76471 RVA: 0x00448304 File Offset: 0x00446504
[Token(Token = "0x6012AB7")]
[Address(RVA = "0x10C8F90", Offset = "0x10C7D90", VA = "0x1810C8F90")]
protected IEnumerator MBDNELNADAJ(float MOPKOPOKKEE)
{
/*
An exception occurred when decompiling this method (06012AB7)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.IEnumerator RecRoom.Tools.Weapons.AutomaticGun::MBDNELNADAJ(System.Single)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
call:void(IBGNIBNDBFM::System.IDisposable.Dispose, ldloc:IBGNIBNDBFM(var_0))
stfld:float32(IBGNIBNDBFM::time, ldloc:IBGNIBNDBFM(var_0), ldloc:float32(MOPKOPOKKEE))
stfld:int32(IBGNIBNDBFM::<>1__state, ldloc:IBGNIBNDBFM(var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](0)))
}
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: 0x06012AB8 RID: 76472 RVA: 0x00448328 File Offset: 0x00446528
[Token(Token = "0x6012AB8")]
[Address(RVA = "0x10C8B90", Offset = "0x10C7990", VA = "0x1810C8B90")]
protected Vector3 DIGPIBMCOHL(Vector3 NHAOMEMANJA)
{
/*
An exception occurred when decompiling this method (06012AB8)
ICSharpCode.Decompiler.DecompilerException: Error decompiling UnityEngine.Vector3 RecRoom.Tools.Weapons.AutomaticGun::DIGPIBMCOHL(UnityEngine.Vector3)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:float32(var_1_07, call:float32(Random::Range, ldloc:float32(var_0), ldloc:float32(var_0)))
stloc:float32(var_1_09, ldloc:float32(var_0))
stloc:float32(var_2_11, call:float32(Random::Range, ldloc:float32(var_1_09), ldloc:float32(var_0)))
stloc:float32(var_2_13, ldloc:float32(var_0))
stloc:float32(var_3_1B, call:float32(Random::Range, ldloc:float32(var_2_13), ldloc:float32(var_0)))
stloc:float32(var_0, ldloc:float32(var_3_1B))
stloc:float32(var_0, ldloc:float32(var_1_09))
stloc:Quaternion(var_5_28, call:Quaternion(Quaternion::Euler, ldloc:float32(var_3_1B), ldloc:float32(var_0), ldloc:float32(var_2_13)))
stloc:float32(var_7_31, ldfld:float32(Vector3::z, ldloc:Vector3[exp:valuetype [UnityEngine.CoreModule]UnityEngine.Vector3&](var_6)))
}
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: 0x06012AB9 RID: 76473 RVA: 0x00448368 File Offset: 0x00446568
[Token(Token = "0x6012AB9")]
[Address(RVA = "0x10C93E0", Offset = "0x10C81E0", VA = "0x1810C93E0")]
public AutomaticGun()
{
}
// Token: 0x0400C0E0 RID: 49376
[FieldOffset(Offset = "0x2F0")]
[Token(Token = "0x400C0E0")]
[SerializeField]
[Header("Automatic Fire")]
private float spreadAngleRange;
// Token: 0x0400C0E1 RID: 49377
[FieldOffset(Offset = "0x2F4")]
[Token(Token = "0x400C0E1")]
[SerializeField]
private float maxProjectileLifetime = -1f;
// Token: 0x0400C0E2 RID: 49378
[FieldOffset(Offset = "0x2F8")]
[Token(Token = "0x400C0E2")]
protected Coroutine BEPNKDAGFBN;
// Token: 0x0400C0E3 RID: 49379
[FieldOffset(Offset = "0x300")]
[Token(Token = "0x400C0E3")]
protected bool MOHJLDOAEMP;
// Token: 0x0400C0E4 RID: 49380
[FieldOffset(Offset = "0x301")]
[Token(Token = "0x400C0E4")]
private bool MCJNFKDIACH;
}
}
@@ -0,0 +1,581 @@
using System;
using System.Collections;
using Cpp2IlInjected;
using RecRoom.Core.Pools;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B62 RID: 11106
[Token(Token = "0x2002B62")]
public class BeamGun : AutomaticGun
{
// Token: 0x17003424 RID: 13348
// (get) Token: 0x06012AC6 RID: 76486 RVA: 0x0044851C File Offset: 0x0044671C
[Token(Token = "0x17003424")]
public float IFOHNKPCKAO
{
[Token(Token = "0x6012AC6")]
[Address(RVA = "0x10CAEE0", Offset = "0x10C9CE0", VA = "0x1810CAEE0")]
get
{
return this.DMMJFGOBDHL.IAHDANBDAAM();
}
}
// Token: 0x17003425 RID: 13349
// (get) Token: 0x06012AC7 RID: 76487 RVA: 0x0044853C File Offset: 0x0044673C
// (set) Token: 0x06012AC8 RID: 76488 RVA: 0x0044855C File Offset: 0x0044675C
[Token(Token = "0x17003425")]
protected float CFAFEGBJMNK
{
[Token(Token = "0x6012AC7")]
[Address(RVA = "0x10C9690", Offset = "0x10C8490", VA = "0x1810C9690")]
get
{
return this.DMMJFGOBDHL.IAHDANBDAAM();
}
[Token(Token = "0x6012AC8")]
[Address(RVA = "0x10C9630", Offset = "0x10C8430", VA = "0x1810C9630")]
set
{
KLLMCPFPIIE<float> dmmjfgobdhl = this.DMMJFGOBDHL;
}
}
// Token: 0x17003426 RID: 13350
// (get) Token: 0x06012AC9 RID: 76489 RVA: 0x00448578 File Offset: 0x00446778
[Token(Token = "0x17003426")]
protected bool HNDAKLNGFJJ
{
[Token(Token = "0x6012AC9")]
[Address(RVA = "0x10CA550", Offset = "0x10C9350", VA = "0x1810CA550")]
get
{
float num = this.DMMJFGOBDHL.IAHDANBDAAM();
throw new NullReferenceException();
}
}
// Token: 0x17003427 RID: 13351
// (get) Token: 0x06012ACA RID: 76490 RVA: 0x00448598 File Offset: 0x00446798
[Token(Token = "0x17003427")]
protected bool FCKFIMACGJN
{
[Token(Token = "0x6012ACA")]
[Address(RVA = "0x10CA830", Offset = "0x10C9630", VA = "0x1810CA830")]
get
{
float num = this.DMMJFGOBDHL.IAHDANBDAAM();
int num2 = 0;
if (num <= (float)num2)
{
}
float num3 = this.DMMJFGOBDHL.IAHDANBDAAM();
float num4 = this.chargeActivationTime;
throw new NullReferenceException();
}
}
// Token: 0x06012ACB RID: 76491 RVA: 0x004485D4 File Offset: 0x004467D4
[Token(Token = "0x6012ACB")]
[Address(RVA = "0x10C96E0", Offset = "0x10C84E0", VA = "0x1810C96E0", Slot = "13")]
protected override void Awake()
{
base.Awake();
KLLMCPFPIIE<float> kllmcpfpiie;
this.DMMJFGOBDHL = kllmcpfpiie;
}
// Token: 0x06012ACC RID: 76492 RVA: 0x004485F0 File Offset: 0x004467F0
[Token(Token = "0x6012ACC")]
[Address(RVA = "0x10CA8D0", Offset = "0x10C96D0", VA = "0x1810CA8D0", Slot = "17")]
protected override void Start()
{
base.Start();
GlobalPool instance = GlobalPool.ONCPNMDGGKG;
PooledParticle pooledParticle = this.chargeParticlePrefab;
PooledParticle pooledParticle2 = instance.Acquire<PooledParticle>(pooledParticle);
this.OIHJPCBJPMH = pooledParticle2;
Transform transform = pooledParticle2.transform;
Transform muzzleFlashOrigin = this.muzzleFlashOrigin;
transform.parentInternal = muzzleFlashOrigin;
Transform transform2 = this.OIHJPCBJPMH.transform;
float z = Vector3.zero.z;
Transform transform3 = this.OIHJPCBJPMH.transform;
Quaternion identity = Quaternion.identity;
ParticleSystem.MainModule main = this.OIHJPCBJPMH.<OAIDPPDMCPA>k__BackingField.main;
this.ELAGCCLEHBC = main;
GlobalPool instance2 = GlobalPool.ONCPNMDGGKG;
PooledParticle pooledParticle3 = this.muzzleFlashParticlePrefab;
PooledParticle pooledParticle4 = instance2.Acquire<PooledParticle>(pooledParticle3);
this.JGJGCNPAMFM = pooledParticle4;
Transform transform4 = pooledParticle4.transform;
Transform muzzleFlashOrigin2 = this.muzzleFlashOrigin;
transform4.parentInternal = muzzleFlashOrigin2;
Transform transform5 = this.JGJGCNPAMFM.transform;
float z2 = Vector3.zero.z;
Transform transform6 = this.JGJGCNPAMFM.transform;
Quaternion identity2 = Quaternion.identity;
GlobalPool instance3 = GlobalPool.ONCPNMDGGKG;
PooledParticle pooledParticle5 = this.emberParticlePrefab;
PooledParticle pooledParticle6 = instance3.Acquire<PooledParticle>(pooledParticle5);
this.JLCCJAIAGFG = pooledParticle6;
Transform transform7 = pooledParticle6.transform;
Transform muzzleFlashOrigin3 = this.muzzleFlashOrigin;
transform7.parentInternal = muzzleFlashOrigin3;
Transform transform8 = this.JLCCJAIAGFG.transform;
float z3 = Vector3.zero.z;
Transform transform9 = this.JLCCJAIAGFG.transform;
Quaternion identity3 = Quaternion.identity;
MeshRenderer component = this.beam.GetComponent<MeshRenderer>();
this.EFAALCBOBPP = component;
Material material = new Material(component.GetSharedMaterial());
Renderer efaalcbobpp = this.EFAALCBOBPP;
this.MCFEIIJOADE = material;
efaalcbobpp.SetMaterial(material);
Material material2 = new Material(this.AmmoEmmissiveRampRenderer.GetSharedMaterial());
MeshRenderer ammoEmmissiveRampRenderer = this.AmmoEmmissiveRampRenderer;
this.PPIMOMGCIFO = material2;
ammoEmmissiveRampRenderer.SetMaterial(material2);
TeamColorRenderer teamColorRenderer = this.teamColorRenderer;
int num = 0;
if (teamColorRenderer != num)
{
TeamColorRenderer teamColorRenderer2 = this.teamColorRenderer;
Action<Color> action = new Action(this.FIPGMEBGIBH);
teamColorRenderer2.ColorChangeEvent += action;
}
Action<float> action2;
IDisposable disposable = ADIFCODGAML.ICPMHNDIIFK(this, action2);
}
// Token: 0x06012ACD RID: 76493 RVA: 0x00448808 File Offset: 0x00446A08
[Token(Token = "0x6012ACD")]
[Address(RVA = "0x10C9870", Offset = "0x10C8670", VA = "0x1810C9870")]
protected void FIPGMEBGIBH(Color GJAINANBOCB)
{
Material mcfeiijoade = this.MCFEIIJOADE;
PooledParticle oihjpcbjpmh = this.OIHJPCBJPMH;
PooledParticle jgjgcnpamfm = this.JGJGCNPAMFM;
PooledParticle jlccjaiagfg = this.JLCCJAIAGFG;
}
// Token: 0x06012ACE RID: 76494 RVA: 0x00448838 File Offset: 0x00446A38
[Token(Token = "0x6012ACE")]
[Address(RVA = "0x10C9980", Offset = "0x10C8780", VA = "0x1810C9980", Slot = "55")]
protected virtual void GAJIJLPDHNI(float POGAEJIEPIM)
{
if (base.OGIBLNIIHDK)
{
this.PlayPreFireAnimation();
float num = this.DMMJFGOBDHL.IAHDANBDAAM();
KLLMCPFPIIE<float> dmmjfgobdhl = this.DMMJFGOBDHL;
}
int num2 = 0;
if ((this.GJAGLMFAFFB ? 1 : 0) == num2)
{
if (this.FCKFIMACGJN)
{
if (this.OIHJPCBJPMH.<OAIDPPDMCPA>k__BackingField.isPlaying)
{
ParticleSystem <OAIDPPDMCPA>k__BackingField = this.OIHJPCBJPMH.<OAIDPPDMCPA>k__BackingField;
int num3 = 0;
<OAIDPPDMCPA>k__BackingField.Simulate((float)num3, true, true, num2 != 0);
}
this.OIHJPCBJPMH.Play(true, -1f);
Transform barrelTransform = this.barrelTransform;
RecRoomAudioClip spinUp = this.SpinUp;
SFXAudioSource sfxaudioSource;
this.OMOJHPDCGJA = sfxaudioSource;
}
if ((this.GJAGLMFAFFB ? 1 : 0) == num2)
{
goto IL_D0;
}
}
if ((this.KGPCLHMIOGH ? 1 : 0) != num2)
{
goto IL_D9;
}
if (!this.FCKFIMACGJN)
{
if (this.OMOJHPDCGJA)
{
AudioManager.StopLoopingSFX(this.OMOJHPDCGJA);
}
Transform barrelTransform2 = this.barrelTransform;
RecRoomAudioClip spinUpCancel = this.SpinUpCancel;
}
IL_D0:
if ((this.KGPCLHMIOGH ? 1 : 0) == num2)
{
goto IL_144;
}
IL_D9:
if (this.DMMJFGOBDHL.IAHDANBDAAM() < this.chargeActivationTime)
{
if (this.ODDIDOIDLHB)
{
AudioManager.StopLoopingSFX(this.ODDIDOIDLHB);
}
Transform barrelTransform3 = this.barrelTransform;
RecRoomAudioClip fireFinished = this.FireFinished;
ParticleSystem <OAIDPPDMCPA>k__BackingField2 = this.JLCCJAIAGFG.<OAIDPPDMCPA>k__BackingField;
int num4 = this.emberFinishedBurst;
<OAIDPPDMCPA>k__BackingField2.Emit(num4);
this.JGJGCNPAMFM.<OAIDPPDMCPA>k__BackingField.Stop(true);
}
IL_144:
float num5 = this.DMMJFGOBDHL.IAHDANBDAAM();
if ((this.KGPCLHMIOGH ? 1 : 0) == num2)
{
Transform barrelTransform4 = this.barrelTransform;
RecRoomAudioClip fireInitialize = this.FireInitialize;
Transform barrelTransform5 = this.barrelTransform;
RecRoomAudioClip fireLoop = this.FireLoop;
PooledParticle jgjgcnpamfm = this.JGJGCNPAMFM;
SFXAudioSource sfxaudioSource2;
this.ODDIDOIDLHB = sfxaudioSource2;
jgjgcnpamfm.Play(true, -1f);
}
AnimationCurve beamWidthByCharge = this.BeamWidthByCharge;
float num6 = this.DMMJFGOBDHL.IAHDANBDAAM();
float num7 = beamWidthByCharge.Evaluate(num6);
AnimationCurve beamLengthByCharge = this.BeamLengthByCharge;
num6 = this.DMMJFGOBDHL.IAHDANBDAAM();
float num8 = beamLengthByCharge.Evaluate(num6);
float num9 = this.DMMJFGOBDHL.IAHDANBDAAM();
AnimationCurve beamWidthNoise = this.BeamWidthNoise;
num6 = this.DMMJFGOBDHL.IAHDANBDAAM();
float num10 = beamWidthNoise.Evaluate(num6);
Transform barrelTransform6 = this.barrelTransform;
Transform barrelTransform7 = this.barrelTransform;
bool flag;
if (flag)
{
num8 = num10;
}
Transform transform = this.beam;
if (num10 <= num8)
{
Transform transform2 = this.beam;
float num11 = this.beamExtendLerpSpeed;
num6 = num8;
num8 = Mathf.Lerp(num10, num6, num11);
}
Transform transform3 = this.beam;
Transform transform4 = this.beam;
Vector3 forward = Vector3.forward;
Transform transform5 = this.beam;
bool flag2 = this.FCKFIMACGJN;
AnimationCurve beamOpacityByCharge = this.BeamOpacityByCharge;
num6 = this.DMMJFGOBDHL.IAHDANBDAAM();
num8 = beamOpacityByCharge.Evaluate(num6);
Material mcfeiijoade = this.MCFEIIJOADE;
Material mcfeiijoade2 = this.MCFEIIJOADE;
Material ppimomgcifo = this.PPIMOMGCIFO;
int boilcaonoli = BeamGun.BOILCAONOLI;
float magazineAmmunitionNormalized = base.CGOPGIAIOIK;
ppimomgcifo.SetFloatImpl(boilcaonoli, magazineAmmunitionNormalized);
float num12 = this.DMMJFGOBDHL.IAHDANBDAAM();
bool flag3 = this.FCKFIMACGJN;
this.GJAGLMFAFFB = flag3;
}
// Token: 0x06012ACF RID: 76495 RVA: 0x00448B30 File Offset: 0x00446D30
[Token(Token = "0x6012ACF")]
[Address(RVA = "0x10C9780", Offset = "0x10C8580", VA = "0x1810C9780")]
private void DLCGAECAPPL(float IPHIIJNAEON)
{
Material mcfeiijoade = this.MCFEIIJOADE;
Material mcfeiijoade2 = this.MCFEIIJOADE;
int bmbhiolhcli = PAMNDKEGFFG.BMBHIOLHCLI;
}
// Token: 0x06012AD0 RID: 76496 RVA: 0x00448B58 File Offset: 0x00446D58
[Token(Token = "0x6012AD0")]
[Address(RVA = "0x10C8F00", Offset = "0x10C7D00", VA = "0x1810C8F00", Slot = "53")]
protected override void IGIDNLPODPD()
{
Coroutine bepnkdagfbn = this.BEPNKDAGFBN;
if (bepnkdagfbn != 0)
{
base.StopCoroutine(bepnkdagfbn);
this.BEPNKDAGFBN = (ulong)0L;
}
}
// Token: 0x06012AD1 RID: 76497 RVA: 0x00448B80 File Offset: 0x00446D80
[Token(Token = "0x6012AD1")]
[Address(RVA = "0x10C95B0", Offset = "0x10C83B0", VA = "0x1810C95B0", Slot = "54")]
protected override void ABNPFEDICFJ()
{
bool firing = this.PNJFDBBDPLK;
BeamGun.CDNFMPHEDMD cdnfmphedmd;
cdnfmphedmd.System.IDisposable.Dispose();
cdnfmphedmd.<>1__state = (int)((ulong)0L);
cdnfmphedmd.<>4__this = this;
Coroutine coroutine = base.StartCoroutine(cdnfmphedmd);
this.BEPNKDAGFBN = coroutine;
}
// Token: 0x06012AD2 RID: 76498 RVA: 0x00448BBC File Offset: 0x00446DBC
[Token(Token = "0x6012AD2")]
[Address(RVA = "0x10CA5B0", Offset = "0x10C93B0", VA = "0x1810CA5B0")]
private IEnumerator IHDLKLBDMKF()
{
/*
An exception occurred when decompiling this method (06012AD2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.IEnumerator RecRoom.Tools.Weapons.BeamGun::IHDLKLBDMKF()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
call:void(CDNFMPHEDMD::System.IDisposable.Dispose, ldloc:CDNFMPHEDMD(var_0))
stfld:int32(CDNFMPHEDMD::<>1__state, ldloc:CDNFMPHEDMD(var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](0)))
stfld:BeamGun(CDNFMPHEDMD::<>4__this, ldloc:CDNFMPHEDMD(var_0), ldloc:BeamGun(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: 0x06012AD3 RID: 76499 RVA: 0x00448BE0 File Offset: 0x00446DE0
[Token(Token = "0x6012AD3")]
[Address(RVA = "0x10CA610", Offset = "0x10C9410", VA = "0x1810CA610", Slot = "14")]
protected override void OnDestroy()
{
base.OnDestroy();
Material mcfeiijoade = this.MCFEIIJOADE;
int num = 0;
if (mcfeiijoade != num)
{
global::UnityEngine.Object.Destroy(this.MCFEIIJOADE);
this.MCFEIIJOADE = (ulong)0L;
}
Material ppimomgcifo = this.PPIMOMGCIFO;
int num2 = 0;
if (ppimomgcifo != num2)
{
global::UnityEngine.Object.Destroy(this.PPIMOMGCIFO);
this.PPIMOMGCIFO = (ulong)0L;
}
Coroutine bepnkdagfbn = this.BEPNKDAGFBN;
if (bepnkdagfbn != 0)
{
base.StopCoroutine(bepnkdagfbn);
this.BEPNKDAGFBN = (ulong)0L;
}
if (this.OIHJPCBJPMH)
{
this.OIHJPCBJPMH.Stop();
}
if (this.JGJGCNPAMFM)
{
this.JGJGCNPAMFM.Stop();
}
if (this.JLCCJAIAGFG)
{
this.JLCCJAIAGFG.Stop();
}
}
// Token: 0x06012AD4 RID: 76500 RVA: 0x00448CB0 File Offset: 0x00446EB0
[Token(Token = "0x6012AD4")]
[Address(RVA = "0x10CAE50", Offset = "0x10C9C50", VA = "0x1810CAE50")]
public BeamGun()
{
this.maxProjectileLifetime = -1f;
base..ctor();
}
// Token: 0x0400C0EC RID: 49388
[Token(Token = "0x400C0EC")]
private static int BOILCAONOLI = Shader.PropertyToID("_EmissionCutoff");
// Token: 0x0400C0ED RID: 49389
[FieldOffset(Offset = "0x308")]
[Token(Token = "0x400C0ED")]
[SerializeField]
[Header("Beam")]
private Transform beam;
// Token: 0x0400C0EE RID: 49390
[FieldOffset(Offset = "0x310")]
[Token(Token = "0x400C0EE")]
private Material MCFEIIJOADE;
// Token: 0x0400C0EF RID: 49391
[FieldOffset(Offset = "0x318")]
[Token(Token = "0x400C0EF")]
private Renderer EFAALCBOBPP;
// Token: 0x0400C0F0 RID: 49392
[FieldOffset(Offset = "0x320")]
[Token(Token = "0x400C0F0")]
[SerializeField]
private PooledParticle chargeParticlePrefab;
// Token: 0x0400C0F1 RID: 49393
[FieldOffset(Offset = "0x328")]
[Token(Token = "0x400C0F1")]
private PooledParticle OIHJPCBJPMH;
// Token: 0x0400C0F2 RID: 49394
[FieldOffset(Offset = "0x330")]
[Token(Token = "0x400C0F2")]
private ParticleSystem.EmissionModule ELAGCCLEHBC;
// Token: 0x0400C0F3 RID: 49395
[FieldOffset(Offset = "0x338")]
[Token(Token = "0x400C0F3")]
[SerializeField]
private PooledParticle muzzleFlashParticlePrefab;
// Token: 0x0400C0F4 RID: 49396
[FieldOffset(Offset = "0x340")]
[Token(Token = "0x400C0F4")]
private PooledParticle JGJGCNPAMFM;
// Token: 0x0400C0F5 RID: 49397
[FieldOffset(Offset = "0x348")]
[Token(Token = "0x400C0F5")]
[SerializeField]
private PooledParticle emberParticlePrefab;
// Token: 0x0400C0F6 RID: 49398
[FieldOffset(Offset = "0x350")]
[Token(Token = "0x400C0F6")]
private PooledParticle JLCCJAIAGFG;
// Token: 0x0400C0F7 RID: 49399
[FieldOffset(Offset = "0x358")]
[Token(Token = "0x400C0F7")]
[SerializeField]
private float chargeActivationTime;
// Token: 0x0400C0F8 RID: 49400
[FieldOffset(Offset = "0x35C")]
[Token(Token = "0x400C0F8")]
[SerializeField]
private int emberFinishedBurst = (int)((ulong)100L);
// Token: 0x0400C0F9 RID: 49401
[FieldOffset(Offset = "0x360")]
[Token(Token = "0x400C0F9")]
[SerializeField]
[Tooltip("Make sure bullet max stretch and the charge/beam particle systems are similar")]
protected float beamLength = 15f;
// Token: 0x0400C0FA RID: 49402
[FieldOffset(Offset = "0x364")]
[Token(Token = "0x400C0FA")]
[SerializeField]
private float beamWidth = 0.25f;
// Token: 0x0400C0FB RID: 49403
[FieldOffset(Offset = "0x368")]
[Token(Token = "0x400C0FB")]
[SerializeField]
private float beamExtendLerpSpeed = 10f;
// Token: 0x0400C0FC RID: 49404
[FieldOffset(Offset = "0x370")]
[Token(Token = "0x400C0FC")]
[Tooltip("(1, 1) is fully charged, multiplied by beam width")]
public AnimationCurve BeamWidthByCharge;
// Token: 0x0400C0FD RID: 49405
[FieldOffset(Offset = "0x378")]
[Token(Token = "0x400C0FD")]
[Tooltip("(1, 1) is fully charged, multiplied by beam length")]
public AnimationCurve BeamLengthByCharge;
// Token: 0x0400C0FE RID: 49406
[FieldOffset(Offset = "0x380")]
[Token(Token = "0x400C0FE")]
[Tooltip("(1, 1) is fully charged, opaque")]
public AnimationCurve BeamOpacityByCharge;
// Token: 0x0400C0FF RID: 49407
[FieldOffset(Offset = "0x388")]
[Token(Token = "0x400C0FF")]
[Tooltip("This is a multiplier over time (set to repeat)")]
public AnimationCurve BeamWidthNoise;
// Token: 0x0400C100 RID: 49408
[FieldOffset(Offset = "0x390")]
[Token(Token = "0x400C100")]
public RecRoomAudioClip SpinUp;
// Token: 0x0400C101 RID: 49409
[FieldOffset(Offset = "0x398")]
[Token(Token = "0x400C101")]
public RecRoomAudioClip SpinUpCancel;
// Token: 0x0400C102 RID: 49410
[FieldOffset(Offset = "0x3A0")]
[Token(Token = "0x400C102")]
public RecRoomAudioClip FireInitialize;
// Token: 0x0400C103 RID: 49411
[FieldOffset(Offset = "0x3A8")]
[Token(Token = "0x400C103")]
public RecRoomAudioClip FireLoop;
// Token: 0x0400C104 RID: 49412
[FieldOffset(Offset = "0x3B0")]
[Token(Token = "0x400C104")]
public RecRoomAudioClip FireFinished;
// Token: 0x0400C105 RID: 49413
[FieldOffset(Offset = "0x3B8")]
[Token(Token = "0x400C105")]
[SerializeField]
private MeshRenderer AmmoEmmissiveRampRenderer;
// Token: 0x0400C106 RID: 49414
[FieldOffset(Offset = "0x3C0")]
[Token(Token = "0x400C106")]
private Material PPIMOMGCIFO;
// Token: 0x0400C107 RID: 49415
[FieldOffset(Offset = "0x3C8")]
[Token(Token = "0x400C107")]
[SerializeField]
private TeamColorRenderer teamColorRenderer;
// Token: 0x0400C108 RID: 49416
[FieldOffset(Offset = "0x3D0")]
[Token(Token = "0x400C108")]
private SFXAudioSource ODDIDOIDLHB;
// Token: 0x0400C109 RID: 49417
[FieldOffset(Offset = "0x3D8")]
[Token(Token = "0x400C109")]
private SFXAudioSource OMOJHPDCGJA;
// Token: 0x0400C10A RID: 49418
[FieldOffset(Offset = "0x3E0")]
[Token(Token = "0x400C10A")]
private KLLMCPFPIIE<float> DMMJFGOBDHL;
// Token: 0x0400C10B RID: 49419
[FieldOffset(Offset = "0x3E8")]
[Token(Token = "0x400C10B")]
protected bool KGPCLHMIOGH;
// Token: 0x0400C10C RID: 49420
[FieldOffset(Offset = "0x3E9")]
[Token(Token = "0x400C10C")]
protected bool GJAGLMFAFFB;
}
}
@@ -0,0 +1,258 @@
using System;
using Cpp2IlInjected;
using RecRoom.Core.AI;
using RecRoom.Core.Pools;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B50 RID: 11088
[Token(Token = "0x2002B50")]
public class BeamTrap : Trap
{
// Token: 0x06012A0F RID: 76303 RVA: 0x00443EA4 File Offset: 0x004420A4
[Token(Token = "0x6012A0F")]
[Address(RVA = "0x10CAF30", Offset = "0x10C9D30", VA = "0x1810CAF30", Slot = "13")]
protected override void Awake()
{
base.Awake();
}
// Token: 0x06012A10 RID: 76304 RVA: 0x00443EB8 File Offset: 0x004420B8
[Token(Token = "0x6012A10")]
[Address(RVA = "0x10CBB70", Offset = "0x10CA970", VA = "0x1810CBB70", Slot = "15")]
protected override void Start()
{
base.Start();
GlobalPool instance = GlobalPool.ONCPNMDGGKG;
PooledParticle pooledParticle = this.impactParticlePrefab;
PooledParticle pooledParticle2 = instance.Acquire<PooledParticle>(pooledParticle);
this.KNANGBCNMAF = pooledParticle2;
Action<float> action = new Action(this.GAJIJLPDHNI);
IDisposable disposable = ADIFCODGAML.ICPMHNDIIFK(this, action);
}
// Token: 0x06012A11 RID: 76305 RVA: 0x00443F08 File Offset: 0x00442108
[Token(Token = "0x6012A11")]
[Address(RVA = "0x10CBAE0", Offset = "0x10CA8E0", VA = "0x1810CBAE0")]
protected void OnEnable()
{
RecRoomAudioClip fireLoop = this.FireLoop;
Transform transform = this.origin;
int num = 0;
int num2 = 0;
SFXAudioSource sfxaudioSource = AudioManager.StartLooping3DSFX(fireLoop, transform, num2, num);
this.ODDIDOIDLHB = sfxaudioSource;
}
// Token: 0x06012A12 RID: 76306 RVA: 0x00443F3C File Offset: 0x0044213C
[Token(Token = "0x6012A12")]
[Address(RVA = "0x10CBA80", Offset = "0x10CA880", VA = "0x1810CBA80")]
protected void OnDisable()
{
AudioManager.StopLoopingSFX(this.ODDIDOIDLHB);
}
// Token: 0x06012A13 RID: 76307 RVA: 0x00443F54 File Offset: 0x00442154
[Token(Token = "0x6012A13")]
[Address(RVA = "0x10CAF40", Offset = "0x10C9D40", VA = "0x1810CAF40")]
private void GAJIJLPDHNI(float POGAEJIEPIM)
{
float num = this.beamLength;
AnimationCurve beamWidthNoise = this.BeamWidthNoise;
float time = Time.time;
float num2 = beamWidthNoise.Evaluate(POGAEJIEPIM);
Transform transform = this.origin;
Transform transform2 = this.origin;
float num3 = this.beamWidth;
Vector3 vector;
float z = vector.z;
float num4 = this.beamLength;
bool flag;
if (flag)
{
PooledParticle knangbcnmaf = this.KNANGBCNMAF;
num = num2;
knangbcnmaf.<OAIDPPDMCPA>k__BackingField.Play();
Transform transform3 = this.KNANGBCNMAF.transform;
RecRoomAudioClip impactSFX = this.ImpactSFX;
Quaternion quaternion;
float z2 = quaternion.z;
int num5 = 0;
int num6 = 0;
Collider collider;
Player player = collider.PKPLHJFDDKE(num6);
int num7 = 0;
if (player != num7)
{
float z3 = Vector3.zero.z;
float z4 = Vector3.zero.z;
int num8 = 0;
Rigidbody rigidbody;
if (rigidbody != num8)
{
}
Collider collider2;
GameObject gameObject = collider2.gameObject;
int num9 = 0;
base.IAJAHFJCPIP(player, (Player.GAHEJKDCLLE)num9, num5);
}
Collider collider3;
Tool tool = collider3.AMKJBLIFHPB();
int num10 = 0;
if (tool != num10)
{
float z5 = Vector3.zero.z;
float z6 = Vector3.zero.z;
int num11 = 0;
Rigidbody rigidbody2;
if (rigidbody2 != num11)
{
}
Collider collider4;
GameObject gameObject2 = collider4.gameObject;
int num12 = 0;
base.FBNMOCOCJCJ(tool, num12);
}
int num13 = 0;
Collider collider5;
Enemy enemy = collider5.PABDAFCMNCK(num13);
int num14 = 0;
if (enemy != num14)
{
float z7 = Vector3.zero.z;
float z8 = Vector3.zero.z;
int num15 = 0;
Rigidbody rigidbody3;
if (rigidbody3 != num15)
{
}
Collider collider6;
GameObject gameObject3 = collider6.gameObject;
return;
}
}
Transform transform4 = this.beam;
Vector3 vector2;
if (vector2.z <= num)
{
Transform transform5 = this.beam;
Vector3 vector3;
num = Mathf.Lerp(vector3.z, POGAEJIEPIM, num4);
}
Transform transform6 = this.beam;
Transform transform7 = this.beam;
Vector3 forward = Vector3.forward;
Transform transform8 = this.beam;
float z9 = forward.z;
Vector3 vector4;
float z10 = vector4.z;
Vector3 vector5;
float z11 = vector5.z;
Vector3 vector6;
float z12 = vector6.z;
throw new NullReferenceException();
}
// Token: 0x06012A14 RID: 76308 RVA: 0x00444160 File Offset: 0x00442360
[Token(Token = "0x6012A14")]
[Address(RVA = "0x10CB940", Offset = "0x10CA740", VA = "0x1810CB940", Slot = "14")]
protected override void OnDestroy()
{
base.OnDestroy();
if (this.JLCCJAIAGFG)
{
this.JLCCJAIAGFG.Stop();
}
if (this.ODDIDOIDLHB)
{
AudioManager.StopLoopingSFX(this.ODDIDOIDLHB);
}
if (this.KNANGBCNMAF)
{
this.KNANGBCNMAF.Stop();
}
}
// Token: 0x06012A15 RID: 76309 RVA: 0x004441C4 File Offset: 0x004423C4
[Token(Token = "0x6012A15")]
[Address(RVA = "0x10CBC30", Offset = "0x10CAA30", VA = "0x1810CBC30")]
public BeamTrap()
{
}
// Token: 0x0400C05B RID: 49243
[FieldOffset(Offset = "0xA8")]
[Token(Token = "0x400C05B")]
[SerializeField]
[Header("Beam")]
private Transform origin;
// Token: 0x0400C05C RID: 49244
[FieldOffset(Offset = "0xB0")]
[Token(Token = "0x400C05C")]
[SerializeField]
private Transform beam;
// Token: 0x0400C05D RID: 49245
[FieldOffset(Offset = "0xB8")]
[Token(Token = "0x400C05D")]
[SerializeField]
private PooledParticle impactParticlePrefab;
// Token: 0x0400C05E RID: 49246
[FieldOffset(Offset = "0xC0")]
[Token(Token = "0x400C05E")]
private PooledParticle KNANGBCNMAF;
// Token: 0x0400C05F RID: 49247
[FieldOffset(Offset = "0xC8")]
[Token(Token = "0x400C05F")]
[SerializeField]
private PooledParticle emberParticlePrefab;
// Token: 0x0400C060 RID: 49248
[FieldOffset(Offset = "0xD0")]
[Token(Token = "0x400C060")]
private PooledParticle JLCCJAIAGFG;
// Token: 0x0400C061 RID: 49249
[FieldOffset(Offset = "0xD8")]
[Token(Token = "0x400C061")]
[SerializeField]
private float beamLength = 15f;
// Token: 0x0400C062 RID: 49250
[FieldOffset(Offset = "0xDC")]
[Token(Token = "0x400C062")]
[SerializeField]
private float beamWidth = 0.25f;
// Token: 0x0400C063 RID: 49251
[FieldOffset(Offset = "0xE0")]
[Token(Token = "0x400C063")]
[SerializeField]
private float beamExtendLerpSpeed = 10f;
// Token: 0x0400C064 RID: 49252
[FieldOffset(Offset = "0xE8")]
[Token(Token = "0x400C064")]
[Tooltip("This is a multiplier over time (set to repeat)")]
public AnimationCurve BeamWidthNoise;
// Token: 0x0400C065 RID: 49253
[FieldOffset(Offset = "0xF0")]
[Token(Token = "0x400C065")]
public RecRoomAudioClip FireLoop;
// Token: 0x0400C066 RID: 49254
[FieldOffset(Offset = "0xF8")]
[Token(Token = "0x400C066")]
public RecRoomAudioClip ImpactSFX;
// Token: 0x0400C067 RID: 49255
[FieldOffset(Offset = "0x100")]
[Token(Token = "0x400C067")]
private SFXAudioSource ODDIDOIDLHB;
}
}
@@ -0,0 +1,588 @@
using System;
using System.Collections.Generic;
using Cpp2IlInjected;
using RecRoom.Core;
using RecRoom.Core.Combat;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B57 RID: 11095
[Token(Token = "0x2002B57")]
public class Bow : RangedWeapon
{
// Token: 0x17003416 RID: 13334
// (get) Token: 0x06012A5A RID: 76378 RVA: 0x00445ECC File Offset: 0x004440CC
// (set) Token: 0x06012A5B RID: 76379 RVA: 0x00445EE0 File Offset: 0x004440E0
[Token(Token = "0x17003416")]
public BowString PKECNDENBBJ
{
[Token(Token = "0x6012A5A")]
[Address(RVA = "0x10CF530", Offset = "0x10CE330", VA = "0x1810CF530")]
get;
[Token(Token = "0x6012A5B")]
[Address(RVA = "0x10CF550", Offset = "0x10CE350", VA = "0x1810CF550")]
set;
}
// Token: 0x17003417 RID: 13335
// (get) Token: 0x06012A5C RID: 76380 RVA: 0x00445EF4 File Offset: 0x004440F4
// (set) Token: 0x06012A5D RID: 76381 RVA: 0x00445F08 File Offset: 0x00444108
[Token(Token = "0x17003417")]
public OffsetRotationRigidbodyPickup PPDBAOKBHPM
{
[Token(Token = "0x6012A5C")]
[Address(RVA = "0x10CF540", Offset = "0x10CE340", VA = "0x1810CF540")]
get;
[Token(Token = "0x6012A5D")]
[Address(RVA = "0x10CDD50", Offset = "0x10CCB50", VA = "0x1810CDD50")]
private set;
}
// Token: 0x17003418 RID: 13336
// (get) Token: 0x06012A5E RID: 76382 RVA: 0x00445F1C File Offset: 0x0044411C
[Token(Token = "0x17003418")]
private Transform ABGIBGDPOPK
{
[Token(Token = "0x6012A5E")]
[Address(RVA = "0x10CDCA0", Offset = "0x10CCAA0", VA = "0x1810CDCA0")]
get
{
Tool tool = this._tool;
Transform transform = this.rightHandedArrowShelfTransform;
PlayerHand <PBCNKLKCIHJ>k__BackingField = tool.<PBCNKLKCIHJ>k__BackingField;
int num = 0;
if (!(<PBCNKLKCIHJ>k__BackingField != num) || this._tool.<PBCNKLKCIHJ>k__BackingField.type == PlayerHand.PLLIKAOIPHP.Left)
{
}
return transform;
}
}
// Token: 0x06012A5F RID: 76383 RVA: 0x00445F64 File Offset: 0x00444164
[Token(Token = "0x6012A5F")]
[Address(RVA = "0x10CD600", Offset = "0x10CC400", VA = "0x1810CD600", Slot = "13")]
protected override void Awake()
{
base.Awake();
Tool tool = this._tool;
int num = 0;
if (tool != num)
{
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> postPickupEvent = tool2.PostPickupEvent;
Action<Tool> action = new Action(this.HAAIALDMMEL);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.BPJDFPACLMK(postPickupEvent, action);
tool2.PostPickupEvent = mfbglihgcgo;
Tool tool3 = this._tool;
MFBGLIHGCGO<Tool> postReleaseEvent = tool3.PostReleaseEvent;
Action<Tool> action2 = new Action(this.OIOCPLEKMEK);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.BPJDFPACLMK(postReleaseEvent, action2);
tool3.PostReleaseEvent = mfbglihgcgo2;
}
}
// Token: 0x06012A60 RID: 76384 RVA: 0x00445FF4 File Offset: 0x004441F4
[Token(Token = "0x6012A60")]
[Address(RVA = "0x10CF310", Offset = "0x10CE110", VA = "0x1810CF310", Slot = "17")]
protected override void Start()
{
base.Start();
BowString bowString = this.<DHOADBJPCGM>k__BackingField;
int num = 0;
if (bowString == num)
{
Debug.LogError(base.name + " is missing a bow string child.");
}
this.<DHOADBJPCGM>k__BackingField._tool.<OKBCKBAJKMN>k__BackingField = false;
if (this._tool.rigidbodyPickup == 0)
{
int num2 = 0;
this.<EPLEBPKLPND>k__BackingField = num2;
return;
}
}
// Token: 0x06012A61 RID: 76385 RVA: 0x00446060 File Offset: 0x00444260
[Token(Token = "0x6012A61")]
[Address(RVA = "0x10CE020", Offset = "0x10CCE20", VA = "0x1810CE020")]
private void JOOLEKEINAO()
{
OffsetRotationRigidbodyPickup offsetRotationRigidbodyPickup = this.<EPLEBPKLPND>k__BackingField;
BowArrow dmkahhbdmgg = this.DMKAHHBDMGG;
int num = 0;
bool flag = dmkahhbdmgg != num;
offsetRotationRigidbodyPickup.usingOffsetRotation = flag;
BowArrow dmkahhbdmgg2 = this.DMKAHHBDMGG;
int num2 = 0;
if (dmkahhbdmgg2 != num2)
{
PlayerHand <PBCNKLKCIHJ>k__BackingField = this._tool.<PBCNKLKCIHJ>k__BackingField;
int num3 = 0;
if (<PBCNKLKCIHJ>k__BackingField != num3)
{
Transform transform = this.DMKAHHBDMGG.transform;
Transform transform2 = this.<DHOADBJPCGM>k__BackingField.transform;
Transform transform3 = this.DMKAHHBDMGG.transform;
Tool tool = this._tool;
Transform transform4 = this.rightHandedArrowShelfTransform;
PlayerHand <PBCNKLKCIHJ>k__BackingField2 = tool.<PBCNKLKCIHJ>k__BackingField;
int num4 = 0;
int num5 = 0;
if (!(<PBCNKLKCIHJ>k__BackingField2 != num5) || this._tool.<PBCNKLKCIHJ>k__BackingField.type == PlayerHand.PLLIKAOIPHP.Left)
{
}
Vector3 up = Vector3.up;
transform3.LookAt(transform4, num4);
Transform transform5 = this.DMKAHHBDMGG.transform;
PlayerHand <PBCNKLKCIHJ>k__BackingField3 = this._tool.<PBCNKLKCIHJ>k__BackingField;
Tool tool2 = this._tool;
OffsetRotationRigidbodyPickup offsetRotationRigidbodyPickup2 = this.<EPLEBPKLPND>k__BackingField;
if (tool2.<PBCNKLKCIHJ>k__BackingField.type != PlayerHand.PLLIKAOIPHP.Left)
{
}
Vector3 vector;
float z = vector.z;
offsetRotationRigidbodyPickup2.rotationUpVector.z = z;
}
}
BowString bowString = this.<DHOADBJPCGM>k__BackingField;
Transform transform6 = bowString.parentTool.transform;
float z2 = bowString.KNHHAPILJGN.z;
Transform transform7 = this.<DHOADBJPCGM>k__BackingField.transform;
float num6 = this.maxDrawLength;
float num8;
float num7 = Mathf.InverseLerp((float)0, num6, num8);
if (this.<DHOADBJPCGM>k__BackingField._tool.<BIPMAHKMNKF>k__BackingField)
{
float num9 = this.maxDrawLength;
this.BECEEBBEDEK = num8;
num6 = num7;
this.BNODONNECBF(num6);
}
Animator animator = this._animator;
int num10 = 0;
int ifaclfmifjb = Bow.IFACLFMIFJB;
animator.Play(ifaclfmifjb, num10, num7);
}
// Token: 0x06012A62 RID: 76386 RVA: 0x0044622C File Offset: 0x0044442C
[Token(Token = "0x6012A62")]
[Address(RVA = "0x10CEB70", Offset = "0x10CD970", VA = "0x1810CEB70", Slot = "14")]
protected override void OnDestroy()
{
Tool tool = this._tool;
int num = 0;
if (tool != num)
{
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> postPickupEvent = tool2.PostPickupEvent;
Action<Tool> action = new Action(this.HAAIALDMMEL);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.GMNMHGMFGOL(postPickupEvent, action);
tool2.PostPickupEvent = mfbglihgcgo;
Tool tool3 = this._tool;
MFBGLIHGCGO<Tool> postReleaseEvent = tool3.PostReleaseEvent;
Action<Tool> action2 = new Action(this.OIOCPLEKMEK);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.GMNMHGMFGOL(postReleaseEvent, action2);
tool3.PostReleaseEvent = mfbglihgcgo2;
Player <OKDFEPHLKCB>k__BackingField = this._tool.<OKDFEPHLKCB>k__BackingField;
int num2 = 0;
if (<OKDFEPHLKCB>k__BackingField != num2)
{
Tool tool4 = this._tool;
if (tool4.<OKDFEPHLKCB>k__BackingField == tool4)
{
this._tool.<OKDFEPHLKCB>k__BackingField.backpack.RemoveDisableFavoriteToolSelection(this);
}
}
}
IDisposable limbdhfpjin = this.LIMBDHFPJIN;
this.GLFCOPMIKLH(limbdhfpjin);
base.OnDestroy();
}
// Token: 0x06012A63 RID: 76387 RVA: 0x00446318 File Offset: 0x00444518
[Token(Token = "0x6012A63")]
[Address(RVA = "0x10CDD60", Offset = "0x10CCB60", VA = "0x1810CDD60")]
private void HAAIALDMMEL(Tool EGFEJGHDNAI)
{
PlayerHand <PBCNKLKCIHJ>k__BackingField = EGFEJGHDNAI.<PBCNKLKCIHJ>k__BackingField;
int num = 0;
if (<PBCNKLKCIHJ>k__BackingField != num)
{
PlayerHand.PLLIKAOIPHP type = EGFEJGHDNAI.<PBCNKLKCIHJ>k__BackingField.type;
Transform transform = this.meshTransform;
int num2 = 0;
if (transform != num2)
{
Transform transform2 = this.meshTransform;
Vector3 vector;
float z = vector.z;
if (type == PlayerHand.PLLIKAOIPHP.Right)
{
}
Transform transform3 = this.meshTransform;
}
Player <OKDFEPHLKCB>k__BackingField = EGFEJGHDNAI.<OKDFEPHLKCB>k__BackingField;
Player <EGKJPJKLEAI>k__BackingField = Player.<EGKJPJKLEAI>k__BackingField;
if (<OKDFEPHLKCB>k__BackingField == <EGKJPJKLEAI>k__BackingField)
{
EGFEJGHDNAI.<OKDFEPHLKCB>k__BackingField.backpack.AddDisableFavoriteToolSelection(this);
}
}
Action action = new Action(this.JOOLEKEINAO);
IDisposable disposable = this.GIEOOLAGCKA(action, Scheduler.NEIJEKIKDOG.PreRender);
this.LIMBDHFPJIN = disposable;
}
// Token: 0x06012A64 RID: 76388 RVA: 0x004463CC File Offset: 0x004445CC
[Token(Token = "0x6012A64")]
[Address(RVA = "0x10CE940", Offset = "0x10CD740", VA = "0x1810CE940")]
private void OIOCPLEKMEK(Tool EGFEJGHDNAI)
{
Animator animator = this._animator;
int num = 0;
int num2 = 0;
int num3 = 0;
int ifaclfmifjb = Bow.IFACLFMIFJB;
animator.Play(ifaclfmifjb, num3, (float)num2);
BowArrow dmkahhbdmgg = this.DMKAHHBDMGG;
int num4 = 0;
if (dmkahhbdmgg != num4)
{
BowArrow dmkahhbdmgg2 = this.DMKAHHBDMGG;
float z = Vector3.zero.z;
dmkahhbdmgg2.FixedUpdate();
this.DMKAHHBDMGG = num;
}
Player <OKDFEPHLKCB>k__BackingField = EGFEJGHDNAI.<OKDFEPHLKCB>k__BackingField;
Player <EGKJPJKLEAI>k__BackingField = Player.<EGKJPJKLEAI>k__BackingField;
if (<OKDFEPHLKCB>k__BackingField == <EGKJPJKLEAI>k__BackingField)
{
EGFEJGHDNAI.<OKDFEPHLKCB>k__BackingField.backpack.RemoveDisableFavoriteToolSelection(this);
}
IDisposable limbdhfpjin = this.LIMBDHFPJIN;
this.GLFCOPMIKLH(limbdhfpjin);
}
// Token: 0x06012A65 RID: 76389 RVA: 0x00446474 File Offset: 0x00444674
[Token(Token = "0x6012A65")]
[Address(RVA = "0x10CF020", Offset = "0x10CDE20", VA = "0x1810CF020")]
public void ReadyArrow()
{
if (this._tool.<BIPMAHKMNKF>k__BackingField && this.<DHOADBJPCGM>k__BackingField._tool.<BIPMAHKMNKF>k__BackingField)
{
BowArrow dmkahhbdmgg = this.DMKAHHBDMGG;
int num = 0;
if (dmkahhbdmgg == num && !base.LAJLNCJKALH && base.NOOCGFJOMEM)
{
Bullet bullet;
this.DMKAHHBDMGG = bullet;
int num2 = 0;
if (bullet != num2)
{
RecRoomAudioClip recRoomAudioClip = this.arrowNockingAudioClip;
if (recRoomAudioClip != 0)
{
Transform transform = this.<DHOADBJPCGM>k__BackingField.transform;
int num3 = 0;
int num4 = 0;
SFXAudioSource sfxaudioSource = AudioManager.Play3DSFX(recRoomAudioClip, transform, num4, num3);
}
Transform transform2 = this.DMKAHHBDMGG.transform;
float z = Vector3.one.z;
Transform transform3 = this.DMKAHHBDMGG.transform;
Transform transform4 = this.<DHOADBJPCGM>k__BackingField.transform;
Vector3 vector;
float z2 = vector.z;
Transform transform5 = this.DMKAHHBDMGG.transform;
Transform transform6 = this.<DHOADBJPCGM>k__BackingField.transform;
}
}
}
}
// Token: 0x06012A66 RID: 76390 RVA: 0x00446578 File Offset: 0x00444778
[Token(Token = "0x6012A66")]
[Address(RVA = "0x10CD420", Offset = "0x10CC220", VA = "0x1810CD420")]
public void AuthorityFireArrowAtTargetPoint(float FDKJHMIHKHJ)
{
if (base.OGIBLNIIHDK && this._tool.<BIPMAHKMNKF>k__BackingField)
{
BowArrow dmkahhbdmgg = this.DMKAHHBDMGG;
int num = 0;
if (dmkahhbdmgg != num)
{
BowArrow dmkahhbdmgg2 = this.DMKAHHBDMGG;
float z = this.OverrideTargetPoint.z;
Transform transform = dmkahhbdmgg2.transform;
Vector3 vector;
float z2 = vector.z;
Vector3 vector2;
float z3 = vector2.z;
Vector3 vector3;
float z4 = vector3.z;
}
}
}
// Token: 0x06012A67 RID: 76391 RVA: 0x004465F0 File Offset: 0x004447F0
[Token(Token = "0x6012A67")]
[Address(RVA = "0x10CDB20", Offset = "0x10CC920", VA = "0x1810CDB20")]
private void CBNIMKCNHHM(Vector3 DJBBMJBBNHB, float FDKJHMIHKHJ)
{
if (base.OGIBLNIIHDK && this._tool.<BIPMAHKMNKF>k__BackingField)
{
BowArrow dmkahhbdmgg = this.DMKAHHBDMGG;
int num = 0;
if (dmkahhbdmgg != num)
{
float num2 = Mathf.Clamp01(FDKJHMIHKHJ);
float bulletFireSpeed = this.bulletFireSpeed;
float num3 = Mathf.Lerp(this.minChargeArrowSpeed, bulletFireSpeed, FDKJHMIHKHJ);
float z = DJBBMJBBNHB.z;
Vector3 vector;
float z2 = vector.z;
}
}
}
// Token: 0x06012A68 RID: 76392 RVA: 0x0044665C File Offset: 0x0044485C
[Token(Token = "0x6012A68")]
[Address(RVA = "0x10CEDA0", Offset = "0x10CDBA0", VA = "0x1810CEDA0")]
public void OnStringPickup()
{
if (this.FireArrowOnStringPickupRelease)
{
this.ReadyArrow();
return;
}
}
// Token: 0x06012A69 RID: 76393 RVA: 0x0044667C File Offset: 0x0044487C
[Token(Token = "0x6012A69")]
[Address(RVA = "0x10CEDC0", Offset = "0x10CDBC0", VA = "0x1810CEDC0")]
public void OnStringRelease()
{
int num = 0;
if ((this.FireArrowOnStringPickupRelease ? 1 : 0) != num && base.OGIBLNIIHDK && this._tool.<BIPMAHKMNKF>k__BackingField)
{
BowArrow dmkahhbdmgg = this.DMKAHHBDMGG;
int num2 = 0;
if (dmkahhbdmgg != num2)
{
RigidbodyEx rigidbodyEx = this._tool.rigidbodyEx;
Vector3 vector;
float z = vector.z;
RigidbodyEx rigidbodyEx2 = this.<DHOADBJPCGM>k__BackingField._tool.rigidbodyEx;
Vector3 vector2;
float z2 = vector2.z;
Vector3 vector3;
float z3 = vector3.z;
float num3 = this.maxDrawLength;
float num5;
float num4 = Mathf.InverseLerp((float)0, num3, num5);
AnimationCurve animationCurve = this.arrowChargeOverDrawLengthCurve;
num3 = num4;
float num6 = animationCurve.Evaluate(num3);
BowArrow dmkahhbdmgg2 = this.DMKAHHBDMGG;
num5 = num6;
Transform transform = dmkahhbdmgg2.transform;
Vector3 vector4;
float z4 = vector4.z;
}
}
}
// Token: 0x06012A6A RID: 76394 RVA: 0x00446754 File Offset: 0x00444954
[Token(Token = "0x6012A6A")]
[Address(RVA = "0x10CE5F0", Offset = "0x10CD3F0", VA = "0x1810CE5F0", Slot = "42")]
protected override void OICJPFPBIIK(Vector3 DDHPAFKBMON, Quaternion IGPENJBJADK, Vector3 NHAOMEMANJA, float LFDFFDCJAAD, bool FLKHKHDBIOH, byte LNPHJIHHNPN)
{
BowArrow dmkahhbdmgg = this.DMKAHHBDMGG;
int num = 0;
if (dmkahhbdmgg != num)
{
Transform transform = this.DMKAHHBDMGG.transform;
BowArrow dmkahhbdmgg2 = this.DMKAHHBDMGG;
Vector3 vector;
float z = vector.z;
Transform transform2 = dmkahhbdmgg2.transform;
Transform transform3 = this.DMKAHHBDMGG.transform;
Vector3 vector2;
float z2 = vector2.z;
Transform transform4 = this.DMKAHHBDMGG.transform;
BowArrow dmkahhbdmgg3 = this.DMKAHHBDMGG;
Vector3 vector3;
float z3 = vector3.z;
Transform transform5 = dmkahhbdmgg3.transform;
float z4 = NHAOMEMANJA.z;
Tool tool = this._tool;
this.DMKAHHBDMGG = (ulong)0L;
PlayerHand <PBCNKLKCIHJ>k__BackingField = tool.<PBCNKLKCIHJ>k__BackingField;
int num2 = 0;
if (<PBCNKLKCIHJ>k__BackingField != num2)
{
PlayerHand <PBCNKLKCIHJ>k__BackingField2 = this._tool.<PBCNKLKCIHJ>k__BackingField;
float num3;
this._tool.<PBCNKLKCIHJ>k__BackingField.Vibrate(20, num3);
}
}
}
// Token: 0x06012A6B RID: 76395 RVA: 0x00446834 File Offset: 0x00444A34
[Token(Token = "0x6012A6B")]
[Address(RVA = "0x10CD870", Offset = "0x10CC670", VA = "0x1810CD870")]
private void BNODONNECBF(float MHIJAEKALAF)
{
int num;
do
{
num = 0;
RecRoomAudioClip recRoomAudioClip = this.limbCreakAudioClip;
if (recRoomAudioClip != 0)
{
float num2 = this.pitchShiftCurve.Evaluate(MHIJAEKALAF);
recRoomAudioClip.pitchShift = num2;
RecRoomAudioClip recRoomAudioClip2 = this.limbCreakAudioClip;
Transform transform = base.transform;
int num3 = 0;
int num4 = 0;
SFXAudioSource sfxaudioSource = AudioManager.Play3DSFX(recRoomAudioClip2, transform, num4, num3);
}
Tool tool = this._tool;
if ((tool.<BIPMAHKMNKF>k__BackingField ? 1 : 0) == num)
{
break;
}
Player <OKDFEPHLKCB>k__BackingField = tool.<OKDFEPHLKCB>k__BackingField;
IReadOnlyList<PlayerHand> bothHands = this._tool.<OKDFEPHLKCB>k__BackingField.BothHands;
if (bothHands != 0 && num < bothHands)
{
num += num;
if (num != bothHands)
{
num++;
}
}
if (bothHands != 0)
{
}
}
while (num != 0);
}
// Token: 0x06012A6C RID: 76396 RVA: 0x004468DC File Offset: 0x00444ADC
[Token(Token = "0x6012A6C")]
[Address(RVA = "0x10CD740", Offset = "0x10CC540", VA = "0x1810CD740")]
private void BDABLDBAMMK(bool ADOBNBFBIFD)
{
Transform transform = this.meshTransform;
int num = 0;
if (transform != num)
{
Transform transform2 = this.meshTransform;
Vector3 vector;
float z = vector.z;
if (ADOBNBFBIFD)
{
}
Transform transform3 = this.meshTransform;
}
}
// Token: 0x06012A6D RID: 76397 RVA: 0x00446920 File Offset: 0x00444B20
[Token(Token = "0x6012A6D")]
[Address(RVA = "0x10CF4B0", Offset = "0x10CE2B0", VA = "0x1810CF4B0")]
public Bow()
{
}
// Token: 0x0400C0AB RID: 49323
[FieldOffset(Offset = "0x2F0")]
[Token(Token = "0x400C0AB")]
[SerializeField]
[Header("Charging")]
private float maxDrawLength = 0.7f;
// Token: 0x0400C0AC RID: 49324
[FieldOffset(Offset = "0x2F8")]
[Token(Token = "0x400C0AC")]
[SerializeField]
private AnimationCurve arrowChargeOverDrawLengthCurve;
// Token: 0x0400C0AD RID: 49325
[FieldOffset(Offset = "0x300")]
[Token(Token = "0x400C0AD")]
[SerializeField]
private Transform rightHandedArrowShelfTransform;
// Token: 0x0400C0AE RID: 49326
[FieldOffset(Offset = "0x308")]
[Token(Token = "0x400C0AE")]
[SerializeField]
private Transform leftHandedArrowShelfTransform;
// Token: 0x0400C0AF RID: 49327
[FieldOffset(Offset = "0x310")]
[Token(Token = "0x400C0AF")]
[SerializeField]
private float minChargeArrowSpeed = 3f;
// Token: 0x0400C0B0 RID: 49328
[FieldOffset(Offset = "0x318")]
[Token(Token = "0x400C0B0")]
[SerializeField]
[Header("Audio and Visuals")]
private RecRoomAudioClip limbCreakAudioClip;
// Token: 0x0400C0B1 RID: 49329
[FieldOffset(Offset = "0x320")]
[Token(Token = "0x400C0B1")]
[SerializeField]
private AnimationCurve pitchShiftCurve;
// Token: 0x0400C0B2 RID: 49330
[FieldOffset(Offset = "0x328")]
[Token(Token = "0x400C0B2")]
[SerializeField]
private float limbFeedbackDistanceInterval = 0.01f;
// Token: 0x0400C0B3 RID: 49331
[FieldOffset(Offset = "0x330")]
[Token(Token = "0x400C0B3")]
[SerializeField]
private RecRoomAudioClip arrowNockingAudioClip;
// Token: 0x0400C0B4 RID: 49332
[FieldOffset(Offset = "0x338")]
[Token(Token = "0x400C0B4")]
[SerializeField]
private Transform meshTransform;
// Token: 0x0400C0B5 RID: 49333
[FieldOffset(Offset = "0x340")]
[Token(Token = "0x400C0B5")]
[NonSerialized]
public bool FireArrowOnStringPickupRelease = true;
// Token: 0x0400C0B6 RID: 49334
[FieldOffset(Offset = "0x348")]
[Token(Token = "0x400C0B6")]
private BowArrow DMKAHHBDMGG;
// Token: 0x0400C0B7 RID: 49335
[FieldOffset(Offset = "0x350")]
[Token(Token = "0x400C0B7")]
private float BECEEBBEDEK;
// Token: 0x0400C0B8 RID: 49336
[FieldOffset(Offset = "0x358")]
[Token(Token = "0x400C0B8")]
private IDisposable LIMBDHFPJIN;
// Token: 0x0400C0B9 RID: 49337
[Token(Token = "0x400C0B9")]
protected static readonly int IFACLFMIFJB = Animator.StringToHash("Pull");
}
}
@@ -0,0 +1,309 @@
using System;
using System.Collections;
using Cpp2IlInjected;
using RecRoom.Core.AI;
using RecRoom.Core.Combat;
using RecRoom.Core.Pools;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B58 RID: 11096
[Token(Token = "0x2002B58")]
public class BowArrow : Bullet
{
// Token: 0x17003419 RID: 13337
// (get) Token: 0x06012A6F RID: 76399 RVA: 0x00446978 File Offset: 0x00444B78
[Token(Token = "0x17003419")]
protected override Vector3 CHBLIFPICIE
{
[Token(Token = "0x6012A6F")]
[Address(RVA = "0x10CC590", Offset = "0x10CB390", VA = "0x1810CC590", Slot = "4")]
get
{
bool flag;
if (flag)
{
Vector3 vector;
float z = vector.z;
}
throw new NullReferenceException();
}
}
// Token: 0x1700341A RID: 13338
// (get) Token: 0x06012A70 RID: 76400 RVA: 0x00446998 File Offset: 0x00444B98
// (set) Token: 0x06012A71 RID: 76401 RVA: 0x004469AC File Offset: 0x00444BAC
[Token(Token = "0x1700341A")]
protected bool BCKCEELIDLH
{
[Token(Token = "0x6012A70")]
[Address(RVA = "0x10CBD10", Offset = "0x10CAB10", VA = "0x1810CBD10")]
get;
[Token(Token = "0x6012A71")]
[Address(RVA = "0x10CC650", Offset = "0x10CB450", VA = "0x1810CC650")]
set;
}
// Token: 0x06012A72 RID: 76402 RVA: 0x004469C0 File Offset: 0x00444BC0
[Token(Token = "0x6012A72")]
[Address(RVA = "0x10CBC60", Offset = "0x10CAA60", VA = "0x1810CBC60", Slot = "6")]
protected override void Awake()
{
base.Awake();
this.<IPENIMGLJAK>k__BackingField = true;
}
// Token: 0x06012A73 RID: 76403 RVA: 0x004469DC File Offset: 0x00444BDC
[Token(Token = "0x6012A73")]
[Address(RVA = "0x10CBD20", Offset = "0x10CAB20", VA = "0x1810CBD20", Slot = "8")]
protected override void FixedUpdate()
{
if (!this.<IPENIMGLJAK>k__BackingField)
{
Transform kmeldgnjgfl = this.KMELDGNJGFL;
int num = 0;
if (kmeldgnjgfl != num)
{
Transform transform = base.transform;
Transform kmeldgnjgfl2 = this.KMELDGNJGFL;
float z = this.EIJNMCNMMOC.z;
Vector3 vector;
float z2 = vector.z;
Transform transform2 = base.transform;
Quaternion pankplbabfb = this.PANKPLBABFB;
if (this.KMELDGNJGFL.gameObject.activeSelf)
{
if (!this.HFPMICGDIPD)
{
return;
}
Enemy <IECJIJLMNHN>k__BackingField = this.<IECJIJLMNHN>k__BackingField;
int num2 = 0;
if (!(<IECJIJLMNHN>k__BackingField == num2) && !this.<IECJIJLMNHN>k__BackingField.rigidbodyEx.JEGGMAKBGEK)
{
return;
}
}
}
this.ImmediateReleaseBullet();
return;
}
base.FixedUpdate();
}
// Token: 0x06012A74 RID: 76404 RVA: 0x00446A98 File Offset: 0x00444C98
[Token(Token = "0x6012A74")]
[Address(RVA = "0x10CBFE0", Offset = "0x10CADE0", VA = "0x1810CBFE0", Slot = "10")]
protected override void LFDOBCFHFNP(CBLLJNPBJOI LLJEGLKBKME)
{
base.LFDOBCFHFNP(LLJEGLKBKME);
GameObject gibdaoejgha = this.GIBDAOEJGHA;
int num = 0;
if (gibdaoejgha != num)
{
Transform transform = this.GIBDAOEJGHA.transform;
Enemy <IECJIJLMNHN>k__BackingField = this.<IECJIJLMNHN>k__BackingField;
this.KMELDGNJGFL = transform;
int num2 = 0;
bool flag = <IECJIJLMNHN>k__BackingField != num2;
Player <KCKOBEMCIGG>k__BackingField = this.<KCKOBEMCIGG>k__BackingField;
int num3 = 0;
this.HFPMICGDIPD = flag;
bool flag2 = <KCKOBEMCIGG>k__BackingField != num3;
this.OMKOLJOPAHJ = flag2;
if (flag2)
{
IILCGFIHJLP<Player, bool> playerSpawnEvent = Player.PlayerSpawnEvent;
Action<Player, bool> action = new Action(this.BOJDHFMMBKI);
Player.PlayerSpawnEvent = IILCGFIHJLP.BPJDFPACLMK(playerSpawnEvent, action);
}
Transform transform2 = base.transform;
Vector3 up = Vector3.up;
Transform kmeldgnjgfl = this.KMELDGNJGFL;
Transform transform3 = base.transform;
string text = this.ToString();
Vector3 vector;
float z = vector.z;
this.EIJNMCNMMOC.z = z;
Vector3 one = Vector3.one;
Transform transform4 = base.transform;
Vector3 vector2;
float z2 = vector2.z;
bool flag3;
if (flag3)
{
Transform transform5 = base.transform;
Transform transform6 = base.transform;
Transform transform7 = base.transform;
int num4 = 0;
base.transform.localScale = num4;
}
BulletTrail ajihbhiieeg = this.AJIHBHIIEEG;
int num5 = 0;
if (ajihbhiieeg != num5)
{
this.AJIHBHIIEEG.Stop();
}
}
}
// Token: 0x06012A75 RID: 76405 RVA: 0x00446BE4 File Offset: 0x00444DE4
[Token(Token = "0x6012A75")]
[Address(RVA = "0x10CC6C0", Offset = "0x10CB4C0", VA = "0x1810CC6C0", Slot = "9")]
public override void Release(Vector3 IPPBFGDBMAD)
{
base.enabled = true;
BulletTrail ajihbhiieeg = this.AJIHBHIIEEG;
int num = 0;
if (ajihbhiieeg != num)
{
this.AJIHBHIIEEG.enabled = true;
}
this.<IPENIMGLJAK>k__BackingField = false;
base.MIKOLILDAJA();
if (base.enabled)
{
BowArrow.GBKNDKINJJE gbkndkinjje;
gbkndkinjje.System.IDisposable.Dispose();
gbkndkinjje.<>1__state = (int)((ulong)0L);
gbkndkinjje.<>4__this = this;
Coroutine coroutine = base.StartCoroutine(gbkndkinjje);
this.KPJEPHMDLCF = coroutine;
}
}
// Token: 0x06012A76 RID: 76406 RVA: 0x00446C58 File Offset: 0x00444E58
[Token(Token = "0x6012A76")]
[Address(RVA = "0x10CBF50", Offset = "0x10CAD50", VA = "0x1810CBF50")]
public void ImmediateReleaseBullet()
{
Coroutine kpjephmdlcf = this.KPJEPHMDLCF;
if (kpjephmdlcf != 0)
{
base.StopCoroutine(kpjephmdlcf);
}
this.ResetArrowParams();
bool flag = GlobalPool.ONCPNMDGGKG.Release<BowArrow>(this);
}
// Token: 0x06012A77 RID: 76407 RVA: 0x00446C94 File Offset: 0x00444E94
[Token(Token = "0x6012A77")]
[Address(RVA = "0x10CC660", Offset = "0x10CB460", VA = "0x1810CC660")]
private IEnumerator PPNHBBFJAFL()
{
/*
An exception occurred when decompiling this method (06012A77)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.IEnumerator RecRoom.Tools.Weapons.BowArrow::PPNHBBFJAFL()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
call:void(GBKNDKINJJE::System.IDisposable.Dispose, ldloc:GBKNDKINJJE(var_0))
stfld:int32(GBKNDKINJJE::<>1__state, ldloc:GBKNDKINJJE(var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](0)))
stfld:BowArrow(GBKNDKINJJE::<>4__this, ldloc:GBKNDKINJJE(var_0), ldloc:BowArrow(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: 0x06012A78 RID: 76408 RVA: 0x00446CB8 File Offset: 0x00444EB8
[Token(Token = "0x6012A78")]
[Address(RVA = "0x10CC7D0", Offset = "0x10CB5D0", VA = "0x1810CC7D0")]
public void ResetArrowParams()
{
if (this.OMKOLJOPAHJ)
{
IILCGFIHJLP<Player, bool> playerSpawnEvent = Player.PlayerSpawnEvent;
Action<Player, bool> action = new Action(this.BOJDHFMMBKI);
Player.PlayerSpawnEvent = IILCGFIHJLP.GMNMHGMFGOL(playerSpawnEvent, action);
}
int num = 0;
base.enabled = num != 0;
BulletTrail ajihbhiieeg = this.AJIHBHIIEEG;
int num2 = 0;
if (ajihbhiieeg != num2)
{
BulletTrail ajihbhiieeg2 = this.AJIHBHIIEEG;
int num3 = 0;
ajihbhiieeg2.enabled = num3 != 0;
}
this.<IPENIMGLJAK>k__BackingField = true;
this.KMELDGNJGFL = (ulong)0L;
Quaternion identity = Quaternion.identity;
float z = Vector3.zero.z;
this.EIJNMCNMMOC.z = z;
this.HFPMICGDIPD = false;
}
// Token: 0x06012A79 RID: 76409 RVA: 0x00446D5C File Offset: 0x00444F5C
[Token(Token = "0x6012A79")]
[Address(RVA = "0x10CBC80", Offset = "0x10CAA80", VA = "0x1810CBC80")]
private void BOJDHFMMBKI(Player IEKDDPPNFPF, bool GBDEEHJOOEB)
{
if (this.OMKOLJOPAHJ)
{
Player <KCKOBEMCIGG>k__BackingField = this.<KCKOBEMCIGG>k__BackingField;
if (IEKDDPPNFPF == <KCKOBEMCIGG>k__BackingField)
{
this.ImmediateReleaseBullet();
}
}
}
// Token: 0x06012A7A RID: 76410 RVA: 0x00446D8C File Offset: 0x00444F8C
[Token(Token = "0x6012A7A")]
[Address(RVA = "0x10CC990", Offset = "0x10CB790", VA = "0x1810CC990")]
public BowArrow()
{
Quaternion identity = Quaternion.identity;
float z = Vector3.zero.z;
this.EIJNMCNMMOC.z = z;
base..ctor();
}
// Token: 0x0400C0BC RID: 49340
[FieldOffset(Offset = "0x1F8")]
[Token(Token = "0x400C0BC")]
[SerializeField]
private Transform colliderOriginTransform;
// Token: 0x0400C0BD RID: 49341
[FieldOffset(Offset = "0x200")]
[Token(Token = "0x400C0BD")]
private Transform KMELDGNJGFL;
// Token: 0x0400C0BE RID: 49342
[FieldOffset(Offset = "0x208")]
[Token(Token = "0x400C0BE")]
private Quaternion PANKPLBABFB;
// Token: 0x0400C0BF RID: 49343
[FieldOffset(Offset = "0x218")]
[Token(Token = "0x400C0BF")]
private Vector3 EIJNMCNMMOC;
// Token: 0x0400C0C0 RID: 49344
[FieldOffset(Offset = "0x224")]
[Token(Token = "0x400C0C0")]
private bool HFPMICGDIPD;
// Token: 0x0400C0C1 RID: 49345
[FieldOffset(Offset = "0x225")]
[Token(Token = "0x400C0C1")]
private bool OMKOLJOPAHJ;
// Token: 0x0400C0C2 RID: 49346
[FieldOffset(Offset = "0x228")]
[Token(Token = "0x400C0C2")]
private Coroutine KPJEPHMDLCF;
}
}
@@ -0,0 +1,248 @@
using System;
using Cpp2IlInjected;
using RecRoom.Core.Combat;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B5A RID: 11098
[Token(Token = "0x2002B5A")]
public class BowString : WeaponAccessory
{
// Token: 0x1700341D RID: 13341
// (get) Token: 0x06012A81 RID: 76417 RVA: 0x00446EA8 File Offset: 0x004450A8
[Token(Token = "0x1700341D")]
public Vector3 LLLIMCMPDOO
{
[Token(Token = "0x6012A81")]
[Address(RVA = "0x10CD3B0", Offset = "0x10CC1B0", VA = "0x1810CD3B0")]
get
{
Transform transform = base.transform;
Vector3 vector;
float z = vector.z;
throw new NullReferenceException();
}
}
// Token: 0x1700341E RID: 13342
// (get) Token: 0x06012A82 RID: 76418 RVA: 0x00446EC8 File Offset: 0x004450C8
// (set) Token: 0x06012A83 RID: 76419 RVA: 0x00446EDC File Offset: 0x004450DC
[Token(Token = "0x1700341E")]
public AxisConstrainedRigidbodyPickup ELPKNBILKMD
{
[Token(Token = "0x6012A82")]
[Address(RVA = "0x4335D0", Offset = "0x4323D0", VA = "0x1804335D0")]
get;
[Token(Token = "0x6012A83")]
[Address(RVA = "0x703580", Offset = "0x702380", VA = "0x180703580")]
private set;
}
// Token: 0x06012A84 RID: 76420 RVA: 0x00446EF0 File Offset: 0x004450F0
[Token(Token = "0x6012A84")]
[Address(RVA = "0x10CCA60", Offset = "0x10CB860", VA = "0x1810CCA60", Slot = "5")]
protected override void Awake()
{
base.Awake();
Weapon parentWeapon = this.parentWeapon;
if (parentWeapon == 0)
{
}
this.Bow = parentWeapon;
int num = 0;
if (parentWeapon == num)
{
Debug.LogError(base.name + " is not parented to a bow weapon.");
}
this.Bow.<DHOADBJPCGM>k__BackingField = this;
Tool tool = this._tool;
int num2 = 0;
if (tool != num2)
{
this._tool.IgnorePickupDirection = true;
this._tool.AlwaysPhysicalPickupOffCenter = false;
}
}
// Token: 0x06012A85 RID: 76421 RVA: 0x00446F78 File Offset: 0x00445178
[Token(Token = "0x6012A85")]
[Address(RVA = "0x10CD120", Offset = "0x10CBF20", VA = "0x1810CD120", Slot = "6")]
protected override void Start()
{
Tool tool = this._tool;
int num = 0;
if (tool != num)
{
Tool tool2 = this._tool;
RigidbodyPickup rigidbodyPickup = tool2.rigidbodyPickup;
if (rigidbodyPickup == 0)
{
}
this.<JGDBHKNNGEF>k__BackingField = rigidbodyPickup;
MFBGLIHGCGO<Tool> postPickupEvent = tool2.PostPickupEvent;
Action<Tool> action = new Action(this.HAAIALDMMEL);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.BPJDFPACLMK(postPickupEvent, action);
tool2.PostPickupEvent = mfbglihgcgo;
Tool tool3 = this._tool;
MFBGLIHGCGO<Tool> postReleaseEvent = tool3.PostReleaseEvent;
Action<Tool> action2 = new Action(this.OIOCPLEKMEK);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.BPJDFPACLMK(postReleaseEvent, action2);
tool3.PostReleaseEvent = mfbglihgcgo2;
Tool tool4 = this._tool;
MFBGLIHGCGO<Tool> hoverStartEvent = tool4.HoverStartEvent;
Action<Tool> action3 = new Action(this.CCPHHDELIFF);
MFBGLIHGCGO<Tool> mfbglihgcgo3 = MFBGLIHGCGO.BPJDFPACLMK(hoverStartEvent, action3);
tool4.HoverStartEvent = mfbglihgcgo3;
}
if (!this._tool.<BIPMAHKMNKF>k__BackingField)
{
base.NNPBKEIEMHL();
}
Renderer[] customHighlightRenderers = this.customHighlightRenderers;
if (customHighlightRenderers != 0 && customHighlightRenderers.Length != 0)
{
Tool tool5 = this._tool;
Tool.BPPMEBHPHDM bppmebhphdm = new Tool.BPPMEBHPHDM(base.ELEHMFFDFPD);
tool5.CustomHighlightingBehavior = bppmebhphdm;
Tool tool6 = this._tool;
Tool.BPPMEBHPHDM bppmebhphdm2 = new Tool.BPPMEBHPHDM(base.GDPCGOGGCCI);
tool6.CustomTutorialHighlightingBehavior = bppmebhphdm2;
}
this.KJDHMJPNDCK = true;
}
// Token: 0x06012A86 RID: 76422 RVA: 0x004470BC File Offset: 0x004452BC
[Token(Token = "0x6012A86")]
[Address(RVA = "0x7C90A0", Offset = "0x7C7EA0", VA = "0x1807C90A0")]
private void OnEnable()
{
if (!this._tool.<BIPMAHKMNKF>k__BackingField)
{
base.NNPBKEIEMHL();
return;
}
}
// Token: 0x06012A87 RID: 76423 RVA: 0x004470E4 File Offset: 0x004452E4
[Token(Token = "0x6012A87")]
[Address(RVA = "0x10CCF90", Offset = "0x10CBD90", VA = "0x1810CCF90", Slot = "7")]
protected override void OnDestroy()
{
base.OnDestroy();
Tool tool = this._tool;
int num = 0;
if (tool != num)
{
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> postPickupEvent = tool2.PostPickupEvent;
Action<Tool> action = new Action(this.HAAIALDMMEL);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.GMNMHGMFGOL(postPickupEvent, action);
tool2.PostPickupEvent = mfbglihgcgo;
Tool tool3 = this._tool;
MFBGLIHGCGO<Tool> postReleaseEvent = tool3.PostReleaseEvent;
Action<Tool> action2 = new Action(this.OIOCPLEKMEK);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.GMNMHGMFGOL(postReleaseEvent, action2);
tool3.PostReleaseEvent = mfbglihgcgo2;
Tool tool4 = this._tool;
MFBGLIHGCGO<Tool> hoverStartEvent = tool4.HoverStartEvent;
Action<Tool> action3 = new Action(this.CCPHHDELIFF);
MFBGLIHGCGO<Tool> mfbglihgcgo3 = MFBGLIHGCGO.GMNMHGMFGOL(hoverStartEvent, action3);
tool4.HoverStartEvent = mfbglihgcgo3;
}
}
// Token: 0x06012A88 RID: 76424 RVA: 0x004471A8 File Offset: 0x004453A8
[Token(Token = "0x6012A88")]
[Address(RVA = "0x10CCD50", Offset = "0x10CBB50", VA = "0x1810CCD50")]
private void CJNIBFGDCCN()
{
Bow bow = this.Bow;
int num = 0;
if (bow != num)
{
AxisConstrainedRigidbodyPickup axisConstrainedRigidbodyPickup = this.<JGDBHKNNGEF>k__BackingField;
int num2 = 0;
if (axisConstrainedRigidbodyPickup != num2)
{
Bow bow2 = this.Bow;
AxisConstrainedRigidbodyPickup axisConstrainedRigidbodyPickup2 = this.<JGDBHKNNGEF>k__BackingField;
RigidbodyEx rigidbodyEx = bow2._tool.rigidbodyEx;
Vector3 vector;
float z = vector.z;
axisConstrainedRigidbodyPickup2.sphericalRestrictionCenter.z = z;
}
}
}
// Token: 0x06012A89 RID: 76425 RVA: 0x00447218 File Offset: 0x00445418
[Token(Token = "0x6012A89")]
[Address(RVA = "0x10CCE40", Offset = "0x10CBC40", VA = "0x1810CCE40")]
private void HAAIALDMMEL(Tool EGFEJGHDNAI)
{
Bow bow = this.Bow;
if (bow.FireArrowOnStringPickupRelease)
{
bow.ReadyArrow();
}
Action action = new Action(this.CJNIBFGDCCN);
IDisposable disposable = this.OPEMIFENIJM(action);
this.MBOJILKNFIL = disposable;
}
// Token: 0x06012A8A RID: 76426 RVA: 0x00447260 File Offset: 0x00445460
[Token(Token = "0x6012A8A")]
[Address(RVA = "0x10CCED0", Offset = "0x10CBCD0", VA = "0x1810CCED0")]
private void OIOCPLEKMEK(Tool EGFEJGHDNAI)
{
AxisConstrainedRigidbodyPickup axisConstrainedRigidbodyPickup = this.<JGDBHKNNGEF>k__BackingField;
int num = 0;
if (axisConstrainedRigidbodyPickup != num)
{
this.Bow.OnStringRelease();
}
IDisposable mbojilknfil = this.MBOJILKNFIL;
this.GLFCOPMIKLH(mbojilknfil);
Action action = new Action(base.NNPBKEIEMHL);
Coroutine coroutine = this.CHAAKFJCLIH(action);
}
// Token: 0x06012A8B RID: 76427 RVA: 0x004472B8 File Offset: 0x004454B8
[Token(Token = "0x6012A8B")]
[Address(RVA = "0x10CCBD0", Offset = "0x10CB9D0", VA = "0x1810CCBD0")]
private void CCPHHDELIFF(Tool NBHJPDBHDHB)
{
Tool tool = this.Bow._tool;
if (tool.<BIPMAHKMNKF>k__BackingField)
{
Player <OKDFEPHLKCB>k__BackingField = tool.<OKDFEPHLKCB>k__BackingField;
Player <EGKJPJKLEAI>k__BackingField = Player.<EGKJPJKLEAI>k__BackingField;
if (<OKDFEPHLKCB>k__BackingField == <EGKJPJKLEAI>k__BackingField)
{
PlayerHand.PLLIKAOIPHP type = tool.<PBCNKLKCIHJ>k__BackingField.type;
PlayerHand playerHand;
playerHand.Vibrate(50, 1f);
return;
}
}
}
// Token: 0x06012A8C RID: 76428 RVA: 0x00447314 File Offset: 0x00445514
[Token(Token = "0x6012A8C")]
[Address(RVA = "0xBC7700", Offset = "0xBC6500", VA = "0x180BC7700")]
public BowString()
{
}
// Token: 0x0400C0C7 RID: 49351
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x400C0C7")]
[NonSerialized]
public Bow Bow;
// Token: 0x0400C0C9 RID: 49353
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x400C0C9")]
private IDisposable MBOJILKNFIL;
}
}
@@ -0,0 +1,125 @@
using System;
using Cpp2IlInjected;
using RecRoom.Core;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B5B RID: 11099
[Token(Token = "0x2002B5B")]
public class BowstringRenderer : MonoBehaviour
{
// Token: 0x06012A8D RID: 76429 RVA: 0x00447328 File Offset: 0x00445528
[Token(Token = "0x6012A8D")]
[Address(RVA = "0x10CF560", Offset = "0x10CE360", VA = "0x1810CF560")]
private void Awake()
{
LineRenderer component = base.GetComponent<LineRenderer>();
this.HGLBLNHHPIA = component;
Vector3[] array = new Vector3[3];
component.SetPositions(array);
}
// Token: 0x06012A8E RID: 76430 RVA: 0x00447358 File Offset: 0x00445558
[Token(Token = "0x6012A8E")]
[Address(RVA = "0x10CF880", Offset = "0x10CE680", VA = "0x1810CF880")]
private void Start()
{
Action action = new Action(this.JEEMKGCKHKD);
IDisposable disposable = this.GIEOOLAGCKA(action, Scheduler.NEIJEKIKDOG.PreRender);
}
// Token: 0x06012A8F RID: 76431 RVA: 0x0044737C File Offset: 0x0044557C
[Token(Token = "0x6012A8F")]
[Address(RVA = "0x10CF5E0", Offset = "0x10CE3E0", VA = "0x1810CF5E0")]
private void JEEMKGCKHKD()
{
LineRenderer hglblnhhpia = this.HGLBLNHHPIA;
Transform transform = hglblnhhpia.transform;
Transform transform2 = this.upperLimbNotch;
int num = 0;
int num2 = 0;
hglblnhhpia.SetPosition(num2, num);
LineRenderer hglblnhhpia2 = this.HGLBLNHHPIA;
Transform transform3 = hglblnhhpia2.transform;
Transform transform4 = this.nockingPointTransform;
int num3 = 0;
hglblnhhpia2.SetPosition(1, num3);
LineRenderer hglblnhhpia3 = this.HGLBLNHHPIA;
Transform transform5 = hglblnhhpia3.transform;
Transform transform6 = this.lowerLimbNotch;
int num4 = 0;
Vector3 vector;
float z = vector.z;
hglblnhhpia3.SetPosition(2, num4);
}
// Token: 0x06012A90 RID: 76432 RVA: 0x00447408 File Offset: 0x00445608
[Token(Token = "0x6012A90")]
[Address(RVA = "0x10CF7B0", Offset = "0x10CE5B0", VA = "0x1810CF7B0")]
private void OnEnable()
{
this.HGLBLNHHPIA.enabled = true;
}
// Token: 0x06012A91 RID: 76433 RVA: 0x00447428 File Offset: 0x00445628
[Token(Token = "0x6012A91")]
[Address(RVA = "0xFB3980", Offset = "0xFB2780", VA = "0x180FB3980")]
private void OnDisable()
{
LineRenderer hglblnhhpia = this.HGLBLNHHPIA;
int num = 0;
hglblnhhpia.enabled = num != 0;
}
// Token: 0x06012A92 RID: 76434 RVA: 0x0044744C File Offset: 0x0044564C
[Token(Token = "0x6012A92")]
[Address(RVA = "0x10CF7E0", Offset = "0x10CE5E0", VA = "0x1810CF7E0")]
private void Reset()
{
LineRenderer component = base.GetComponent<LineRenderer>();
int num = 0;
if (component == num)
{
LineRenderer lineRenderer = base.gameObject.AddComponent<LineRenderer>();
}
}
// Token: 0x06012A93 RID: 76435 RVA: 0x00447480 File Offset: 0x00445680
[Token(Token = "0x6012A93")]
[Address(RVA = "0x74EA40", Offset = "0x74D840", VA = "0x18074EA40")]
public BowstringRenderer()
{
}
// Token: 0x0400C0CA RID: 49354
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400C0CA")]
[SerializeField]
[DDPIINEJFMD(JIBDPHMGEGO.SelfAndParent, false, false, false)]
private Bow bow;
// Token: 0x0400C0CB RID: 49355
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400C0CB")]
[SerializeField]
private Transform upperLimbNotch;
// Token: 0x0400C0CC RID: 49356
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400C0CC")]
[SerializeField]
private Transform lowerLimbNotch;
// Token: 0x0400C0CD RID: 49357
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400C0CD")]
[SerializeField]
private Transform nockingPointTransform;
// Token: 0x0400C0CE RID: 49358
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x400C0CE")]
private LineRenderer HGLBLNHHPIA;
}
}
@@ -0,0 +1,482 @@
using System;
using System.Collections;
using Cpp2IlInjected;
using RecRoom.Core.Combat;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B41 RID: 11073
[Token(Token = "0x2002B41")]
public class BurstFireGun : RangedWeapon
{
// Token: 0x0601296E RID: 76142 RVA: 0x00440984 File Offset: 0x0043EB84
[Token(Token = "0x601296E")]
[Address(RVA = "0x10CFA20", Offset = "0x10CE820", VA = "0x1810CFA20", Slot = "13")]
protected override void Awake()
{
base.Awake();
if (this.burstMode == BurstFireGun.CDKPGNAAAGK.SPRAY)
{
Transform transform = this.sprayTargetRoot;
int num = 0;
if (!(transform == num) && this.sprayTargetRoot.childCount != 0)
{
Transform[] array = new Transform[this.sprayTargetRoot.childCount];
int num2 = 0;
this.NGFEFMLCMJA = array;
int childCount = this.sprayTargetRoot.childCount;
if (num2 >= childCount)
{
goto IL_A9;
}
Transform transform2 = this.sprayTargetRoot;
Transform[] ngfefmlcmja = this.NGFEFMLCMJA;
Transform child = transform2.GetChild(num2);
if (child != 0)
{
}
num2++;
ngfefmlcmja[0] = child;
Transform transform3 = this.sprayTargetRoot;
}
Debug.LogError(base.name + " is missing spray targets.");
}
IL_A9:
Tool tool = this._tool;
int num3 = 0;
if (tool != num3)
{
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> inputDownEvent = tool2.InputDownEvent;
Action<Tool> action = new Action(this.GDPCAAHGLJN);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.BPJDFPACLMK(inputDownEvent, action);
tool2.InputDownEvent = mfbglihgcgo;
Tool tool3 = this._tool;
MFBGLIHGCGO<Tool> inputUpEvent = tool3.InputUpEvent;
Action<Tool> action2 = new Action(this.KBPEKMLDNHC);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.BPJDFPACLMK(inputUpEvent, action2);
tool3.InputUpEvent = mfbglihgcgo2;
Tool tool4 = this._tool;
MFBGLIHGCGO<Tool> inputCancelledEvent = tool4.InputCancelledEvent;
Action<Tool> action3 = new Action(this.FIECILCCNFD);
MFBGLIHGCGO<Tool> mfbglihgcgo3 = MFBGLIHGCGO.BPJDFPACLMK(inputCancelledEvent, action3);
tool4.InputCancelledEvent = mfbglihgcgo3;
}
}
// Token: 0x0601296F RID: 76143 RVA: 0x00440AF4 File Offset: 0x0043ECF4
[Token(Token = "0x601296F")]
[Address(RVA = "0x10D0570", Offset = "0x10CF370", VA = "0x1810D0570", Slot = "14")]
protected override void OnDestroy()
{
base.OnDestroy();
Tool tool = this._tool;
int num = 0;
if (tool != num)
{
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> inputDownEvent = tool2.InputDownEvent;
Action<Tool> action = new Action(this.GDPCAAHGLJN);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.GMNMHGMFGOL(inputDownEvent, action);
tool2.InputDownEvent = mfbglihgcgo;
Tool tool3 = this._tool;
MFBGLIHGCGO<Tool> inputUpEvent = tool3.InputUpEvent;
Action<Tool> action2 = new Action(this.KBPEKMLDNHC);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.GMNMHGMFGOL(inputUpEvent, action2);
tool3.InputUpEvent = mfbglihgcgo2;
Tool tool4 = this._tool;
MFBGLIHGCGO<Tool> inputCancelledEvent = tool4.InputCancelledEvent;
Action<Tool> action3 = new Action(this.FIECILCCNFD);
MFBGLIHGCGO<Tool> mfbglihgcgo3 = MFBGLIHGCGO.GMNMHGMFGOL(inputCancelledEvent, action3);
tool4.InputCancelledEvent = mfbglihgcgo3;
}
}
// Token: 0x06012970 RID: 76144 RVA: 0x00440BB8 File Offset: 0x0043EDB8
[Token(Token = "0x6012970")]
[Address(RVA = "0x10CFE60", Offset = "0x10CEC60", VA = "0x1810CFE60")]
private void GDPCAAHGLJN(Tool NBHJPDBHDHB)
{
if (!base.OGIBLNIIHDK)
{
return;
}
if (!base.NOOCGFJOMEM)
{
bool isCompleted = ((IAsyncResult)this).IsCompleted;
return;
}
if (!base.MJDHKAHMGMO && !base.LAJLNCJKALH)
{
Coroutine ehfgnpndain = this.EHFGNPNDAIN;
if (ehfgnpndain != 0)
{
base.StopCoroutine(ehfgnpndain);
this.EHFGNPNDAIN = (ulong)0L;
}
BurstFireGun.DILDONIOPLG dildonioplg;
dildonioplg.System.IDisposable.Dispose();
dildonioplg.<>1__state = (int)((ulong)0L);
dildonioplg.<>4__this = this;
Coroutine coroutine = base.StartCoroutine(dildonioplg);
this.EHFGNPNDAIN = coroutine;
return;
}
this._weaponAudio.OnMisfire();
}
// Token: 0x06012971 RID: 76145 RVA: 0x00440C44 File Offset: 0x0043EE44
[Token(Token = "0x6012971")]
[Address(RVA = "0x10D0060", Offset = "0x10CEE60", VA = "0x1810D0060")]
private void KBPEKMLDNHC(Tool NBHJPDBHDHB)
{
Coroutine ehfgnpndain = this.EHFGNPNDAIN;
if (ehfgnpndain != 0)
{
base.StopCoroutine(ehfgnpndain);
this.EHFGNPNDAIN = (ulong)0L;
}
}
// Token: 0x06012972 RID: 76146 RVA: 0x00440C6C File Offset: 0x0043EE6C
[Token(Token = "0x6012972")]
[Address(RVA = "0x10CFE20", Offset = "0x10CEC20", VA = "0x1810CFE20")]
private void FIECILCCNFD(Tool NBHJPDBHDHB)
{
if (base.OGIBLNIIHDK)
{
Coroutine ehfgnpndain = this.EHFGNPNDAIN;
if (ehfgnpndain != 0)
{
base.StopCoroutine(ehfgnpndain);
this.EHFGNPNDAIN = (ulong)0L;
}
}
}
// Token: 0x06012973 RID: 76147 RVA: 0x00440CA0 File Offset: 0x0043EEA0
[Token(Token = "0x6012973")]
[Address(RVA = "0x10D03C0", Offset = "0x10CF1C0", VA = "0x1810D03C0", Slot = "42")]
protected override void OICJPFPBIIK(Vector3 DDHPAFKBMON, Quaternion IGPENJBJADK, Vector3 NHAOMEMANJA, float LFDFFDCJAAD, bool FLKHKHDBIOH, byte LNPHJIHHNPN)
{
float z = NHAOMEMANJA.z;
float z2 = DDHPAFKBMON.z;
if (!base.OGIBLNIIHDK)
{
int num;
this.KNGKMOKBCAE(num);
}
float z3 = NHAOMEMANJA.z;
float z4 = DDHPAFKBMON.z;
}
// Token: 0x06012974 RID: 76148 RVA: 0x00440CDC File Offset: 0x0043EEDC
[Token(Token = "0x6012974")]
[Address(RVA = "0x10CF8F0", Offset = "0x10CE6F0", VA = "0x1810CF8F0")]
private void ABNPFEDICFJ()
{
Coroutine ehfgnpndain = this.EHFGNPNDAIN;
if (ehfgnpndain != 0)
{
base.StopCoroutine(ehfgnpndain);
this.EHFGNPNDAIN = (ulong)0L;
}
BurstFireGun.DILDONIOPLG dildonioplg;
dildonioplg.System.IDisposable.Dispose();
dildonioplg.<>1__state = (int)((ulong)0L);
dildonioplg.<>4__this = this;
Coroutine coroutine = base.StartCoroutine(dildonioplg);
this.EHFGNPNDAIN = coroutine;
}
// Token: 0x06012975 RID: 76149 RVA: 0x00440D2C File Offset: 0x0043EF2C
[Token(Token = "0x6012975")]
[Address(RVA = "0x10D0060", Offset = "0x10CEE60", VA = "0x1810D0060")]
private void IGIDNLPODPD()
{
Coroutine ehfgnpndain = this.EHFGNPNDAIN;
if (ehfgnpndain != 0)
{
base.StopCoroutine(ehfgnpndain);
this.EHFGNPNDAIN = (ulong)0L;
}
}
// Token: 0x06012976 RID: 76150 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6012976")]
[Address(RVA = "0x10D02A0", Offset = "0x10CF0A0", VA = "0x1810D02A0")]
private bool LFHJJNKDMJA()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06012977 RID: 76151 RVA: 0x00440D54 File Offset: 0x0043EF54
[Token(Token = "0x6012977")]
[Address(RVA = "0x10D0090", Offset = "0x10CEE90", VA = "0x1810D0090")]
private IEnumerator JNOBFPLKDMB()
{
/*
An exception occurred when decompiling this method (06012977)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.IEnumerator RecRoom.Tools.Weapons.BurstFireGun::JNOBFPLKDMB()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
call:void(DILDONIOPLG::System.IDisposable.Dispose, ldloc:DILDONIOPLG(var_0))
stfld:int32(DILDONIOPLG::<>1__state, ldloc:DILDONIOPLG(var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](0)))
stfld:BurstFireGun(DILDONIOPLG::<>4__this, ldloc:DILDONIOPLG(var_0), ldloc:BurstFireGun(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: 0x06012978 RID: 76152 RVA: 0x00440D78 File Offset: 0x0043EF78
[Token(Token = "0x6012978")]
[Address(RVA = "0x10D02B0", Offset = "0x10CF0B0", VA = "0x1810D02B0")]
private IEnumerator MBDNELNADAJ(float MOPKOPOKKEE)
{
/*
An exception occurred when decompiling this method (06012978)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.IEnumerator RecRoom.Tools.Weapons.BurstFireGun::MBDNELNADAJ(System.Single)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
call:void(MPCMFFHNNJG::System.IDisposable.Dispose, ldloc:MPCMFFHNNJG(var_0))
stfld:float32(MPCMFFHNNJG::time, ldloc:MPCMFFHNNJG(var_0), ldloc:float32(MOPKOPOKKEE))
stfld:int32(MPCMFFHNNJG::<>1__state, ldloc:MPCMFFHNNJG(var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](0)))
}
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: 0x06012979 RID: 76153 RVA: 0x00440D9C File Offset: 0x0043EF9C
[Token(Token = "0x6012979")]
[Address(RVA = "0x10D01F0", Offset = "0x10CEFF0", VA = "0x1810D01F0")]
private void KNGKMOKBCAE(int HPBJPHFFGAI)
{
Coroutine bkmbbgmfgem = this.BKMBBGMFGEM;
if (bkmbbgmfgem != 0)
{
base.StopCoroutine(bkmbbgmfgem);
this.BKMBBGMFGEM = (ulong)0L;
}
BurstFireGun.EBDJGJFLOPF ebdjgjflopf;
ebdjgjflopf.System.IDisposable.Dispose();
ebdjgjflopf.<>1__state = (int)((ulong)0L);
ebdjgjflopf.<>4__this = this;
ebdjgjflopf.semiAutomaticShotCount = HPBJPHFFGAI;
Coroutine coroutine = base.StartCoroutine(ebdjgjflopf);
this.BKMBBGMFGEM = coroutine;
}
// Token: 0x0601297A RID: 76154 RVA: 0x00440DF0 File Offset: 0x0043EFF0
[Token(Token = "0x601297A")]
[Address(RVA = "0x10CF980", Offset = "0x10CE780", VA = "0x1810CF980")]
private void ACDNBPLCMDC()
{
Coroutine bkmbbgmfgem = this.BKMBBGMFGEM;
if (bkmbbgmfgem != 0)
{
base.StopCoroutine(bkmbbgmfgem);
this.BKMBBGMFGEM = (ulong)0L;
}
}
// Token: 0x170033FD RID: 13309
// (get) Token: 0x0601297B RID: 76155 RVA: 0x00440E18 File Offset: 0x0043F018
// (set) Token: 0x0601297C RID: 76156 RVA: 0x00440E48 File Offset: 0x0043F048
[Token(Token = "0x170033FD")]
private float GNNKANFOEDF
{
[Token(Token = "0x601297B")]
[Address(RVA = "0x10CFD40", Offset = "0x10CEB40", VA = "0x1810CFD40")]
get
{
Transform transform = this.kickbackTransform;
int num = 0;
if (transform != num)
{
Transform transform2 = this.kickbackTransform;
}
throw new NullReferenceException();
}
[Token(Token = "0x601297C")]
[Address(RVA = "0x10D00F0", Offset = "0x10CEEF0", VA = "0x1810D00F0")]
set
{
Transform transform = this.kickbackTransform;
int num = 0;
if (transform != num)
{
Transform transform2 = this.kickbackTransform;
Transform transform3 = this.kickbackTransform;
Vector3 vector;
float z = vector.z;
}
}
}
// Token: 0x0601297D RID: 76157 RVA: 0x00440E88 File Offset: 0x0043F088
[Token(Token = "0x601297D")]
[Address(RVA = "0x10CF9B0", Offset = "0x10CE7B0", VA = "0x1810CF9B0")]
private IEnumerator AKOJNEAJEJD(int HPBJPHFFGAI)
{
/*
An exception occurred when decompiling this method (0601297D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.IEnumerator RecRoom.Tools.Weapons.BurstFireGun::AKOJNEAJEJD(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
call:void(EBDJGJFLOPF::System.IDisposable.Dispose, ldloc:EBDJGJFLOPF(var_0))
stfld:BurstFireGun(EBDJGJFLOPF::<>4__this, ldloc:EBDJGJFLOPF(var_0), ldloc:BurstFireGun(this))
stfld:int32(EBDJGJFLOPF::<>1__state, ldloc:EBDJGJFLOPF(var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](0)))
stfld:int32(EBDJGJFLOPF::semiAutomaticShotCount, ldloc:EBDJGJFLOPF(var_0), ldloc:int32(HPBJPHFFGAI))
}
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: 0x0601297E RID: 76158 RVA: 0x00440EB4 File Offset: 0x0043F0B4
[Token(Token = "0x601297E")]
[Address(RVA = "0x10CFF70", Offset = "0x10CED70", VA = "0x1810CFF70")]
private void GHJLGIHFOPJ(float JLCOILDNDCP, float JFDEMJMDJPH, float FGOANKIAJAK, float AMFBDLGKMGG, out float POMGIDPAKLH, out float PHMMKNJHDJO)
{
float num = Mathf.InverseLerp(JLCOILDNDCP, 1f, JFDEMJMDJPH);
}
// Token: 0x0601297F RID: 76159 RVA: 0x00440ED0 File Offset: 0x0043F0D0
[Token(Token = "0x601297F")]
[Address(RVA = "0x10D0310", Offset = "0x10CF110", VA = "0x1810D0310")]
private float NGKOCAPENMB(float KMHEHJCNMJC, float POMGIDPAKLH, float PHMMKNJHDJO)
{
int num = 0;
return FJFHDHBBFKE.OMBOKJDOGMI(PHMMKNJHDJO * 0.5f, KMHEHJCNMJC, (float)num);
}
// Token: 0x06012980 RID: 76160 RVA: 0x00440EF0 File Offset: 0x0043F0F0
[Token(Token = "0x6012980")]
[Address(RVA = "0x10D0700", Offset = "0x10CF500", VA = "0x1810D0700")]
public BurstFireGun()
{
}
// Token: 0x0400BFEA RID: 49130
[Token(Token = "0x400BFEA")]
private const float IBNBNGLIKBJ = -1f;
// Token: 0x0400BFEB RID: 49131
[Token(Token = "0x400BFEB")]
private const float MPJMEKMGFCJ = 50f;
// Token: 0x0400BFEC RID: 49132
[FieldOffset(Offset = "0x2F0")]
[Token(Token = "0x400BFEC")]
[SerializeField]
[Header("Burst")]
private BurstFireGun.CDKPGNAAAGK burstMode;
// Token: 0x0400BFED RID: 49133
[FieldOffset(Offset = "0x2F8")]
[Token(Token = "0x400BFED")]
[SerializeField]
[Header("Kickback")]
private Transform kickbackTransform;
// Token: 0x0400BFEE RID: 49134
[FieldOffset(Offset = "0x300")]
[Token(Token = "0x400BFEE")]
[SerializeField]
private float totalBurstAngle = 5f;
// Token: 0x0400BFEF RID: 49135
[FieldOffset(Offset = "0x304")]
[Token(Token = "0x400BFEF")]
private float PFOJFHAAFJJ = 0.25f;
// Token: 0x0400BFF0 RID: 49136
[FieldOffset(Offset = "0x308")]
[Token(Token = "0x400BFF0")]
[SerializeField]
private float curveNextShotTimeNormalized = 0.75f;
// Token: 0x0400BFF1 RID: 49137
[FieldOffset(Offset = "0x30C")]
[Token(Token = "0x400BFF1")]
[SerializeField]
[Header("Simple Burst")]
private float simpleBurstModeBurstSize = 16f;
// Token: 0x0400BFF2 RID: 49138
[FieldOffset(Offset = "0x310")]
[Token(Token = "0x400BFF2")]
[SerializeField]
[Header("Spray")]
private bool hasMaxDistance;
// Token: 0x0400BFF3 RID: 49139
[FieldOffset(Offset = "0x314")]
[Token(Token = "0x400BFF3")]
[SerializeField]
private float maxDistance = 50f;
// Token: 0x0400BFF4 RID: 49140
[FieldOffset(Offset = "0x318")]
[Token(Token = "0x400BFF4")]
[SerializeField]
private Transform sprayTargetRoot;
// Token: 0x0400BFF5 RID: 49141
[FieldOffset(Offset = "0x320")]
[Token(Token = "0x400BFF5")]
private Transform[] NGFEFMLCMJA;
// Token: 0x0400BFF6 RID: 49142
[FieldOffset(Offset = "0x328")]
[Token(Token = "0x400BFF6")]
private Coroutine EHFGNPNDAIN;
// Token: 0x0400BFF7 RID: 49143
[FieldOffset(Offset = "0x330")]
[Token(Token = "0x400BFF7")]
private Coroutine BKMBBGMFGEM;
// Token: 0x02002B42 RID: 11074
[Token(Token = "0x2002B42")]
private enum CDKPGNAAAGK
{
// Token: 0x0400BFF9 RID: 49145
[Token(Token = "0x400BFF9")]
SPRAY,
// Token: 0x0400BFFA RID: 49146
[Token(Token = "0x400BFFA")]
SIMPLE
}
}
}
@@ -0,0 +1,371 @@
using System;
using Cpp2IlInjected;
using RecRoom.Core.Combat;
using RecRoom.Core.Pools;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B64 RID: 11108
[Token(Token = "0x2002B64")]
public class ChargeGun : RangedWeapon
{
// Token: 0x1700342A RID: 13354
// (get) Token: 0x06012ADC RID: 76508 RVA: 0x00448DF4 File Offset: 0x00446FF4
[Token(Token = "0x1700342A")]
private float ADANMKIMIOD
{
[Token(Token = "0x6012ADC")]
[Address(RVA = "0x10D1650", Offset = "0x10D0450", VA = "0x1810D1650")]
get
{
/*
An exception occurred when decompiling this method (06012ADC)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Single RecRoom.Tools.Weapons.ChargeGun::ODGLMJEGEPC()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:float64(var_1_07, callgetter:float64(KKPBCOOONNK::MLNCKCNEANC))
}
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: 0x1700342B RID: 13355
// (get) Token: 0x06012ADD RID: 76509 RVA: 0x00448E08 File Offset: 0x00447008
// (set) Token: 0x06012ADE RID: 76510 RVA: 0x00448E28 File Offset: 0x00447028
[Token(Token = "0x1700342B")]
private bool DJNLHFNFIKA
{
[Token(Token = "0x6012ADD")]
[Address(RVA = "0x10D1100", Offset = "0x10CFF00", VA = "0x1810D1100")]
get
{
return this.NLBEOHMNEGO.IAHDANBDAAM() != null;
}
[Token(Token = "0x6012ADE")]
[Address(RVA = "0x10D1150", Offset = "0x10CFF50", VA = "0x1810D1150")]
set
{
if (this.NLBEOHMNEGO.IAHDANBDAAM() == 0)
{
KLLMCPFPIIE<float> ghbmjkkecpm = this.GHBMJKKECPM;
double num = KKPBCOOONNK.EDNCMGJJLIH;
}
KLLMCPFPIIE<bool> nlbeohmnego = this.NLBEOHMNEGO;
}
}
// Token: 0x1700342C RID: 13356
// (get) Token: 0x06012ADF RID: 76511 RVA: 0x00448E60 File Offset: 0x00447060
[Token(Token = "0x1700342C")]
private float OLEOICPGCFD
{
[Token(Token = "0x6012ADF")]
[Address(RVA = "0x10D0C30", Offset = "0x10CFA30", VA = "0x1810D0C30")]
get
{
double num = KKPBCOOONNK.EDNCMGJJLIH;
KLLMCPFPIIE<float> ghbmjkkecpm = this.GHBMJKKECPM;
float num2 = ghbmjkkecpm.IAHDANBDAAM();
throw new NullReferenceException();
}
}
// Token: 0x1700342D RID: 13357
// (get) Token: 0x06012AE0 RID: 76512 RVA: 0x00448E8C File Offset: 0x0044708C
[Token(Token = "0x1700342D")]
private float BACGDPEOEMN
{
[Token(Token = "0x6012AE0")]
[Address(RVA = "0x10D0F20", Offset = "0x10CFD20", VA = "0x1810D0F20")]
get
{
float num = this.maxChargeTime;
float num2 = this.OLEOICPGCFD;
float num3 = Mathf.InverseLerp((float)0, num, num2);
AnimationCurve animationCurve = this.chargeCurve;
num = num3;
return Mathf.Clamp01(animationCurve.Evaluate(num));
}
}
// Token: 0x06012AE1 RID: 76513 RVA: 0x00448ECC File Offset: 0x004470CC
[Token(Token = "0x6012AE1")]
[Address(RVA = "0x10D12C0", Offset = "0x10D00C0", VA = "0x1810D12C0")]
private void GDPCAAHGLJN(Tool NBHJPDBHDHB)
{
if (!base.OGIBLNIIHDK)
{
return;
}
if (!base.NOOCGFJOMEM)
{
bool isCompleted = ((IAsyncResult)this).IsCompleted;
return;
}
if (!base.MJDHKAHMGMO && !base.LAJLNCJKALH)
{
this.DJNLHFNFIKA = true;
return;
}
this._weaponAudio.OnMisfire();
}
// Token: 0x06012AE2 RID: 76514 RVA: 0x00448F20 File Offset: 0x00447120
[Token(Token = "0x6012AE2")]
[Address(RVA = "0x10D13E0", Offset = "0x10D01E0", VA = "0x1810D13E0")]
private void KBPEKMLDNHC(Tool NBHJPDBHDHB)
{
if (base.OGIBLNIIHDK && this.NLBEOHMNEGO.IAHDANBDAAM() != 0)
{
int num = 0;
this.DJNLHFNFIKA = num != 0;
float num2 = this.BACGDPEOEMN;
bool isCompleted = ((IAsyncResult)this).IsCompleted;
return;
}
}
// Token: 0x06012AE3 RID: 76515 RVA: 0x00448F64 File Offset: 0x00447164
[Token(Token = "0x6012AE3")]
[Address(RVA = "0x10D1250", Offset = "0x10D0050", VA = "0x1810D1250")]
private void FIECILCCNFD(Tool NBHJPDBHDHB)
{
if (base.OGIBLNIIHDK && this.NLBEOHMNEGO.IAHDANBDAAM() != 0)
{
int num = 0;
this.DJNLHFNFIKA = num != 0;
return;
}
}
// Token: 0x06012AE4 RID: 76516 RVA: 0x00448F98 File Offset: 0x00447198
[Token(Token = "0x6012AE4")]
[Address(RVA = "0x10D16A0", Offset = "0x10D04A0", VA = "0x1810D16A0", Slot = "42")]
protected override void OICJPFPBIIK(Vector3 DDHPAFKBMON, Quaternion IGPENJBJADK, Vector3 NHAOMEMANJA, float LFDFFDCJAAD, bool FLKHKHDBIOH, byte LNPHJIHHNPN)
{
float z = NHAOMEMANJA.z;
float z2 = DDHPAFKBMON.z;
float z3 = NHAOMEMANJA.z;
float z4 = DDHPAFKBMON.z;
}
// Token: 0x06012AE5 RID: 76517 RVA: 0x00448FC4 File Offset: 0x004471C4
[Token(Token = "0x6012AE5")]
[Address(RVA = "0x10D0CE0", Offset = "0x10CFAE0", VA = "0x1810D0CE0", Slot = "13")]
protected override void Awake()
{
base.Awake();
Action action = new Action(this.LIGHPMIHPCL);
int num;
int num2;
KLLMCPFPIIE<bool> kllmcpfpiie = new KLLMCPFPIIE(this, "IS_CHARGING", num, (OHOEENCHJJE)num2, action, num2);
num2 = 0;
num = 0;
this.NLBEOHMNEGO = kllmcpfpiie;
KLLMCPFPIIE<float> kllmcpfpiie2 = new KLLMCPFPIIE(this, "CHARGE_START_TIME", num, (OHOEENCHJJE)num2, num2, num2);
this.GHBMJKKECPM = kllmcpfpiie2;
Tool tool = this._tool;
int num3 = 0;
if (tool != num3)
{
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> inputDownEvent = tool2.InputDownEvent;
Action<Tool> action2 = new Action(this.GDPCAAHGLJN);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.BPJDFPACLMK(inputDownEvent, action2);
tool2.InputDownEvent = mfbglihgcgo;
Tool tool3 = this._tool;
MFBGLIHGCGO<Tool> inputUpEvent = tool3.InputUpEvent;
Action<Tool> action3 = new Action(this.KBPEKMLDNHC);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.BPJDFPACLMK(inputUpEvent, action3);
tool3.InputUpEvent = mfbglihgcgo2;
Tool tool4 = this._tool;
MFBGLIHGCGO<Tool> inputCancelledEvent = tool4.InputCancelledEvent;
Action<Tool> action4 = new Action(this.FIECILCCNFD);
MFBGLIHGCGO<Tool> mfbglihgcgo3 = MFBGLIHGCGO.BPJDFPACLMK(inputCancelledEvent, action4);
tool4.InputCancelledEvent = mfbglihgcgo3;
}
}
// Token: 0x06012AE6 RID: 76518 RVA: 0x004490D4 File Offset: 0x004472D4
[Token(Token = "0x6012AE6")]
[Address(RVA = "0x10D17E0", Offset = "0x10D05E0", VA = "0x1810D17E0", Slot = "14")]
protected override void OnDestroy()
{
base.OnDestroy();
Tool tool = this._tool;
int num = 0;
if (tool != num)
{
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> inputDownEvent = tool2.InputDownEvent;
Action<Tool> action = new Action(this.GDPCAAHGLJN);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.GMNMHGMFGOL(inputDownEvent, action);
tool2.InputDownEvent = mfbglihgcgo;
Tool tool3 = this._tool;
MFBGLIHGCGO<Tool> inputUpEvent = tool3.InputUpEvent;
Action<Tool> action2 = new Action(this.KBPEKMLDNHC);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.GMNMHGMFGOL(inputUpEvent, action2);
tool3.InputUpEvent = mfbglihgcgo2;
Tool tool4 = this._tool;
MFBGLIHGCGO<Tool> inputCancelledEvent = tool4.InputCancelledEvent;
Action<Tool> action3 = new Action(this.FIECILCCNFD);
MFBGLIHGCGO<Tool> mfbglihgcgo3 = MFBGLIHGCGO.GMNMHGMFGOL(inputCancelledEvent, action3);
tool4.InputCancelledEvent = mfbglihgcgo3;
}
}
// Token: 0x06012AE7 RID: 76519 RVA: 0x00449198 File Offset: 0x00447398
[Token(Token = "0x6012AE7")]
[Address(RVA = "0x10D1970", Offset = "0x10D0770", VA = "0x1810D1970", Slot = "17")]
protected override void Start()
{
base.Start();
this.LIGHPMIHPCL();
}
// Token: 0x06012AE8 RID: 76520 RVA: 0x004491B4 File Offset: 0x004473B4
[Token(Token = "0x6012AE8")]
[Address(RVA = "0x10D1470", Offset = "0x10D0270", VA = "0x1810D1470")]
private void LIGHPMIHPCL()
{
if (this.NLBEOHMNEGO.IAHDANBDAAM() == 0)
{
this.IOJDCBKBPKC();
this._weaponAudio.OnStopCharge();
if (this._weaponAudio.LIBPLCAGHKI)
{
this._weaponAudio.OnFullyChargedLoopStop();
}
return;
}
this.IOJDCBKBPKC();
PooledParticle pooledParticle = this.chargeParticlePrefab;
int num = 0;
if (pooledParticle != num)
{
GlobalPool instance = GlobalPool.ONCPNMDGGKG;
PooledParticle pooledParticle2 = this.chargeParticlePrefab;
PooledParticle pooledParticle3 = instance.Acquire<PooledParticle>(pooledParticle2);
this.OIHJPCBJPMH = pooledParticle3;
int num2 = 0;
if (pooledParticle3 != num2)
{
PooledParticle oihjpcbjpmh = this.OIHJPCBJPMH;
Transform muzzleFlashOrigin = this.muzzleFlashOrigin;
oihjpcbjpmh.Play(muzzleFlashOrigin, true, -1f);
}
}
WeaponAudio weaponAudio = this._weaponAudio;
float num3 = this.OLEOICPGCFD;
weaponAudio.OnCharge(num3);
}
// Token: 0x06012AE9 RID: 76521 RVA: 0x00449284 File Offset: 0x00447484
[Token(Token = "0x6012AE9")]
[Address(RVA = "0x10D1990", Offset = "0x10D0790", VA = "0x1810D1990")]
private void Update()
{
if (this.NLBEOHMNEGO.IAHDANBDAAM() != 0)
{
float num = this.BACGDPEOEMN;
if (!this._weaponAudio.LIBPLCAGHKI)
{
this._weaponAudio.OnStopCharge();
this._weaponAudio.OnFullyChargedLoopStart();
return;
}
}
}
// Token: 0x06012AEA RID: 76522 RVA: 0x004492D4 File Offset: 0x004474D4
[Token(Token = "0x6012AEA")]
[Address(RVA = "0x10D0FD0", Offset = "0x10CFDD0", VA = "0x1810D0FD0")]
private void CHMFCMEABBC()
{
this.IOJDCBKBPKC();
PooledParticle pooledParticle = this.chargeParticlePrefab;
int num = 0;
if (pooledParticle != num)
{
GlobalPool instance = GlobalPool.ONCPNMDGGKG;
PooledParticle pooledParticle2 = this.chargeParticlePrefab;
PooledParticle pooledParticle3 = instance.Acquire<PooledParticle>(pooledParticle2);
this.OIHJPCBJPMH = pooledParticle3;
int num2 = 0;
if (pooledParticle3 != num2)
{
PooledParticle oihjpcbjpmh = this.OIHJPCBJPMH;
Transform muzzleFlashOrigin = this.muzzleFlashOrigin;
oihjpcbjpmh.Play(muzzleFlashOrigin, true, -1f);
}
}
}
// Token: 0x06012AEB RID: 76523 RVA: 0x00449350 File Offset: 0x00447550
[Token(Token = "0x6012AEB")]
[Address(RVA = "0x10D1350", Offset = "0x10D0150", VA = "0x1810D1350")]
private void IOJDCBKBPKC()
{
PooledParticle oihjpcbjpmh = this.OIHJPCBJPMH;
int num = 0;
if (oihjpcbjpmh != num)
{
this.OIHJPCBJPMH.Stop();
this.OIHJPCBJPMH = (ulong)0L;
}
}
// Token: 0x06012AEC RID: 76524 RVA: 0x0044938C File Offset: 0x0044758C
[Token(Token = "0x6012AEC")]
[Address(RVA = "0x10D1A30", Offset = "0x10D0830", VA = "0x1810D1A30")]
public ChargeGun()
{
}
// Token: 0x0400C110 RID: 49424
[FieldOffset(Offset = "0x2F0")]
[Token(Token = "0x400C110")]
[SerializeField]
[Header("Charging")]
private float maxChargeTime = 2.5f;
// Token: 0x0400C111 RID: 49425
[FieldOffset(Offset = "0x2F8")]
[Token(Token = "0x400C111")]
[SerializeField]
private AnimationCurve chargeCurve;
// Token: 0x0400C112 RID: 49426
[FieldOffset(Offset = "0x300")]
[Token(Token = "0x400C112")]
[SerializeField]
private PooledParticle chargeParticlePrefab;
// Token: 0x0400C113 RID: 49427
[FieldOffset(Offset = "0x308")]
[Token(Token = "0x400C113")]
private KLLMCPFPIIE<bool> NLBEOHMNEGO;
// Token: 0x0400C114 RID: 49428
[FieldOffset(Offset = "0x310")]
[Token(Token = "0x400C114")]
private KLLMCPFPIIE<float> GHBMJKKECPM;
// Token: 0x0400C115 RID: 49429
[FieldOffset(Offset = "0x318")]
[Token(Token = "0x400C115")]
private PooledParticle OIHJPCBJPMH;
}
}
@@ -0,0 +1,101 @@
using System;
using System.Collections.Generic;
using Cpp2IlInjected;
using RecRoom.Core.Combat;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B65 RID: 11109
[Token(Token = "0x2002B65")]
public class ChargeGunProjectile : Bullet
{
// Token: 0x06012AED RID: 76525 RVA: 0x004493AC File Offset: 0x004475AC
[Token(Token = "0x6012AED")]
[Address(RVA = "0x10D0910", Offset = "0x10CF710", VA = "0x1810D0910", Slot = "6")]
protected override void Awake()
{
base.Awake();
PersistentBulletTrail componentInChildren = base.GetComponentInChildren<PersistentBulletTrail>(true);
this.BGGOJJBBJFJ = componentInChildren;
}
// Token: 0x06012AEE RID: 76526 RVA: 0x004493D0 File Offset: 0x004475D0
[Token(Token = "0x6012AEE")]
[Address(RVA = "0x10D0960", Offset = "0x10CF760", VA = "0x1810D0960", Slot = "5")]
public override void Fire(Vector3 DDHPAFKBMON, Quaternion IGPENJBJADK, Vector3 POMGIDPAKLH, float AMDHEHCKCBD, float LFDFFDCJAAD, List<Rigidbody> FLCLMCFOIID, CBMIKIMPBKF.CBAAHCJHLFD KDLEENOBACM, float ELLJGJFPHDA, byte LNPHJIHHNPN, bool EMCBJAIFHCB = false, float PJMKGHOKNGB = 1f)
{
float z = POMGIDPAKLH.z;
float z2 = DDHPAFKBMON.z;
float num = this.maxRadius;
float num3;
float num2 = Mathf.Lerp(this.minRadius, num, num3);
PersistentBulletTrail bggojjbbjfj = this.BGGOJJBBJFJ;
this.<JLGKJJHNOBN>k__BackingField = num2;
Vector2 one = Vector2.one;
float <JLGKJJHNOBN>k__BackingField = this.<JLGKJJHNOBN>k__BackingField;
Vector2 vector = one * <JLGKJJHNOBN>k__BackingField;
Vector2 widths = bggojjbbjfj.LEHGHMKCEKD;
float num4 = this.maxTrailLifetime;
float num5 = this.minTrailLifetime;
PersistentBulletTrail bggojjbbjfj2 = this.BGGOJJBBJFJ;
float num6 = Mathf.Lerp(num5, num4, num3);
bggojjbbjfj2.<HDMJNGHBKBK>k__BackingField = num6;
float num7 = this.maxTrailWidthExpansion;
float num8 = this.minTrailWidthExpansion;
PersistentBulletTrail bggojjbbjfj3 = this.BGGOJJBBJFJ;
float num9 = Mathf.Lerp(num8, num7, num3);
bggojjbbjfj3.<PNAHCLNJDOO>k__BackingField = num9;
}
// Token: 0x06012AEF RID: 76527 RVA: 0x0044949C File Offset: 0x0044769C
[Token(Token = "0x6012AEF")]
[Address(RVA = "0x10D0BA0", Offset = "0x10CF9A0", VA = "0x1810D0BA0")]
public ChargeGunProjectile()
{
}
// Token: 0x0400C116 RID: 49430
[FieldOffset(Offset = "0x1F8")]
[Token(Token = "0x400C116")]
[SerializeField]
[Header("Radius")]
private float minRadius = 0.02f;
// Token: 0x0400C117 RID: 49431
[FieldOffset(Offset = "0x1FC")]
[Token(Token = "0x400C117")]
[SerializeField]
private float maxRadius = 0.1f;
// Token: 0x0400C118 RID: 49432
[FieldOffset(Offset = "0x200")]
[Token(Token = "0x400C118")]
[SerializeField]
[Header("Trail")]
private float minTrailLifetime = 0.5f;
// Token: 0x0400C119 RID: 49433
[FieldOffset(Offset = "0x204")]
[Token(Token = "0x400C119")]
[SerializeField]
private float maxTrailLifetime = 1.5f;
// Token: 0x0400C11A RID: 49434
[FieldOffset(Offset = "0x208")]
[Token(Token = "0x400C11A")]
[SerializeField]
private float minTrailWidthExpansion = 1.1f;
// Token: 0x0400C11B RID: 49435
[FieldOffset(Offset = "0x20C")]
[Token(Token = "0x400C11B")]
[SerializeField]
private float maxTrailWidthExpansion = 3f;
// Token: 0x0400C11C RID: 49436
[FieldOffset(Offset = "0x210")]
[Token(Token = "0x400C11C")]
private PersistentBulletTrail BGGOJJBBJFJ;
}
}
@@ -0,0 +1,438 @@
using System;
using Cpp2IlInjected;
using Photon.Pun;
using RecRoom.Core;
using RecRoom.Core.Combat;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B5C RID: 11100
[Token(Token = "0x2002B5C")]
public class Crossbow : RangedWeapon
{
// Token: 0x06012A94 RID: 76436 RVA: 0x00447494 File Offset: 0x00445694
[Token(Token = "0x6012A94")]
[Address(RVA = "0x10D3120", Offset = "0x10D1F20", VA = "0x1810D3120", Slot = "13")]
protected override void Awake()
{
base.Awake();
Transform transform = this.boltNockingTransform;
int num = 0;
if (transform != num)
{
Transform transform2 = this.maxPullTransform;
int num2 = 0;
if (transform2 != num2)
{
Transform transform3 = this.boltNockingTransform;
Transform transform4 = this.maxPullTransform;
Vector3 vector;
float z = vector.z;
this.CJKFKOBACAJ.z = z;
Transform transform5 = this.maxPullTransform;
Vector3 vector2;
float z2 = vector2.z;
this.APHDEMHLIHN.z = z2;
Transform transform6 = this.boltNockingTransform;
Vector3 vector3;
float z3 = vector3.z;
Vector3 vector4;
float z4 = vector4.z;
Vector3 vector5;
float z5 = vector5.z;
float num3;
this.NNGCCMIOPJH = num3;
}
}
Tool tool = this._tool;
int num4 = 0;
if (tool != num4)
{
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> inputDownEvent = tool2.InputDownEvent;
Action<Tool> action = new Action(this.GDPCAAHGLJN);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.BPJDFPACLMK(inputDownEvent, action);
tool2.InputDownEvent = mfbglihgcgo;
Tool tool3 = this._tool;
MFBGLIHGCGO<Tool> inputPressedEvent = tool3.InputPressedEvent;
Action<Tool> action2 = new Action(this.LKFFMLDMLAB);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.BPJDFPACLMK(inputPressedEvent, action2);
tool3.InputPressedEvent = mfbglihgcgo2;
Tool tool4 = this._tool;
MFBGLIHGCGO<Tool> inputUpEvent = tool4.InputUpEvent;
Action<Tool> action3 = new Action(this.KBPEKMLDNHC);
MFBGLIHGCGO<Tool> mfbglihgcgo3 = MFBGLIHGCGO.BPJDFPACLMK(inputUpEvent, action3);
tool4.InputUpEvent = mfbglihgcgo3;
Tool tool5 = this._tool;
MFBGLIHGCGO<Tool> prePickupEvent = tool5.PrePickupEvent;
Action<Tool> action4 = new Action(this.CBHLFMCNNGO);
MFBGLIHGCGO<Tool> mfbglihgcgo4 = MFBGLIHGCGO.BPJDFPACLMK(prePickupEvent, action4);
tool5.PrePickupEvent = mfbglihgcgo4;
}
}
// Token: 0x06012A95 RID: 76437 RVA: 0x00447630 File Offset: 0x00445830
[Token(Token = "0x6012A95")]
[Address(RVA = "0x10D3F40", Offset = "0x10D2D40", VA = "0x1810D3F40", Slot = "14")]
protected override void OnDestroy()
{
base.OnDestroy();
Tool tool = this._tool;
int num = 0;
if (tool != num)
{
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> inputDownEvent = tool2.InputDownEvent;
Action<Tool> action = new Action(this.GDPCAAHGLJN);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.GMNMHGMFGOL(inputDownEvent, action);
tool2.InputDownEvent = mfbglihgcgo;
Tool tool3 = this._tool;
MFBGLIHGCGO<Tool> inputPressedEvent = tool3.InputPressedEvent;
Action<Tool> action2 = new Action(this.LKFFMLDMLAB);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.GMNMHGMFGOL(inputPressedEvent, action2);
tool3.InputPressedEvent = mfbglihgcgo2;
Tool tool4 = this._tool;
MFBGLIHGCGO<Tool> inputUpEvent = tool4.InputUpEvent;
Action<Tool> action3 = new Action(this.KBPEKMLDNHC);
MFBGLIHGCGO<Tool> mfbglihgcgo3 = MFBGLIHGCGO.GMNMHGMFGOL(inputUpEvent, action3);
tool4.InputUpEvent = mfbglihgcgo3;
Tool tool5 = this._tool;
MFBGLIHGCGO<Tool> prePickupEvent = tool5.PrePickupEvent;
Action<Tool> action4 = new Action(this.CBHLFMCNNGO);
MFBGLIHGCGO<Tool> mfbglihgcgo4 = MFBGLIHGCGO.GMNMHGMFGOL(prePickupEvent, action4);
tool5.PrePickupEvent = mfbglihgcgo4;
}
}
// Token: 0x06012A96 RID: 76438 RVA: 0x00447728 File Offset: 0x00445928
[Token(Token = "0x6012A96")]
[Address(RVA = "0x10D42C0", Offset = "0x10D30C0", VA = "0x1810D42C0")]
private void Update()
{
if (base.OGIBLNIIHDK)
{
if (this._tool.<BIPMAHKMNKF>k__BackingField)
{
float time = Time.time;
FloatValueCurve floatValueCurve = this.speedOverDrawTime;
CrossbowBolt hcfpjdgbcdl = this.HCFPJDGBCDL;
int num = 0;
bool flag = hcfpjdgbcdl != num;
Animator animator = this._animator;
int ephfpalcmhi;
if (!flag)
{
int num2 = 0;
ephfpalcmhi = Crossbow.EPHFPALCMHI;
animator.SetFloat(ephfpalcmhi, (float)num2);
}
FloatValueCurve floatValueCurve2 = this.speedOverDrawTime;
float num3 = Mathf.Min(1f, time);
animator.SetFloat(ephfpalcmhi, num3);
PlayerHand <PBCNKLKCIHJ>k__BackingField = this._tool.<PBCNKLKCIHJ>k__BackingField;
int num4 = 0;
if (<PBCNKLKCIHJ>k__BackingField != num4)
{
PlayerHand <PBCNKLKCIHJ>k__BackingField2 = this._tool.<PBCNKLKCIHJ>k__BackingField;
float time2 = Time.time;
float jpenaiggghl = this.JPENAIGGGHL;
Tool tool = this._tool;
this.JPENAIGGGHL = 1f;
tool.<PBCNKLKCIHJ>k__BackingField.Vibrate(1, 0.1f);
}
PlayerHand <PBCNKLKCIHJ>k__BackingField3 = this._tool.<PBCNKLKCIHJ>k__BackingField;
int num5 = 0;
if (<PBCNKLKCIHJ>k__BackingField3 != num5)
{
PlayerHand <PBCNKLKCIHJ>k__BackingField4 = this._tool.<PBCNKLKCIHJ>k__BackingField;
CrossbowBolt hcfpjdgbcdl2 = this.HCFPJDGBCDL;
int num6 = 0;
if (hcfpjdgbcdl2 != num6)
{
}
}
this._tool.<PBCNKLKCIHJ>k__BackingField.Vibrate(1, 0.1f);
this.EBFNNLEKEEP = true;
throw new NullReferenceException();
}
CrossbowBolt hcfpjdgbcdl3 = this.HCFPJDGBCDL;
int num7 = 0;
if (hcfpjdgbcdl3 != num7)
{
}
}
}
// Token: 0x06012A97 RID: 76439 RVA: 0x00447894 File Offset: 0x00445A94
[Token(Token = "0x6012A97")]
[Address(RVA = "0x10D3F10", Offset = "0x10D2D10", VA = "0x1810D3F10")]
private void OLCEMKOMPPN(int AHCCAMGIOEJ = 1, float LAIPKAHGIJF = 0.1f)
{
this._tool.<PBCNKLKCIHJ>k__BackingField.Vibrate(AHCCAMGIOEJ, LAIPKAHGIJF);
}
// Token: 0x06012A98 RID: 76440 RVA: 0x004478BC File Offset: 0x00445ABC
[Token(Token = "0x6012A98")]
[Address(RVA = "0x10D3650", Offset = "0x10D2450", VA = "0x1810D3650")]
private void JBDEKDJLALE()
{
CrossbowBolt hcfpjdgbcdl = this.HCFPJDGBCDL;
int num = 0;
bool flag = hcfpjdgbcdl == num;
Transform transform = this.boltNockingTransform;
if (!flag)
{
float time = Time.time;
FloatValueCurve floatValueCurve = this.speedOverDrawTime;
float num2 = Mathf.Min(time, time);
transform.localPosition = num;
Transform transform2 = this.HCFPJDGBCDL.transform;
Transform transform3 = this.boltNockingTransform;
Transform transform4 = this.HCFPJDGBCDL.transform;
Transform transform5 = this.boltNockingTransform;
return;
}
transform.localPosition = num;
IDisposable coajdgnkahj = this.COAJDGNKAHJ;
this.GLFCOPMIKLH(coajdgnkahj);
this.COAJDGNKAHJ = (ulong)0L;
throw new NullReferenceException();
}
// Token: 0x06012A99 RID: 76441 RVA: 0x0044795C File Offset: 0x00445B5C
[Token(Token = "0x6012A99")]
[Address(RVA = "0x10D3600", Offset = "0x10D2400", VA = "0x1810D3600")]
private void GDPCAAHGLJN(Tool NBHJPDBHDHB)
{
this.KGDIPIBPPMM = true;
if (base.OGIBLNIIHDK && !this.CKGCBEODNEM())
{
this._weaponAudio.OnMisfire();
return;
}
}
// Token: 0x06012A9A RID: 76442 RVA: 0x00447994 File Offset: 0x00445B94
[Token(Token = "0x6012A9A")]
[Address(RVA = "0x10D3AF0", Offset = "0x10D28F0", VA = "0x1810D3AF0")]
private void LKFFMLDMLAB(Tool NBHJPDBHDHB)
{
if (base.OGIBLNIIHDK)
{
CrossbowBolt hcfpjdgbcdl = this.HCFPJDGBCDL;
int num = 0;
if (hcfpjdgbcdl == num && this.KGDIPIBPPMM)
{
bool flag = this.CKGCBEODNEM();
return;
}
}
}
// Token: 0x06012A9B RID: 76443 RVA: 0x004479D0 File Offset: 0x00445BD0
[Token(Token = "0x6012A9B")]
[Address(RVA = "0x10D39D0", Offset = "0x10D27D0", VA = "0x1810D39D0")]
private void KBPEKMLDNHC(Tool NBHJPDBHDHB)
{
this.KGDIPIBPPMM = false;
if (base.OGIBLNIIHDK)
{
CrossbowBolt hcfpjdgbcdl = this.HCFPJDGBCDL;
int num = 0;
if (hcfpjdgbcdl != num)
{
FloatValueCurve floatValueCurve = this.speedOverDrawTime;
float time = Time.time;
float num2 = Mathf.InverseLerp(time, (float)num, time);
}
}
}
// Token: 0x06012A9C RID: 76444 RVA: 0x00447A24 File Offset: 0x00445C24
[Token(Token = "0x6012A9C")]
[Address(RVA = "0x10D34C0", Offset = "0x10D22C0", VA = "0x1810D34C0")]
private void CBHLFMCNNGO(Tool EGFEJGHDNAI)
{
this.KGDIPIBPPMM = false;
}
// Token: 0x06012A9D RID: 76445 RVA: 0x00447A38 File Offset: 0x00445C38
[Token(Token = "0x6012A9D")]
[Address(RVA = "0x10D34D0", Offset = "0x10D22D0", VA = "0x1810D34D0")]
private bool CKGCBEODNEM()
{
if (base.OGIBLNIIHDK)
{
CrossbowBolt hcfpjdgbcdl = this.HCFPJDGBCDL;
int num = 0;
if (hcfpjdgbcdl == num)
{
if (base.NOOCGFJOMEM)
{
if (!base.MJDHKAHMGMO && !base.LAJLNCJKALH)
{
PhotonView photonView = base.JDHMIOJKLCK;
DGLOJCGDOGG.ANJGMEDDNPE anjgmeddnpe = new DGLOJCGDOGG.ANJGMEDDNPE(this.RpcStartChargingBolt);
photonView.RpcAll(anjgmeddnpe);
return true;
}
}
else
{
this.MIKJDLDPIEP();
}
}
}
throw new NullReferenceException();
}
// Token: 0x06012A9E RID: 76446 RVA: 0x00447AA8 File Offset: 0x00445CA8
[Token(Token = "0x6012A9E")]
[Address(RVA = "0x10D4120", Offset = "0x10D2F20", VA = "0x1810D4120")]
[NFOMENMAOIA]
protected void RpcStartChargingBolt()
{
float time = Time.time;
int num = 0;
this.KFANGBLMCKK = time;
this.JPENAIGGGHL = (float)num;
Bullet bullet;
if (bullet != 0)
{
}
this.HCFPJDGBCDL = num;
Transform transform = this.boltNockingTransform;
Vector3 vector;
float z = vector.z;
Transform transform2 = this.HCFPJDGBCDL.transform;
Transform transform3 = this.boltNockingTransform;
if (this.COAJDGNKAHJ == (ulong)0L)
{
Action action = new Action(this.JBDEKDJLALE);
IDisposable disposable = this.GIEOOLAGCKA(action, Scheduler.NEIJEKIKDOG.PreRender);
this.COAJDGNKAHJ = disposable;
}
}
// Token: 0x06012A9F RID: 76447 RVA: 0x00447B34 File Offset: 0x00445D34
[Token(Token = "0x6012A9F")]
[Address(RVA = "0x10D3B80", Offset = "0x10D2980", VA = "0x1810D3B80", Slot = "42")]
protected override void OICJPFPBIIK(Vector3 DDHPAFKBMON, Quaternion IGPENJBJADK, Vector3 NHAOMEMANJA, float LFDFFDCJAAD, bool FLKHKHDBIOH, byte LNPHJIHHNPN)
{
CrossbowBolt hcfpjdgbcdl = this.HCFPJDGBCDL;
int num = 0;
if (hcfpjdgbcdl != num)
{
FloatValueCurve floatValueCurve = this.speedOverDrawTime;
ParticleSystem maxChargedParticleTrail = this.HCFPJDGBCDL.maxChargedParticleTrail;
int num2 = 0;
if (maxChargedParticleTrail != num2)
{
this.HCFPJDGBCDL.maxChargedParticleTrail.Play();
}
float z = DDHPAFKBMON.z;
int num3 = 0;
PlayerHand <PBCNKLKCIHJ>k__BackingField = this._tool.<PBCNKLKCIHJ>k__BackingField;
int num4 = 0;
if (<PBCNKLKCIHJ>k__BackingField != num4)
{
PlayerHand <PBCNKLKCIHJ>k__BackingField2 = this._tool.<PBCNKLKCIHJ>k__BackingField;
float num6;
float num5 = Mathf.Lerp(0.5f, 1f, num6);
PlayerHand <PBCNKLKCIHJ>k__BackingField3 = this._tool.<PBCNKLKCIHJ>k__BackingField;
num6 = num5;
<PBCNKLKCIHJ>k__BackingField3.Vibrate(20, num6);
}
this.HCFPJDGBCDL = num3;
this.EBFNNLEKEEP = false;
}
}
// Token: 0x06012AA0 RID: 76448 RVA: 0x00447C08 File Offset: 0x00445E08
[Token(Token = "0x6012AA0")]
[Address(RVA = "0x10D4700", Offset = "0x10D3500", VA = "0x1810D4700")]
public Crossbow()
{
float z = Vector3.zero.z;
this.CJKFKOBACAJ.z = z;
float z2 = Vector3.zero.z;
this.APHDEMHLIHN.z = z2;
base..ctor();
}
// Token: 0x0400C0CF RID: 49359
[FieldOffset(Offset = "0x2F0")]
[Token(Token = "0x400C0CF")]
[SerializeField]
[Header("Crossbow")]
private FloatValueCurve speedOverDrawTime;
// Token: 0x0400C0D0 RID: 49360
[FieldOffset(Offset = "0x2F8")]
[Token(Token = "0x400C0D0")]
[SerializeField]
private Transform boltNockingTransform;
// Token: 0x0400C0D1 RID: 49361
[FieldOffset(Offset = "0x300")]
[Token(Token = "0x400C0D1")]
[SerializeField]
private Transform maxPullTransform;
// Token: 0x0400C0D2 RID: 49362
[FieldOffset(Offset = "0x308")]
[Token(Token = "0x400C0D2")]
[SerializeField]
private float pullingHapticFrequency = 5f;
// Token: 0x0400C0D3 RID: 49363
[Token(Token = "0x400C0D3")]
private static readonly int EPHFPALCMHI = Animator.StringToHash("Pull");
// Token: 0x0400C0D4 RID: 49364
[FieldOffset(Offset = "0x310")]
[Token(Token = "0x400C0D4")]
private CrossbowBolt HCFPJDGBCDL;
// Token: 0x0400C0D5 RID: 49365
[FieldOffset(Offset = "0x318")]
[Token(Token = "0x400C0D5")]
private float KFANGBLMCKK;
// Token: 0x0400C0D6 RID: 49366
[FieldOffset(Offset = "0x31C")]
[Token(Token = "0x400C0D6")]
private float JPENAIGGGHL;
// Token: 0x0400C0D7 RID: 49367
[FieldOffset(Offset = "0x320")]
[Token(Token = "0x400C0D7")]
private float NNGCCMIOPJH;
// Token: 0x0400C0D8 RID: 49368
[FieldOffset(Offset = "0x324")]
[Token(Token = "0x400C0D8")]
private bool EBFNNLEKEEP;
// Token: 0x0400C0D9 RID: 49369
[FieldOffset(Offset = "0x328")]
[Token(Token = "0x400C0D9")]
private Vector3 CJKFKOBACAJ;
// Token: 0x0400C0DA RID: 49370
[FieldOffset(Offset = "0x334")]
[Token(Token = "0x400C0DA")]
private Vector3 APHDEMHLIHN;
// Token: 0x0400C0DB RID: 49371
[FieldOffset(Offset = "0x340")]
[Token(Token = "0x400C0DB")]
private bool KGDIPIBPPMM;
// Token: 0x0400C0DC RID: 49372
[FieldOffset(Offset = "0x348")]
[Token(Token = "0x400C0DC")]
private IDisposable COAJDGNKAHJ;
}
}
@@ -0,0 +1,47 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B5D RID: 11101
[Token(Token = "0x2002B5D")]
public class CrossbowBolt : BowArrow
{
// Token: 0x06012AA2 RID: 76450 RVA: 0x00447C70 File Offset: 0x00445E70
[Token(Token = "0x6012AA2")]
[Address(RVA = "0x10D1A90", Offset = "0x10D0890", VA = "0x1810D1A90", Slot = "10")]
protected override void LFDOBCFHFNP(CBLLJNPBJOI LLJEGLKBKME)
{
Vector3 bhnkkjbcoaa = LLJEGLKBKME.BHNKKJBCOAA;
Collider fkjeihgoadp = LLJEGLKBKME.FKJEIHGOADP;
GameObject gibdaoejgha = this.GIBDAOEJGHA;
int num = 0;
if (gibdaoejgha != num)
{
ParticleSystem particleSystem = this.maxChargedParticleTrail;
int num2 = 0;
if (particleSystem != num2 && this.maxChargedParticleTrail.isPlaying)
{
this.maxChargedParticleTrail.Stop();
}
}
}
// Token: 0x06012AA3 RID: 76451 RVA: 0x00447CD4 File Offset: 0x00445ED4
[Token(Token = "0x6012AA3")]
[Address(RVA = "0x10CC990", Offset = "0x10CB790", VA = "0x1810CC990")]
public CrossbowBolt()
{
Quaternion identity = Quaternion.identity;
float z = Vector3.zero.z;
this.EIJNMCNMMOC.z = z;
base..ctor();
}
// Token: 0x0400C0DD RID: 49373
[FieldOffset(Offset = "0x238")]
[Token(Token = "0x400C0DD")]
public ParticleSystem maxChargedParticleTrail;
}
}
@@ -0,0 +1,201 @@
using System;
using Cpp2IlInjected;
using RecRoom.Core;
using RecRoom.Core.Combat;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B66 RID: 11110
[Token(Token = "0x2002B66")]
public class CrossbowSimple : RangedWeapon
{
// Token: 0x06012AF0 RID: 76528 RVA: 0x004494F4 File Offset: 0x004476F4
[Token(Token = "0x6012AF0")]
[Address(RVA = "0x10D1B90", Offset = "0x10D0990", VA = "0x1810D1B90", Slot = "13")]
protected override void Awake()
{
base.Awake();
Tool tool = this._tool;
int num = 0;
if (tool != num)
{
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> inputDownEvent = tool2.InputDownEvent;
Action<Tool> action = new Action(this.GDPCAAHGLJN);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.BPJDFPACLMK(inputDownEvent, action);
tool2.InputDownEvent = mfbglihgcgo;
}
}
// Token: 0x06012AF1 RID: 76529 RVA: 0x00449550 File Offset: 0x00447750
[Token(Token = "0x6012AF1")]
[Address(RVA = "0x10D22A0", Offset = "0x10D10A0", VA = "0x1810D22A0", Slot = "14")]
protected override void OnDestroy()
{
base.OnDestroy();
Tool tool = this._tool;
int num = 0;
if (tool != num)
{
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> inputDownEvent = tool2.InputDownEvent;
Action<Tool> action = new Action(this.GDPCAAHGLJN);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.GMNMHGMFGOL(inputDownEvent, action);
tool2.InputDownEvent = mfbglihgcgo;
}
}
// Token: 0x06012AF2 RID: 76530 RVA: 0x004495AC File Offset: 0x004477AC
[Token(Token = "0x6012AF2")]
[Address(RVA = "0x10D1C70", Offset = "0x10D0A70", VA = "0x1810D1C70")]
private void LHJEPALFGEB()
{
CrossbowBolt jnpdnhdekmo = this.JNPDNHDEKMO;
int num = 0;
if (!(jnpdnhdekmo == num))
{
float num2 = this.boltNockingAnimationLength;
float time = Time.time;
float num3 = Mathf.InverseLerp(time, num2, time);
CrossbowBolt jnpdnhdekmo2 = this.JNPDNHDEKMO;
Transform transform = jnpdnhdekmo2.transform;
Transform transform2 = this.boltInitialNockingTransform;
Transform transform3 = this.boltFinalNockingTransform;
Vector3 vector;
float z = vector.z;
Vector3 vector2;
float z2 = vector2.z;
Vector3 vector3;
float z3 = vector3.z;
Transform transform4 = this.JNPDNHDEKMO.transform;
Transform transform5 = this.boltFinalNockingTransform;
return;
}
IDisposable pmbadnggagk = this.PMBADNGGAGK;
this.GLFCOPMIKLH(pmbadnggagk);
this.PMBADNGGAGK = (ulong)0L;
}
// Token: 0x06012AF3 RID: 76531 RVA: 0x00449660 File Offset: 0x00447860
[Token(Token = "0x6012AF3")]
[Address(RVA = "0x79A460", Offset = "0x799260", VA = "0x18079A460")]
private void GDPCAAHGLJN(Tool NBHJPDBHDHB)
{
if (!base.OGIBLNIIHDK)
{
return;
}
if (!base.NOOCGFJOMEM)
{
bool isCompleted = ((IAsyncResult)this).IsCompleted;
return;
}
if (!base.MJDHKAHMGMO && !base.LAJLNCJKALH)
{
bool isCompleted2 = ((IAsyncResult)this).IsCompleted;
return;
}
this._weaponAudio.OnMisfire();
}
// Token: 0x06012AF4 RID: 76532 RVA: 0x004496B4 File Offset: 0x004478B4
[Token(Token = "0x6012AF4")]
[Address(RVA = "0x10D1EF0", Offset = "0x10D0CF0", VA = "0x1810D1EF0", Slot = "34")]
protected override void MIKJDLDPIEP()
{
base.MIKJDLDPIEP();
int magazineAmmunition = base.DFPKOJKFNIF;
Animator animator = this._animator;
if (magazineAmmunition != 0)
{
int ephfpalcmhi = CrossbowSimple.EPHFPALCMHI;
animator.SetFloat(ephfpalcmhi, 1f);
CrossbowBolt jnpdnhdekmo = this.JNPDNHDEKMO;
int num = 0;
if (jnpdnhdekmo == num)
{
Bullet bullet;
if (bullet != 0)
{
}
this.JNPDNHDEKMO = bullet;
float time = Time.time;
this.FBCLJNIEGIE = time;
if (this.PMBADNGGAGK == (ulong)0L)
{
Action action = new Action(this.LHJEPALFGEB);
IDisposable disposable = this.GIEOOLAGCKA(action, Scheduler.NEIJEKIKDOG.PreRender);
this.PMBADNGGAGK = disposable;
}
}
return;
}
int num2 = 0;
int ephfpalcmhi2 = CrossbowSimple.EPHFPALCMHI;
animator.SetFloat(ephfpalcmhi2, (float)num2);
}
// Token: 0x06012AF5 RID: 76533 RVA: 0x0044976C File Offset: 0x0044796C
[Token(Token = "0x6012AF5")]
[Address(RVA = "0x10D20D0", Offset = "0x10D0ED0", VA = "0x1810D20D0", Slot = "42")]
protected override void OICJPFPBIIK(Vector3 DDHPAFKBMON, Quaternion IGPENJBJADK, Vector3 NHAOMEMANJA, float LFDFFDCJAAD, bool FLKHKHDBIOH, byte LNPHJIHHNPN)
{
int num = 0;
float z = DDHPAFKBMON.z;
CrossbowBolt jnpdnhdekmo = this.JNPDNHDEKMO;
int num2 = 0;
bool flag = jnpdnhdekmo != num2;
float z2 = DDHPAFKBMON.z;
if (!flag)
{
}
this.JNPDNHDEKMO = num;
}
// Token: 0x06012AF6 RID: 76534 RVA: 0x004497A8 File Offset: 0x004479A8
[Token(Token = "0x6012AF6")]
[Address(RVA = "0x10D23D0", Offset = "0x10D11D0", VA = "0x1810D23D0")]
public CrossbowSimple()
{
}
// Token: 0x0400C11D RID: 49437
[FieldOffset(Offset = "0x2F0")]
[Token(Token = "0x400C11D")]
[SerializeField]
[Header("Crossbow")]
private Transform boltInitialNockingTransform;
// Token: 0x0400C11E RID: 49438
[FieldOffset(Offset = "0x2F8")]
[Token(Token = "0x400C11E")]
[SerializeField]
protected Transform boltFinalNockingTransform;
// Token: 0x0400C11F RID: 49439
[FieldOffset(Offset = "0x300")]
[Token(Token = "0x400C11F")]
[SerializeField]
private float boltNockingAnimationLength = 0.5f;
// Token: 0x0400C120 RID: 49440
[Token(Token = "0x400C120")]
private static readonly int EPHFPALCMHI = Animator.StringToHash("Pull");
// Token: 0x0400C121 RID: 49441
[FieldOffset(Offset = "0x308")]
[Token(Token = "0x400C121")]
protected CrossbowBolt JNPDNHDEKMO;
// Token: 0x0400C122 RID: 49442
[FieldOffset(Offset = "0x310")]
[Token(Token = "0x400C122")]
private float FBCLJNIEGIE;
// Token: 0x0400C123 RID: 49443
[FieldOffset(Offset = "0x318")]
[Token(Token = "0x400C123")]
private IDisposable PMBADNGGAGK;
}
}
@@ -0,0 +1,191 @@
using System;
using Cpp2IlInjected;
using RecRoom.Core.Combat;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B51 RID: 11089
[Token(Token = "0x2002B51")]
public class CrossbowTrapWeapon : RangedWeapon
{
// Token: 0x06012A16 RID: 76310 RVA: 0x004441F8 File Offset: 0x004423F8
[Token(Token = "0x6012A16")]
[Address(RVA = "0x10D2430", Offset = "0x10D1230", VA = "0x1810D2430", Slot = "13")]
protected override void Awake()
{
base.Awake();
CrossbowBolt[] array = new CrossbowBolt[this.boltFinalNockingTransform.Length];
this.EIIEEFPALJM = array;
}
// Token: 0x06012A17 RID: 76311 RVA: 0x0044422C File Offset: 0x0044242C
[Token(Token = "0x6012A17")]
[Address(RVA = "0x10D2CD0", Offset = "0x10D1AD0", VA = "0x1810D2CD0")]
private void Update()
{
CrossbowBolt[] eiieefpaljm = this.EIIEEFPALJM;
int num = 0;
if (num < eiieefpaljm.Length)
{
CrossbowBolt crossbowBolt = eiieefpaljm[num];
int num2 = 0;
if (crossbowBolt != num2)
{
float num3 = this.boltNockingAnimationLength;
float time = Time.time;
float num4 = Mathf.InverseLerp(time, num3, time);
CrossbowBolt[] eiieefpaljm2 = this.EIIEEFPALJM;
Transform transform = eiieefpaljm2[num].transform;
Transform transform2 = this.boltInitialNockingTransform[num];
Vector3 vector;
float z = vector.z;
Transform transform3 = this.boltFinalNockingTransform[num];
Vector3 vector2;
float z2 = vector2.z;
Vector3 vector3;
float z3 = vector3.z;
Transform transform4 = this.EIIEEFPALJM[num].transform;
Transform transform5 = this.boltFinalNockingTransform[num];
}
CrossbowBolt[] eiieefpaljm3 = this.EIIEEFPALJM;
num++;
}
}
// Token: 0x06012A18 RID: 76312 RVA: 0x0044430C File Offset: 0x0044250C
[Token(Token = "0x6012A18")]
[Address(RVA = "0x10D2490", Offset = "0x10D1290", VA = "0x1810D2490", Slot = "34")]
protected override void MIKJDLDPIEP()
{
base.MIKJDLDPIEP();
int magazineAmmunition = base.DFPKOJKFNIF;
Animator animator = this._animator;
if (magazineAmmunition != 0)
{
int ephfpalcmhi = CrossbowTrapWeapon.EPHFPALCMHI;
animator.SetFloat(ephfpalcmhi, 1f);
CrossbowBolt[] eiieefpaljm = this.EIIEEFPALJM;
int num = 0;
if (num >= eiieefpaljm.Length)
{
return;
}
CrossbowBolt crossbowBolt = eiieefpaljm[num];
int num2 = 0;
if (crossbowBolt == num2)
{
CrossbowBolt[] eiieefpaljm2 = this.EIIEEFPALJM;
throw new ArrayTypeMismatchException();
}
CrossbowBolt[] eiieefpaljm3 = this.EIIEEFPALJM;
num++;
}
if ("{il2cpp array field local19->}" == (ulong)2L || "{il2cpp array field local19->}" == (ulong)0L)
{
}
}
// Token: 0x06012A19 RID: 76313 RVA: 0x004443C4 File Offset: 0x004425C4
[Token(Token = "0x6012A19")]
[Address(RVA = "0x10D26B0", Offset = "0x10D14B0", VA = "0x1810D26B0", Slot = "42")]
protected override void OICJPFPBIIK(Vector3 DDHPAFKBMON, Quaternion IGPENJBJADK, Vector3 NHAOMEMANJA, float LFDFFDCJAAD, bool FLKHKHDBIOH, byte LNPHJIHHNPN)
{
CrossbowBolt[] eiieefpaljm = this.EIIEEFPALJM;
int num = 0;
if (num < eiieefpaljm.Length)
{
CrossbowBolt crossbowBolt = eiieefpaljm[num];
int num2 = 0;
if (crossbowBolt != num2)
{
Transform transform = this.EIIEEFPALJM[num].transform;
Vector3 vector;
float z = vector.z;
Transform transform2 = this.EIIEEFPALJM[num].transform;
float z2 = NHAOMEMANJA.z;
this.EIIEEFPALJM[0] = num;
}
CrossbowBolt[] eiieefpaljm2 = this.EIIEEFPALJM;
num++;
}
}
// Token: 0x06012A1A RID: 76314 RVA: 0x00444450 File Offset: 0x00442650
[Token(Token = "0x6012A1A")]
[Address(RVA = "0x10D2970", Offset = "0x10D1770", VA = "0x1810D2970")]
private void OnDrawGizmosSelected()
{
Transform[] array = this.boltFinalNockingTransform;
if (array != 0)
{
int num = 0;
if (num < array.Length)
{
Transform transform = array[num];
int num2 = 0;
if (!(transform == num2))
{
Transform transform2 = this.boltInitialNockingTransform[num];
int num3 = 0;
if (!(transform2 == num3))
{
Transform transform3 = this.boltInitialNockingTransform[num];
float z = transform2.position.z;
Transform transform4 = this.boltFinalNockingTransform[num];
float z2 = transform2.position.z;
Color yellow = Color.yellow;
Color white = Color.white;
Color green = Color.green;
Transform transform5 = this.boltInitialNockingTransform[num];
Vector3 vector;
float z3 = vector.z;
}
}
Transform[] array2 = this.boltFinalNockingTransform;
num++;
}
}
}
// Token: 0x06012A1B RID: 76315 RVA: 0x00444524 File Offset: 0x00442724
[Token(Token = "0x6012A1B")]
[Address(RVA = "0x10D30C0", Offset = "0x10D1EC0", VA = "0x1810D30C0")]
public CrossbowTrapWeapon()
{
}
// Token: 0x0400C068 RID: 49256
[FieldOffset(Offset = "0x2F0")]
[Token(Token = "0x400C068")]
[SerializeField]
[Header("Crossbow")]
private Transform[] boltInitialNockingTransform;
// Token: 0x0400C069 RID: 49257
[FieldOffset(Offset = "0x2F8")]
[Token(Token = "0x400C069")]
[SerializeField]
protected Transform[] boltFinalNockingTransform;
// Token: 0x0400C06A RID: 49258
[FieldOffset(Offset = "0x300")]
[Token(Token = "0x400C06A")]
[SerializeField]
private float boltNockingAnimationLength = 0.5f;
// Token: 0x0400C06B RID: 49259
[Token(Token = "0x400C06B")]
private static readonly int EPHFPALCMHI = Animator.StringToHash("Pull");
// Token: 0x0400C06C RID: 49260
[FieldOffset(Offset = "0x308")]
[Token(Token = "0x400C06C")]
protected CrossbowBolt[] EIIEEFPALJM;
// Token: 0x0400C06D RID: 49261
[FieldOffset(Offset = "0x310")]
[Token(Token = "0x400C06D")]
private float FBCLJNIEGIE;
}
}
@@ -0,0 +1,564 @@
using System;
using System.Collections;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
using Photon.Pun;
using RecRoom.Core.Combat;
using RecRoom.Core.Pools;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B68 RID: 11112
[Token(Token = "0x2002B68")]
public class DelayedRangedWeaponTrigger : MonoBehaviourPun
{
// Token: 0x1400019D RID: 413
// (add) Token: 0x06012AFE RID: 76542 RVA: 0x0044991C File Offset: 0x00447B1C
// (remove) Token: 0x06012AFF RID: 76543 RVA: 0x00449944 File Offset: 0x00447B44
[Token(Token = "0x1400019D")]
public event DelayedRangedWeaponTrigger.IOGLIBAPLLG ABHIBNPKAIN
{
[Token(Token = "0x6012AFE")]
[Address(RVA = "0x10D5860", Offset = "0x10D4660", VA = "0x1810D5860")]
[CompilerGenerated]
add
{
DelayedRangedWeaponTrigger.IOGLIBAPLLG abhibnpkain;
Delegate @delegate;
do
{
abhibnpkain = this.ABHIBNPKAIN;
@delegate = Delegate.Combine(abhibnpkain, value);
}
while (@delegate != 0 && @delegate == 0);
while (@delegate != abhibnpkain)
{
}
}
[Token(Token = "0x6012AFF")]
[Address(RVA = "0x10D59A0", Offset = "0x10D47A0", VA = "0x1810D59A0")]
[CompilerGenerated]
remove
{
DelayedRangedWeaponTrigger.IOGLIBAPLLG abhibnpkain;
Delegate @delegate;
do
{
abhibnpkain = this.ABHIBNPKAIN;
@delegate = Delegate.Remove(abhibnpkain, value);
}
while (@delegate != 0 && @delegate == 0);
while (@delegate != abhibnpkain)
{
}
}
}
// Token: 0x1400019E RID: 414
// (add) Token: 0x06012B00 RID: 76544 RVA: 0x0044996C File Offset: 0x00447B6C
// (remove) Token: 0x06012B01 RID: 76545 RVA: 0x00449994 File Offset: 0x00447B94
[Token(Token = "0x1400019E")]
public event DelayedRangedWeaponTrigger.IOGLIBAPLLG JFPBBAHBCPN
{
[Token(Token = "0x6012B00")]
[Address(RVA = "0x10D5900", Offset = "0x10D4700", VA = "0x1810D5900")]
[CompilerGenerated]
add
{
DelayedRangedWeaponTrigger.IOGLIBAPLLG jfpbbahbcpn;
Delegate @delegate;
do
{
jfpbbahbcpn = this.JFPBBAHBCPN;
@delegate = Delegate.Combine(jfpbbahbcpn, value);
}
while (@delegate != 0 && @delegate == 0);
while (@delegate != jfpbbahbcpn)
{
}
}
[Token(Token = "0x6012B01")]
[Address(RVA = "0x10D5A40", Offset = "0x10D4840", VA = "0x1810D5A40")]
[CompilerGenerated]
remove
{
DelayedRangedWeaponTrigger.IOGLIBAPLLG jfpbbahbcpn;
Delegate @delegate;
do
{
jfpbbahbcpn = this.JFPBBAHBCPN;
@delegate = Delegate.Remove(jfpbbahbcpn, value);
}
while (@delegate != 0 && @delegate == 0);
while (@delegate != jfpbbahbcpn)
{
}
}
}
// Token: 0x1700342F RID: 13359
// (get) Token: 0x06012B02 RID: 76546 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x1700342F")]
public bool EMCAFGBAIPM
{
[Token(Token = "0x6012B02")]
[Address(RVA = "0xB45900", Offset = "0xB44700", VA = "0x180B45900")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x06012B03 RID: 76547 RVA: 0x004499BC File Offset: 0x00447BBC
[Token(Token = "0x6012B03")]
[Address(RVA = "0x10D4EE0", Offset = "0x10D3CE0", VA = "0x1810D4EE0", Slot = "13")]
protected override void Awake()
{
base..ctor();
Transform transform = new GameObject("ParticleRoot").transform;
this.BPJHONOFGBG = transform;
Transform transform2 = this.fuseStartTransform;
int num = 0;
transform.SetParent(transform2, num != 0);
Tool tool = this.tool;
int num2 = 0;
if (tool != num2)
{
Tool tool2 = this.tool;
EAHPNACBLDD<Tool, Vector3, Quaternion, Vector3, bool> postResetEvent = tool2.PostResetEvent;
Action<Tool, Vector3, Quaternion, Vector3, bool> action = new Action(this.APBEFBBOMDJ);
EAHPNACBLDD<Tool, Vector3, Quaternion, Vector3, bool> eahpnacbldd = EAHPNACBLDD.BPJDFPACLMK(postResetEvent, action);
tool2.PostResetEvent = eahpnacbldd;
Tool tool3 = this.tool;
MFBGLIHGCGO<Tool> inputDownEvent = tool3.InputDownEvent;
Action<Tool> action2 = new Action(this.GDPCAAHGLJN);
EAHPNACBLDD eahpnacbldd2;
tool3.InputDownEvent = eahpnacbldd2;
}
}
// Token: 0x06012B04 RID: 76548 RVA: 0x00449A70 File Offset: 0x00447C70
[Token(Token = "0x6012B04")]
[Address(RVA = "0x10D5670", Offset = "0x10D4470", VA = "0x1810D5670", Slot = "14")]
protected override void OnDestroy()
{
base.OnDestroy();
Tool tool = this.tool;
int num = 0;
if (tool != num)
{
Tool tool2 = this.tool;
EAHPNACBLDD<Tool, Vector3, Quaternion, Vector3, bool> postResetEvent = tool2.PostResetEvent;
Action<Tool, Vector3, Quaternion, Vector3, bool> action = new Action(this.APBEFBBOMDJ);
EAHPNACBLDD<Tool, Vector3, Quaternion, Vector3, bool> eahpnacbldd = EAHPNACBLDD.GMNMHGMFGOL(postResetEvent, action);
tool2.PostResetEvent = eahpnacbldd;
Tool tool3 = this.tool;
MFBGLIHGCGO<Tool> inputDownEvent = tool3.InputDownEvent;
Action<Tool> action2 = new Action(this.GDPCAAHGLJN);
EAHPNACBLDD eahpnacbldd2;
tool3.InputDownEvent = eahpnacbldd2;
}
}
// Token: 0x06012B05 RID: 76549 RVA: 0x00449AF4 File Offset: 0x00447CF4
[Token(Token = "0x6012B05")]
[Address(RVA = "0x10D4DC0", Offset = "0x10D3BC0", VA = "0x1810D4DC0")]
public void AuthorityTryFire()
{
if (base.OGIBLNIIHDK && this.MCHGLDOHBIP <= (ulong)0L)
{
bool hasEnoughMagazineAmmunition = this.weapon.NOOCGFJOMEM;
RangedWeapon rangedWeapon = this.weapon;
if (!hasEnoughMagazineAmmunition)
{
bool isCompleted = ((IAsyncResult)this).IsCompleted;
return;
}
if (!rangedWeapon.MJDHKAHMGMO && !this.weapon.LAJLNCJKALH)
{
PhotonView photonView = base.JDHMIOJKLCK;
DGLOJCGDOGG.ANJGMEDDNPE anjgmeddnpe = new DGLOJCGDOGG.ANJGMEDDNPE(this.RpcPrepareDelayedFiring);
photonView.RpcAll(anjgmeddnpe);
}
}
}
// Token: 0x06012B06 RID: 76550 RVA: 0x00449B70 File Offset: 0x00447D70
[Token(Token = "0x6012B06")]
[Address(RVA = "0x10D4DB0", Offset = "0x10D3BB0", VA = "0x1810D4DB0")]
private void APBEFBBOMDJ(Tool NBHJPDBHDHB, Vector3 BNMOCBJEEPN, Quaternion LPHCCEOHNIN, Vector3 GMMJHABHDHE, bool ACPOOMGHPKJ)
{
this.BAPJIACINIA();
}
// Token: 0x06012B07 RID: 76551 RVA: 0x00449B84 File Offset: 0x00447D84
[Token(Token = "0x6012B07")]
[Address(RVA = "0x10D4DC0", Offset = "0x10D3BC0", VA = "0x1810D4DC0")]
private void GDPCAAHGLJN(Tool NBHJPDBHDHB)
{
if (base.OGIBLNIIHDK && this.MCHGLDOHBIP <= (ulong)0L)
{
bool hasEnoughMagazineAmmunition = this.weapon.NOOCGFJOMEM;
RangedWeapon rangedWeapon = this.weapon;
if (!hasEnoughMagazineAmmunition)
{
bool isCompleted = ((IAsyncResult)this).IsCompleted;
return;
}
if (!rangedWeapon.MJDHKAHMGMO && !this.weapon.LAJLNCJKALH)
{
PhotonView photonView = base.JDHMIOJKLCK;
DGLOJCGDOGG.ANJGMEDDNPE anjgmeddnpe = new DGLOJCGDOGG.ANJGMEDDNPE(this.RpcPrepareDelayedFiring);
photonView.RpcAll(anjgmeddnpe);
}
}
}
// Token: 0x06012B08 RID: 76552 RVA: 0x00449C00 File Offset: 0x00447E00
[Token(Token = "0x6012B08")]
[Address(RVA = "0x10D4D80", Offset = "0x10D3B80", VA = "0x1810D4D80")]
private void AJNIOPHLFIB()
{
this.BAPJIACINIA();
DelayedRangedWeaponTrigger.IOGLIBAPLLG jfpbbahbcpn = this.JFPBBAHBCPN;
if (jfpbbahbcpn != 0)
{
jfpbbahbcpn(this);
return;
}
}
// Token: 0x06012B09 RID: 76553 RVA: 0x00449C28 File Offset: 0x00447E28
[Token(Token = "0x6012B09")]
[Address(RVA = "0x10D54B0", Offset = "0x10D42B0", VA = "0x1810D54B0")]
private void GGFKAPKGDMH()
{
PhotonView photonView = base.JDHMIOJKLCK;
DGLOJCGDOGG.ANJGMEDDNPE anjgmeddnpe = new DGLOJCGDOGG.ANJGMEDDNPE(this.RpcPrepareDelayedFiring);
photonView.RpcAll(anjgmeddnpe);
}
// Token: 0x06012B0A RID: 76554 RVA: 0x00449C58 File Offset: 0x00447E58
[Token(Token = "0x6012B0A")]
[Address(RVA = "0x10D57B0", Offset = "0x10D45B0", VA = "0x1810D57B0")]
private void PCFBENOBOFL()
{
this.BAPJIACINIA();
DelayedRangedWeaponTrigger.ILDLNHDJAIP ildlnhdjaip;
ildlnhdjaip.System.IDisposable.Dispose();
ildlnhdjaip.<>1__state = (int)((ulong)0L);
ildlnhdjaip.<>4__this = this;
Coroutine coroutine = base.StartCoroutine(ildlnhdjaip);
DelayedRangedWeaponTrigger.IOGLIBAPLLG abhibnpkain = this.ABHIBNPKAIN;
this.MCHGLDOHBIP = coroutine;
if (abhibnpkain != 0)
{
abhibnpkain(this);
}
}
// Token: 0x06012B0B RID: 76555 RVA: 0x00449CA4 File Offset: 0x00447EA4
[Token(Token = "0x6012B0B")]
[Address(RVA = "0x10D5070", Offset = "0x10D3E70", VA = "0x1810D5070")]
private void BAPJIACINIA()
{
Coroutine mchgldohbip = this.MCHGLDOHBIP;
this.OMNDHPIFFEM(mchgldohbip);
this.CJBPLAEJBIC();
PooledParticle cdlijfcpcfg = this.CDLIJFCPCFG;
int num = 0;
if (cdlijfcpcfg != num)
{
this.CDLIJFCPCFG.Stop();
this.CDLIJFCPCFG = (ulong)0L;
}
}
// Token: 0x06012B0C RID: 76556 RVA: 0x00449CF4 File Offset: 0x00447EF4
[Token(Token = "0x6012B0C")]
[Address(RVA = "0x10D5120", Offset = "0x10D3F20", VA = "0x1810D5120")]
private IEnumerator CEPANOPPMEF()
{
/*
An exception occurred when decompiling this method (06012B0C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.IEnumerator RecRoom.Tools.Weapons.DelayedRangedWeaponTrigger::CEPANOPPMEF()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
call:void(ILDLNHDJAIP::System.IDisposable.Dispose, ldloc:ILDLNHDJAIP(var_0))
stfld:int32(ILDLNHDJAIP::<>1__state, ldloc:ILDLNHDJAIP(var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](0)))
stfld:DelayedRangedWeaponTrigger(ILDLNHDJAIP::<>4__this, ldloc:ILDLNHDJAIP(var_0), ldloc:DelayedRangedWeaponTrigger(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: 0x06012B0D RID: 76557 RVA: 0x00449D18 File Offset: 0x00447F18
[Token(Token = "0x6012B0D")]
[Address(RVA = "0x10D5230", Offset = "0x10D4030", VA = "0x1810D5230")]
private void FMMOFGMCECO()
{
PooledParticle pooledParticle = this.triggerPullParticlesPrefab;
int num = 0;
if (pooledParticle != num)
{
Transform transform = this.triggerPullParticleTransform;
int num2 = 0;
if (transform != num2)
{
GlobalPool instance = GlobalPool.ONCPNMDGGKG;
PooledParticle pooledParticle2 = this.triggerPullParticlesPrefab;
PooledParticle pooledParticle3 = instance.Acquire<PooledParticle>(pooledParticle2);
Transform transform2 = this.triggerPullParticleTransform;
Transform transform3 = this.triggerPullParticleTransform;
Vector3 vector;
float z = vector.z;
}
}
PooledParticle cdlijfcpcfg = this.CDLIJFCPCFG;
int num3 = 0;
if (cdlijfcpcfg == num3)
{
PooledParticle pooledParticle4 = this.countdownParticlesPrefab;
int num4 = 0;
if (pooledParticle4 != num4)
{
GlobalPool instance2 = GlobalPool.ONCPNMDGGKG;
PooledParticle pooledParticle5 = this.countdownParticlesPrefab;
PooledParticle pooledParticle6 = instance2.Acquire<PooledParticle>(pooledParticle5);
this.CDLIJFCPCFG = pooledParticle6;
Transform bpjhonofgbg = this.BPJHONOFGBG;
pooledParticle6.Play(bpjhonofgbg, true, -1f);
}
}
}
// Token: 0x06012B0E RID: 76558 RVA: 0x00449DF4 File Offset: 0x00447FF4
[Token(Token = "0x6012B0E")]
[Address(RVA = "0x10D5540", Offset = "0x10D4340", VA = "0x1810D5540")]
private void GJEGPJCKBLP()
{
PooledParticle cdlijfcpcfg = this.CDLIJFCPCFG;
int num = 0;
if (cdlijfcpcfg != num)
{
this.CDLIJFCPCFG.Stop();
this.CDLIJFCPCFG = (ulong)0L;
}
}
// Token: 0x06012B0F RID: 76559 RVA: 0x00449E30 File Offset: 0x00448030
[Token(Token = "0x6012B0F")]
[Address(RVA = "0x10D55D0", Offset = "0x10D43D0", VA = "0x1810D55D0")]
private void NGEKPMPPFOO()
{
this.CJBPLAEJBIC();
RecRoomAudioClip recRoomAudioClip = this.fireDelayLoopingAudio;
Transform transform = this.fuseStartTransform;
int num = 0;
int num2 = 0;
SFXAudioSource sfxaudioSource = AudioManager.StartLooping3DSFX(recRoomAudioClip, transform, num2, num);
this.GMFHAIIBGDB = sfxaudioSource;
}
// Token: 0x06012B10 RID: 76560 RVA: 0x00449E6C File Offset: 0x0044806C
[Token(Token = "0x6012B10")]
[Address(RVA = "0x10D5180", Offset = "0x10D3F80", VA = "0x1810D5180")]
private void CJBPLAEJBIC()
{
SFXAudioSource gmfhaiibgdb = this.GMFHAIIBGDB;
int num = 0;
if (gmfhaiibgdb != num)
{
AudioManager.StopLoopingSFX(this.GMFHAIIBGDB);
this.GMFHAIIBGDB = (ulong)0L;
}
}
// Token: 0x06012B11 RID: 76561 RVA: 0x00449EA0 File Offset: 0x004480A0
[Token(Token = "0x6012B11")]
[Address(RVA = "0x10D57B0", Offset = "0x10D45B0", VA = "0x1810D57B0")]
[NFOMENMAOIA]
private void RpcPrepareDelayedFiring()
{
this.BAPJIACINIA();
DelayedRangedWeaponTrigger.ILDLNHDJAIP ildlnhdjaip;
ildlnhdjaip.System.IDisposable.Dispose();
ildlnhdjaip.<>1__state = (int)((ulong)0L);
ildlnhdjaip.<>4__this = this;
Coroutine coroutine = base.StartCoroutine(ildlnhdjaip);
DelayedRangedWeaponTrigger.IOGLIBAPLLG abhibnpkain = this.ABHIBNPKAIN;
this.MCHGLDOHBIP = coroutine;
if (abhibnpkain != 0)
{
abhibnpkain(this);
}
}
// Token: 0x06012B12 RID: 76562 RVA: 0x00449EEC File Offset: 0x004480EC
[Token(Token = "0x6012B12")]
[Address(RVA = "0x10D5840", Offset = "0x10D4640", VA = "0x1810D5840")]
public DelayedRangedWeaponTrigger()
{
}
// Token: 0x0400C127 RID: 49447
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x400C127")]
[SerializeField]
[DDPIINEJFMD(JIBDPHMGEGO.Self, false, false, false)]
private Tool tool;
// Token: 0x0400C128 RID: 49448
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x400C128")]
[SerializeField]
[DDPIINEJFMD(JIBDPHMGEGO.SelfAndParent, false, false, false)]
private RangedWeapon weapon;
// Token: 0x0400C129 RID: 49449
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x400C129")]
[SerializeField]
[DDPIINEJFMD(JIBDPHMGEGO.SelfAndParent, false, false, false)]
private WeaponAudio weaponAudio;
// Token: 0x0400C12A RID: 49450
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x400C12A")]
[SerializeField]
private float delay = 1f;
// Token: 0x0400C12B RID: 49451
[FieldOffset(Offset = "0x6C")]
[Token(Token = "0x400C12B")]
[SerializeField]
private float inputResponseDelay;
// Token: 0x0400C12C RID: 49452
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x400C12C")]
[SerializeField]
private Transform fuseStartTransform;
// Token: 0x0400C12D RID: 49453
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x400C12D")]
[SerializeField]
private Transform fuseEndTransform;
// Token: 0x0400C12E RID: 49454
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x400C12E")]
[SerializeField]
[Header("Particles")]
private PooledParticle triggerPullParticlesPrefab;
// Token: 0x0400C12F RID: 49455
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x400C12F")]
[SerializeField]
private Transform triggerPullParticleTransform;
// Token: 0x0400C130 RID: 49456
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x400C130")]
[SerializeField]
private PooledParticle countdownParticlesPrefab;
// Token: 0x0400C131 RID: 49457
[FieldOffset(Offset = "0x98")]
[Token(Token = "0x400C131")]
[SerializeField]
[Header("Haptics")]
private float vibrationIntensity = 0.7f;
// Token: 0x0400C132 RID: 49458
[FieldOffset(Offset = "0xA0")]
[Token(Token = "0x400C132")]
[SerializeField]
[Header("Audio")]
private RecRoomAudioClip prepareFiringAudio;
// Token: 0x0400C133 RID: 49459
[FieldOffset(Offset = "0xA8")]
[Token(Token = "0x400C133")]
[SerializeField]
private RecRoomAudioClip fireDelayLoopingAudio;
// Token: 0x0400C134 RID: 49460
[FieldOffset(Offset = "0xB0")]
[Token(Token = "0x400C134")]
private Transform BPJHONOFGBG;
// Token: 0x0400C135 RID: 49461
[FieldOffset(Offset = "0xB8")]
[Token(Token = "0x400C135")]
private PooledParticle CDLIJFCPCFG;
// Token: 0x0400C136 RID: 49462
[FieldOffset(Offset = "0xC0")]
[Token(Token = "0x400C136")]
private Coroutine MCHGLDOHBIP;
// Token: 0x0400C137 RID: 49463
[FieldOffset(Offset = "0xC8")]
[Token(Token = "0x400C137")]
private SFXAudioSource GMFHAIIBGDB;
// Token: 0x02002B69 RID: 11113
[Token(Token = "0x2002B69")]
public sealed class IOGLIBAPLLG : MulticastDelegate
{
// Token: 0x06012B13 RID: 76563 RVA: 0x00449F18 File Offset: 0x00448118
[Token(Token = "0x6012B13")]
[Address(RVA = "0x448ED0", Offset = "0x447CD0", VA = "0x180448ED0")]
public IOGLIBAPLLG(object FEDFKKMABOG, IntPtr APAICGIHAGJ)
{
this.method = APAICGIHAGJ;
this.m_target = FEDFKKMABOG;
}
// Token: 0x06012B14 RID: 76564 RVA: 0x00449F34 File Offset: 0x00448134
[Token(Token = "0x6012B14")]
[Address(RVA = "0x4D7E10", Offset = "0x4D6C10", VA = "0x1804D7E10", Slot = "13")]
public void Invoke(DelayedRangedWeaponTrigger OOONNFPBMKC)
{
if (this.delegates != 0)
{
}
uint num;
if (num != (uint)0)
{
throw new ExecutionEngineException();
}
}
// Token: 0x06012B15 RID: 76565 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6012B15")]
[Address(RVA = "0x457150", Offset = "0x455F50", VA = "0x180457150", Slot = "14")]
public IAsyncResult BeginInvoke(DelayedRangedWeaponTrigger OOONNFPBMKC, AsyncCallback AFLPGGJMPOE, object FEDFKKMABOG)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06012B16 RID: 76566 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6012B16")]
[Address(RVA = "0x448B70", Offset = "0x447970", VA = "0x180448B70", Slot = "15")]
public void EndInvoke(IAsyncResult GIAOBLMEMMI)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
}
}
@@ -0,0 +1,429 @@
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<float, Vector3, float, float> 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 1663
*/;
}
// 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<AGAJMBPABDL> 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<AGAJMBPABDL> 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<AGAJMBPABDL> GOFBMKPDJEM;
}
}
@@ -0,0 +1,316 @@
using System;
using Cpp2IlInjected;
using Photon.Pun;
using RecRoom.Core.AI;
using RecRoom.Core.Combat;
using RecRoom.Core.Pools;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B6D RID: 11117
[Token(Token = "0x2002B6D")]
public class ExplosiveWeaponAddon : MonoBehaviourPun
{
// Token: 0x06012B38 RID: 76600 RVA: 0x0044A894 File Offset: 0x00448A94
[Token(Token = "0x6012B38")]
[Address(RVA = "0x10D7120", Offset = "0x10D5F20", VA = "0x1810D7120", Slot = "13")]
protected override void Awake()
{
base..ctor();
EMPJPPLIPMG oejmnkbjchc = this.OEJMNKBJCHC;
EMPJPPLIPMG.HCEABLFOLPA hceablfolpa = new EMPJPPLIPMG.HCEABLFOLPA(this.CDIOEBNIGJF);
oejmnkbjchc.BEKCCHHMPEH += hceablfolpa;
EMPJPPLIPMG oejmnkbjchc2 = this.OEJMNKBJCHC;
EMPJPPLIPMG.HPBJOLBAKDB hpbjolbakdb = new EMPJPPLIPMG.HPBJOLBAKDB(this.EEHAEDNIDDK);
oejmnkbjchc2.JMKEOLOEKFM += hpbjolbakdb;
EMPJPPLIPMG oejmnkbjchc3 = this.OEJMNKBJCHC;
EMPJPPLIPMG.EKKCNCNMEOB ekkcncnmeob = new EMPJPPLIPMG.EKKCNCNMEOB(this.DJIINLLBBHH);
oejmnkbjchc3.EIMFCMEGGPP += ekkcncnmeob;
EMPJPPLIPMG oejmnkbjchc4 = this.OEJMNKBJCHC;
EMPJPPLIPMG.KNGHDKHHMIK knghdkhhmik = new EMPJPPLIPMG.KNGHDKHHMIK(this.HMOBOJKIGPO);
oejmnkbjchc4.KBMHDAGMLAF += knghdkhhmik;
Weapon weapon = this.weapon;
int num = 0;
if (weapon != num)
{
Weapon weapon2 = this.weapon;
Weapon.GOJEHKCBHJO gojehkcbhjo = new Weapon.GOJEHKCBHJO(this.KMMBHPBHFMC);
weapon2.NLGDEPFDHJO += gojehkcbhjo;
}
}
// Token: 0x06012B39 RID: 76601 RVA: 0x0044A958 File Offset: 0x00448B58
[Token(Token = "0x6012B39")]
[Address(RVA = "0x10D7E70", Offset = "0x10D6C70", VA = "0x1810D7E70", Slot = "14")]
protected override void OnDestroy()
{
base.OnDestroy();
EMPJPPLIPMG oejmnkbjchc = this.OEJMNKBJCHC;
EMPJPPLIPMG.HCEABLFOLPA hceablfolpa = new EMPJPPLIPMG.HCEABLFOLPA(this.CDIOEBNIGJF);
oejmnkbjchc.BEKCCHHMPEH -= hceablfolpa;
EMPJPPLIPMG oejmnkbjchc2 = this.OEJMNKBJCHC;
EMPJPPLIPMG.HPBJOLBAKDB hpbjolbakdb = new EMPJPPLIPMG.HPBJOLBAKDB(this.EEHAEDNIDDK);
oejmnkbjchc2.JMKEOLOEKFM -= hpbjolbakdb;
EMPJPPLIPMG oejmnkbjchc3 = this.OEJMNKBJCHC;
EMPJPPLIPMG.EKKCNCNMEOB ekkcncnmeob = new EMPJPPLIPMG.EKKCNCNMEOB(this.DJIINLLBBHH);
oejmnkbjchc3.EIMFCMEGGPP -= ekkcncnmeob;
EMPJPPLIPMG oejmnkbjchc4 = this.OEJMNKBJCHC;
EMPJPPLIPMG.KNGHDKHHMIK knghdkhhmik = new EMPJPPLIPMG.KNGHDKHHMIK(this.HMOBOJKIGPO);
oejmnkbjchc4.KBMHDAGMLAF -= knghdkhhmik;
Weapon weapon = this.weapon;
int num = 0;
if (weapon != num)
{
Weapon weapon2 = this.weapon;
Weapon.GOJEHKCBHJO gojehkcbhjo = new Weapon.GOJEHKCBHJO(this.KMMBHPBHFMC);
weapon2.NLGDEPFDHJO -= gojehkcbhjo;
}
}
// Token: 0x06012B3A RID: 76602 RVA: 0x0044AA1C File Offset: 0x00448C1C
[Token(Token = "0x6012B3A")]
[Address(RVA = "0x10D7A10", Offset = "0x10D6810", VA = "0x1810D7A10")]
private void KMMBHPBHFMC(Weapon GDIGKHINJCG, GHMDIDJLFMC KNLMJBAKCGF, bool MJJOHHLGOGK)
{
if (MJJOHHLGOGK && base.OGIBLNIIHDK)
{
BreakableObject breakableObject = this.breakableObject;
int num = 0;
if ((!(breakableObject != num) || this.breakableObject.MGPIPKGDLIO) && (this.canExplodeWhenHeld || !GDIGKHINJCG._tool.FNFNLDBILFE))
{
PhotonView photonView = base.JDHMIOJKLCK;
DGLOJCGDOGG.LFLFMIMNCON<Vector3> lflfmimncon = new DGLOJCGDOGG.LFLFMIMNCON(this.RpcExplode);
float y = KNLMJBAKCGF.NKKJICPFILJ.y;
float z = KNLMJBAKCGF.FEDGOFKEGEF.z;
}
}
}
// Token: 0x06012B3B RID: 76603 RVA: 0x0044AAA4 File Offset: 0x00448CA4
[Token(Token = "0x6012B3B")]
[Address(RVA = "0x10D7B80", Offset = "0x10D6980", VA = "0x1810D7B80")]
private void NHLAPKJKCLJ(Vector3 KPLDEODOJID)
{
PooledParticle pooledParticle = this.explosionParticles;
int num = 0;
if (pooledParticle != num)
{
GlobalPool instance = GlobalPool.ONCPNMDGGKG;
PooledParticle pooledParticle2 = this.explosionParticles;
PooledParticle pooledParticle3 = instance.Acquire<PooledParticle>(pooledParticle2);
int num2 = 0;
if (pooledParticle3 != num2)
{
Quaternion identity = Quaternion.identity;
float z = KPLDEODOJID.z;
}
}
RecRoomAudioClip recRoomAudioClip = this.explosionAudio;
float z2 = KPLDEODOJID.z;
int num3 = 0;
if ((this.canDamageHolderPlayer ? 1 : 0) == num3)
{
Weapon weapon = this.weapon;
int num4 = 0;
if (weapon != num4)
{
Tool tool = this.weapon._tool;
int num5 = 0;
if (tool != num5)
{
Player <OKDFEPHLKCB>k__BackingField = this.weapon._tool.<OKDFEPHLKCB>k__BackingField;
int num6 = 0;
if (<OKDFEPHLKCB>k__BackingField != num6)
{
Player <OKDFEPHLKCB>k__BackingField2 = this.weapon._tool.<OKDFEPHLKCB>k__BackingField;
}
}
}
}
EMPJPPLIPMG oejmnkbjchc = this.OEJMNKBJCHC;
float z3 = KPLDEODOJID.z;
}
// Token: 0x06012B3C RID: 76604 RVA: 0x0044AB98 File Offset: 0x00448D98
[Token(Token = "0x6012B3C")]
[Address(RVA = "0x10D72E0", Offset = "0x10D60E0", VA = "0x1810D72E0")]
private void CDIOEBNIGJF(Player EDIBICHIJJH, Player.GAHEJKDCLLE EAMJHCGHCIE, GHMDIDJLFMC KNLMJBAKCGF)
{
Weapon weapon = this.weapon;
int num = 0;
if (weapon != num)
{
GameManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
int num2 = 0;
if (instance != num2)
{
GameCombatManager combatManager = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG.combatManager;
float y = KNLMJBAKCGF.NKKJICPFILJ.y;
float z = KNLMJBAKCGF.FEDGOFKEGEF.z;
float z2 = KNLMJBAKCGF.EGJBGIIHEEL.z;
}
}
}
// Token: 0x06012B3D RID: 76605 RVA: 0x0044AC08 File Offset: 0x00448E08
[Token(Token = "0x6012B3D")]
[Address(RVA = "0x10D7740", Offset = "0x10D6540", VA = "0x1810D7740")]
private void EEHAEDNIDDK(Tool BKKNJFFJBKN, GHMDIDJLFMC KNLMJBAKCGF)
{
Weapon weapon = this.weapon;
int num = 0;
if (weapon != num)
{
Tool tool = this.weapon._tool;
if (BKKNJFFJBKN != tool && base.OGIBLNIIHDK)
{
float y = KNLMJBAKCGF.NKKJICPFILJ.y;
float z = KNLMJBAKCGF.FEDGOFKEGEF.z;
float y2 = KNLMJBAKCGF.NKKJICPFILJ.y;
}
}
}
// Token: 0x06012B3E RID: 76606 RVA: 0x0044AC74 File Offset: 0x00448E74
[Token(Token = "0x6012B3E")]
[Address(RVA = "0x10D7480", Offset = "0x10D6280", VA = "0x1810D7480")]
private void DJIINLLBBHH(Enemy FDJDEJIKCFH, ANBBFGKPJFD PAKELHPNJDI, GHMDIDJLFMC KNLMJBAKCGF)
{
Weapon weapon = this.weapon;
int num = 0;
if (weapon != num)
{
Weapon weapon2 = this.weapon;
ENDNBHFKNFL wielder = weapon.PJGAFFNGBMO;
bool flag;
if (flag)
{
if (base.OGIBLNIIHDK)
{
if (!FDJDEJIKCFH.OGIBLNIIHDK)
{
AGAJMBPABDL agajmbpabdl = KKPBCOOONNK.MDMMDPEKICF;
bool flag2 = FDJDEJIKCFH.IOGGJAMKGNG();
}
AGAJMBPABDL authority = base.KPBFAKFKDAF;
int num2 = this.damage;
}
Weapon weapon3 = this.weapon;
}
}
}
// Token: 0x06012B3F RID: 76607 RVA: 0x0044ACF0 File Offset: 0x00448EF0
[Token(Token = "0x6012B3F")]
[Address(RVA = "0x10D78B0", Offset = "0x10D66B0", VA = "0x1810D78B0")]
private void HMOBOJKIGPO(Trap JHIDLPIGNBD, GHMDIDJLFMC KNLMJBAKCGF)
{
Weapon weapon = this.weapon;
int num = 0;
if (weapon != num && base.OGIBLNIIHDK)
{
if (!JHIDLPIGNBD.OGIBLNIIHDK)
{
PhotonView photonView = JHIDLPIGNBD.JDHMIOJKLCK;
AGAJMBPABDL agajmbpabdl = KKPBCOOONNK.MDMMDPEKICF;
photonView.TransferOwnership(agajmbpabdl);
}
JHIDLPIGNBD.MKBHMJKBMIB();
}
}
// Token: 0x06012B40 RID: 76608 RVA: 0x0044AD48 File Offset: 0x00448F48
[Token(Token = "0x6012B40")]
[Address(RVA = "0x10D8030", Offset = "0x10D6E30", VA = "0x1810D8030")]
private void OnDrawGizmosSelected()
{
Color blue = Color.blue;
Transform transform = base.transform;
Vector3 vector;
float z = vector.z;
}
// Token: 0x06012B41 RID: 76609 RVA: 0x0044AD70 File Offset: 0x00448F70
[Token(Token = "0x6012B41")]
[Address(RVA = "0x10D80B0", Offset = "0x10D6EB0", VA = "0x1810D80B0")]
[NFOMENMAOIA]
private void RpcExplode(Vector3 KPLDEODOJID)
{
float z = KPLDEODOJID.z;
}
// Token: 0x06012B42 RID: 76610 RVA: 0x0044AD84 File Offset: 0x00448F84
[Token(Token = "0x6012B42")]
[Address(RVA = "0x10D80E0", Offset = "0x10D6EE0", VA = "0x1810D80E0")]
public ExplosiveWeaponAddon()
{
EMPJPPLIPMG empjpplipmg = new EMPJPPLIPMG();
this.OEJMNKBJCHC = empjpplipmg;
base..ctor();
}
// Token: 0x0400C153 RID: 49491
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x400C153")]
[SerializeField]
[DDPIINEJFMD(JIBDPHMGEGO.Self, false, false, false)]
private Weapon weapon;
// Token: 0x0400C154 RID: 49492
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x400C154")]
[SerializeField]
[OCIDFHDICIP(JIBDPHMGEGO.Self, false, false, false)]
private BreakableObject breakableObject;
// Token: 0x0400C155 RID: 49493
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x400C155")]
[SerializeField]
[Header("Explosion")]
private float radius = 3f;
// Token: 0x0400C156 RID: 49494
[FieldOffset(Offset = "0x54")]
[Token(Token = "0x400C156")]
[SerializeField]
private float force = 30f;
// Token: 0x0400C157 RID: 49495
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x400C157")]
[SerializeField]
private int damage = (int)((ulong)100L);
// Token: 0x0400C158 RID: 49496
[FieldOffset(Offset = "0x5C")]
[Token(Token = "0x400C158")]
[SerializeField]
private bool canDamageHolderPlayer;
// Token: 0x0400C159 RID: 49497
[FieldOffset(Offset = "0x5D")]
[Token(Token = "0x400C159")]
[SerializeField]
private bool canExplodeWhenHeld;
// Token: 0x0400C15A RID: 49498
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x400C15A")]
[SerializeField]
[Header("Feedback")]
private PooledParticle explosionParticles;
// Token: 0x0400C15B RID: 49499
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x400C15B")]
[SerializeField]
private RecRoomAudioClip explosionAudio;
// Token: 0x0400C15C RID: 49500
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x400C15C")]
private EMPJPPLIPMG OEJMNKBJCHC;
}
}
@@ -0,0 +1,273 @@
using System;
using System.Collections;
using Cpp2IlInjected;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B3F RID: 11071
[Token(Token = "0x2002B3F")]
public class FlipOpenWeaponSights : MonoBehaviour
{
// Token: 0x0601295D RID: 76125 RVA: 0x00440510 File Offset: 0x0043E710
[Token(Token = "0x601295D")]
[Address(RVA = "0xBB3700", Offset = "0xBB2500", VA = "0x180BB3700")]
private void Awake()
{
Tool tool = this.tool;
int num = 0;
if (tool != num)
{
Tool tool2 = this.tool;
MFBGLIHGCGO<Tool> postPickupEvent = tool2.PostPickupEvent;
Action<Tool> action = new Action(this.MADAMADCJNN);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.BPJDFPACLMK(postPickupEvent, action);
tool2.PostPickupEvent = mfbglihgcgo;
Tool tool3 = this.tool;
MFBGLIHGCGO<Tool> postReleaseEvent = tool3.PostReleaseEvent;
Action<Tool> action2 = new Action(this.OGHNKALGNEJ);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.BPJDFPACLMK(postReleaseEvent, action2);
tool3.PostReleaseEvent = mfbglihgcgo2;
Tool tool4 = this.tool;
int num2 = 0;
this.KOEAIBNDLOP(tool4, num2 != 0);
}
}
// Token: 0x0601295E RID: 76126 RVA: 0x004405AC File Offset: 0x0043E7AC
[Token(Token = "0x601295E")]
[Address(RVA = "0xBB3CD0", Offset = "0xBB2AD0", VA = "0x180BB3CD0")]
private void OnDestroy()
{
Tool tool = this.tool;
int num = 0;
if (tool != num)
{
Tool tool2 = this.tool;
MFBGLIHGCGO<Tool> postPickupEvent = tool2.PostPickupEvent;
Action<Tool> action = new Action(this.MADAMADCJNN);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.GMNMHGMFGOL(postPickupEvent, action);
tool2.PostPickupEvent = mfbglihgcgo;
Tool tool3 = this.tool;
MFBGLIHGCGO<Tool> postReleaseEvent = tool3.PostReleaseEvent;
Action<Tool> action2 = new Action(this.OGHNKALGNEJ);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.GMNMHGMFGOL(postReleaseEvent, action2);
tool3.PostReleaseEvent = mfbglihgcgo2;
}
}
// Token: 0x0601295F RID: 76127 RVA: 0x00440634 File Offset: 0x0043E834
[Token(Token = "0x601295F")]
[Address(RVA = "0xBB3BC0", Offset = "0xBB29C0", VA = "0x180BB3BC0")]
private void MADAMADCJNN(Tool EGFEJGHDNAI)
{
int num = 0;
this.KOEAIBNDLOP(EGFEJGHDNAI, num != 0);
}
// Token: 0x06012960 RID: 76128 RVA: 0x0044064C File Offset: 0x0043E84C
[Token(Token = "0x6012960")]
[Address(RVA = "0xBB3BD0", Offset = "0xBB29D0", VA = "0x180BB3BD0")]
private void OGHNKALGNEJ(Tool EGFEJGHDNAI)
{
this.KOEAIBNDLOP(EGFEJGHDNAI, true);
}
// Token: 0x06012961 RID: 76129 RVA: 0x00440664 File Offset: 0x0043E864
[Token(Token = "0x6012961")]
[Address(RVA = "0xBB39C0", Offset = "0xBB27C0", VA = "0x180BB39C0")]
private void KOEAIBNDLOP(Tool EGFEJGHDNAI, bool KMBAACAKFGF = false)
{
PlayerHand <PBCNKLKCIHJ>k__BackingField = EGFEJGHDNAI.<PBCNKLKCIHJ>k__BackingField;
int num = 0;
bool flag = <PBCNKLKCIHJ>k__BackingField == num;
if (EGFEJGHDNAI.<PBCNKLKCIHJ>k__BackingField.type != PlayerHand.PLLIKAOIPHP.Left)
{
}
Coroutine mnpfpdfgnck = this.MNPFPDFGNCK;
int num2 = 0;
if (mnpfpdfgnck != 0)
{
base.StopCoroutine(mnpfpdfgnck);
this.MNPFPDFGNCK = num2;
}
FlipOpenWeaponSights.DGLCIHJHKEP dglcihjhkep;
dglcihjhkep.System.IDisposable.Dispose();
dglcihjhkep.<>1__state = num2;
dglcihjhkep.<>4__this = this;
Coroutine coroutine = base.StartCoroutine(dglcihjhkep);
this.MNPFPDFGNCK = coroutine;
}
// Token: 0x06012962 RID: 76130 RVA: 0x004406E0 File Offset: 0x0043E8E0
[Token(Token = "0x6012962")]
[Address(RVA = "0xBB3930", Offset = "0xBB2730", VA = "0x180BB3930")]
private IEnumerator JBDGDBCMOIG(Quaternion KFLCNOBDNKJ, Quaternion FCKJHGCPOLG)
{
/*
An exception occurred when decompiling this method (06012962)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.IEnumerator RecRoom.Tools.Weapons.FlipOpenWeaponSights::JBDGDBCMOIG(UnityEngine.Quaternion,UnityEngine.Quaternion)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
call:void(DGLCIHJHKEP::System.IDisposable.Dispose, ldloc:DGLCIHJHKEP(var_0))
stfld:FlipOpenWeaponSights(DGLCIHJHKEP::<>4__this, ldloc:DGLCIHJHKEP(var_0), ldloc:FlipOpenWeaponSights(this))
stfld:int32(DGLCIHJHKEP::<>1__state, ldloc:DGLCIHJHKEP(var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](0)))
}
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: 0x06012963 RID: 76131 RVA: 0x00440704 File Offset: 0x0043E904
[Token(Token = "0x6012963")]
[Address(RVA = "0xBB3650", Offset = "0xBB2450", VA = "0x180BB3650")]
private void AIAMBBMKPMA(Quaternion MLIMFHGLOIF, Quaternion FKFFNCPGELB)
{
Coroutine mnpfpdfgnck = this.MNPFPDFGNCK;
if (mnpfpdfgnck != 0)
{
base.StopCoroutine(mnpfpdfgnck);
this.MNPFPDFGNCK = (ulong)0L;
}
FlipOpenWeaponSights.DGLCIHJHKEP dglcihjhkep;
dglcihjhkep.System.IDisposable.Dispose();
dglcihjhkep.<>1__state = (int)((ulong)0L);
dglcihjhkep.<>4__this = this;
Coroutine coroutine = base.StartCoroutine(dglcihjhkep);
this.MNPFPDFGNCK = coroutine;
}
// Token: 0x06012964 RID: 76132 RVA: 0x00440754 File Offset: 0x0043E954
[Token(Token = "0x6012964")]
[Address(RVA = "0xB2B990", Offset = "0xB2A790", VA = "0x180B2B990")]
private void DJBIAICEOPH()
{
Coroutine mnpfpdfgnck = this.MNPFPDFGNCK;
if (mnpfpdfgnck != 0)
{
base.StopCoroutine(mnpfpdfgnck);
this.MNPFPDFGNCK = (ulong)0L;
}
}
// Token: 0x06012965 RID: 76133 RVA: 0x0044077C File Offset: 0x0043E97C
[Token(Token = "0x6012965")]
[Address(RVA = "0xBB3840", Offset = "0xBB2640", VA = "0x180BB3840")]
private void CNGAHCKDMOL(Quaternion IGPENJBJADK)
{
Transform transform = this.leftHandFrontSight;
int num = 0;
if (transform != num)
{
Transform transform2 = this.leftHandFrontSight;
}
Transform transform3 = this.leftHandBackSight;
int num2 = 0;
if (transform3 != num2)
{
Transform transform4 = this.leftHandBackSight;
}
}
// Token: 0x06012966 RID: 76134 RVA: 0x004407C8 File Offset: 0x0043E9C8
[Token(Token = "0x6012966")]
[Address(RVA = "0xBB3BE0", Offset = "0xBB29E0", VA = "0x180BB3BE0")]
private void ONGPJOALKKH(Quaternion IGPENJBJADK)
{
Transform transform = this.rightHandFrontSight;
int num = 0;
if (transform != num)
{
Transform transform2 = this.rightHandFrontSight;
}
Transform transform3 = this.rightHandBackSight;
int num2 = 0;
if (transform3 != num2)
{
Transform transform4 = this.rightHandBackSight;
}
}
// Token: 0x06012967 RID: 76135 RVA: 0x00440814 File Offset: 0x0043EA14
[Token(Token = "0x6012967")]
[Address(RVA = "0xBB3E00", Offset = "0xBB2C00", VA = "0x180BB3E00")]
public FlipOpenWeaponSights()
{
}
// Token: 0x0400BFD6 RID: 49110
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400BFD6")]
[SerializeField]
[DDPIINEJFMD(JIBDPHMGEGO.Self, false, false, false)]
private Tool tool;
// Token: 0x0400BFD7 RID: 49111
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400BFD7")]
[SerializeField]
private Transform leftHandFrontSight;
// Token: 0x0400BFD8 RID: 49112
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400BFD8")]
[SerializeField]
private Transform leftHandBackSight;
// Token: 0x0400BFD9 RID: 49113
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400BFD9")]
[SerializeField]
private Vector3 closedLeftHandRotation;
// Token: 0x0400BFDA RID: 49114
[FieldOffset(Offset = "0x3C")]
[Token(Token = "0x400BFDA")]
[SerializeField]
private Vector3 openLeftHandRotation;
// Token: 0x0400BFDB RID: 49115
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x400BFDB")]
[SerializeField]
private Transform rightHandFrontSight;
// Token: 0x0400BFDC RID: 49116
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x400BFDC")]
[SerializeField]
private Transform rightHandBackSight;
// Token: 0x0400BFDD RID: 49117
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x400BFDD")]
[SerializeField]
private Vector3 closedRightHandRotation;
// Token: 0x0400BFDE RID: 49118
[FieldOffset(Offset = "0x64")]
[Token(Token = "0x400BFDE")]
[SerializeField]
private Vector3 openRightHandRotation;
// Token: 0x0400BFDF RID: 49119
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x400BFDF")]
[SerializeField]
private float timeToUpdate = 0.5f;
// Token: 0x0400BFE0 RID: 49120
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x400BFE0")]
private Coroutine MNPFPDFGNCK;
}
}
@@ -0,0 +1,76 @@
using System;
using System.Collections.Generic;
using Cpp2IlInjected;
using RecRoom.Core.Combat;
using RecRoom.Core.Pools;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B5E RID: 11102
[Token(Token = "0x2002B5E")]
public class FollowBulletParticle : MonoBehaviour
{
// Token: 0x06012AA4 RID: 76452 RVA: 0x00447D04 File Offset: 0x00445F04
[Token(Token = "0x6012AA4")]
[Address(RVA = "0xBB3EB0", Offset = "0xBB2CB0", VA = "0x180BB3EB0")]
private void LateUpdate()
{
List<Bullet> hheelekdhep = this.HHEELEKDHEP;
this.pooledParticle.Stop();
}
// Token: 0x06012AA5 RID: 76453 RVA: 0x00447D5C File Offset: 0x00445F5C
[Token(Token = "0x6012AA5")]
[Address(RVA = "0xBB4170", Offset = "0xBB2F70", VA = "0x180BB4170")]
public void SetTargets(IEnumerable<Bullet> LOHMONHNJIA)
{
int num;
do
{
num = 0;
this.HHEELEKDHEP.Clear();
this.HHEELEKDHEP.AddRange(LOHMONHNJIA);
num += num;
num++;
Action<Bullet> action = new Action(this.LPEPECEFNCK);
action += action;
}
while (num != 0);
ulong num2;
this.pooledParticle.Play(num2 != 0UL, -1f);
}
// Token: 0x06012AA6 RID: 76454 RVA: 0x00447DC4 File Offset: 0x00445FC4
[Token(Token = "0x6012AA6")]
[Address(RVA = "0xBB3E10", Offset = "0xBB2C10", VA = "0x180BB3E10")]
private void LPEPECEFNCK(Bullet NLLMMPLAPBK)
{
bool flag = this.HHEELEKDHEP.Remove(NLLMMPLAPBK);
Action<Bullet> action = new Action(this.LPEPECEFNCK);
NLLMMPLAPBK.DestroyEvent -= action;
}
// Token: 0x06012AA7 RID: 76455 RVA: 0x00447DF8 File Offset: 0x00445FF8
[Token(Token = "0x6012AA7")]
[Address(RVA = "0xBB4390", Offset = "0xBB3190", VA = "0x180BB4390")]
public FollowBulletParticle()
{
List<Bullet> list = new List();
this.HHEELEKDHEP = list;
base..ctor();
}
// Token: 0x0400C0DE RID: 49374
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400C0DE")]
[SerializeField]
[DDPIINEJFMD(JIBDPHMGEGO.Self, false, false, false)]
private PooledParticle pooledParticle;
// Token: 0x0400C0DF RID: 49375
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400C0DF")]
private readonly List<Bullet> HHEELEKDHEP;
}
}
@@ -0,0 +1,896 @@
using System;
using System.Collections.Generic;
using Cpp2IlInjected;
using Photon.Pun;
using RecRoom.Core.AI;
using RecRoom.Core.Combat;
using RecRoom.Core.Pools;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B46 RID: 11078
[Token(Token = "0x2002B46")]
public class Grenade : Weapon
{
// Token: 0x17003404 RID: 13316
// (get) Token: 0x06012993 RID: 76179 RVA: 0x004413C0 File Offset: 0x0043F5C0
[Token(Token = "0x17003404")]
protected override Color EPDNPLLEPOH
{
[Token(Token = "0x6012993")]
[Address(RVA = "0xBB65D0", Offset = "0xBB53D0", VA = "0x180BB65D0", Slot = "15")]
get
{
bool flag;
bool flag2;
if (!flag || flag2)
{
}
throw new NullReferenceException();
}
}
// Token: 0x17003405 RID: 13317
// (get) Token: 0x06012994 RID: 76180 RVA: 0x004413DC File Offset: 0x0043F5DC
// (set) Token: 0x06012995 RID: 76181 RVA: 0x00441428 File Offset: 0x0043F628
[Token(Token = "0x17003405")]
private Player GOCOCMDFKLE
{
[Token(Token = "0x6012994")]
[Address(RVA = "0xBB4C30", Offset = "0xBB3A30", VA = "0x180BB4C30")]
get
{
int num = this.BBNFBDDLJPK.IAHDANBDAAM();
AGAJMBPABDL agajmbpabdl = KKPBCOOONNK.MDMMDPEKICF;
int num2 = this.BBNFBDDLJPK.IAHDANBDAAM();
AGAJMBPABDL agajmbpabdl2 = agajmbpabdl.IAHDANBDAAM(num2);
if (agajmbpabdl2 != 0)
{
return agajmbpabdl2.GPOMCJICJIH();
}
throw new NullReferenceException();
}
[Token(Token = "0x6012995")]
[Address(RVA = "0xBB53A0", Offset = "0xBB41A0", VA = "0x180BB53A0")]
set
{
KLLMCPFPIIE<int> bbnfbddljpk = this.BBNFBDDLJPK;
int num = 0;
if (value != num)
{
AGAJMBPABDL photonPlayer = value.DBAJDHGDPOL;
}
}
}
// Token: 0x17003406 RID: 13318
// (get) Token: 0x06012996 RID: 76182 RVA: 0x00441458 File Offset: 0x0043F658
[Token(Token = "0x17003406")]
public bool MHKGENLPNMJ
{
[Token(Token = "0x6012996")]
[Address(RVA = "0xBB7080", Offset = "0xBB5E80", VA = "0x180BB7080")]
get
{
DJHELPHHAEN mpcicebjjgc = this.MPCICEBJJGC;
bool flag;
return flag;
}
}
// Token: 0x06012997 RID: 76183 RVA: 0x00441474 File Offset: 0x0043F674
[Token(Token = "0x6012997")]
[Address(RVA = "0xBB4D10", Offset = "0xBB3B10", VA = "0x180BB4D10", Slot = "13")]
protected override void Awake()
{
base.Awake();
this.AutomaticallyArmOnNextRelease = true;
int num;
int num2;
DJHELPHHAEN djhelphhaen = new DJHELPHHAEN("LTSM", (OHOEENCHJJE)num, num2);
int num3 = 0;
num2 = 0;
num = 0;
this.MPCICEBJJGC = djhelphhaen;
int num4 = 0;
int num5 = 0;
int num6 = 0;
djhelphhaen.JEPMLPCOGNM((ushort)num4, num6, num5, num3);
DJHELPHHAEN mpcicebjjgc = this.MPCICEBJJGC;
DJHELPHHAEN mpcicebjjgc2 = this.MPCICEBJJGC;
int num7;
MJNLDDCLOGP mjnlddclogp = new MJNLDDCLOGP(this, "LTT", (OHOEENCHJJE)num7);
num7 = 0;
this.IIJGBIMFJBN = mjnlddclogp;
KLLMCPFPIIE<int> kllmcpfpiie = new KLLMCPFPIIE(this, "LAP", -1, (OHOEENCHJJE)num3, num3, num3);
this.BBNFBDDLJPK = kllmcpfpiie;
TeamColorRenderer teamColor = this._teamColor;
int num8 = 0;
if (teamColor != num8)
{
TeamColorRenderer teamColor2 = this._teamColor;
int num9 = 0;
string ncemikammfj = Grenade.NCEMIKAMMFJ;
teamColor2.AddTeamSetByCurrentOwnerOverride(num9 != 0, ncemikammfj);
}
EMPJPPLIPMG oejmnkbjchc = this.OEJMNKBJCHC;
EMPJPPLIPMG.HCEABLFOLPA hceablfolpa = new EMPJPPLIPMG.HCEABLFOLPA(this.CDIOEBNIGJF);
oejmnkbjchc.BEKCCHHMPEH += hceablfolpa;
EMPJPPLIPMG oejmnkbjchc2 = this.OEJMNKBJCHC;
EMPJPPLIPMG.EKKCNCNMEOB ekkcncnmeob = new EMPJPPLIPMG.EKKCNCNMEOB(this.DJIINLLBBHH);
oejmnkbjchc2.EIMFCMEGGPP += ekkcncnmeob;
EMPJPPLIPMG oejmnkbjchc3 = this.OEJMNKBJCHC;
EMPJPPLIPMG.KNGHDKHHMIK knghdkhhmik = new EMPJPPLIPMG.KNGHDKHHMIK(this.HMOBOJKIGPO);
oejmnkbjchc3.KBMHDAGMLAF += knghdkhhmik;
EMPJPPLIPMG oejmnkbjchc4 = this.OEJMNKBJCHC;
EMPJPPLIPMG.HPBJOLBAKDB hpbjolbakdb = new EMPJPPLIPMG.HPBJOLBAKDB(this.EEHAEDNIDDK);
oejmnkbjchc4.JMKEOLOEKFM += hpbjolbakdb;
Tool tool = this._tool;
int num10 = 0;
if (tool != num10)
{
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> preReleaseEvent = tool2.PreReleaseEvent;
Action<Tool> action = new Action(this.BGEJPLCKLPA);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.BPJDFPACLMK(preReleaseEvent, action);
tool2.PreReleaseEvent = mfbglihgcgo;
Tool tool3 = this._tool;
Action<Tool> action2;
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.BPJDFPACLMK(tool3.PreAttachEvent, action2);
tool3.PreAttachEvent = mfbglihgcgo2;
}
}
// Token: 0x06012998 RID: 76184 RVA: 0x00441624 File Offset: 0x0043F824
[Token(Token = "0x6012998")]
[Address(RVA = "0xBB6DB0", Offset = "0xBB5BB0", VA = "0x180BB6DB0", Slot = "17")]
protected override void Start()
{
base.Start();
PlayerSpawnedEquipment <FLFJCIPBAPA>k__BackingField = this._tool.<FLFJCIPBAPA>k__BackingField;
int num = 0;
if (<FLFJCIPBAPA>k__BackingField != num && <FLFJCIPBAPA>k__BackingField.<EPECNEBCMLG>k__BackingField == PlayerSpawnedEquipment.IILDIBHEIDO.Drawer)
{
this.CBBHLEBEMKM = false;
}
bool flag;
if (flag)
{
}
int num2 = 0;
this.MPCICEBJJGC.HDGEHNGPFDO(this, (ushort)num2);
}
// Token: 0x06012999 RID: 76185 RVA: 0x0044167C File Offset: 0x0043F87C
[Token(Token = "0x6012999")]
[Address(RVA = "0xBB6970", Offset = "0xBB5770", VA = "0x180BB6970", Slot = "14")]
protected override void OnDestroy()
{
base.OnDestroy();
Tool tool = this._tool;
int num = 0;
if (tool != num)
{
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> preReleaseEvent = tool2.PreReleaseEvent;
Action<Tool> action = new Action(this.BGEJPLCKLPA);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.GMNMHGMFGOL(preReleaseEvent, action);
tool2.PreReleaseEvent = mfbglihgcgo;
Tool tool3 = this._tool;
Action<Tool> action2;
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.GMNMHGMFGOL(tool3.PreAttachEvent, action2);
tool3.PreAttachEvent = mfbglihgcgo2;
}
EMPJPPLIPMG oejmnkbjchc = this.OEJMNKBJCHC;
EMPJPPLIPMG.HCEABLFOLPA hceablfolpa = new EMPJPPLIPMG.HCEABLFOLPA(this.CDIOEBNIGJF);
oejmnkbjchc.BEKCCHHMPEH -= hceablfolpa;
EMPJPPLIPMG oejmnkbjchc2 = this.OEJMNKBJCHC;
EMPJPPLIPMG.EKKCNCNMEOB ekkcncnmeob = new EMPJPPLIPMG.EKKCNCNMEOB(this.DJIINLLBBHH);
oejmnkbjchc2.EIMFCMEGGPP -= ekkcncnmeob;
EMPJPPLIPMG oejmnkbjchc3 = this.OEJMNKBJCHC;
EMPJPPLIPMG.KNGHDKHHMIK knghdkhhmik = new EMPJPPLIPMG.KNGHDKHHMIK(this.HMOBOJKIGPO);
oejmnkbjchc3.KBMHDAGMLAF -= knghdkhhmik;
EMPJPPLIPMG oejmnkbjchc4 = this.OEJMNKBJCHC;
EMPJPPLIPMG.HPBJOLBAKDB hpbjolbakdb = new EMPJPPLIPMG.HPBJOLBAKDB(this.EEHAEDNIDDK);
oejmnkbjchc4.JMKEOLOEKFM -= hpbjolbakdb;
this.AKNADEMJCKG();
this.HKNOFMKMCJP();
}
// Token: 0x0601299A RID: 76186 RVA: 0x00441780 File Offset: 0x0043F980
[Token(Token = "0x601299A")]
[Address(RVA = "0xBB6ED0", Offset = "0xBB5CD0", VA = "0x180BB6ED0", Slot = "40")]
protected virtual void Update()
{
this.MPCICEBJJGC.OPEMIFENIJM();
this.IIJGBIMFJBN.OCGHOBMJNMA();
}
// Token: 0x0601299B RID: 76187 RVA: 0x004417AC File Offset: 0x0043F9AC
[Token(Token = "0x601299B")]
[Address(RVA = "0xBB6680", Offset = "0xBB5480", VA = "0x180BB6680", Slot = "41")]
protected virtual void OLNBPNEEDGM(ushort CPMPEJFMDED, ushort OEAPMLMHLLF)
{
Tool tool = this._tool;
int num = 0;
if (tool != num)
{
ToolCleanup <JGABDFBGDEB>k__BackingField = this._tool.<JGABDFBGDEB>k__BackingField;
int num2 = 0;
if (<JGABDFBGDEB>k__BackingField != num2)
{
this._tool.<JGABDFBGDEB>k__BackingField.PauseAutomaticCleanup(this);
}
}
this.AKNADEMJCKG();
PooledParticle pooledParticle = this.armedParticlesPrefab;
int num3 = 0;
if (pooledParticle != num3)
{
Transform transform = this.armedParticlesTransform;
int num4 = 0;
if (transform != num4)
{
GlobalPool instance = GlobalPool.ONCPNMDGGKG;
PooledParticle pooledParticle2 = this.armedParticlesPrefab;
PooledParticle pooledParticle3 = instance.Acquire<PooledParticle>(pooledParticle2);
this.KIEBMAAIJKJ = pooledParticle3;
PooledParticle kiebmaaijkj = this.KIEBMAAIJKJ;
Transform transform2 = this.armedParticlesTransform;
kiebmaaijkj.Play(transform2, true, -1f);
}
}
this.HKNOFMKMCJP();
RecRoomAudioClip recRoomAudioClip = this.activeAudio;
Transform transform3 = base.transform;
int num5 = 0;
int num6 = 0;
SFXAudioSource sfxaudioSource = AudioManager.StartLooping3DSFX(recRoomAudioClip, transform3, num6, num5);
this.LGMFJBIPJIJ = sfxaudioSource;
float num7 = this.explosionTimeout;
this.NHBAIFNLACD = num7;
float time = Time.time;
this.AOOEGDKIPKO = time;
if (base.OGIBLNIIHDK)
{
MJNLDDCLOGP iijgbimfjbn = this.IIJGBIMFJBN;
float num8 = this.explosionTimeout;
iijgbimfjbn.KGFFMEICLNN(num8);
}
}
// Token: 0x0601299C RID: 76188 RVA: 0x004418EC File Offset: 0x0043FAEC
[Token(Token = "0x601299C")]
[Address(RVA = "0xBB4AD0", Offset = "0xBB38D0", VA = "0x180BB4AD0", Slot = "42")]
protected virtual void ALMOAPCHJDK()
{
float num = this.IIJGBIMFJBN.HPDDAIKGLBM;
float num2 = this.explosionTimeLeftToCountdownAudioCurve.Evaluate(num);
if (this.NHBAIFNLACD > num2)
{
RecRoomAudioClip recRoomAudioClip = this.countdownAudio;
this.NHBAIFNLACD = num;
Transform transform = base.transform;
Vector3 vector;
float z = vector.z;
}
if (base.OGIBLNIIHDK && this.IIJGBIMFJBN.OLGMEEIPCAL)
{
DJHELPHHAEN mpcicebjjgc = this.MPCICEBJJGC;
}
}
// Token: 0x0601299D RID: 76189 RVA: 0x00441960 File Offset: 0x0043FB60
[Token(Token = "0x601299D")]
[Address(RVA = "0xBB6270", Offset = "0xBB5070", VA = "0x180BB6270", Slot = "43")]
protected virtual void KCFOPHJOLAK(ushort HKDPLMDENDA, ushort CKCOCKOPHAM)
{
Tool tool = this._tool;
int num = 0;
if (tool != num)
{
ToolCleanup <JGABDFBGDEB>k__BackingField = this._tool.<JGABDFBGDEB>k__BackingField;
int num2 = 0;
if (<JGABDFBGDEB>k__BackingField != num2)
{
this._tool.<JGABDFBGDEB>k__BackingField.ResumeAutomaticCleanup(this);
}
}
this.AKNADEMJCKG();
this.HKNOFMKMCJP();
}
// Token: 0x0601299E RID: 76190 RVA: 0x004419BC File Offset: 0x0043FBBC
[Token(Token = "0x601299E")]
[Address(RVA = "0xBB6C40", Offset = "0xBB5A40", VA = "0x180BB6C40", Slot = "44")]
protected virtual void PLCGKJBANOM(ushort CPMPEJFMDED, ushort OEAPMLMHLLF)
{
int num = 0;
this.NIHDENHJNJE(num != 0);
this.AuthorityArmGrenade();
EMPJPPLIPMG oejmnkbjchc = this.OEJMNKBJCHC;
Transform transform = base.transform;
Vector3 vector;
float z = vector.z;
AnimationCurve animationCurve = this.forceFalloff;
AnimationCurve animationCurve2 = this.damageFalloff;
Tool tool = this._tool;
int num2 = 0;
if (tool != num2)
{
this._tool.toolEntity.MarkBroken();
}
}
// Token: 0x0601299F RID: 76191 RVA: 0x00441A30 File Offset: 0x0043FC30
[Token(Token = "0x601299F")]
[Address(RVA = "0xBB65C0", Offset = "0xBB53C0", VA = "0x180BB65C0", Slot = "45")]
protected virtual void OELJFGNFGPD(ushort HKDPLMDENDA, ushort CKCOCKOPHAM)
{
this.NIHDENHJNJE(true);
}
// Token: 0x060129A0 RID: 76192 RVA: 0x00441A44 File Offset: 0x0043FC44
[Token(Token = "0x60129A0")]
[Address(RVA = "0xBB51D0", Offset = "0xBB3FD0", VA = "0x180BB51D0")]
private void BGEJPLCKLPA(Tool EGFEJGHDNAI)
{
bool flag;
bool flag2;
if (base.OGIBLNIIHDK && this.AutomaticallyArmOnNextRelease && flag && flag2)
{
AGAJMBPABDL authority = base.KPBFAKFKDAF;
bool flag3;
if (flag3)
{
}
}
this.AutomaticallyArmOnNextRelease = true;
}
// Token: 0x060129A1 RID: 76193 RVA: 0x00441A84 File Offset: 0x0043FC84
[Token(Token = "0x60129A1")]
[Address(RVA = "0xBB5900", Offset = "0xBB4700", VA = "0x180BB5900", Slot = "46")]
protected virtual void EMJFKOHFJGL(Tool EGFEJGHDNAI)
{
if (base.OGIBLNIIHDK)
{
DJHELPHHAEN mpcicebjjgc = this.MPCICEBJJGC;
int num = this.BBNFBDDLJPK.IAHDANBDAAM();
AGAJMBPABDL agajmbpabdl = KKPBCOOONNK.MDMMDPEKICF;
int num2 = this.BBNFBDDLJPK.IAHDANBDAAM();
AGAJMBPABDL agajmbpabdl2 = agajmbpabdl.IAHDANBDAAM(num2);
if (agajmbpabdl2 != 0)
{
Player player = agajmbpabdl2.GPOMCJICJIH();
}
int num3 = 0;
Player <PDAFAAHKEPA>k__BackingField = EGFEJGHDNAI.<PDAFAAHKEPA>k__BackingField;
if (num3 == <PDAFAAHKEPA>k__BackingField)
{
float time = Time.time;
DJHELPHHAEN mpcicebjjgc2 = this.MPCICEBJJGC;
int num4 = 0;
mpcicebjjgc2.PIEOGAPMGIH((ushort)num4);
}
}
}
// Token: 0x060129A2 RID: 76194 RVA: 0x00441B18 File Offset: 0x0043FD18
[Token(Token = "0x60129A2")]
[Address(RVA = "0xBB6350", Offset = "0xBB5150", VA = "0x180BB6350", Slot = "33")]
protected override void LBODGLNOABB(Tool NBHJPDBHDHB, Vector3 DDHPAFKBMON, Quaternion IGPENJBJADK, Vector3 GMMJHABHDHE, bool CDKDOENOHIL)
{
float z = DDHPAFKBMON.z;
if (base.OGIBLNIIHDK)
{
DJHELPHHAEN mpcicebjjgc = this.MPCICEBJJGC;
int num = 0;
mpcicebjjgc.PIEOGAPMGIH((ushort)num);
}
}
// Token: 0x060129A3 RID: 76195 RVA: 0x00441B4C File Offset: 0x0043FD4C
[Token(Token = "0x60129A3")]
[Address(RVA = "0xBB4830", Offset = "0xBB3630", VA = "0x180BB4830", Slot = "32")]
protected override void AAFKIKKFDIJ()
{
base.AAFKIKKFDIJ();
TeamColorRenderer teamColor = this._teamColor;
int num = 0;
if (teamColor != num)
{
TeamColorRenderer teamColor2 = this._teamColor;
bool flag;
if (flag)
{
ENDNBHFKNFL wielder = base.PJGAFFNGBMO;
bool flag2;
if (flag2)
{
}
int num2 = 0;
teamColor.RefreshOwnerTeam(num2);
throw new NullReferenceException();
}
teamColor2.ClearOwnerTeam();
}
bool flag3;
if (!flag3 || base.OGIBLNIIHDK)
{
}
}
// Token: 0x060129A4 RID: 76196 RVA: 0x00441BB4 File Offset: 0x0043FDB4
[Token(Token = "0x60129A4")]
[Address(RVA = "0xBB6110", Offset = "0xBB4F10", VA = "0x180BB6110", Slot = "30")]
protected override void JJNNAGMBLLH(Player FHDOIBDKGIA, Weapon HCCOBFEJBKC)
{
base.JJNNAGMBLLH(FHDOIBDKGIA, HCCOBFEJBKC);
PhotonView photonView = base.JDHMIOJKLCK;
DGLOJCGDOGG.OLBPPAPNBFI<AGAJMBPABDL, Weapon, bool, bool, bool> olbppapnbfi = new DGLOJCGDOGG.OLBPPAPNBFI(this.RpcAuthorityHitExplosiveWithWeapon);
AGAJMBPABDL photonPlayer = FHDOIBDKGIA.DBAJDHGDPOL;
Tool tool = this._tool;
bool <BIPMAHKMNKF>k__BackingField = tool.<BIPMAHKMNKF>k__BackingField;
bool <CMPLOJHCLMG>k__BackingField = tool.<CMPLOJHCLMG>k__BackingField;
DJHELPHHAEN mpcicebjjgc = this.MPCICEBJJGC;
bool flag;
photonView.RpcAll<AGAJMBPABDL, Weapon, bool, bool, bool>(olbppapnbfi, photonPlayer, HCCOBFEJBKC, <BIPMAHKMNKF>k__BackingField, <CMPLOJHCLMG>k__BackingField, flag);
}
// Token: 0x060129A5 RID: 76197 RVA: 0x00441C18 File Offset: 0x0043FE18
[Token(Token = "0x60129A5")]
[Address(RVA = "0xBB6D80", Offset = "0xBB5B80", VA = "0x180BB6D80")]
[NFOMENMAOIA]
protected void RpcAuthorityHitExplosiveWithWeapon(AGAJMBPABDL FHDOIBDKGIA, Weapon HCCOBFEJBKC, bool OMLAMJNPAOJ, bool FKJEIKCIOKC, bool OPLGHPIGKGD)
{
bool isCompleted = ((IAsyncResult)this).IsCompleted;
}
// Token: 0x060129A6 RID: 76198 RVA: 0x00441C2C File Offset: 0x0043FE2C
[Token(Token = "0x60129A6")]
[Address(RVA = "0xBB5450", Offset = "0xBB4250", VA = "0x180BB5450", Slot = "47")]
protected virtual void DADICKKNCPD(AGAJMBPABDL FHDOIBDKGIA, Weapon HCCOBFEJBKC, bool OMLAMJNPAOJ, bool FKJEIKCIOKC, bool OPLGHPIGKGD)
{
if (base.OGIBLNIIHDK && !OMLAMJNPAOJ)
{
int num = 0;
base.PJGAFFNGBMO = num;
bool flag;
this.GPELCMGHIEA(flag);
}
}
// Token: 0x060129A7 RID: 76199 RVA: 0x00441C5C File Offset: 0x0043FE5C
[Token(Token = "0x60129A7")]
[Address(RVA = "0xBB4D00", Offset = "0xBB3B00", VA = "0x180BB4D00", Slot = "48")]
public virtual void AuthorityArmGrenade()
{
int num = 0;
this.GPELCMGHIEA(num != 0);
}
// Token: 0x060129A8 RID: 76200 RVA: 0x00441C74 File Offset: 0x0043FE74
[Token(Token = "0x60129A8")]
[Address(RVA = "0xBB5AB0", Offset = "0xBB48B0", VA = "0x180BB5AB0")]
private void GPELCMGHIEA(bool HFLDACGPBPK = false)
{
bool hasAuthority = base.OGIBLNIIHDK;
if (hasAuthority && this.CBBHLEBEMKM)
{
DJHELPHHAEN mpcicebjjgc = this.MPCICEBJJGC;
if (!HFLDACGPBPK)
{
while (hasAuthority)
{
}
AGAJMBPABDL agajmbpabdl;
Player player = agajmbpabdl.GPOMCJICJIH();
int num = 0;
if (player != num)
{
AGAJMBPABDL photonPlayer = player.DBAJDHGDPOL;
}
throw new NullReferenceException();
}
if (!hasAuthority)
{
}
}
}
// Token: 0x060129A9 RID: 76201 RVA: 0x00441CCC File Offset: 0x0043FECC
[Token(Token = "0x60129A9")]
[Address(RVA = "0xBB6440", Offset = "0xBB5240", VA = "0x180BB6440")]
protected void NIHDENHJNJE(bool CBHMNNAINHM)
{
Transform transform = this.visualRoot;
int num = 0;
if (transform != num)
{
this.visualRoot.gameObject.SetActive(CBHMNNAINHM);
}
Tool tool = this._tool;
int num2 = 0;
if (tool != num2)
{
RigidbodyEx rigidbodyEx = this._tool.rigidbodyEx;
int num3 = 0;
if (rigidbodyEx != num3)
{
Tool tool2 = this._tool;
if (CBHMNNAINHM)
{
tool2.rigidbodyEx.RemoveKinematic(this);
}
tool2.rigidbodyEx.AddKinematic(this);
}
this._tool.NFNOHGFMPEA = CBHMNNAINHM;
}
}
// Token: 0x060129AA RID: 76202 RVA: 0x00441D64 File Offset: 0x0043FF64
[Token(Token = "0x60129AA")]
[Address(RVA = "0xBB5DA0", Offset = "0xBB4BA0", VA = "0x180BB5DA0", Slot = "49")]
protected virtual PooledParticle IIOKHIGFFLE()
{
GlobalPool instance = GlobalPool.ONCPNMDGGKG;
PooledParticle pooledParticle = this.explosionParticlesPrefab;
PooledParticle pooledParticle2 = instance.Acquire<PooledParticle>(pooledParticle);
int num = 0;
if (pooledParticle2 != num)
{
Transform transform = base.transform;
Vector3 vector;
float z = vector.z;
Transform transform2 = base.transform;
}
RecRoomAudioClip recRoomAudioClip = this.explodeAudio;
Transform transform3 = base.transform;
Vector3 vector2;
float z2 = vector2.z;
return pooledParticle2;
}
// Token: 0x060129AB RID: 76203 RVA: 0x00441DD0 File Offset: 0x0043FFD0
[Token(Token = "0x60129AB")]
[Address(RVA = "0xBB5730", Offset = "0xBB4530", VA = "0x180BB5730")]
private void EDHILOECONM()
{
this.AKNADEMJCKG();
PooledParticle pooledParticle = this.armedParticlesPrefab;
int num = 0;
if (pooledParticle != num)
{
Transform transform = this.armedParticlesTransform;
int num2 = 0;
if (transform != num2)
{
GlobalPool instance = GlobalPool.ONCPNMDGGKG;
PooledParticle pooledParticle2 = this.armedParticlesPrefab;
PooledParticle pooledParticle3 = instance.Acquire<PooledParticle>(pooledParticle2);
this.KIEBMAAIJKJ = pooledParticle3;
PooledParticle kiebmaaijkj = this.KIEBMAAIJKJ;
Transform transform2 = this.armedParticlesTransform;
kiebmaaijkj.Play(transform2, true, -1f);
}
}
}
// Token: 0x060129AC RID: 76204 RVA: 0x00441E54 File Offset: 0x00440054
[Token(Token = "0x60129AC")]
[Address(RVA = "0xBB4A40", Offset = "0xBB3840", VA = "0x180BB4A40")]
private void AKNADEMJCKG()
{
PooledParticle kiebmaaijkj = this.KIEBMAAIJKJ;
int num = 0;
if (kiebmaaijkj != num)
{
this.KIEBMAAIJKJ.Stop();
this.KIEBMAAIJKJ = (ulong)0L;
}
}
// Token: 0x060129AD RID: 76205 RVA: 0x00441E90 File Offset: 0x00440090
[Token(Token = "0x60129AD")]
[Address(RVA = "0xBB5FA0", Offset = "0xBB4DA0", VA = "0x180BB5FA0")]
private void IPCFDDJIHGB()
{
this.HKNOFMKMCJP();
RecRoomAudioClip recRoomAudioClip = this.activeAudio;
Transform transform = base.transform;
int num = 0;
int num2 = 0;
SFXAudioSource sfxaudioSource = AudioManager.StartLooping3DSFX(recRoomAudioClip, transform, num2, num);
this.LGMFJBIPJIJ = sfxaudioSource;
}
// Token: 0x060129AE RID: 76206 RVA: 0x00441ECC File Offset: 0x004400CC
[Token(Token = "0x60129AE")]
[Address(RVA = "0xBB5CB0", Offset = "0xBB4AB0", VA = "0x180BB5CB0")]
private void HKNOFMKMCJP()
{
SFXAudioSource lgmfjbipjij = this.LGMFJBIPJIJ;
int num = 0;
if (lgmfjbipjij != num)
{
this.LGMFJBIPJIJ.Stop();
this.LGMFJBIPJIJ = (ulong)0L;
}
}
// Token: 0x060129AF RID: 76207 RVA: 0x00441F08 File Offset: 0x00440108
[Token(Token = "0x60129AF")]
[Address(RVA = "0xBB6040", Offset = "0xBB4E40", VA = "0x180BB6040", Slot = "39")]
public override bool ImpactAlreadyRegistered(byte JKPAIMCLIBI, AGAJMBPABDL HMEIODIHDCL)
{
float realtimeSinceStartup = Time.realtimeSinceStartup;
List<AGAJMBPABDL> gofbmkpdjem = this.GOFBMKPDJEM;
if (realtimeSinceStartup >= 1f || gofbmkpdjem.Contains(HMEIODIHDCL))
{
gofbmkpdjem.Clear();
}
this.GOFBMKPDJEM.Add(HMEIODIHDCL);
float realtimeSinceStartup2 = Time.realtimeSinceStartup;
this.IBMAAKOCNJC = realtimeSinceStartup2;
throw new NullReferenceException();
}
// Token: 0x060129B0 RID: 76208 RVA: 0x00441F64 File Offset: 0x00440164
[Token(Token = "0x60129B0")]
[Address(RVA = "0xBB5340", Offset = "0xBB4140", VA = "0x180BB5340")]
private 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: 0x060129B1 RID: 76209 RVA: 0x00441F98 File Offset: 0x00440198
[Token(Token = "0x60129B1")]
[Address(RVA = "0xBB5590", Offset = "0xBB4390", VA = "0x180BB5590")]
private void DJIINLLBBHH(Enemy FDJDEJIKCFH, ANBBFGKPJFD PAKELHPNJDI, GHMDIDJLFMC KNLMJBAKCGF)
{
bool flag;
if (!flag)
{
float z = KNLMJBAKCGF.EGJBGIIHEEL.z;
int enemyDamage = this.GetEnemyDamage(z);
if (FDJDEJIKCFH.OGIBLNIIHDK)
{
}
}
}
// Token: 0x060129B2 RID: 76210 RVA: 0x00441FCC File Offset: 0x004401CC
[Token(Token = "0x60129B2")]
[Address(RVA = "0xBB58A0", Offset = "0xBB46A0", VA = "0x180BB58A0")]
private void EEHAEDNIDDK(Tool BKKNJFFJBKN, GHMDIDJLFMC KNLMJBAKCGF)
{
float y = KNLMJBAKCGF.NKKJICPFILJ.y;
float z = KNLMJBAKCGF.FEDGOFKEGEF.z;
float z2 = KNLMJBAKCGF.EGJBGIIHEEL.z;
}
// Token: 0x060129B3 RID: 76211 RVA: 0x00442000 File Offset: 0x00440200
[Token(Token = "0x60129B3")]
[Address(RVA = "0xBB5D40", Offset = "0xBB4B40", VA = "0x180BB5D40")]
private void HMOBOJKIGPO(Trap AMPLOOJODLP, GHMDIDJLFMC KNLMJBAKCGF)
{
float y = KNLMJBAKCGF.NKKJICPFILJ.y;
float z = KNLMJBAKCGF.FEDGOFKEGEF.z;
float z2 = KNLMJBAKCGF.EGJBGIIHEEL.z;
}
// Token: 0x060129B4 RID: 76212 RVA: 0x00442034 File Offset: 0x00440234
[Token(Token = "0x60129B4")]
[Address(RVA = "0xBB5C00", Offset = "0xBB4A00", VA = "0x180BB5C00", Slot = "21")]
public override int GetPlayerImpactDamage(Player.GAHEJKDCLLE EAMJHCGHCIE, float DBINDJBHOKM, bool COEKCNDDMKK)
{
return Mathf.RoundToInt(Mathf.Clamp01(DBINDJBHOKM));
}
// Token: 0x060129B5 RID: 76213 RVA: 0x0044204C File Offset: 0x0044024C
[Token(Token = "0x60129B5")]
[Address(RVA = "0xBB6BC0", Offset = "0xBB59C0", VA = "0x180BB6BC0", Slot = "50")]
protected virtual void OnDrawGizmosSelected()
{
Color red = Color.red;
Transform transform = base.transform;
Vector3 vector;
float z = vector.z;
}
// Token: 0x060129B6 RID: 76214 RVA: 0x00442074 File Offset: 0x00440274
[Token(Token = "0x60129B6")]
[Address(RVA = "0xBB6F50", Offset = "0xBB5D50", VA = "0x180BB6F50")]
public Grenade()
{
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.explosionTimeout = 5f;
Color green = Color.green;
EMPJPPLIPMG empjpplipmg = new EMPJPPLIPMG();
this.OEJMNKBJCHC = empjpplipmg;
this.CBBHLEBEMKM = true;
List<AGAJMBPABDL> list = new List();
this.GOFBMKPDJEM = list;
this.AutomaticallyArmOnNextRelease = true;
base..ctor();
}
// Token: 0x0400C00D RID: 49165
[Token(Token = "0x400C00D")]
private const float PCIAGKPOGDO = 0.1f;
// Token: 0x0400C00E RID: 49166
[Token(Token = "0x400C00E")]
private static readonly string NCEMIKAMMFJ = "GrenadeArmed";
// Token: 0x0400C00F RID: 49167
[FieldOffset(Offset = "0x210")]
[Token(Token = "0x400C00F")]
[SerializeField]
[Header("Explosion")]
protected float explosionRadius = 5f;
// Token: 0x0400C010 RID: 49168
[FieldOffset(Offset = "0x214")]
[Token(Token = "0x400C010")]
[SerializeField]
protected float explosionForce = 30f;
// Token: 0x0400C011 RID: 49169
[FieldOffset(Offset = "0x218")]
[Token(Token = "0x400C011")]
[SerializeField]
protected AnimationCurve forceFalloff;
// Token: 0x0400C012 RID: 49170
[FieldOffset(Offset = "0x220")]
[Token(Token = "0x400C012")]
[SerializeField]
protected AnimationCurve damageFalloff;
// Token: 0x0400C013 RID: 49171
[FieldOffset(Offset = "0x228")]
[Token(Token = "0x400C013")]
[SerializeField]
protected float explosionTimeout;
// Token: 0x0400C014 RID: 49172
[FieldOffset(Offset = "0x230")]
[Token(Token = "0x400C014")]
[SerializeField]
[Header("Visuals")]
private Transform visualRoot;
// Token: 0x0400C015 RID: 49173
[FieldOffset(Offset = "0x238")]
[Token(Token = "0x400C015")]
[SerializeField]
private PooledParticle explosionParticlesPrefab;
// Token: 0x0400C016 RID: 49174
[FieldOffset(Offset = "0x240")]
[Token(Token = "0x400C016")]
[SerializeField]
private PooledParticle armedParticlesPrefab;
// Token: 0x0400C017 RID: 49175
[FieldOffset(Offset = "0x248")]
[Token(Token = "0x400C017")]
[SerializeField]
private Transform armedParticlesTransform;
// Token: 0x0400C018 RID: 49176
[FieldOffset(Offset = "0x250")]
[Token(Token = "0x400C018")]
[SerializeField]
private Color defaultColor;
// Token: 0x0400C019 RID: 49177
[FieldOffset(Offset = "0x260")]
[Token(Token = "0x400C019")]
[SerializeField]
[Header("Audio")]
private RecRoomAudioClip explodeAudio;
// Token: 0x0400C01A RID: 49178
[FieldOffset(Offset = "0x268")]
[Token(Token = "0x400C01A")]
[SerializeField]
private RecRoomAudioClip activeAudio;
// Token: 0x0400C01B RID: 49179
[FieldOffset(Offset = "0x270")]
[Token(Token = "0x400C01B")]
[SerializeField]
private RecRoomAudioClip countdownAudio;
// Token: 0x0400C01C RID: 49180
[FieldOffset(Offset = "0x278")]
[Token(Token = "0x400C01C")]
[SerializeField]
private AnimationCurve explosionTimeLeftToCountdownAudioCurve;
// Token: 0x0400C01D RID: 49181
[FieldOffset(Offset = "0x280")]
[Token(Token = "0x400C01D")]
protected readonly EMPJPPLIPMG OEJMNKBJCHC;
// Token: 0x0400C01E RID: 49182
[FieldOffset(Offset = "0x288")]
[Token(Token = "0x400C01E")]
private SFXAudioSource LGMFJBIPJIJ;
// Token: 0x0400C01F RID: 49183
[FieldOffset(Offset = "0x290")]
[Token(Token = "0x400C01F")]
private PooledParticle KIEBMAAIJKJ;
// Token: 0x0400C020 RID: 49184
[FieldOffset(Offset = "0x298")]
[Token(Token = "0x400C020")]
protected bool CBBHLEBEMKM;
// Token: 0x0400C021 RID: 49185
[FieldOffset(Offset = "0x29C")]
[Token(Token = "0x400C021")]
private float NHBAIFNLACD;
// Token: 0x0400C022 RID: 49186
[FieldOffset(Offset = "0x2A0")]
[Token(Token = "0x400C022")]
private float AOOEGDKIPKO;
// Token: 0x0400C023 RID: 49187
[FieldOffset(Offset = "0x2A8")]
[Token(Token = "0x400C023")]
protected DJHELPHHAEN MPCICEBJJGC;
// Token: 0x0400C024 RID: 49188
[FieldOffset(Offset = "0x2B0")]
[Token(Token = "0x400C024")]
protected MJNLDDCLOGP IIJGBIMFJBN;
// Token: 0x0400C025 RID: 49189
[FieldOffset(Offset = "0x2B8")]
[Token(Token = "0x400C025")]
private float IBMAAKOCNJC;
// Token: 0x0400C026 RID: 49190
[FieldOffset(Offset = "0x2C0")]
[Token(Token = "0x400C026")]
private List<AGAJMBPABDL> GOFBMKPDJEM;
// Token: 0x0400C027 RID: 49191
[FieldOffset(Offset = "0x2C8")]
[Token(Token = "0x400C027")]
[NonSerialized]
public bool AutomaticallyArmOnNextRelease;
// Token: 0x0400C028 RID: 49192
[FieldOffset(Offset = "0x2D0")]
[Token(Token = "0x400C028")]
private KLLMCPFPIIE<int> BBNFBDDLJPK;
// Token: 0x02002B47 RID: 11079
[Token(Token = "0x2002B47")]
protected enum GEFIOBFILHI
{
// Token: 0x0400C02A RID: 49194
[Token(Token = "0x400C02A")]
DISARMED,
// Token: 0x0400C02B RID: 49195
[Token(Token = "0x400C02B")]
ARMED,
// Token: 0x0400C02C RID: 49196
[Token(Token = "0x400C02C")]
DETONATED
}
}
}
@@ -0,0 +1,124 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B48 RID: 11080
[Token(Token = "0x2002B48")]
public class GrenadeLauncher : ExplosiveRangedWeapon
{
// Token: 0x060129B8 RID: 76216 RVA: 0x00442130 File Offset: 0x00440330
[Token(Token = "0x60129B8")]
[Address(RVA = "0xBB4560", Offset = "0xBB3360", VA = "0x180BB4560", Slot = "13")]
protected override void Awake()
{
base.Awake();
DelayedRangedWeaponTrigger delayedRangedWeaponTrigger = this.delayedTrigger;
int num = 0;
if (!(delayedRangedWeaponTrigger != num))
{
Tool tool = this._tool;
int num2 = 0;
if (tool != num2)
{
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> inputDownEvent = tool2.InputDownEvent;
Action<Tool> action = new Action(this.GDPCAAHGLJN);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.BPJDFPACLMK(inputDownEvent, action);
tool2.InputDownEvent = mfbglihgcgo;
}
return;
}
DelayedRangedWeaponTrigger delayedRangedWeaponTrigger2 = this.delayedTrigger;
DelayedRangedWeaponTrigger.IOGLIBAPLLG ioglibapllg = new DelayedRangedWeaponTrigger.IOGLIBAPLLG(this.JOGOOIHIHAJ);
delayedRangedWeaponTrigger2.JFPBBAHBCPN += ioglibapllg;
throw new NullReferenceException();
}
// Token: 0x060129B9 RID: 76217 RVA: 0x004421C4 File Offset: 0x004403C4
[Token(Token = "0x60129B9")]
[Address(RVA = "0xBB46C0", Offset = "0xBB34C0", VA = "0x180BB46C0", Slot = "14")]
protected override void OnDestroy()
{
base.OnDestroy();
DelayedRangedWeaponTrigger delayedRangedWeaponTrigger = this.delayedTrigger;
int num = 0;
if (delayedRangedWeaponTrigger != num)
{
DelayedRangedWeaponTrigger delayedRangedWeaponTrigger2 = this.delayedTrigger;
DelayedRangedWeaponTrigger.IOGLIBAPLLG ioglibapllg = new DelayedRangedWeaponTrigger.IOGLIBAPLLG(this.JOGOOIHIHAJ);
delayedRangedWeaponTrigger2.JFPBBAHBCPN -= ioglibapllg;
}
Tool tool = this._tool;
int num2 = 0;
if (tool != num2)
{
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> inputDownEvent = tool2.InputDownEvent;
Action<Tool> action = new Action(this.GDPCAAHGLJN);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.GMNMHGMFGOL(inputDownEvent, action);
tool2.InputDownEvent = mfbglihgcgo;
}
}
// Token: 0x060129BA RID: 76218 RVA: 0x00442258 File Offset: 0x00440458
[Token(Token = "0x60129BA")]
[Address(RVA = "0x79A460", Offset = "0x799260", VA = "0x18079A460")]
private void GDPCAAHGLJN(Tool NBHJPDBHDHB)
{
if (!base.OGIBLNIIHDK)
{
return;
}
if (!base.NOOCGFJOMEM)
{
bool isCompleted = ((IAsyncResult)this).IsCompleted;
return;
}
if (!base.MJDHKAHMGMO && !base.LAJLNCJKALH)
{
bool isCompleted2 = ((IAsyncResult)this).IsCompleted;
return;
}
this._weaponAudio.OnMisfire();
}
// Token: 0x060129BB RID: 76219 RVA: 0x004422AC File Offset: 0x004404AC
[Token(Token = "0x60129BB")]
[Address(RVA = "0x79A500", Offset = "0x799300", VA = "0x18079A500")]
private void JOGOOIHIHAJ(DelayedRangedWeaponTrigger OOONNFPBMKC)
{
if (base.OGIBLNIIHDK)
{
bool isCompleted = ((IAsyncResult)this).IsCompleted;
return;
}
}
// Token: 0x060129BC RID: 76220 RVA: 0x004422CC File Offset: 0x004404CC
[Token(Token = "0x60129BC")]
[Address(RVA = "0xB32FE0", Offset = "0xB31DE0", VA = "0x180B32FE0", Slot = "42")]
protected override void OICJPFPBIIK(Vector3 DDHPAFKBMON, Quaternion IGPENJBJADK, Vector3 NHAOMEMANJA, float LFDFFDCJAAD, bool FLKHKHDBIOH, byte LNPHJIHHNPN)
{
float z = NHAOMEMANJA.z;
float z2 = DDHPAFKBMON.z;
float z3 = NHAOMEMANJA.z;
float z4 = DDHPAFKBMON.z;
}
// Token: 0x060129BD RID: 76221 RVA: 0x004422F8 File Offset: 0x004404F8
[Token(Token = "0x60129BD")]
[Address(RVA = "0xBB4820", Offset = "0xBB3620", VA = "0x180BB4820")]
public GrenadeLauncher()
{
}
// Token: 0x0400C02D RID: 49197
[FieldOffset(Offset = "0x368")]
[Token(Token = "0x400C02D")]
[SerializeField]
[OCIDFHDICIP(JIBDPHMGEGO.SelfAndChildren, false, false, false)]
private DelayedRangedWeaponTrigger delayedTrigger;
}
}
@@ -0,0 +1,126 @@
using System;
using Cpp2IlInjected;
using RecRoom.Core.AI;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B52 RID: 11090
[Token(Token = "0x2002B52")]
public class MirrorCannon : BeamGun
{
// Token: 0x1700340F RID: 13327
// (get) Token: 0x06012A1D RID: 76317 RVA: 0x00444560 File Offset: 0x00442760
[Token(Token = "0x1700340F")]
public override bool PNJFDBBDPLK
{
[Token(Token = "0x6012A1D")]
[Address(RVA = "0xBB7D70", Offset = "0xBB6B70", VA = "0x180BB7D70", Slot = "52")]
get
{
if (!this.handle._tool.<BIPMAHKMNKF>k__BackingField)
{
}
return this.OIHKFDGLKOF;
}
}
// Token: 0x06012A1E RID: 76318 RVA: 0x00444590 File Offset: 0x00442790
[Token(Token = "0x6012A1E")]
[Address(RVA = "0xBB7CD0", Offset = "0xBB6AD0", VA = "0x180BB7CD0", Slot = "17")]
protected override void Start()
{
base.Start();
Color defaultProjectileColor = this.defaultProjectileColor;
base.FIPGMEBGIBH(defaultProjectileColor);
}
// Token: 0x06012A1F RID: 76319 RVA: 0x004445B4 File Offset: 0x004427B4
[Token(Token = "0x6012A1F")]
[Address(RVA = "0xBB7AB0", Offset = "0xBB68B0", VA = "0x180BB7AB0", Slot = "55")]
protected override void GAJIJLPDHNI(float POGAEJIEPIM)
{
base.GAJIJLPDHNI(POGAEJIEPIM);
Transform barrelTransform = this.barrelTransform;
int num = 0;
this.OIHKFDGLKOF = num != 0;
Transform transform = barrelTransform.transform;
Transform barrelTransform2 = this.barrelTransform;
Vector3 vector;
float z = vector.z;
Vector3 vector2;
float z2 = vector2.z;
bool flag;
if (flag)
{
Collider collider;
Enemy enemy = collider.PABDAFCMNCK(num);
int num2 = 0;
if (enemy != num2)
{
this.NotifyWeaponDealtPlayerOnPlayerDamage(num2);
int num3;
if (num3 > 0)
{
this.OIHKFDGLKOF = true;
}
}
}
if (base.HNDAKLNGFJJ)
{
this.IGIDNLPODPD();
}
}
// Token: 0x06012A20 RID: 76320 RVA: 0x00444640 File Offset: 0x00442840
[Token(Token = "0x6012A20")]
[Address(RVA = "0xBB78C0", Offset = "0xBB66C0", VA = "0x180BB78C0")]
private void FAHOOOJMGGH()
{
Transform barrelTransform = this.barrelTransform;
int num = 0;
this.OIHKFDGLKOF = num != 0;
Transform transform = barrelTransform.transform;
Transform barrelTransform2 = this.barrelTransform;
Vector3 vector;
float z = vector.z;
Vector3 vector2;
float z2 = vector2.z;
bool flag;
if (flag)
{
Collider collider;
Enemy enemy = collider.PABDAFCMNCK(num);
int num2 = 0;
if (enemy != num2)
{
this.NotifyWeaponDealtPlayerOnPlayerDamage(num2);
int num3;
if (num3 > 0)
{
this.OIHKFDGLKOF = true;
}
}
}
}
// Token: 0x06012A21 RID: 76321 RVA: 0x004446B8 File Offset: 0x004428B8
[Token(Token = "0x6012A21")]
[Address(RVA = "0xBB7D10", Offset = "0xBB6B10", VA = "0x180BB7D10")]
public MirrorCannon()
{
}
// Token: 0x0400C06E RID: 49262
[FieldOffset(Offset = "0x3F0")]
[Token(Token = "0x400C06E")]
[SerializeField]
[DDPIINEJFMD(JIBDPHMGEGO.SelfAndChildren, false, false, false)]
private SwivelToolHandle handle;
// Token: 0x0400C06F RID: 49263
[FieldOffset(Offset = "0x3F8")]
[Token(Token = "0x400C06F")]
private bool OIHKFDGLKOF;
}
}
@@ -0,0 +1,425 @@
using System;
using System.Collections.Generic;
using Cpp2IlInjected;
using RecRoom.Core;
using RecRoom.Core.Combat;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B49 RID: 11081
[Token(Token = "0x2002B49")]
public class PaintThrower : AutomaticGun
{
// Token: 0x17003407 RID: 13319
// (get) Token: 0x060129BE RID: 76222 RVA: 0x0044230C File Offset: 0x0044050C
// (set) Token: 0x060129BF RID: 76223 RVA: 0x0044232C File Offset: 0x0044052C
[Token(Token = "0x17003407")]
private int PEOCOICLHEJ
{
[Token(Token = "0x60129BE")]
[Address(RVA = "0xBB9F40", Offset = "0xBB8D40", VA = "0x180BB9F40")]
get
{
return this.HPOKNDIAIOC.IAHDANBDAAM();
}
[Token(Token = "0x60129BF")]
[Address(RVA = "0xBBA790", Offset = "0xBB9590", VA = "0x180BBA790")]
set
{
KLLMCPFPIIE<int> hpokndiaioc = this.HPOKNDIAIOC;
}
}
// Token: 0x17003408 RID: 13320
// (get) Token: 0x060129C0 RID: 76224 RVA: 0x00442348 File Offset: 0x00440548
// (set) Token: 0x060129C1 RID: 76225 RVA: 0x00442368 File Offset: 0x00440568
[Token(Token = "0x17003408")]
private bool CCHADJNBBEG
{
[Token(Token = "0x60129C0")]
[Address(RVA = "0xBBA910", Offset = "0xBB9710", VA = "0x180BBA910")]
get
{
return this.LBIEHIBDCBG.IAHDANBDAAM() != null;
}
[Token(Token = "0x60129C1")]
[Address(RVA = "0xBBA8B0", Offset = "0xBB96B0", VA = "0x180BBA8B0")]
set
{
KLLMCPFPIIE<bool> lbiehibdcbg = this.LBIEHIBDCBG;
}
}
// Token: 0x060129C2 RID: 76226 RVA: 0x00442384 File Offset: 0x00440584
[Token(Token = "0x60129C2")]
[Address(RVA = "0xBB9DA0", Offset = "0xBB8BA0", VA = "0x180BB9DA0", Slot = "13")]
protected override void Awake()
{
base.Awake();
ulong num;
this.EIFNMFGEKOA = num;
Action action = new Action(this.ICLKMKJFCGH);
int num2;
int num3;
KLLMCPFPIIE<int> kllmcpfpiie = new KLLMCPFPIIE(this, "MSRS", num2, (OHOEENCHJJE)num3, action, num3);
num3 = 0;
num2 = 0;
this.HPOKNDIAIOC = kllmcpfpiie;
Action action2 = new Action(this.GPFLHFEDHLM);
int num4;
KLLMCPFPIIE<bool> kllmcpfpiie2 = new KLLMCPFPIIE(this, "PSA", num4, (OHOEENCHJJE)num3, action2, num3);
num4 = 0;
Tool tool = this._tool;
this.LBIEHIBDCBG = kllmcpfpiie2;
MFBGLIHGCGO<Tool> postPickupEvent = tool.PostPickupEvent;
Action<Tool> action3 = new Action(this.AEHDEJPEAKM);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.BPJDFPACLMK(postPickupEvent, action3);
tool.PostPickupEvent = mfbglihgcgo;
}
// Token: 0x060129C3 RID: 76227 RVA: 0x00442430 File Offset: 0x00440630
[Token(Token = "0x60129C3")]
[Address(RVA = "0xBBAA10", Offset = "0xBB9810", VA = "0x180BBAA10", Slot = "17")]
protected override void Start()
{
base.Start();
global::UnityEngine.Random.InitState(this.HPOKNDIAIOC.IAHDANBDAAM());
this.GPFLHFEDHLM();
}
// Token: 0x060129C4 RID: 76228 RVA: 0x00442460 File Offset: 0x00440660
[Token(Token = "0x60129C4")]
[Address(RVA = "0xBBA960", Offset = "0xBB9760", VA = "0x180BBA960", Slot = "14")]
protected override void OnDestroy()
{
Tool tool = this._tool;
MFBGLIHGCGO<Tool> postPickupEvent = tool.PostPickupEvent;
Action<Tool> action = new Action(this.AEHDEJPEAKM);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.GMNMHGMFGOL(postPickupEvent, action);
tool.PostPickupEvent = mfbglihgcgo;
base.OnDestroy();
}
// Token: 0x060129C5 RID: 76229 RVA: 0x004424A4 File Offset: 0x004406A4
[Token(Token = "0x60129C5")]
[Address(RVA = "0xBB9BA0", Offset = "0xBB89A0", VA = "0x180BB9BA0")]
private void AEHDEJPEAKM(Tool NBHJPDBHDHB)
{
if (base.OGIBLNIIHDK)
{
int num = global::UnityEngine.Random.Range(-100, 100);
KLLMCPFPIIE<int> hpokndiaioc = this.HPOKNDIAIOC;
}
int num2 = 0;
num2 += num2;
num2++;
PaintThrower.QualitySettingReducedFeedback[] array = this.reducedFeedbackSettings;
this.JMKICAPHBPJ = (PPDOPHKNMCK)num2;
int length = array.Length;
if (num2 < length)
{
PaintThrower.QualitySettingReducedFeedback qualitySettingReducedFeedback = array[num2];
if (qualitySettingReducedFeedback != num2)
{
num2++;
num2 += num2;
}
this.EIFNMFGEKOA = qualitySettingReducedFeedback;
}
}
// Token: 0x060129C6 RID: 76230 RVA: 0x00442528 File Offset: 0x00440728
[Token(Token = "0x60129C6")]
[Address(RVA = "0xBB9F90", Offset = "0xBB8D90", VA = "0x180BB9F90", Slot = "37")]
protected override void BJKIKMAOAFH(GHMDIDJLFMC KNLMJBAKCGF)
{
byte emhobonpcga = this.EMHOBONPCGA;
byte pebdgmmlffc = this.PEBDGMMLFFC;
bool flag;
if (flag)
{
base.BJKIKMAOAFH(KNLMJBAKCGF);
}
}
// Token: 0x060129C7 RID: 76231 RVA: 0x00442550 File Offset: 0x00440750
[Token(Token = "0x60129C7")]
[Address(RVA = "0xBBA100", Offset = "0xBB8F00", VA = "0x180BBA100", Slot = "40")]
public override void Fire(float LFDFFDCJAAD = 1f)
{
Vector3 vector;
float z = vector.z;
Vector3 vector2;
float z2 = vector2.z;
}
// Token: 0x060129C8 RID: 76232 RVA: 0x0044256C File Offset: 0x0044076C
[Token(Token = "0x60129C8")]
[Address(RVA = "0xBBA1F0", Offset = "0xBB8FF0", VA = "0x180BBA1F0", Slot = "41")]
public override void Fire(Vector3 NHAOMEMANJA, float LFDFFDCJAAD = 1f)
{
if (base.HOEGEPPBJAE)
{
int magazineAmmunition = base.DFPKOJKFNIF;
base.ReloadAmmunition();
base.JOHDHGHPGBN();
}
Tool tool = this._tool;
if (tool.<BIPMAHKMNKF>k__BackingField)
{
PlayerHand <PBCNKLKCIHJ>k__BackingField = tool.<PBCNKLKCIHJ>k__BackingField;
this._tool.<PBCNKLKCIHJ>k__BackingField.Vibrate(20, 0.5f);
}
Player owner = this._tool.BHNPNHMILIF;
int num = 0;
if (owner != num && this._tool.BHNPNHMILIF != 0)
{
base.KIBLIKMBDHA();
RangedWeapon.LocalPlayerFireStaticEvent.CNFDGDEOPPF(this);
return;
}
}
// Token: 0x060129C9 RID: 76233 RVA: 0x00442604 File Offset: 0x00440804
[Token(Token = "0x60129C9")]
[Address(RVA = "0xBBA0A0", Offset = "0xBB8EA0", VA = "0x180BBA0A0")]
private IEnumerator<KENFJGFMIPM> CCGPBHIGAJI()
{
/*
An exception occurred when decompiling this method (060129C9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.Generic.IEnumerator`1<KENFJGFMIPM> RecRoom.Tools.Weapons.PaintThrower::CCGPBHIGAJI()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
call:void(MBNABGDLNAE::System.IDisposable.Dispose, ldloc:MBNABGDLNAE(var_0))
stfld:int32(MBNABGDLNAE::<>1__state, ldloc:MBNABGDLNAE(var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](0)))
stfld:PaintThrower(MBNABGDLNAE::<>4__this, ldloc:MBNABGDLNAE(var_0), ldloc:PaintThrower(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: 0x060129CA RID: 76234 RVA: 0x00442628 File Offset: 0x00440828
[Token(Token = "0x60129CA")]
[Address(RVA = "0xBB9B30", Offset = "0xBB8930", VA = "0x180BB9B30", Slot = "54")]
protected override void ABNPFEDICFJ()
{
base.ABNPFEDICFJ();
if (base.OGIBLNIIHDK)
{
KLLMCPFPIIE<bool> lbiehibdcbg = this.LBIEHIBDCBG;
return;
}
}
// Token: 0x060129CB RID: 76235 RVA: 0x00442654 File Offset: 0x00440854
[Token(Token = "0x60129CB")]
[Address(RVA = "0xBBA840", Offset = "0xBB9640", VA = "0x180BBA840", Slot = "53")]
protected override void IGIDNLPODPD()
{
base.IGIDNLPODPD();
if (base.OGIBLNIIHDK)
{
KLLMCPFPIIE<bool> lbiehibdcbg = this.LBIEHIBDCBG;
int num = 0;
lbiehibdcbg.BDJFGEJFPPO(num);
return;
}
}
// Token: 0x060129CC RID: 76236 RVA: 0x00442688 File Offset: 0x00440888
[Token(Token = "0x60129CC")]
[Address(RVA = "0xBBA7F0", Offset = "0xBB95F0", VA = "0x180BBA7F0")]
private void ICLKMKJFCGH()
{
global::UnityEngine.Random.InitState(this.HPOKNDIAIOC.IAHDANBDAAM());
}
// Token: 0x060129CD RID: 76237 RVA: 0x004426AC File Offset: 0x004408AC
[Token(Token = "0x60129CD")]
[Address(RVA = "0xBBA3C0", Offset = "0xBB91C0", VA = "0x180BBA3C0")]
private void GPFLHFEDHLM()
{
KFBABPAPIMB lapdeijchep = this.LAPDEIJCHEP;
int num = 0;
if (lapdeijchep != 0)
{
byte bgbogagnpfa = this.BGBOGAGNPFA;
this.PEBDGMMLFFC = bgbogagnpfa;
this.LAPDEIJCHEP = num;
}
if (this.LBIEHIBDCBG.IAHDANBDAAM() != 0)
{
}
if (this.LBIEHIBDCBG.IAHDANBDAAM() == 0)
{
AudioManager.StopLoopingSFX(this.DFEGINICGBK);
RecRoomAudioClip recRoomAudioClip = this.streamStopSfx;
Transform transform = base.transform;
int num2 = 0;
int num3 = 0;
SFXAudioSource sfxaudioSource = AudioManager.Play3DSFX(recRoomAudioClip, transform, num3, num2);
}
Scheduler instance = SingletonMonoBehaviour.ONCPNMDGGKG;
PaintThrower.MBNABGDLNAE mbnabgdlnae;
mbnabgdlnae.System.IDisposable.Dispose();
mbnabgdlnae.<>1__state = num;
mbnabgdlnae.<>4__this = this;
KFBABPAPIMB kfbabpapimb = instance.Run(this, mbnabgdlnae);
this.LAPDEIJCHEP = kfbabpapimb;
if (num != 0)
{
ParticleSystem particleSystem = this.streamParticles;
ParticleSystem.MainModule main = particleSystem.main;
float bulletFireSpeed = this.bulletFireSpeed;
particleSystem.GBCGEDODDPD = bulletFireSpeed;
float bulletFireSpeed2 = this.bulletFireSpeed;
particleSystem.scale = bulletFireSpeed2;
}
RecRoomAudioClip recRoomAudioClip2 = this.streamStartSfx;
Transform transform2 = base.transform;
int num4 = 0;
int num5 = 0;
SFXAudioSource sfxaudioSource2 = AudioManager.Play3DSFX(recRoomAudioClip2, transform2, num5, num4);
RecRoomAudioClip recRoomAudioClip3 = this.streamLoopingSfx;
Transform transform3 = base.transform;
int num6 = 0;
int num7 = 0;
SFXAudioSource sfxaudioSource3 = AudioManager.StartLooping3DSFX(recRoomAudioClip3, transform3, num7, num6);
this.DFEGINICGBK = sfxaudioSource3;
this.streamParticles.gameObject.SetActive(num != 0);
}
// Token: 0x060129CE RID: 76238 RVA: 0x004427F8 File Offset: 0x004409F8
[Token(Token = "0x60129CE")]
[Address(RVA = "0xBBAA80", Offset = "0xBB9880", VA = "0x180BBAA80")]
public PaintThrower()
{
}
// Token: 0x0400C02E RID: 49198
[Token(Token = "0x400C02E")]
private const float OIFIBANOKKI = 8f;
// Token: 0x0400C02F RID: 49199
[FieldOffset(Offset = "0x308")]
[Token(Token = "0x400C02F")]
[SerializeField]
[Header("Paint Thrower Visuals")]
private ParticleSystem streamParticles;
// Token: 0x0400C030 RID: 49200
[FieldOffset(Offset = "0x310")]
[Token(Token = "0x400C030")]
[SerializeField]
private PaintThrower.QualitySettingReducedFeedback[] reducedFeedbackSettings;
// Token: 0x0400C031 RID: 49201
[FieldOffset(Offset = "0x318")]
[Token(Token = "0x400C031")]
[SerializeField]
[Header("Paint Thrower Audio")]
private RecRoomAudioClip streamStartSfx;
// Token: 0x0400C032 RID: 49202
[FieldOffset(Offset = "0x320")]
[Token(Token = "0x400C032")]
[SerializeField]
private RecRoomAudioClip streamLoopingSfx;
// Token: 0x0400C033 RID: 49203
[FieldOffset(Offset = "0x328")]
[Token(Token = "0x400C033")]
[SerializeField]
private RecRoomAudioClip streamStopSfx;
// Token: 0x0400C034 RID: 49204
[FieldOffset(Offset = "0x330")]
[Token(Token = "0x400C034")]
private PaintThrower.QualitySettingReducedFeedback EIFNMFGEKOA;
// Token: 0x0400C035 RID: 49205
[FieldOffset(Offset = "0x338")]
[Token(Token = "0x400C035")]
private PPDOPHKNMCK JMKICAPHBPJ;
// Token: 0x0400C036 RID: 49206
[FieldOffset(Offset = "0x33C")]
[Token(Token = "0x400C036")]
private byte EMHOBONPCGA;
// Token: 0x0400C037 RID: 49207
[FieldOffset(Offset = "0x33D")]
[Token(Token = "0x400C037")]
private byte PEBDGMMLFFC;
// Token: 0x0400C038 RID: 49208
[FieldOffset(Offset = "0x340")]
[Token(Token = "0x400C038")]
private KFBABPAPIMB LAPDEIJCHEP;
// Token: 0x0400C039 RID: 49209
[FieldOffset(Offset = "0x348")]
[Token(Token = "0x400C039")]
private SFXAudioSource DFEGINICGBK;
// Token: 0x0400C03A RID: 49210
[FieldOffset(Offset = "0x350")]
[Token(Token = "0x400C03A")]
private KLLMCPFPIIE<int> HPOKNDIAIOC;
// Token: 0x0400C03B RID: 49211
[FieldOffset(Offset = "0x358")]
[Token(Token = "0x400C03B")]
private KLLMCPFPIIE<bool> LBIEHIBDCBG;
// Token: 0x02002B4A RID: 11082
[Token(Token = "0x2002B4A")]
[Serializable]
private struct QualitySettingReducedFeedback
{
// Token: 0x17003409 RID: 13321
// (get) Token: 0x060129CF RID: 76239 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x17003409")]
public static PaintThrower.QualitySettingReducedFeedback Default
{
[Token(Token = "0x60129CF")]
[Address(RVA = "0xBBECD0", Offset = "0xBBDAD0", VA = "0x180BBECD0")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x060129D0 RID: 76240 RVA: 0x0044280C File Offset: 0x00440A0C
[Token(Token = "0x60129D0")]
[Address(RVA = "0xBBEC40", Offset = "0xBBDA40", VA = "0x180BBEC40")]
public bool KAFLDIANPMA(int BAFLIKCNDJI)
{
int num = 0;
int num2 = Mathf.FloorToInt(1f);
return num == 0;
}
// Token: 0x0400C03C RID: 49212
[FieldOffset(Offset = "0x0")]
[Token(Token = "0x400C03C")]
public PPDOPHKNMCK QualitySetting;
// Token: 0x0400C03D RID: 49213
[FieldOffset(Offset = "0x4")]
[Token(Token = "0x400C03D")]
public float FeedbackPercentage;
}
}
}
@@ -0,0 +1,125 @@
using System;
using Cpp2IlInjected;
using RecRoom.Core.Combat;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B4C RID: 11084
[Token(Token = "0x2002B4C")]
public class Pistol : RangedWeapon
{
// Token: 0x060129D7 RID: 76247 RVA: 0x0044294C File Offset: 0x00440B4C
[Token(Token = "0x60129D7")]
[Address(RVA = "0xBBAA90", Offset = "0xBB9890", VA = "0x180BBAA90", Slot = "13")]
protected override void Awake()
{
base.Awake();
DelayedRangedWeaponTrigger delayedRangedWeaponTrigger = this.delayedTrigger;
int num = 0;
if (!(delayedRangedWeaponTrigger != num))
{
Tool tool = this._tool;
int num2 = 0;
if (tool != num2)
{
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> inputDownEvent = tool2.InputDownEvent;
Action<Tool> action = new Action(this.GDPCAAHGLJN);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.BPJDFPACLMK(inputDownEvent, action);
tool2.InputDownEvent = mfbglihgcgo;
}
return;
}
DelayedRangedWeaponTrigger delayedRangedWeaponTrigger2 = this.delayedTrigger;
DelayedRangedWeaponTrigger.IOGLIBAPLLG ioglibapllg = new DelayedRangedWeaponTrigger.IOGLIBAPLLG(this.JOGOOIHIHAJ);
delayedRangedWeaponTrigger2.JFPBBAHBCPN += ioglibapllg;
throw new NullReferenceException();
}
// Token: 0x060129D8 RID: 76248 RVA: 0x004429E0 File Offset: 0x00440BE0
[Token(Token = "0x60129D8")]
[Address(RVA = "0xBBABF0", Offset = "0xBB99F0", VA = "0x180BBABF0", Slot = "14")]
protected override void OnDestroy()
{
base.OnDestroy();
DelayedRangedWeaponTrigger delayedRangedWeaponTrigger = this.delayedTrigger;
int num = 0;
if (delayedRangedWeaponTrigger != num)
{
DelayedRangedWeaponTrigger delayedRangedWeaponTrigger2 = this.delayedTrigger;
DelayedRangedWeaponTrigger.IOGLIBAPLLG ioglibapllg = new DelayedRangedWeaponTrigger.IOGLIBAPLLG(this.JOGOOIHIHAJ);
delayedRangedWeaponTrigger2.JFPBBAHBCPN -= ioglibapllg;
}
Tool tool = this._tool;
int num2 = 0;
if (tool != num2)
{
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> inputDownEvent = tool2.InputDownEvent;
Action<Tool> action = new Action(this.GDPCAAHGLJN);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.GMNMHGMFGOL(inputDownEvent, action);
tool2.InputDownEvent = mfbglihgcgo;
}
}
// Token: 0x060129D9 RID: 76249 RVA: 0x00442A74 File Offset: 0x00440C74
[Token(Token = "0x60129D9")]
[Address(RVA = "0x79A460", Offset = "0x799260", VA = "0x18079A460")]
private void GDPCAAHGLJN(Tool NBHJPDBHDHB)
{
if (!base.OGIBLNIIHDK)
{
return;
}
if (!base.NOOCGFJOMEM)
{
bool isCompleted = ((IAsyncResult)this).IsCompleted;
return;
}
if (!base.MJDHKAHMGMO && !base.LAJLNCJKALH)
{
bool isCompleted2 = ((IAsyncResult)this).IsCompleted;
return;
}
this._weaponAudio.OnMisfire();
}
// Token: 0x060129DA RID: 76250 RVA: 0x00442AC8 File Offset: 0x00440CC8
[Token(Token = "0x60129DA")]
[Address(RVA = "0x79A500", Offset = "0x799300", VA = "0x18079A500")]
private void JOGOOIHIHAJ(DelayedRangedWeaponTrigger OOONNFPBMKC)
{
if (base.OGIBLNIIHDK)
{
bool isCompleted = ((IAsyncResult)this).IsCompleted;
return;
}
}
// Token: 0x060129DB RID: 76251 RVA: 0x00442AE8 File Offset: 0x00440CE8
[Token(Token = "0x60129DB")]
[Address(RVA = "0xB32FE0", Offset = "0xB31DE0", VA = "0x180B32FE0", Slot = "42")]
protected override void OICJPFPBIIK(Vector3 DDHPAFKBMON, Quaternion IGPENJBJADK, Vector3 NHAOMEMANJA, float LFDFFDCJAAD, bool FLKHKHDBIOH, byte LNPHJIHHNPN)
{
float z = NHAOMEMANJA.z;
float z2 = DDHPAFKBMON.z;
float z3 = NHAOMEMANJA.z;
float z4 = DDHPAFKBMON.z;
}
// Token: 0x060129DC RID: 76252 RVA: 0x00442B14 File Offset: 0x00440D14
[Token(Token = "0x60129DC")]
[Address(RVA = "0xBBAD50", Offset = "0xBB9B50", VA = "0x180BBAD50")]
public Pistol()
{
}
// Token: 0x0400C042 RID: 49218
[FieldOffset(Offset = "0x2F0")]
[Token(Token = "0x400C042")]
[SerializeField]
[OCIDFHDICIP(JIBDPHMGEGO.SelfAndChildren, false, false, false)]
private DelayedRangedWeaponTrigger delayedTrigger;
}
}
@@ -0,0 +1,1109 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Runtime.CompilerServices;
using System.Text;
using AGUI.StackedUI;
using Cpp2IlInjected;
using Photon.Pun;
using RecRoom.AGUI.ToolUIs;
using RecRoom.Core;
using RecRoom.Core.AI;
using RecRoom.Core.Combat;
using RecRoom.Core.Creation;
using RecRoom.Core.Pools;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B4D RID: 11085
[Token(Token = "0x2002B4D")]
public class ProximityMine : Grenade, EOCLMMENCKH
{
// Token: 0x1700340C RID: 13324
// (get) Token: 0x060129DD RID: 76253 RVA: 0x00442B28 File Offset: 0x00440D28
// (set) Token: 0x060129DE RID: 76254 RVA: 0x00442B48 File Offset: 0x00440D48
[Token(Token = "0x1700340C")]
private bool NGJPIILECEM
{
[Token(Token = "0x60129DD")]
[Address(RVA = "0xBBDC30", Offset = "0xBBCA30", VA = "0x180BBDC30")]
get
{
return this.GNJJDPIHEGE.IAHDANBDAAM() != null;
}
[Token(Token = "0x60129DE")]
[Address(RVA = "0xBBE3E0", Offset = "0xBBD1E0", VA = "0x180BBE3E0")]
set
{
KLLMCPFPIIE<bool> gnjjdpihege = this.GNJJDPIHEGE;
}
}
// Token: 0x1700340D RID: 13325
// (get) Token: 0x060129DF RID: 76255 RVA: 0x00442B64 File Offset: 0x00440D64
// (set) Token: 0x060129E0 RID: 76256 RVA: 0x00442B84 File Offset: 0x00440D84
[Token(Token = "0x1700340D")]
private bool CPBKMMJEFBM
{
[Token(Token = "0x60129DF")]
[Address(RVA = "0xBBCDB0", Offset = "0xBBBBB0", VA = "0x180BBCDB0")]
get
{
return this.FOGJCCOBDHI.IAHDANBDAAM() != null;
}
[Token(Token = "0x60129E0")]
[Address(RVA = "0xBBDB40", Offset = "0xBBC940", VA = "0x180BBDB40")]
set
{
KLLMCPFPIIE<bool> fogjccobdhi = this.FOGJCCOBDHI;
}
}
// Token: 0x060129E1 RID: 76257 RVA: 0x00442BA0 File Offset: 0x00440DA0
[Token(Token = "0x60129E1")]
[Address(RVA = "0xBBB2B0", Offset = "0xBBA0B0", VA = "0x180BBB2B0", Slot = "13")]
protected override void Awake()
{
base.Awake();
int num;
KLLMCPFPIIE<bool> kllmcpfpiie = new KLLMCPFPIIE(this, "FR", 1, (OHOEENCHJJE)num, num, num);
num = 0;
this.GNJJDPIHEGE = kllmcpfpiie;
bool flag = this.defaultTriggeredByTeammates;
KLLMCPFPIIE<bool> kllmcpfpiie2 = new KLLMCPFPIIE(this, "TBT", flag, (OHOEENCHJJE)num, num, num);
DJHELPHHAEN mpcicebjjgc = this.MPCICEBJJGC;
this.FOGJCCOBDHI = kllmcpfpiie2;
DJHELPHHAEN mpcicebjjgc2 = this.MPCICEBJJGC;
MIEIBBPMDMP.OKGCDFLPFOD okgcdflpfod = new MIEIBBPMDMP.OKGCDFLPFOD(this.KAKMMLMACDG);
MIEIBBPMDMP.KNFAKJMALJE knfakjmalje = new MIEIBBPMDMP.KNFAKJMALJE(this.NMHHIBCLHHE);
DJHELPHHAEN mpcicebjjgc3 = this.MPCICEBJJGC;
MIEIBBPMDMP.OKGCDFLPFOD okgcdflpfod2 = new MIEIBBPMDMP.OKGCDFLPFOD(this.FGAEIFBPJDF);
MIEIBBPMDMP.KNFAKJMALJE knfakjmalje2 = new MIEIBBPMDMP.KNFAKJMALJE(this.EOBBKAOCGHM);
DJHELPHHAEN mpcicebjjgc4 = this.MPCICEBJJGC;
MIEIBBPMDMP.OKGCDFLPFOD okgcdflpfod3 = new MIEIBBPMDMP.OKGCDFLPFOD(this.CBPCDDPJCBB);
MIEIBBPMDMP.KNFAKJMALJE knfakjmalje3 = new MIEIBBPMDMP.KNFAKJMALJE(this.FCNIJIBODEM);
int num2 = 0;
int num3 = 0;
mpcicebjjgc4.JEPMLPCOGNM((ushort)num2, okgcdflpfod3, num3, knfakjmalje3);
DJHELPHHAEN mpcicebjjgc5 = this.MPCICEBJJGC;
MIEIBBPMDMP.KNFAKJMALJE knfakjmalje4 = new MIEIBBPMDMP.KNFAKJMALJE(this.FEPPGHHHBMF);
OverlapVolume overlapVolume = this.detonationTriggerOverlapVolume;
Action<OverlapVolume> action = new Action(this.BDMCLBBGDEJ);
overlapVolume.LocalPlayerVolumeEnterEvent += action;
EnemyOverlapVolume enemyOverlapVolume = this.detonationTriggerEnemyOverlapVolume;
Action<OverlapVolume, Enemy> action2 = new Action(this.HIEMHBHAMGP);
enemyOverlapVolume.EnemyVolumeEnterEvent += action2;
Tool tool = this._tool;
Tool.OGLAJAFKBMN oglajafkbmn = new Tool.OGLAJAFKBMN(this.LPLIIBBAAOI);
tool.AddCustomPickupCondition(oglajafkbmn);
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> enabledChangeEvent = tool2.EnabledChangeEvent;
Action<Tool> action3 = new Action(this.LGIBIJJMOAI);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.BPJDFPACLMK(enabledChangeEvent, action3);
tool2.EnabledChangeEvent = mfbglihgcgo;
Tool tool3 = this._tool;
MFBGLIHGCGO<Tool> postPickupEvent = tool3.PostPickupEvent;
Action<Tool> action4 = new Action(this.AEHDEJPEAKM);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.BPJDFPACLMK(postPickupEvent, action4);
tool3.PostPickupEvent = mfbglihgcgo2;
Tool tool4 = this._tool;
MFBGLIHGCGO<Tool> postAttachEvent = tool4.PostAttachEvent;
Action<Tool> action5 = new Action(this.PMPDJBDJDNP);
MFBGLIHGCGO<Tool> mfbglihgcgo3 = MFBGLIHGCGO.BPJDFPACLMK(postAttachEvent, action5);
tool4.PostAttachEvent = mfbglihgcgo3;
this.sticky.<GEJFGBABJED>k__BackingField = num != 0;
SimpleSticky simpleSticky = this.sticky;
Action<Tool> action6 = new Action(this.MJDCJBFOEJM);
simpleSticky.AttachedToolReset += action6;
}
// Token: 0x060129E2 RID: 76258 RVA: 0x00442DBC File Offset: 0x00440FBC
[Token(Token = "0x60129E2")]
[Address(RVA = "0xBBE810", Offset = "0xBBD610", VA = "0x180BBE810", Slot = "17")]
protected override void Start()
{
base.Start();
PlayerSpawnedEquipment <FLFJCIPBAPA>k__BackingField = this._tool.<FLFJCIPBAPA>k__BackingField;
int num = 0;
if (<FLFJCIPBAPA>k__BackingField != num && <FLFJCIPBAPA>k__BackingField.<EPECNEBCMLG>k__BackingField == PlayerSpawnedEquipment.IILDIBHEIDO.Drawer)
{
this.CBBHLEBEMKM = false;
}
int num2 = 0;
bool flag;
if (flag)
{
}
this.MPCICEBJJGC.HDGEHNGPFDO(this, (ushort)num2);
EnemyOverlapVolume enemyOverlapVolume = this.detonationTriggerEnemyOverlapVolume;
int num3 = 0;
enemyOverlapVolume.OFKIHGPJHJI(num3 != 0);
OverlapVolume overlapVolume = this.detonationTriggerOverlapVolume;
int num4 = 0;
overlapVolume.OFKIHGPJHJI(num4 != 0);
List<ToolCollider> nnbalfkkndo = this._tool.NNBALFKKNDO;
if (num2 < num4)
{
num2 += num2;
if (num2 == num4)
{
throw new NullReferenceException();
}
num2++;
}
int num5 = 0;
ReadOnlyCollection<Collider> readOnlyCollection;
Collider collider = readOnlyCollection[num5];
this.KONABEHDLNG = collider;
this.ADCJHFALHFP();
}
// Token: 0x060129E3 RID: 76259 RVA: 0x00442E7C File Offset: 0x0044107C
[Token(Token = "0x60129E3")]
[Address(RVA = "0xBBE1B0", Offset = "0xBBCFB0", VA = "0x180BBE1B0", Slot = "14")]
protected override void OnDestroy()
{
OverlapVolume overlapVolume = this.detonationTriggerOverlapVolume;
Action<OverlapVolume> action = new Action(this.BDMCLBBGDEJ);
overlapVolume.LocalPlayerVolumeEnterEvent -= action;
EnemyOverlapVolume enemyOverlapVolume = this.detonationTriggerEnemyOverlapVolume;
Action<OverlapVolume, Enemy> action2 = new Action(this.HIEMHBHAMGP);
enemyOverlapVolume.EnemyVolumeEnterEvent -= action2;
Tool tool = this._tool;
MFBGLIHGCGO<Tool> enabledChangeEvent = tool.EnabledChangeEvent;
Action<Tool> action3 = new Action(this.LGIBIJJMOAI);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.GMNMHGMFGOL(enabledChangeEvent, action3);
tool.EnabledChangeEvent = mfbglihgcgo;
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> postPickupEvent = tool2.PostPickupEvent;
Action<Tool> action4 = new Action(this.AEHDEJPEAKM);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.GMNMHGMFGOL(postPickupEvent, action4);
tool2.PostPickupEvent = mfbglihgcgo2;
Tool tool3 = this._tool;
MFBGLIHGCGO<Tool> postAttachEvent = tool3.PostAttachEvent;
Action<Tool> action5 = new Action(this.PMPDJBDJDNP);
MFBGLIHGCGO<Tool> mfbglihgcgo3 = MFBGLIHGCGO.GMNMHGMFGOL(postAttachEvent, action5);
tool3.PostAttachEvent = mfbglihgcgo3;
SimpleSticky simpleSticky = this.sticky;
Action<Tool> action6 = new Action(this.MJDCJBFOEJM);
simpleSticky.AttachedToolReset -= action6;
base.OnDestroy();
}
// Token: 0x060129E4 RID: 76260 RVA: 0x00442F84 File Offset: 0x00441184
[Token(Token = "0x60129E4")]
[Address(RVA = "0xBBB250", Offset = "0xBBA050", VA = "0x180BBB250", Slot = "48")]
public override void AuthorityArmGrenade()
{
if (base.OGIBLNIIHDK)
{
DJHELPHHAEN mpcicebjjgc = this.MPCICEBJJGC;
return;
}
}
// Token: 0x060129E5 RID: 76261 RVA: 0x00442FA8 File Offset: 0x004411A8
[Token(Token = "0x60129E5")]
[Address(RVA = "0xBBBC10", Offset = "0xBBAA10", VA = "0x180BBBC10", Slot = "47")]
protected override void DADICKKNCPD(AGAJMBPABDL FHDOIBDKGIA, Weapon HCCOBFEJBKC, bool OMLAMJNPAOJ, bool FKJEIKCIOKC, bool OPLGHPIGKGD)
{
if (base.OGIBLNIIHDK)
{
DJHELPHHAEN mpcicebjjgc = this.MPCICEBJJGC;
return;
}
}
// Token: 0x060129E6 RID: 76262 RVA: 0x00442FCC File Offset: 0x004411CC
[Token(Token = "0x60129E6")]
[Address(RVA = "0xBBDAA0", Offset = "0xBBC8A0", VA = "0x180BBDAA0")]
private bool LPLIIBBAAOI(Tool NBHJPDBHDHB, Player NHCEBNBEEBE, Vector3 JEDLNAEEMEN, bool GEJJBENPHJG)
{
KLLMCPFPIIE<bool> gnjjdpihege = this.GNJJDPIHEGE;
bool flag = gnjjdpihege.IAHDANBDAAM() != null;
if (!flag)
{
return flag;
}
DJHELPHHAEN mpcicebjjgc = this.MPCICEBJJGC;
return gnjjdpihege == 0 || gnjjdpihege == (ulong)3L;
}
// Token: 0x060129E7 RID: 76263 RVA: 0x00443008 File Offset: 0x00441208
[Token(Token = "0x60129E7")]
[Address(RVA = "0xBBD710", Offset = "0xBBC510", VA = "0x180BBD710")]
private void LGIBIJJMOAI(Tool EGFEJGHDNAI)
{
if (base.OGIBLNIIHDK)
{
DJHELPHHAEN mpcicebjjgc = this.MPCICEBJJGC;
int num = 0;
mpcicebjjgc.PIEOGAPMGIH((ushort)num);
return;
}
}
// Token: 0x060129E8 RID: 76264 RVA: 0x00443038 File Offset: 0x00441238
[Token(Token = "0x60129E8")]
[Address(RVA = "0xBBB070", Offset = "0xBB9E70", VA = "0x180BBB070")]
private void AEHDEJPEAKM(Tool NBHJPDBHDHB)
{
if (base.OGIBLNIIHDK)
{
DJHELPHHAEN mpcicebjjgc = this.MPCICEBJJGC;
int num = 0;
mpcicebjjgc.PIEOGAPMGIH((ushort)num);
return;
}
}
// Token: 0x060129E9 RID: 76265 RVA: 0x00443068 File Offset: 0x00441268
[Token(Token = "0x60129E9")]
[Address(RVA = "0xBBE600", Offset = "0xBBD400", VA = "0x180BBE600")]
private void PMPDJBDJDNP(Tool EGFEJGHDNAI)
{
if (base.OGIBLNIIHDK)
{
DJHELPHHAEN mpcicebjjgc = this.MPCICEBJJGC;
if (this._tool.<CMPLOJHCLMG>k__BackingField)
{
int num = 0;
mpcicebjjgc.PIEOGAPMGIH((ushort)num);
return;
}
}
}
// Token: 0x060129EA RID: 76266 RVA: 0x004430A4 File Offset: 0x004412A4
[Token(Token = "0x60129EA")]
[Address(RVA = "0xBBDBA0", Offset = "0xBBC9A0", VA = "0x180BBDBA0")]
private void MJDCJBFOEJM(Tool OJNMAKLNFBI)
{
this.FLHKMDLECAG();
}
// Token: 0x060129EB RID: 76267 RVA: 0x004430B8 File Offset: 0x004412B8
[Token(Token = "0x60129EB")]
[Address(RVA = "0xBBBA20", Offset = "0xBBA820", VA = "0x180BBBA20")]
private void CBPCDDPJCBB(ushort CPMPEJFMDED, ushort OEAPMLMHLLF)
{
Animator animator = this._animator;
int num = 0;
int feamibaebmf = ProximityMine.FEAMIBAEBMF;
animator.SetBool(feamibaebmf, num != 0);
Animator animator2 = this._animator;
int num2 = 0;
int khkdfmphiee = ProximityMine.KHKDFMPHIEE;
animator2.SetBool(khkdfmphiee, num2 != 0);
Animator animator3 = this._animator;
int num3 = 0;
int akodglojhhl = ProximityMine.AKODGLOJHHL;
animator3.SetBool(akodglojhhl, num3 != 0);
this.sticky.AuthorityTryDetach();
this._tool.rigidbodyEx.MKDHFENOFDO = 1f;
EnemyOverlapVolume enemyOverlapVolume = this.detonationTriggerEnemyOverlapVolume;
int num4 = 0;
enemyOverlapVolume.OFKIHGPJHJI(num4 != 0);
OverlapVolume overlapVolume = this.detonationTriggerOverlapVolume;
int num5 = 0;
overlapVolume.OFKIHGPJHJI(num5 != 0);
ParticleEventListener ikfhbebeoep = this.IKFHBEBEOEP;
int num6 = 0;
if (ikfhbebeoep != num6)
{
ParticleEventListener ikfhbebeoep2 = this.IKFHBEBEOEP;
ParticleEventListener.DAAKAAKAAEJ daakaakaaej = new ParticleEventListener.DAAKAAKAAEJ(this.IKAMLOFEGAH);
ikfhbebeoep2.IEKIBIIEMFA -= daakaakaaej;
}
if (base.OGIBLNIIHDK)
{
this.IIJGBIMFJBN.KGFFMEICLNN(1f);
}
}
// Token: 0x060129EC RID: 76268 RVA: 0x004431B4 File Offset: 0x004413B4
[Token(Token = "0x60129EC")]
[Address(RVA = "0xBBC9C0", Offset = "0xBBB7C0", VA = "0x180BBC9C0")]
private void FCNIJIBODEM()
{
if (base.OGIBLNIIHDK && this.IIJGBIMFJBN.OLGMEEIPCAL && this.GNJJDPIHEGE.IAHDANBDAAM() == 0)
{
this.NGJPIILECEM = true;
return;
}
}
// Token: 0x060129ED RID: 76269 RVA: 0x004431F4 File Offset: 0x004413F4
[Token(Token = "0x60129ED")]
[Address(RVA = "0xBBD5B0", Offset = "0xBBC3B0", VA = "0x180BBD5B0")]
private void KAKMMLMACDG(ushort CPMPEJFMDED, ushort OEAPMLMHLLF)
{
Animator animator = this._animator;
int feamibaebmf = ProximityMine.FEAMIBAEBMF;
animator.SetBool(feamibaebmf, true);
Animator animator2 = this._animator;
int num = 0;
int khkdfmphiee = ProximityMine.KHKDFMPHIEE;
animator2.SetBool(khkdfmphiee, num != 0);
Animator animator3 = this._animator;
int num2 = 0;
int akodglojhhl = ProximityMine.AKODGLOJHHL;
animator3.SetBool(akodglojhhl, num2 != 0);
RecRoomAudioClip recRoomAudioClip = this.armingAudioClip;
Transform transform = base.transform;
int num3 = 0;
int num4 = 0;
SFXAudioSource sfxaudioSource = AudioManager.Play3DSFX(recRoomAudioClip, transform, num4, num3);
if (base.OGIBLNIIHDK)
{
MJNLDDCLOGP iijgbimfjbn = this.IIJGBIMFJBN;
float num5 = this.armingTime;
iijgbimfjbn.KGFFMEICLNN(num5);
}
}
// Token: 0x060129EE RID: 76270 RVA: 0x0044329C File Offset: 0x0044149C
[Token(Token = "0x60129EE")]
[Address(RVA = "0xBBDBB0", Offset = "0xBBC9B0", VA = "0x180BBDBB0")]
private void NMHHIBCLHHE()
{
if (base.OGIBLNIIHDK && this.IIJGBIMFJBN.OLGMEEIPCAL)
{
DJHELPHHAEN mpcicebjjgc = this.MPCICEBJJGC;
return;
}
}
// Token: 0x060129EF RID: 76271 RVA: 0x004432D0 File Offset: 0x004414D0
[Token(Token = "0x60129EF")]
[Address(RVA = "0xBBDC80", Offset = "0xBBCA80", VA = "0x180BBDC80", Slot = "41")]
protected override void OLNBPNEEDGM(ushort CPMPEJFMDED, ushort OEAPMLMHLLF)
{
base.OLNBPNEEDGM(CPMPEJFMDED, OEAPMLMHLLF);
this.detonationTriggerEnemyOverlapVolume.OFKIHGPJHJI(true);
this.detonationTriggerOverlapVolume.OFKIHGPJHJI(true);
Animator animator = this._animator;
int num = 0;
int feamibaebmf = ProximityMine.FEAMIBAEBMF;
animator.SetBool(feamibaebmf, num != 0);
Animator animator2 = this._animator;
int khkdfmphiee = ProximityMine.KHKDFMPHIEE;
animator2.SetBool(khkdfmphiee, true);
Animator animator3 = this._animator;
int num2 = 0;
int akodglojhhl = ProximityMine.AKODGLOJHHL;
animator3.SetBool(akodglojhhl, num2 != 0);
RecRoomAudioClip recRoomAudioClip = this.armedAudioClip;
Transform transform = base.transform;
int num3 = 0;
int num4 = 0;
SFXAudioSource sfxaudioSource = AudioManager.Play3DSFX(recRoomAudioClip, transform, num4, num3);
}
// Token: 0x060129F0 RID: 76272 RVA: 0x00443374 File Offset: 0x00441574
[Token(Token = "0x60129F0")]
[Address(RVA = "0xBBB0E0", Offset = "0xBB9EE0", VA = "0x180BBB0E0", Slot = "42")]
protected override void ALMOAPCHJDK()
{
ENDNBHFKNFL endnbhfknfl;
int falkmighgoo = endnbhfknfl.FALKMIGHGOO;
float y = endnbhfknfl.CMINCCMAJHA.y;
float y2 = endnbhfknfl.GDBPMHPHDBI.y;
bool flag;
if (!flag)
{
this.FLHKMDLECAG();
}
}
// Token: 0x060129F1 RID: 76273 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x60129F1")]
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "43")]
protected override void KCFOPHJOLAK(ushort HKDPLMDENDA, ushort CKCOCKOPHAM)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060129F2 RID: 76274 RVA: 0x004433B0 File Offset: 0x004415B0
[Token(Token = "0x60129F2")]
[Address(RVA = "0xBBCA80", Offset = "0xBBB880", VA = "0x180BBCA80")]
private void FGAEIFBPJDF(ushort CPMPEJFMDED, ushort OEAPMLMHLLF)
{
EnemyOverlapVolume enemyOverlapVolume = this.detonationTriggerEnemyOverlapVolume;
int num = 0;
enemyOverlapVolume.OFKIHGPJHJI(num != 0);
OverlapVolume overlapVolume = this.detonationTriggerOverlapVolume;
int num2 = 0;
overlapVolume.OFKIHGPJHJI(num2 != 0);
RecRoomAudioClip recRoomAudioClip = this.triggeredAudioClip;
Transform transform = base.transform;
int num3 = 0;
int num4 = 0;
SFXAudioSource sfxaudioSource = AudioManager.Play3DSFX(recRoomAudioClip, transform, num4, num3);
if (base.OGIBLNIIHDK)
{
MJNLDDCLOGP iijgbimfjbn = this.IIJGBIMFJBN;
float num5 = this.triggeringTime;
iijgbimfjbn.KGFFMEICLNN(num5);
}
}
// Token: 0x060129F3 RID: 76275 RVA: 0x0044342C File Offset: 0x0044162C
[Token(Token = "0x60129F3")]
[Address(RVA = "0xBBC940", Offset = "0xBBB740", VA = "0x180BBC940")]
private void EOBBKAOCGHM()
{
if (this.IIJGBIMFJBN.OLGMEEIPCAL && base.OGIBLNIIHDK)
{
DJHELPHHAEN mpcicebjjgc = this.MPCICEBJJGC;
return;
}
}
// Token: 0x060129F4 RID: 76276 RVA: 0x00443460 File Offset: 0x00441660
[Token(Token = "0x60129F4")]
[Address(RVA = "0xBBE440", Offset = "0xBBD240", VA = "0x180BBE440", Slot = "44")]
protected override void PLCGKJBANOM(ushort CPMPEJFMDED, ushort OEAPMLMHLLF)
{
this.AuthorityArmGrenade();
EMPJPPLIPMG oejmnkbjchc = this.OEJMNKBJCHC;
Transform transform = base.transform;
Vector3 vector;
float z = vector.z;
AnimationCurve forceFalloff = this.forceFalloff;
AnimationCurve damageFalloff = this.damageFalloff;
Animator animator = this._animator;
int num = 0;
int feamibaebmf = ProximityMine.FEAMIBAEBMF;
animator.SetBool(feamibaebmf, num != 0);
Animator animator2 = this._animator;
int num2 = 0;
int khkdfmphiee = ProximityMine.KHKDFMPHIEE;
animator2.SetBool(khkdfmphiee, num2 != 0);
Animator animator3 = this._animator;
int akodglojhhl = ProximityMine.AKODGLOJHHL;
animator3.SetBool(akodglojhhl, true);
this.sticky.AuthorityTryDetach();
if (base.OGIBLNIIHDK)
{
MJNLDDCLOGP iijgbimfjbn = this.IIJGBIMFJBN;
float num3 = this.timeAfterDetonationBeforeReset;
iijgbimfjbn.KGFFMEICLNN(num3);
}
}
// Token: 0x060129F5 RID: 76277 RVA: 0x00443524 File Offset: 0x00441724
[Token(Token = "0x60129F5")]
[Address(RVA = "0xBBCA40", Offset = "0xBBB840", VA = "0x180BBCA40")]
private void FEPPGHHHBMF()
{
if (this.IIJGBIMFJBN.OLGMEEIPCAL)
{
this.FLHKMDLECAG();
return;
}
}
// Token: 0x060129F6 RID: 76278 RVA: 0x0044354C File Offset: 0x0044174C
[Token(Token = "0x60129F6")]
[Address(RVA = "0xBBD420", Offset = "0xBBC220", VA = "0x180BBD420", Slot = "30")]
protected override void JJNNAGMBLLH(Player FHDOIBDKGIA, Weapon HCCOBFEJBKC)
{
DJHELPHHAEN mpcicebjjgc = this.MPCICEBJJGC;
PhotonView photonView = base.JDHMIOJKLCK;
DGLOJCGDOGG.OLBPPAPNBFI<AGAJMBPABDL, Weapon, bool, bool, bool> olbppapnbfi = new DGLOJCGDOGG.OLBPPAPNBFI(base.RpcAuthorityHitExplosiveWithWeapon);
AGAJMBPABDL photonPlayer = FHDOIBDKGIA.DBAJDHGDPOL;
Tool tool = this._tool;
bool <BIPMAHKMNKF>k__BackingField = tool.<BIPMAHKMNKF>k__BackingField;
bool <CMPLOJHCLMG>k__BackingField = tool.<CMPLOJHCLMG>k__BackingField;
DJHELPHHAEN mpcicebjjgc2 = this.MPCICEBJJGC;
bool flag;
photonView.RpcAll<AGAJMBPABDL, Weapon, bool, bool, bool>(olbppapnbfi, photonPlayer, HCCOBFEJBKC, <BIPMAHKMNKF>k__BackingField, <CMPLOJHCLMG>k__BackingField, flag);
}
// Token: 0x060129F7 RID: 76279 RVA: 0x004435B4 File Offset: 0x004417B4
[Token(Token = "0x60129F7")]
[Address(RVA = "0xBBCC20", Offset = "0xBBBA20", VA = "0x180BBCC20")]
private bool GODMNDOALFH(GHMDIDJLFMC KNLMJBAKCGF)
{
Transform targetTransform = this._tool.rigidbodyEx.MDKDCJFEBJH;
float y = KNLMJBAKCGF.NKKJICPFILJ.y;
Tool tool = this._tool;
float z = KNLMJBAKCGF.FEDGOFKEGEF.z;
Vector3 vector;
float z2 = vector.z;
RigidbodyEx rigidbodyEx = tool.rigidbodyEx;
Vector3 vector2;
float z3 = vector2.z;
Vector3 vector3;
float z4 = vector3.z;
throw new NullReferenceException();
}
// Token: 0x060129F8 RID: 76280 RVA: 0x0044361C File Offset: 0x0044181C
[Token(Token = "0x60129F8")]
[Address(RVA = "0xBBBC80", Offset = "0xBBAA80", VA = "0x180BBBC80", Slot = "22")]
protected override void DEOLDGEDOGK(Player IEKDDPPNFPF, Player.GAHEJKDCLLE NMKAKHOEMGB, GHMDIDJLFMC KNLMJBAKCGF)
{
for (;;)
{
int num = 0;
bool flag;
if (!flag)
{
break;
}
Transform transform = this.explosionRaycastOrigin;
Collider bodyCollider = IEKDDPPNFPF.body.bodyCollider;
Transform transform2 = this.explosionRaycastOrigin;
Func<Collider, Collider> func = new Func(this.IMGGACHLCIN);
int num2 = 0;
Collider collider;
if (collider != num2)
{
Player player = collider.PKPLHJFDDKE(num2);
int num3 = 0;
if (player != num3)
{
break;
}
}
Transform transform3 = this.explosionRaycastOrigin;
RigidbodyEx rigidbodyEx = IEKDDPPNFPF.head.rigidbodyEx;
Transform transform4 = this.explosionRaycastOrigin;
Func<Collider, Collider> func2 = new Func(this.IMGGACHLCIN);
int num4 = 0;
Collider collider2;
if (collider2 != num4)
{
Player player2 = collider2.PKPLHJFDDKE(num4);
int num5 = 0;
if (player2 != num5)
{
continue;
}
}
IReadOnlyList<PlayerHand> bothHands = IEKDDPPNFPF.BothHands;
if (bothHands != 0)
{
if (num < bothHands)
{
num += num;
if (num == bothHands)
{
goto IL_11D;
}
num++;
}
Transform transform5 = this.explosionRaycastOrigin;
Transform transform6 = this.explosionRaycastOrigin;
Func<Collider, Collider> func3 = new Func(this.IMGGACHLCIN);
int num6 = 0;
Collider collider3;
if (!(collider3 != num6))
{
continue;
}
Player player3 = collider3.PKPLHJFDDKE(num6);
int num7 = 0;
if (!(player3 != num7))
{
continue;
}
IL_11D:
num7 += num7;
}
if (bothHands != 0)
{
}
if (num == 0)
{
goto Block_7;
}
}
return;
Block_7:
throw new NullReferenceException();
}
// Token: 0x060129F9 RID: 76281 RVA: 0x0044377C File Offset: 0x0044197C
[Token(Token = "0x60129F9")]
[Address(RVA = "0xBBC5A0", Offset = "0xBBB3A0", VA = "0x180BBC5A0", Slot = "27")]
protected override void DFCBOEJFFLE(Tool BKKNJFFJBKN, GHMDIDJLFMC KNLMJBAKCGF)
{
bool flag;
if (flag)
{
Transform transform = this.explosionRaycastOrigin;
Transform transform2 = this.explosionRaycastOrigin;
Vector3 vector;
float z = vector.z;
Vector3 vector2;
float z2 = vector2.z;
Vector3 vector3;
float z3 = vector3.z;
Func<Collider, Collider> func = new Func(this.IMGGACHLCIN);
int num = 0;
Collider collider;
if (collider != num)
{
Tool tool = collider.AMKJBLIFHPB(num);
int num2 = 0;
if (tool != num2)
{
}
}
}
}
// Token: 0x060129FA RID: 76282 RVA: 0x004437F4 File Offset: 0x004419F4
[Token(Token = "0x60129FA")]
[Address(RVA = "0xBBD3A0", Offset = "0xBBC1A0", VA = "0x180BBD3A0")]
private Collider IMGGACHLCIN(Collider AGKOGHGNBAE)
{
/*
An exception occurred when decompiling this method (060129FA)
ICSharpCode.Decompiler.DecompilerException: Error decompiling UnityEngine.Collider RecRoom.Tools.Weapons.ProximityMine::IMGGACHLCIN(UnityEngine.Collider)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:Collider(var_0_06, ldfld:Collider(ProximityMine::KONABEHDLNG, ldloc:ProximityMine(this)))
stloc:bool(var_1_0E, call:bool(Object::op_Equality, ldloc:Collider[exp:Object](AGKOGHGNBAE), ldloc:Collider[exp:Object](var_0_06)))
}
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: 0x060129FB RID: 76283 RVA: 0x00443814 File Offset: 0x00441A14
[Token(Token = "0x60129FB")]
[Address(RVA = "0xBBD780", Offset = "0xBBC580", VA = "0x180BBD780", Slot = "29")]
protected override void LPDADONNLLJ(Trap AMPLOOJODLP, GHMDIDJLFMC KNLMJBAKCGF)
{
bool flag;
if (flag)
{
Transform transform = this.explosionRaycastOrigin;
Transform transform2 = this.explosionRaycastOrigin;
Vector3 vector;
float z = vector.z;
Vector3 vector2;
float z2 = vector2.z;
Vector3 vector3;
float z3 = vector3.z;
Func<Collider, Collider> func = new Func(this.IMGGACHLCIN);
int num = 0;
Collider collider;
if (collider != num)
{
Trap trap = collider.ALGNNHDELCG();
int num2 = 0;
if (trap != num2)
{
}
}
}
}
// Token: 0x060129FC RID: 76284 RVA: 0x00443888 File Offset: 0x00441A88
[Token(Token = "0x60129FC")]
[Address(RVA = "0xBBDDF0", Offset = "0xBBCBF0", VA = "0x180BBDDF0")]
private void OnCollisionEnter(Collision HPKICPNGMDJ)
{
if (base.OGIBLNIIHDK)
{
DJHELPHHAEN mpcicebjjgc = this.MPCICEBJJGC;
bool flag;
if (flag && HPKICPNGMDJ.collider.gameObject.KHHDLOKCNHC((IIBIOPCKHGK)((uint)159788032)))
{
Tool tool = HPKICPNGMDJ.collider.AMKJBLIFHPB();
int num = 0;
if (!(tool != num) || tool.OGNBCNBPFCC != OGNBCNBPFCC.PROXIMITY_MINE)
{
Tool tool2 = this._tool;
RigidbodyEx rigidbodyEx = tool2.rigidbodyEx;
Transform transform = tool2.transform;
ContactPoint[] contacts = HPKICPNGMDJ.contacts;
Tool tool3 = this._tool;
RigidbodyEx rigidbodyEx2 = tool3.rigidbodyEx;
Transform transform2 = tool3.transform;
ContactPoint[] contacts2 = HPKICPNGMDJ.contacts;
SimpleSticky simpleSticky = this.sticky;
int num2 = 0;
if (tool != num2)
{
PhotonView photonView = tool.JDHMIOJKLCK;
}
simpleSticky.NMGJPILKAGE();
DJHELPHHAEN mpcicebjjgc2 = this.MPCICEBJJGC;
}
}
}
}
// Token: 0x060129FD RID: 76285 RVA: 0x0044396C File Offset: 0x00441B6C
[Token(Token = "0x60129FD")]
[Address(RVA = "0xBBB7E0", Offset = "0xBBA5E0", VA = "0x180BBB7E0")]
private void BDMCLBBGDEJ(OverlapVolume DKDOBJOOGLC)
{
DJHELPHHAEN mpcicebjjgc = this.MPCICEBJJGC;
if (NetworkedSingletonMonoBehaviour.FFNIFALJLDD)
{
AGAJMBPABDL agajmbpabdl = KKPBCOOONNK.MDMMDPEKICF;
TeamColorRenderer teamColor = this._teamColor;
CGLKOJIMDIH cglkojimdih;
if (cglkojimdih == teamColor.GPPKLFLPDBK && this.FOGJCCOBDHI.IAHDANBDAAM() == 0)
{
return;
}
AGAJMBPABDL agajmbpabdl2 = KKPBCOOONNK.MDMMDPEKICF;
bool flag;
if (!flag)
{
return;
}
}
if (!base.OGIBLNIIHDK)
{
PhotonView photonView = base.JDHMIOJKLCK;
AGAJMBPABDL agajmbpabdl3 = KKPBCOOONNK.MDMMDPEKICF;
photonView.TransferOwnership(agajmbpabdl3);
}
DJHELPHHAEN mpcicebjjgc2 = this.MPCICEBJJGC;
}
// Token: 0x060129FE RID: 76286 RVA: 0x004439F4 File Offset: 0x00441BF4
[Token(Token = "0x60129FE")]
[Address(RVA = "0xBBCE00", Offset = "0xBBBC00", VA = "0x180BBCE00")]
private void HIEMHBHAMGP(OverlapVolume DKDOBJOOGLC, Enemy BPJNEFJBBML)
{
DJHELPHHAEN mpcicebjjgc = this.MPCICEBJJGC;
if (BPJNEFJBBML.OGIBLNIIHDK)
{
if (NetworkedSingletonMonoBehaviour.FFNIFALJLDD)
{
EnemyManager instance = SingletonMonoBehaviour.ONCPNMDGGKG;
CGLKOJIMDIH gppklflpdbk = this._teamColor.GPPKLFLPDBK;
if ((instance.IsAlly(gppklflpdbk, BPJNEFJBBML) && !this.CPBKMMJEFBM) || !BPJNEFJBBML.HAAKEBKCMHJ)
{
return;
}
}
if (!base.OGIBLNIIHDK)
{
PhotonView photonView = base.JDHMIOJKLCK;
AGAJMBPABDL agajmbpabdl = KKPBCOOONNK.MDMMDPEKICF;
photonView.TransferOwnership(agajmbpabdl);
}
DJHELPHHAEN mpcicebjjgc2 = this.MPCICEBJJGC;
}
}
// Token: 0x060129FF RID: 76287 RVA: 0x00443A78 File Offset: 0x00441C78
[Token(Token = "0x60129FF")]
[Address(RVA = "0xBBCF90", Offset = "0xBBBD90", VA = "0x180BBCF90")]
protected void HJDGFONNKKJ(bool CFICOGKHLAE)
{
this.detonationTriggerEnemyOverlapVolume.OFKIHGPJHJI(CFICOGKHLAE);
this.detonationTriggerOverlapVolume.OFKIHGPJHJI(CFICOGKHLAE);
}
// Token: 0x06012A00 RID: 76288 RVA: 0x00443AA0 File Offset: 0x00441CA0
[Token(Token = "0x6012A00")]
[Address(RVA = "0xBBCFD0", Offset = "0xBBBDD0", VA = "0x180BBCFD0", Slot = "49")]
protected override PooledParticle IIOKHIGFFLE()
{
PooledParticle pooledParticle = base.IIOKHIGFFLE();
int num = 0;
if (pooledParticle != num)
{
ParticleEventListener componentInChildren = pooledParticle.GetComponentInChildren<ParticleEventListener>();
int num2 = 0;
if (componentInChildren != num2)
{
ParticleEventListener.DAAKAAKAAEJ daakaakaaej = new ParticleEventListener.DAAKAAKAAEJ(this.IKAMLOFEGAH);
componentInChildren.IEKIBIIEMFA += daakaakaaej;
this.IKFHBEBEOEP = componentInChildren;
}
}
Animator animator = this._animator;
int akodglojhhl = ProximityMine.AKODGLOJHHL;
animator.SetBool(akodglojhhl, true);
return pooledParticle;
}
// Token: 0x06012A01 RID: 76289 RVA: 0x00443B10 File Offset: 0x00441D10
[Token(Token = "0x6012A01")]
[Address(RVA = "0xBBD140", Offset = "0xBBBF40", VA = "0x180BBD140")]
private void IKAMLOFEGAH(ParticleEventListener EJGEPGKEBBG, Collider HPKICPNGMDJ, IEnumerable<ParticleCollisionEvent> GCBFDBDBADG)
{
int num;
do
{
num = 0;
if (GCBFDBDBADG == 0)
{
break;
}
num += num;
num++;
ImpactDecal impactDecal = this.impactDecalPrefab;
Component component;
GameObject gameObject = component.gameObject;
impactDecal += impactDecal;
}
while (num != 0);
}
// Token: 0x06012A02 RID: 76290 RVA: 0x00443B50 File Offset: 0x00441D50
[Token(Token = "0x6012A02")]
[Address(RVA = "0xBBADB0", Offset = "0xBB9BB0", VA = "0x180BBADB0")]
protected void ADCJHFALHFP()
{
List<ILINODKFHEO> list = new List();
OMKPHDBNLKH<CreationObjectSettingBooleanUIControl, bool>.DEDABHKCIBG <>9__58_ = ProximityMine.<>c.<>9__58_0;
if (<>9__58_ == 0)
{
ProximityMine.<>c.<>9__58_0 = (MakerPenPaletteConfigScreen editableUIFlow) => editableUIFlow.DefaultBoolUIControlPrefab;
}
OMKPHDBNLKH<CreationObjectSettingBooleanUIControl, bool>.OHINDOLFNMP ohindolfnmp = new OMKPHDBNLKH.OHINDOLFNMP(this.AOGHJIIHILD);
CPNMFOKDBKM cpnmfokdbkm = new CPNMFOKDBKM(<>9__58_, ohindolfnmp, 100);
list.Add(cpnmfokdbkm);
this._tool.creationObject.AddConfigurableSettings(list);
CreationObject creationObject = this._tool.creationObject;
DOPNALIMPNA[] array = new DOPNALIMPNA[1];
Func<bool> func = new Func(this.HCKONMMHEAG);
Action<bool> action = new Action(this.MOOKEDAFEHN);
int num = 0;
int num2 = 0;
string text;
string text2;
DHCINNFLBBA dhcinnflbba = ONOKJPIMIIP.LBJPOFMMGGP(func, action, num2, num, text, text2);
if (dhcinnflbba != 0)
{
}
array[0] = dhcinnflbba;
ECJBHJOCKHL ecjbhjockhl = creationObject.AddFoldoutMenu("Paint Mine", 99, array);
}
// Token: 0x06012A03 RID: 76291 RVA: 0x00443C24 File Offset: 0x00441E24
[Token(Token = "0x6012A03")]
[Address(RVA = "0xBBCDB0", Offset = "0xBBBBB0", VA = "0x180BBCDB0")]
private bool HCKONMMHEAG()
{
return this.FOGJCCOBDHI.IAHDANBDAAM() != null;
}
// Token: 0x06012A04 RID: 76292 RVA: 0x00443C44 File Offset: 0x00441E44
[Token(Token = "0x6012A04")]
[Address(RVA = "0xBBDB40", Offset = "0xBBC940", VA = "0x180BBDB40")]
private void MOOKEDAFEHN(bool ONGBFDACHHG)
{
KLLMCPFPIIE<bool> fogjccobdhi = this.FOGJCCOBDHI;
}
// Token: 0x06012A05 RID: 76293 RVA: 0x00443C60 File Offset: 0x00441E60
[Token(Token = "0x6012A05")]
[Address(RVA = "0xBBCB60", Offset = "0xBBB960", VA = "0x180BBCB60")]
private void FLHKMDLECAG()
{
this._tool.<JGABDFBGDEB>k__BackingField.ResumeAutomaticCleanup(this);
if (base.OGIBLNIIHDK)
{
KLLMCPFPIIE<bool> gnjjdpihege = this.GNJJDPIHEGE;
int num = 0;
gnjjdpihege.BDJFGEJFPPO(num);
this.sticky.AuthorityTryDetach();
this._tool.<JGABDFBGDEB>k__BackingField.AuthorityQueueForceCleanup(true);
return;
}
}
// Token: 0x1700340E RID: 13326
// (get) Token: 0x06012A06 RID: 76294 RVA: 0x00443CBC File Offset: 0x00441EBC
[Token(Token = "0x1700340E")]
public bool JBMFJOBFJHP
{
[Token(Token = "0x6012A06")]
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "51")]
get
{
}
}
// Token: 0x06012A07 RID: 76295 RVA: 0x00443CCC File Offset: 0x00441ECC
[Token(Token = "0x6012A07")]
[Address(RVA = "0xBBC8C0", Offset = "0xBBB6C0", VA = "0x180BBC8C0", Slot = "52")]
public void DeserializeFrom(KPNDFONGDGF HFBJGCHOANH)
{
KLLMCPFPIIE<bool> fogjccobdhi = this.FOGJCCOBDHI;
}
// Token: 0x06012A08 RID: 76296 RVA: 0x00443CE8 File Offset: 0x00441EE8
[Token(Token = "0x6012A08")]
[Address(RVA = "0xBBE680", Offset = "0xBBD480", VA = "0x180BBE680", Slot = "53")]
public void SerializeTo(ref PDEKIHFJKHJ IABNDBNHMKF, ref MKNCHKCCIHK NHFINJNIPGK, StringBuilder BIPOIFGEMGB)
{
LOBHOOCGAEA lobhoocgaea = new LOBHOOCGAEA();
bool flag = this.FOGJCCOBDHI.IAHDANBDAAM() != null;
}
// Token: 0x06012A09 RID: 76297 RVA: 0x00443D20 File Offset: 0x00441F20
[Token(Token = "0x6012A09")]
[Address(RVA = "0xBBEAB0", Offset = "0xBBD8B0", VA = "0x180BBEAB0")]
public ProximityMine()
{
this.explosionRadius = 5f;
this.explosionForce = 30f;
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.explosionTimeout = 5f;
Color green = Color.green;
EMPJPPLIPMG empjpplipmg = new EMPJPPLIPMG();
this.OEJMNKBJCHC = empjpplipmg;
this.CBBHLEBEMKM = true;
List<AGAJMBPABDL> list = new List();
this.GOFBMKPDJEM = list;
this.AutomaticallyArmOnNextRelease = true;
base..ctor();
}
// Token: 0x06012A0B RID: 76299 RVA: 0x00443E20 File Offset: 0x00442020
[Token(Token = "0x6012A0B")]
[Address(RVA = "0xBBB180", Offset = "0xBB9F80", VA = "0x180BBB180")]
[CompilerGenerated]
private void AOGHJIIHILD(CreationObjectSettingBooleanUIControl GCCLEJOGCCE)
{
string text = GCCLEJOGCCE.PropertyDescription.text;
Func<bool> func = new Func(this.HCKONMMHEAG);
Action<bool> action = new Action(this.MOOKEDAFEHN);
}
// Token: 0x0400C043 RID: 49219
[Token(Token = "0x400C043")]
private static readonly int FEAMIBAEBMF = Animator.StringToHash("Arming");
// Token: 0x0400C044 RID: 49220
[Token(Token = "0x400C044")]
private static readonly int KHKDFMPHIEE = Animator.StringToHash("Armed");
// Token: 0x0400C045 RID: 49221
[Token(Token = "0x400C045")]
private static readonly int AKODGLOJHHL = Animator.StringToHash("Detonated");
// Token: 0x0400C046 RID: 49222
[FieldOffset(Offset = "0x2D8")]
[Token(Token = "0x400C046")]
[SerializeField]
[DDPIINEJFMD(JIBDPHMGEGO.Self, false, false, false)]
[Header("Proximity Mine")]
private SimpleSticky sticky;
// Token: 0x0400C047 RID: 49223
[FieldOffset(Offset = "0x2E0")]
[Token(Token = "0x400C047")]
[SerializeField]
private float armingTime = 1f;
// Token: 0x0400C048 RID: 49224
[FieldOffset(Offset = "0x2E4")]
[Token(Token = "0x400C048")]
[SerializeField]
private bool defaultTriggeredByTeammates;
// Token: 0x0400C049 RID: 49225
[FieldOffset(Offset = "0x2E8")]
[Token(Token = "0x400C049")]
[SerializeField]
private float triggeringTime = 0.5f;
// Token: 0x0400C04A RID: 49226
[FieldOffset(Offset = "0x2F0")]
[Token(Token = "0x400C04A")]
[SerializeField]
private OverlapVolume detonationTriggerOverlapVolume;
// Token: 0x0400C04B RID: 49227
[FieldOffset(Offset = "0x2F8")]
[Token(Token = "0x400C04B")]
[SerializeField]
private EnemyOverlapVolume detonationTriggerEnemyOverlapVolume;
// Token: 0x0400C04C RID: 49228
[FieldOffset(Offset = "0x300")]
[Token(Token = "0x400C04C")]
[SerializeField]
private float timeAfterDetonationBeforeReset = 3f;
// Token: 0x0400C04D RID: 49229
[FieldOffset(Offset = "0x308")]
[Token(Token = "0x400C04D")]
[SerializeField]
private Transform explosionRaycastOrigin;
// Token: 0x0400C04E RID: 49230
[FieldOffset(Offset = "0x310")]
[Token(Token = "0x400C04E")]
[SerializeField]
[Header("Mine Audio")]
private RecRoomAudioClip armingAudioClip;
// Token: 0x0400C04F RID: 49231
[FieldOffset(Offset = "0x318")]
[Token(Token = "0x400C04F")]
[SerializeField]
private RecRoomAudioClip armedAudioClip;
// Token: 0x0400C050 RID: 49232
[FieldOffset(Offset = "0x320")]
[Token(Token = "0x400C050")]
[SerializeField]
private RecRoomAudioClip triggeredAudioClip;
// Token: 0x0400C051 RID: 49233
[FieldOffset(Offset = "0x328")]
[Token(Token = "0x400C051")]
private ParticleEventListener IKFHBEBEOEP;
// Token: 0x0400C052 RID: 49234
[FieldOffset(Offset = "0x330")]
[Token(Token = "0x400C052")]
private Collider KONABEHDLNG;
// Token: 0x0400C053 RID: 49235
[FieldOffset(Offset = "0x338")]
[Token(Token = "0x400C053")]
private KLLMCPFPIIE<bool> GNJJDPIHEGE;
// Token: 0x0400C054 RID: 49236
[FieldOffset(Offset = "0x340")]
[Token(Token = "0x400C054")]
private KLLMCPFPIIE<bool> FOGJCCOBDHI;
// Token: 0x02002B4E RID: 11086
[Token(Token = "0x2002B4E")]
private enum KJEHBHENLCC
{
// Token: 0x0400C056 RID: 49238
[Token(Token = "0x400C056")]
LAUNCHED = 3,
// Token: 0x0400C057 RID: 49239
[Token(Token = "0x400C057")]
ARMING,
// Token: 0x0400C058 RID: 49240
[Token(Token = "0x400C058")]
TRIGGERED
}
}
}
@@ -0,0 +1,220 @@
using System;
using Cpp2IlInjected;
using RecRoom.Core.Combat;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B6E RID: 11118
[Token(Token = "0x2002B6E")]
public class SpreadRangedWeapon : RangedWeapon
{
// Token: 0x06012B43 RID: 76611 RVA: 0x0044ADC4 File Offset: 0x00448FC4
[Token(Token = "0x6012B43")]
[Address(RVA = "0xBBF140", Offset = "0xBBDF40", VA = "0x180BBF140", Slot = "13")]
protected override void Awake()
{
base.Awake();
if (this.trackBulletGroups)
{
SpreadRangedWeapon.SpreadTarget[] array = this.spreadTargets;
bool flag = this.limitOneImpactPerTarget;
int length;
FBJJBALDIAB fbjjbaldiab = new FBJJBALDIAB(length, flag);
length = array.Length;
this.HLMEEKJIEEL = fbjjbaldiab;
}
SpreadRangedWeapon.SpreadTarget[] array2 = this.spreadTargets;
int num = 0;
if (num < array2.Length)
{
Transform end = array2[num].End;
int num2 = 0;
if (end != num2)
{
Transform parent = this.spreadTargets[num].End.transform.parent;
Transform transform = this.spreadTargetEndRoot;
if (parent != transform)
{
Transform transform2 = this.spreadTargets[num].End.transform;
Transform transform3 = this.spreadTargetEndRoot;
transform2.SetParent(transform3, true);
}
}
SpreadRangedWeapon.SpreadTarget[] array3 = this.spreadTargets;
num++;
}
}
// Token: 0x06012B44 RID: 76612 RVA: 0x0044AEB0 File Offset: 0x004490B0
[Token(Token = "0x6012B44")]
[Address(RVA = "0xBBF380", Offset = "0xBBE180", VA = "0x180BBF380", Slot = "42")]
protected override void OICJPFPBIIK(Vector3 DDHPAFKBMON, Quaternion IGPENJBJADK, Vector3 NHAOMEMANJA, float LFDFFDCJAAD, bool FLKHKHDBIOH, byte LNPHJIHHNPN)
{
int num = 0;
float z = NHAOMEMANJA.z;
float z2 = DDHPAFKBMON.z;
if ((this.trackBulletGroups ? 1 : 0) != num)
{
AAEGKOIININ aaegkoiinin = this.HLMEEKJIEEL.AFLJHNNFBMM();
}
Vector3 vector;
float z3 = vector.z;
float z4 = Vector3.right.z;
Vector3 vector2;
float z5 = vector2.z;
Vector3 vector3;
float z6 = vector3.z;
float num2 = this.maxDistance;
Transform transform = this.spreadTargetEndRoot;
SpreadRangedWeapon.SpreadTarget[] array = this.spreadTargets;
if (num < array.Length)
{
SpreadRangedWeapon.SpreadTarget spreadTarget = array[num];
float minCharge = spreadTarget.minCharge;
float z7 = DDHPAFKBMON.z;
Transform start = spreadTarget.Start;
int num3 = 0;
if (start != num3)
{
SpreadRangedWeapon.SpreadTarget[] array2 = this.spreadTargets;
Transform barrelTransform = this.barrelTransform;
Transform start2 = array2[num].Start;
Vector3 vector4;
float z8 = vector4.z;
Vector3 vector5;
float z9 = vector5.z;
}
Transform end = this.spreadTargets[num].End;
int num4 = 0;
float z10;
if (end != num4)
{
SpreadRangedWeapon.SpreadTarget[] array3 = this.spreadTargets;
Transform barrelTransform2 = this.barrelTransform;
Transform end2 = array3[num].End;
Vector3 vector6;
z10 = vector6.z;
}
Bullet bulletOverride = this.spreadTargets[num].bulletOverride;
if (z10 != 0f)
{
}
SpreadRangedWeapon.SpreadTarget[] array4 = this.spreadTargets;
num++;
}
}
// Token: 0x06012B45 RID: 76613 RVA: 0x0044B010 File Offset: 0x00449210
[Token(Token = "0x6012B45")]
[Address(RVA = "0xBBFB30", Offset = "0xBBE930", VA = "0x180BBFB30")]
private void OnDrawGizmosSelected()
{
SpreadRangedWeapon.SpreadTarget[] array = this.spreadTargets;
if (array != 0)
{
int num = 0;
int length = array.Length;
if (num < length)
{
SpreadRangedWeapon.SpreadTarget spreadTarget = array[num];
Transform end = spreadTarget.End;
int num2 = 0;
if (!(end == num2))
{
Transform start = spreadTarget.Start;
int num3 = 0;
if (start != num3)
{
Transform start2 = spreadTarget.Start;
}
Transform barrelTransform = this.barrelTransform;
float z = start.position.z;
Color yellow = Color.yellow;
Transform end2 = spreadTarget.End;
Color white = Color.white;
Color yellow2 = Color.yellow;
}
num++;
}
}
}
// Token: 0x06012B46 RID: 76614 RVA: 0x0044B0B4 File Offset: 0x004492B4
[Token(Token = "0x6012B46")]
[Address(RVA = "0xBBFDA0", Offset = "0xBBEBA0", VA = "0x180BBFDA0")]
public SpreadRangedWeapon()
{
}
// Token: 0x0400C15D RID: 49501
[FieldOffset(Offset = "0x2F0")]
[Token(Token = "0x400C15D")]
[SerializeField]
[Header("Spread")]
protected float maxDistance = 3f;
// Token: 0x0400C15E RID: 49502
[FieldOffset(Offset = "0x2F8")]
[Token(Token = "0x400C15E")]
[SerializeField]
protected Transform spreadTargetEndRoot;
// Token: 0x0400C15F RID: 49503
[FieldOffset(Offset = "0x300")]
[Token(Token = "0x400C15F")]
[SerializeField]
protected SpreadRangedWeapon.SpreadTarget[] spreadTargets;
// Token: 0x0400C160 RID: 49504
[FieldOffset(Offset = "0x308")]
[Token(Token = "0x400C160")]
[SerializeField]
[Header("Bullet Tracking")]
protected bool trackBulletGroups;
// Token: 0x0400C161 RID: 49505
[FieldOffset(Offset = "0x309")]
[Token(Token = "0x400C161")]
[SerializeField]
protected bool limitOneImpactPerTarget;
// Token: 0x0400C162 RID: 49506
[FieldOffset(Offset = "0x310")]
[Token(Token = "0x400C162")]
protected FBJJBALDIAB HLMEEKJIEEL;
// Token: 0x02002B6F RID: 11119
[Token(Token = "0x2002B6F")]
[Serializable]
protected class SpreadTarget
{
// Token: 0x06012B47 RID: 76615 RVA: 0x0044B0D4 File Offset: 0x004492D4
[Token(Token = "0x6012B47")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public SpreadTarget()
{
}
// Token: 0x0400C163 RID: 49507
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400C163")]
public Transform Start;
// Token: 0x0400C164 RID: 49508
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400C164")]
public Transform End;
// Token: 0x0400C165 RID: 49509
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400C165")]
public Bullet bulletOverride;
// Token: 0x0400C166 RID: 49510
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400C166")]
public float minCharge;
}
}
}
@@ -0,0 +1,85 @@
using System;
using Cpp2IlInjected;
using RecRoom.Core.Combat;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B67 RID: 11111
[Token(Token = "0x2002B67")]
public class SwivelWeapon : SwivelTool
{
// Token: 0x1700342E RID: 13358
// (get) Token: 0x06012AF8 RID: 76536 RVA: 0x004497E4 File Offset: 0x004479E4
// (set) Token: 0x06012AF9 RID: 76537 RVA: 0x004497F8 File Offset: 0x004479F8
[Token(Token = "0x1700342E")]
private RangedWeapon CGNIAKFLDOJ
{
[Token(Token = "0x6012AF8")]
[Address(RVA = "0x408890", Offset = "0x407690", VA = "0x180408890")]
get;
[Token(Token = "0x6012AF9")]
[Address(RVA = "0x403B30", Offset = "0x402930", VA = "0x180403B30")]
set;
}
// Token: 0x06012AFA RID: 76538 RVA: 0x0044980C File Offset: 0x00447A0C
[Token(Token = "0x6012AFA")]
[Address(RVA = "0xBBFE00", Offset = "0xBBEC00", VA = "0x180BBFE00", Slot = "4")]
protected override void Awake()
{
base.Awake();
RangedWeapon component = this._tool.GetComponent<RangedWeapon>();
this.<AIGPPFIKJND>k__BackingField = component;
int num = 0;
if (!(component == num))
{
Tool tool = this._handle._tool;
Action<Tool> action;
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.BPJDFPACLMK(tool.PostReleaseEvent, action);
tool.PostReleaseEvent = mfbglihgcgo;
return;
}
GameObject gameObject = base.gameObject;
Debug.LogError(string.Format("{0} has a SwivelWeapon script on an object that has no RangedWeapon script on it.", gameObject));
int num2 = 0;
base.enabled = num2 != 0;
}
// Token: 0x06012AFB RID: 76539 RVA: 0x0044988C File Offset: 0x00447A8C
[Token(Token = "0x6012AFB")]
[Address(RVA = "0xBC0050", Offset = "0xBBEE50", VA = "0x180BC0050", Slot = "5")]
protected override void MMEHEMLPJLN(Tool JFPKAMMMHLB)
{
base.MMEHEMLPJLN(JFPKAMMMHLB);
if (this.<AIGPPFIKJND>k__BackingField.OGIBLNIIHDK)
{
RangedWeapon rangedWeapon = this.<AIGPPFIKJND>k__BackingField;
AGAJMBPABDL owner = JFPKAMMMHLB.FAGBHOMBNBP;
int num = 0;
rangedWeapon.PJGAFFNGBMO = num;
}
}
// Token: 0x06012AFC RID: 76540 RVA: 0x004498CC File Offset: 0x00447ACC
[Token(Token = "0x6012AFC")]
[Address(RVA = "0xBBFF70", Offset = "0xBBED70", VA = "0x180BBFF70", Slot = "6")]
protected override void MDJANFJPKBF(Tool JFPKAMMMHLB)
{
base.MDJANFJPKBF(JFPKAMMMHLB);
if (this.<AIGPPFIKJND>k__BackingField.OGIBLNIIHDK)
{
RangedWeapon rangedWeapon = this.<AIGPPFIKJND>k__BackingField;
ENDNBHFKNFL bmhmbmhnlil = ENDNBHFKNFL.BMHMBMHNLIL;
rangedWeapon.PJGAFFNGBMO = bmhmbmhnlil;
}
}
// Token: 0x06012AFD RID: 76541 RVA: 0x00449908 File Offset: 0x00447B08
[Token(Token = "0x6012AFD")]
[Address(RVA = "0x752FB0", Offset = "0x751DB0", VA = "0x180752FB0")]
public SwivelWeapon()
{
}
}
}
@@ -0,0 +1,887 @@
using System;
using System.Collections;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
using RecRoom.Core.Combat;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B70 RID: 11120
[Token(Token = "0x2002B70")]
public class WeaponReloader : WeaponAccessory
{
// Token: 0x17003434 RID: 13364
// (get) Token: 0x06012B48 RID: 76616 RVA: 0x0044B0E8 File Offset: 0x004492E8
[Token(Token = "0x17003434")]
private int DGBHNIGIJLO
{
[Token(Token = "0x6012B48")]
[Address(RVA = "0xBC5080", Offset = "0xBC3E80", VA = "0x180BC5080")]
get
{
int num = this.pullTickCount;
return num + 1;
}
}
// Token: 0x17003435 RID: 13365
// (get) Token: 0x06012B49 RID: 76617 RVA: 0x0044B104 File Offset: 0x00449304
// (set) Token: 0x06012B4A RID: 76618 RVA: 0x0044B118 File Offset: 0x00449318
[Token(Token = "0x17003435")]
public bool FAMGOEKHBGF
{
[Token(Token = "0x6012B49")]
[Address(RVA = "0xBC6B10", Offset = "0xBC5910", VA = "0x180BC6B10")]
get;
[Token(Token = "0x6012B4A")]
[Address(RVA = "0xBC6B20", Offset = "0xBC5920", VA = "0x180BC6B20")]
set;
}
// Token: 0x06012B4B RID: 76619 RVA: 0x0044B12C File Offset: 0x0044932C
[Token(Token = "0x6012B4B")]
[Address(RVA = "0xBC4920", Offset = "0xBC3720", VA = "0x180BC4920", Slot = "5")]
protected override void Awake()
{
base.Awake();
Tool tool = this._tool;
int num = 0;
if (tool != num)
{
this._tool.IgnorePickupDirection = true;
Tool tool2 = this._tool;
Tool.OGLAJAFKBMN oglajafkbmn = new Tool.OGLAJAFKBMN(this.LPLIIBBAAOI);
tool2.AddCustomPickupCondition(oglajafkbmn);
Tool tool3 = this._tool;
MFBGLIHGCGO<Tool> postPickupEvent = tool3.PostPickupEvent;
Action<Tool> action = new Action(this.HAAIALDMMEL);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.BPJDFPACLMK(postPickupEvent, action);
tool3.PostPickupEvent = mfbglihgcgo;
Tool tool4 = this._tool;
MFBGLIHGCGO<Tool> postReleaseEvent = tool4.PostReleaseEvent;
Action<Tool> action2 = new Action(this.OIOCPLEKMEK);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.BPJDFPACLMK(postReleaseEvent, action2);
tool4.PostReleaseEvent = mfbglihgcgo2;
Tool tool5 = this._tool;
MFBGLIHGCGO<Tool> postAttachEvent = tool5.PostAttachEvent;
Action<Tool> action3 = new Action(this.BLKAKANNEJP);
MFBGLIHGCGO<Tool> mfbglihgcgo3 = MFBGLIHGCGO.BPJDFPACLMK(postAttachEvent, action3);
tool5.PostAttachEvent = mfbglihgcgo3;
Tool tool6 = this._tool;
EAHPNACBLDD<Tool, Vector3, Quaternion, Vector3, bool> postResetEvent = tool6.PostResetEvent;
Action<Tool, Vector3, Quaternion, Vector3, bool> action4 = new Action(this.LBODGLNOABB);
EAHPNACBLDD<Tool, Vector3, Quaternion, Vector3, bool> eahpnacbldd = EAHPNACBLDD.BPJDFPACLMK(postResetEvent, action4);
tool6.PostResetEvent = eahpnacbldd;
this._tool.rigidbodyEx.AddKinematic(this);
this._tool.ReleaseWithVelocity = false;
}
Weapon parentWeapon = this.parentWeapon;
int num2 = 0;
if (!(parentWeapon == num2))
{
Tool tool7 = this.parentWeapon._tool;
Action action5 = new Action(this.OICGKLMBONC);
tool7.NBBKCDDPBPD += action5;
Weapon parentWeapon2 = this.parentWeapon;
Action action6 = new Action(this.DONOOFPPPOB);
parentWeapon2.DONOOFPPPOB += action6;
Weapon parentWeapon3 = this.parentWeapon;
Action action7 = new Action(this.MIKJDLDPIEP);
parentWeapon3.OFOLKCFPBEN += action7;
Transform transform = this.parentWeapon.transform;
Transform transform2 = this.emptyClipTransform;
Vector3 vector;
float z = vector.z;
Weapon parentWeapon4 = this.parentWeapon;
Vector3 vector2;
float z2 = vector2.z;
this.JNJIAPLPIGB.z = z2;
Transform transform3 = parentWeapon4.transform;
Transform transform4 = this.emptyClipTransform;
DelayedRangedWeaponTrigger delayedRangedWeaponTrigger = this.delayedWeaponTrigger;
int num3 = 0;
if (!(delayedRangedWeaponTrigger != num3))
{
goto IL_263;
}
DelayedRangedWeaponTrigger delayedRangedWeaponTrigger2 = this.delayedWeaponTrigger;
DelayedRangedWeaponTrigger.IOGLIBAPLLG ioglibapllg = new DelayedRangedWeaponTrigger.IOGLIBAPLLG(this.GDFPOLCEBCJ);
delayedRangedWeaponTrigger2.ABHIBNPKAIN += ioglibapllg;
DelayedRangedWeaponTrigger delayedRangedWeaponTrigger3 = this.delayedWeaponTrigger;
DelayedRangedWeaponTrigger.IOGLIBAPLLG ioglibapllg2 = new DelayedRangedWeaponTrigger.IOGLIBAPLLG(this.PBBPDKFNPKG);
delayedRangedWeaponTrigger3.JFPBBAHBCPN += ioglibapllg2;
}
Debug.LogError(base.name + " is missing weapon reference.");
IL_263:
Transform transform5 = this.fullClipTransform;
Transform transform6 = this.emptyClipTransform;
Vector3 vector3;
float z3 = vector3.z;
Vector3 vector4;
float z4 = vector4.z;
Vector3 vector5;
float z5 = vector5.z;
this.HABNDFDLPCM.z = z5;
Tool tool8 = this._tool;
float num4;
this.MKFDOOGDODK = num4;
float uniformScale = tool8.rigidbodyEx.MKDHFENOFDO;
bool flag = this.animateParentWeaponReloader;
this.<BABGDIBCNEO>k__BackingField = flag;
this.GPAHAFBLMIG = uniformScale;
}
// Token: 0x06012B4C RID: 76620 RVA: 0x0044B410 File Offset: 0x00449610
[Token(Token = "0x6012B4C")]
[Address(RVA = "0xBC6250", Offset = "0xBC5050", VA = "0x180BC6250", Slot = "7")]
protected override void OnDestroy()
{
base.OnDestroy();
Tool tool = this._tool;
int num = 0;
if (tool != num)
{
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> postPickupEvent = tool2.PostPickupEvent;
Action<Tool> action = new Action(this.HAAIALDMMEL);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.GMNMHGMFGOL(postPickupEvent, action);
tool2.PostPickupEvent = mfbglihgcgo;
Tool tool3 = this._tool;
MFBGLIHGCGO<Tool> postReleaseEvent = tool3.PostReleaseEvent;
Action<Tool> action2 = new Action(this.OIOCPLEKMEK);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.GMNMHGMFGOL(postReleaseEvent, action2);
tool3.PostReleaseEvent = mfbglihgcgo2;
Tool tool4 = this._tool;
MFBGLIHGCGO<Tool> postAttachEvent = tool4.PostAttachEvent;
Action<Tool> action3 = new Action(this.BLKAKANNEJP);
MFBGLIHGCGO<Tool> mfbglihgcgo3 = MFBGLIHGCGO.GMNMHGMFGOL(postAttachEvent, action3);
tool4.PostAttachEvent = mfbglihgcgo3;
Tool tool5 = this._tool;
EAHPNACBLDD<Tool, Vector3, Quaternion, Vector3, bool> postResetEvent = tool5.PostResetEvent;
Action<Tool, Vector3, Quaternion, Vector3, bool> action4 = new Action(this.LBODGLNOABB);
EAHPNACBLDD<Tool, Vector3, Quaternion, Vector3, bool> eahpnacbldd = EAHPNACBLDD.GMNMHGMFGOL(postResetEvent, action4);
tool5.PostResetEvent = eahpnacbldd;
}
Weapon parentWeapon = this.parentWeapon;
int num2 = 0;
if (parentWeapon != num2)
{
Tool tool6 = this.parentWeapon._tool;
Action action5 = new Action(this.OICGKLMBONC);
tool6.NBBKCDDPBPD -= action5;
Weapon parentWeapon2 = this.parentWeapon;
Action action6 = new Action(this.MIKJDLDPIEP);
parentWeapon2.OFOLKCFPBEN -= action6;
Weapon parentWeapon3 = this.parentWeapon;
Action action7 = new Action(this.DONOOFPPPOB);
parentWeapon3.DONOOFPPPOB -= action7;
}
DelayedRangedWeaponTrigger delayedRangedWeaponTrigger = this.delayedWeaponTrigger;
int num3 = 0;
if (delayedRangedWeaponTrigger != num3)
{
DelayedRangedWeaponTrigger delayedRangedWeaponTrigger2 = this.delayedWeaponTrigger;
DelayedRangedWeaponTrigger.IOGLIBAPLLG ioglibapllg = new DelayedRangedWeaponTrigger.IOGLIBAPLLG(this.GDFPOLCEBCJ);
delayedRangedWeaponTrigger2.ABHIBNPKAIN -= ioglibapllg;
DelayedRangedWeaponTrigger delayedRangedWeaponTrigger3 = this.delayedWeaponTrigger;
DelayedRangedWeaponTrigger.IOGLIBAPLLG ioglibapllg2 = new DelayedRangedWeaponTrigger.IOGLIBAPLLG(this.PBBPDKFNPKG);
delayedRangedWeaponTrigger3.JFPBBAHBCPN -= ioglibapllg2;
}
}
// Token: 0x06012B4D RID: 76621 RVA: 0x0044B5D4 File Offset: 0x004497D4
[Token(Token = "0x6012B4D")]
[Address(RVA = "0xBC67D0", Offset = "0xBC55D0", VA = "0x180BC67D0", Slot = "6")]
protected override void Start()
{
RigidbodyPickup rigidbodyPickup = this._tool.rigidbodyPickup;
if (rigidbodyPickup == 0)
{
}
Weapon parentWeapon = this.parentWeapon;
this.GNFGOLPHEAI = rigidbodyPickup;
RigidbodyPickup rigidbodyPickup2 = parentWeapon._tool.rigidbodyPickup;
PlungerRigidbodyPickup gnfgolpheai = this.GNFGOLPHEAI;
float z = this.JNJIAPLPIGB.z;
gnfgolpheai.ConstraintOffsetPosition.z = z;
PlungerRigidbodyPickup gnfgolpheai2 = this.GNFGOLPHEAI;
Quaternion gicdoidpckn = this.GICDOIDPCKN;
gnfgolpheai2.ConstraintOffsetRotation = gicdoidpckn;
PlungerRigidbodyPickup gnfgolpheai3 = this.GNFGOLPHEAI;
float z2 = this.HABNDFDLPCM.z;
gnfgolpheai3.ConstraintLocalAxis.z = z2;
this.GNFGOLPHEAI.MinimumConstraintDistance = 0f;
PlungerRigidbodyPickup gnfgolpheai4 = this.GNFGOLPHEAI;
float mkfdoogdodk = this.MKFDOOGDODK;
gnfgolpheai4.MaximumConstraintDistance = mkfdoogdodk;
this.MIKJDLDPIEP();
this.KBMDJLKAPNO();
if (!this._tool.<BIPMAHKMNKF>k__BackingField)
{
Quaternion gicdoidpckn2 = this.GICDOIDPCKN;
float z3 = this.JNJIAPLPIGB.z;
}
base.Start();
}
// Token: 0x06012B4E RID: 76622 RVA: 0x0044B6D0 File Offset: 0x004498D0
[Token(Token = "0x6012B4E")]
[Address(RVA = "0xBC65F0", Offset = "0xBC53F0", VA = "0x180BC65F0")]
private void OnEnable()
{
if (!this._tool.<BIPMAHKMNKF>k__BackingField)
{
Quaternion gicdoidpckn = this.GICDOIDPCKN;
float z = this.JNJIAPLPIGB.z;
}
}
// Token: 0x06012B4F RID: 76623 RVA: 0x0044B704 File Offset: 0x00449904
[Token(Token = "0x6012B4F")]
[Address(RVA = "0xBC5B90", Offset = "0xBC4990", VA = "0x180BC5B90")]
private void KBMDJLKAPNO()
{
if (this.AENELEOCFPJ != 0)
{
}
Weapon parentWeapon = this.parentWeapon;
int num = 0;
if (parentWeapon != num && (this.parentWeapon._tool.FNFNLDBILFE || !this.parentWeapon._tool.rigidbodyEx.IsSleeping()))
{
Action action = new Action(this.JJGODHDABOH);
IDisposable disposable = this.OPEMIFENIJM(action);
this.AENELEOCFPJ = disposable;
return;
}
this.AENELEOCFPJ = (ulong)0L;
}
// Token: 0x06012B50 RID: 76624 RVA: 0x0044B784 File Offset: 0x00449984
[Token(Token = "0x6012B50")]
[Address(RVA = "0xBC5890", Offset = "0xBC4690", VA = "0x180BC5890")]
private void JJGODHDABOH()
{
if (this._tool.OGIBLNIIHDK && this._tool.FNFNLDBILFE)
{
PlungerRigidbodyPickup gnfgolpheai = this.GNFGOLPHEAI;
int num = 0;
if (gnfgolpheai != num)
{
PlungerRigidbodyPickup gnfgolpheai2 = this.GNFGOLPHEAI;
float num2 = this.GPAHAFBLMIG;
float currentDistance = gnfgolpheai2.CurrentDistance;
float num3 = Mathf.InverseLerp((float)0, num2, currentDistance);
int num4 = this.pullTickCount;
num2 = num3;
num4++;
this.ICJOIHKKABO(num2);
this.NLFNFGNNBNF = num2;
if (gnfgolpheai != 0 && !this.AFHFMMDPEFB)
{
if (this.ReloadsAutomatically)
{
this.parentWeapon.ReloadAmmunition();
}
this.GADODEBHGIA();
}
this.AFHFMMDPEFB = gnfgolpheai != null;
}
}
if (this.<BABGDIBCNEO>k__BackingField)
{
if (this.reloaderType == WeaponReloader.OFIHDMNINPD.PULL)
{
float magazineAmmunitionNormalized = this.parentWeapon.CGOPGIAIOIK;
}
PlungerRigidbodyPickup gnfgolpheai3 = this.GNFGOLPHEAI;
int num5 = 0;
float num6;
float num7;
if (gnfgolpheai3 != num5 && this._tool.FNFNLDBILFE && !this._tool.<LPPHFOBBGNL>k__BackingField)
{
PlungerRigidbodyPickup gnfgolpheai4 = this.GNFGOLPHEAI;
num6 = this.GPAHAFBLMIG;
num7 = gnfgolpheai4.CurrentDistance;
num6 = Mathf.InverseLerp((float)0, num6, num7);
}
Weapon parentWeapon = this.parentWeapon;
num7 = num6;
int johdlnmalma = WeaponReloader.JOHDLNMALMA;
parentWeapon.SetAnimationFloat(johdlnmalma, num7);
}
}
// Token: 0x06012B51 RID: 76625 RVA: 0x0044B8D4 File Offset: 0x00449AD4
[Token(Token = "0x6012B51")]
[Address(RVA = "0xBC60E0", Offset = "0xBC4EE0", VA = "0x180BC60E0")]
private void OICGKLMBONC()
{
float uniformScale = this._tool.rigidbodyEx.MKDHFENOFDO;
this.GPAHAFBLMIG = uniformScale;
}
// Token: 0x06012B52 RID: 76626 RVA: 0x0044B900 File Offset: 0x00449B00
[Token(Token = "0x6012B52")]
[Address(RVA = "0xBC5320", Offset = "0xBC4120", VA = "0x180BC5320")]
private void HAAIALDMMEL(Tool EGFEJGHDNAI)
{
float gpahafblmig = this.GPAHAFBLMIG;
PlungerRigidbodyPickup gnfgolpheai = this.GNFGOLPHEAI;
this.AFHFMMDPEFB = false;
int num = 0;
if (gnfgolpheai != num)
{
PlungerRigidbodyPickup gnfgolpheai2 = this.GNFGOLPHEAI;
}
int num2 = 0;
float num3 = Mathf.InverseLerp((float)0, gpahafblmig, (float)num2);
int num4 = this.pullTickCount;
num4++;
Weapon parentWeapon = this.parentWeapon;
this.NLFNFGNNBNF = num3;
parentWeapon.<FAGFHDDIHHD>k__BackingField = true;
}
// Token: 0x06012B53 RID: 76627 RVA: 0x0044B970 File Offset: 0x00449B70
[Token(Token = "0x6012B53")]
[Address(RVA = "0xBC6130", Offset = "0xBC4F30", VA = "0x180BC6130")]
private void OIOCPLEKMEK(Tool EGFEJGHDNAI)
{
this.parentWeapon.<FAGFHDDIHHD>k__BackingField = false;
PlungerRigidbodyPickup gnfgolpheai = this.GNFGOLPHEAI;
int num = 0;
if (gnfgolpheai != num)
{
PlungerRigidbodyPickup gnfgolpheai2 = this.GNFGOLPHEAI;
int num2 = 0;
this.HMHIMJBPKJF = num2;
this.GNFGOLPHEAI.CurrentDistance = (float)num2;
}
if (this._tool.OGIBLNIIHDK)
{
Action action = new Action(this.LNHANACJAIF);
Coroutine coroutine = this.CHAAKFJCLIH(action);
}
}
// Token: 0x06012B54 RID: 76628 RVA: 0x0044B9E4 File Offset: 0x00449BE4
[Token(Token = "0x6012B54")]
[Address(RVA = "0xBC4F70", Offset = "0xBC3D70", VA = "0x180BC4F70")]
private void BLKAKANNEJP(Tool EGFEJGHDNAI)
{
if (this.parentWeapon._tool.<BIPMAHKMNKF>k__BackingField && this._tool.OGIBLNIIHDK && base.isActiveAndEnabled)
{
WeaponReloader.FADPLMHEKKG fadplmhekkg;
fadplmhekkg.System.IDisposable.Dispose();
float num;
fadplmhekkg.returnDistance = num;
fadplmhekkg.<>1__state = (int)((ulong)0L);
fadplmhekkg.<>4__this = this;
Coroutine coroutine = base.StartCoroutine(fadplmhekkg);
}
}
// Token: 0x06012B55 RID: 76629 RVA: 0x0044BA48 File Offset: 0x00449C48
[Token(Token = "0x6012B55")]
[Address(RVA = "0xBC5CC0", Offset = "0xBC4AC0", VA = "0x180BC5CC0")]
private void LBODGLNOABB(Tool EGFEJGHDNAI, Vector3 BNMOCBJEEPN, Quaternion LPHCCEOHNIN, Vector3 GMMJHABHDHE, bool ACPOOMGHPKJ)
{
object[] array = new object[1];
if (this != 0)
{
}
array[0] = this;
Debug.LogErrorFormat("Resetting reloader subtool {0}. Subtools generally shouldn't be manually reset.", array);
Quaternion gicdoidpckn = this.GICDOIDPCKN;
float z = this.JNJIAPLPIGB.z;
}
// Token: 0x06012B56 RID: 76630 RVA: 0x0044BA8C File Offset: 0x00449C8C
[Token(Token = "0x6012B56")]
[Address(RVA = "0xBC51A0", Offset = "0xBC3FA0", VA = "0x180BC51A0", Slot = "10")]
protected override void FAFIPDEIOCK(Tool EGFEJGHDNAI)
{
base.FAFIPDEIOCK(EGFEJGHDNAI);
this.MIKJDLDPIEP();
}
// Token: 0x06012B57 RID: 76631 RVA: 0x0044BAA8 File Offset: 0x00449CA8
[Token(Token = "0x6012B57")]
[Address(RVA = "0xBC5090", Offset = "0xBC3E90", VA = "0x180BC5090", Slot = "8")]
protected override void CFODJFFPDFP(Tool EGFEJGHDNAI)
{
base.CFODJFFPDFP(EGFEJGHDNAI);
this.KBMDJLKAPNO();
}
// Token: 0x06012B58 RID: 76632 RVA: 0x0044BAC4 File Offset: 0x00449CC4
[Token(Token = "0x6012B58")]
[Address(RVA = "0xBC5190", Offset = "0xBC3F90", VA = "0x180BC5190", Slot = "9")]
protected override void ELJGGDGLEHE(RigidbodyEx PJBJCJPOOGL)
{
this.KBMDJLKAPNO();
}
// Token: 0x06012B59 RID: 76633 RVA: 0x0044BAD8 File Offset: 0x00449CD8
[Token(Token = "0x6012B59")]
[Address(RVA = "0xBC5EE0", Offset = "0xBC4CE0", VA = "0x180BC5EE0")]
private void MIKJDLDPIEP()
{
if (base.gameObject.activeInHierarchy)
{
PlungerRigidbodyPickup gnfgolpheai = this.GNFGOLPHEAI;
int num = 0;
if (gnfgolpheai != num)
{
PlungerRigidbodyPickup gnfgolpheai2 = this.GNFGOLPHEAI;
int num2 = 0;
if (gnfgolpheai2 != num2)
{
WeaponReloader.OFIHDMNINPD ofihdmninpd = this.reloaderType;
if (ofihdmninpd != WeaponReloader.OFIHDMNINPD.PULL)
{
if (ofihdmninpd != WeaponReloader.OFIHDMNINPD.PUMP)
{
goto IL_AE;
}
this.GNFGOLPHEAI.MinimumConstraintDistance = 0f;
}
Weapon parentWeapon = this.parentWeapon;
PlungerRigidbodyPickup gnfgolpheai3 = this.GNFGOLPHEAI;
float mkfdoogdodk = this.MKFDOOGDODK;
float magazineAmmunitionNormalized = parentWeapon.CGOPGIAIOIK;
float num3 = Mathf.Lerp((float)0, mkfdoogdodk, magazineAmmunitionNormalized);
gnfgolpheai3.MinimumConstraintDistance = num3;
PlungerRigidbodyPickup gnfgolpheai4 = this.GNFGOLPHEAI;
float mkfdoogdodk2 = this.MKFDOOGDODK;
gnfgolpheai4.MaximumConstraintDistance = mkfdoogdodk2;
IL_AE:
PlungerRigidbodyPickup gnfgolpheai5 = this.GNFGOLPHEAI;
float num4 = this.extraPullDistance;
gnfgolpheai5.MaximumConstraintDistance = num4;
}
if (!this._tool.FNFNLDBILFE)
{
this.ECFPALFHBHG(true);
}
}
}
}
// Token: 0x06012B5A RID: 76634 RVA: 0x0044BBC8 File Offset: 0x00449DC8
[Token(Token = "0x6012B5A")]
[Address(RVA = "0xBC50B0", Offset = "0xBC3EB0", VA = "0x180BC50B0")]
private void DONOOFPPPOB()
{
Coroutine mjeplmpjlil = this.MJEPLMPJLIL;
if (mjeplmpjlil != 0)
{
base.StopCoroutine(mjeplmpjlil);
}
this.MJEPLMPJLIL = (ulong)0L;
WeaponReloader.CIJEKHDBNIA cijekhdbnia;
cijekhdbnia.System.IDisposable.Dispose();
cijekhdbnia.<>1__state = (int)((ulong)0L);
cijekhdbnia.<>4__this = this;
Coroutine coroutine = base.StartCoroutine(cijekhdbnia);
this.MJEPLMPJLIL = coroutine;
}
// Token: 0x06012B5B RID: 76635 RVA: 0x0044BC18 File Offset: 0x00449E18
[Token(Token = "0x6012B5B")]
[Address(RVA = "0xBC5230", Offset = "0xBC4030", VA = "0x180BC5230")]
private void GADODEBHGIA()
{
Coroutine mjeplmpjlil = this.MJEPLMPJLIL;
if (mjeplmpjlil != 0)
{
base.StopCoroutine(mjeplmpjlil);
this.MJEPLMPJLIL = (ulong)0L;
return;
}
this.MJEPLMPJLIL = (ulong)0L;
}
// Token: 0x06012B5C RID: 76636 RVA: 0x0044BC4C File Offset: 0x00449E4C
[Token(Token = "0x6012B5C")]
[Address(RVA = "0xBC5DE0", Offset = "0xBC4BE0", VA = "0x180BC5DE0")]
private IEnumerator LDIOLMPCPKO()
{
/*
An exception occurred when decompiling this method (06012B5C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.IEnumerator RecRoom.Tools.Weapons.WeaponReloader::LDIOLMPCPKO()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
call:void(CIJEKHDBNIA::System.IDisposable.Dispose, ldloc:CIJEKHDBNIA(var_0))
stfld:int32(CIJEKHDBNIA::<>1__state, ldloc:CIJEKHDBNIA(var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](0)))
stfld:WeaponReloader(CIJEKHDBNIA::<>4__this, ldloc:CIJEKHDBNIA(var_0), ldloc:WeaponReloader(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: 0x06012B5D RID: 76637 RVA: 0x0044BC70 File Offset: 0x00449E70
[Token(Token = "0x6012B5D")]
[Address(RVA = "0xBC5140", Offset = "0xBC3F40", VA = "0x180BC5140")]
private void ECFPALFHBHG(bool CDFHDACBFKN)
{
Quaternion gicdoidpckn = this.GICDOIDPCKN;
float z = this.JNJIAPLPIGB.z;
}
// Token: 0x06012B5E RID: 76638 RVA: 0x0044BC90 File Offset: 0x00449E90
[Token(Token = "0x6012B5E")]
[Address(RVA = "0xBC51C0", Offset = "0xBC3FC0", VA = "0x180BC51C0")]
private IEnumerator FKDLDMKBFEK(float HMHIMJBPKJF)
{
/*
An exception occurred when decompiling this method (06012B5E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.IEnumerator RecRoom.Tools.Weapons.WeaponReloader::FKDLDMKBFEK(System.Single)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
call:void(FADPLMHEKKG::System.IDisposable.Dispose, ldloc:FADPLMHEKKG(var_0))
stfld:float32(FADPLMHEKKG::returnDistance, ldloc:FADPLMHEKKG(var_0), ldloc:float32(HMHIMJBPKJF))
stfld:int32(FADPLMHEKKG::<>1__state, ldloc:FADPLMHEKKG(var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](0)))
stfld:WeaponReloader(FADPLMHEKKG::<>4__this, ldloc:FADPLMHEKKG(var_0), ldloc:WeaponReloader(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: 0x06012B5F RID: 76639 RVA: 0x0044BCBC File Offset: 0x00449EBC
[Token(Token = "0x6012B5F")]
[Address(RVA = "0xBC5440", Offset = "0xBC4240", VA = "0x180BC5440")]
private void HOGCECKPMPB()
{
if (this.<BABGDIBCNEO>k__BackingField)
{
if (this.reloaderType == WeaponReloader.OFIHDMNINPD.PULL)
{
float magazineAmmunitionNormalized = this.parentWeapon.CGOPGIAIOIK;
}
PlungerRigidbodyPickup gnfgolpheai = this.GNFGOLPHEAI;
int num = 0;
float num2;
float num3;
if (gnfgolpheai != num && this._tool.FNFNLDBILFE && !this._tool.<LPPHFOBBGNL>k__BackingField)
{
PlungerRigidbodyPickup gnfgolpheai2 = this.GNFGOLPHEAI;
num2 = this.GPAHAFBLMIG;
num3 = gnfgolpheai2.CurrentDistance;
num2 = Mathf.InverseLerp((float)0, num2, num3);
}
Weapon parentWeapon = this.parentWeapon;
num3 = num2;
int johdlnmalma = WeaponReloader.JOHDLNMALMA;
parentWeapon.SetAnimationFloat(johdlnmalma, num3);
}
}
// Token: 0x06012B60 RID: 76640 RVA: 0x0044BD60 File Offset: 0x00449F60
[Token(Token = "0x6012B60")]
[Address(RVA = "0xBC6670", Offset = "0xBC5470", VA = "0x180BC6670")]
private void PPCFMBJFAGG()
{
PlungerRigidbodyPickup gnfgolpheai = this.GNFGOLPHEAI;
int num = 0;
if (gnfgolpheai != num)
{
WeaponReloader.OFIHDMNINPD ofihdmninpd = this.reloaderType;
if (ofihdmninpd != WeaponReloader.OFIHDMNINPD.PULL)
{
if (ofihdmninpd != WeaponReloader.OFIHDMNINPD.PUMP)
{
goto IL_82;
}
this.GNFGOLPHEAI.MinimumConstraintDistance = 0f;
}
Weapon parentWeapon = this.parentWeapon;
PlungerRigidbodyPickup gnfgolpheai2 = this.GNFGOLPHEAI;
float mkfdoogdodk = this.MKFDOOGDODK;
float magazineAmmunitionNormalized = parentWeapon.CGOPGIAIOIK;
float num2 = Mathf.Lerp((float)0, mkfdoogdodk, magazineAmmunitionNormalized);
gnfgolpheai2.MinimumConstraintDistance = num2;
PlungerRigidbodyPickup gnfgolpheai3 = this.GNFGOLPHEAI;
float mkfdoogdodk2 = this.MKFDOOGDODK;
gnfgolpheai3.MaximumConstraintDistance = mkfdoogdodk2;
IL_82:
PlungerRigidbodyPickup gnfgolpheai4 = this.GNFGOLPHEAI;
float num3 = this.extraPullDistance;
gnfgolpheai4.MaximumConstraintDistance = num3;
}
}
// Token: 0x06012B61 RID: 76641 RVA: 0x0044BE10 File Offset: 0x0044A010
[Token(Token = "0x6012B61")]
[Address(RVA = "0xBC5270", Offset = "0xBC4070", VA = "0x180BC5270")]
private void GDFPOLCEBCJ(DelayedRangedWeaponTrigger OOONNFPBMKC)
{
if (this.<BABGDIBCNEO>k__BackingField)
{
float num = this.reloaderAnimationBlendWhileFiring;
Weapon parentWeapon = this.parentWeapon;
float num2 = this.reloaderAnimationBlendWhileFiring;
int johdlnmalma = WeaponReloader.JOHDLNMALMA;
parentWeapon.SetAnimationFloat(johdlnmalma, num2);
this.<BABGDIBCNEO>k__BackingField = false;
}
}
// Token: 0x06012B62 RID: 76642 RVA: 0x0044BE5C File Offset: 0x0044A05C
[Token(Token = "0x6012B62")]
[Address(RVA = "0xBC6660", Offset = "0xBC5460", VA = "0x180BC6660")]
private void PBBPDKFNPKG(DelayedRangedWeaponTrigger OOONNFPBMKC)
{
bool flag = this.animateParentWeaponReloader;
this.<BABGDIBCNEO>k__BackingField = flag;
}
// Token: 0x06012B63 RID: 76643 RVA: 0x0044BE78 File Offset: 0x0044A078
[Token(Token = "0x6012B63")]
[Address(RVA = "0xBC5E90", Offset = "0xBC4C90", VA = "0x180BC5E90")]
private bool LPLIIBBAAOI(Tool NBHJPDBHDHB, Player JKPGNHBEMOK, Vector3 JEDLNAEEMEN, bool GEJJBENPHJG)
{
return this.parentWeapon.KKCCBKKKAKF != 0 || this.parentWeapon.hasInfiniteReserveAmmunition;
}
// Token: 0x06012B64 RID: 76644 RVA: 0x0044BEA8 File Offset: 0x0044A0A8
[Token(Token = "0x6012B64")]
[Address(RVA = "0xBC55C0", Offset = "0xBC43C0", VA = "0x180BC55C0")]
private void ICJOIHKKABO(float GKBMLDJDEEE)
{
if (this._tool.FNFNLDBILFE)
{
Weapon parentWeapon = this.parentWeapon;
int num = 0;
if (!(parentWeapon == num) && this.parentWeapon._tool.FNFNLDBILFE)
{
RecRoomAudioClip recRoomAudioClip = this.pullTickAudio;
if (recRoomAudioClip != 0)
{
float num2 = GKBMLDJDEEE * 0.45f;
recRoomAudioClip.pitchShift = num2;
Transform transform = base.transform;
int num3 = 0;
int num4 = 0;
SFXAudioSource sfxaudioSource = AudioManager.Play3DSFX(recRoomAudioClip, transform, num4, num3);
}
Tool tool = this.parentWeapon._tool;
if (tool.<BIPMAHKMNKF>k__BackingField)
{
PlayerHand <PBCNKLKCIHJ>k__BackingField = tool.<PBCNKLKCIHJ>k__BackingField;
int num5 = 0;
if (<PBCNKLKCIHJ>k__BackingField != num5)
{
PlayerHand <PBCNKLKCIHJ>k__BackingField2 = this.parentWeapon._tool.<PBCNKLKCIHJ>k__BackingField;
Tool tool2 = this._tool;
if (tool2.<BIPMAHKMNKF>k__BackingField)
{
PlayerHand <PBCNKLKCIHJ>k__BackingField3 = tool2.<PBCNKLKCIHJ>k__BackingField;
int num6 = 0;
if (<PBCNKLKCIHJ>k__BackingField3 != num6)
{
PlayerHand <PBCNKLKCIHJ>k__BackingField4 = this._tool.<PBCNKLKCIHJ>k__BackingField;
this._tool.<PBCNKLKCIHJ>k__BackingField.Vibrate(20, 0.5f);
this.parentWeapon._tool.<PBCNKLKCIHJ>k__BackingField.Vibrate(20, 0.5f);
}
}
}
}
}
}
}
// Token: 0x06012B65 RID: 76645 RVA: 0x0044BFE0 File Offset: 0x0044A1E0
[Token(Token = "0x6012B65")]
[Address(RVA = "0xBC6A10", Offset = "0xBC5810", VA = "0x180BC6A10")]
public WeaponReloader()
{
float z = Vector3.zero.z;
this.JNJIAPLPIGB.z = z;
Quaternion identity = Quaternion.identity;
float z2 = Vector3.zero.z;
this.HABNDFDLPCM.z = z2;
base..ctor();
}
// Token: 0x06012B67 RID: 76647 RVA: 0x0044C080 File Offset: 0x0044A280
[Token(Token = "0x6012B67")]
[Address(RVA = "0xBC5E40", Offset = "0xBC4C40", VA = "0x180BC5E40")]
[CompilerGenerated]
private void LNHANACJAIF()
{
Quaternion gicdoidpckn = this.GICDOIDPCKN;
float z = this.JNJIAPLPIGB.z;
}
// Token: 0x0400C167 RID: 49511
[Token(Token = "0x400C167")]
private const float BMILAAPFFNO = 0.99f;
// Token: 0x0400C168 RID: 49512
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x400C168")]
[SerializeField]
[Header("Reloader")]
private WeaponReloader.OFIHDMNINPD reloaderType = (WeaponReloader.OFIHDMNINPD)((ulong)1L);
// Token: 0x0400C169 RID: 49513
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x400C169")]
[SerializeField]
private Transform emptyClipTransform;
// Token: 0x0400C16A RID: 49514
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x400C16A")]
[SerializeField]
private Transform fullClipTransform;
// Token: 0x0400C16B RID: 49515
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x400C16B")]
[SerializeField]
private float extraPullDistance = 0.05f;
// Token: 0x0400C16C RID: 49516
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x400C16C")]
[SerializeField]
[Header("Feedback")]
private RecRoomAudioClip pullTickAudio;
// Token: 0x0400C16D RID: 49517
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x400C16D")]
[SerializeField]
private int pullTickCount = (int)((ulong)10L);
// Token: 0x0400C16E RID: 49518
[FieldOffset(Offset = "0x94")]
[Token(Token = "0x400C16E")]
[SerializeField]
private float returnToConstraintSpeed = 20f;
// Token: 0x0400C16F RID: 49519
[FieldOffset(Offset = "0x98")]
[Token(Token = "0x400C16F")]
[SerializeField]
[Header("Weapon Animation")]
private bool animateParentWeaponReloader;
// Token: 0x0400C170 RID: 49520
[FieldOffset(Offset = "0x9C")]
[Token(Token = "0x400C170")]
[SerializeField]
private float reloaderAnimationBlendWhileFiring = -1f;
// Token: 0x0400C171 RID: 49521
[Token(Token = "0x400C171")]
private static readonly int JOHDLNMALMA = Animator.StringToHash("ReloaderBlend");
// Token: 0x0400C172 RID: 49522
[Token(Token = "0x400C172")]
private const float ADLODEJNHEB = 0.45f;
// Token: 0x0400C173 RID: 49523
[FieldOffset(Offset = "0xA0")]
[Token(Token = "0x400C173")]
[NonSerialized]
public bool ReloadsAutomatically = true;
// Token: 0x0400C174 RID: 49524
[FieldOffset(Offset = "0xA8")]
[Token(Token = "0x400C174")]
[SerializeField]
[OCIDFHDICIP(JIBDPHMGEGO.SelfAndParent, false, false, false)]
private DelayedRangedWeaponTrigger delayedWeaponTrigger;
// Token: 0x0400C175 RID: 49525
[FieldOffset(Offset = "0xB0")]
[Token(Token = "0x400C175")]
private PlungerRigidbodyPickup GNFGOLPHEAI;
// Token: 0x0400C176 RID: 49526
[FieldOffset(Offset = "0xB8")]
[Token(Token = "0x400C176")]
private Vector3 JNJIAPLPIGB;
// Token: 0x0400C177 RID: 49527
[FieldOffset(Offset = "0xC4")]
[Token(Token = "0x400C177")]
private Quaternion GICDOIDPCKN;
// Token: 0x0400C178 RID: 49528
[FieldOffset(Offset = "0xD4")]
[Token(Token = "0x400C178")]
private Vector3 HABNDFDLPCM;
// Token: 0x0400C179 RID: 49529
[FieldOffset(Offset = "0xE0")]
[Token(Token = "0x400C179")]
private float MKFDOOGDODK;
// Token: 0x0400C17A RID: 49530
[FieldOffset(Offset = "0xE4")]
[Token(Token = "0x400C17A")]
private float GPAHAFBLMIG;
// Token: 0x0400C17B RID: 49531
[FieldOffset(Offset = "0xE8")]
[Token(Token = "0x400C17B")]
private bool AFHFMMDPEFB;
// Token: 0x0400C17C RID: 49532
[FieldOffset(Offset = "0xEC")]
[Token(Token = "0x400C17C")]
private float NLFNFGNNBNF;
// Token: 0x0400C17D RID: 49533
[FieldOffset(Offset = "0xF0")]
[Token(Token = "0x400C17D")]
private float? HMHIMJBPKJF;
// Token: 0x0400C17E RID: 49534
[FieldOffset(Offset = "0xF8")]
[Token(Token = "0x400C17E")]
private IDisposable AENELEOCFPJ;
// Token: 0x0400C180 RID: 49536
[FieldOffset(Offset = "0x108")]
[Token(Token = "0x400C180")]
private Coroutine MJEPLMPJLIL;
// Token: 0x02002B71 RID: 11121
[Token(Token = "0x2002B71")]
private enum OFIHDMNINPD
{
// Token: 0x0400C182 RID: 49538
[Token(Token = "0x400C182")]
PUMP,
// Token: 0x0400C183 RID: 49539
[Token(Token = "0x400C183")]
PULL
}
}
}
@@ -0,0 +1,220 @@
using System;
using Cpp2IlInjected;
using RecRoom.Core.Combat;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B74 RID: 11124
[Token(Token = "0x2002B74")]
public class WeaponStabilizationGrip : WeaponAccessory
{
// Token: 0x06012B74 RID: 76660 RVA: 0x0044C378 File Offset: 0x0044A578
[Token(Token = "0x6012B74")]
[Address(RVA = "0xBC6B30", Offset = "0xBC5930", VA = "0x180BC6B30", Slot = "5")]
protected override void Awake()
{
base.Awake();
Tool tool = this._tool;
int num = 0;
if (tool != num)
{
this._tool.IgnorePickupDirection = true;
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> postPickupEvent = tool2.PostPickupEvent;
Action<Tool> action = new Action(this.HAAIALDMMEL);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.BPJDFPACLMK(postPickupEvent, action);
tool2.PostPickupEvent = mfbglihgcgo;
Tool tool3 = this._tool;
MFBGLIHGCGO<Tool> postReleaseEvent = tool3.PostReleaseEvent;
Action<Tool> action2 = new Action(this.OIOCPLEKMEK);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.BPJDFPACLMK(postReleaseEvent, action2);
tool3.PostReleaseEvent = mfbglihgcgo2;
Tool tool4 = this._tool;
EAHPNACBLDD<Tool, Vector3, Quaternion, Vector3, bool> postResetEvent = tool4.PostResetEvent;
Action<Tool, Vector3, Quaternion, Vector3, bool> action3 = new Action(this.LBODGLNOABB);
EAHPNACBLDD<Tool, Vector3, Quaternion, Vector3, bool> eahpnacbldd = EAHPNACBLDD.BPJDFPACLMK(postResetEvent, action3);
tool4.PostResetEvent = eahpnacbldd;
}
}
// Token: 0x06012B75 RID: 76661 RVA: 0x0044C448 File Offset: 0x0044A648
[Token(Token = "0x6012B75")]
[Address(RVA = "0xBC7430", Offset = "0xBC6230", VA = "0x180BC7430", Slot = "6")]
protected override void Start()
{
RigidbodyPickup rigidbodyPickup = this.parentWeapon._tool.rigidbodyPickup;
if (rigidbodyPickup == 0)
{
}
this.BJHBHGEIIHN = rigidbodyPickup;
int num = 0;
if (!(rigidbodyPickup == num))
{
StabilizedRigidbodyPickup bjhbhgeiihn = this.BJHBHGEIIHN;
Action action = new Action(this.ILGINDIODEP);
bjhbhgeiihn.DHHHLAHLBGH += action;
RigidbodyPickup rigidbodyPickup2 = this._tool.rigidbodyPickup;
if (rigidbodyPickup2 == 0)
{
}
this.POICOHHEPON = rigidbodyPickup2;
StabilizedRigidbodyPickup bjhbhgeiihn2 = this.BJHBHGEIIHN;
PlungerRigidbodyPickup poicohhepon = this.POICOHHEPON;
float z = this.KNHHAPILJGN.z;
poicohhepon.ConstraintOffsetPosition.z = z;
PlungerRigidbodyPickup poicohhepon2 = this.POICOHHEPON;
Quaternion nnjnbdpdafo = this.NNJNBDPDAFO;
poicohhepon2.ConstraintOffsetRotation = nnjnbdpdafo;
PlungerRigidbodyPickup poicohhepon3 = this.POICOHHEPON;
float z2 = Vector3.forward.z;
poicohhepon3.ConstraintLocalAxis.z = z2;
this.POICOHHEPON.MinimumConstraintDistance = 0f;
this.POICOHHEPON.MaximumConstraintDistance = 0f;
if (!this._tool.<BIPMAHKMNKF>k__BackingField)
{
base.NNPBKEIEMHL();
}
base.Start();
return;
}
Debug.LogError(this.parentWeapon.name + "missing stabilizer rigidbody pickup.");
}
// Token: 0x06012B76 RID: 76662 RVA: 0x0044C580 File Offset: 0x0044A780
[Token(Token = "0x6012B76")]
[Address(RVA = "0x7C90A0", Offset = "0x7C7EA0", VA = "0x1807C90A0")]
private void OnEnable()
{
if (!this._tool.<BIPMAHKMNKF>k__BackingField)
{
base.NNPBKEIEMHL();
return;
}
}
// Token: 0x06012B77 RID: 76663 RVA: 0x0044C5A8 File Offset: 0x0044A7A8
[Token(Token = "0x6012B77")]
[Address(RVA = "0xBC7230", Offset = "0xBC6030", VA = "0x180BC7230", Slot = "7")]
protected override void OnDestroy()
{
base.OnDestroy();
Tool tool = this._tool;
int num = 0;
if (tool != num)
{
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> postPickupEvent = tool2.PostPickupEvent;
Action<Tool> action = new Action(this.HAAIALDMMEL);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.GMNMHGMFGOL(postPickupEvent, action);
tool2.PostPickupEvent = mfbglihgcgo;
Tool tool3 = this._tool;
MFBGLIHGCGO<Tool> postReleaseEvent = tool3.PostReleaseEvent;
Action<Tool> action2 = new Action(this.OIOCPLEKMEK);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.GMNMHGMFGOL(postReleaseEvent, action2);
tool3.PostReleaseEvent = mfbglihgcgo2;
Tool tool4 = this._tool;
EAHPNACBLDD<Tool, Vector3, Quaternion, Vector3, bool> postResetEvent = tool4.PostResetEvent;
Action<Tool, Vector3, Quaternion, Vector3, bool> action3 = new Action(this.LBODGLNOABB);
EAHPNACBLDD<Tool, Vector3, Quaternion, Vector3, bool> eahpnacbldd = EAHPNACBLDD.GMNMHGMFGOL(postResetEvent, action3);
tool4.PostResetEvent = eahpnacbldd;
}
StabilizedRigidbodyPickup bjhbhgeiihn = this.BJHBHGEIIHN;
int num2 = 0;
if (bjhbhgeiihn != num2)
{
StabilizedRigidbodyPickup bjhbhgeiihn2 = this.BJHBHGEIIHN;
Action action4 = new Action(this.ILGINDIODEP);
bjhbhgeiihn2.DHHHLAHLBGH -= action4;
}
}
// Token: 0x06012B78 RID: 76664 RVA: 0x0044C6A4 File Offset: 0x0044A8A4
[Token(Token = "0x6012B78")]
[Address(RVA = "0xBC6CD0", Offset = "0xBC5AD0", VA = "0x180BC6CD0")]
private void HAAIALDMMEL(Tool EGFEJGHDNAI)
{
PlayerHand <PBCNKLKCIHJ>k__BackingField = this._tool.<PBCNKLKCIHJ>k__BackingField;
int num = 0;
if (!(<PBCNKLKCIHJ>k__BackingField == num))
{
PlayerHand <PBCNKLKCIHJ>k__BackingField2 = this._tool.<PBCNKLKCIHJ>k__BackingField;
StabilizedRigidbodyPickup bjhbhgeiihn = this.BJHBHGEIIHN;
RigidbodyEx rigidbodyEx = <PBCNKLKCIHJ>k__BackingField2._rigidbodyEx;
bjhbhgeiihn.CMOCJKKIDOF = rigidbodyEx;
Transform targetTransform = this.parentTool.<PBCNKLKCIHJ>k__BackingField._rigidbodyEx.MDKDCJFEBJH;
PlayerHand <PBCNKLKCIHJ>k__BackingField3 = this.parentTool.<PBCNKLKCIHJ>k__BackingField;
this.BJHBHGEIIHN.StabilizedRigidbodyOffsetFromPickup.z = targetTransform;
StabilizedRigidbodyPickup bjhbhgeiihn2 = this.BJHBHGEIIHN;
Transform transform = bjhbhgeiihn2.transform;
StabilizedRigidbodyPickup bjhbhgeiihn3 = this.BJHBHGEIIHN;
Vector3 stabilizerPosition = bjhbhgeiihn2.OCHGHGKKIJK;
Vector3 vector;
float z = vector.z;
bjhbhgeiihn2.StabilizerOffsetPosition.z = z;
StabilizedRigidbodyPickup bjhbhgeiihn4 = this.BJHBHGEIIHN;
Vector3 forward = Vector3.forward;
return;
}
Debug.LogError("No HolderHand set in WeaponStabilizationGrip.OnPostPickup");
throw new NullReferenceException();
}
// Token: 0x06012B79 RID: 76665 RVA: 0x0044C780 File Offset: 0x0044A980
[Token(Token = "0x6012B79")]
[Address(RVA = "0xBC71B0", Offset = "0xBC5FB0", VA = "0x180BC71B0")]
private void OIOCPLEKMEK(Tool EGFEJGHDNAI)
{
StabilizedRigidbodyPickup bjhbhgeiihn = this.BJHBHGEIIHN;
int num = 0;
bjhbhgeiihn.CMOCJKKIDOF = num;
Action action = new Action(base.NNPBKEIEMHL);
Coroutine coroutine = this.CHAAKFJCLIH(action);
}
// Token: 0x06012B7A RID: 76666 RVA: 0x0044C7B8 File Offset: 0x0044A9B8
[Token(Token = "0x6012B7A")]
[Address(RVA = "0xBC70E0", Offset = "0xBC5EE0", VA = "0x180BC70E0")]
private void LBODGLNOABB(Tool EGFEJGHDNAI, Vector3 BNMOCBJEEPN, Quaternion LPHCCEOHNIN, Vector3 GMMJHABHDHE, bool ACPOOMGHPKJ)
{
object[] array = new object[1];
if (this != 0)
{
}
array[0] = this;
Debug.LogErrorFormat("Resetting stabilization subtool {0}. Subtools generally shouldn't be manually reset.", array);
base.NNPBKEIEMHL();
}
// Token: 0x06012B7B RID: 76667 RVA: 0x0044C7F0 File Offset: 0x0044A9F0
[Token(Token = "0x6012B7B")]
[Address(RVA = "0xBC7030", Offset = "0xBC5E30", VA = "0x180BC7030")]
private void ILGINDIODEP()
{
if (this._tool.FNFNLDBILFE && this._tool.OGIBLNIIHDK)
{
Tool tool = this._tool;
OKIMOMGKKDH ekjclgjfign = OKIMOMGKKDH.EKJCLGJFIGN;
tool.IKEGONLJBPP = ekjclgjfign;
return;
}
}
// Token: 0x06012B7C RID: 76668 RVA: 0x0044C834 File Offset: 0x0044AA34
[Token(Token = "0x6012B7C")]
[Address(RVA = "0xBC7700", Offset = "0xBC6500", VA = "0x180BC7700")]
public WeaponStabilizationGrip()
{
}
// Token: 0x0400C18F RID: 49551
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x400C18F")]
private StabilizedRigidbodyPickup BJHBHGEIIHN;
// Token: 0x0400C190 RID: 49552
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x400C190")]
private PlungerRigidbodyPickup POICOHHEPON;
}
}
@@ -0,0 +1,1465 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using Photon.Pun;
using RecRoom.Activities;
using RecRoom.Activities.Quest;
using RecRoom.Core.AI;
using RecRoom.Core.Combat;
using RecRoom.Core.DataStructures;
using RecRoom.Core.GameManagement;
using RecRoom.Core.Pools;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B53 RID: 11091
[Token(Token = "0x2002B53")]
public class Whip : ExplosiveRangedWeapon
{
// Token: 0x17003410 RID: 13328
// (get) Token: 0x06012A22 RID: 76322 RVA: 0x004446CC File Offset: 0x004428CC
// (set) Token: 0x06012A23 RID: 76323 RVA: 0x004446E8 File Offset: 0x004428E8
[Token(Token = "0x17003410")]
public Whip.GLLIDCDABOO POGFKNAHJBK
{
[Token(Token = "0x6012A22")]
[Address(RVA = "0xBCC980", Offset = "0xBCB780", VA = "0x180BCC980")]
get
{
DJHELPHHAEN pkegfoigecp = this.PKEGFOIGECP;
throw new NullReferenceException();
}
[Token(Token = "0x6012A23")]
[Address(RVA = "0xBCA4B0", Offset = "0xBC92B0", VA = "0x180BCA4B0")]
private set
{
this.PKEGFOIGECP.PIEOGAPMGIH((ushort)value);
}
}
// Token: 0x17003411 RID: 13329
// (get) Token: 0x06012A24 RID: 76324 RVA: 0x0044470C File Offset: 0x0044290C
// (set) Token: 0x06012A25 RID: 76325 RVA: 0x0044472C File Offset: 0x0044292C
[Token(Token = "0x17003411")]
public bool IKIMFBOODDH
{
[Token(Token = "0x6012A24")]
[Address(RVA = "0xBCC9C0", Offset = "0xBCB7C0", VA = "0x180BCC9C0")]
get
{
return this.KPOFIBGPMMF.IAHDANBDAAM() != null;
}
[Token(Token = "0x6012A25")]
[Address(RVA = "0xBCCA60", Offset = "0xBCB860", VA = "0x180BCCA60")]
set
{
KLLMCPFPIIE<bool> kpofibgpmmf = this.KPOFIBGPMMF;
}
}
// Token: 0x17003412 RID: 13330
// (get) Token: 0x06012A26 RID: 76326 RVA: 0x00444748 File Offset: 0x00442948
// (set) Token: 0x06012A27 RID: 76327 RVA: 0x0044475C File Offset: 0x0044295C
[Token(Token = "0x17003412")]
public bool FFOAGCCEFIP
{
[Token(Token = "0x6012A26")]
[Address(RVA = "0xBCCA10", Offset = "0xBCB810", VA = "0x180BCCA10")]
get;
[Token(Token = "0x6012A27")]
[Address(RVA = "0xBC9330", Offset = "0xBC8130", VA = "0x180BC9330")]
private set;
}
// Token: 0x17003413 RID: 13331
// (get) Token: 0x06012A28 RID: 76328 RVA: 0x00444770 File Offset: 0x00442970
// (set) Token: 0x06012A29 RID: 76329 RVA: 0x004447E4 File Offset: 0x004429E4
[Token(Token = "0x17003413")]
private WhipInteractable BIEAAMHPADD
{
[Token(Token = "0x6012A28")]
[Address(RVA = "0xBC9210", Offset = "0xBC8010", VA = "0x180BC9210")]
get
{
int num = this.MMGLCIMLMKE.IAHDANBDAAM();
WhipInteractable abocefaiaah = this.ABOCEFAIAAH;
int num2 = 0;
if (!(abocefaiaah == num2) && this.ABOCEFAIAAH.JDHMIOJKLCK.viewIdField == num)
{
return this.ABOCEFAIAAH;
}
PhotonView photonView = KKPBCOOONNK.BGOPDFHFLOG(num);
WhipInteractable component;
if (photonView != 0)
{
component = photonView.GetComponent<WhipInteractable>();
this.ABOCEFAIAAH = component;
return component;
}
this.ABOCEFAIAAH = component;
return component;
}
[Token(Token = "0x6012A29")]
[Address(RVA = "0xBC9340", Offset = "0xBC8140", VA = "0x180BC9340")]
set
{
KLLMCPFPIIE<int> mmglcimlmke = this.MMGLCIMLMKE;
int num = 0;
if (value != num)
{
PhotonView photonView = value.JDHMIOJKLCK;
}
this.ABOCEFAIAAH = value;
}
}
// Token: 0x17003414 RID: 13332
// (get) Token: 0x06012A2A RID: 76330 RVA: 0x00444818 File Offset: 0x00442A18
[Token(Token = "0x17003414")]
protected override Color EPDNPLLEPOH
{
[Token(Token = "0x6012A2A")]
[Address(RVA = "0xBCB120", Offset = "0xBC9F20", VA = "0x180BCB120", Slot = "15")]
get
{
bool flag;
bool flag2;
if (!flag || flag2)
{
}
throw new NullReferenceException();
}
}
// Token: 0x17003415 RID: 13333
// (get) Token: 0x06012A2B RID: 76331 RVA: 0x00444834 File Offset: 0x00442A34
[Token(Token = "0x17003415")]
public Vector3 IKNODNJNBFC
{
[Token(Token = "0x6012A2B")]
[Address(RVA = "0xBCCA20", Offset = "0xBCB820", VA = "0x180BCCA20")]
get
{
Vector3 vector;
float z = vector.z;
throw new NullReferenceException();
}
}
// Token: 0x06012A2C RID: 76332 RVA: 0x00444850 File Offset: 0x00442A50
[Token(Token = "0x6012A2C")]
[Address(RVA = "0xBC8080", Offset = "0xBC6E80", VA = "0x180BC8080", Slot = "13")]
protected override void Awake()
{
base.Awake();
Transform transform = this.popper.transform;
int num = 0;
transform.parentInternal = num;
WhipPopper whipPopper = this.popper;
Bullet.BCIJIAKFGLB bcijiakfglb = new Bullet.BCIJIAKFGLB(this.HMIOCGKGJJE);
whipPopper.EIMFCMEGGPP += bcijiakfglb;
WhipPopper whipPopper2 = this.popper;
Bullet.LLNPLAPHHJM llnplaphhjm = new Bullet.LLNPLAPHHJM(this.AFKHFGPCPIJ);
whipPopper2.JMKEOLOEKFM += llnplaphhjm;
WhipPopper whipPopper3 = this.popper;
Bullet.CEFAOBHGLKL cefaobhglkl = new Bullet.CEFAOBHGLKL(this.FPAMKLIKAOL);
whipPopper3.BEKCCHHMPEH += cefaobhglkl;
WhipPopper whipPopper4 = this.popper;
Bullet.HDANGCCOJJA hdangccojja = new Bullet.HDANGCCOJJA(this.CBJCAPBIAAK);
whipPopper4.KBMHDAGMLAF += hdangccojja;
WhipPopper whipPopper5 = this.popper;
Bullet.CJMKAGLOMOH cjmkaglomoh = new Bullet.CJMKAGLOMOH(this.LIKNMDIMCNC);
whipPopper5.FIEIACGBCCI += cjmkaglomoh;
WhipPopper whipPopper6 = this.popper;
Action<Bullet> action = new Action(this.CGPBMHEECIN);
whipPopper6.DestroyEvent += action;
Tool tool = this._tool;
MFBGLIHGCGO<Tool> postPickupEvent = tool.PostPickupEvent;
Action<Tool> action2 = new Action(this.AEHDEJPEAKM);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.BPJDFPACLMK(postPickupEvent, action2);
tool.PostPickupEvent = mfbglihgcgo;
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> postReleaseEvent = tool2.PostReleaseEvent;
Action<Tool> action3 = new Action(this.PAEFCHDJPHF);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.BPJDFPACLMK(postReleaseEvent, action3);
tool2.PostReleaseEvent = mfbglihgcgo2;
Tool tool3 = this._tool;
NBPOLJHGGLE<Tool, Vector3, Vector3> inputUpWithVelocityEvent = tool3.InputUpWithVelocityEvent;
Action<Tool, Vector3, Vector3> action4 = new Action(this.GDMDHLFGIFD);
MFBGLIHGCGO<Tool> mfbglihgcgo3;
tool3.InputUpWithVelocityEvent = mfbglihgcgo3;
this.ropeRenderer.positionCount = 20;
int num2;
KLLMCPFPIIE<int> kllmcpfpiie = new KLLMCPFPIIE(this, "HI", -1, (OHOEENCHJJE)num2, num2, num2);
num2 = 0;
this.MMGLCIMLMKE = kllmcpfpiie;
int num3;
KLLMCPFPIIE<bool> kllmcpfpiie2 = new KLLMCPFPIIE(this, "DPG", num3, (OHOEENCHJJE)num2, num2, num2);
num3 = 0;
this.KPOFIBGPMMF = kllmcpfpiie2;
int num4;
int num5;
DJHELPHHAEN djhelphhaen = new DJHELPHHAEN("WSM", (OHOEENCHJJE)num4, num5);
num5 = 0;
num4 = 0;
this.PKEGFOIGECP = djhelphhaen;
MIEIBBPMDMP.OKGCDFLPFOD okgcdflpfod = new MIEIBBPMDMP.OKGCDFLPFOD(this.HIOHFOMJCCJ);
MIEIBBPMDMP.KNFAKJMALJE knfakjmalje = new MIEIBBPMDMP.KNFAKJMALJE(this.EFICDMCBOFP);
DJHELPHHAEN pkegfoigecp = this.PKEGFOIGECP;
MIEIBBPMDMP.OKGCDFLPFOD okgcdflpfod2 = new MIEIBBPMDMP.OKGCDFLPFOD(this.FJIFLBKIGHK);
MIEIBBPMDMP.OKGCDFLPFOD okgcdflpfod3 = new MIEIBBPMDMP.OKGCDFLPFOD(this.CNEBOGKAJGL);
MIEIBBPMDMP.KNFAKJMALJE knfakjmalje2 = new MIEIBBPMDMP.KNFAKJMALJE(this.GGIAOHDIDEL);
int num6 = 0;
pkegfoigecp.JEPMLPCOGNM((ushort)num6, okgcdflpfod2, okgcdflpfod3, knfakjmalje2);
DJHELPHHAEN pkegfoigecp2 = this.PKEGFOIGECP;
MIEIBBPMDMP.OKGCDFLPFOD okgcdflpfod4 = new MIEIBBPMDMP.OKGCDFLPFOD(this.CMIHLADBIAM);
MIEIBBPMDMP.OKGCDFLPFOD okgcdflpfod5 = new MIEIBBPMDMP.OKGCDFLPFOD(this.GLINHLJMFAO);
MIEIBBPMDMP.KNFAKJMALJE knfakjmalje3 = new MIEIBBPMDMP.KNFAKJMALJE(this.BOICBDNJNKI);
DJHELPHHAEN pkegfoigecp3 = this.PKEGFOIGECP;
MIEIBBPMDMP.KNFAKJMALJE knfakjmalje4 = new MIEIBBPMDMP.KNFAKJMALJE(this.LLNHHCDCGNB);
DJHELPHHAEN pkegfoigecp4 = this.PKEGFOIGECP;
MIEIBBPMDMP.OKGCDFLPFOD okgcdflpfod6 = new MIEIBBPMDMP.OKGCDFLPFOD(this.GFMPHGLOEFM);
MIEIBBPMDMP.OKGCDFLPFOD okgcdflpfod7 = new MIEIBBPMDMP.OKGCDFLPFOD(this.DEKHAMMOJAE);
MIEIBBPMDMP.KNFAKJMALJE knfakjmalje5 = new MIEIBBPMDMP.KNFAKJMALJE(this.GPBPAHHCGAB);
DJHELPHHAEN pkegfoigecp5 = this.PKEGFOIGECP;
int num7 = 0;
pkegfoigecp5.HDGEHNGPFDO(this, (ushort)num7);
Action<float> action5 = new Action(this.GAJIJLPDHNI);
IDisposable disposable = ADIFCODGAML.FOFJADGKNJF(this, action5);
}
// Token: 0x06012A2D RID: 76333 RVA: 0x00444B3C File Offset: 0x00442D3C
[Token(Token = "0x6012A2D")]
[Address(RVA = "0xBC9FF0", Offset = "0xBC8DF0", VA = "0x180BC9FF0")]
private void GAJIJLPDHNI(float NLNHFEEMFBN)
{
if (base.OGIBLNIIHDK)
{
DJHELPHHAEN pkegfoigecp = this.PKEGFOIGECP;
float sqrDistanceTraveled = this.popper.JMOKKDOLPDL;
float num = this.hookMagnetMinDistance;
if (sqrDistanceTraveled > num)
{
Transform transform = this.popper.transform;
Vector3 vector;
float z = vector.z;
int num2 = this.hookMagnetLayers;
int num3 = 0;
int num4;
if (num4 > 0)
{
Trap trap = Whip.instantaneousOverlapResults[num3].ALGNNHDELCG();
int num5 = 0;
if (trap != num5)
{
Transform transform2 = this.popper.transform;
Collider[] array = Whip.instantaneousOverlapResults;
Transform transform3 = this.popper.transform;
Vector3 vector2;
float z2 = vector2.z;
Vector3 vector3;
float z3 = vector3.z;
WhipPopper whipPopper = this.popper;
Collider[] array2 = Whip.instantaneousOverlapResults;
throw new NullReferenceException();
}
num3++;
}
}
}
}
// Token: 0x06012A2E RID: 76334 RVA: 0x00444C0C File Offset: 0x00442E0C
[Token(Token = "0x6012A2E")]
[Address(RVA = "0xBCB110", Offset = "0xBC9F10", VA = "0x180BCB110")]
private void LateUpdate()
{
this.PHFLCJPNHJA();
}
// Token: 0x06012A2F RID: 76335 RVA: 0x00444C20 File Offset: 0x00442E20
[Token(Token = "0x6012A2F")]
[Address(RVA = "0xBC9FC0", Offset = "0xBC8DC0", VA = "0x180BC9FC0")]
private void FixedUpdate()
{
this.PKEGFOIGECP.OPEMIFENIJM();
}
// Token: 0x06012A30 RID: 76336 RVA: 0x00444C40 File Offset: 0x00442E40
[Token(Token = "0x6012A30")]
[Address(RVA = "0xBCB400", Offset = "0xBCA200", VA = "0x180BCB400", Slot = "14")]
protected override void OnDestroy()
{
Tool tool = this._tool;
MFBGLIHGCGO<Tool> postPickupEvent = tool.PostPickupEvent;
Action<Tool> action = new Action(this.AEHDEJPEAKM);
MFBGLIHGCGO<Tool> mfbglihgcgo = MFBGLIHGCGO.GMNMHGMFGOL(postPickupEvent, action);
tool.PostPickupEvent = mfbglihgcgo;
Tool tool2 = this._tool;
MFBGLIHGCGO<Tool> postReleaseEvent = tool2.PostReleaseEvent;
Action<Tool> action2 = new Action(this.PAEFCHDJPHF);
MFBGLIHGCGO<Tool> mfbglihgcgo2 = MFBGLIHGCGO.GMNMHGMFGOL(postReleaseEvent, action2);
tool2.PostReleaseEvent = mfbglihgcgo2;
Tool tool3 = this._tool;
NBPOLJHGGLE<Tool, Vector3, Vector3> inputUpWithVelocityEvent = tool3.InputUpWithVelocityEvent;
Action<Tool, Vector3, Vector3> action3 = new Action(this.GDMDHLFGIFD);
MFBGLIHGCGO<Tool> mfbglihgcgo3;
tool3.InputUpWithVelocityEvent = mfbglihgcgo3;
WhipPopper whipPopper = this.popper;
int num = 0;
if (whipPopper != num)
{
WhipPopper whipPopper2 = this.popper;
Bullet.BCIJIAKFGLB bcijiakfglb = new Bullet.BCIJIAKFGLB(this.HMIOCGKGJJE);
whipPopper2.EIMFCMEGGPP -= bcijiakfglb;
WhipPopper whipPopper3 = this.popper;
Bullet.LLNPLAPHHJM llnplaphhjm = new Bullet.LLNPLAPHHJM(this.AFKHFGPCPIJ);
whipPopper3.JMKEOLOEKFM -= llnplaphhjm;
WhipPopper whipPopper4 = this.popper;
Bullet.CEFAOBHGLKL cefaobhglkl = new Bullet.CEFAOBHGLKL(this.FPAMKLIKAOL);
whipPopper4.BEKCCHHMPEH -= cefaobhglkl;
WhipPopper whipPopper5 = this.popper;
Bullet.HDANGCCOJJA hdangccojja = new Bullet.HDANGCCOJJA(this.CBJCAPBIAAK);
whipPopper5.KBMHDAGMLAF -= hdangccojja;
WhipPopper whipPopper6 = this.popper;
Bullet.CJMKAGLOMOH cjmkaglomoh = new Bullet.CJMKAGLOMOH(this.LIKNMDIMCNC);
whipPopper6.FIEIACGBCCI -= cjmkaglomoh;
WhipPopper whipPopper7 = this.popper;
Action<Bullet> action4 = new Action(this.CGPBMHEECIN);
whipPopper7.DestroyEvent -= action4;
global::UnityEngine.Object.Destroy(this.popper.gameObject);
}
base.OnDestroy();
}
// Token: 0x06012A31 RID: 76337 RVA: 0x00444DC4 File Offset: 0x00442FC4
[Token(Token = "0x6012A31")]
[Address(RVA = "0xBC8A40", Offset = "0xBC7840", VA = "0x180BC8A40")]
private void CGPBMHEECIN(Bullet NLLMMPLAPBK)
{
KKPBCOOONNK.JAKJLFDNEJA(base.gameObject);
QuestGameplayRoom questGameplayRoom = global::UnityEngine.Object.FindObjectOfType<QuestGameplayRoom>();
object[] array = new object[6];
string name = base.name;
if (name != 0)
{
}
array[0] = name;
int viewIdField = base.JDHMIOJKLCK.viewIdField;
if (viewIdField != 0)
{
}
array[1] = viewIdField;
Tool tool = this._tool;
if (tool.<BIPMAHKMNKF>k__BackingField)
{
AGAJMBPABDL photonPlayer = tool.<OKDFEPHLKCB>k__BackingField.DBAJDHGDPOL;
}
if ("NOBODY" != 0)
{
}
array[2] = "NOBODY";
OKIMOMGKKDH.NIIIPIEEHMM oplhmkfcnol = this._tool.IKEGONLJBPP.OPLHMKFCNOL;
array[3] = oplhmkfcnol;
int num = 0;
if (questGameplayRoom != num)
{
string name2 = questGameplayRoom.name;
}
if ("NO ROOM" != 0)
{
}
array[4] = "NO ROOM";
int num2 = 0;
if (questGameplayRoom != num2)
{
QuestGameplayRoom.ICJBHKCBDDM currentState = questGameplayRoom.GENECNFMDHJ;
int hashCode = currentState.GetHashCode();
}
if ("" != 0)
{
}
array[5] = "";
Debug.LogErrorFormat("Unexpectedly destroyed Whip Popper. Destroying parent Whip ({0}.{1}) held by {2} as {3} in room {4}.{5}.", array);
}
// Token: 0x06012A32 RID: 76338 RVA: 0x00444ED8 File Offset: 0x004430D8
[Token(Token = "0x6012A32")]
[Address(RVA = "0xBC7E70", Offset = "0xBC6C70", VA = "0x180BC7E70")]
private void AEHDEJPEAKM(Tool EGFEJGHDNAI)
{
if (base.OGIBLNIIHDK)
{
DJHELPHHAEN pkegfoigecp = this.PKEGFOIGECP;
int num = 0;
pkegfoigecp.PIEOGAPMGIH((ushort)num);
return;
}
}
// Token: 0x06012A33 RID: 76339 RVA: 0x00444F08 File Offset: 0x00443108
[Token(Token = "0x6012A33")]
[Address(RVA = "0xBC7E70", Offset = "0xBC6C70", VA = "0x180BC7E70")]
private void PAEFCHDJPHF(Tool EGFEJGHDNAI)
{
if (base.OGIBLNIIHDK)
{
DJHELPHHAEN pkegfoigecp = this.PKEGFOIGECP;
int num = 0;
pkegfoigecp.PIEOGAPMGIH((ushort)num);
return;
}
}
// Token: 0x06012A34 RID: 76340 RVA: 0x00444F38 File Offset: 0x00443138
[Token(Token = "0x6012A34")]
[Address(RVA = "0xBCA390", Offset = "0xBC9190", VA = "0x180BCA390")]
private void GDMDHLFGIFD(Tool EGFEJGHDNAI, Vector3 EAOCEINLAKP, Vector3 KHJFDILDLAD)
{
if (base.OGIBLNIIHDK)
{
DJHELPHHAEN pkegfoigecp = this.PKEGFOIGECP;
if (EAOCEINLAKP.sqrMagnitude > 12.25f)
{
float z = EAOCEINLAKP.z;
Vector3 vector;
float z2 = vector.z;
this.DCEMBBKLNLB.z = z2;
this.POGFKNAHJBK = Whip.GLLIDCDABOO.Uncoiling;
}
}
}
// Token: 0x06012A35 RID: 76341 RVA: 0x00444F8C File Offset: 0x0044318C
[Token(Token = "0x6012A35")]
[Address(RVA = "0xBCA940", Offset = "0xBC9740", VA = "0x180BCA940")]
private void HIOHFOMJCCJ(ushort IBCNKLKINAA, ushort HNEIFFDHGFO)
{
Transform transform = this.popper.transform;
Vector3 vector;
float z = vector.z;
this.LJNOOFMDCEA.z = z;
float time = Time.time;
WeaponAudio weaponAudio = this._weaponAudio;
this.MAEIEHIODPC = time;
int num = 0;
weaponAudio.OnCharge((float)num);
}
// Token: 0x06012A36 RID: 76342 RVA: 0x00444FE4 File Offset: 0x004431E4
[Token(Token = "0x6012A36")]
[Address(RVA = "0xBC9CF0", Offset = "0xBC8AF0", VA = "0x180BC9CF0")]
private void EFICDMCBOFP()
{
float time = Time.time;
ReferencePoint referencePoint = this.popperPrimedPosition;
float num = this.coilingTime;
WhipPopper whipPopper = this.popper;
Vector3 vector;
float z = vector.z;
if (num <= time)
{
Transform transform = whipPopper.transform;
if (base.OGIBLNIIHDK)
{
DJHELPHHAEN pkegfoigecp = this.PKEGFOIGECP;
int num2 = 0;
pkegfoigecp.PIEOGAPMGIH((ushort)num2);
}
return;
}
Transform transform2 = whipPopper.transform;
float z2 = this.LJNOOFMDCEA.z;
Vector3 vector2;
float z3 = vector2.z;
throw new NullReferenceException();
}
// Token: 0x06012A37 RID: 76343 RVA: 0x00445068 File Offset: 0x00443268
[Token(Token = "0x6012A37")]
[Address(RVA = "0xBC9F10", Offset = "0xBC8D10", VA = "0x180BC9F10")]
private void FJIFLBKIGHK(ushort IBCNKLKINAA, ushort HNEIFFDHGFO)
{
KLLMCPFPIIE<int> mmglcimlmke = this.MMGLCIMLMKE;
int num = 0;
bool flag = 0 != num;
WeaponAudio weaponAudio = this._weaponAudio;
this.ABOCEFAIAAH = (ulong)0L;
weaponAudio.OnFullyChargedLoopStart();
this.BHFAMKGDFHF = false;
}
// Token: 0x06012A38 RID: 76344 RVA: 0x004450AC File Offset: 0x004432AC
[Token(Token = "0x6012A38")]
[Address(RVA = "0xBCA780", Offset = "0xBC9580", VA = "0x180BCA780")]
private void GGIAOHDIDEL()
{
WhipPopper whipPopper = this.popper;
int num = 0;
if (!(whipPopper != num))
{
int num2 = 0;
this.CGPBMHEECIN(num2);
return;
}
Transform transform = this.popper.transform;
ReferencePoint referencePoint = this.popperPrimedPosition;
Vector3 vector;
float z = vector.z;
}
// Token: 0x06012A39 RID: 76345 RVA: 0x004450FC File Offset: 0x004432FC
[Token(Token = "0x6012A39")]
[Address(RVA = "0xBC8FA0", Offset = "0xBC7DA0", VA = "0x180BC8FA0")]
private void CNEBOGKAJGL(ushort IBCNKLKINAA, ushort HNEIFFDHGFO)
{
this._weaponAudio.OnFullyChargedLoopStop();
}
// Token: 0x06012A3A RID: 76346 RVA: 0x0044511C File Offset: 0x0044331C
[Token(Token = "0x6012A3A")]
[Address(RVA = "0xBC8EB0", Offset = "0xBC7CB0", VA = "0x180BC8EB0")]
private void CMIHLADBIAM(ushort IBCNKLKINAA, ushort HNEIFFDHGFO)
{
this.<DKMFPADNCFG>k__BackingField = false;
if (base.OGIBLNIIHDK)
{
float num2;
float num = Mathf.Min(num2, 1f);
}
}
// Token: 0x06012A3B RID: 76347 RVA: 0x00445148 File Offset: 0x00443348
[Token(Token = "0x6012A3B")]
[Address(RVA = "0xBC8760", Offset = "0xBC7560", VA = "0x180BC8760")]
private void BOICBDNJNKI()
{
if (base.OGIBLNIIHDK && this.GestureWhipping)
{
float megidikffaa = this.MEGIDIKFFAA;
if (Time.time <= this.popperCollisionForgivenessTime)
{
if (this.ADKLCGHIKMN > this.AFOPJKJJDOM)
{
float sqrDistanceTraveled = this.popper.JMOKKDOLPDL;
float selfDestructDistance = this.popper.selfDestructDistance;
float time = Time.time;
this.AFOPJKJJDOM = time;
return;
}
if (Time.time <= this.maxLengthReachedForgivenessTime)
{
return;
}
}
this.POGFKNAHJBK = Whip.GLLIDCDABOO.Coiling;
return;
}
}
// Token: 0x06012A3C RID: 76348 RVA: 0x004451D4 File Offset: 0x004433D4
[Token(Token = "0x6012A3C")]
[Address(RVA = "0xBCA860", Offset = "0xBC9660", VA = "0x180BCA860")]
private void GLINHLJMFAO(ushort IBCNKLKINAA, ushort HNEIFFDHGFO)
{
WhipPopper whipPopper = this.popper;
this.<DKMFPADNCFG>k__BackingField = false;
Transform transform = whipPopper.transform;
Vector3 vector;
float z = vector.z;
whipPopper.FixedUpdate();
}
// Token: 0x06012A3D RID: 76349 RVA: 0x0044520C File Offset: 0x0044340C
[Token(Token = "0x6012A3D")]
[Address(RVA = "0xBCAEB0", Offset = "0xBC9CB0", VA = "0x180BCAEB0")]
private void LLNHHCDCGNB()
{
for (;;)
{
WhipInteractable whipInteractable = this.BIEAAMHPADD;
int num = 0;
if (!(whipInteractable != num))
{
break;
}
Transform transform = this.popper.transform;
WhipInteractable whipInteractable2 = this.BIEAAMHPADD;
Vector3 vector;
float z = vector.z;
if (base.OGIBLNIIHDK)
{
goto Block_2;
}
}
if (base.OGIBLNIIHDK)
{
DJHELPHHAEN pkegfoigecp = this.PKEGFOIGECP;
}
return;
Block_2:
Transform transform2 = this.popper.transform;
ReferencePoint referencePoint = this.thongAttachPoint;
Vector3 vector2;
float z2 = vector2.z;
Vector3 vector3;
float z3 = vector3.z;
Vector3 vector4;
float z4 = vector4.z;
float selfDestructDistance = this.popper.selfDestructDistance;
float num2;
while (num2 <= selfDestructDistance)
{
}
this.POGFKNAHJBK = Whip.GLLIDCDABOO.Coiling;
}
// Token: 0x06012A3E RID: 76350 RVA: 0x004452B4 File Offset: 0x004434B4
[Token(Token = "0x6012A3E")]
[Address(RVA = "0xBCA510", Offset = "0xBC9310", VA = "0x180BCA510")]
private void GFMPHGLOEFM(ushort IBCNKLKINAA, ushort HNEIFFDHGFO)
{
if (base.OGIBLNIIHDK)
{
WhipInteractable whipInteractable = this.BIEAAMHPADD;
int num = 0;
if (whipInteractable == num)
{
WhipPopper whipPopper = this.popper;
FloatValueCurve floatValueCurve = this.powerOverDistance;
Transform transform = whipPopper.transform;
Transform barrelTransform = this.barrelTransform;
Vector3 vector;
float z = vector.z;
Vector3 vector2;
float z2 = vector2.z;
float num2 = floatValueCurve.NICCICAFMDM(num2);
WhipPopper whipPopper2 = this.popper;
float num3;
this.explosionRadius = num3;
Transform transform2 = whipPopper2.transform;
Vector3 vector3;
float z3 = vector3.z;
throw new NullReferenceException();
}
WhipInteractable whipInteractable2 = this.BIEAAMHPADD;
AGAJMBPABDL photonPlayer = this._tool.<OKDFEPHLKCB>k__BackingField.DBAJDHGDPOL;
float z4 = this.CEAOJGDGCAE.z;
}
}
// Token: 0x06012A3F RID: 76351 RVA: 0x00445368 File Offset: 0x00443568
[Token(Token = "0x6012A3F")]
[Address(RVA = "0xBCA8E0", Offset = "0xBC96E0", VA = "0x180BCA8E0")]
private void GPBPAHHCGAB()
{
if (base.OGIBLNIIHDK)
{
DJHELPHHAEN pkegfoigecp = this.PKEGFOIGECP;
return;
}
}
// Token: 0x06012A40 RID: 76352 RVA: 0x0044538C File Offset: 0x0044358C
[Token(Token = "0x6012A40")]
[Address(RVA = "0xBC8FC0", Offset = "0xBC7DC0", VA = "0x180BC8FC0")]
private void DEKHAMMOJAE(ushort IBCNKLKINAA, ushort HNEIFFDHGFO)
{
KLLMCPFPIIE<int> mmglcimlmke = this.MMGLCIMLMKE;
int num = 0;
bool flag = 0 != num;
this.ABOCEFAIAAH = (ulong)0L;
}
// Token: 0x06012A41 RID: 76353 RVA: 0x004453BC File Offset: 0x004435BC
[Token(Token = "0x6012A41")]
[Address(RVA = "0xBCBD40", Offset = "0xBCAB40", VA = "0x180BCBD40")]
private void PHFLCJPNHJA()
{
DJHELPHHAEN pkegfoigecp = this.PKEGFOIGECP;
LineRenderer lineRenderer = this.ropeRenderer;
bool isVisible = this._tool.GDPKBEBEOBA;
lineRenderer.enabled = isVisible;
MeshRenderer meshRenderer = this.coiledThongMeshRenderer;
bool isVisible2 = this._tool.GDPKBEBEOBA;
meshRenderer.enabled = isVisible2;
GameObject gameObject = this.popper.gameObject;
bool isVisible3 = this._tool.GDPKBEBEOBA;
gameObject.SetActive(isVisible3);
this.MMMPCGCNAID.LKLKGDMFMCC();
ReferencePoint referencePoint = this.thongAttachPoint;
Transform transform = this.popper.transform;
float num2;
float num = Mathf.Min(1f, num2);
int num3 = 0;
num2 = num;
Transform targetTransform = this._tool.rigidbodyEx.MDKDCJFEBJH;
Transform transform2 = this.popper.transform;
FHPDCOFCHLL mmmpcgcnaid = this.MMMPCGCNAID;
Vector3 vector;
float z = vector.z;
FHPDCOFCHLL mmmpcgcnaid2 = this.MMMPCGCNAID;
Vector3[] ggbhajbhijh = this.GGBHAJBHIJH;
Vector3 vector2 = mmmpcgcnaid.FJLDLEDCOMG(num2);
num3++;
float z2 = vector2.z;
ggbhajbhijh[1] = z2;
LineRenderer lineRenderer2 = this.ropeRenderer;
Vector3[] ggbhajbhijh2 = this.GGBHAJBHIJH;
lineRenderer2.SetPositions(ggbhajbhijh2);
}
// Token: 0x06012A42 RID: 76354 RVA: 0x004454E8 File Offset: 0x004436E8
[Token(Token = "0x6012A42")]
[Address(RVA = "0xBCA9C0", Offset = "0xBC97C0", VA = "0x180BCA9C0")]
private void HMKNECEIOOF()
{
this.MMMPCGCNAID.LKLKGDMFMCC();
ReferencePoint referencePoint = this.thongAttachPoint;
Transform transform = this.popper.transform;
float num2;
float num = Mathf.Min(1f, num2);
int num3 = 0;
num2 = num;
Transform targetTransform = this._tool.rigidbodyEx.MDKDCJFEBJH;
Transform transform2 = this.popper.transform;
FHPDCOFCHLL mmmpcgcnaid = this.MMMPCGCNAID;
Vector3 vector;
float z = vector.z;
FHPDCOFCHLL mmmpcgcnaid2 = this.MMMPCGCNAID;
Vector3[] ggbhajbhijh = this.GGBHAJBHIJH;
Vector3 vector2 = mmmpcgcnaid.FJLDLEDCOMG(num2);
num3++;
float z2 = vector2.z;
ggbhajbhijh[1] = z2;
LineRenderer lineRenderer = this.ropeRenderer;
Vector3[] ggbhajbhijh2 = this.GGBHAJBHIJH;
lineRenderer.SetPositions(ggbhajbhijh2);
}
// Token: 0x06012A43 RID: 76355 RVA: 0x004455B0 File Offset: 0x004437B0
[Token(Token = "0x6012A43")]
[Address(RVA = "0xBCC290", Offset = "0xBCB090", VA = "0x180BCC290")]
public void UpdateWhippingGesture(Vector3 CBGPDACPCHL)
{
if (base.OGIBLNIIHDK && this._tool.<BIPMAHKMNKF>k__BackingField)
{
DJHELPHHAEN pkegfoigecp = this.PKEGFOIGECP;
if ((ulong)1L == 0UL)
{
}
if ((ulong)1L == 0UL)
{
DJHELPHHAEN pkegfoigecp2 = this.PKEGFOIGECP;
}
if (!this._tool.KOPJBHEGHGF)
{
float sqrMagnitude = CBGPDACPCHL.sqrMagnitude;
float num = this.whipGestureCrackSpeed;
if (sqrMagnitude <= num)
{
return;
}
if (this.POGFKNAHJBK == Whip.GLLIDCDABOO.Uncoiling)
{
WhipPopper whipPopper = this.popper;
}
Vector3 vector;
if (vector != (ulong)2L)
{
return;
}
Transform transform = this._tool.<OKDFEPHLKCB>k__BackingField.head.transform;
Vector3 vector2;
if (vector2 == 0)
{
return;
}
}
float z = CBGPDACPCHL.z;
this.CEAOJGDGCAE.z = z;
this.POGFKNAHJBK = Whip.GLLIDCDABOO.Cracking;
}
}
// Token: 0x06012A44 RID: 76356 RVA: 0x004456E8 File Offset: 0x004438E8
[Token(Token = "0x6012A44")]
[Address(RVA = "0xBC7FF0", Offset = "0xBC6DF0", VA = "0x180BC7FF0")]
public void AuthorityManualUncoil(Vector3 DCEMBBKLNLB)
{
if (base.OGIBLNIIHDK && !this.GestureWhipping)
{
DJHELPHHAEN pkegfoigecp = this.PKEGFOIGECP;
float z = DCEMBBKLNLB.z;
this.DCEMBBKLNLB.z = z;
this.POGFKNAHJBK = Whip.GLLIDCDABOO.Uncoiling;
}
}
// Token: 0x06012A45 RID: 76357 RVA: 0x00445730 File Offset: 0x00443930
[Token(Token = "0x6012A45")]
[Address(RVA = "0xBC7F00", Offset = "0xBC6D00", VA = "0x180BC7F00")]
public void AuthorityManualCrack(Vector3 EIMMBBKDFNJ)
{
if (base.OGIBLNIIHDK && !this.GestureWhipping)
{
DJHELPHHAEN pkegfoigecp = this.PKEGFOIGECP;
if ((ulong)1L == 0UL)
{
}
float z = EIMMBBKDFNJ.z;
this.CEAOJGDGCAE.z = z;
DJHELPHHAEN pkegfoigecp2 = this.PKEGFOIGECP;
}
}
// Token: 0x06012A46 RID: 76358 RVA: 0x0044577C File Offset: 0x0044397C
[Token(Token = "0x6012A46")]
[Address(RVA = "0xBCAEA0", Offset = "0xBC9CA0", VA = "0x180BCAEA0", Slot = "44")]
protected override Bullet LEKAAHGOLBN([Optional] Bullet CFAPNBBHEKB)
{
/*
An exception occurred when decompiling this method (06012A46)
ICSharpCode.Decompiler.DecompilerException: Error decompiling RecRoom.Core.Combat.Bullet RecRoom.Tools.Weapons.Whip::LEKAAHGOLBN(RecRoom.Core.Combat.Bullet)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:WhipPopper(var_0_06, ldfld:WhipPopper(Whip::popper, ldloc:Whip(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: 0x06012A47 RID: 76359 RVA: 0x00445790 File Offset: 0x00443990
[Token(Token = "0x6012A47")]
[Address(RVA = "0xBCB1E0", Offset = "0xBC9FE0", VA = "0x180BCB1E0", Slot = "42")]
protected override void OICJPFPBIIK(Vector3 DDHPAFKBMON, Quaternion IGPENJBJADK, Vector3 NHAOMEMANJA, float LFDFFDCJAAD, bool FLKHKHDBIOH, byte LNPHJIHHNPN)
{
Vector3 up = Vector3.up;
Vector3 vector;
float z = vector.z;
float z2 = DDHPAFKBMON.z;
bool flag = this.KPOFIBGPMMF.IAHDANBDAAM() != null;
}
// Token: 0x06012A48 RID: 76360 RVA: 0x004457C8 File Offset: 0x004439C8
[Token(Token = "0x6012A48")]
[Address(RVA = "0xBCAE10", Offset = "0xBC9C10", VA = "0x180BCAE10", Slot = "52")]
protected override void IMNCAGFEELB(float NBOCPMDNOCF, Vector3 DDHPAFKBMON, float OMLBPICLALA, float LFDFFDCJAAD)
{
this.BOAKAOKMACN = (float)0;
RecRoomAudioClip recRoomAudioClip = this.weakCrackAudioClip;
this.explosionAudio = recRoomAudioClip;
PooledParticle pooledParticle = this.weakCrackParticleEffect;
this.explosionParticles = pooledParticle;
float z = DDHPAFKBMON.z;
}
// Token: 0x06012A49 RID: 76361 RVA: 0x00445800 File Offset: 0x00443A00
[Token(Token = "0x6012A49")]
[Address(RVA = "0xBC7ED0", Offset = "0xBC6CD0", VA = "0x180BC7ED0")]
private void HMIOCGKGJJE(Bullet EDPPMBPBAAC, Enemy FDJDEJIKCFH, ANBBFGKPJFD EMPFLFOEDFD, GHMDIDJLFMC KNLMJBAKCGF)
{
float time = Time.time;
this.MEGIDIKFFAA = time;
this.<DKMFPADNCFG>k__BackingField = true;
}
// Token: 0x06012A4A RID: 76362 RVA: 0x00445824 File Offset: 0x00443A24
[Token(Token = "0x6012A4A")]
[Address(RVA = "0xBC7ED0", Offset = "0xBC6CD0", VA = "0x180BC7ED0")]
private void AFKHFGPCPIJ(Bullet EDPPMBPBAAC, Tool BKKNJFFJBKN, GHMDIDJLFMC KNLMJBAKCGF)
{
float time = Time.time;
this.MEGIDIKFFAA = time;
this.<DKMFPADNCFG>k__BackingField = true;
}
// Token: 0x06012A4B RID: 76363 RVA: 0x00445848 File Offset: 0x00443A48
[Token(Token = "0x6012A4B")]
[Address(RVA = "0xBC7ED0", Offset = "0xBC6CD0", VA = "0x180BC7ED0")]
private void FPAMKLIKAOL(Bullet EDPPMBPBAAC, Player EDIBICHIJJH, Player.GAHEJKDCLLE EAMJHCGHCIE, GHMDIDJLFMC KNLMJBAKCGF)
{
float time = Time.time;
this.MEGIDIKFFAA = time;
this.<DKMFPADNCFG>k__BackingField = true;
}
// Token: 0x06012A4C RID: 76364 RVA: 0x0044586C File Offset: 0x00443A6C
[Token(Token = "0x6012A4C")]
[Address(RVA = "0xBC8840", Offset = "0xBC7640", VA = "0x180BC8840")]
private void CBJCAPBIAAK(Bullet EDPPMBPBAAC, Trap AMPLOOJODLP, GHMDIDJLFMC KNLMJBAKCGF)
{
if (base.OGIBLNIIHDK)
{
if (AMPLOOJODLP == 0)
{
}
int num = 0;
if (AMPLOOJODLP != num)
{
float y = KNLMJBAKCGF.NKKJICPFILJ.y;
float z = KNLMJBAKCGF.FEDGOFKEGEF.z;
DJHELPHHAEN pkegfoigecp = this.PKEGFOIGECP;
}
}
float time = Time.time;
this.MEGIDIKFFAA = time;
this.<DKMFPADNCFG>k__BackingField = true;
}
// Token: 0x06012A4D RID: 76365 RVA: 0x004458D4 File Offset: 0x00443AD4
[Token(Token = "0x6012A4D")]
[Address(RVA = "0xBC7ED0", Offset = "0xBC6CD0", VA = "0x180BC7ED0")]
private void LIKNMDIMCNC(Bullet EDPPMBPBAAC, GHMDIDJLFMC KNLMJBAKCGF)
{
float time = Time.time;
this.MEGIDIKFFAA = time;
this.<DKMFPADNCFG>k__BackingField = true;
}
// Token: 0x06012A4E RID: 76366 RVA: 0x004458F8 File Offset: 0x00443AF8
[Token(Token = "0x6012A4E")]
[Address(RVA = "0xBC7ED0", Offset = "0xBC6CD0", VA = "0x180BC7ED0")]
private void IIOFHGPKAKB(GHMDIDJLFMC KNLMJBAKCGF)
{
float time = Time.time;
this.MEGIDIKFFAA = time;
this.<DKMFPADNCFG>k__BackingField = true;
}
// Token: 0x06012A4F RID: 76367 RVA: 0x0044591C File Offset: 0x00443B1C
[Token(Token = "0x6012A4F")]
[Address(RVA = "0xBC89D0", Offset = "0xBC77D0", VA = "0x180BC89D0", Slot = "53")]
protected override void CDIOEBNIGJF(Player EDIBICHIJJH, Player.GAHEJKDCLLE EAMJHCGHCIE, GHMDIDJLFMC KNLMJBAKCGF)
{
float boakaokmacn = this.BOAKAOKMACN;
KNLMJBAKCGF.OHPBNIDKAEK = boakaokmacn;
float y = KNLMJBAKCGF.NKKJICPFILJ.y;
float z = KNLMJBAKCGF.FEDGOFKEGEF.z;
float z2 = KNLMJBAKCGF.EGJBGIIHEEL.z;
}
// Token: 0x06012A50 RID: 76368 RVA: 0x0044595C File Offset: 0x00443B5C
[Token(Token = "0x6012A50")]
[Address(RVA = "0xBC9060", Offset = "0xBC7E60", VA = "0x180BC9060", Slot = "54")]
protected override void DJIINLLBBHH(Enemy FDJDEJIKCFH, ANBBFGKPJFD PAKELHPNJDI, GHMDIDJLFMC KNLMJBAKCGF)
{
bool flag;
if (!flag)
{
float boakaokmacn = this.BOAKAOKMACN;
KNLMJBAKCGF.OHPBNIDKAEK = boakaokmacn;
float z = KNLMJBAKCGF.EGJBGIIHEEL.z;
int enemyDamage = this.GetEnemyDamage(z);
if (FDJDEJIKCFH.OGIBLNIIHDK)
{
}
}
}
// Token: 0x06012A51 RID: 76369 RVA: 0x004459A0 File Offset: 0x00443BA0
[Token(Token = "0x6012A51")]
[Address(RVA = "0xBC9400", Offset = "0xBC8200", VA = "0x180BC9400", Slot = "55")]
protected override void EEHAEDNIDDK(Tool BKKNJFFJBKN, GHMDIDJLFMC KNLMJBAKCGF)
{
float z = Vector3.zero.z;
float z2 = Vector3.zero.z;
if (base.OGIBLNIIHDK && !BKKNJFFJBKN.FNFNLDBILFE && BKKNJFFJBKN.MBHKHNNAKBB)
{
Tool tool = this._tool;
if (tool.<BIPMAHKMNKF>k__BackingField)
{
Player <OKDFEPHLKCB>k__BackingField = tool.<OKDFEPHLKCB>k__BackingField;
int num = 0;
if (<OKDFEPHLKCB>k__BackingField != num)
{
Player <OKDFEPHLKCB>k__BackingField2 = this._tool.<OKDFEPHLKCB>k__BackingField;
PlayerHand.PLLIKAOIPHP type = <OKDFEPHLKCB>k__BackingField2.DNBIPBNNKJH.type;
Transform transform = <OKDFEPHLKCB>k__BackingField2.GetOtherHand(type).transform;
RigidbodyEx rigidbodyEx = BKKNJFFJBKN.rigidbodyEx;
Vector3 vector;
float z3 = vector.z;
Vector3 vector2;
float z4 = vector2.z;
AnimationCurve animationCurve = this.toolPullArcTimeByDistance;
Vector3 vector3;
float z5 = vector3.z;
float num3;
float num2 = animationCurve.Evaluate(num3);
RigidbodyEx rigidbodyEx2 = BKKNJFFJBKN.rigidbodyEx;
Vector3 vector4;
float z6 = vector4.z;
Vector3 vector5;
float z7 = vector5.z;
Vector3 vector6;
float z8 = vector6.z;
Vector3 gravity = Physics.gravity;
RigidbodyEx rigidbodyEx3 = BKKNJFFJBKN.rigidbodyEx;
float z9 = gravity.z;
float num4 = z6 * 0.5f;
float mass = rigidbodyEx3.OPDHAKGKECE;
AnimationCurve animationCurve2 = this.toolPullAccuracyByAimAccuracy;
Vector3 vector7;
float z10 = vector7.z;
float z11 = KNLMJBAKCGF.EGJBGIIHEEL.z;
float num5 = animationCurve2.Evaluate(z11);
LootTool component = BKKNJFFJBKN.GetComponent<LootTool>();
if (base.OGIBLNIIHDK)
{
int num6 = 0;
if (component != num6)
{
int num7 = 0;
num5 = num5.JBLAJMCFLIK(num7, num7);
}
}
if (num5 > 0.8f)
{
Transform transform2 = BKKNJFFJBKN.rigidbodyEx.transform;
float z12 = Vector3.up.z;
Vector3 vector8;
float z13 = vector8.z;
Vector3 vector9;
float z14 = vector9.z;
RigidbodyEx rigidbodyEx4 = BKKNJFFJBKN.rigidbodyEx;
Vector3 vector10;
float z15 = vector10.z;
Vector3 vector11;
float z16 = vector11.z;
Vector3 vector12;
float z17 = vector12.z;
}
RigidbodyEx rigidbodyEx5 = BKKNJFFJBKN.rigidbodyEx;
Vector3 vector13;
float z18 = vector13.z;
KNLMJBAKCGF.NKKJICPFILJ.z = z18;
Vector3 vector14;
float z19 = vector14.z;
Vector3 vector15;
float z20 = vector15.z;
KNLMJBAKCGF.FEDGOFKEGEF.z = z20;
}
}
}
if (!base.OGIBLNIIHDK || BKKNJFFJBKN.OGIBLNIIHDK)
{
}
}
// Token: 0x06012A52 RID: 76370 RVA: 0x00445BD8 File Offset: 0x00443DD8
[Token(Token = "0x6012A52")]
[Address(RVA = "0xBB5D40", Offset = "0xBB4B40", VA = "0x180BB5D40", Slot = "56")]
protected override void HMOBOJKIGPO(Trap AMPLOOJODLP, GHMDIDJLFMC KNLMJBAKCGF)
{
float y = KNLMJBAKCGF.NKKJICPFILJ.y;
float z = KNLMJBAKCGF.FEDGOFKEGEF.z;
float z2 = KNLMJBAKCGF.EGJBGIIHEEL.z;
}
// Token: 0x06012A53 RID: 76371 RVA: 0x00445C0C File Offset: 0x00443E0C
[Token(Token = "0x6012A53")]
[Address(RVA = "0xBCB760", Offset = "0xBCA560", VA = "0x180BCB760")]
private void OnDrawGizmos()
{
Transform transform = base.transform;
float z = this.minRopeFirstHandle.z;
Transform transform2 = base.transform;
float z2 = this.maxRopeFirstHandle.z;
Transform transform3 = this.popper.transform;
float z3 = this.minRopeSecondHandle.z;
Transform transform4 = this.popper.transform;
float z4 = this.maxRopeSecondHandle.z;
ReferencePoint referencePoint = this.thongAttachPoint;
Transform transform5 = this.popper.transform;
Color blue = Color.blue;
Color red = Color.red;
float num2;
float num = Mathf.Min(1f, num2);
num2 = num;
if (!Application.isPlaying)
{
this.HMKNECEIOOF();
}
}
// Token: 0x06012A54 RID: 76372 RVA: 0x00445CC8 File Offset: 0x00443EC8
[Token(Token = "0x6012A54")]
[Address(RVA = "0xBCC780", Offset = "0xBCB580", VA = "0x180BCC780")]
public Whip()
{
float z = Vector3.zero.z;
this.minRopeFirstHandle.z = z;
float z2 = Vector3.zero.z;
this.maxRopeFirstHandle.z = z2;
float z3 = Vector3.zero.z;
this.minRopeSecondHandle.z = z3;
float z4 = Vector3.zero.z;
this.maxRopeSecondHandle.z = z4;
this.minToMaxInterpolationDistance = 5f;
this.strongCrackPowerThreshold = 0.8f;
this.strongThrowSpeedThreshold = 4f;
this.whipGestureStartSpeed = 5f;
this.whipGestureCrackSpeed = 3f;
this.whipGestureReleaseTime = 0.2f;
this.hookMagnetDistance = 1f;
this.hookMagnetMinDistance = 2f;
float z5 = Vector3.zero.z;
this.DCEMBBKLNLB.z = z5;
float z6 = Vector3.zero.z;
this.CEAOJGDGCAE.z = z6;
float z7 = Vector3.zero.z;
this.LJNOOFMDCEA.z = z7;
this.GestureWhipping = true;
Vector3[] array = new Vector3[20];
this.GGBHAJBHIJH = array;
FHPDCOFCHLL fhpdcofchll = new FHPDCOFCHLL();
this.MMMPCGCNAID = fhpdcofchll;
base..ctor();
}
// Token: 0x0400C070 RID: 49264
[Token(Token = "0x400C070")]
public static readonly Collider[] instantaneousOverlapResults = new Collider[16];
// Token: 0x0400C071 RID: 49265
[global::Cpp2IlInjected.FieldOffset(Offset = "0x368")]
[Token(Token = "0x400C071")]
[SerializeField]
[Header("Whip Attack")]
private float popperReleaseVelocityMultiplier = 1.2f;
// Token: 0x0400C072 RID: 49266
[global::Cpp2IlInjected.FieldOffset(Offset = "0x36C")]
[Token(Token = "0x400C072")]
[SerializeField]
private float popperCollisionForgivenessTime = 0.3f;
// Token: 0x0400C073 RID: 49267
[global::Cpp2IlInjected.FieldOffset(Offset = "0x370")]
[Token(Token = "0x400C073")]
[SerializeField]
private float maxLengthReachedForgivenessTime = 0.25f;
// Token: 0x0400C074 RID: 49268
[global::Cpp2IlInjected.FieldOffset(Offset = "0x378")]
[Token(Token = "0x400C074")]
[SerializeField]
private FloatValueCurve powerOverDistance;
// Token: 0x0400C075 RID: 49269
[global::Cpp2IlInjected.FieldOffset(Offset = "0x380")]
[Token(Token = "0x400C075")]
[SerializeField]
private Whip.IntervalContainer blastRadiusOverDistance;
// Token: 0x0400C076 RID: 49270
[global::Cpp2IlInjected.FieldOffset(Offset = "0x388")]
[Token(Token = "0x400C076")]
[SerializeField]
[Header("Whip State")]
private float coilingTime = 0.25f;
// Token: 0x0400C077 RID: 49271
[global::Cpp2IlInjected.FieldOffset(Offset = "0x390")]
[Token(Token = "0x400C077")]
[SerializeField]
[Header("Whip Visuals")]
private MeshRenderer coiledThongMeshRenderer;
// Token: 0x0400C078 RID: 49272
[global::Cpp2IlInjected.FieldOffset(Offset = "0x398")]
[Token(Token = "0x400C078")]
[SerializeField]
private ReferencePoint thongAttachPoint;
// Token: 0x0400C079 RID: 49273
[global::Cpp2IlInjected.FieldOffset(Offset = "0x3A0")]
[Token(Token = "0x400C079")]
[SerializeField]
private ReferencePoint popperPrimedPosition;
// Token: 0x0400C07A RID: 49274
[global::Cpp2IlInjected.FieldOffset(Offset = "0x3A8")]
[Token(Token = "0x400C07A")]
[SerializeField]
private PooledParticle weakCrackParticleEffect;
// Token: 0x0400C07B RID: 49275
[global::Cpp2IlInjected.FieldOffset(Offset = "0x3B0")]
[Token(Token = "0x400C07B")]
[SerializeField]
private PooledParticle strongCrackParticleEffect;
// Token: 0x0400C07C RID: 49276
[global::Cpp2IlInjected.FieldOffset(Offset = "0x3B8")]
[Token(Token = "0x400C07C")]
[SerializeField]
private Vector3 minRopeFirstHandle;
// Token: 0x0400C07D RID: 49277
[global::Cpp2IlInjected.FieldOffset(Offset = "0x3C4")]
[Token(Token = "0x400C07D")]
[SerializeField]
private Vector3 maxRopeFirstHandle;
// Token: 0x0400C07E RID: 49278
[global::Cpp2IlInjected.FieldOffset(Offset = "0x3D0")]
[Token(Token = "0x400C07E")]
[SerializeField]
private Vector3 minRopeSecondHandle;
// Token: 0x0400C07F RID: 49279
[global::Cpp2IlInjected.FieldOffset(Offset = "0x3DC")]
[Token(Token = "0x400C07F")]
[SerializeField]
private Vector3 maxRopeSecondHandle;
// Token: 0x0400C080 RID: 49280
[global::Cpp2IlInjected.FieldOffset(Offset = "0x3E8")]
[Token(Token = "0x400C080")]
[SerializeField]
private float minToMaxInterpolationDistance;
// Token: 0x0400C081 RID: 49281
[global::Cpp2IlInjected.FieldOffset(Offset = "0x3F0")]
[Token(Token = "0x400C081")]
[SerializeField]
[Header("Whip Audio")]
private RecRoomAudioClip weakCrackAudioClip;
// Token: 0x0400C082 RID: 49282
[global::Cpp2IlInjected.FieldOffset(Offset = "0x3F8")]
[Token(Token = "0x400C082")]
[SerializeField]
private RecRoomAudioClip strongCrackAudioClip;
// Token: 0x0400C083 RID: 49283
[global::Cpp2IlInjected.FieldOffset(Offset = "0x400")]
[Token(Token = "0x400C083")]
[SerializeField]
private float strongCrackPowerThreshold;
// Token: 0x0400C084 RID: 49284
[global::Cpp2IlInjected.FieldOffset(Offset = "0x404")]
[Token(Token = "0x400C084")]
[SerializeField]
private float strongThrowSpeedThreshold;
// Token: 0x0400C085 RID: 49285
[global::Cpp2IlInjected.FieldOffset(Offset = "0x408")]
[Token(Token = "0x400C085")]
[SerializeField]
[Header("Whip Gesture")]
private float whipGestureStartSpeed;
// Token: 0x0400C086 RID: 49286
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40C")]
[Token(Token = "0x400C086")]
[SerializeField]
private float whipGestureCrackSpeed;
// Token: 0x0400C087 RID: 49287
[global::Cpp2IlInjected.FieldOffset(Offset = "0x410")]
[Token(Token = "0x400C087")]
[SerializeField]
private float whipGestureReleaseTime;
// Token: 0x0400C088 RID: 49288
[global::Cpp2IlInjected.FieldOffset(Offset = "0x418")]
[Token(Token = "0x400C088")]
[SerializeField]
[Header("Whip Pull Tools")]
private AnimationCurve toolPullArcTimeByDistance;
// Token: 0x0400C089 RID: 49289
[global::Cpp2IlInjected.FieldOffset(Offset = "0x420")]
[Token(Token = "0x400C089")]
[SerializeField]
private AnimationCurve toolPullAccuracyByAimAccuracy;
// Token: 0x0400C08A RID: 49290
[global::Cpp2IlInjected.FieldOffset(Offset = "0x428")]
[Token(Token = "0x400C08A")]
[SerializeField]
[Header("Whip Hook Magnet")]
[Tooltip("Latch on to whip interactables from a distance")]
private float hookMagnetDistance;
// Token: 0x0400C08B RID: 49291
[global::Cpp2IlInjected.FieldOffset(Offset = "0x42C")]
[Token(Token = "0x400C08B")]
[SerializeField]
private LayerMask hookMagnetLayers;
// Token: 0x0400C08C RID: 49292
[global::Cpp2IlInjected.FieldOffset(Offset = "0x430")]
[Token(Token = "0x400C08C")]
[SerializeField]
[Tooltip("Minimum distance the popper must travel before activating the hook magnet")]
private float hookMagnetMinDistance;
// Token: 0x0400C08D RID: 49293
[Token(Token = "0x400C08D")]
private const float LKLHGNIFONF = 0.6f;
// Token: 0x0400C08E RID: 49294
[Token(Token = "0x400C08E")]
private const float CCEODNNGHGD = 3.5f;
// Token: 0x0400C08F RID: 49295
[Token(Token = "0x400C08F")]
private const int LJKFGFPPJFN = 20;
// Token: 0x0400C090 RID: 49296
[global::Cpp2IlInjected.FieldOffset(Offset = "0x438")]
[Token(Token = "0x400C090")]
private DJHELPHHAEN PKEGFOIGECP;
// Token: 0x0400C091 RID: 49297
[global::Cpp2IlInjected.FieldOffset(Offset = "0x440")]
[Token(Token = "0x400C091")]
private KLLMCPFPIIE<bool> KPOFIBGPMMF;
// Token: 0x0400C092 RID: 49298
[global::Cpp2IlInjected.FieldOffset(Offset = "0x448")]
[Token(Token = "0x400C092")]
private Vector3 DCEMBBKLNLB;
// Token: 0x0400C093 RID: 49299
[global::Cpp2IlInjected.FieldOffset(Offset = "0x454")]
[Token(Token = "0x400C093")]
private Vector3 CEAOJGDGCAE;
// Token: 0x0400C094 RID: 49300
[global::Cpp2IlInjected.FieldOffset(Offset = "0x460")]
[Token(Token = "0x400C094")]
private Vector3 LJNOOFMDCEA;
// Token: 0x0400C095 RID: 49301
[global::Cpp2IlInjected.FieldOffset(Offset = "0x46C")]
[Token(Token = "0x400C095")]
private float MAEIEHIODPC;
// Token: 0x0400C096 RID: 49302
[global::Cpp2IlInjected.FieldOffset(Offset = "0x470")]
[Token(Token = "0x400C096")]
[NonSerialized]
public bool GestureWhipping;
// Token: 0x0400C097 RID: 49303
[global::Cpp2IlInjected.FieldOffset(Offset = "0x471")]
[Token(Token = "0x400C097")]
private bool BHFAMKGDFHF;
// Token: 0x0400C098 RID: 49304
[global::Cpp2IlInjected.FieldOffset(Offset = "0x474")]
[Token(Token = "0x400C098")]
private float OHLKLNPNIKM;
// Token: 0x0400C09A RID: 49306
[global::Cpp2IlInjected.FieldOffset(Offset = "0x480")]
[Token(Token = "0x400C09A")]
private KLLMCPFPIIE<int> MMGLCIMLMKE;
// Token: 0x0400C09B RID: 49307
[global::Cpp2IlInjected.FieldOffset(Offset = "0x488")]
[Token(Token = "0x400C09B")]
private WhipInteractable ABOCEFAIAAH;
// Token: 0x0400C09C RID: 49308
[global::Cpp2IlInjected.FieldOffset(Offset = "0x490")]
[Token(Token = "0x400C09C")]
[SerializeField]
[DDPIINEJFMD(JIBDPHMGEGO.Children, false, false, false)]
private WhipPopper popper;
// Token: 0x0400C09D RID: 49309
[global::Cpp2IlInjected.FieldOffset(Offset = "0x498")]
[Token(Token = "0x400C09D")]
private float MEGIDIKFFAA;
// Token: 0x0400C09E RID: 49310
[global::Cpp2IlInjected.FieldOffset(Offset = "0x49C")]
[Token(Token = "0x400C09E")]
private float AFOPJKJJDOM;
// Token: 0x0400C09F RID: 49311
[global::Cpp2IlInjected.FieldOffset(Offset = "0x4A0")]
[Token(Token = "0x400C09F")]
private float BOAKAOKMACN;
// Token: 0x0400C0A0 RID: 49312
[global::Cpp2IlInjected.FieldOffset(Offset = "0x4A8")]
[Token(Token = "0x400C0A0")]
[SerializeField]
[DDPIINEJFMD(JIBDPHMGEGO.Children, false, false, false)]
private LineRenderer ropeRenderer;
// Token: 0x0400C0A1 RID: 49313
[global::Cpp2IlInjected.FieldOffset(Offset = "0x4B0")]
[Token(Token = "0x400C0A1")]
private Vector3[] GGBHAJBHIJH;
// Token: 0x0400C0A2 RID: 49314
[global::Cpp2IlInjected.FieldOffset(Offset = "0x4B8")]
[Token(Token = "0x400C0A2")]
private FHPDCOFCHLL MMMPCGCNAID;
// Token: 0x02002B54 RID: 11092
[Token(Token = "0x2002B54")]
public enum GLLIDCDABOO
{
// Token: 0x0400C0A4 RID: 49316
[Token(Token = "0x400C0A4")]
Primed,
// Token: 0x0400C0A5 RID: 49317
[Token(Token = "0x400C0A5")]
Uncoiling,
// Token: 0x0400C0A6 RID: 49318
[Token(Token = "0x400C0A6")]
Hooked,
// Token: 0x0400C0A7 RID: 49319
[Token(Token = "0x400C0A7")]
Cracking,
// Token: 0x0400C0A8 RID: 49320
[Token(Token = "0x400C0A8")]
Coiling
}
// Token: 0x02002B55 RID: 11093
[Token(Token = "0x2002B55")]
[Serializable]
public struct IntervalContainer
{
// Token: 0x06012A56 RID: 76374 RVA: 0x00445E4C File Offset: 0x0044404C
[Token(Token = "0x6012A56")]
[Address(RVA = "0xBB7240", Offset = "0xBB6040", VA = "0x180BB7240")]
public float DHEIFNLDBKN(float PEJGNLGMDDP)
{
float num;
return num;
}
// Token: 0x0400C0A9 RID: 49321
[global::Cpp2IlInjected.FieldOffset(Offset = "0x0")]
[Token(Token = "0x400C0A9")]
public float min;
// Token: 0x0400C0AA RID: 49322
[global::Cpp2IlInjected.FieldOffset(Offset = "0x4")]
[Token(Token = "0x400C0AA")]
public float max;
}
}
}
@@ -0,0 +1,42 @@
using System;
using Cpp2IlInjected;
using RecRoom.Core.Combat;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002B56 RID: 11094
[Token(Token = "0x2002B56")]
public class WhipPopper : Bullet
{
// Token: 0x06012A57 RID: 76375 RVA: 0x00445E5C File Offset: 0x0044405C
[Token(Token = "0x6012A57")]
[Address(RVA = "0xBC7DB0", Offset = "0xBC6BB0", VA = "0x180BC7DB0", Slot = "9")]
public override void Release(Vector3 IPPBFGDBMAD)
{
Transform transform = base.transform;
float z = IPPBFGDBMAD.z;
int num = 0;
base.enabled = num != 0;
}
// Token: 0x06012A58 RID: 76376 RVA: 0x00445E88 File Offset: 0x00444088
[Token(Token = "0x6012A58")]
[Address(RVA = "0xBC7D00", Offset = "0xBC6B00", VA = "0x180BC7D00")]
public void AttachToHook(Trap JHIDLPIGNBD, Collider GLPOLGOBLAA)
{
int num = 0;
Transform transform = base.transform;
Vector3 vector;
float z = vector.z;
this.Release(num);
}
// Token: 0x06012A59 RID: 76377 RVA: 0x00445EB8 File Offset: 0x004440B8
[Token(Token = "0x6012A59")]
[Address(RVA = "0xBC7E10", Offset = "0xBC6C10", VA = "0x180BC7E10")]
public WhipPopper()
{
}
}
}