using System; using System.Runtime.CompilerServices; using Cpp2IlInjected; using UnityEngine; namespace RootMotion.FinalIK { // Token: 0x020004CB RID: 1227 [Token(Token = "0x20004CB")] public class HitReactionVRIK : OffsetModifierVRIK { // Token: 0x06002B81 RID: 11137 RVA: 0x00060D70 File Offset: 0x0005EF70 [Token(Token = "0x6002B81")] [Address(RVA = "0x1704B60", Offset = "0x1703B60", VA = "0x181704B60", Slot = "4")] protected override void OnModifyOffset() { HitReactionVRIK.PositionOffset[] array = this.positionOffsets; int num = 0; int length = array.Length; if (num < length) { HitReactionVRIK.PositionOffset positionOffset = array[num]; float weight = this.weight; AnimationCurve[] array2 = this.offsetCurves; VRIK ik = this.ik; positionOffset.Apply(ik, array2, weight); num++; } HitReactionVRIK.RotationOffset[] array3 = this.rotationOffsets; int length2 = array3.Length; if (num < length2) { HitReactionVRIK.RotationOffset rotationOffset = array3[num]; float weight2 = this.weight; AnimationCurve[] array4 = this.offsetCurves; VRIK ik2 = this.ik; rotationOffset.Apply(ik2, array4, weight2); num++; } } // Token: 0x06002B82 RID: 11138 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002B82")] [Address(RVA = "0x17048C0", Offset = "0x17038C0", VA = "0x1817048C0")] public void Hit(Collider collider, Vector3 force, Vector3 point) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06002B83 RID: 11139 RVA: 0x00060E10 File Offset: 0x0005F010 [Token(Token = "0x6002B83")] [Address(RVA = "0xDA8200", Offset = "0xDA7200", VA = "0x180DA8200")] public HitReactionVRIK() { } // Token: 0x040034E3 RID: 13539 [FieldOffset(Offset = "0x30")] [Token(Token = "0x40034E3")] public AnimationCurve[] offsetCurves; // Token: 0x040034E4 RID: 13540 [FieldOffset(Offset = "0x38")] [Token(Token = "0x40034E4")] [Tooltip("Hit points for the FBBIK effectors")] public HitReactionVRIK.PositionOffset[] positionOffsets; // Token: 0x040034E5 RID: 13541 [FieldOffset(Offset = "0x40")] [Token(Token = "0x40034E5")] [Tooltip(" Hit points for bones without an effector, such as the head")] public HitReactionVRIK.RotationOffset[] rotationOffsets; // Token: 0x020004CC RID: 1228 [Token(Token = "0x20004CC")] [Serializable] public abstract class Offset { // Token: 0x170002BB RID: 699 // (get) Token: 0x06002B84 RID: 11140 RVA: 0x00060E24 File Offset: 0x0005F024 // (set) Token: 0x06002B85 RID: 11141 RVA: 0x00060E38 File Offset: 0x0005F038 [Token(Token = "0x170002BB")] private protected float crossFader { [Token(Token = "0x6002B84")] [Address(RVA = "0x5C2880", Offset = "0x5C1880", VA = "0x1805C2880")] protected get; [Token(Token = "0x6002B85")] [Address(RVA = "0x5C2910", Offset = "0x5C1910", VA = "0x1805C2910")] private set; } // Token: 0x170002BC RID: 700 // (get) Token: 0x06002B86 RID: 11142 RVA: 0x00060E4C File Offset: 0x0005F04C // (set) Token: 0x06002B87 RID: 11143 RVA: 0x00060E60 File Offset: 0x0005F060 [Token(Token = "0x170002BC")] private protected float timer { [Token(Token = "0x6002B86")] [Address(RVA = "0xB94720", Offset = "0xB93720", VA = "0x180B94720")] protected get; [Token(Token = "0x6002B87")] [Address(RVA = "0x13B7D20", Offset = "0x13B6D20", VA = "0x1813B7D20")] private set; } // Token: 0x170002BD RID: 701 // (get) Token: 0x06002B88 RID: 11144 RVA: 0x000020D3 File Offset: 0x000002D3 // (set) Token: 0x06002B89 RID: 11145 RVA: 0x00060E74 File Offset: 0x0005F074 [Token(Token = "0x170002BD")] private protected Vector3 force { [Token(Token = "0x6002B88")] [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 = "0x6002B89")] [Address(RVA = "0x1318DF0", Offset = "0x1317DF0", VA = "0x181318DF0")] [CompilerGenerated] private set { float z = value.z; this.k__BackingField.z = z; } } // Token: 0x170002BE RID: 702 // (get) Token: 0x06002B8A RID: 11146 RVA: 0x000020D3 File Offset: 0x000002D3 // (set) Token: 0x06002B8B RID: 11147 RVA: 0x00060E94 File Offset: 0x0005F094 [Token(Token = "0x170002BE")] private protected Vector3 point { [Token(Token = "0x6002B8A")] [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 = "0x6002B8B")] [Address(RVA = "0x3F6740", Offset = "0x3F5740", VA = "0x1803F6740")] [CompilerGenerated] private set { float z = value.z; this.k__BackingField.z = z; } } // Token: 0x06002B8C RID: 11148 RVA: 0x00060EB4 File Offset: 0x0005F0B4 [Token(Token = "0x6002B8C")] [Address(RVA = "0x16ACA60", Offset = "0x16ABA60", VA = "0x1816ACA60")] public void Hit(Vector3 force, AnimationCurve[] curves, Vector3 point) { int num = 0; float num2 = this.GetLength(curves); this.length = num2; if (num < (int)num2) { int num3 = 0; this.k__BackingField = (float)num3; if (this.crossFadeTime > (float)num) { } int num4 = 0; this.crossFadeSpeed = (float)num4; this.CrossFadeStart(); float z = force.z; this.k__BackingField.z = z; float z2 = point.z; this.k__BackingField.z = z2; this.k__BackingField = (float)num3; } Debug.LogError("Hit Point WeightCurve length is zero."); } // Token: 0x06002B8D RID: 11149 RVA: 0x00060F34 File Offset: 0x0005F134 [Token(Token = "0x6002B8D")] [Address(RVA = "0x16AC970", Offset = "0x16AB970", VA = "0x1816AC970")] public void Apply(VRIK ik, AnimationCurve[] curves, 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(ik, curves, weight); } } // Token: 0x06002B8E RID: 11150 [Token(Token = "0x6002B8E")] [Address(Slot = "4")] protected abstract float GetLength(AnimationCurve[] curves); // Token: 0x06002B8F RID: 11151 [Token(Token = "0x6002B8F")] [Address(Slot = "5")] protected abstract void CrossFadeStart(); // Token: 0x06002B90 RID: 11152 [Token(Token = "0x6002B90")] [Address(Slot = "6")] protected abstract void OnApply(VRIK ik, AnimationCurve[] curves, float weight); // Token: 0x06002B91 RID: 11153 RVA: 0x00060FBC File Offset: 0x0005F1BC [Token(Token = "0x6002B91")] [Address(RVA = "0x16A3700", Offset = "0x16A2700", VA = "0x1816A3700")] protected Offset() { } // Token: 0x040034E6 RID: 13542 [FieldOffset(Offset = "0x10")] [Token(Token = "0x40034E6")] [Tooltip("Just for visual clarity, not used at all")] public string name; // Token: 0x040034E7 RID: 13543 [FieldOffset(Offset = "0x18")] [Token(Token = "0x40034E7")] [Tooltip("Linking this hit point to a collider")] public Collider collider; // Token: 0x040034E8 RID: 13544 [FieldOffset(Offset = "0x20")] [Token(Token = "0x40034E8")] [SerializeField] [Tooltip("Only used if this hit point gets hit when already processing another hit")] private float crossFadeTime = 0.1f; // Token: 0x040034ED RID: 13549 [FieldOffset(Offset = "0x44")] [Token(Token = "0x40034ED")] private float length; // Token: 0x040034EE RID: 13550 [FieldOffset(Offset = "0x48")] [Token(Token = "0x40034EE")] private float crossFadeSpeed; // Token: 0x040034EF RID: 13551 [FieldOffset(Offset = "0x4C")] [Token(Token = "0x40034EF")] private float lastTime; } // Token: 0x020004CD RID: 1229 [Token(Token = "0x20004CD")] [Serializable] public class PositionOffset : HitReactionVRIK.Offset { // Token: 0x06002B92 RID: 11154 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002B92")] [Address(RVA = "0x16AD280", Offset = "0x16AC280", VA = "0x1816AD280", Slot = "4")] protected override float GetLength(AnimationCurve[] curves) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06002B93 RID: 11155 RVA: 0x00060FDC File Offset: 0x0005F1DC [Token(Token = "0x6002B93")] [Address(RVA = "0x16AD220", Offset = "0x16AC220", VA = "0x1816AD220", Slot = "5")] protected override void CrossFadeStart() { HitReactionVRIK.PositionOffset.PositionOffsetLink[] array = this.offsetLinks; int num = 0; int length = array.Length; if (num < length) { array[num].CrossFadeStart(); num++; } } // Token: 0x06002B94 RID: 11156 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002B94")] [Address(RVA = "0x16AD4A0", Offset = "0x16AC4A0", VA = "0x1816AD4A0", Slot = "6")] protected override void OnApply(VRIK ik, AnimationCurve[] curves, float weight) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06002B95 RID: 11157 RVA: 0x00061014 File Offset: 0x0005F214 [Token(Token = "0x6002B95")] [Address(RVA = "0x16AD720", Offset = "0x16AC720", VA = "0x1816AD720")] public PositionOffset() { this.crossFadeTime = 0.1f; base..ctor(); } // Token: 0x040034F0 RID: 13552 [FieldOffset(Offset = "0x50")] [Token(Token = "0x40034F0")] [Tooltip("Offset magnitude in the direction of the hit force")] public int forceDirCurveIndex; // Token: 0x040034F1 RID: 13553 [FieldOffset(Offset = "0x54")] [Token(Token = "0x40034F1")] [Tooltip("Offset magnitude in the direction of character.up")] public int upDirCurveIndex = (int)((ulong)1L); // Token: 0x040034F2 RID: 13554 [FieldOffset(Offset = "0x58")] [Token(Token = "0x40034F2")] [Tooltip("Linking this offset to the VRIK position offsets")] public HitReactionVRIK.PositionOffset.PositionOffsetLink[] offsetLinks; // Token: 0x020004CE RID: 1230 [Token(Token = "0x20004CE")] [Serializable] public class PositionOffsetLink { // Token: 0x06002B96 RID: 11158 RVA: 0x0003DF9B File Offset: 0x0003C19B [Token(Token = "0x6002B96")] [Address(RVA = "0x6C89D0", Offset = "0x6C79D0", VA = "0x1806C89D0")] public void Apply(VRIK ik, Vector3 offset, float crossFader) { } // Token: 0x06002B97 RID: 11159 RVA: 0x0003DF9B File Offset: 0x0003C19B [Token(Token = "0x6002B97")] [Address(RVA = "0x6C68B0", Offset = "0x6C58B0", VA = "0x1806C68B0")] public void CrossFadeStart() { } // Token: 0x06002B98 RID: 11160 RVA: 0x0003DF9B File Offset: 0x0003C19B [Token(Token = "0x6002B98")] [Address(RVA = "0x36ABD0", Offset = "0x369BD0", VA = "0x18036ABD0")] public PositionOffsetLink() { } // Token: 0x040034F3 RID: 13555 [FieldOffset(Offset = "0x10")] [Token(Token = "0x40034F3")] [Tooltip("The FBBIK effector type")] public IKSolverVR.PositionOffset positionOffset; // Token: 0x040034F4 RID: 13556 [FieldOffset(Offset = "0x14")] [Token(Token = "0x40034F4")] [Tooltip("The weight of this effector (could also be negative)")] public float weight; // Token: 0x040034F5 RID: 13557 [FieldOffset(Offset = "0x18")] [Token(Token = "0x40034F5")] private Vector3 lastValue; // Token: 0x040034F6 RID: 13558 [FieldOffset(Offset = "0x24")] [Token(Token = "0x40034F6")] private Vector3 current; } } // Token: 0x020004CF RID: 1231 [Token(Token = "0x20004CF")] [Serializable] public class RotationOffset : HitReactionVRIK.Offset { // Token: 0x06002B99 RID: 11161 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002B99")] [Address(RVA = "0x16AD7A0", Offset = "0x16AC7A0", VA = "0x1816AD7A0", Slot = "4")] protected override float GetLength(AnimationCurve[] curves) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06002B9A RID: 11162 RVA: 0x0006103C File Offset: 0x0005F23C [Token(Token = "0x6002B9A")] [Address(RVA = "0x16AD740", Offset = "0x16AC740", VA = "0x1816AD740", Slot = "5")] protected override void CrossFadeStart() { HitReactionVRIK.RotationOffset.RotationOffsetLink[] array = this.offsetLinks; int num = 0; int length = array.Length; if (num < length) { array[num].CrossFadeStart(); num++; } } // Token: 0x06002B9B RID: 11163 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002B9B")] [Address(RVA = "0x16AD8C0", Offset = "0x16AC8C0", VA = "0x1816AD8C0", Slot = "6")] protected override void OnApply(VRIK ik, AnimationCurve[] curves, float weight) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06002B9C RID: 11164 RVA: 0x00061074 File Offset: 0x0005F274 [Token(Token = "0x6002B9C")] [Address(RVA = "0x16A3700", Offset = "0x16A2700", VA = "0x1816A3700")] public RotationOffset() { this.crossFadeTime = 0.1f; base..ctor(); } // Token: 0x040034F7 RID: 13559 [FieldOffset(Offset = "0x50")] [Token(Token = "0x40034F7")] [Tooltip("The angle to rotate the bone around it's rigidbody's world center of mass")] public int curveIndex; // Token: 0x040034F8 RID: 13560 [FieldOffset(Offset = "0x58")] [Token(Token = "0x40034F8")] [Tooltip("Linking this hit point to bone(s)")] public HitReactionVRIK.RotationOffset.RotationOffsetLink[] offsetLinks; // Token: 0x040034F9 RID: 13561 [FieldOffset(Offset = "0x60")] [Token(Token = "0x40034F9")] private Rigidbody rigidbody; // Token: 0x020004D0 RID: 1232 [Token(Token = "0x20004D0")] [Serializable] public class RotationOffsetLink { // Token: 0x06002B9D RID: 11165 RVA: 0x0003DF9B File Offset: 0x0003C19B [Token(Token = "0x6002B9D")] [Address(RVA = "0x6CA110", Offset = "0x6C9110", VA = "0x1806CA110")] public void Apply(VRIK ik, Quaternion offset, float crossFader) { } // Token: 0x06002B9E RID: 11166 RVA: 0x0003DF9B File Offset: 0x0003C19B [Token(Token = "0x6002B9E")] [Address(RVA = "0x6CA200", Offset = "0x6C9200", VA = "0x1806CA200")] public void CrossFadeStart() { } // Token: 0x06002B9F RID: 11167 RVA: 0x0003DF9B File Offset: 0x0003C19B [Token(Token = "0x6002B9F")] [Address(RVA = "0x6CA210", Offset = "0x6C9210", VA = "0x1806CA210")] public RotationOffsetLink() { } // Token: 0x040034FA RID: 13562 [FieldOffset(Offset = "0x10")] [Token(Token = "0x40034FA")] [Tooltip("Reference to the bone that this hit point rotates")] public IKSolverVR.RotationOffset rotationOffset; // Token: 0x040034FB RID: 13563 [FieldOffset(Offset = "0x14")] [Token(Token = "0x40034FB")] [Tooltip("Weight of rotating the bone")] [Range(0f, 1f)] public float weight; // Token: 0x040034FC RID: 13564 [FieldOffset(Offset = "0x18")] [Token(Token = "0x40034FC")] private Quaternion lastValue; // Token: 0x040034FD RID: 13565 [FieldOffset(Offset = "0x28")] [Token(Token = "0x40034FD")] private Quaternion current; } } } }