using System; using System.Runtime.CompilerServices; using Cpp2IlInjected; using UnityEngine; namespace RootMotion.FinalIK { // Token: 0x020004C5 RID: 1221 [Token(Token = "0x20004C5")] public class HitReaction : OffsetModifier { // Token: 0x170002B5 RID: 693 // (get) Token: 0x06002B60 RID: 11104 RVA: 0x000609EC File Offset: 0x0005EBEC [Token(Token = "0x170002B5")] public bool inProgress { [Token(Token = "0x6002B60")] [Address(RVA = "0x1704FE0", Offset = "0x1703FE0", VA = "0x181704FE0")] get { HitReaction.HitPointEffector[] array = this.effectorHitPoints; int num = 0; int length = array.Length; if (num < length) { if (array[num].inProgress) { return true; } num++; } HitReaction.HitPointBone[] array2 = this.boneHitPoints; int length2 = array2.Length; if (num >= length2) { throw new NullReferenceException(); } if (!array2[num].inProgress) { num++; } return true; } } // Token: 0x06002B61 RID: 11105 RVA: 0x00060A50 File Offset: 0x0005EC50 [Token(Token = "0x6002B61")] [Address(RVA = "0x1704EE0", Offset = "0x1703EE0", VA = "0x181704EE0", Slot = "4")] protected override void OnModifyOffset() { HitReaction.HitPointEffector[] array = this.effectorHitPoints; int num = 0; int length = array.Length; if (num < length) { FullBodyBipedIK ik = this.ik; HitReaction.HitPointEffector hitPointEffector = array[num]; float weight = this.weight; IKSolverFullBodyBiped solver = ik.solver; hitPointEffector.Apply(solver, weight); num++; } HitReaction.HitPointBone[] array2 = this.boneHitPoints; int length2 = array2.Length; if (num < length2) { FullBodyBipedIK ik2 = this.ik; HitReaction.HitPointBone hitPointBone = array2[num]; float weight2 = this.weight; IKSolverFullBodyBiped solver2 = ik2.solver; hitPointBone.Apply(solver2, weight2); num++; } } // Token: 0x06002B62 RID: 11106 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002B62")] [Address(RVA = "0x1704C50", Offset = "0x1703C50", VA = "0x181704C50")] public void Hit(Collider collider, Vector3 force, Vector3 point) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06002B63 RID: 11107 RVA: 0x00060AF0 File Offset: 0x0005ECF0 [Token(Token = "0x6002B63")] [Address(RVA = "0xDA8200", Offset = "0xDA7200", VA = "0x180DA8200")] public HitReaction() { } // Token: 0x040034C9 RID: 13513 [FieldOffset(Offset = "0x30")] [Token(Token = "0x40034C9")] [Tooltip("Hit points for the FBBIK effectors")] public HitReaction.HitPointEffector[] effectorHitPoints; // Token: 0x040034CA RID: 13514 [FieldOffset(Offset = "0x38")] [Token(Token = "0x40034CA")] [Tooltip(" Hit points for bones without an effector, such as the head")] public HitReaction.HitPointBone[] boneHitPoints; // Token: 0x020004C6 RID: 1222 [Token(Token = "0x20004C6")] [Serializable] public abstract class HitPoint { // Token: 0x170002B6 RID: 694 // (get) Token: 0x06002B64 RID: 11108 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x170002B6")] public bool inProgress { [Token(Token = "0x6002B64")] [Address(RVA = "0x16A3CD0", Offset = "0x16A2CD0", VA = "0x1816A3CD0")] get { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } } // Token: 0x170002B7 RID: 695 // (get) Token: 0x06002B65 RID: 11109 RVA: 0x00060B04 File Offset: 0x0005ED04 // (set) Token: 0x06002B66 RID: 11110 RVA: 0x00060B18 File Offset: 0x0005ED18 [Token(Token = "0x170002B7")] private protected float crossFader { [Token(Token = "0x6002B65")] [Address(RVA = "0x5C2880", Offset = "0x5C1880", VA = "0x1805C2880")] protected get; [Token(Token = "0x6002B66")] [Address(RVA = "0x5C2910", Offset = "0x5C1910", VA = "0x1805C2910")] private set; } // Token: 0x170002B8 RID: 696 // (get) Token: 0x06002B67 RID: 11111 RVA: 0x00060B2C File Offset: 0x0005ED2C // (set) Token: 0x06002B68 RID: 11112 RVA: 0x00060B40 File Offset: 0x0005ED40 [Token(Token = "0x170002B8")] private protected float timer { [Token(Token = "0x6002B67")] [Address(RVA = "0xB94720", Offset = "0xB93720", VA = "0x180B94720")] protected get; [Token(Token = "0x6002B68")] [Address(RVA = "0x13B7D20", Offset = "0x13B6D20", VA = "0x1813B7D20")] private set; } // Token: 0x170002B9 RID: 697 // (get) Token: 0x06002B69 RID: 11113 RVA: 0x000020D3 File Offset: 0x000002D3 // (set) Token: 0x06002B6A RID: 11114 RVA: 0x00060B54 File Offset: 0x0005ED54 [Token(Token = "0x170002B9")] private protected Vector3 force { [Token(Token = "0x6002B69")] [Address(RVA = "0x1318D00", Offset = "0x1317D00", VA = "0x181318D00")] [CompilerGenerated] protected get { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } [Token(Token = "0x6002B6A")] [Address(RVA = "0x1318DF0", Offset = "0x1317DF0", VA = "0x181318DF0")] [CompilerGenerated] private set { float z = value.z; this.k__BackingField.z = z; } } // Token: 0x170002BA RID: 698 // (get) Token: 0x06002B6B RID: 11115 RVA: 0x000020D3 File Offset: 0x000002D3 // (set) Token: 0x06002B6C RID: 11116 RVA: 0x00060B74 File Offset: 0x0005ED74 [Token(Token = "0x170002BA")] private protected Vector3 point { [Token(Token = "0x6002B6B")] [Address(RVA = "0x3F66C0", Offset = "0x3F56C0", VA = "0x1803F66C0")] [CompilerGenerated] protected get { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } [Token(Token = "0x6002B6C")] [Address(RVA = "0x3F6740", Offset = "0x3F5740", VA = "0x1803F6740")] [CompilerGenerated] private set { float z = value.z; this.k__BackingField.z = z; } } // Token: 0x06002B6D RID: 11117 RVA: 0x00060B94 File Offset: 0x0005ED94 [Token(Token = "0x6002B6D")] [Address(RVA = "0x16A3BB0", Offset = "0x16A2BB0", VA = "0x1816A3BB0")] public void Hit(Vector3 force, Vector3 point) { int num = 0; float num2 = this.GetLength(); this.length = num2; if (num < (int)num2) { this.k__BackingField = 0f; if (this.crossFadeTime > (float)num) { } int num3 = 0; this.crossFadeSpeed = (float)num3; this.CrossFadeStart(); float z = force.z; this.k__BackingField.z = z; float z2 = point.z; this.k__BackingField.z = z2; this.k__BackingField = 0f; } Debug.LogError("Hit Point WeightCurve length is zero."); } // Token: 0x06002B6E RID: 11118 RVA: 0x00060C18 File Offset: 0x0005EE18 [Token(Token = "0x6002B6E")] [Address(RVA = "0x16A3AE0", Offset = "0x16A2AE0", VA = "0x1816A3AE0")] public void Apply(IKSolverFullBodyBiped solver, float weight) { float time = Time.time; float time2 = Time.time; float num = this.length; this.lastTime = time2; float num2 = this.k__BackingField; if (num2 < num) { int num3 = 0; int num4 = 0; float num5 = Mathf.Clamp(num2, (float)num3, num); this.k__BackingField = num5; float num6 = this.crossFadeSpeed; if (num6 <= (float)num4) { } int num7 = 0; float num8 = Mathf.Clamp(num6, (float)num7, 1f); this.k__BackingField = num8; this.OnApply(solver, weight); } } // Token: 0x06002B6F RID: 11119 [Token(Token = "0x6002B6F")] [Address(Slot = "4")] protected abstract float GetLength(); // Token: 0x06002B70 RID: 11120 [Token(Token = "0x6002B70")] [Address(Slot = "5")] protected abstract void CrossFadeStart(); // Token: 0x06002B71 RID: 11121 [Token(Token = "0x6002B71")] [Address(Slot = "6")] protected abstract void OnApply(IKSolverFullBodyBiped solver, float weight); // Token: 0x06002B72 RID: 11122 RVA: 0x00060CA0 File Offset: 0x0005EEA0 [Token(Token = "0x6002B72")] [Address(RVA = "0x16A3700", Offset = "0x16A2700", VA = "0x1816A3700")] protected HitPoint() { } // Token: 0x040034CB RID: 13515 [FieldOffset(Offset = "0x10")] [Token(Token = "0x40034CB")] [Tooltip("Just for visual clarity, not used at all")] public string name; // Token: 0x040034CC RID: 13516 [FieldOffset(Offset = "0x18")] [Token(Token = "0x40034CC")] [Tooltip("Linking this hit point to a collider")] public Collider collider; // Token: 0x040034CD RID: 13517 [FieldOffset(Offset = "0x20")] [Token(Token = "0x40034CD")] [SerializeField] [Tooltip("Only used if this hit point gets hit when already processing another hit")] private float crossFadeTime = 0.1f; // Token: 0x040034D2 RID: 13522 [FieldOffset(Offset = "0x44")] [Token(Token = "0x40034D2")] private float length; // Token: 0x040034D3 RID: 13523 [FieldOffset(Offset = "0x48")] [Token(Token = "0x40034D3")] private float crossFadeSpeed; // Token: 0x040034D4 RID: 13524 [FieldOffset(Offset = "0x4C")] [Token(Token = "0x40034D4")] private float lastTime; } // Token: 0x020004C7 RID: 1223 [Token(Token = "0x20004C7")] [Serializable] public class HitPointEffector : HitReaction.HitPoint { // Token: 0x06002B73 RID: 11123 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002B73")] [Address(RVA = "0x16A3770", Offset = "0x16A2770", VA = "0x1816A3770", Slot = "4")] protected override float GetLength() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06002B74 RID: 11124 RVA: 0x00060CC0 File Offset: 0x0005EEC0 [Token(Token = "0x6002B74")] [Address(RVA = "0x16A3710", Offset = "0x16A2710", VA = "0x1816A3710", Slot = "5")] protected override void CrossFadeStart() { HitReaction.HitPointEffector.EffectorLink[] array = this.effectorLinks; int num = 0; int length = array.Length; if (num < length) { array[num].CrossFadeStart(); num++; } } // Token: 0x06002B75 RID: 11125 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002B75")] [Address(RVA = "0x16A38C0", Offset = "0x16A28C0", VA = "0x1816A38C0", Slot = "6")] protected override void OnApply(IKSolverFullBodyBiped solver, float weight) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06002B76 RID: 11126 RVA: 0x00060CF8 File Offset: 0x0005EEF8 [Token(Token = "0x6002B76")] [Address(RVA = "0x16A3700", Offset = "0x16A2700", VA = "0x1816A3700")] public HitPointEffector() { this.crossFadeTime = 0.1f; base..ctor(); } // Token: 0x040034D5 RID: 13525 [FieldOffset(Offset = "0x50")] [Token(Token = "0x40034D5")] [Tooltip("Offset magnitude in the direction of the hit force")] public AnimationCurve offsetInForceDirection; // Token: 0x040034D6 RID: 13526 [FieldOffset(Offset = "0x58")] [Token(Token = "0x40034D6")] [Tooltip("Offset magnitude in the direction of character.up")] public AnimationCurve offsetInUpDirection; // Token: 0x040034D7 RID: 13527 [FieldOffset(Offset = "0x60")] [Token(Token = "0x40034D7")] [Tooltip("Linking this offset to the FBBIK effectors")] public HitReaction.HitPointEffector.EffectorLink[] effectorLinks; // Token: 0x020004C8 RID: 1224 [Token(Token = "0x20004C8")] [Serializable] public class EffectorLink { // Token: 0x06002B77 RID: 11127 RVA: 0x0003DF9B File Offset: 0x0003C19B [Token(Token = "0x6002B77")] [Address(RVA = "0x6C6740", Offset = "0x6C5740", VA = "0x1806C6740")] public void Apply(IKSolverFullBodyBiped solver, Vector3 offset, float crossFader) { } // Token: 0x06002B78 RID: 11128 RVA: 0x0003DF9B File Offset: 0x0003C19B [Token(Token = "0x6002B78")] [Address(RVA = "0x6C68B0", Offset = "0x6C58B0", VA = "0x1806C68B0")] public void CrossFadeStart() { } // Token: 0x06002B79 RID: 11129 RVA: 0x0003DF9B File Offset: 0x0003C19B [Token(Token = "0x6002B79")] [Address(RVA = "0x36ABD0", Offset = "0x369BD0", VA = "0x18036ABD0")] public EffectorLink() { } // Token: 0x040034D8 RID: 13528 [FieldOffset(Offset = "0x10")] [Token(Token = "0x40034D8")] [Tooltip("The FBBIK effector type")] public FullBodyBipedEffector effector; // Token: 0x040034D9 RID: 13529 [FieldOffset(Offset = "0x14")] [Token(Token = "0x40034D9")] [Tooltip("The weight of this effector (could also be negative)")] public float weight; // Token: 0x040034DA RID: 13530 [FieldOffset(Offset = "0x18")] [Token(Token = "0x40034DA")] private Vector3 lastValue; // Token: 0x040034DB RID: 13531 [FieldOffset(Offset = "0x24")] [Token(Token = "0x40034DB")] private Vector3 current; } } // Token: 0x020004C9 RID: 1225 [Token(Token = "0x20004C9")] [Serializable] public class HitPointBone : HitReaction.HitPoint { // Token: 0x06002B7A RID: 11130 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002B7A")] [Address(RVA = "0x16A3400", Offset = "0x16A2400", VA = "0x1816A3400", Slot = "4")] protected override float GetLength() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06002B7B RID: 11131 RVA: 0x00060D18 File Offset: 0x0005EF18 [Token(Token = "0x6002B7B")] [Address(RVA = "0x16A33A0", Offset = "0x16A23A0", VA = "0x1816A33A0", Slot = "5")] protected override void CrossFadeStart() { HitReaction.HitPointBone.BoneLink[] array = this.boneLinks; int num = 0; int length = array.Length; if (num < length) { array[num].CrossFadeStart(); num++; } } // Token: 0x06002B7C RID: 11132 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002B7C")] [Address(RVA = "0x16A34A0", Offset = "0x16A24A0", VA = "0x1816A34A0", Slot = "6")] protected override void OnApply(IKSolverFullBodyBiped solver, float weight) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06002B7D RID: 11133 RVA: 0x00060D50 File Offset: 0x0005EF50 [Token(Token = "0x6002B7D")] [Address(RVA = "0x16A3700", Offset = "0x16A2700", VA = "0x1816A3700")] public HitPointBone() { this.crossFadeTime = 0.1f; base..ctor(); } // Token: 0x040034DC RID: 13532 [FieldOffset(Offset = "0x50")] [Token(Token = "0x40034DC")] [Tooltip("The angle to rotate the bone around it's rigidbody's world center of mass")] public AnimationCurve aroundCenterOfMass; // Token: 0x040034DD RID: 13533 [FieldOffset(Offset = "0x58")] [Token(Token = "0x40034DD")] [Tooltip("Linking this hit point to bone(s)")] public HitReaction.HitPointBone.BoneLink[] boneLinks; // Token: 0x040034DE RID: 13534 [FieldOffset(Offset = "0x60")] [Token(Token = "0x40034DE")] private Rigidbody rigidbody; // Token: 0x020004CA RID: 1226 [Token(Token = "0x20004CA")] [Serializable] public class BoneLink { // Token: 0x06002B7E RID: 11134 RVA: 0x0003DF9B File Offset: 0x0003C19B [Token(Token = "0x6002B7E")] [Address(RVA = "0x6C65D0", Offset = "0x6C55D0", VA = "0x1806C65D0")] public void Apply(IKSolverFullBodyBiped solver, Quaternion offset, float crossFader) { } // Token: 0x06002B7F RID: 11135 RVA: 0x0003DF9B File Offset: 0x0003C19B [Token(Token = "0x6002B7F")] [Address(RVA = "0x6C66F0", Offset = "0x6C56F0", VA = "0x1806C66F0")] public void CrossFadeStart() { } // Token: 0x06002B80 RID: 11136 RVA: 0x0003DF9B File Offset: 0x0003C19B [Token(Token = "0x6002B80")] [Address(RVA = "0x6C6700", Offset = "0x6C5700", VA = "0x1806C6700")] public BoneLink() { } // Token: 0x040034DF RID: 13535 [FieldOffset(Offset = "0x10")] [Token(Token = "0x40034DF")] [Tooltip("Reference to the bone that this hit point rotates")] public Transform bone; // Token: 0x040034E0 RID: 13536 [FieldOffset(Offset = "0x18")] [Token(Token = "0x40034E0")] [Tooltip("Weight of rotating the bone")] [Range(0f, 1f)] public float weight; // Token: 0x040034E1 RID: 13537 [FieldOffset(Offset = "0x1C")] [Token(Token = "0x40034E1")] private Quaternion lastValue; // Token: 0x040034E2 RID: 13538 [FieldOffset(Offset = "0x2C")] [Token(Token = "0x40034E2")] private Quaternion current; } } } }