using System; using System.Collections.Generic; using System.Runtime.InteropServices; using Cpp2IlInjected; using RecRoom.Core; using RecRoom.Core.Combat; using UnityEngine; namespace RecRoom.Tools.Weapons { // Token: 0x0200266C RID: 9836 [Token(Token = "0x200266C")] [StructLayout(3)] public class Bow : RangedWeapon { // Token: 0x17002E50 RID: 11856 // (get) Token: 0x060110DB RID: 69851 RVA: 0x0040469C File Offset: 0x0040289C // (set) Token: 0x060110DC RID: 69852 RVA: 0x004046B0 File Offset: 0x004028B0 [Token(Token = "0x17002E50")] public BowString PKECNDENBBJ { [Token(Token = "0x60110DB")] [Address(RVA = "0xFCFC20", Offset = "0xFCE620", VA = "0x180FCFC20")] get; [Token(Token = "0x60110DC")] [Address(RVA = "0xFBD1C0", Offset = "0xFBBBC0", VA = "0x180FBD1C0")] set; } // Token: 0x17002E51 RID: 11857 // (get) Token: 0x060110DD RID: 69853 RVA: 0x004046C4 File Offset: 0x004028C4 // (set) Token: 0x060110DE RID: 69854 RVA: 0x004046D8 File Offset: 0x004028D8 [Token(Token = "0x17002E51")] public OffsetRotationRigidbodyPickup PPDBAOKBHPM { [Token(Token = "0x60110DD")] [Address(RVA = "0x14029B0", Offset = "0x14013B0", VA = "0x1814029B0")] get; [Token(Token = "0x60110DE")] [Address(RVA = "0x15A79E0", Offset = "0x15A63E0", VA = "0x1815A79E0")] private set; } // Token: 0x17002E52 RID: 11858 // (get) Token: 0x060110DF RID: 69855 RVA: 0x004046EC File Offset: 0x004028EC [Token(Token = "0x17002E52")] private Transform ABGIBGDPOPK { [Token(Token = "0x60110DF")] [Address(RVA = "0x15A7930", Offset = "0x15A6330", VA = "0x1815A7930")] get { Tool tool = this._tool; Transform transform = this.rightHandedArrowShelfTransform; PlayerHand k__BackingField = tool.k__BackingField; int num = 0; if (!(k__BackingField != num) || this._tool.k__BackingField.type == PlayerHand.PLLIKAOIPHP.Left) { } return transform; } } // Token: 0x060110E0 RID: 69856 RVA: 0x00404734 File Offset: 0x00402934 [Token(Token = "0x60110E0")] [Address(RVA = "0x15A7270", Offset = "0x15A5C70", VA = "0x1815A7270", Slot = "13")] protected override void Awake() { base.Awake(); Tool tool = this._tool; int num = 0; if (tool != num) { Tool tool2 = this._tool; ActionEvent postPickupEvent = tool2.PostPickupEvent; Action action = new Action(this.HAAIALDMMEL); ActionEvent actionEvent = postPickupEvent + action; tool2.PostPickupEvent = actionEvent; Tool tool3 = this._tool; ActionEvent postReleaseEvent = tool3.PostReleaseEvent; Action action2 = new Action(this.OIOCPLEKMEK); ActionEvent actionEvent2 = postReleaseEvent + action2; tool3.PostReleaseEvent = actionEvent2; } } // Token: 0x060110E1 RID: 69857 RVA: 0x004047C4 File Offset: 0x004029C4 [Token(Token = "0x60110E1")] [Address(RVA = "0x15A8F90", Offset = "0x15A7990", VA = "0x1815A8F90", Slot = "17")] protected override void Start() { base.Start(); BowString bowString = this.k__BackingField; int num = 0; if (bowString == num) { Debug.LogError(base.name + " is missing a bow string child."); } this.k__BackingField._tool.k__BackingField = false; if (this._tool.rigidbodyPickup == 0) { int num2 = 0; this.k__BackingField = num2; return; } } // Token: 0x060110E2 RID: 69858 RVA: 0x00404830 File Offset: 0x00402A30 [Token(Token = "0x60110E2")] [Address(RVA = "0x15A7CB0", Offset = "0x15A66B0", VA = "0x1815A7CB0")] private void JOOLEKEINAO() { OffsetRotationRigidbodyPickup offsetRotationRigidbodyPickup = this.k__BackingField; BowArrow dmkahhbdmgg = this.DMKAHHBDMGG; int num = 0; bool flag = dmkahhbdmgg != num; offsetRotationRigidbodyPickup.usingOffsetRotation = flag; BowArrow dmkahhbdmgg2 = this.DMKAHHBDMGG; int num2 = 0; if (dmkahhbdmgg2 != num2) { PlayerHand k__BackingField = this._tool.k__BackingField; int num3 = 0; if (k__BackingField != num3) { Transform transform = this.DMKAHHBDMGG.transform; Transform transform2 = this.k__BackingField.transform; Transform transform3 = this.DMKAHHBDMGG.transform; Tool tool = this._tool; Transform transform4 = this.rightHandedArrowShelfTransform; PlayerHand k__BackingField2 = tool.k__BackingField; int num4 = 0; int num5 = 0; if (!(k__BackingField2 != num5) || this._tool.k__BackingField.type == PlayerHand.PLLIKAOIPHP.Left) { } Vector3 up = Vector3.up; transform3.LookAt(transform4, num4); Transform transform5 = this.DMKAHHBDMGG.transform; PlayerHand k__BackingField3 = this._tool.k__BackingField; Tool tool2 = this._tool; OffsetRotationRigidbodyPickup offsetRotationRigidbodyPickup2 = this.k__BackingField; if (tool2.k__BackingField.type != PlayerHand.PLLIKAOIPHP.Left) { } Vector3 vector; float z = vector.z; offsetRotationRigidbodyPickup2.rotationUpVector.z = z; } } BowString bowString = this.k__BackingField; Transform transform6 = bowString.parentTool.transform; float z2 = bowString.KNHHAPILJGN.z; Transform transform7 = this.k__BackingField.transform; int num6 = 0; float num7 = this.maxDrawLength; float num8 = Mathf.InverseLerp((float)0, num7, (float)num6); if (this.k__BackingField._tool.k__BackingField) { float num9 = this.maxDrawLength; num7 = num8; this.BNODONNECBF(num7); } Animator animator = this._animator; int num10 = 0; int ifaclfmifjb = Bow.IFACLFMIFJB; animator.Play(ifaclfmifjb, num10, num8); } // Token: 0x060110E3 RID: 69859 RVA: 0x004049F4 File Offset: 0x00402BF4 [Token(Token = "0x60110E3")] [Address(RVA = "0x15A8800", Offset = "0x15A7200", VA = "0x1815A8800", Slot = "14")] protected override void OnDestroy() { Tool tool = this._tool; int num = 0; if (tool != num) { Tool tool2 = this._tool; ActionEvent postPickupEvent = tool2.PostPickupEvent; Action action = new Action(this.HAAIALDMMEL); ActionEvent actionEvent = postPickupEvent - action; tool2.PostPickupEvent = actionEvent; Tool tool3 = this._tool; ActionEvent postReleaseEvent = tool3.PostReleaseEvent; Action action2 = new Action(this.OIOCPLEKMEK); ActionEvent actionEvent2 = postReleaseEvent - action2; tool3.PostReleaseEvent = actionEvent2; Player k__BackingField = this._tool.k__BackingField; int num2 = 0; if (k__BackingField != num2) { Tool tool4 = this._tool; if (tool4.k__BackingField == tool4) { this._tool.k__BackingField.backpack.RemoveDisableFavoriteToolSelection(this); } } } base.OnDestroy(); } // Token: 0x060110E4 RID: 69860 RVA: 0x00404AD0 File Offset: 0x00402CD0 [Token(Token = "0x60110E4")] [Address(RVA = "0x15A79F0", Offset = "0x15A63F0", VA = "0x1815A79F0")] private void HAAIALDMMEL(Tool EGFEJGHDNAI) { PlayerHand k__BackingField = EGFEJGHDNAI.k__BackingField; int num = 0; if (k__BackingField != num) { PlayerHand.PLLIKAOIPHP type = EGFEJGHDNAI.k__BackingField.type; Transform transform = this.meshTransform; int num2 = 0; if (transform != num2) { Transform transform2 = this.meshTransform; Vector3 vector; float z = vector.z; if (type == PlayerHand.PLLIKAOIPHP.Right) { } Transform transform3 = this.meshTransform; } Player k__BackingField = EGFEJGHDNAI.k__BackingField; Player k__BackingField = Player.k__BackingField; if (k__BackingField == k__BackingField) { EGFEJGHDNAI.k__BackingField.backpack.AddDisableFavoriteToolSelection(this); } } Action action = new Action(this.JOOLEKEINAO); IDisposable disposable = this.QueueUpdate(action, Scheduler.QueueType.PreRender); this.LIMBDHFPJIN = disposable; } // Token: 0x060110E5 RID: 69861 RVA: 0x00404B84 File Offset: 0x00402D84 [Token(Token = "0x60110E5")] [Address(RVA = "0x15A85D0", Offset = "0x15A6FD0", VA = "0x1815A85D0")] private void OIOCPLEKMEK(Tool EGFEJGHDNAI) { Animator animator = this._animator; int num = 0; int num2 = 0; int num3 = 0; int ifaclfmifjb = Bow.IFACLFMIFJB; animator.Play(ifaclfmifjb, num3, (float)num2); BowArrow dmkahhbdmgg = this.DMKAHHBDMGG; int num4 = 0; if (dmkahhbdmgg != num4) { BowArrow dmkahhbdmgg2 = this.DMKAHHBDMGG; float z = Vector3.zero.z; dmkahhbdmgg2.FixedUpdate(); this.DMKAHHBDMGG = num; } Player k__BackingField = EGFEJGHDNAI.k__BackingField; Player k__BackingField = Player.k__BackingField; if (k__BackingField == k__BackingField) { EGFEJGHDNAI.k__BackingField.backpack.RemoveDisableFavoriteToolSelection(this); } IDisposable limbdhfpjin = this.LIMBDHFPJIN; this.SafeStopSchedule(limbdhfpjin); } // Token: 0x060110E6 RID: 69862 RVA: 0x00404C2C File Offset: 0x00402E2C [Token(Token = "0x60110E6")] [Address(RVA = "0x15A8CA0", Offset = "0x15A76A0", VA = "0x1815A8CA0")] public void ReadyArrow() { if (this._tool.k__BackingField && this.k__BackingField._tool.k__BackingField) { BowArrow dmkahhbdmgg = this.DMKAHHBDMGG; int num = 0; if (dmkahhbdmgg == num && !base.LAJLNCJKALH && base.NOOCGFJOMEM) { Bullet bullet; this.DMKAHHBDMGG = bullet; int num2 = 0; if (bullet != num2) { RecRoomAudioClip recRoomAudioClip = this.arrowNockingAudioClip; if (recRoomAudioClip != 0) { Transform transform = this.k__BackingField.transform; int num3 = 0; int num4 = 0; SFXAudioSource sfxaudioSource = AudioManager.Play3DSFX(recRoomAudioClip, transform, num4, num3); } Transform transform2 = this.DMKAHHBDMGG.transform; float z = Vector3.one.z; Transform transform3 = this.DMKAHHBDMGG.transform; Transform transform4 = this.k__BackingField.transform; Vector3 vector; float z2 = vector.z; Transform transform5 = this.DMKAHHBDMGG.transform; Transform transform6 = this.k__BackingField.transform; } } } } // Token: 0x060110E7 RID: 69863 RVA: 0x00404D30 File Offset: 0x00402F30 [Token(Token = "0x60110E7")] [Address(RVA = "0x15A7090", Offset = "0x15A5A90", VA = "0x1815A7090")] public void AuthorityFireArrowAtTargetPoint(float FDKJHMIHKHJ) { if (base.hasAuthority && this._tool.k__BackingField) { BowArrow dmkahhbdmgg = this.DMKAHHBDMGG; int num = 0; if (dmkahhbdmgg != num) { BowArrow dmkahhbdmgg2 = this.DMKAHHBDMGG; float z = this.OverrideTargetPoint.z; Transform transform = dmkahhbdmgg2.transform; Vector3 vector; float z2 = vector.z; Vector3 vector2; float z3 = vector2.z; } } } // Token: 0x060110E8 RID: 69864 RVA: 0x00404DA0 File Offset: 0x00402FA0 [Token(Token = "0x60110E8")] [Address(RVA = "0x15A77B0", Offset = "0x15A61B0", VA = "0x1815A77B0")] private void CBNIMKCNHHM(Vector3 DJBBMJBBNHB, float FDKJHMIHKHJ) { if (base.hasAuthority && this._tool.k__BackingField) { BowArrow dmkahhbdmgg = this.DMKAHHBDMGG; int num = 0; if (dmkahhbdmgg != num) { float num2 = Mathf.Clamp01(FDKJHMIHKHJ); float bulletFireSpeed = this.bulletFireSpeed; float num3 = Mathf.Lerp(this.minChargeArrowSpeed, bulletFireSpeed, FDKJHMIHKHJ); float z = DJBBMJBBNHB.z; Vector3 vector; float z2 = vector.z; } } } // Token: 0x060110E9 RID: 69865 RVA: 0x00404E0C File Offset: 0x0040300C [Token(Token = "0x60110E9")] [Address(RVA = "0x15A8A20", Offset = "0x15A7420", VA = "0x1815A8A20")] public void OnStringPickup() { if (this.FireArrowOnStringPickupRelease) { this.ReadyArrow(); return; } } // Token: 0x060110EA RID: 69866 RVA: 0x00404E2C File Offset: 0x0040302C [Token(Token = "0x60110EA")] [Address(RVA = "0x15A8A40", Offset = "0x15A7440", VA = "0x1815A8A40")] public void OnStringRelease() { int num = 0; if ((this.FireArrowOnStringPickupRelease ? 1 : 0) != num && base.hasAuthority && this._tool.k__BackingField) { BowArrow dmkahhbdmgg = this.DMKAHHBDMGG; int num2 = 0; if (dmkahhbdmgg != num2) { RigidbodyEx rigidbodyEx = this._tool.rigidbodyEx; Vector3 vector; float z = vector.z; RigidbodyEx rigidbodyEx2 = this.k__BackingField._tool.rigidbodyEx; Vector3 vector2; float z2 = vector2.z; Vector3 vector3; float z3 = vector3.z; float num3 = this.maxDrawLength; AnimationCurve animationCurve = this.arrowChargeOverDrawLengthCurve; float num4; num3 = num4; float num5 = animationCurve.Evaluate(num3); Transform transform = this.DMKAHHBDMGG.transform; Vector3 vector4; float z4 = vector4.z; } } } // Token: 0x060110EB RID: 69867 RVA: 0x00404EEC File Offset: 0x004030EC [Token(Token = "0x60110EB")] [Address(RVA = "0x15A8280", Offset = "0x15A6C80", VA = "0x1815A8280", Slot = "42")] protected override void OICJPFPBIIK(Vector3 DDHPAFKBMON, Quaternion IGPENJBJADK, Vector3 NHAOMEMANJA, float LFDFFDCJAAD, bool FLKHKHDBIOH, byte LNPHJIHHNPN) { BowArrow dmkahhbdmgg = this.DMKAHHBDMGG; int num = 0; if (dmkahhbdmgg != num) { Transform transform = this.DMKAHHBDMGG.transform; BowArrow dmkahhbdmgg2 = this.DMKAHHBDMGG; Vector3 vector; float z = vector.z; Transform transform2 = dmkahhbdmgg2.transform; Transform transform3 = this.DMKAHHBDMGG.transform; Vector3 vector2; float z2 = vector2.z; Transform transform4 = this.DMKAHHBDMGG.transform; BowArrow dmkahhbdmgg3 = this.DMKAHHBDMGG; Vector3 vector3; float z3 = vector3.z; Transform transform5 = dmkahhbdmgg3.transform; float z4 = NHAOMEMANJA.z; Tool tool = this._tool; this.DMKAHHBDMGG = (ulong)0L; PlayerHand k__BackingField = tool.k__BackingField; int num2 = 0; if (k__BackingField != num2) { PlayerHand k__BackingField2 = this._tool.k__BackingField; float num3; this._tool.k__BackingField.Vibrate(20, num3); } } } // Token: 0x060110EC RID: 69868 RVA: 0x00404FCC File Offset: 0x004031CC [Token(Token = "0x60110EC")] [Address(RVA = "0x15A74E0", Offset = "0x15A5EE0", VA = "0x1815A74E0")] private void BNODONNECBF(float MHIJAEKALAF) { int num; do { num = 0; RecRoomAudioClip recRoomAudioClip = this.limbCreakAudioClip; if (recRoomAudioClip != 0) { float num2 = this.pitchShiftCurve.Evaluate(MHIJAEKALAF); recRoomAudioClip.pitchShift = num2; RecRoomAudioClip recRoomAudioClip2 = this.limbCreakAudioClip; Transform transform = base.transform; int num3 = 0; int num4 = 0; SFXAudioSource sfxaudioSource = AudioManager.Play3DSFX(recRoomAudioClip2, transform, num4, num3); } Tool tool = this._tool; if ((tool.k__BackingField ? 1 : 0) == num) { break; } Player k__BackingField = tool.k__BackingField; IReadOnlyList bothHands = this._tool.k__BackingField.BothHands; if (bothHands != 0 && num < bothHands) { num += num; if (num != bothHands) { num++; } } if (bothHands != 0) { } if (num != -1) { } } while (num != 0); } // Token: 0x060110ED RID: 69869 RVA: 0x00405078 File Offset: 0x00403278 [Token(Token = "0x60110ED")] [Address(RVA = "0x15A73B0", Offset = "0x15A5DB0", VA = "0x1815A73B0")] private void BDABLDBAMMK(bool ADOBNBFBIFD) { Transform transform = this.meshTransform; int num = 0; if (transform != num) { Transform transform2 = this.meshTransform; Vector3 vector; float z = vector.z; if (ADOBNBFBIFD) { } Transform transform3 = this.meshTransform; } } // Token: 0x060110EE RID: 69870 RVA: 0x004050BC File Offset: 0x004032BC [Token(Token = "0x60110EE")] [Address(RVA = "0x15A9130", Offset = "0x15A7B30", VA = "0x1815A9130")] public Bow() { } // Token: 0x0400B551 RID: 46417 [global::Cpp2IlInjected.FieldOffset(Offset = "0x2E8")] [Token(Token = "0x400B551")] [SerializeField] [Header("Charging")] private float maxDrawLength = 0.7f; // Token: 0x0400B552 RID: 46418 [global::Cpp2IlInjected.FieldOffset(Offset = "0x2F0")] [Token(Token = "0x400B552")] [SerializeField] private AnimationCurve arrowChargeOverDrawLengthCurve; // Token: 0x0400B553 RID: 46419 [global::Cpp2IlInjected.FieldOffset(Offset = "0x2F8")] [Token(Token = "0x400B553")] [SerializeField] private Transform rightHandedArrowShelfTransform; // Token: 0x0400B554 RID: 46420 [global::Cpp2IlInjected.FieldOffset(Offset = "0x300")] [Token(Token = "0x400B554")] [SerializeField] private Transform leftHandedArrowShelfTransform; // Token: 0x0400B555 RID: 46421 [global::Cpp2IlInjected.FieldOffset(Offset = "0x308")] [Token(Token = "0x400B555")] [SerializeField] private float minChargeArrowSpeed = 3f; // Token: 0x0400B556 RID: 46422 [global::Cpp2IlInjected.FieldOffset(Offset = "0x310")] [Token(Token = "0x400B556")] [SerializeField] [Header("Audio and Visuals")] private RecRoomAudioClip limbCreakAudioClip; // Token: 0x0400B557 RID: 46423 [global::Cpp2IlInjected.FieldOffset(Offset = "0x318")] [Token(Token = "0x400B557")] [SerializeField] private AnimationCurve pitchShiftCurve; // Token: 0x0400B558 RID: 46424 [global::Cpp2IlInjected.FieldOffset(Offset = "0x320")] [Token(Token = "0x400B558")] [SerializeField] private float limbFeedbackDistanceInterval = 0.01f; // Token: 0x0400B559 RID: 46425 [global::Cpp2IlInjected.FieldOffset(Offset = "0x328")] [Token(Token = "0x400B559")] [SerializeField] private RecRoomAudioClip arrowNockingAudioClip; // Token: 0x0400B55A RID: 46426 [global::Cpp2IlInjected.FieldOffset(Offset = "0x330")] [Token(Token = "0x400B55A")] [SerializeField] private Transform meshTransform; // Token: 0x0400B55B RID: 46427 [global::Cpp2IlInjected.FieldOffset(Offset = "0x338")] [Token(Token = "0x400B55B")] [NonSerialized] public bool FireArrowOnStringPickupRelease = true; // Token: 0x0400B55C RID: 46428 [global::Cpp2IlInjected.FieldOffset(Offset = "0x340")] [Token(Token = "0x400B55C")] private BowArrow DMKAHHBDMGG; // Token: 0x0400B55D RID: 46429 [global::Cpp2IlInjected.FieldOffset(Offset = "0x348")] [Token(Token = "0x400B55D")] private float BECEEBBEDEK; // Token: 0x0400B55E RID: 46430 [global::Cpp2IlInjected.FieldOffset(Offset = "0x350")] [Token(Token = "0x400B55E")] private IDisposable LIMBDHFPJIN; // Token: 0x0400B55F RID: 46431 [Token(Token = "0x400B55F")] protected static readonly int IFACLFMIFJB = Animator.StringToHash("Pull"); } }