Files
2026-04-08 23:40:05 +02:00

433 lines
17 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using Photon.Pun;
using Photon.Realtime;
using RecRoom.Core.AI;
using RecRoom.Core.Combat;
using RecRoom.Core.Pools;
using RecRoom.Networking.RPC;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002680 RID: 9856
[Token(Token = "0x2002680")]
[StructLayout(3)]
public class ExplosiveRangedWeapon : RangedWeapon
{
// Token: 0x0601119E RID: 70046 RVA: 0x00408954 File Offset: 0x00406B54
[Token(Token = "0x601119E")]
[Address(RVA = "0x1941060", Offset = "0x193FA60", VA = "0x181941060", 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: 0x0601119F RID: 70047 RVA: 0x004089A0 File Offset: 0x00406BA0
[Token(Token = "0x601119F")]
[Address(RVA = "0x1942080", Offset = "0x1940A80", VA = "0x181942080", 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: 0x060111A0 RID: 70048 RVA: 0x004089EC File Offset: 0x00406BEC
[Token(Token = "0x60111A0")]
[Address(RVA = "0x1941F90", Offset = "0x1940990", VA = "0x181941F90", Slot = "36")]
protected override bool ODPDBPCMGKE()
{
if (!this.HKDIKDABNCK || this.HKDIKDABNCK.enabled)
{
}
GameObject fpemcijjpmj = this.FPEMCIJJPMJ;
return !fpemcijjpmj || !fpemcijjpmj.activeSelf;
}
// Token: 0x060111A1 RID: 70049 RVA: 0x00408A38 File Offset: 0x00406C38
[Token(Token = "0x60111A1")]
[Address(RVA = "0x1941D10", Offset = "0x1940710", VA = "0x181941D10", Slot = "44")]
protected override Bullet LEKAAHGOLBN([Optional] Bullet CFAPNBBHEKB)
{
Bullet bullet = base.LEKAAHGOLBN(CFAPNBBHEKB);
this.HKDIKDABNCK = bullet;
return bullet;
}
// Token: 0x060111A2 RID: 70050 RVA: 0x00408A58 File Offset: 0x00406C58
[Token(Token = "0x60111A2")]
[Address(RVA = "0x1941D30", Offset = "0x1940730", VA = "0x181941D30", 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: 0x060111A3 RID: 70051 RVA: 0x00408AF4 File Offset: 0x00406CF4
[Token(Token = "0x60111A3")]
[Address(RVA = "0x1941C00", Offset = "0x1940600", VA = "0x181941C00")]
protected void KFECAEGMNDF(float NBOCPMDNOCF, Vector3 DDHPAFKBMON, float OMLBPICLALA, float LFDFFDCJAAD = 1f)
{
if (base.hasAuthority)
{
PhotonView photonView = base.photonView;
RPCActions.RPCAction<float, Vector3, float, float> rpcaction = new RPCActions.RPCAction(this.RpcManualExplode);
float z = DDHPAFKBMON.z;
}
}
// Token: 0x060111A4 RID: 70052 RVA: 0x00408B2C File Offset: 0x00406D2C
[Token(Token = "0x60111A4")]
[Address(RVA = "0x19421E0", Offset = "0x1940BE0", VA = "0x1819421E0")]
[PunRPC]
protected void RpcManualExplode(float NBOCPMDNOCF, Vector3 DDHPAFKBMON, float OMLBPICLALA, float LFDFFDCJAAD)
{
float z = DDHPAFKBMON.z;
this.PlayPreFireAnimation();
}
// Token: 0x060111A5 RID: 70053 RVA: 0x00408B48 File Offset: 0x00406D48
[Token(Token = "0x60111A5")]
[Address(RVA = "0x19419E0", Offset = "0x19403E0", VA = "0x1819419E0", 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: 0x060111A6 RID: 70054 RVA: 0x00408BA4 File Offset: 0x00406DA4
[Token(Token = "0x60111A6")]
[Address(RVA = "0x1941930", Offset = "0x1940330", VA = "0x181941930")]
private IEnumerator IDDAEFPBAKC(float NBOCPMDNOCF, Vector3 DDHPAFKBMON, float OMLBPICLALA, float LFDFFDCJAAD = 1f)
{
/*
An exception occurred when decompiling this method (060111A6)
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: 0x060111A7 RID: 70055 RVA: 0x00408BF0 File Offset: 0x00406DF0
[Token(Token = "0x60111A7")]
[Address(RVA = "0x1941220", Offset = "0x193FC20", VA = "0x181941220")]
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: 0x060111A8 RID: 70056 RVA: 0x00408C5C File Offset: 0x00406E5C
[Token(Token = "0x60111A8")]
[Address(RVA = "0x1941B30", Offset = "0x1940530", VA = "0x181941B30", Slot = "39")]
public override bool ImpactAlreadyRegistered(byte JKPAIMCLIBI, Photon.Realtime.Player HMEIODIHDCL)
{
float realtimeSinceStartup = Time.realtimeSinceStartup;
List<Photon.Realtime.Player> 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: 0x060111A9 RID: 70057 RVA: 0x00408CB8 File Offset: 0x00406EB8
[Token(Token = "0x60111A9")]
[Address(RVA = "0x1941F20", Offset = "0x1940920", VA = "0x181941F20", Slot = "46")]
protected override void ODOBKGAHAGH(Bullet NLLMMPLAPBK, global::Player IEKDDPPNFPF, global::Player.GAHEJKDCLLE NMKAKHOEMGB, GHMDIDJLFMC KNLMJBAKCGF)
{
if (this.applyDirectDamage)
{
}
}
// Token: 0x060111AA RID: 70058 RVA: 0x00408CD0 File Offset: 0x00406ED0
[Token(Token = "0x60111AA")]
[Address(RVA = "0x1941640", Offset = "0x1940040", VA = "0x181941640", Slot = "47")]
protected override void EIEJLOGPMGM(Bullet NLLMMPLAPBK, Enemy BPJNEFJBBML, ANBBFGKPJFD EMPFLFOEDFD, GHMDIDJLFMC KNLMJBAKCGF)
{
if (this.applyDirectDamage)
{
}
}
// Token: 0x060111AB RID: 70059 RVA: 0x00408CE8 File Offset: 0x00406EE8
[Token(Token = "0x60111AB")]
[Address(RVA = "0x1941710", Offset = "0x1940110", VA = "0x181941710", Slot = "48")]
protected override void GLFCGNNCNIB(Bullet NLLMMPLAPBK, Tool BKKNJFFJBKN, GHMDIDJLFMC KNLMJBAKCGF)
{
if (this.applyDirectDamage)
{
base.GLFCGNNCNIB(NLLMMPLAPBK, BKKNJFFJBKN, KNLMJBAKCGF);
}
}
// Token: 0x060111AC RID: 70060 RVA: 0x00408D08 File Offset: 0x00406F08
[Token(Token = "0x60111AC")]
[Address(RVA = "0x19416B0", Offset = "0x19400B0", VA = "0x1819416B0", Slot = "49")]
protected override void EJAEGPHPGBL(Bullet NLLMMPLAPBK, Trap JHIDLPIGNBD, GHMDIDJLFMC KNLMJBAKCGF)
{
if (this.applyDirectDamage)
{
base.EJAEGPHPGBL(NLLMMPLAPBK, JHIDLPIGNBD, KNLMJBAKCGF);
}
}
// Token: 0x060111AD RID: 70061 RVA: 0x00408D28 File Offset: 0x00406F28
[Token(Token = "0x60111AD")]
[Address(RVA = "0x19411C0", Offset = "0x193FBC0", VA = "0x1819411C0", Slot = "53")]
protected virtual void CDIOEBNIGJF(global::Player EDIBICHIJJH, global::Player.GAHEJKDCLLE EAMJHCGHCIE, GHMDIDJLFMC KNLMJBAKCGF)
{
float y = KNLMJBAKCGF.NKKJICPFILJ.y;
float z = KNLMJBAKCGF.FEDGOFKEGEF.z;
float z2 = KNLMJBAKCGF.EGJBGIIHEEL.z;
}
// Token: 0x060111AE RID: 70062 RVA: 0x00408D5C File Offset: 0x00406F5C
[Token(Token = "0x60111AE")]
[Address(RVA = "0x19413C0", Offset = "0x193FDC0", VA = "0x1819413C0", 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.hasAuthority || FDJDEJIKCFH.hasAuthority)
{
}
}
}
// Token: 0x060111AF RID: 70063 RVA: 0x00408D9C File Offset: 0x00406F9C
[Token(Token = "0x60111AF")]
[Address(RVA = "0x1941570", Offset = "0x193FF70", VA = "0x181941570", 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: 0x060111B0 RID: 70064 RVA: 0x00408DE0 File Offset: 0x00406FE0
[Token(Token = "0x60111B0")]
[Address(RVA = "0x1941820", Offset = "0x1940220", VA = "0x181941820", Slot = "56")]
protected virtual void HMOBOJKIGPO(Trap AMPLOOJODLP, GHMDIDJLFMC KNLMJBAKCGF)
{
float y = KNLMJBAKCGF.NKKJICPFILJ.y;
float z = KNLMJBAKCGF.FEDGOFKEGEF.z;
if (base.hasAuthority && AMPLOOJODLP.hasAuthority)
{
float y2 = KNLMJBAKCGF.NKKJICPFILJ.y;
}
}
// Token: 0x060111B1 RID: 70065 RVA: 0x00408E2C File Offset: 0x0040702C
[Token(Token = "0x60111B1")]
[Address(RVA = "0x1941770", Offset = "0x1940170", VA = "0x181941770", Slot = "21")]
public override int GetPlayerImpactDamage(global::Player.GAHEJKDCLLE EAMJHCGHCIE, float DBINDJBHOKM, bool COEKCNDDMKK)
{
return Mathf.RoundToInt(Mathf.Clamp01(DBINDJBHOKM));
}
// Token: 0x060111B2 RID: 70066 RVA: 0x00408E44 File Offset: 0x00407044
[Token(Token = "0x60111B2")]
[Address(RVA = "0x1942230", Offset = "0x1940C30", VA = "0x181942230")]
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<Photon.Realtime.Player> list = new List();
this.GOFBMKPDJEM = list;
base..ctor();
}
// Token: 0x0400B5E2 RID: 46562
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2E8")]
[Token(Token = "0x400B5E2")]
[SerializeField]
[Header("Direct Damage")]
private bool applyDirectDamage;
// Token: 0x0400B5E3 RID: 46563
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2F0")]
[Token(Token = "0x400B5E3")]
[SerializeField]
private PooledParticle directDamageParticles;
// Token: 0x0400B5E4 RID: 46564
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2F8")]
[Token(Token = "0x400B5E4")]
[SerializeField]
private RecRoomAudioClip directDamageImpactAudio;
// Token: 0x0400B5E5 RID: 46565
[global::Cpp2IlInjected.FieldOffset(Offset = "0x300")]
[Token(Token = "0x400B5E5")]
[SerializeField]
[Header("Explosives")]
private float explosionDelay;
// Token: 0x0400B5E6 RID: 46566
[global::Cpp2IlInjected.FieldOffset(Offset = "0x304")]
[Token(Token = "0x400B5E6")]
[SerializeField]
protected float explosionRadius = 2f;
// Token: 0x0400B5E7 RID: 46567
[global::Cpp2IlInjected.FieldOffset(Offset = "0x308")]
[Token(Token = "0x400B5E7")]
[SerializeField]
protected float explosionForce = 30f;
// Token: 0x0400B5E8 RID: 46568
[global::Cpp2IlInjected.FieldOffset(Offset = "0x310")]
[Token(Token = "0x400B5E8")]
[SerializeField]
protected PooledParticle explosionParticles;
// Token: 0x0400B5E9 RID: 46569
[global::Cpp2IlInjected.FieldOffset(Offset = "0x318")]
[Token(Token = "0x400B5E9")]
[SerializeField]
protected RecRoomAudioClip explosionAudio;
// Token: 0x0400B5EA RID: 46570
[global::Cpp2IlInjected.FieldOffset(Offset = "0x320")]
[Token(Token = "0x400B5EA")]
[SerializeField]
protected AnimationCurve forceFalloff;
// Token: 0x0400B5EB RID: 46571
[global::Cpp2IlInjected.FieldOffset(Offset = "0x328")]
[Token(Token = "0x400B5EB")]
[SerializeField]
protected AnimationCurve damageFalloff;
// Token: 0x0400B5EC RID: 46572
[global::Cpp2IlInjected.FieldOffset(Offset = "0x330")]
[Token(Token = "0x400B5EC")]
[SerializeField]
[Range(0f, 1f)]
protected float maxPlayerDamageFalloff;
// Token: 0x0400B5ED RID: 46573
[global::Cpp2IlInjected.FieldOffset(Offset = "0x338")]
[Token(Token = "0x400B5ED")]
protected EMPJPPLIPMG OEJMNKBJCHC;
// Token: 0x0400B5EE RID: 46574
[global::Cpp2IlInjected.FieldOffset(Offset = "0x340")]
[Token(Token = "0x400B5EE")]
private Bullet HKDIKDABNCK;
// Token: 0x0400B5EF RID: 46575
[global::Cpp2IlInjected.FieldOffset(Offset = "0x348")]
[Token(Token = "0x400B5EF")]
private GameObject FPEMCIJJPMJ;
// Token: 0x0400B5F0 RID: 46576
[global::Cpp2IlInjected.FieldOffset(Offset = "0x350")]
[Token(Token = "0x400B5F0")]
private float OCIINOPLKPK;
// Token: 0x0400B5F1 RID: 46577
[global::Cpp2IlInjected.FieldOffset(Offset = "0x358")]
[Token(Token = "0x400B5F1")]
private List<Photon.Realtime.Player> GOFBMKPDJEM;
}
}