using System; using Cpp2IlInjected; using UnityEngine; namespace RootMotion.FinalIK { // Token: 0x020004DB RID: 1243 [Token(Token = "0x20004DB")] public class Recoil : OffsetModifier { // Token: 0x170002C5 RID: 709 // (get) Token: 0x06002BCB RID: 11211 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x170002C5")] public bool isFinished { [Token(Token = "0x6002BCB")] [Address(RVA = "0x504D60", Offset = "0x503D60", VA = "0x180504D60")] get { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } } // Token: 0x06002BCC RID: 11212 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002BCC")] [Address(RVA = "0x504CC0", Offset = "0x503CC0", VA = "0x180504CC0")] public void SetHandRotations(Quaternion leftHandRotation, Quaternion rightHandRotation) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06002BCD RID: 11213 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002BCD")] [Address(RVA = "0x503A50", Offset = "0x502A50", VA = "0x180503A50")] public void Fire(float magnitude) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06002BCE RID: 11214 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002BCE")] [Address(RVA = "0x503E00", Offset = "0x502E00", VA = "0x180503E00", Slot = "4")] protected override void OnModifyOffset() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06002BCF RID: 11215 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002BCF")] [Address(RVA = "0x5038A0", Offset = "0x5028A0", VA = "0x1805038A0")] private void AfterFBBIK() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06002BD0 RID: 11216 RVA: 0x00061520 File Offset: 0x0005F720 [Token(Token = "0x6002BD0")] [Address(RVA = "0x503850", Offset = "0x502850", VA = "0x180503850")] private void AfterAimIK() { if (this.aimIKSolvedLast) { IKSolverAim solver = this.aimIK.solver; float z = this.aimIKAxis.z; solver.axis.z = z; } } // Token: 0x170002C6 RID: 710 // (get) Token: 0x06002BD1 RID: 11217 RVA: 0x00061560 File Offset: 0x0005F760 [Token(Token = "0x170002C6")] private IKEffector primaryHandEffector { [Token(Token = "0x6002BD1")] [Address(RVA = "0x504D80", Offset = "0x503D80", VA = "0x180504D80")] get { FullBodyBipedIK ik = this.ik; if (this.handedness != Recoil.Handedness.Right) { return ik.solver.leftHandEffector; } return ik.solver.rightHandEffector; } } // Token: 0x170002C7 RID: 711 // (get) Token: 0x06002BD2 RID: 11218 RVA: 0x0006159C File Offset: 0x0005F79C [Token(Token = "0x170002C7")] private IKEffector secondaryHandEffector { [Token(Token = "0x6002BD2")] [Address(RVA = "0x504E20", Offset = "0x503E20", VA = "0x180504E20")] get { FullBodyBipedIK ik = this.ik; if (this.handedness != Recoil.Handedness.Right) { return ik.solver.rightHandEffector; } return ik.solver.leftHandEffector; } } // Token: 0x170002C8 RID: 712 // (get) Token: 0x06002BD3 RID: 11219 RVA: 0x000615D8 File Offset: 0x0005F7D8 [Token(Token = "0x170002C8")] private Transform primaryHand { [Token(Token = "0x6002BD3")] [Address(RVA = "0x504DD0", Offset = "0x503DD0", VA = "0x180504DD0")] get { FullBodyBipedIK ik = this.ik; if (this.handedness != Recoil.Handedness.Right) { IKEffector leftHandEffector = ik.solver.leftHandEffector; } return ik.solver.rightHandEffector.bone; } } // Token: 0x170002C9 RID: 713 // (get) Token: 0x06002BD4 RID: 11220 RVA: 0x00061618 File Offset: 0x0005F818 [Token(Token = "0x170002C9")] private Transform secondaryHand { [Token(Token = "0x6002BD4")] [Address(RVA = "0x504E70", Offset = "0x503E70", VA = "0x180504E70")] get { FullBodyBipedIK ik = this.ik; if (this.handedness != Recoil.Handedness.Right) { IKEffector rightHandEffector = ik.solver.rightHandEffector; } return ik.solver.leftHandEffector.bone; } } // Token: 0x06002BD5 RID: 11221 RVA: 0x00061658 File Offset: 0x0005F858 [Token(Token = "0x6002BD5")] [Address(RVA = "0x503BF0", Offset = "0x502BF0", VA = "0x180503BF0", Slot = "6")] protected override void OnDestroy() { base.OnDestroy(); FullBodyBipedIK ik = this.ik; int num = 0; if (ik != num && this.initiated) { IKSolverFullBodyBiped solver = this.ik.solver; IKSolver.UpdateDelegate onPostUpdate = solver.OnPostUpdate; IKSolver.UpdateDelegate updateDelegate = new IKSolver.UpdateDelegate(this.AfterFBBIK); Delegate @delegate = Delegate.Remove(onPostUpdate, updateDelegate); int num2 = 0; if (@delegate == 0 || @delegate != 0) { solver.OnPostUpdate = num2; AimIK aimIK = this.aimIK; int num3 = 0; if (!(aimIK != num3)) { return; } IKSolverAim solver2 = this.aimIK.solver; IKSolver.UpdateDelegate onPostUpdate2 = solver2.OnPostUpdate; IKSolver.UpdateDelegate updateDelegate2 = new IKSolver.UpdateDelegate(this.AfterAimIK); Delegate delegate2 = Delegate.Remove(onPostUpdate2, updateDelegate2); if (delegate2 == 0 || delegate2 != 0) { solver2.OnPostUpdate = delegate2; return; } } throw new InvalidCastException(); } } // Token: 0x06002BD6 RID: 11222 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002BD6")] [Address(RVA = "0x504CF0", Offset = "0x503CF0", VA = "0x180504CF0")] public Recoil() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x04003529 RID: 13609 [FieldOffset(Offset = "0x30")] [Token(Token = "0x4003529")] [Tooltip("Reference to the AimIK component. Optional, only used to getting the aiming direction.")] public AimIK aimIK; // Token: 0x0400352A RID: 13610 [FieldOffset(Offset = "0x38")] [Token(Token = "0x400352A")] [Tooltip("Set this true if you are using IKExecutionOrder.cs or a custom script to force AimIK solve after FBBIK.")] public bool aimIKSolvedLast; // Token: 0x0400352B RID: 13611 [FieldOffset(Offset = "0x3C")] [Token(Token = "0x400352B")] [Tooltip("Which hand is holding the weapon?")] public Recoil.Handedness handedness; // Token: 0x0400352C RID: 13612 [FieldOffset(Offset = "0x40")] [Token(Token = "0x400352C")] [Tooltip("Check for 2-handed weapons.")] public bool twoHanded; // Token: 0x0400352D RID: 13613 [FieldOffset(Offset = "0x48")] [Token(Token = "0x400352D")] [Tooltip("Weight curve for the recoil offsets. Recoil procedure is as long as this curve.")] public AnimationCurve recoilWeight; // Token: 0x0400352E RID: 13614 [FieldOffset(Offset = "0x50")] [Token(Token = "0x400352E")] [Tooltip("How much is the magnitude randomized each time Recoil is called?")] public float magnitudeRandom; // Token: 0x0400352F RID: 13615 [FieldOffset(Offset = "0x54")] [Token(Token = "0x400352F")] [Tooltip("How much is the rotation randomized each time Recoil is called?")] public Vector3 rotationRandom; // Token: 0x04003530 RID: 13616 [FieldOffset(Offset = "0x60")] [Token(Token = "0x4003530")] [Tooltip("Rotating the primary hand bone for the recoil (in local space).")] public Vector3 handRotationOffset; // Token: 0x04003531 RID: 13617 [FieldOffset(Offset = "0x6C")] [Token(Token = "0x4003531")] [Tooltip("Time of blending in another recoil when doing automatic fire.")] public float blendTime; // Token: 0x04003532 RID: 13618 [FieldOffset(Offset = "0x70")] [Token(Token = "0x4003532")] [Space] [Space(10f)] [Tooltip("FBBIK effector position offsets for the recoil (in aiming direction space).")] public Recoil.RecoilOffset[] offsets; // Token: 0x04003533 RID: 13619 [FieldOffset(Offset = "0x78")] [Token(Token = "0x4003533")] [HideInInspector] public Quaternion rotationOffset; // Token: 0x04003534 RID: 13620 [FieldOffset(Offset = "0x88")] [Token(Token = "0x4003534")] private float magnitudeMlp; // Token: 0x04003535 RID: 13621 [FieldOffset(Offset = "0x8C")] [Token(Token = "0x4003535")] private float endTime; // Token: 0x04003536 RID: 13622 [FieldOffset(Offset = "0x90")] [Token(Token = "0x4003536")] private Quaternion handRotation; // Token: 0x04003537 RID: 13623 [FieldOffset(Offset = "0xA0")] [Token(Token = "0x4003537")] private Quaternion secondaryHandRelativeRotation; // Token: 0x04003538 RID: 13624 [FieldOffset(Offset = "0xB0")] [Token(Token = "0x4003538")] private Quaternion randomRotation; // Token: 0x04003539 RID: 13625 [FieldOffset(Offset = "0xC0")] [Token(Token = "0x4003539")] private float length; // Token: 0x0400353A RID: 13626 [FieldOffset(Offset = "0xC4")] [Token(Token = "0x400353A")] private bool initiated; // Token: 0x0400353B RID: 13627 [FieldOffset(Offset = "0xC8")] [Token(Token = "0x400353B")] private float blendWeight; // Token: 0x0400353C RID: 13628 [FieldOffset(Offset = "0xCC")] [Token(Token = "0x400353C")] private float w; // Token: 0x0400353D RID: 13629 [FieldOffset(Offset = "0xD0")] [Token(Token = "0x400353D")] private Quaternion primaryHandRotation; // Token: 0x0400353E RID: 13630 [FieldOffset(Offset = "0xE0")] [Token(Token = "0x400353E")] private bool handRotationsSet; // Token: 0x0400353F RID: 13631 [FieldOffset(Offset = "0xE4")] [Token(Token = "0x400353F")] private Vector3 aimIKAxis; // Token: 0x020004DC RID: 1244 [Token(Token = "0x20004DC")] [Serializable] public class RecoilOffset { // Token: 0x06002BD7 RID: 11223 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002BD7")] [Address(RVA = "0x69BA80", Offset = "0x69AA80", VA = "0x18069BA80")] public void Start() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06002BD8 RID: 11224 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002BD8")] [Address(RVA = "0x69B7D0", Offset = "0x69A7D0", VA = "0x18069B7D0")] public void Apply(IKSolverFullBodyBiped solver, Quaternion rotation, float masterWeight, float length, float timeLeft) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06002BD9 RID: 11225 RVA: 0x00061734 File Offset: 0x0005F934 [Token(Token = "0x6002BD9")] [Address(RVA = "0x69BB30", Offset = "0x69AB30", VA = "0x18069BB30")] public RecoilOffset() { } // Token: 0x04003540 RID: 13632 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4003540")] [Tooltip("Offset vector for the associated effector when doing recoil.")] public Vector3 offset; // Token: 0x04003541 RID: 13633 [FieldOffset(Offset = "0x1C")] [Token(Token = "0x4003541")] [Range(0f, 1f)] [Tooltip("When firing before the last recoil has faded, how much of the current recoil offset will be maintained?")] public float additivity = 1f; // Token: 0x04003542 RID: 13634 [FieldOffset(Offset = "0x20")] [Token(Token = "0x4003542")] [Tooltip("Max additive recoil for automatic fire.")] public float maxAdditiveOffsetMag = 0.2f; // Token: 0x04003543 RID: 13635 [FieldOffset(Offset = "0x28")] [Token(Token = "0x4003543")] [Tooltip("Linking this recoil offset to FBBIK effectors.")] public Recoil.RecoilOffset.EffectorLink[] effectorLinks; // Token: 0x04003544 RID: 13636 [FieldOffset(Offset = "0x30")] [Token(Token = "0x4003544")] private Vector3 additiveOffset; // Token: 0x04003545 RID: 13637 [FieldOffset(Offset = "0x3C")] [Token(Token = "0x4003545")] private Vector3 lastOffset; // Token: 0x020004DD RID: 1245 [Token(Token = "0x20004DD")] [Serializable] public class EffectorLink { // Token: 0x06002BDA RID: 11226 RVA: 0x0003DF9B File Offset: 0x0003C19B [Token(Token = "0x6002BDA")] [Address(RVA = "0x36ABD0", Offset = "0x369BD0", VA = "0x18036ABD0")] public EffectorLink() { } // Token: 0x04003546 RID: 13638 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4003546")] [Tooltip("Type of the FBBIK effector to use")] public FullBodyBipedEffector effector; // Token: 0x04003547 RID: 13639 [FieldOffset(Offset = "0x14")] [Token(Token = "0x4003547")] [Tooltip("Weight of using this effector")] public float weight; } } // Token: 0x020004DE RID: 1246 [Token(Token = "0x20004DE")] [Serializable] public enum Handedness { // Token: 0x04003549 RID: 13641 [Token(Token = "0x4003549")] Right, // Token: 0x0400354A RID: 13642 [Token(Token = "0x400354A")] Left } } }