440 lines
14 KiB
C#
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;
|
|
}
|
|
}
|