using System; using System.Collections.Generic; using Cpp2IlInjected; using RecRoom.Core; using RecRoom.Core.Combat; using UnityEngine; namespace RecRoom.Tools.Weapons { // Token: 0x02002C40 RID: 11328 [Token(Token = "0x2002C40")] public class Bow : RangedWeapon { // Token: 0x170034CA RID: 13514 // (get) Token: 0x06012E99 RID: 77465 RVA: 0x0044FBB8 File Offset: 0x0044DDB8 // (set) Token: 0x06012E9A RID: 77466 RVA: 0x0044FBCC File Offset: 0x0044DDCC [Token(Token = "0x170034CA")] public BowString PKECNDENBBJ { [Token(Token = "0x6012E99")] [Address(RVA = "0x1876D00", Offset = "0x1875D00", VA = "0x181876D00")] get; [Token(Token = "0x6012E9A")] [Address(RVA = "0x1876D10", Offset = "0x1875D10", VA = "0x181876D10")] set; } // Token: 0x170034CB RID: 13515 // (get) Token: 0x06012E9B RID: 77467 RVA: 0x0044FBE0 File Offset: 0x0044DDE0 // (set) Token: 0x06012E9C RID: 77468 RVA: 0x0044FBF4 File Offset: 0x0044DDF4 [Token(Token = "0x170034CB")] public OffsetRotationRigidbodyPickup PPDBAOKBHPM { [Token(Token = "0x6012E9B")] [Address(RVA = "0xEAED50", Offset = "0xEADD50", VA = "0x180EAED50")] get; [Token(Token = "0x6012E9C")] [Address(RVA = "0xEAF720", Offset = "0xEAE720", VA = "0x180EAF720")] private set; } // Token: 0x170034CC RID: 13516 // (get) Token: 0x06012E9D RID: 77469 RVA: 0x0044FC08 File Offset: 0x0044DE08 [Token(Token = "0x170034CC")] private Transform ABGIBGDPOPK { [Token(Token = "0x6012E9D")] [Address(RVA = "0x1875480", Offset = "0x1874480", VA = "0x181875480")] 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: 0x06012E9E RID: 77470 RVA: 0x0044FC50 File Offset: 0x0044DE50 [Token(Token = "0x6012E9E")] [Address(RVA = "0x1874DE0", Offset = "0x1873DE0", VA = "0x181874DE0", 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: 0x06012E9F RID: 77471 RVA: 0x0044FCE0 File Offset: 0x0044DEE0 [Token(Token = "0x6012E9F")] [Address(RVA = "0x1876AE0", Offset = "0x1875AE0", VA = "0x181876AE0", 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: 0x06012EA0 RID: 77472 RVA: 0x0044FD4C File Offset: 0x0044DF4C [Token(Token = "0x6012EA0")] [Address(RVA = "0x18757F0", Offset = "0x18747F0", VA = "0x1818757F0")] 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: 0x06012EA1 RID: 77473 RVA: 0x0044FF18 File Offset: 0x0044E118 [Token(Token = "0x6012EA1")] [Address(RVA = "0x1876340", Offset = "0x1875340", VA = "0x181876340", 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: 0x06012EA2 RID: 77474 RVA: 0x00450004 File Offset: 0x0044E204 [Token(Token = "0x6012EA2")] [Address(RVA = "0x1875530", Offset = "0x1874530", VA = "0x181875530")] 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: 0x06012EA3 RID: 77475 RVA: 0x004500B8 File Offset: 0x0044E2B8 [Token(Token = "0x6012EA3")] [Address(RVA = "0x1876110", Offset = "0x1875110", VA = "0x181876110")] 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: 0x06012EA4 RID: 77476 RVA: 0x00450160 File Offset: 0x0044E360 [Token(Token = "0x6012EA4")] [Address(RVA = "0x18767F0", Offset = "0x18757F0", VA = "0x1818767F0")] 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: 0x06012EA5 RID: 77477 RVA: 0x00450264 File Offset: 0x0044E464 [Token(Token = "0x6012EA5")] [Address(RVA = "0x1874C00", Offset = "0x1873C00", VA = "0x181874C00")] 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: 0x06012EA6 RID: 77478 RVA: 0x004502DC File Offset: 0x0044E4DC [Token(Token = "0x6012EA6")] [Address(RVA = "0x1875300", Offset = "0x1874300", VA = "0x181875300")] 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: 0x06012EA7 RID: 77479 RVA: 0x00450348 File Offset: 0x0044E548 [Token(Token = "0x6012EA7")] [Address(RVA = "0x1876570", Offset = "0x1875570", VA = "0x181876570")] public void OnStringPickup() { if (this.FireArrowOnStringPickupRelease) { this.ReadyArrow(); return; } } // Token: 0x06012EA8 RID: 77480 RVA: 0x00450368 File Offset: 0x0044E568 [Token(Token = "0x6012EA8")] [Address(RVA = "0x1876590", Offset = "0x1875590", VA = "0x181876590")] 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: 0x06012EA9 RID: 77481 RVA: 0x00450440 File Offset: 0x0044E640 [Token(Token = "0x6012EA9")] [Address(RVA = "0x1875DC0", Offset = "0x1874DC0", VA = "0x181875DC0", 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: 0x06012EAA RID: 77482 RVA: 0x00450520 File Offset: 0x0044E720 [Token(Token = "0x6012EAA")] [Address(RVA = "0x1875050", Offset = "0x1874050", VA = "0x181875050")] 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: 0x06012EAB RID: 77483 RVA: 0x004505C8 File Offset: 0x0044E7C8 [Token(Token = "0x6012EAB")] [Address(RVA = "0x1874F20", Offset = "0x1873F20", VA = "0x181874F20")] 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: 0x06012EAC RID: 77484 RVA: 0x0045060C File Offset: 0x0044E80C [Token(Token = "0x6012EAC")] [Address(RVA = "0x1876C80", Offset = "0x1875C80", VA = "0x181876C80")] public Bow() { } // Token: 0x0400C2BF RID: 49855 [FieldOffset(Offset = "0x2F0")] [Token(Token = "0x400C2BF")] [SerializeField] [Header("Charging")] private float maxDrawLength = 0.7f; // Token: 0x0400C2C0 RID: 49856 [FieldOffset(Offset = "0x2F8")] [Token(Token = "0x400C2C0")] [SerializeField] private AnimationCurve arrowChargeOverDrawLengthCurve; // Token: 0x0400C2C1 RID: 49857 [FieldOffset(Offset = "0x300")] [Token(Token = "0x400C2C1")] [SerializeField] private Transform rightHandedArrowShelfTransform; // Token: 0x0400C2C2 RID: 49858 [FieldOffset(Offset = "0x308")] [Token(Token = "0x400C2C2")] [SerializeField] private Transform leftHandedArrowShelfTransform; // Token: 0x0400C2C3 RID: 49859 [FieldOffset(Offset = "0x310")] [Token(Token = "0x400C2C3")] [SerializeField] private float minChargeArrowSpeed = 3f; // Token: 0x0400C2C4 RID: 49860 [FieldOffset(Offset = "0x318")] [Token(Token = "0x400C2C4")] [SerializeField] [Header("Audio and Visuals")] private RecRoomAudioClip limbCreakAudioClip; // Token: 0x0400C2C5 RID: 49861 [FieldOffset(Offset = "0x320")] [Token(Token = "0x400C2C5")] [SerializeField] private AnimationCurve pitchShiftCurve; // Token: 0x0400C2C6 RID: 49862 [FieldOffset(Offset = "0x328")] [Token(Token = "0x400C2C6")] [SerializeField] private float limbFeedbackDistanceInterval = 0.01f; // Token: 0x0400C2C7 RID: 49863 [FieldOffset(Offset = "0x330")] [Token(Token = "0x400C2C7")] [SerializeField] private RecRoomAudioClip arrowNockingAudioClip; // Token: 0x0400C2C8 RID: 49864 [FieldOffset(Offset = "0x338")] [Token(Token = "0x400C2C8")] [SerializeField] private Transform meshTransform; // Token: 0x0400C2C9 RID: 49865 [FieldOffset(Offset = "0x340")] [Token(Token = "0x400C2C9")] [NonSerialized] public bool FireArrowOnStringPickupRelease = true; // Token: 0x0400C2CA RID: 49866 [FieldOffset(Offset = "0x348")] [Token(Token = "0x400C2CA")] private BowArrow DMKAHHBDMGG; // Token: 0x0400C2CB RID: 49867 [FieldOffset(Offset = "0x350")] [Token(Token = "0x400C2CB")] private float BECEEBBEDEK; // Token: 0x0400C2CC RID: 49868 [FieldOffset(Offset = "0x358")] [Token(Token = "0x400C2CC")] private IDisposable LIMBDHFPJIN; // Token: 0x0400C2CD RID: 49869 [Token(Token = "0x400C2CD")] protected static readonly int IFACLFMIFJB = Animator.StringToHash("Pull"); } }