Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of ToggleFace v1.0.2
ToggleFace.dll
Decompiled a year agousing System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using HarmonyLib; using TMPro; using UnityEngine; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyTitle("ToggleFace")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("ToggleFace")] [assembly: AssemblyCopyright("Copyright © 2025")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("f7c43861-2ec1-408f-94da-b4eadde3bd45")] [assembly: AssemblyFileVersion("1.0.2.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.2.0")] namespace ToggleFace { internal static class PluginInfo { public const string PLUGIN_GUILD = "it.pippopad.toggleface"; public const string PLUGIN_NAME = "ToggleFace"; public const string PLUGIN_VERSION = "1.0.2"; } [BepInPlugin("it.pippopad.toggleface", "ToggleFace", "1.0.2")] internal class ToggleFaceMod : BaseUnityPlugin { public static ToggleFaceMod instance; public bool[] activeExpression = new bool[6]; public bool[] isStillDown = new bool[6]; private Canvas hudCanvas; private GameObject facesText; private TMP_Text facesTextTMP; public ConfigEntry<bool> showActiveExpr; public ConfigEntry<float> fontSize; private void Awake() { //IL_001e: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)instance)) { instance = this; BindConfigs(); new Harmony("it.pippopad.toggleface").PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"ToggleFace has started!"); } } public void Update() { //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Expected O, but got Unknown //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) if (!showActiveExpr.Value) { return; } if (!SemiFunc.MenuLevel() && !SemiFunc.RunIsLobbyMenu()) { if ((Object)(object)facesText == (Object)null || (Object)(object)hudCanvas == (Object)null) { hudCanvas = GameObject.Find("HUD Canvas").GetComponent<Canvas>(); facesText = new GameObject("FacesText"); facesText.transform.SetParent(((Component)hudCanvas).transform, false); facesTextTMP = (TMP_Text)(object)facesText.AddComponent<TextMeshProUGUI>(); facesTextTMP.fontSize = fontSize.Value; ((Graphic)facesTextTMP).color = Color.white; RectTransform component = facesText.GetComponent<RectTransform>(); component.anchorMin = new Vector2(1f, 0.5f); component.anchorMax = new Vector2(1f, 0.5f); component.anchoredPosition = new Vector2(-40f, -50f); component.sizeDelta = new Vector2(100f, 50f); } facesTextTMP.text = ""; for (int i = 0; i < activeExpression.Count(); i++) { if (activeExpression[i]) { TMP_Text obj = facesTextTMP; obj.text += $"Face {i + 1}\n"; } } } else { Object.Destroy((Object)(object)facesText); facesText = null; } } private void BindConfigs() { showActiveExpr = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "ShowActiveExpressions", true, "Show a list of active expressions"); fontSize = ((BaseUnityPlugin)this).Config.Bind<float>("General", "ListTextFontSize", 20f, "Set the font size of list (if active)"); } public static ManualLogSource GetLogger() { return ((BaseUnityPlugin)instance).Logger; } } internal static class Utils { public static void CallMethod<T>(T __instance, string methodName, object[] args) { MethodInfo method = typeof(T).GetMethod(methodName, BindingFlags.Instance | BindingFlags.NonPublic); if (method != null) { method.Invoke(__instance, args); } } public static U CallMethod<T, U>(T __instance, string methodName, object[] args) { MethodInfo method = typeof(T).GetMethod(methodName, BindingFlags.Instance | BindingFlags.NonPublic); if (method != null) { return (U)method.Invoke(__instance, args); } return default(U); } public static U GetField<T, U>(T __instance, string fieldName) { FieldInfo field = typeof(T).GetField(fieldName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field != null) { return (U)field.GetValue(__instance); } return default(U); } public static void SetField<T, U>(T __instance, string fieldName, U value) { FieldInfo field = typeof(T).GetField(fieldName, BindingFlags.Instance | BindingFlags.NonPublic); if (field != null) { field.SetValue(__instance, value); } } } } namespace ToggleFace.Patches { [HarmonyPatch(typeof(PlayerExpression), "Update")] internal class PlayerExpressionPatch { public static bool Prefix(PlayerExpression __instance) { //IL_0d14: Unknown result type (might be due to invalid IL or missing references) //IL_0d62: Unknown result type (might be due to invalid IL or missing references) //IL_0db0: Unknown result type (might be due to invalid IL or missing references) //IL_0dfe: Unknown result type (might be due to invalid IL or missing references) //IL_0e4c: Unknown result type (might be due to invalid IL or missing references) //IL_0e9a: Unknown result type (might be due to invalid IL or missing references) //IL_0ee8: Unknown result type (might be due to invalid IL or missing references) //IL_0f36: Unknown result type (might be due to invalid IL or missing references) //IL_0fd4: Unknown result type (might be due to invalid IL or missing references) //IL_0fe9: Unknown result type (might be due to invalid IL or missing references) //IL_0c89: Unknown result type (might be due to invalid IL or missing references) //IL_0cc6: Unknown result type (might be due to invalid IL or missing references) //IL_079d: Unknown result type (might be due to invalid IL or missing references) //IL_07da: Unknown result type (might be due to invalid IL or missing references) //IL_0828: Unknown result type (might be due to invalid IL or missing references) //IL_0876: Unknown result type (might be due to invalid IL or missing references) //IL_08c4: Unknown result type (might be due to invalid IL or missing references) //IL_0912: Unknown result type (might be due to invalid IL or missing references) //IL_0960: Unknown result type (might be due to invalid IL or missing references) //IL_09ae: Unknown result type (might be due to invalid IL or missing references) //IL_09fc: Unknown result type (might be due to invalid IL or missing references) //IL_0a4a: Unknown result type (might be due to invalid IL or missing references) ToggleFaceMod.instance.Update(); PlayerAvatarVisuals component = ((Component)__instance).GetComponent<PlayerAvatarVisuals>(); if (!LevelGenerator.Instance.Generated && !SemiFunc.MenuLevel()) { Utils.CallMethod<PlayerExpression>(__instance, "DoExpression", new object[2] { 1, 100f }); } if (!Object.op_Implicit((Object)(object)__instance.playerAvatar)) { if (Utils.GetField<PlayerAvatarVisuals, bool>(component, "expressionAvatar")) { Utils.GetField<PlayerAvatarVisuals, Animator>(component, "animator").Play("Crouch", 0, 0f); } Utils.SetField<PlayerExpression, PlayerAvatar>(__instance, "playerAvatar", PlayerAvatar.instance); Utils.SetField<PlayerExpression, bool>(__instance, "isLocal", value: true); } List<int> list = new List<int>(); foreach (int item in Utils.GetField<PlayerExpression, List<int>>(__instance, "activeExpressions")) { list.Add(item); } Utils.GetField<PlayerExpression, List<int>>(__instance, "activeExpressions").Clear(); if (Utils.GetField<PlayerExpression, bool>(__instance, "isLocal")) { if (!Object.op_Implicit((Object)(object)Utils.GetField<MenuManager, MenuPage>(MenuManager.instance, "currentMenuPage"))) { if (SemiFunc.InputDown((InputKey)26) && !ToggleFaceMod.instance.isStillDown[0]) { ToggleFaceMod.instance.activeExpression[0] = !ToggleFaceMod.instance.activeExpression[0]; ToggleFaceMod.instance.isStillDown[0] = true; } else if (SemiFunc.InputUp((InputKey)26)) { ToggleFaceMod.instance.isStillDown[0] = false; } if (SemiFunc.InputDown((InputKey)27) && !ToggleFaceMod.instance.isStillDown[1]) { ToggleFaceMod.instance.activeExpression[1] = !ToggleFaceMod.instance.activeExpression[1]; ToggleFaceMod.instance.isStillDown[1] = true; } else if (SemiFunc.InputUp((InputKey)27)) { ToggleFaceMod.instance.isStillDown[1] = false; } if (SemiFunc.InputDown((InputKey)28) && !ToggleFaceMod.instance.isStillDown[2]) { ToggleFaceMod.instance.activeExpression[2] = !ToggleFaceMod.instance.activeExpression[2]; ToggleFaceMod.instance.isStillDown[2] = true; } else if (SemiFunc.InputUp((InputKey)28)) { ToggleFaceMod.instance.isStillDown[2] = false; } if (SemiFunc.InputDown((InputKey)29) && !ToggleFaceMod.instance.isStillDown[3]) { ToggleFaceMod.instance.activeExpression[3] = !ToggleFaceMod.instance.activeExpression[3]; ToggleFaceMod.instance.isStillDown[3] = true; } else if (SemiFunc.InputUp((InputKey)29)) { ToggleFaceMod.instance.isStillDown[3] = false; } if (SemiFunc.InputDown((InputKey)30) && !ToggleFaceMod.instance.isStillDown[4]) { ToggleFaceMod.instance.activeExpression[4] = !ToggleFaceMod.instance.activeExpression[4]; ToggleFaceMod.instance.isStillDown[4] = true; } else if (SemiFunc.InputUp((InputKey)30)) { ToggleFaceMod.instance.isStillDown[4] = false; } if (SemiFunc.InputDown((InputKey)31) && !ToggleFaceMod.instance.isStillDown[5]) { ToggleFaceMod.instance.activeExpression[5] = !ToggleFaceMod.instance.activeExpression[5]; ToggleFaceMod.instance.isStillDown[5] = true; } else if (SemiFunc.InputUp((InputKey)31)) { ToggleFaceMod.instance.isStillDown[5] = false; } if (ToggleFaceMod.instance.activeExpression[0]) { Utils.CallMethod<PlayerExpression>(__instance, "DoExpression", new object[2] { 1, 100f }); } if (ToggleFaceMod.instance.activeExpression[1]) { Utils.CallMethod<PlayerExpression>(__instance, "DoExpression", new object[2] { 2, 100f }); } if (ToggleFaceMod.instance.activeExpression[2]) { Utils.CallMethod<PlayerExpression>(__instance, "DoExpression", new object[2] { 3, 100f }); } if (ToggleFaceMod.instance.activeExpression[3]) { Utils.CallMethod<PlayerExpression>(__instance, "DoExpression", new object[2] { 4, 100f }); } if (ToggleFaceMod.instance.activeExpression[4]) { Utils.CallMethod<PlayerExpression>(__instance, "DoExpression", new object[2] { 5, 100f }); } if (ToggleFaceMod.instance.activeExpression[5]) { Utils.CallMethod<PlayerExpression>(__instance, "DoExpression", new object[2] { 6, 100f }); } } } else { foreach (KeyValuePair<int, float> item2 in Utils.GetField<PlayerAvatar, Dictionary<int, float>>(__instance.playerAvatar, "playerExpressions")) { ExpressionSettings val = Utils.GetField<PlayerExpression, List<ExpressionSettings>>(__instance, "expressions")[item2.Key]; val.weight = Mathf.Lerp(val.weight, item2.Value, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime") * 5f); if (!Utils.GetField<ExpressionSettings, bool>(val, "stopExpressing")) { Utils.SetField<ExpressionSettings, bool>(val, "isExpressing", value: true); Utils.SetField<ExpressionSettings, float>(val, "timer", 0.2f); Utils.GetField<PlayerExpression, List<int>>(__instance, "activeExpressions").Add(item2.Key); } } } bool flag = false; foreach (int item3 in Utils.GetField<PlayerExpression, List<int>>(__instance, "activeExpressions")) { if (!list.Contains(item3)) { flag = true; break; } } if (!flag) { foreach (int item4 in list) { if (!Utils.GetField<PlayerExpression, List<int>>(__instance, "activeExpressions").Contains(item4)) { flag = true; break; } } } if (flag) { component.HeadTiltImpulse(50f); } if (Utils.GetField<PlayerExpression, bool>(__instance, "isExpressing")) { if (Utils.GetField<PlayerAvatarVisuals, bool>(component, "expressionAvatar")) { Utils.GetField<PlayerAvatarVisuals, Animator>(component, "animator").SetBool("Crouching", false); } Utils.GetField<PlayerExpression, List<ExpressionSettings>>(__instance, "expressions")[0].weight = Mathf.Lerp(Utils.GetField<PlayerExpression, List<ExpressionSettings>>(__instance, "expressions")[0].weight, 0f, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime") * 5f); Utils.SetField<PlayerExpression, EyeSettings>(__instance, "blendedLeftEye", Utils.CallMethod<PlayerExpression, EyeSettings>(__instance, "BlendEyeSettings", new object[1] { true })); Utils.SetField<PlayerExpression, EyeSettings>(__instance, "blendedRightEye", Utils.CallMethod<PlayerExpression, EyeSettings>(__instance, "BlendEyeSettings", new object[1] { false })); Utils.GetField<PlayerExpression, GameObject>(__instance, "eyelidLeft").SetActive(true); Utils.GetField<PlayerExpression, GameObject>(__instance, "eyelidRight").SetActive(true); Utils.SetField<PlayerExpression, float>(__instance, "blendedHeadTilt", 0f); float num = 0f; foreach (ExpressionSettings item5 in Utils.GetField<PlayerExpression, List<ExpressionSettings>>(__instance, "expressions")) { if (Utils.GetField<ExpressionSettings, bool>(item5, "isExpressing")) { Utils.SetField<PlayerExpression, float>(__instance, "blendedHeadTilt", Utils.GetField<PlayerExpression, float>(__instance, "blendedHeadTilt") + Utils.GetField<ExpressionSettings, float>(item5, "headTiltAmount")); num += 1f; } } if (num > 0f) { Utils.SetField<PlayerExpression, float>(__instance, "blendedHeadTilt", Utils.GetField<PlayerExpression, float>(__instance, "blendedHeadTilt") / num); } component.HeadTiltOverride(Utils.GetField<PlayerExpression, float>(__instance, "blendedHeadTilt")); float num2 = SemiFunc.SpringFloatGet(Utils.GetField<PlayerExpression, SpringFloat>(__instance, "leftLidsScale"), 1f, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime")); Utils.GetField<PlayerExpression, Transform>(__instance, "eyelidLeftScale").localScale = new Vector3(num2, num2, num2); num2 = SemiFunc.SpringFloatGet(Utils.GetField<PlayerExpression, SpringFloat>(__instance, "rightLidsScale"), 1f, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime")); Utils.GetField<PlayerExpression, Transform>(__instance, "eyelidRightScale").localScale = new Vector3(num2, num2, num2); float num3 = SemiFunc.SpringFloatGet(Utils.GetField<PlayerExpression, SpringFloat>(__instance, "leftUpperLidClosedAngle"), Utils.GetField<PlayerExpression, EyeSettings>(__instance, "blendedLeftEye").upperLidClosedPercent, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime")); Utils.GetField<PlayerExpression, Transform>(__instance, "leftUpperEyelidRotationX").localRotation = Quaternion.Euler(num3, 0f, 0f); float num4 = SemiFunc.SpringFloatGet(Utils.GetField<PlayerExpression, SpringFloat>(__instance, "leftLowerLidClosedAngle"), Utils.GetField<PlayerExpression, EyeSettings>(__instance, "blendedLeftEye").lowerLidClosedPercent, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime")); Utils.GetField<PlayerExpression, Transform>(__instance, "leftLowerEyelidRotationX").localRotation = Quaternion.Euler(num4, 0f, 0f); num3 = SemiFunc.SpringFloatGet(Utils.GetField<PlayerExpression, SpringFloat>(__instance, "rightUpperLidClosedAngle"), Utils.GetField<PlayerExpression, EyeSettings>(__instance, "blendedRightEye").upperLidClosedPercent, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime")); Utils.GetField<PlayerExpression, Transform>(__instance, "rightUpperEyelidRotationX").localRotation = Quaternion.Euler(num3, 0f, 0f); num4 = SemiFunc.SpringFloatGet(Utils.GetField<PlayerExpression, SpringFloat>(__instance, "rightLowerLidClosedAngle"), Utils.GetField<PlayerExpression, EyeSettings>(__instance, "blendedRightEye").lowerLidClosedPercent, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime")); Utils.GetField<PlayerExpression, Transform>(__instance, "rightLowerEyelidRotationX").localRotation = Quaternion.Euler(num4, 0f, 0f); float num5 = SemiFunc.SpringFloatGet(Utils.GetField<PlayerExpression, SpringFloat>(__instance, "leftUpperLidRotationZSpring"), Utils.GetField<PlayerExpression, EyeSettings>(__instance, "blendedLeftEye").upperLidAngle, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime")); Utils.GetField<PlayerExpression, Transform>(__instance, "leftUpperEyeLidRotationZ").localRotation = Quaternion.Euler(0f, 0f, num5); num5 = SemiFunc.SpringFloatGet(Utils.GetField<PlayerExpression, SpringFloat>(__instance, "rightUpperLidRotationZSpring"), Utils.GetField<PlayerExpression, EyeSettings>(__instance, "blendedRightEye").upperLidAngle, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime")); Utils.GetField<PlayerExpression, Transform>(__instance, "rightUpperEyelidRotationZ").localRotation = Quaternion.Euler(0f, 0f, num5); float num6 = SemiFunc.SpringFloatGet(Utils.GetField<PlayerExpression, SpringFloat>(__instance, "leftLowerLidRotationZSpring"), Utils.GetField<PlayerExpression, EyeSettings>(__instance, "blendedLeftEye").lowerLidAngle, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime")); Utils.GetField<PlayerExpression, Transform>(__instance, "leftLowerEyelidRotationZ").localRotation = Quaternion.Euler(0f, 0f, num6); num6 = SemiFunc.SpringFloatGet(Utils.GetField<PlayerExpression, SpringFloat>(__instance, "rightLowerLidRotationZSpring"), Utils.GetField<PlayerExpression, EyeSettings>(__instance, "blendedRightEye").lowerLidAngle, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime")); Utils.GetField<PlayerExpression, Transform>(__instance, "rightLowerEyelidRotationZ").localRotation = Quaternion.Euler(0f, 0f, num6); Utils.SetField<PlayerExpression, float>(__instance, "pupilLeftScaleAmount", SemiFunc.SpringFloatGet(Utils.GetField<PlayerExpression, SpringFloat>(__instance, "leftPupilSizeSpring"), Utils.GetField<PlayerExpression, EyeSettings>(__instance, "blendedLeftEye").pupilSize, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime"))); Utils.SetField<PlayerExpression, float>(__instance, "pupilRightScaleAmount", SemiFunc.SpringFloatGet(Utils.GetField<PlayerExpression, SpringFloat>(__instance, "rightPupilSizeSpring"), Utils.GetField<PlayerExpression, EyeSettings>(__instance, "blendedRightEye").pupilSize, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime"))); if (Utils.GetField<PlayerExpression, bool>(__instance, "isLocal")) { ((SemiUI)PlayerExpressionsUI.instance).Show(); } } else if (Utils.GetField<PlayerExpression, GameObject>(__instance, "eyelidLeft").activeSelf) { Utils.SetField<PlayerExpression, EyeSettings>(__instance, "blendedLeftEye", Utils.CallMethod<PlayerExpression, EyeSettings>(__instance, "BlendEyeSettings", new object[1] { true })); Utils.SetField<PlayerExpression, EyeSettings>(__instance, "blendedRightEye", Utils.CallMethod<PlayerExpression, EyeSettings>(__instance, "BlendEyeSettings", new object[1] { false })); Utils.GetField<PlayerExpression, List<ExpressionSettings>>(__instance, "expressions")[0].weight = Mathf.Lerp(Utils.GetField<PlayerExpression, List<ExpressionSettings>>(__instance, "expressions")[0].weight, 100f, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime") * 20f); Utils.GetField<PlayerExpression, List<ExpressionSettings>>(__instance, "expressions")[1].weight = Mathf.Lerp(Utils.GetField<PlayerExpression, List<ExpressionSettings>>(__instance, "expressions")[1].weight, 0f, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime") * 20f); Utils.GetField<PlayerExpression, List<ExpressionSettings>>(__instance, "expressions")[2].weight = Mathf.Lerp(Utils.GetField<PlayerExpression, List<ExpressionSettings>>(__instance, "expressions")[2].weight, 0f, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime") * 20f); if (Utils.GetField<PlayerExpression, List<ExpressionSettings>>(__instance, "expressions")[0].weight > 50f) { if (Utils.GetField<PlayerAvatarVisuals, bool>(component, "expressionAvatar")) { Utils.GetField<PlayerAvatarVisuals, Animator>(component, "animator").SetBool("Crouching", true); } float num7 = SemiFunc.SpringFloatGet(Utils.GetField<PlayerExpression, SpringFloat>(__instance, "leftLidsScale"), 0.8f, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime")); Utils.GetField<PlayerExpression, Transform>(__instance, "eyelidLeftScale").localScale = new Vector3(num7, num7, num7); num7 = SemiFunc.SpringFloatGet(Utils.GetField<PlayerExpression, SpringFloat>(__instance, "rightLidsScale"), 0.8f, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime")); Utils.GetField<PlayerExpression, Transform>(__instance, "eyelidRightScale").localScale = new Vector3(num7, num7, num7); } float num8 = SemiFunc.SpringFloatGet(Utils.GetField<PlayerExpression, SpringFloat>(__instance, "leftUpperLidClosedAngle"), Utils.GetField<PlayerExpression, EyeSettings>(__instance, "blendedLeftEye").upperLidClosedPercent, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime")); Utils.GetField<PlayerExpression, Transform>(__instance, "leftUpperEyelidRotationX").localRotation = Quaternion.Euler(num8, 0f, 0f); float num9 = SemiFunc.SpringFloatGet(Utils.GetField<PlayerExpression, SpringFloat>(__instance, "leftLowerLidClosedAngle"), Utils.GetField<PlayerExpression, EyeSettings>(__instance, "blendedLeftEye").lowerLidClosedPercent, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime")); Utils.GetField<PlayerExpression, Transform>(__instance, "leftLowerEyelidRotationX").localRotation = Quaternion.Euler(num9, 0f, 0f); num8 = SemiFunc.SpringFloatGet(Utils.GetField<PlayerExpression, SpringFloat>(__instance, "rightUpperLidClosedAngle"), Utils.GetField<PlayerExpression, EyeSettings>(__instance, "blendedRightEye").upperLidClosedPercent, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime")); Utils.GetField<PlayerExpression, Transform>(__instance, "rightUpperEyelidRotationX").localRotation = Quaternion.Euler(num8, 0f, 0f); num9 = SemiFunc.SpringFloatGet(Utils.GetField<PlayerExpression, SpringFloat>(__instance, "rightLowerLidClosedAngle"), Utils.GetField<PlayerExpression, EyeSettings>(__instance, "blendedRightEye").lowerLidClosedPercent, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime")); Utils.GetField<PlayerExpression, Transform>(__instance, "rightLowerEyelidRotationX").localRotation = Quaternion.Euler(num9, 0f, 0f); float num10 = SemiFunc.SpringFloatGet(Utils.GetField<PlayerExpression, SpringFloat>(__instance, "leftUpperLidRotationZSpring"), Utils.GetField<PlayerExpression, EyeSettings>(__instance, "blendedLeftEye").upperLidAngle, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime")); Utils.GetField<PlayerExpression, Transform>(__instance, "leftUpperEyeLidRotationZ").localRotation = Quaternion.Euler(0f, 0f, num10); num10 = SemiFunc.SpringFloatGet(Utils.GetField<PlayerExpression, SpringFloat>(__instance, "rightUpperLidRotationZSpring"), Utils.GetField<PlayerExpression, EyeSettings>(__instance, "blendedRightEye").upperLidAngle, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime")); Utils.GetField<PlayerExpression, Transform>(__instance, "rightUpperEyelidRotationZ").localRotation = Quaternion.Euler(0f, 0f, num10); float num11 = SemiFunc.SpringFloatGet(Utils.GetField<PlayerExpression, SpringFloat>(__instance, "leftLowerLidRotationZSpring"), Utils.GetField<PlayerExpression, EyeSettings>(__instance, "blendedLeftEye").lowerLidAngle, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime")); Utils.GetField<PlayerExpression, Transform>(__instance, "leftLowerEyelidRotationZ").localRotation = Quaternion.Euler(0f, 0f, num11); num11 = SemiFunc.SpringFloatGet(Utils.GetField<PlayerExpression, SpringFloat>(__instance, "rightLowerLidRotationZSpring"), Utils.GetField<PlayerExpression, EyeSettings>(__instance, "blendedRightEye").lowerLidAngle, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime")); Utils.GetField<PlayerExpression, Transform>(__instance, "rightLowerEyelidRotationZ").localRotation = Quaternion.Euler(0f, 0f, num11); Utils.SetField<PlayerExpression, float>(__instance, "pupilLeftScaleAmount", SemiFunc.SpringFloatGet(Utils.GetField<PlayerExpression, SpringFloat>(__instance, "leftPupilSizeSpring"), Utils.GetField<PlayerExpression, EyeSettings>(__instance, "blendedLeftEye").pupilSize, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime"))); Utils.SetField<PlayerExpression, float>(__instance, "pupilRightScaleAmount", SemiFunc.SpringFloatGet(Utils.GetField<PlayerExpression, SpringFloat>(__instance, "rightPupilSizeSpring"), Utils.GetField<PlayerExpression, EyeSettings>(__instance, "blendedRightEye").pupilSize, Utils.GetField<PlayerAvatarVisuals, float>(component, "deltaTime"))); if (Utils.GetField<PlayerExpression, List<ExpressionSettings>>(__instance, "expressions")[0].weight > 82f) { Utils.GetField<PlayerExpression, Transform>(__instance, "pupilRightScale").localScale = Vector3.one; Utils.GetField<PlayerExpression, Transform>(__instance, "pupilLeftScale").localScale = Vector3.one; Utils.GetField<PlayerExpression, GameObject>(__instance, "eyelidLeft").SetActive(false); Utils.GetField<PlayerExpression, GameObject>(__instance, "eyelidRight").SetActive(false); } } Utils.CallMethod<PlayerExpression>(__instance, "ExpressionTimerTick", null); return false; } } }