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

440 lines
14 KiB
C#

using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using Photon.Pun;
using RecRoom.Core;
using RecRoom.Core.Combat;
using RecRoom.Networking.RPC;
using UnityEngine;
namespace RecRoom.Tools.Weapons
{
// Token: 0x02002671 RID: 9841
[Token(Token = "0x2002671")]
[StructLayout(3)]
public class Crossbow : RangedWeapon
{
// Token: 0x06011115 RID: 69909 RVA: 0x00405BDC File Offset: 0x00403DDC
[Token(Token = "0x6011115")]
[Address(RVA = "0x193E120", Offset = "0x193CB20", VA = "0x18193E120", 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;
}
}
Tool tool = this._tool;
int num3 = 0;
if (tool != num3)
{
Tool tool2 = this._tool;
ActionEvent<Tool> inputDownEvent = tool2.InputDownEvent;
Action<Tool> action = new Action(this.GDPCAAHGLJN);
ActionEvent<Tool> actionEvent = inputDownEvent + action;
tool2.InputDownEvent = actionEvent;
Tool tool3 = this._tool;
ActionEvent<Tool> inputPressedEvent = tool3.InputPressedEvent;
Action<Tool> action2 = new Action(this.LKFFMLDMLAB);
ActionEvent<Tool> actionEvent2 = inputPressedEvent + action2;
tool3.InputPressedEvent = actionEvent2;
Tool tool4 = this._tool;
ActionEvent<Tool> inputUpEvent = tool4.InputUpEvent;
Action<Tool> action3 = new Action(this.KBPEKMLDNHC);
ActionEvent<Tool> actionEvent3 = inputUpEvent + action3;
tool4.InputUpEvent = actionEvent3;
Tool tool5 = this._tool;
ActionEvent<Tool> prePickupEvent = tool5.PrePickupEvent;
Action<Tool> action4 = new Action(this.CBHLFMCNNGO);
ActionEvent<Tool> actionEvent4 = prePickupEvent + action4;
tool5.PrePickupEvent = actionEvent4;
}
}
// Token: 0x06011116 RID: 69910 RVA: 0x00405D6C File Offset: 0x00403F6C
[Token(Token = "0x6011116")]
[Address(RVA = "0x193EF40", Offset = "0x193D940", VA = "0x18193EF40", Slot = "14")]
protected override void OnDestroy()
{
base.OnDestroy();
Tool tool = this._tool;
int num = 0;
if (tool != num)
{
Tool tool2 = this._tool;
ActionEvent<Tool> inputDownEvent = tool2.InputDownEvent;
Action<Tool> action = new Action(this.GDPCAAHGLJN);
ActionEvent<Tool> actionEvent = inputDownEvent - action;
tool2.InputDownEvent = actionEvent;
Tool tool3 = this._tool;
ActionEvent<Tool> inputPressedEvent = tool3.InputPressedEvent;
Action<Tool> action2 = new Action(this.LKFFMLDMLAB);
ActionEvent<Tool> actionEvent2 = inputPressedEvent - action2;
tool3.InputPressedEvent = actionEvent2;
Tool tool4 = this._tool;
ActionEvent<Tool> inputUpEvent = tool4.InputUpEvent;
Action<Tool> action3 = new Action(this.KBPEKMLDNHC);
ActionEvent<Tool> actionEvent3 = inputUpEvent - action3;
tool4.InputUpEvent = actionEvent3;
Tool tool5 = this._tool;
ActionEvent<Tool> prePickupEvent = tool5.PrePickupEvent;
Action<Tool> action4 = new Action(this.CBHLFMCNNGO);
ActionEvent<Tool> actionEvent4 = prePickupEvent - action4;
tool5.PrePickupEvent = actionEvent4;
}
}
// Token: 0x06011117 RID: 69911 RVA: 0x00405E64 File Offset: 0x00404064
[Token(Token = "0x6011117")]
[Address(RVA = "0x193F2C0", Offset = "0x193DCC0", VA = "0x18193F2C0")]
private void Update()
{
if (base.hasAuthority)
{
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: 0x06011118 RID: 69912 RVA: 0x00405FD0 File Offset: 0x004041D0
[Token(Token = "0x6011118")]
[Address(RVA = "0x193EF10", Offset = "0x193D910", VA = "0x18193EF10")]
private void OLCEMKOMPPN(int AHCCAMGIOEJ = 1, float LAIPKAHGIJF = 0.1f)
{
this._tool.<PBCNKLKCIHJ>k__BackingField.Vibrate(AHCCAMGIOEJ, LAIPKAHGIJF);
}
// Token: 0x06011119 RID: 69913 RVA: 0x00405FF8 File Offset: 0x004041F8
[Token(Token = "0x6011119")]
[Address(RVA = "0x193E650", Offset = "0x193D050", VA = "0x18193E650")]
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.SafeStopSchedule(coajdgnkahj);
this.COAJDGNKAHJ = (ulong)0L;
throw new NullReferenceException();
}
// Token: 0x0601111A RID: 69914 RVA: 0x00406098 File Offset: 0x00404298
[Token(Token = "0x601111A")]
[Address(RVA = "0x193E600", Offset = "0x193D000", VA = "0x18193E600")]
private void GDPCAAHGLJN(Tool NBHJPDBHDHB)
{
this.KGDIPIBPPMM = true;
if (base.hasAuthority && !this.CKGCBEODNEM())
{
this._weaponAudio.OnMisfire();
return;
}
}
// Token: 0x0601111B RID: 69915 RVA: 0x004060D0 File Offset: 0x004042D0
[Token(Token = "0x601111B")]
[Address(RVA = "0x193EAF0", Offset = "0x193D4F0", VA = "0x18193EAF0")]
private void LKFFMLDMLAB(Tool NBHJPDBHDHB)
{
if (base.hasAuthority)
{
CrossbowBolt hcfpjdgbcdl = this.HCFPJDGBCDL;
int num = 0;
if (hcfpjdgbcdl == num && this.KGDIPIBPPMM)
{
bool flag = this.CKGCBEODNEM();
return;
}
}
}
// Token: 0x0601111C RID: 69916 RVA: 0x0040610C File Offset: 0x0040430C
[Token(Token = "0x601111C")]
[Address(RVA = "0x193E9D0", Offset = "0x193D3D0", VA = "0x18193E9D0")]
private void KBPEKMLDNHC(Tool NBHJPDBHDHB)
{
this.KGDIPIBPPMM = false;
if (base.hasAuthority)
{
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: 0x0601111D RID: 69917 RVA: 0x00406160 File Offset: 0x00404360
[Token(Token = "0x601111D")]
[Address(RVA = "0x193E4C0", Offset = "0x193CEC0", VA = "0x18193E4C0")]
private void CBHLFMCNNGO(Tool EGFEJGHDNAI)
{
this.KGDIPIBPPMM = false;
}
// Token: 0x0601111E RID: 69918 RVA: 0x00406174 File Offset: 0x00404374
[Token(Token = "0x601111E")]
[Address(RVA = "0x193E4D0", Offset = "0x193CED0", VA = "0x18193E4D0")]
private bool CKGCBEODNEM()
{
if (base.hasAuthority)
{
CrossbowBolt hcfpjdgbcdl = this.HCFPJDGBCDL;
int num = 0;
if (hcfpjdgbcdl == num)
{
if (base.NOOCGFJOMEM)
{
if (!base.MJDHKAHMGMO && !base.LAJLNCJKALH)
{
PhotonView photonView = base.photonView;
RPCActions.RPCAction rpcaction = new RPCActions.RPCAction(this.RpcStartChargingBolt);
photonView.RpcAll(rpcaction);
return true;
}
}
else
{
this.MIKJDLDPIEP();
}
}
}
throw new NullReferenceException();
}
// Token: 0x0601111F RID: 69919 RVA: 0x004061E4 File Offset: 0x004043E4
[Token(Token = "0x601111F")]
[Address(RVA = "0x193F120", Offset = "0x193DB20", VA = "0x18193F120")]
[PunRPC]
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.QueueUpdate(action, Scheduler.QueueType.PreRender);
this.COAJDGNKAHJ = disposable;
}
}
// Token: 0x06011120 RID: 69920 RVA: 0x00406270 File Offset: 0x00404470
[Token(Token = "0x6011120")]
[Address(RVA = "0x193EB80", Offset = "0x193D580", VA = "0x18193EB80", 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: 0x06011121 RID: 69921 RVA: 0x00406344 File Offset: 0x00404544
[Token(Token = "0x6011121")]
[Address(RVA = "0x193F700", Offset = "0x193E100", VA = "0x18193F700")]
public Crossbow()
{
float z = Vector3.zero.z;
this.CJKFKOBACAJ.z = z;
float z2 = Vector3.zero.z;
this.APHDEMHLIHN.z = z2;
base..ctor();
}
// Token: 0x0400B575 RID: 46453
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2E8")]
[Token(Token = "0x400B575")]
[SerializeField]
[Header("Crossbow")]
private FloatValueCurve speedOverDrawTime;
// Token: 0x0400B576 RID: 46454
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2F0")]
[Token(Token = "0x400B576")]
[SerializeField]
private Transform boltNockingTransform;
// Token: 0x0400B577 RID: 46455
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2F8")]
[Token(Token = "0x400B577")]
[SerializeField]
private Transform maxPullTransform;
// Token: 0x0400B578 RID: 46456
[global::Cpp2IlInjected.FieldOffset(Offset = "0x300")]
[Token(Token = "0x400B578")]
[SerializeField]
private float pullingHapticFrequency = 5f;
// Token: 0x0400B579 RID: 46457
[Token(Token = "0x400B579")]
private static readonly int EPHFPALCMHI = Animator.StringToHash("Pull");
// Token: 0x0400B57A RID: 46458
[global::Cpp2IlInjected.FieldOffset(Offset = "0x308")]
[Token(Token = "0x400B57A")]
private CrossbowBolt HCFPJDGBCDL;
// Token: 0x0400B57B RID: 46459
[global::Cpp2IlInjected.FieldOffset(Offset = "0x310")]
[Token(Token = "0x400B57B")]
private float KFANGBLMCKK;
// Token: 0x0400B57C RID: 46460
[global::Cpp2IlInjected.FieldOffset(Offset = "0x314")]
[Token(Token = "0x400B57C")]
private float JPENAIGGGHL;
// Token: 0x0400B57D RID: 46461
[global::Cpp2IlInjected.FieldOffset(Offset = "0x318")]
[Token(Token = "0x400B57D")]
private float NNGCCMIOPJH;
// Token: 0x0400B57E RID: 46462
[global::Cpp2IlInjected.FieldOffset(Offset = "0x31C")]
[Token(Token = "0x400B57E")]
private bool EBFNNLEKEEP;
// Token: 0x0400B57F RID: 46463
[global::Cpp2IlInjected.FieldOffset(Offset = "0x320")]
[Token(Token = "0x400B57F")]
private Vector3 CJKFKOBACAJ;
// Token: 0x0400B580 RID: 46464
[global::Cpp2IlInjected.FieldOffset(Offset = "0x32C")]
[Token(Token = "0x400B580")]
private Vector3 APHDEMHLIHN;
// Token: 0x0400B581 RID: 46465
[global::Cpp2IlInjected.FieldOffset(Offset = "0x338")]
[Token(Token = "0x400B581")]
private bool KGDIPIBPPMM;
// Token: 0x0400B582 RID: 46466
[global::Cpp2IlInjected.FieldOffset(Offset = "0x340")]
[Token(Token = "0x400B582")]
private IDisposable COAJDGNKAHJ;
}
}