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 inputDownEvent = tool2.InputDownEvent; Action action = new Action(this.GDPCAAHGLJN); MFBGLIHGCGO mfbglihgcgo = MFBGLIHGCGO.BPJDFPACLMK(inputDownEvent, action); tool2.InputDownEvent = mfbglihgcgo; Tool tool3 = this._tool; MFBGLIHGCGO inputPressedEvent = tool3.InputPressedEvent; Action action2 = new Action(this.LKFFMLDMLAB); MFBGLIHGCGO mfbglihgcgo2 = MFBGLIHGCGO.BPJDFPACLMK(inputPressedEvent, action2); tool3.InputPressedEvent = mfbglihgcgo2; Tool tool4 = this._tool; MFBGLIHGCGO inputUpEvent = tool4.InputUpEvent; Action action3 = new Action(this.KBPEKMLDNHC); MFBGLIHGCGO mfbglihgcgo3 = MFBGLIHGCGO.BPJDFPACLMK(inputUpEvent, action3); tool4.InputUpEvent = mfbglihgcgo3; Tool tool5 = this._tool; MFBGLIHGCGO prePickupEvent = tool5.PrePickupEvent; Action action4 = new Action(this.CBHLFMCNNGO); MFBGLIHGCGO 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 inputDownEvent = tool2.InputDownEvent; Action action = new Action(this.GDPCAAHGLJN); MFBGLIHGCGO mfbglihgcgo = MFBGLIHGCGO.GMNMHGMFGOL(inputDownEvent, action); tool2.InputDownEvent = mfbglihgcgo; Tool tool3 = this._tool; MFBGLIHGCGO inputPressedEvent = tool3.InputPressedEvent; Action action2 = new Action(this.LKFFMLDMLAB); MFBGLIHGCGO mfbglihgcgo2 = MFBGLIHGCGO.GMNMHGMFGOL(inputPressedEvent, action2); tool3.InputPressedEvent = mfbglihgcgo2; Tool tool4 = this._tool; MFBGLIHGCGO inputUpEvent = tool4.InputUpEvent; Action action3 = new Action(this.KBPEKMLDNHC); MFBGLIHGCGO mfbglihgcgo3 = MFBGLIHGCGO.GMNMHGMFGOL(inputUpEvent, action3); tool4.InputUpEvent = mfbglihgcgo3; Tool tool5 = this._tool; MFBGLIHGCGO prePickupEvent = tool5.PrePickupEvent; Action action4 = new Action(this.CBHLFMCNNGO); MFBGLIHGCGO 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.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: 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.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 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: 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; } }