using System; using System.Runtime.CompilerServices; using Cpp2IlInjected; using UnityEngine; namespace RootMotion.FinalIK { // Token: 0x02000476 RID: 1142 [Token(Token = "0x2000476")] public class HitReaction : OffsetModifier { // Token: 0x1700028A RID: 650 // (get) Token: 0x060028C9 RID: 10441 RVA: 0x00059AAC File Offset: 0x00057CAC [Token(Token = "0x1700028A")] public bool inProgress { [Token(Token = "0x60028C9")] [Address(RVA = "0x11E1950", Offset = "0x11E0150", VA = "0x1811E1950")] 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: 0x060028CA RID: 10442 RVA: 0x00059B10 File Offset: 0x00057D10 [Token(Token = "0x60028CA")] [Address(RVA = "0x11E1850", Offset = "0x11E0050", VA = "0x1811E1850", 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: 0x060028CB RID: 10443 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x60028CB")] [Address(RVA = "0x11E15C0", Offset = "0x11DFDC0", VA = "0x1811E15C0")] public void Hit(Collider collider, Vector3 force, Vector3 point) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060028CC RID: 10444 RVA: 0x00059BB0 File Offset: 0x00057DB0 [Token(Token = "0x60028CC")] [Address(RVA = "0xA91CB0", Offset = "0xA904B0", VA = "0x180A91CB0")] public HitReaction() { } // Token: 0x04003221 RID: 12833 [FieldOffset(Offset = "0x30")] [Token(Token = "0x4003221")] [Tooltip("Hit points for the FBBIK effectors")] public HitReaction.HitPointEffector[] effectorHitPoints; // Token: 0x04003222 RID: 12834 [FieldOffset(Offset = "0x38")] [Token(Token = "0x4003222")] [Tooltip(" Hit points for bones without an effector, such as the head")] public HitReaction.HitPointBone[] boneHitPoints; // Token: 0x02000477 RID: 1143 [Token(Token = "0x2000477")] [Serializable] public abstract class HitPoint { // Token: 0x1700028B RID: 651 // (get) Token: 0x060028CD RID: 10445 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x1700028B")] public bool inProgress { [Token(Token = "0x60028CD")] [Address(RVA = "0x1584E60", Offset = "0x1583660", VA = "0x181584E60")] get { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } } // Token: 0x1700028C RID: 652 // (get) Token: 0x060028CE RID: 10446 RVA: 0x00059BC4 File Offset: 0x00057DC4 // (set) Token: 0x060028CF RID: 10447 RVA: 0x00059BD8 File Offset: 0x00057DD8 [Token(Token = "0x1700028C")] private protected float crossFader { [Token(Token = "0x60028CE")] [Address(RVA = "0x5ACB40", Offset = "0x5AB340", VA = "0x1805ACB40")] protected get; [Token(Token = "0x60028CF")] [Address(RVA = "0x5ACBD0", Offset = "0x5AB3D0", VA = "0x1805ACBD0")] private set; } // Token: 0x1700028D RID: 653 // (get) Token: 0x060028D0 RID: 10448 RVA: 0x00059BEC File Offset: 0x00057DEC // (set) Token: 0x060028D1 RID: 10449 RVA: 0x00059C00 File Offset: 0x00057E00 [Token(Token = "0x1700028D")] private protected float timer { [Token(Token = "0x60028D0")] [Address(RVA = "0x66CA40", Offset = "0x66B240", VA = "0x18066CA40")] protected get; [Token(Token = "0x60028D1")] [Address(RVA = "0x66CA50", Offset = "0x66B250", VA = "0x18066CA50")] private set; } // Token: 0x1700028E RID: 654 // (get) Token: 0x060028D2 RID: 10450 RVA: 0x000020D3 File Offset: 0x000002D3 // (set) Token: 0x060028D3 RID: 10451 RVA: 0x00059C14 File Offset: 0x00057E14 [Token(Token = "0x1700028E")] private protected Vector3 force { [Token(Token = "0x60028D2")] [Address(RVA = "0x13017D0", Offset = "0x12FFFD0", VA = "0x1813017D0")] [CompilerGenerated] protected get { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } [Token(Token = "0x60028D3")] [Address(RVA = "0x13018C0", Offset = "0x13000C0", VA = "0x1813018C0")] [CompilerGenerated] private set { float z = value.z; this.k__BackingField.z = z; } } // Token: 0x1700028F RID: 655 // (get) Token: 0x060028D4 RID: 10452 RVA: 0x000020D3 File Offset: 0x000002D3 // (set) Token: 0x060028D5 RID: 10453 RVA: 0x00059C34 File Offset: 0x00057E34 [Token(Token = "0x1700028F")] private protected Vector3 point { [Token(Token = "0x60028D4")] [Address(RVA = "0x3D4860", Offset = "0x3D3060", VA = "0x1803D4860")] [CompilerGenerated] protected get { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } [Token(Token = "0x60028D5")] [Address(RVA = "0x3D48E0", Offset = "0x3D30E0", VA = "0x1803D48E0")] [CompilerGenerated] private set { float z = value.z; this.k__BackingField.z = z; } } // Token: 0x060028D6 RID: 10454 RVA: 0x00059C54 File Offset: 0x00057E54 [Token(Token = "0x60028D6")] [Address(RVA = "0x1584D40", Offset = "0x1583540", VA = "0x181584D40")] 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: 0x060028D7 RID: 10455 RVA: 0x00059CD8 File Offset: 0x00057ED8 [Token(Token = "0x60028D7")] [Address(RVA = "0x1584C70", Offset = "0x1583470", VA = "0x181584C70")] 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: 0x060028D8 RID: 10456 [Token(Token = "0x60028D8")] [Address(Slot = "4")] protected abstract float GetLength(); // Token: 0x060028D9 RID: 10457 [Token(Token = "0x60028D9")] [Address(Slot = "5")] protected abstract void CrossFadeStart(); // Token: 0x060028DA RID: 10458 [Token(Token = "0x60028DA")] [Address(Slot = "6")] protected abstract void OnApply(IKSolverFullBodyBiped solver, float weight); // Token: 0x060028DB RID: 10459 RVA: 0x00059D60 File Offset: 0x00057F60 [Token(Token = "0x60028DB")] [Address(RVA = "0x1584890", Offset = "0x1583090", VA = "0x181584890")] protected HitPoint() { } // Token: 0x04003223 RID: 12835 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4003223")] [Tooltip("Just for visual clarity, not used at all")] public string name; // Token: 0x04003224 RID: 12836 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4003224")] [Tooltip("Linking this hit point to a collider")] public Collider collider; // Token: 0x04003225 RID: 12837 [FieldOffset(Offset = "0x20")] [Token(Token = "0x4003225")] [SerializeField] [Tooltip("Only used if this hit point gets hit when already processing another hit")] private float crossFadeTime = 0.1f; // Token: 0x0400322A RID: 12842 [FieldOffset(Offset = "0x44")] [Token(Token = "0x400322A")] private float length; // Token: 0x0400322B RID: 12843 [FieldOffset(Offset = "0x48")] [Token(Token = "0x400322B")] private float crossFadeSpeed; // Token: 0x0400322C RID: 12844 [FieldOffset(Offset = "0x4C")] [Token(Token = "0x400322C")] private float lastTime; } // Token: 0x02000478 RID: 1144 [Token(Token = "0x2000478")] [Serializable] public class HitPointEffector : HitReaction.HitPoint { // Token: 0x060028DC RID: 10460 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x60028DC")] [Address(RVA = "0x1584900", Offset = "0x1583100", VA = "0x181584900", Slot = "4")] protected override float GetLength() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060028DD RID: 10461 RVA: 0x00059D80 File Offset: 0x00057F80 [Token(Token = "0x60028DD")] [Address(RVA = "0x15848A0", Offset = "0x15830A0", VA = "0x1815848A0", 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: 0x060028DE RID: 10462 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x60028DE")] [Address(RVA = "0x1584A50", Offset = "0x1583250", VA = "0x181584A50", Slot = "6")] protected override void OnApply(IKSolverFullBodyBiped solver, float weight) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060028DF RID: 10463 RVA: 0x00059DB8 File Offset: 0x00057FB8 [Token(Token = "0x60028DF")] [Address(RVA = "0x1584890", Offset = "0x1583090", VA = "0x181584890")] public HitPointEffector() { this.crossFadeTime = 0.1f; base..ctor(); } // Token: 0x0400322D RID: 12845 [FieldOffset(Offset = "0x50")] [Token(Token = "0x400322D")] [Tooltip("Offset magnitude in the direction of the hit force")] public AnimationCurve offsetInForceDirection; // Token: 0x0400322E RID: 12846 [FieldOffset(Offset = "0x58")] [Token(Token = "0x400322E")] [Tooltip("Offset magnitude in the direction of character.up")] public AnimationCurve offsetInUpDirection; // Token: 0x0400322F RID: 12847 [FieldOffset(Offset = "0x60")] [Token(Token = "0x400322F")] [Tooltip("Linking this offset to the FBBIK effectors")] public HitReaction.HitPointEffector.EffectorLink[] effectorLinks; // Token: 0x02000479 RID: 1145 [Token(Token = "0x2000479")] [Serializable] public class EffectorLink { // Token: 0x060028E0 RID: 10464 RVA: 0x00038FC3 File Offset: 0x000371C3 [Token(Token = "0x60028E0")] [Address(RVA = "0x12DC280", Offset = "0x12DAA80", VA = "0x1812DC280")] public void Apply(IKSolverFullBodyBiped solver, Vector3 offset, float crossFader) { } // Token: 0x060028E1 RID: 10465 RVA: 0x00038FC3 File Offset: 0x000371C3 [Token(Token = "0x60028E1")] [Address(RVA = "0x12DC3F0", Offset = "0x12DABF0", VA = "0x1812DC3F0")] public void CrossFadeStart() { } // Token: 0x060028E2 RID: 10466 RVA: 0x00038FC3 File Offset: 0x000371C3 [Token(Token = "0x60028E2")] [Address(RVA = "0x43A830", Offset = "0x439030", VA = "0x18043A830")] public EffectorLink() { } // Token: 0x04003230 RID: 12848 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4003230")] [Tooltip("The FBBIK effector type")] public FullBodyBipedEffector effector; // Token: 0x04003231 RID: 12849 [FieldOffset(Offset = "0x14")] [Token(Token = "0x4003231")] [Tooltip("The weight of this effector (could also be negative)")] public float weight; // Token: 0x04003232 RID: 12850 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4003232")] private Vector3 lastValue; // Token: 0x04003233 RID: 12851 [FieldOffset(Offset = "0x24")] [Token(Token = "0x4003233")] private Vector3 current; } } // Token: 0x0200047A RID: 1146 [Token(Token = "0x200047A")] [Serializable] public class HitPointBone : HitReaction.HitPoint { // Token: 0x060028E3 RID: 10467 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x60028E3")] [Address(RVA = "0x1584590", Offset = "0x1582D90", VA = "0x181584590", Slot = "4")] protected override float GetLength() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060028E4 RID: 10468 RVA: 0x00059DD8 File Offset: 0x00057FD8 [Token(Token = "0x60028E4")] [Address(RVA = "0x1584530", Offset = "0x1582D30", VA = "0x181584530", 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: 0x060028E5 RID: 10469 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x60028E5")] [Address(RVA = "0x1584630", Offset = "0x1582E30", VA = "0x181584630", Slot = "6")] protected override void OnApply(IKSolverFullBodyBiped solver, float weight) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060028E6 RID: 10470 RVA: 0x00059E10 File Offset: 0x00058010 [Token(Token = "0x60028E6")] [Address(RVA = "0x1584890", Offset = "0x1583090", VA = "0x181584890")] public HitPointBone() { this.crossFadeTime = 0.1f; base..ctor(); } // Token: 0x04003234 RID: 12852 [FieldOffset(Offset = "0x50")] [Token(Token = "0x4003234")] [Tooltip("The angle to rotate the bone around it's rigidbody's world center of mass")] public AnimationCurve aroundCenterOfMass; // Token: 0x04003235 RID: 12853 [FieldOffset(Offset = "0x58")] [Token(Token = "0x4003235")] [Tooltip("Linking this hit point to bone(s)")] public HitReaction.HitPointBone.BoneLink[] boneLinks; // Token: 0x04003236 RID: 12854 [FieldOffset(Offset = "0x60")] [Token(Token = "0x4003236")] private Rigidbody rigidbody; // Token: 0x0200047B RID: 1147 [Token(Token = "0x200047B")] [Serializable] public class BoneLink { // Token: 0x060028E7 RID: 10471 RVA: 0x00038FC3 File Offset: 0x000371C3 [Token(Token = "0x60028E7")] [Address(RVA = "0x12DC110", Offset = "0x12DA910", VA = "0x1812DC110")] public void Apply(IKSolverFullBodyBiped solver, Quaternion offset, float crossFader) { } // Token: 0x060028E8 RID: 10472 RVA: 0x00038FC3 File Offset: 0x000371C3 [Token(Token = "0x60028E8")] [Address(RVA = "0x12DC230", Offset = "0x12DAA30", VA = "0x1812DC230")] public void CrossFadeStart() { } // Token: 0x060028E9 RID: 10473 RVA: 0x00038FC3 File Offset: 0x000371C3 [Token(Token = "0x60028E9")] [Address(RVA = "0x12DC240", Offset = "0x12DAA40", VA = "0x1812DC240")] public BoneLink() { } // Token: 0x04003237 RID: 12855 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4003237")] [Tooltip("Reference to the bone that this hit point rotates")] public Transform bone; // Token: 0x04003238 RID: 12856 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4003238")] [Tooltip("Weight of rotating the bone")] [Range(0f, 1f)] public float weight; // Token: 0x04003239 RID: 12857 [FieldOffset(Offset = "0x1C")] [Token(Token = "0x4003239")] private Quaternion lastValue; // Token: 0x0400323A RID: 12858 [FieldOffset(Offset = "0x2C")] [Token(Token = "0x400323A")] private Quaternion current; } } } }