using System; using System.Collections.Generic; using Cpp2IlInjected; using RecRoom.Core; using RecRoom.Core.Combat; using UnityEngine; namespace RecRoom.Tools.Weapons { // Token: 0x02002B57 RID: 11095 [Token(Token = "0x2002B57")] public class Bow : RangedWeapon { // Token: 0x17003416 RID: 13334 // (get) Token: 0x06012A5A RID: 76378 RVA: 0x00445ECC File Offset: 0x004440CC // (set) Token: 0x06012A5B RID: 76379 RVA: 0x00445EE0 File Offset: 0x004440E0 [Token(Token = "0x17003416")] public BowString PKECNDENBBJ { [Token(Token = "0x6012A5A")] [Address(RVA = "0x10CF530", Offset = "0x10CE330", VA = "0x1810CF530")] get; [Token(Token = "0x6012A5B")] [Address(RVA = "0x10CF550", Offset = "0x10CE350", VA = "0x1810CF550")] set; } // Token: 0x17003417 RID: 13335 // (get) Token: 0x06012A5C RID: 76380 RVA: 0x00445EF4 File Offset: 0x004440F4 // (set) Token: 0x06012A5D RID: 76381 RVA: 0x00445F08 File Offset: 0x00444108 [Token(Token = "0x17003417")] public OffsetRotationRigidbodyPickup PPDBAOKBHPM { [Token(Token = "0x6012A5C")] [Address(RVA = "0x10CF540", Offset = "0x10CE340", VA = "0x1810CF540")] get; [Token(Token = "0x6012A5D")] [Address(RVA = "0x10CDD50", Offset = "0x10CCB50", VA = "0x1810CDD50")] private set; } // Token: 0x17003418 RID: 13336 // (get) Token: 0x06012A5E RID: 76382 RVA: 0x00445F1C File Offset: 0x0044411C [Token(Token = "0x17003418")] private Transform ABGIBGDPOPK { [Token(Token = "0x6012A5E")] [Address(RVA = "0x10CDCA0", Offset = "0x10CCAA0", VA = "0x1810CDCA0")] 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: 0x06012A5F RID: 76383 RVA: 0x00445F64 File Offset: 0x00444164 [Token(Token = "0x6012A5F")] [Address(RVA = "0x10CD600", Offset = "0x10CC400", VA = "0x1810CD600", Slot = "13")] protected override void Awake() { base.Awake(); Tool tool = this._tool; int num = 0; if (tool != num) { Tool tool2 = this._tool; MFBGLIHGCGO postPickupEvent = tool2.PostPickupEvent; Action action = new Action(this.HAAIALDMMEL); MFBGLIHGCGO mfbglihgcgo = MFBGLIHGCGO.BPJDFPACLMK(postPickupEvent, action); tool2.PostPickupEvent = mfbglihgcgo; Tool tool3 = this._tool; MFBGLIHGCGO postReleaseEvent = tool3.PostReleaseEvent; Action action2 = new Action(this.OIOCPLEKMEK); MFBGLIHGCGO mfbglihgcgo2 = MFBGLIHGCGO.BPJDFPACLMK(postReleaseEvent, action2); tool3.PostReleaseEvent = mfbglihgcgo2; } } // Token: 0x06012A60 RID: 76384 RVA: 0x00445FF4 File Offset: 0x004441F4 [Token(Token = "0x6012A60")] [Address(RVA = "0x10CF310", Offset = "0x10CE110", VA = "0x1810CF310", 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: 0x06012A61 RID: 76385 RVA: 0x00446060 File Offset: 0x00444260 [Token(Token = "0x6012A61")] [Address(RVA = "0x10CE020", Offset = "0x10CCE20", VA = "0x1810CE020")] 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; float num6 = this.maxDrawLength; float num8; float num7 = Mathf.InverseLerp((float)0, num6, num8); if (this.k__BackingField._tool.k__BackingField) { float num9 = this.maxDrawLength; this.BECEEBBEDEK = num8; num6 = num7; this.BNODONNECBF(num6); } Animator animator = this._animator; int num10 = 0; int ifaclfmifjb = Bow.IFACLFMIFJB; animator.Play(ifaclfmifjb, num10, num7); } // Token: 0x06012A62 RID: 76386 RVA: 0x0044622C File Offset: 0x0044442C [Token(Token = "0x6012A62")] [Address(RVA = "0x10CEB70", Offset = "0x10CD970", VA = "0x1810CEB70", Slot = "14")] protected override void OnDestroy() { Tool tool = this._tool; int num = 0; if (tool != num) { Tool tool2 = this._tool; MFBGLIHGCGO postPickupEvent = tool2.PostPickupEvent; Action action = new Action(this.HAAIALDMMEL); MFBGLIHGCGO mfbglihgcgo = MFBGLIHGCGO.GMNMHGMFGOL(postPickupEvent, action); tool2.PostPickupEvent = mfbglihgcgo; Tool tool3 = this._tool; MFBGLIHGCGO postReleaseEvent = tool3.PostReleaseEvent; Action action2 = new Action(this.OIOCPLEKMEK); MFBGLIHGCGO mfbglihgcgo2 = MFBGLIHGCGO.GMNMHGMFGOL(postReleaseEvent, action2); tool3.PostReleaseEvent = mfbglihgcgo2; 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); } } } IDisposable limbdhfpjin = this.LIMBDHFPJIN; this.GLFCOPMIKLH(limbdhfpjin); base.OnDestroy(); } // Token: 0x06012A63 RID: 76387 RVA: 0x00446318 File Offset: 0x00444518 [Token(Token = "0x6012A63")] [Address(RVA = "0x10CDD60", Offset = "0x10CCB60", VA = "0x1810CDD60")] 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.GIEOOLAGCKA(action, Scheduler.NEIJEKIKDOG.PreRender); this.LIMBDHFPJIN = disposable; } // Token: 0x06012A64 RID: 76388 RVA: 0x004463CC File Offset: 0x004445CC [Token(Token = "0x6012A64")] [Address(RVA = "0x10CE940", Offset = "0x10CD740", VA = "0x1810CE940")] 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.GLFCOPMIKLH(limbdhfpjin); } // Token: 0x06012A65 RID: 76389 RVA: 0x00446474 File Offset: 0x00444674 [Token(Token = "0x6012A65")] [Address(RVA = "0x10CF020", Offset = "0x10CDE20", VA = "0x1810CF020")] 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: 0x06012A66 RID: 76390 RVA: 0x00446578 File Offset: 0x00444778 [Token(Token = "0x6012A66")] [Address(RVA = "0x10CD420", Offset = "0x10CC220", VA = "0x1810CD420")] public void AuthorityFireArrowAtTargetPoint(float FDKJHMIHKHJ) { if (base.OGIBLNIIHDK && 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; Vector3 vector3; float z4 = vector3.z; } } } // Token: 0x06012A67 RID: 76391 RVA: 0x004465F0 File Offset: 0x004447F0 [Token(Token = "0x6012A67")] [Address(RVA = "0x10CDB20", Offset = "0x10CC920", VA = "0x1810CDB20")] private void CBNIMKCNHHM(Vector3 DJBBMJBBNHB, float FDKJHMIHKHJ) { if (base.OGIBLNIIHDK && 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: 0x06012A68 RID: 76392 RVA: 0x0044665C File Offset: 0x0044485C [Token(Token = "0x6012A68")] [Address(RVA = "0x10CEDA0", Offset = "0x10CDBA0", VA = "0x1810CEDA0")] public void OnStringPickup() { if (this.FireArrowOnStringPickupRelease) { this.ReadyArrow(); return; } } // Token: 0x06012A69 RID: 76393 RVA: 0x0044667C File Offset: 0x0044487C [Token(Token = "0x6012A69")] [Address(RVA = "0x10CEDC0", Offset = "0x10CDBC0", VA = "0x1810CEDC0")] public void OnStringRelease() { int num = 0; if ((this.FireArrowOnStringPickupRelease ? 1 : 0) != num && base.OGIBLNIIHDK && 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; float num5; float num4 = Mathf.InverseLerp((float)0, num3, num5); AnimationCurve animationCurve = this.arrowChargeOverDrawLengthCurve; num3 = num4; float num6 = animationCurve.Evaluate(num3); BowArrow dmkahhbdmgg2 = this.DMKAHHBDMGG; num5 = num6; Transform transform = dmkahhbdmgg2.transform; Vector3 vector4; float z4 = vector4.z; } } } // Token: 0x06012A6A RID: 76394 RVA: 0x00446754 File Offset: 0x00444954 [Token(Token = "0x6012A6A")] [Address(RVA = "0x10CE5F0", Offset = "0x10CD3F0", VA = "0x1810CE5F0", 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: 0x06012A6B RID: 76395 RVA: 0x00446834 File Offset: 0x00444A34 [Token(Token = "0x6012A6B")] [Address(RVA = "0x10CD870", Offset = "0x10CC670", VA = "0x1810CD870")] 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) { } } while (num != 0); } // Token: 0x06012A6C RID: 76396 RVA: 0x004468DC File Offset: 0x00444ADC [Token(Token = "0x6012A6C")] [Address(RVA = "0x10CD740", Offset = "0x10CC540", VA = "0x1810CD740")] 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: 0x06012A6D RID: 76397 RVA: 0x00446920 File Offset: 0x00444B20 [Token(Token = "0x6012A6D")] [Address(RVA = "0x10CF4B0", Offset = "0x10CE2B0", VA = "0x1810CF4B0")] public Bow() { } // Token: 0x0400C0AB RID: 49323 [FieldOffset(Offset = "0x2F0")] [Token(Token = "0x400C0AB")] [SerializeField] [Header("Charging")] private float maxDrawLength = 0.7f; // Token: 0x0400C0AC RID: 49324 [FieldOffset(Offset = "0x2F8")] [Token(Token = "0x400C0AC")] [SerializeField] private AnimationCurve arrowChargeOverDrawLengthCurve; // Token: 0x0400C0AD RID: 49325 [FieldOffset(Offset = "0x300")] [Token(Token = "0x400C0AD")] [SerializeField] private Transform rightHandedArrowShelfTransform; // Token: 0x0400C0AE RID: 49326 [FieldOffset(Offset = "0x308")] [Token(Token = "0x400C0AE")] [SerializeField] private Transform leftHandedArrowShelfTransform; // Token: 0x0400C0AF RID: 49327 [FieldOffset(Offset = "0x310")] [Token(Token = "0x400C0AF")] [SerializeField] private float minChargeArrowSpeed = 3f; // Token: 0x0400C0B0 RID: 49328 [FieldOffset(Offset = "0x318")] [Token(Token = "0x400C0B0")] [SerializeField] [Header("Audio and Visuals")] private RecRoomAudioClip limbCreakAudioClip; // Token: 0x0400C0B1 RID: 49329 [FieldOffset(Offset = "0x320")] [Token(Token = "0x400C0B1")] [SerializeField] private AnimationCurve pitchShiftCurve; // Token: 0x0400C0B2 RID: 49330 [FieldOffset(Offset = "0x328")] [Token(Token = "0x400C0B2")] [SerializeField] private float limbFeedbackDistanceInterval = 0.01f; // Token: 0x0400C0B3 RID: 49331 [FieldOffset(Offset = "0x330")] [Token(Token = "0x400C0B3")] [SerializeField] private RecRoomAudioClip arrowNockingAudioClip; // Token: 0x0400C0B4 RID: 49332 [FieldOffset(Offset = "0x338")] [Token(Token = "0x400C0B4")] [SerializeField] private Transform meshTransform; // Token: 0x0400C0B5 RID: 49333 [FieldOffset(Offset = "0x340")] [Token(Token = "0x400C0B5")] [NonSerialized] public bool FireArrowOnStringPickupRelease = true; // Token: 0x0400C0B6 RID: 49334 [FieldOffset(Offset = "0x348")] [Token(Token = "0x400C0B6")] private BowArrow DMKAHHBDMGG; // Token: 0x0400C0B7 RID: 49335 [FieldOffset(Offset = "0x350")] [Token(Token = "0x400C0B7")] private float BECEEBBEDEK; // Token: 0x0400C0B8 RID: 49336 [FieldOffset(Offset = "0x358")] [Token(Token = "0x400C0B8")] private IDisposable LIMBDHFPJIN; // Token: 0x0400C0B9 RID: 49337 [Token(Token = "0x400C0B9")] protected static readonly int IFACLFMIFJB = Animator.StringToHash("Pull"); } }