Some mods target the Mono version of the game, which is available by opting into the Steam beta branch "alternate"
Decompiled source of CasinoPlus v0.8.7
CasinoPlusMono.dll
Decompiled 10 months agousing System; using System.Collections; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using CasinoPlusMono; using FishNet.Connection; using HarmonyLib; using MelonLoader; using ScheduleOne.Casino; using ScheduleOne.Casino.UI; using ScheduleOne.DevUtilities; using ScheduleOne.Map; using ScheduleOne.Money; using TMPro; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.Events; using UnityEngine.SceneManagement; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: MelonInfo(typeof(casino), "CasinoPlus", "0.8.5", "Sosa", null)] [assembly: MelonGame("TVGS", "Schedule I")] [assembly: AssemblyTitle("CasinoPlusMono")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("CasinoPlusMono")] [assembly: AssemblyCopyright("Copyright © 2025")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("f9cbbfaf-d3bc-4dd2-9cf0-f6a5416e362f")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] [HarmonyPatch(typeof(AccessZone), "SetIsOpen")] public static class ForceCasinoOpenPatch { private static void Prefix(AccessZone __instance, ref bool open) { if (((Object)((Component)__instance).gameObject).name.Equals("Casino", StringComparison.OrdinalIgnoreCase) || ((Object)((Component)__instance).gameObject).name.Equals("Casino (Closed)", StringComparison.OrdinalIgnoreCase)) { open = true; } } } [HarmonyPatch(typeof(TimedAccessZone), "Start")] public static class TimedAccessZoneTimePatch { private static void Postfix(TimedAccessZone __instance) { if (((Object)((Component)__instance).gameObject).name.Equals("Casino", StringComparison.OrdinalIgnoreCase) || ((Object)((Component)__instance).gameObject).name.Equals("Casino (Closed)", StringComparison.OrdinalIgnoreCase)) { __instance.OpenTime = 600; __instance.CloseTime = 500; } } } namespace CasinoPlusMono; [HarmonyPatch(typeof(BlackjackInterface))] public static class BlackjackInterfacePatches { public static GameObject doubleDownButton; private static TextMeshProUGUI doubleDownText; private static MethodInfo hitMethod; private static MethodInfo standMethod; private static FieldInfo playerHandField; private static MethodInfo refreshBetMethod; private static FieldInfo playerBetField; private static bool initialized; private static float originalBetBeforeDoubleDown; private static void MoveLabelUp(Transform label, float yOffset) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)label != (Object)null) { label.localPosition += new Vector3(0f, yOffset, 0f); } } [HarmonyPatch("GetBetFromSliderValue")] [HarmonyPrefix] public static bool GetBetFromSliderValuePrefix(ref float sliderVal, ref float __result) { __result = Mathf.Lerp(1000f, 25000f, sliderVal); return false; } [HarmonyPatch("Awake")] [HarmonyPostfix] public static void Initialize(BlackjackInterface __instance) { if (!initialized && !((Object)(object)__instance == (Object)null)) { hitMethod = typeof(BlackjackInterface).GetMethod("HitClicked", BindingFlags.Instance | BindingFlags.NonPublic); standMethod = typeof(BlackjackInterface).GetMethod("StandClicked", BindingFlags.Instance | BindingFlags.NonPublic); playerHandField = typeof(BlackjackGameController).GetField("player1Hand", BindingFlags.Instance | BindingFlags.NonPublic); refreshBetMethod = typeof(BlackjackInterface).GetMethod("RefreshDisplayedBet", BindingFlags.Instance | BindingFlags.NonPublic); playerBetField = typeof(BlackjackGameController).GetField("<LocalPlayerBet>k__BackingField", BindingFlags.Instance | BindingFlags.NonPublic); if (!(hitMethod == null) && !(standMethod == null) && !(playerHandField == null) && !(refreshBetMethod == null) && !(playerBetField == null)) { CreateDoubleDownButton(__instance); initialized = true; } } } private static void CreateDoubleDownButton(BlackjackInterface __instance) { //IL_00ee: 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_0104: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Expected O, but got Unknown //IL_01f0: Unknown result type (might be due to invalid IL or missing references) //IL_01ff: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)__instance == (Object)null || (Object)(object)__instance.HitButton == (Object)null || (Object)(object)((Component)__instance.HitButton).gameObject == (Object)null) { return; } Transform val = ((Component)__instance.HitButton).transform.parent.Find("DoubleDownButton"); if ((Object)(object)val != (Object)null) { doubleDownButton = ((Component)val).gameObject; return; } doubleDownButton = Object.Instantiate<GameObject>(((Component)__instance.HitButton).gameObject, ((Component)__instance.HitButton).transform.parent); ((Object)doubleDownButton).name = "DoubleDownButton"; RectTransform component = doubleDownButton.GetComponent<RectTransform>(); RectTransform component2 = ((Component)__instance.HitButton).GetComponent<RectTransform>(); component.anchoredPosition = new Vector2(component2.anchoredPosition.x, component2.anchoredPosition.y + component2.sizeDelta.y + 10f); Image component3 = doubleDownButton.GetComponent<Image>(); ((Graphic)component3).color = new Color(0.2f, 0.4f, 0.8f, 1f); doubleDownText = doubleDownButton.GetComponentInChildren<TextMeshProUGUI>(); if ((Object)(object)doubleDownText != (Object)null) { ((TMP_Text)doubleDownText).text = "DOUBLE DOWN"; ((TMP_Text)doubleDownText).fontSize = 24f; ((TMP_Text)doubleDownText).fontStyle = (FontStyles)1; } Button component4 = doubleDownButton.GetComponent<Button>(); ((UnityEventBase)component4.onClick).RemoveAllListeners(); ((UnityEvent)component4.onClick).AddListener((UnityAction)delegate { OnDoubleDown(__instance); }); RectTransform component5 = ((Component)__instance.InputContainerCanvasGroup).GetComponent<RectTransform>(); if ((Object)(object)component5 != (Object)null) { component5.sizeDelta += new Vector2(0f, 60f); } TextMeshProUGUI playerScoreLabel = __instance.PlayerScoreLabel; MoveLabelUp((playerScoreLabel != null) ? ((TMP_Text)playerScoreLabel).transform : null, 30f); TextMeshProUGUI dealerScoreLabel = __instance.DealerScoreLabel; MoveLabelUp((dealerScoreLabel != null) ? ((TMP_Text)dealerScoreLabel).transform : null, 30f); } [HarmonyPatch("RefreshDisplayedBet")] [HarmonyPrefix] public static bool RefreshDisplayedBetPrefix(BlackjackInterface __instance) { try { if ((Object)(object)__instance == (Object)null || (Object)(object)__instance.CurrentGame == (Object)null || (Object)(object)__instance.BetAmount == (Object)null || (Object)(object)__instance.BetSlider == (Object)null) { return false; } float localPlayerBet = __instance.CurrentGame.LocalPlayerBet; string text = MoneyManager.FormatAmount(localPlayerBet, false, false); ((TMP_Text)__instance.BetAmount).text = text; ((TMP_Text)__instance.BetAmount).ForceMeshUpdate(false, false); } catch (Exception) { } return false; } [HarmonyPatch("Open")] [HarmonyPostfix] public static void OpenPostfix(BlackjackInterface __instance) { if (!((Object)(object)__instance == (Object)null) && !((Object)(object)__instance.CurrentGame == (Object)null)) { originalBetBeforeDoubleDown = __instance.CurrentGame.LocalPlayerBet; __instance.CurrentGame.SetLocalPlayerBet(1000f); __instance.BetSlider.minValue = 0f; __instance.BetSlider.maxValue = 1f; __instance.BetSlider.SetValueWithoutNotify(0f); refreshBetMethod?.Invoke(__instance, null); if ((Object)(object)__instance.HitButton != (Object)null) { ((Component)__instance.HitButton).gameObject.SetActive(true); } if ((Object)(object)__instance.StandButton != (Object)null) { ((Component)__instance.StandButton).gameObject.SetActive(true); } if ((Object)(object)doubleDownButton != (Object)null) { doubleDownButton.SetActive(true); } else { CreateDoubleDownButton(__instance); } UpdateTopBetUI(__instance); MelonCoroutines.Start(casino.Instance.FixPlayerScoreExplicitCoroutine()); MelonCoroutines.Start(casino.Instance.FixDealerScoreExplicitCoroutine()); MelonCoroutines.Start(casino.Instance.FixPayoutTextExplicitCoroutine()); } } [HarmonyPatch("LocalPlayerReadyForInput")] [HarmonyPostfix] public static void EnableDoubleDownWhenAppropriate(BlackjackInterface __instance) { if ((Object)(object)__instance == (Object)null || (Object)(object)__instance.CurrentGame == (Object)null) { return; } if ((Object)(object)doubleDownButton == (Object)null) { CreateDoubleDownButton(__instance); if ((Object)(object)doubleDownButton == (Object)null) { return; } } doubleDownButton.SetActive(true); } [HarmonyPatch("LocalPlayerExitRound")] [HarmonyPostfix] public static void HideDoubleDownBetweenRounds(BlackjackInterface __instance) { if ((Object)(object)doubleDownButton != (Object)null) { doubleDownButton.SetActive(false); } if ((Object)(object)__instance != (Object)null && (Object)(object)__instance.CurrentGame != (Object)null && playerBetField != null) { playerBetField.SetValue(__instance.CurrentGame, originalBetBeforeDoubleDown); refreshBetMethod?.Invoke(__instance, null); } if ((Object)(object)__instance.HitButton != (Object)null) { ((Component)__instance.HitButton).gameObject.SetActive(true); } if ((Object)(object)__instance.StandButton != (Object)null) { ((Component)__instance.StandButton).gameObject.SetActive(true); } if ((Object)(object)__instance.BetSlider != (Object)null) { __instance.BetSlider.SetValueWithoutNotify(0f); } UpdateTopBetUI(__instance); MelonCoroutines.Start(casino.Instance.FixPlayerScoreExplicitCoroutine()); MelonCoroutines.Start(casino.Instance.FixDealerScoreExplicitCoroutine()); MelonCoroutines.Start(casino.Instance.FixPayoutTextExplicitCoroutine()); } private static void OnDoubleDown(BlackjackInterface __instance) { if ((Object)(object)__instance == (Object)null || (Object)(object)__instance.CurrentGame == (Object)null) { return; } float localPlayerBet = __instance.CurrentGame.LocalPlayerBet; if (localPlayerBet <= 0f) { return; } if ((Object)(object)doubleDownButton != (Object)null) { doubleDownButton.SetActive(false); } MoneyManager instance = NetworkSingleton<MoneyManager>.Instance; if ((Object)(object)instance == (Object)null) { return; } instance.ChangeCashBalance(0f - localPlayerBet, true, false); float num = localPlayerBet * 2f; if (playerBetField == null) { playerBetField = typeof(BlackjackGameController).GetField("<LocalPlayerBet>k__BackingField", BindingFlags.Instance | BindingFlags.NonPublic); if (playerBetField == null) { return; } } playerBetField.SetValue(__instance.CurrentGame, num); refreshBetMethod?.Invoke(__instance, null); UpdateTopBetUI(__instance); if ((Object)(object)__instance.InputContainerCanvasGroup != (Object)null) { __instance.InputContainerCanvasGroup.interactable = false; } if ((Object)(object)__instance.HitButton != (Object)null) { ((Component)__instance.HitButton).gameObject.SetActive(false); } if ((Object)(object)__instance.StandButton != (Object)null) { ((Component)__instance.StandButton).gameObject.SetActive(false); } ((MonoBehaviour)__instance).StartCoroutine(RunDoubleDownActions(__instance)); } private static void UpdateTopBetUI(BlackjackInterface instance) { if (!((Object)(object)instance != (Object)null)) { return; } Transform val = ((Component)instance).transform.Find("Container/GameStatus/Container/PlayerDisplay/Players/Player/Container/Score"); if ((Object)(object)val != (Object)null) { TextMeshProUGUI component = ((Component)val).GetComponent<TextMeshProUGUI>(); if ((Object)(object)component != (Object)null && (Object)(object)instance.CurrentGame != (Object)null) { float localPlayerBet = instance.CurrentGame.LocalPlayerBet; string text = MoneyManager.FormatAmount(localPlayerBet, false, false); ((TMP_Text)component).text = text; ((TMP_Text)component).ForceMeshUpdate(false, false); } } } private static IEnumerator RunDoubleDownActions(BlackjackInterface __instance) { yield return (object)new WaitForSeconds(0.2f); hitMethod.Invoke(__instance, null); yield return (object)new WaitForSeconds(1f); if ((Object)(object)EventSystem.current != (Object)null) { EventSystem.current.SetSelectedGameObject((GameObject)null); } if (standMethod != null) { standMethod.Invoke(__instance, null); } else { ((CasinoGameController)__instance.CurrentGame).LocalPlayerData.SetData<float>("Action", 2f, true); } yield return (object)new WaitForEndOfFrame(); if ((Object)(object)EventSystem.current != (Object)null) { EventSystem.current.SetSelectedGameObject((GameObject)null); } } } [HarmonyPatch(typeof(BlackjackGameController))] public static class BlackjackGameControllerPatches { [HarmonyPatch("SetLocalPlayerBet")] [HarmonyPrefix] public static void SetLocalPlayerBetPrefix(ref float bet) { bet = Mathf.Clamp(bet, 1000f, 25000f); } } public class casino : MelonMod { public const float BJ_MIN_BET = 1000f; public const float BJ_MAX_BET = 25000f; public const float RTB_MIN_BET = 1000f; public const float RTB_MAX_BET = 25000f; public static readonly int[] SLOT_BET_AMOUNTS = new int[19] { 100, 150, 200, 250, 300, 350, 400, 450, 500, 750, 1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500, 5000 }; public static casino Instance { get; private set; } public override void OnInitializeMelon() { //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Expected O, but got Unknown Instance = this; MelonLogger.Msg($"Casino Mod loaded - Blackjack: ${1000f}-${25000f}, RTB: ${1000f}-${25000f}, Slots: {SLOT_BET_AMOUNTS[0]}-{SLOT_BET_AMOUNTS[SLOT_BET_AMOUNTS.Length - 1]}"); GameObject val = GameObject.Find("ScorePositionEnforcer"); if ((Object)(object)val == (Object)null) { val = new GameObject("ScorePositionEnforcer"); val.AddComponent<ScorePositionEnforcer>(); Object.DontDestroyOnLoad((Object)(object)val); } SceneManager.sceneLoaded += OnSceneLoaded; } private void OnSceneLoaded(Scene scene, LoadSceneMode mode) { if (((Scene)(ref scene)).name.Equals("Main", StringComparison.OrdinalIgnoreCase)) { MelonCoroutines.Start(UpdateCasinoSignTextCoroutine()); } } private IEnumerator UpdateCasinoSignTextCoroutine() { yield return (object)new WaitForSeconds(1f); string sceneName = "Main"; string path1 = "Map/Container/Casino/casino/DoorWall/OpeningHoursSign/Name"; string path2 = "Map/Container/Casino/casino/DoorWall (1)/OpeningHoursSign/Name"; GameObject signObj1 = FindGameObjectInScene(sceneName, path1); if ((Object)(object)signObj1 != (Object)null) { TextMeshPro tmp1 = signObj1.GetComponent<TextMeshPro>(); if ((Object)(object)tmp1 != (Object)null && ((TMP_Text)tmp1).text.Trim().Equals("4PM-5AM", StringComparison.OrdinalIgnoreCase)) { ((TMP_Text)tmp1).text = "OPEN 24/7"; ((TMP_Text)tmp1).ForceMeshUpdate(false, false); } } GameObject signObj2 = FindGameObjectInScene(sceneName, path2); if ((Object)(object)signObj2 != (Object)null) { TextMeshPro tmp2 = signObj2.GetComponent<TextMeshPro>(); if ((Object)(object)tmp2 != (Object)null && ((TMP_Text)tmp2).text.Trim().Equals("4PM-5AM", StringComparison.OrdinalIgnoreCase)) { ((TMP_Text)tmp2).text = "OPEN 24/7"; ((TMP_Text)tmp2).ForceMeshUpdate(false, false); } } } private GameObject RecursiveFind(GameObject current, string[] segments, int index) { //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Expected O, but got Unknown if ((Object)(object)current == (Object)null || index >= segments.Length) { return null; } if (!((Object)current).name.Equals(segments[index], StringComparison.OrdinalIgnoreCase)) { return null; } if (index == segments.Length - 1) { return current; } foreach (Transform item in current.transform) { Transform val = item; GameObject val2 = RecursiveFind(((Component)val).gameObject, segments, index + 1); if ((Object)(object)val2 != (Object)null) { return val2; } } return null; } private GameObject FindGameObjectInScene(string sceneName, string path) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) Scene sceneByName = SceneManager.GetSceneByName(sceneName); if (!((Scene)(ref sceneByName)).IsValid() || !((Scene)(ref sceneByName)).isLoaded) { return null; } string[] segments = path.Split(new char[1] { '/' }); GameObject[] rootGameObjects = ((Scene)(ref sceneByName)).GetRootGameObjects(); foreach (GameObject current in rootGameObjects) { GameObject val = RecursiveFind(current, segments, 0); if ((Object)(object)val != (Object)null) { return val; } } return null; } public IEnumerator FixPlayerScoreExplicitCoroutine() { float timer = 0f; float timeout = 10f; string sceneName = "Main"; string targetPath = "UI/CasinoGames/Blackjack/Container/ScoresContainer/Player/Score"; while (timer < timeout) { GameObject playerScoreObj = FindGameObjectInScene(sceneName, targetPath); if ((Object)(object)playerScoreObj != (Object)null) { RectTransform playerRect = playerScoreObj.GetComponent<RectTransform>(); if ((Object)(object)playerRect != (Object)null) { ((Transform)playerRect).localPosition = new Vector3(75f, 0f, 0f); playerRect.anchoredPosition = new Vector2(75f, 0f); break; } } timer += Time.deltaTime; yield return null; } } public IEnumerator FixDealerScoreExplicitCoroutine() { float timer = 0f; float timeout = 10f; string sceneName = "Main"; string targetPath = "UI/CasinoGames/Blackjack/Container/ScoresContainer/Dealer/Score"; while (timer < timeout) { GameObject dealerScoreObj = FindGameObjectInScene(sceneName, targetPath); if ((Object)(object)dealerScoreObj != (Object)null) { RectTransform dealerRect = dealerScoreObj.GetComponent<RectTransform>(); if ((Object)(object)dealerRect != (Object)null) { ((Transform)dealerRect).localPosition = new Vector3(75f, 0f, 0f); dealerRect.anchoredPosition = new Vector2(75f, 0f); break; } } timer += Time.deltaTime; yield return null; } } public IEnumerator FixPayoutTextExplicitCoroutine() { float timer = 0f; float timeout = 10f; string sceneName = "Main"; string targetPath = "UI/CasinoGames/Blackjack/Container/PositiveOutcome/Payout"; while (timer < timeout) { GameObject payoutObj = FindGameObjectInScene(sceneName, targetPath); if ((Object)(object)payoutObj != (Object)null) { TMP_Text payoutText = payoutObj.GetComponent<TMP_Text>(); if ((Object)(object)payoutText != (Object)null) { payoutText.textWrappingMode = (TextWrappingModes)0; payoutText.ForceMeshUpdate(false, false); break; } } timer += Time.deltaTime; yield return null; } } public IEnumerator FixRideTheBusPayoutTextExplicitCoroutine() { float timer = 0f; float timeout = 10f; string sceneName = "Main"; string targetPath = "UI/CasinoGames/RideTheBus/Container/PositiveOutcome/Payout"; while (timer < timeout) { GameObject payoutObj = FindGameObjectInScene(sceneName, targetPath); if ((Object)(object)payoutObj != (Object)null) { TMP_Text payoutText = payoutObj.GetComponent<TMP_Text>(); if ((Object)(object)payoutText != (Object)null) { payoutText.textWrappingMode = (TextWrappingModes)0; payoutText.ForceMeshUpdate(false, false); break; } } timer += Time.deltaTime; yield return null; } } } public class ScorePositionEnforcer : MonoBehaviour { private void LateUpdate() { } } [HarmonyPatch(typeof(RTBInterface))] public static class RTBInterfacePatches { [HarmonyPatch("GetBetFromSliderValue")] [HarmonyPrefix] public static bool GetBetFromSliderValuePrefix(ref float sliderVal, ref float __result) { __result = Mathf.Lerp(1000f, 25000f, sliderVal); return false; } [HarmonyPatch("RefreshDisplayedBet")] [HarmonyPrefix] public static bool RefreshDisplayedBetPrefix(RTBInterface __instance) { try { float localPlayerBet = __instance.CurrentGame.LocalPlayerBet; ((TMP_Text)__instance.BetAmount).text = MoneyManager.FormatAmount(localPlayerBet, false, false); ((TMP_Text)__instance.BetAmount).ForceMeshUpdate(false, false); float valueWithoutNotify = Mathf.InverseLerp(1000f, 25000f, localPlayerBet); __instance.BetSlider.SetValueWithoutNotify(valueWithoutNotify); } catch (Exception) { } return false; } [HarmonyPatch("Open")] [HarmonyPostfix] public static void OpenPostfix(RTBInterface __instance) { __instance.CurrentGame.SetLocalPlayerBet(1000f); typeof(RTBInterface).GetMethod("RefreshDisplayedBet", BindingFlags.Instance | BindingFlags.NonPublic)?.Invoke(__instance, null); MelonCoroutines.Start(casino.Instance.FixRideTheBusPayoutTextExplicitCoroutine()); } } [HarmonyPatch(typeof(RTBGameController))] public static class RTBGameControllerPatches { [HarmonyPatch("SetLocalPlayerBet")] [HarmonyPrefix] public static void SetLocalPlayerBetPrefix(ref float bet) { bet = Mathf.Clamp(bet, 1000f, 25000f); } } [HarmonyPatch(typeof(SlotMachine))] public static class SlotMachinePatches { [HarmonyPatch("Awake")] [HarmonyPostfix] public static void ModifyBetAmounts(SlotMachine __instance) { typeof(SlotMachine).GetField("BetAmounts", BindingFlags.Static | BindingFlags.Public)?.SetValue(null, casino.SLOT_BET_AMOUNTS); __instance.SetBetIndex((NetworkConnection)null, 0); FixTextDisplay(__instance.BetAmountLabel); } [HarmonyPatch("SetBetIndex")] [HarmonyPostfix] public static void AfterSetBetIndex(SlotMachine __instance) { FixTextDisplay(__instance.BetAmountLabel); } private static void FixTextDisplay(TextMeshPro textComponent) { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)textComponent != (Object)null) { float fontSize = ((TMP_Text)textComponent).fontSize; Vector3 localPosition = textComponent.transform.localPosition; Vector2 sizeDelta = ((TMP_Text)textComponent).rectTransform.sizeDelta; ((TMP_Text)textComponent).enableWordWrapping = false; ((TMP_Text)textComponent).overflowMode = (TextOverflowModes)0; ((TMP_Text)textComponent).alignment = (TextAlignmentOptions)514; ((TMP_Text)textComponent).margin = new Vector4(0f, 0f, 0f, 0f); ((TMP_Text)textComponent).enableAutoSizing = false; ((TMP_Text)textComponent).fontSize = fontSize; textComponent.transform.localPosition = localPosition; ((TMP_Text)textComponent).rectTransform.sizeDelta = sizeDelta; ((TMP_Text)textComponent).ForceMeshUpdate(false, false); ((TMP_Text)textComponent).rectTransform.ForceUpdateRectTransforms(); } } }