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 inputDownEvent = tool2.InputDownEvent; Action action = new Action(this.GDPCAAHGLJN); ActionEvent actionEvent = inputDownEvent + action; tool2.InputDownEvent = actionEvent; Tool tool3 = this._tool; ActionEvent inputPressedEvent = tool3.InputPressedEvent; Action action2 = new Action(this.LKFFMLDMLAB); ActionEvent actionEvent2 = inputPressedEvent + action2; tool3.InputPressedEvent = actionEvent2; Tool tool4 = this._tool; ActionEvent inputUpEvent = tool4.InputUpEvent; Action action3 = new Action(this.KBPEKMLDNHC); ActionEvent actionEvent3 = inputUpEvent + action3; tool4.InputUpEvent = actionEvent3; Tool tool5 = this._tool; ActionEvent prePickupEvent = tool5.PrePickupEvent; Action action4 = new Action(this.CBHLFMCNNGO); ActionEvent 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 inputDownEvent = tool2.InputDownEvent; Action action = new Action(this.GDPCAAHGLJN); ActionEvent actionEvent = inputDownEvent - action; tool2.InputDownEvent = actionEvent; Tool tool3 = this._tool; ActionEvent inputPressedEvent = tool3.InputPressedEvent; Action action2 = new Action(this.LKFFMLDMLAB); ActionEvent actionEvent2 = inputPressedEvent - action2; tool3.InputPressedEvent = actionEvent2; Tool tool4 = this._tool; ActionEvent inputUpEvent = tool4.InputUpEvent; Action action3 = new Action(this.KBPEKMLDNHC); ActionEvent actionEvent3 = inputUpEvent - action3; tool4.InputUpEvent = actionEvent3; Tool tool5 = this._tool; ActionEvent prePickupEvent = tool5.PrePickupEvent; Action action4 = new Action(this.CBHLFMCNNGO); ActionEvent 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.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 k__BackingField = this._tool.k__BackingField; int num4 = 0; if (k__BackingField != num4) { PlayerHand k__BackingField2 = this._tool.k__BackingField; float time2 = Time.time; float jpenaiggghl = this.JPENAIGGGHL; Tool tool = this._tool; this.JPENAIGGGHL = 1f; tool.k__BackingField.Vibrate(1, 0.1f); } PlayerHand k__BackingField3 = this._tool.k__BackingField; int num5 = 0; if (k__BackingField3 != num5) { PlayerHand k__BackingField4 = this._tool.k__BackingField; CrossbowBolt hcfpjdgbcdl2 = this.HCFPJDGBCDL; int num6 = 0; if (hcfpjdgbcdl2 != num6) { } } this._tool.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.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 k__BackingField = this._tool.k__BackingField; int num4 = 0; if (k__BackingField != num4) { PlayerHand k__BackingField2 = this._tool.k__BackingField; float num6; float num5 = Mathf.Lerp(0.5f, 1f, num6); PlayerHand k__BackingField3 = this._tool.k__BackingField; num6 = num5; 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; } }