using System; using System.CodeDom.Compiler; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Drawing; using System.Globalization; using System.IO; using System.Linq; using System.Net; using System.Net.Http; using System.Net.Http.Headers; using System.Reflection; using System.Reflection.Emit; using System.Resources; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Text; using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; using System.Xml; using ArabicSupportUnity; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using Discord; using Emgu.CV; using Emgu.CV.CvEnum; using Emgu.Util; using HarmonyLib; using Microsoft.CodeAnalysis; using Newtonsoft.Json; using Newtonsoft.Json.Serialization; using Sandbox; using ScriptableObjects; using SettingsMenu.Components; using TMPro; using UltrakULL.Harmony_Patches; using UltrakULL.Harmony_Patches.AudioSwaps; using UltrakULL.Harmony_Patches.Subtitles; using UltrakULL.audio; using UltrakULL.json; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.Events; using UnityEngine.InputSystem; using UnityEngine.Networking; using UnityEngine.SceneManagement; using UnityEngine.TextCore.LowLevel; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyTitle("UltrakULL")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("UltrakULL")] [assembly: AssemblyCopyright("Copyright © 2023")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("a4a60eef-e5f3-4a77-b125-236fbf44cca4")] [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")] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } } [HarmonyPatch(typeof(IntroViolenceScreen))] public static class IntroViolenceScreenPatch { private static GameObject textObject1; private static GameObject textObject2; [HarmonyPatch("Start")] [HarmonyPostfix] private static void StartPatch(IntroViolenceScreen __instance) { Transform parent = ((Component)__instance).transform.parent; if (!((Object)(object)parent == (Object)null)) { Transform val = parent.Find("Image"); Transform val2 = parent.Find("ImageRed"); if ((Object)(object)val != (Object)null) { ReplaceImage(val, "violence1.png"); textObject1 = AddTextToImage(val, LanguageManager.CurrentLanguage.misc.violenceScreenText1, 0f); } if ((Object)(object)val2 != (Object)null) { ReplaceImage(val2, "violence2.png"); textObject2 = AddTextToImage(val2, LanguageManager.CurrentLanguage.misc.violenceScreenText2, 0f); } } } [HarmonyPatch("Update")] [HarmonyPostfix] private static void UpdatePatch(IntroViolenceScreen __instance) { //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)textObject1 == (Object)null) && !((Object)(object)textObject2 == (Object)null)) { float value = Traverse.Create((object)__instance).Field("fadeAmount").GetValue(); float value2 = Traverse.Create((object)__instance).Field("targetAlpha").GetValue(); bool value3 = Traverse.Create((object)__instance).Field("fade").GetValue(); Color color = ((Graphic)Traverse.Create((object)__instance).Field("red").GetValue()).color; if (value3 && value2 == 1f) { UpdateTextAlpha(textObject1, value); } if (color.a > 0f) { UpdateTextAlpha(textObject1, 0f); UpdateTextAlpha(textObject2, value); } } } private static GameObject AddTextToImage(Transform imageTransform, string text, float startAlpha) { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0065: 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_0092: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Expected O, but got Unknown GameObject val = new GameObject("Text"); val.transform.SetParent(imageTransform, false); TextMeshProUGUI __instance = val.AddComponent(); ((TMP_Text)__instance).text = text; ((TMP_Text)__instance).enableAutoSizing = true; ((TMP_Text)__instance).fontSizeMin = 10f; ((TMP_Text)__instance).fontSizeMax = 100f; ((TMP_Text)__instance).alignment = (TextAlignmentOptions)514; ((TMP_Text)__instance).overflowMode = (TextOverflowModes)0; ((Graphic)__instance).color = new Color(1f, 1f, 1f, startAlpha); ((TMP_Text)__instance).enableWordWrapping = false; TextMeshProFontSwap.SwapTMPFont(ref __instance); RectTransform component = val.GetComponent(); component.anchorMin = new Vector2(0.5f, 0.5f); component.anchorMax = new Vector2(0.5f, 0.5f); component.pivot = new Vector2(0.5f, 0.5f); component.anchoredPosition = Vector2.zero; float num = Mathf.Min((float)Screen.width * 0.9f, 800f); float num2 = Mathf.Min((float)Screen.height * 0.45f, 300f); component.sizeDelta = new Vector2(num, num2); return val; } private static void UpdateTextAlpha(GameObject textObj, float alpha) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) TextMeshProUGUI component = textObj.GetComponent(); ((Graphic)component).color = new Color(((Graphic)component).color.r, ((Graphic)component).color.g, ((Graphic)component).color.b, alpha); } private static void ReplaceImage(Transform imageTransform, string ImageName) { Image component = ((Component)imageTransform).GetComponent(); if (!((Object)(object)component == (Object)null)) { Sprite val = LoadPNG(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\IntroViolenceScreen", ImageName)); if ((Object)(object)val != (Object)null) { component.sprite = val; } } } private static Sprite LoadPNG(string filePath) { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Expected O, but got Unknown //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) if (!File.Exists(filePath)) { return null; } byte[] array = File.ReadAllBytes(filePath); Texture2D val = new Texture2D(2, 2); if (ImageConversion.LoadImage(val, array)) { return Sprite.Create(val, new Rect(0f, 0f, (float)((Texture)val).width, (float)((Texture)val).height), new Vector2(0.5f, 0.5f)); } return null; } } internal enum IsolatedArabicLetters { Hamza = 65152, Alef = 65165, AlefHamza = 65155, WawHamza = 65157, AlefMaksoor = 65159, AlefMaksora = 64508, HamzaNabera = 65161, Ba = 65167, Ta = 65173, Tha2 = 65177, Jeem = 65181, H7aa = 65185, Khaa2 = 65189, Dal = 65193, Thal = 65195, Ra2 = 65197, Zeen = 65199, Seen = 65201, Sheen = 65205, S9a = 65209, Dha = 65213, T6a = 65217, T6ha = 65221, Ain = 65225, Gain = 65229, Fa = 65233, Gaf = 65237, Kaf = 65241, Lam = 65245, Meem = 65249, Noon = 65253, Ha = 65257, Waw = 65261, Ya = 65265, AlefMad = 65153, TaMarboota = 65171, PersianPe = 64342, PersianChe = 64378, PersianZe = 64394, PersianGaf = 64402, PersianGaf2 = 64398, PersianYeh = 64508 } internal enum GeneralArabicLetters { Hamza = 1569, Alef = 1575, AlefHamza = 1571, WawHamza = 1572, AlefMaksoor = 1573, AlefMagsora = 1609, HamzaNabera = 1574, Ba = 1576, Ta = 1578, Tha2 = 1579, Jeem = 1580, H7aa = 1581, Khaa2 = 1582, Dal = 1583, Thal = 1584, Ra2 = 1585, Zeen = 1586, Seen = 1587, Sheen = 1588, S9a = 1589, Dha = 1590, T6a = 1591, T6ha = 1592, Ain = 1593, Gain = 1594, Fa = 1601, Gaf = 1602, Kaf = 1603, Lam = 1604, Meem = 1605, Noon = 1606, Ha = 1607, Waw = 1608, Ya = 1610, AlefMad = 1570, TaMarboota = 1577, PersianPe = 1662, PersianChe = 1670, PersianZe = 1688, PersianGaf = 1711, PersianGaf2 = 1705, PersianYeh = 1740 } internal struct ArabicMapping { public int from; public int to; public ArabicMapping(int from, int to) { this.from = from; this.to = to; } } internal class ArabicTable { private static ArabicMapping[] mapList; private static ArabicTable arabicMapper; internal static ArabicTable ArabicMapper { get { if (arabicMapper == null) { arabicMapper = new ArabicTable(); } return arabicMapper; } } private ArabicTable() { mapList = new ArabicMapping[42] { new ArabicMapping(1569, 65152), new ArabicMapping(1575, 65165), new ArabicMapping(1571, 65155), new ArabicMapping(1572, 65157), new ArabicMapping(1573, 65159), new ArabicMapping(1609, 64508), new ArabicMapping(1574, 65161), new ArabicMapping(1576, 65167), new ArabicMapping(1578, 65173), new ArabicMapping(1579, 65177), new ArabicMapping(1580, 65181), new ArabicMapping(1581, 65185), new ArabicMapping(1582, 65189), new ArabicMapping(1583, 65193), new ArabicMapping(1584, 65195), new ArabicMapping(1585, 65197), new ArabicMapping(1586, 65199), new ArabicMapping(1587, 65201), new ArabicMapping(1588, 65205), new ArabicMapping(1589, 65209), new ArabicMapping(1590, 65213), new ArabicMapping(1591, 65217), new ArabicMapping(1592, 65221), new ArabicMapping(1593, 65225), new ArabicMapping(1594, 65229), new ArabicMapping(1601, 65233), new ArabicMapping(1602, 65237), new ArabicMapping(1603, 65241), new ArabicMapping(1604, 65245), new ArabicMapping(1605, 65249), new ArabicMapping(1606, 65253), new ArabicMapping(1607, 65257), new ArabicMapping(1608, 65261), new ArabicMapping(1610, 65265), new ArabicMapping(1570, 65153), new ArabicMapping(1577, 65171), new ArabicMapping(1662, 64342), new ArabicMapping(1670, 64378), new ArabicMapping(1688, 64394), new ArabicMapping(1711, 64402), new ArabicMapping(1705, 64398), new ArabicMapping(1740, 64508) }; } internal int Convert(int toBeConverted) { for (int i = 0; i < mapList.Length; i++) { ArabicMapping arabicMapping = mapList[i]; if (arabicMapping.from == toBeConverted) { return arabicMapping.to; } } return toBeConverted; } } internal class TashkeelLocation { public char tashkeel; public int position; public TashkeelLocation(char tashkeel, int position) { this.tashkeel = tashkeel; this.position = position; } } internal class ArabicFixerTool { internal static bool showTashkeel = true; internal static bool combineTashkeel = true; internal static bool useHinduNumbers = true; internal static StringBuilder internalStringBuilder = new StringBuilder(); internal static void RemoveTashkeel(ref string str, out List tashkeelLocation) { tashkeelLocation = new List(); int lastSplitIndex = 0; internalStringBuilder.Clear(); internalStringBuilder.EnsureCapacity(str.Length); int num = 0; for (int j = 0; j < str.Length; j++) { if (str[j] == '\u064b') { tashkeelLocation.Add(new TashkeelLocation('\u064b', j)); num++; IncrementSB(ref str, j); } else if (str[j] == '\u064c') { tashkeelLocation.Add(new TashkeelLocation('\u064c', j)); num++; IncrementSB(ref str, j); } else if (str[j] == '\u064d') { tashkeelLocation.Add(new TashkeelLocation('\u064d', j)); num++; IncrementSB(ref str, j); } else if (str[j] == '\u064e') { if (num > 0 && combineTashkeel && tashkeelLocation[num - 1].tashkeel == '\u0651') { tashkeelLocation[num - 1].tashkeel = 'ﱠ'; IncrementSB(ref str, j); } else { tashkeelLocation.Add(new TashkeelLocation('\u064e', j)); num++; IncrementSB(ref str, j); } } else if (str[j] == '\u064f') { if (num > 0 && combineTashkeel && tashkeelLocation[num - 1].tashkeel == '\u0651') { tashkeelLocation[num - 1].tashkeel = 'ﱡ'; IncrementSB(ref str, j); } else { tashkeelLocation.Add(new TashkeelLocation('\u064f', j)); num++; IncrementSB(ref str, j); } } else if (str[j] == '\u0650') { if (num > 0 && combineTashkeel && tashkeelLocation[num - 1].tashkeel == '\u0651') { tashkeelLocation[num - 1].tashkeel = 'ﱢ'; IncrementSB(ref str, j); } else { tashkeelLocation.Add(new TashkeelLocation('\u0650', j)); num++; IncrementSB(ref str, j); } } else if (str[j] == '\u0651') { if (num > 0 && combineTashkeel) { if (tashkeelLocation[num - 1].tashkeel == '\u064e') { tashkeelLocation[num - 1].tashkeel = 'ﱠ'; IncrementSB(ref str, j); continue; } if (tashkeelLocation[num - 1].tashkeel == '\u064f') { tashkeelLocation[num - 1].tashkeel = 'ﱡ'; IncrementSB(ref str, j); continue; } if (tashkeelLocation[num - 1].tashkeel == '\u0650') { tashkeelLocation[num - 1].tashkeel = 'ﱢ'; IncrementSB(ref str, j); continue; } } tashkeelLocation.Add(new TashkeelLocation('\u0651', j)); num++; IncrementSB(ref str, j); } else if (str[j] == '\u0652') { tashkeelLocation.Add(new TashkeelLocation('\u0652', j)); num++; IncrementSB(ref str, j); } else if (str[j] == '\u0653') { tashkeelLocation.Add(new TashkeelLocation('\u0653', j)); num++; IncrementSB(ref str, j); } else if (str[j] == 'ﱠ') { IncrementSB(ref str, j); } else if (str[j] == 'ﱡ') { IncrementSB(ref str, j); } else if (str[j] == 'ﱢ') { IncrementSB(ref str, j); } } if (lastSplitIndex != 0) { IncrementSB(ref str, str.Length); str = internalStringBuilder.ToString(); } void IncrementSB(ref string str2, int i) { if (i - lastSplitIndex > 0) { internalStringBuilder.Append(str2, lastSplitIndex, i - lastSplitIndex); } lastSplitIndex = i + 1; } } internal static void ReturnTashkeel(ref char[] letters, List tashkeelLocation) { Array.Resize(ref letters, letters.Length + tashkeelLocation.Count); for (int i = 0; i < tashkeelLocation.Count; i++) { TashkeelLocation tashkeelLocation2 = tashkeelLocation[i]; for (int num = letters.Length - 1; num > tashkeelLocation2.position; num--) { letters[num] = letters[num - 1]; } letters[tashkeelLocation2.position] = tashkeelLocation2.tashkeel; } } internal static string FixLine(string str) { RemoveTashkeel(ref str, out var tashkeelLocation); char[] array = new char[str.Length]; char[] letters = str.ToCharArray(); for (int i = 0; i < array.Length; i++) { array[i] = (char)ArabicTable.ArabicMapper.Convert(str[i]); } for (int j = 0; j < array.Length; j++) { bool flag = false; if (array[j] == 'ﻝ' && j < array.Length - 1) { if (array[j + 1] == 'ﺇ') { array[j] = 'ﻷ'; letters[j + 1] = '\uffff'; flag = true; } else if (array[j + 1] == 'ﺍ') { array[j] = 'ﻹ'; letters[j + 1] = '\uffff'; flag = true; } else if (array[j + 1] == 'ﺃ') { array[j] = 'ﻵ'; letters[j + 1] = '\uffff'; flag = true; } else if (array[j + 1] == 'ﺁ') { array[j] = 'ﻳ'; letters[j + 1] = '\uffff'; flag = true; } } if (!IsIgnoredCharacter(array[j])) { if (IsMiddleLetter(array, j)) { letters[j] = (char)(array[j] + 3); } else if (IsFinishingLetter(array, j)) { letters[j] = (char)(array[j] + 1); } else if (IsLeadingLetter(array, j)) { letters[j] = (char)(array[j] + 2); } } if (flag) { j++; } letters[j] = (char)HandleInduNumber(array[j], letters[j]); } if (showTashkeel && tashkeelLocation.Count > 0) { ReturnTashkeel(ref letters, tashkeelLocation); } internalStringBuilder.Clear(); internalStringBuilder.EnsureCapacity(letters.Length); List numberList = null; for (int num = letters.Length - 1; num >= 0; num--) { if (char.IsPunctuation(letters[num]) && num > 0 && num < letters.Length - 1 && (char.IsPunctuation(letters[num - 1]) || char.IsPunctuation(letters[num + 1]))) { if (letters[num] != '\uffff') { internalStringBuilder.Append(letters[num]); } } else if (letters[num] == ' ' && num > 0 && num < letters.Length - 1 && (char.IsLower(letters[num - 1]) || char.IsUpper(letters[num - 1]) || char.IsNumber(letters[num - 1])) && (char.IsLower(letters[num + 1]) || char.IsUpper(letters[num + 1]) || char.IsNumber(letters[num + 1]))) { AddNumber(letters[num]); } else if (char.IsNumber(letters[num]) || char.IsLower(letters[num]) || char.IsUpper(letters[num]) || char.IsSymbol(letters[num]) || char.IsPunctuation(letters[num])) { AddNumber(letters[num]); } else if ((letters[num] >= '\ud800' && letters[num] <= '\udbff') || (letters[num] >= '\udc00' && letters[num] <= '\udfff')) { AddNumber(letters[num]); } else { AppendNumbers(); if (letters[num] != '\uffff') { internalStringBuilder.Append(letters[num]); } } } AppendNumbers(); return internalStringBuilder.ToString(); void AddNumber(char value) { if (numberList == null) { numberList = new List(); } numberList.Add(value); } void AppendNumbers() { if (numberList != null && numberList.Count > 0) { for (int k = 0; k < numberList.Count; k++) { internalStringBuilder.Append(numberList[numberList.Count - 1 - k]); } numberList.Clear(); } } } internal static ushort HandleInduNumber(ushort letterOrigin, ushort letterFinal) { return letterOrigin switch { 48 => 1632, 49 => 1633, 50 => 1634, 51 => 1635, 52 => 1636, 53 => 1637, 54 => 1638, 55 => 1639, 56 => 1640, 57 => 1641, _ => letterFinal, }; } internal static bool IsIgnoredCharacter(char ch) { bool num = char.IsPunctuation(ch); bool flag = char.IsNumber(ch); bool flag2 = char.IsLower(ch); bool flag3 = char.IsUpper(ch); bool flag4 = char.IsSymbol(ch); bool flag5 = ch == 'ﭖ' || ch == 'ﭺ' || ch == 'ﮊ' || ch == 'ﮒ' || ch == 'ﮎ'; bool flag6 = (ch <= '\ufeff' && ch >= 'ﹰ') || flag5 || ch == 'ﯼ'; if (!(num || flag || flag2 || flag3 || flag4) && flag6 && ch != 'a' && ch != '>' && ch != '<') { return ch == '؛'; } return true; } internal static bool IsLeadingLetter(char[] letters, int index) { bool num = index == 0 || letters[index - 1] == ' ' || char.IsPunctuation(letters[index - 1]) || letters[index - 1] == 'ﺍ' || letters[index - 1] == 'ﺩ' || letters[index - 1] == 'ﺫ' || letters[index - 1] == 'ﺭ' || letters[index - 1] == 'ﺯ' || letters[index - 1] == 'ﮊ' || letters[index - 1] == 'ﻭ' || letters[index - 1] == 'ﺁ' || letters[index - 1] == 'ﺃ' || letters[index - 1] == 'ﺀ' || letters[index - 1] == 'ﺇ' || letters[index - 1] == 'ﺅ'; bool flag = letters[index] != ' ' && letters[index] != 'ﺩ' && letters[index] != 'ﺫ' && letters[index] != 'ﺭ' && letters[index] != 'ﺯ' && letters[index] != 'ﮊ' && letters[index] != 'ﺍ' && letters[index] != 'ﺃ' && letters[index] != 'ﺇ' && letters[index] != 'ﺁ' && letters[index] != 'ﺅ' && letters[index] != 'ﻭ' && letters[index] != 'ﺀ'; bool flag2 = index < letters.Length - 1 && letters[index + 1] != ' ' && letters[index + 1] != '\n' && letters[index + 1] != '\r' && !char.IsPunctuation(letters[index + 1]) && !char.IsNumber(letters[index + 1]) && !char.IsSymbol(letters[index + 1]) && !char.IsLower(letters[index + 1]) && !char.IsUpper(letters[index + 1]) && letters[index + 1] != 'ﺀ'; if (num && flag && flag2) { return true; } return false; } internal static bool IsFinishingLetter(char[] letters, int index) { bool num = index != 0 && letters[index - 1] != ' ' && letters[index - 1] != 'ﺩ' && letters[index - 1] != 'ﺫ' && letters[index - 1] != 'ﺭ' && letters[index - 1] != 'ﺯ' && letters[index - 1] != 'ﮊ' && letters[index - 1] != 'ﻭ' && letters[index - 1] != 'ﺍ' && letters[index - 1] != 'ﺁ' && letters[index - 1] != 'ﺃ' && letters[index - 1] != 'ﺇ' && letters[index - 1] != 'ﺅ' && letters[index - 1] != 'ﺀ' && !char.IsPunctuation(letters[index - 1]) && !char.IsSymbol(letters[index - 1]); bool flag = letters[index] != ' ' && letters[index] != 'ﺀ'; if (num && flag) { return true; } return false; } internal static bool IsMiddleLetter(char[] letters, int index) { bool flag = index != 0 && letters[index] != 'ﺍ' && letters[index] != 'ﺩ' && letters[index] != 'ﺫ' && letters[index] != 'ﺭ' && letters[index] != 'ﺯ' && letters[index] != 'ﮊ' && letters[index] != 'ﻭ' && letters[index] != 'ﺁ' && letters[index] != 'ﺃ' && letters[index] != 'ﺇ' && letters[index] != 'ﺅ' && letters[index] != 'ﺀ'; bool flag2 = index != 0 && letters[index - 1] != 'ﺍ' && letters[index - 1] != 'ﺩ' && letters[index - 1] != 'ﺫ' && letters[index - 1] != 'ﺭ' && letters[index - 1] != 'ﺯ' && letters[index - 1] != 'ﮊ' && letters[index - 1] != 'ﻭ' && letters[index - 1] != 'ﺁ' && letters[index - 1] != 'ﺃ' && letters[index - 1] != 'ﺇ' && letters[index - 1] != 'ﺅ' && letters[index - 1] != 'ﺀ' && !char.IsPunctuation(letters[index - 1]) && letters[index - 1] != '>' && letters[index - 1] != '<' && letters[index - 1] != ' ' && letters[index - 1] != '*'; if (index < letters.Length - 1 && letters[index + 1] != ' ' && letters[index + 1] != '\r' && letters[index + 1] != 'ﺀ' && !char.IsNumber(letters[index + 1]) && !char.IsSymbol(letters[index + 1]) && !char.IsPunctuation(letters[index + 1]) && flag2 && flag) { try { if (char.IsPunctuation(letters[index + 1])) { return false; } return true; } catch { return false; } } return false; } } namespace ArabicSupportUnity { public class ArabicFixer { private static readonly Dictionary processedCache = new Dictionary(StringComparer.Ordinal); private static readonly string[] protectedPatterns = new string[3] { "]+>.*?", "\\{\\d+\\}", "<[^>]+>" }; private const int MaxCacheSize = 1000; private static string PreserveSpecialText(string input, out Dictionary placeholderMap) { string text = input; int num = 0; placeholderMap = new Dictionary(StringComparer.Ordinal); string[] array = protectedPatterns; foreach (string pattern in array) { foreach (Match item in Regex.Matches(text, pattern)) { string text2 = $"##TAG_{num}##"; placeholderMap[text2] = item.Value; text = text.Replace(item.Value, text2); num++; } } return text; } private static string RestoreSpecialText(string input, Dictionary placeholderMap) { if (placeholderMap == null || placeholderMap.Count == 0) { return input; } string text = input; foreach (KeyValuePair item in placeholderMap) { if (item.Key != null) { text = text.Replace(item.Key, item.Value); } } return text; } private static void TrimCache() { if (processedCache.Count > 1000) { processedCache.Clear(); } } public static string Fix(string str) { if (string.IsNullOrEmpty(str)) { return str; } if (processedCache.TryGetValue(str, out var value)) { return value; } TrimCache(); string input = FixMixedText(PreserveSpecialText(str, out var placeholderMap)); input = RestoreSpecialText(input, placeholderMap); processedCache[str] = input; return input; } private static string FixMixedText(string input) { if (string.IsNullOrEmpty(input)) { return input; } Regex regex = new Regex("([\u0600-ۿݐ-ݿࢠ-\u08ff]+)|([^\u0600-ۿݐ-ݿࢠ-\u08ff]+)", RegexOptions.Compiled); StringBuilder stringBuilder = new StringBuilder(); foreach (Match item in regex.Matches(input)) { if (item.Groups[1].Success) { stringBuilder.Append(ArabicFixerTool.FixLine(item.Value)); } else { stringBuilder.Append(item.Value); } } return stringBuilder.ToString(); } public static string Fix(string str, bool rtl) { return FixMixedText(str); } public static string Fix(string str, bool showTashkeel, bool useHinduNumbers) { ArabicFixerTool.showTashkeel = showTashkeel; ArabicFixerTool.useHinduNumbers = useHinduNumbers; if (str.Contains("\n")) { str = str.Replace("\n", Environment.NewLine); } if (str.Contains(Environment.NewLine)) { string[] separator = new string[1] { Environment.NewLine }; string[] array = str.Split(separator, StringSplitOptions.None); if (array.Length == 0) { return ArabicFixerTool.FixLine(str); } if (array.Length == 1) { return ArabicFixerTool.FixLine(str); } string text = ArabicFixerTool.FixLine(array[0]); int i = 1; if (array.Length > 1) { for (; i < array.Length; i++) { text = text + Environment.NewLine + ArabicFixerTool.FixLine(array[i]); } } return text; } return ArabicFixerTool.FixLine(str); } public static string Fix(string str, bool showTashkeel, bool combineTashkeel, bool useHinduNumbers) { ArabicFixerTool.combineTashkeel = combineTashkeel; return Fix(str, showTashkeel, useHinduNumbers); } } } namespace UltrakULL { public static class Act1 { private static void PatchHellmap(ref GameObject canvasObj) { try { GameObject gameObjectChild = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(canvasObj, "Hellmap"), "Hellmap Act 1"); ((TMP_Text)CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild, "Text"))).text = LanguageManager.CurrentLanguage.misc.hellmap_limbo; ((TMP_Text)CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild, "Text (1)"))).text = LanguageManager.CurrentLanguage.misc.hellmap_lust; ((TMP_Text)CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild, "Text (2)"))).text = LanguageManager.CurrentLanguage.misc.hellmap_gluttony; } catch (Exception ex) { Logging.Warn("Failed to patch Act 1 hellmap."); Logging.Warn(ex.ToString()); } } public static void PatchAct1(ref GameObject canvasObj) { string currentSceneName = CommonFunctions.GetCurrentSceneName(); string levelName = Act1Strings.GetLevelName(); string levelChallenge = Act1Strings.GetLevelChallenge(currentSceneName); PatchHellmap(ref canvasObj); CommonFunctions.PatchResultsScreen(levelName, levelChallenge); if (currentSceneName.Contains("2-1")) { Transform transform = CommonFunctions.GetGameObjectChild(CommonFunctions.GetInactiveRootObject("3-4 - Outdoors Arenas"), "3-4 Stuff").transform; ((TMP_Text)CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(((Component)transform.Find("Crane (Moveable)")).gameObject, "Cube (19)"), "Cube"), "UsableScreen New"), "InteractiveScreen"), "Canvas"), "Background"), "Text (TMP) (1)"))).text = LanguageManager.CurrentLanguage.act1.act1_lustFirst_crane; ((TMP_Text)CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(((Component)transform.Find("UsableScreen New")).gameObject, "InteractiveScreen"), "Canvas"), "Background"), "InteractiveScreen Button"), "Text (TMP)"))).text = LanguageManager.CurrentLanguage.act1.act1_lustFirst_elevator; } } } public static class Act1Strings { private static string Level11(string message, string message2, string input) { string text = message + message2; if (text.Contains("ITEMS")) { CommonFunctions.PreviousHudMessage = LanguageManager.CurrentLanguage.act1.act1_limboFirst_items1 + " '" + input + "'" + LanguageManager.CurrentLanguage.act1.act1_limboFirst_items2; return LanguageManager.CurrentLanguage.act1.act1_limboFirst_items1 + " \"" + input + "\"" + LanguageManager.CurrentLanguage.act1.act1_limboFirst_items2; } if (text.Contains("NAILGUN")) { CommonFunctions.PreviousHudMessage = LanguageManager.CurrentLanguage.act1.act1_limboFirst_nailgun1 + " '" + input + "' " + LanguageManager.CurrentLanguage.act1.act1_limboFirst_nailgun2 + "\n" + LanguageManager.CurrentLanguage.act1.act1_limboFirst_nailgun3; return LanguageManager.CurrentLanguage.act1.act1_limboFirst_nailgun1 + " '" + input + "'" + LanguageManager.CurrentLanguage.act1.act1_limboFirst_nailgun2 + "\n" + LanguageManager.CurrentLanguage.act1.act1_limboFirst_nailgun3; } return CommonFunctions.PreviousHudMessage; } private static string Level12(string message, string message2) { if ((message + message2).Contains("BLUE")) { return LanguageManager.CurrentLanguage.act1.act1_limboSecond_blueAttack; } return "Unimplemented string"; } private static string Level13(string message, string message2) { if ((message + message2).Contains("SPLIT")) { return LanguageManager.CurrentLanguage.act1.act1_limboThird_splitDoor1 + "\n" + LanguageManager.CurrentLanguage.act1.act1_limboThird_splitDoor2; } return "Unimplemented string"; } private static string Level14(string message, string message2, string input) { string text = message + message2; if (text.Contains("PICK")) { return LanguageManager.CurrentLanguage.act1.act1_limboFourth_book; } if (text.Contains("Hank")) { return LanguageManager.CurrentLanguage.act1.act1_limboFourth_hank1 + "\n" + LanguageManager.CurrentLanguage.act1.act1_limboFourth_hank2; } if (message.Contains("versions")) { return LanguageManager.CurrentLanguage.misc.hud_alternateVersion; } if (text.Contains("ALTERNATE REVOLVER")) { return LanguageManager.CurrentLanguage.act1.act1_limboFourth_alternateRevolver; } if (text.Contains("EQUIPPED")) { return LanguageManager.CurrentLanguage.act1.act1_limboFourth_newArm + " '" + input + "'"; } return "Unimplemented string"; } private static string Level1Secret(string message, string message2) { if ((message + message2).Contains("LOOKS")) { return LanguageManager.CurrentLanguage.act1.act1_limboSecret_noclipSkip; } return "Unimplemented string"; } private static string Level21(string message, string message2, string input) { string text = message + message2; if (text.Contains("KNUCKLE")) { return LanguageManager.CurrentLanguage.act1.act1_lustFirst_knuckleblaster1 + " '" + input + "' " + LanguageManager.CurrentLanguage.act1.act1_lustFirst_knuckleblaster2; } if (text.Contains("DASH")) { return LanguageManager.CurrentLanguage.act1.act1_lustFirst_dashJump; } return "Unimplemented string"; } private static string Level22(string message, string message2, string input) { string text = message + message2; if (text.Contains("FEEDBACKER")) { return LanguageManager.CurrentLanguage.act1.act1_lustSecond_feedbacker1 + "\n" + LanguageManager.CurrentLanguage.act1.act1_lustSecond_feedbacker2 + " '" + input + "'."; } if (text.Contains("RAILCANNON")) { return LanguageManager.CurrentLanguage.act1.act1_lustSecond_railcannon; } if (text.Contains("CHECKPOINTS")) { return LanguageManager.CurrentLanguage.act1.act1_lustSecond_checkPoints; } return "Unimplemented string"; } private static string Level23(string message, string message2) { if ((message + message2).Contains("water")) { return LanguageManager.CurrentLanguage.act1.act1_lustThird_water; } return "Unimplemented string"; } private static string Level24(string message, string message2) { if ((message + message2).Contains("OFF THE BEATEN TRACK")) { return LanguageManager.CurrentLanguage.act1.act1_lustFourth_offTheBeatenTrack; } return "Unimplemented string"; } private static string Level2Secret(string message, string message2) { _ = message + message2; return "Unimplemented string"; } private static string Level31(string message, string message2) { if ((message + message2).Contains("YUP, THAT'S A CAVITY")) { return LanguageManager.CurrentLanguage.act1.act1_greedFirst_cavity; } return "Unimplemented string"; } private static string Level32(string message, string message2) { _ = message + message2; return "Unimplemented string"; } public static string GetMessage(string message, string message2, string input) { string currentSceneName = CommonFunctions.GetCurrentSceneName(); if ((message + message2).Contains("mechanism")) { return LanguageManager.CurrentLanguage.act1.act1_secret; } return currentSceneName switch { "Level 1-1" => Level11(message, message2, input), "Level 1-2" => Level12(message, message2), "Level 1-3" => Level13(message, message2), "Level 1-4" => Level14(message, message2, input), "Level 1-S" => Level1Secret(message, message2), "Level 2-1" => Level21(message, message2, input), "Level 2-2" => Level22(message, message2, input), "Level 2-3" => Level23(message, message2), "Level 2-4" => Level24(message, message2), "Level 2-S" => Level2Secret(message, message2), "Level 3-1" => Level31(message, message2), "Level 3-2" => Level32(message, message2), _ => "Unimplemented string", }; } public static string GetLevelChallenge(string currentLevel) { return currentLevel switch { "Level 1-1" => LanguageManager.CurrentLanguage.levelChallenges.challenges_limboFirst, "Level 1-2" => LanguageManager.CurrentLanguage.levelChallenges.challenges_limboSecond, "Level 1-3" => LanguageManager.CurrentLanguage.levelChallenges.challenges_limboThird, "Level 1-4" => LanguageManager.CurrentLanguage.levelChallenges.challenges_limboFourth, "Level 2-1" => LanguageManager.CurrentLanguage.levelChallenges.challenges_lustFirst, "Level 2-2" => LanguageManager.CurrentLanguage.levelChallenges.challenges_lustSecond, "Level 2-3" => LanguageManager.CurrentLanguage.levelChallenges.challenges_lustThird, "Level 2-4" => LanguageManager.CurrentLanguage.levelChallenges.challenges_lustFourth, "Level 3-1" => LanguageManager.CurrentLanguage.levelChallenges.challenges_gluttonyFirst, "Level 3-2" => LanguageManager.CurrentLanguage.levelChallenges.challenges_gluttonySecond, _ => "Unknown challenge description", }; } public static string GetLevelName() { return CommonFunctions.GetCurrentSceneName() switch { "Level 1-1" => "1-1: " + LanguageManager.CurrentLanguage.levelNames.levelName_limboFirst, "Level 1-2" => "1-2: " + LanguageManager.CurrentLanguage.levelNames.levelName_limboSecond, "Level 1-3" => "1-3: " + LanguageManager.CurrentLanguage.levelNames.levelName_limboThird, "Level 1-4" => "1-4: " + LanguageManager.CurrentLanguage.levelNames.levelName_limboFourth, "Level 1-S" => "1-S: " + LanguageManager.CurrentLanguage.levelNames.levelName_limboSecret, "Level 2-1" => "2-1: " + LanguageManager.CurrentLanguage.levelNames.levelName_lustFirst, "Level 2-2" => "2-2: " + LanguageManager.CurrentLanguage.levelNames.levelName_lustSecond, "Level 2-3" => "2-3: " + LanguageManager.CurrentLanguage.levelNames.levelName_lustThird, "Level 2-4" => "2-4: " + LanguageManager.CurrentLanguage.levelNames.levelName_lustFourth, "Level 2-S" => "2-S: " + LanguageManager.CurrentLanguage.levelNames.levelName_lustSecret, "Level 3-1" => "3-1: " + LanguageManager.CurrentLanguage.levelNames.levelName_gluttonyFirst, "Level 3-2" => "3-2: " + LanguageManager.CurrentLanguage.levelNames.levelName_gluttonySecond, _ => "Unknown level name", }; } } public static class Act1Vn { public static void PatchPrompts(ref GameObject canvasObj) { //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Expected O, but got Unknown GameObject gameObjectChild = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(canvasObj, "PowerUpVignette"), "Panel"), "Aspect Ratio Mask"); GameObject gameObjectChild2 = CommonFunctions.GetGameObjectChild(gameObjectChild, "Fallen"); List list = new List(); foreach (Transform item in gameObjectChild2.transform) { Transform val = item; if (((Object)((Component)val).gameObject).name == "Choices Box") { list.Add(((Component)val).gameObject); } } GameObject parent = list[0]; GameObject parent2 = list[1]; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(parent, "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_fallenPromptFirst1; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(parent, "Button (B)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_fallenPromptFirst2; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(parent, "Button (C)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_fallenPromptFirst3; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(parent2, "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_fallenPromptSecond1; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(parent2, "Button (B)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_fallenPromptSecond2; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(parent2, "Button (C)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_fallenPromptSecond3; GameObject gameObjectChild3 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Middle"), "Choices Box (1)"); CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild3, "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_middlePrompt1; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild3, "Button (B)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_middlePrompt2; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild3, "Button (C)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_middlePrompt3; GameObject gameObjectChild4 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Middle"), "Choices Box (2)"); CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild4, "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_middlePromptSecondRecklessness; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild4, "Button (B)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_middlePromptSecondWaiting; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild4, "Button (C)"), "Text")).text = "...Pourquoi sommes-nous ici?"; GameObject gameObjectChild5 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Recklessness"), "Choices Box"); CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild5, "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_recklessnessPrompt1; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild5, "Button (B)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_recklessnessPrompt2; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Recklessness"), "Choices Box (1)"), "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_recklessnessPrompt3; GameObject gameObjectChild6 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Waiting"), "Choices Box"); CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild6, "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_waitingPromptFirst1; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild6, "Button (B)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_waitingPromptFirst2; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Waiting"), "Choices Box (1)"), "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_waitingPromptThird; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (2)"), "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt1; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (3)"), "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt2; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (4)"), "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt3; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (5)"), "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt4; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (6)"), "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt5; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (7)"), "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt6; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (8)"), "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt7; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (9)"), "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt8; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (10)"), "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt9; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (11)"), "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt10; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (12)"), "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt11; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (13)"), "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt12; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (14)"), "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt13; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (16)"), "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt14; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (17)"), "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt15; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (18)"), "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt16; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (19)"), "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt17; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (20)"), "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt18; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (21)"), "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt19; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (22)"), "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt20; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (25)"), "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt21; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (23)"), "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt22; CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (24)"), "Button (A)"), "Text")).text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt23; GameObject gameObjectChild7 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Conclusion"), "Choices Box (2)"); Text textfromGameObject = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild7, "Button (A)"), "Text")); Text textfromGameObject2 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild7, "Button (B)"), "Text")); textfromGameObject.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_conclusionPrompt1; textfromGameObject2.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_conclusionPrompt2; } public static string GetNextString(string inputString) { if (inputString.Contains("Heavy steps")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_introFirst1 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_introFirst2 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_introFirst3 + "▼\n\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_introFirst4 + "▼\n\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_introFirst5 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_introFirst6 + "▼\n\n\n\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_introFirst7 + "▼\n"; } if (inputString.Contains("I bit down")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_introSecond1 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_introSecond2 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_introSecond3 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_introSecond4 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_introSecond5 + "▼}\n\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_introSecond6 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_introSecond7 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_introSecond8 + "▼"; } if (inputString.Contains("Oof ow")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_fallen1 + "▼"; } if (inputString.Contains("I'm just someone")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_fallenResponseFirst + "▼"; } if (inputString.Contains("Well I just got")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_fallenResponseSecond + "▼"; } if (inputString.Contains("Oh great")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_fallenResponseThird1 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_fallenResponseThird2 + "▼"; } if (inputString.Contains("Alright, alright")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_fallenResponseFourth + "▼"; } if (inputString.Contains("UGH?")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_fallenResponseFifth + "▼"; } if (inputString.Contains("*Sigh*")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_kindFirst1 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_kindFirst2 + "▼"; } if (inputString.Contains("Though, by the")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_kindSecond + "▼"; } if (inputString.Contains("So how about you")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_kindThird + "▼"; } if (inputString.Contains("Listen up,")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_rudeFirst1 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_rudeFirst2 + "▼"; } if (inputString.Contains("By the looks of it")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_rudeSecond + "▼"; } if (inputString.Contains("So I'll forgive you")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_rudeThird + "▼"; } if (inputString.Contains("UGH!")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_middleResponseFirst1 + "▼"; } if (inputString.Contains("Though in retrospect")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_middleResponseFirst2 + "▼"; } if (inputString.Contains("Oh well,")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_middleResponseFirst3 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_middleResponseFirst4 + "▼\n"; } if (inputString.Contains("I'm Mirage.")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_middleResponseFirst5 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_middleResponseFirst6 + "▼"; } if (inputString.Contains("WHAT?")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_middleResponseSecond1 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_middleResponseSecond2 + "▼"; } if (inputString.Contains("If you DON'T")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_middleResponseSecond3 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_middleResponseSecond4 + "▼"; } if (inputString.Contains("Bullshit!")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_middleResponseThird1 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_middleResponseThird2 + "▼"; } if (inputString.Contains("Though considering")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_middleResponseThird3 + "▼"; } if (inputString.Contains("Wandering around like")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_waitingFirst + "▼"; } if (inputString.Contains("Since we were")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_waitingSecond + "▼"; } if (inputString.Contains("Therefore,")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_waitingThird1 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_waitingThird2 + "▼"; } if (inputString.Contains("Suit yourself")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_waitingResponseFirst1 + "▼\n"; } if (inputString.Contains("Couldn't care less")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_waitingResponseFirst2 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_waitingResponseFirst3 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_waitingResponseFirst4 + "▼"; } if (inputString.Contains("Hah!")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_waitingResponseSecond1 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_waitingResponseSecond2 + "▼"; } if (inputString.Contains("Because nothing")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_waitingResponseThird1 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_waitingResponseThird2 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_waitingResponseThird3 + "▼"; } if (inputString.Contains("Yeah?")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_recklessnessFirst + "▼"; } if (inputString.Contains("But yes,")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_recklessnessSecond1 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_recklessnessSecond2 + "▼"; } if (inputString.Contains("What's the point of making")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_recklessnessResponseFirst1 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_recklessnessResponseFirst2 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_recklessnessResponseFirst3 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_recklessnessResponseFirst4 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_recklessnessResponseFirst5 + "▼\n"; } if (inputString.Contains("Don't flatter yourself")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_recklessnessResponseSecond1 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_recklessnessResponseSecond2 + "▼"; } if (inputString.Contains("Everything.")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_recklessnessResponseThird + "▼"; } if (inputString.Contains("I mean really")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism1 + "▼"; } if (inputString.Contains("The human mind,")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism2 + "▼"; } if (inputString.Contains("We can only ever")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism3 + "▼"; } if (inputString.Contains("Death is")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism4 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism5 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism6 + "▼"; } if (inputString.Contains("It doesn't matter")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism7 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism8 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism9 + "▼"; } if (inputString.Contains("Human intelligence")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism10 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism11 + "▼"; } if (inputString.Contains("Our intelligence")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism12 + "▼"; } if (inputString.Contains("It's an over-extension")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism13 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism14 + "▼\n"; } if (inputString.Contains("Much like the Irish")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism15 + "▼"; } if (inputString.Contains("The human mind is an")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism16 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism17 + "▼\n"; } if (inputString.Contains("Existential dread")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism18 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism19 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism20 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism21 + "▼"; } if (inputString.Contains("We are unable")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism22 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism23 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism24 + "▼"; } if (inputString.Contains("We create distractions")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism25 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism26 + "▼"; } if (inputString.Contains("We sublimate it")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism27 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism28 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism29 + "▼"; } if (inputString.Contains("But these ways")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism30 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism31 + "▼"; } if (inputString.Contains("In the end")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism32 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism33 + "▼"; } if (inputString.Contains("Huh?")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism34 + "▼"; } if (inputString.Contains("How could it not be?")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism35 + "▼"; } if (inputString.Contains("But still")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism36 + "▼"; } if (inputString.Contains("I do understand")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism37 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism38 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism39 + "▼"; } if (inputString.Contains("I see.")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism40 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism41 + "▼"; } if (inputString.Contains("I understand it logically")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism42 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilism43 + "▼"; } if (inputString.Contains("Well I'll be damned")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_conclusion1 + "▼"; } if (inputString.Contains("Guess you got a good")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_conclusion2 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_conclusion3 + "▼"; } if (inputString.Contains("Man...")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_conclusion4 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_conclusion5 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_conclusion6 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_conclusion7 + "▼"; } if (inputString.Contains("Thank you.")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_conclusion8 + "▼\n"; } if (inputString.Contains("You've given me a lot")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_conclusion9 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_conclusion10 + "▼\n"; } if (inputString.Contains("Say...")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_conclusion11 + "▼"; } if (inputString.Contains("Oh, you sneaky")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_conclusionResponseFirst1 + "▼"; } if (inputString.Contains("But alright")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_conclusionResponseFirst2 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_conclusionResponseFirst3 + "▼"; } if (inputString.Contains("Alright, suit yourself")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_conclusionResponseSecond1 + "▼\n" + LanguageManager.CurrentLanguage.visualnovel.visualnovel_conclusionResponseSecond2 + "▼"; } if (inputString.Contains("See you around")) { return LanguageManager.CurrentLanguage.visualnovel.visualnovel_conclusionResponseSecond3 + "▼"; } return inputString; } } public static class Act2 { private static void PatchHellmap(ref GameObject canvasObj) { GameObject gameObjectChild = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(canvasObj, "Hellmap"), "Hellmap Act 2"); ((TMP_Text)CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild, "Text"))).text = LanguageManager.CurrentLanguage.misc.hellmap_greed; ((TMP_Text)CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild, "Text (1)"))).text = LanguageManager.CurrentLanguage.misc.hellmap_wrath; ((TMP_Text)CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild, "Text (2)"))).text = LanguageManager.CurrentLanguage.misc.hellmap_heresy; } public static void PatchAct2(ref GameObject canvasObj) { string currentSceneName = CommonFunctions.GetCurrentSceneName(); string levelName = Act2Strings.GetLevelName(); string levelChallenge = Act2Strings.GetLevelChallenge(currentSceneName); CommonFunctions.PatchResultsScreen(levelName, levelChallenge); PatchHellmap(ref canvasObj); } } public static class Act2Strings { private static string _previousMessage = ""; private static string Level41(string message, string message2) { if ((message + message2).Contains("An eye opens.")) { return LanguageManager.CurrentLanguage.act2.act2_greed_secretDoor; } return "Unimplemented string"; } private static string Level42(string message, string message2) { string text = message + message2; if (text.Contains("BLEED")) { return LanguageManager.CurrentLanguage.act2.act2_greedSecond_sand; } if (text.Contains("A door opens.")) { return LanguageManager.CurrentLanguage.act3.act3_violenceFirst_doorOpens; } return "Unimplemented string"; } private static string Level43(string message, string message2) { string text = message + message2; if (text.Contains("FILTH")) { return LanguageManager.CurrentLanguage.act2.act2_greedThird_wallClip; } if (text.Contains("wicked")) { return LanguageManager.CurrentLanguage.act2.act2_greedThird_troll1; } if (text.Contains("kidding")) { return LanguageManager.CurrentLanguage.act2.act2_greedThird_troll2; } if (text.Contains("TOMB")) { return LanguageManager.CurrentLanguage.act2.act2_greedThird_tombOfKings; } return "Unimplemented string"; } private static string Level44(string message, string message2, string input) { string text = message + message2; if (text == "") { return _previousMessage; } if (message.Contains("versions")) { return LanguageManager.CurrentLanguage.misc.hud_alternateVersion; } if (text.Contains("ALTERNATE NAILGUN")) { return LanguageManager.CurrentLanguage.act2.act2_greedFourth_alternateNailgun; } if (text.Contains("You're")) { return LanguageManager.CurrentLanguage.act2.act2_greedFourth_v2; } if (text.Contains("Hold")) { _previousMessage = LanguageManager.CurrentLanguage.act2.act2_greedFourth_whiplash1 + " " + input + " " + LanguageManager.CurrentLanguage.act2.act2_greedFourth_whiplash2; return LanguageManager.CurrentLanguage.act2.act2_greedFourth_whiplash1 + " " + input + " " + LanguageManager.CurrentLanguage.act2.act2_greedFourth_whiplash2; } if (text.Contains("HEAVY")) { _previousMessage = LanguageManager.CurrentLanguage.act2.act2_greedFourth_whiplash3; return LanguageManager.CurrentLanguage.act2.act2_greedFourth_whiplash3; } return "Unimplemented string"; } private static string Level4Secret(string message, string message2, string input) { if ((message + message2).Contains("HOLD")) { return LanguageManager.CurrentLanguage.act2.act2_greedSecret_holdToJump1 + " [" + input + "]" + LanguageManager.CurrentLanguage.act2.act2_greedSecret_holdToJump2; } return "Unimplemented string"; } private static string Level51(string message, string message2) { string text = message + message2; if (text.Contains("HOOKPOINT")) { return LanguageManager.CurrentLanguage.act2.act2_wrathFirst_slingshot; } if (text.Contains("SENTRIES")) { return LanguageManager.CurrentLanguage.act2.act2_wrathFirst_sentry; } if (text.Contains("drained")) { return LanguageManager.CurrentLanguage.act2.act2_wrathFirst_waterDrained; } if (text.Contains("HARD DAMAGE")) { return LanguageManager.CurrentLanguage.act2.act2_wrathFirst_whiplashHardDamage1 + "\n" + LanguageManager.CurrentLanguage.act2.act2_wrathFirst_whiplashHardDamage2; } if (text.Contains("A door opens.")) { return LanguageManager.CurrentLanguage.act3.act3_violenceFirst_doorOpens; } return "Unimplemented string"; } private static string Level52(string message, string message2) { string text = message + message2; if (text.Contains("JAKITO")) { return LanguageManager.CurrentLanguage.act2.act2_wrathSecond_jakito1; } if (text.Contains("THANK")) { return LanguageManager.CurrentLanguage.act2.act2_wrathSecond_jakito2; } if (text.Contains("NO")) { return LanguageManager.CurrentLanguage.act2.act2_wrathSecond_jakito3; } if (text.Contains("Hark")) { return LanguageManager.CurrentLanguage.act2.act2_wrathSecond_neptune; } if (text.Contains("IDOL")) { return LanguageManager.CurrentLanguage.act2.act2_wrathSecond_idol; } return "Unimplemented string"; } private static string Level53(string message, string message2) { string text = message + message2; if (text.Contains("Indirect")) { return LanguageManager.CurrentLanguage.act2.act2_wrathThird_rocketLauncher; } if (text.Contains("FALLING")) { return LanguageManager.CurrentLanguage.act2.act2_wrathThird_rocketLauncherMidair; } if (text.Contains("Soldiers")) { return LanguageManager.CurrentLanguage.act2.act2_wrathThird_soldierBlock; } if (text.Contains("Hank")) { return LanguageManager.CurrentLanguage.act2.act2_wrathThird_hank; } return "Unimplemented string"; } private static string Level54(string message, string message2) { _ = message + message2; return "Unimplemented string"; } private static string Level5Secret(string message) { if (message.Contains("living")) { return LanguageManager.CurrentLanguage.fishing.fish_living; } if (message.Contains("Too small")) { return LanguageManager.CurrentLanguage.fishing.fish_tooSmall; } if (message.Contains("This bait")) { return LanguageManager.CurrentLanguage.fishing.fish_baitNotWork; } if (message.Contains("A fish took")) { return LanguageManager.CurrentLanguage.fishing.fish_baitTaken; } if (message.Contains("Fishing interrupted")) { return LanguageManager.CurrentLanguage.fishing.fish_interrupted; } if (message.Contains("Cooking failed")) { return LanguageManager.CurrentLanguage.fishing.fish_cookingFailed; } if (message.Contains("Nothing seems")) { return LanguageManager.CurrentLanguage.fishing.fish_noFishBiting; } return "Unimplemented string"; } private static string Level61(string message, string message2) { if ((message + message2).Contains("A R M B O Y")) { return LanguageManager.CurrentLanguage.act2.act2_heresyFirst_armboy; } return "Unimplemented string"; } private static string Level62(string message, string message2) { _ = message + message2; return "Unimplemented string"; } public static string GetMessage(string message, string message2, string input) { string currentSceneName = CommonFunctions.GetCurrentSceneName(); _ = message + message2; return currentSceneName switch { "Level 4-1" => Level41(message, message2), "Level 4-2" => Level42(message, message2), "Level 4-3" => Level43(message, message2), "Level 4-4" => Level44(message, message2, input), "Level 4-S" => Level4Secret(message, message2, input), "Level 5-1" => Level51(message, message2), "Level 5-2" => Level52(message, message2), "Level 5-3" => Level53(message, message2), "Level 5-4" => Level54(message, message2), "Level 5-S" => Level5Secret(message), "Level 6-1" => Level61(message, message2), "Level 6-2" => Level62(message, message2), _ => "Unimplemented string", }; } public static string GetLevelChallenge(string currentLevel) { return currentLevel switch { "Level 4-1" => LanguageManager.CurrentLanguage.levelChallenges.challenges_greedFirst, "Level 4-2" => LanguageManager.CurrentLanguage.levelChallenges.challenges_greedSecond, "Level 4-3" => LanguageManager.CurrentLanguage.levelChallenges.challenges_greedThird, "Level 4-4" => LanguageManager.CurrentLanguage.levelChallenges.challenges_greedFourth, "Level 5-1" => LanguageManager.CurrentLanguage.levelChallenges.challenges_wrathFirst, "Level 5-2" => LanguageManager.CurrentLanguage.levelChallenges.challenges_wrathSecond, "Level 5-3" => LanguageManager.CurrentLanguage.levelChallenges.challenges_wrathThird, "Level 5-4" => LanguageManager.CurrentLanguage.levelChallenges.challenges_wrathFourth, "Level 6-1" => LanguageManager.CurrentLanguage.levelChallenges.challenges_heresyFirst, "Level 6-2" => LanguageManager.CurrentLanguage.levelChallenges.challenges_heresySecond, _ => "Unknown challenge description", }; } public static string GetLevelName() { return CommonFunctions.GetCurrentSceneName() switch { "Level 4-1" => "4-1: " + LanguageManager.CurrentLanguage.levelNames.levelName_greedFirst, "Level 4-2" => "4-2: " + LanguageManager.CurrentLanguage.levelNames.levelName_greedSecond, "Level 4-3" => "4-3: " + LanguageManager.CurrentLanguage.levelNames.levelName_greedThird, "Level 4-4" => "4-4: " + LanguageManager.CurrentLanguage.levelNames.levelName_greedFourth, "Level 5-1" => "5-1: " + LanguageManager.CurrentLanguage.levelNames.levelName_wrathFirst, "Level 5-2" => "5-2: " + LanguageManager.CurrentLanguage.levelNames.levelName_wrathSecond, "Level 5-3" => "5-3: " + LanguageManager.CurrentLanguage.levelNames.levelName_wrathThird, "Level 5-4" => "5-4: " + LanguageManager.CurrentLanguage.levelNames.levelName_wrathFourth, "Level 6-1" => "6-1: " + LanguageManager.CurrentLanguage.levelNames.levelName_heresyFirst, "Level 6-2" => "6-2: " + LanguageManager.CurrentLanguage.levelNames.levelName_heresySecond, _ => "Unknown level name", }; } } public static class Act3 { private static void PatchHellmap(ref GameObject canvasObj) { GameObject gameObjectChild = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(canvasObj, "Hellmap"), "Hellmap Act 3"); ((TMP_Text)CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild, "Text"))).text = LanguageManager.CurrentLanguage.misc.hellmap_violence; ((TMP_Text)CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild, "Text (1)"))).text = LanguageManager.CurrentLanguage.misc.hellmap_fraud; ((TMP_Text)CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild, "Text (2)"))).text = LanguageManager.CurrentLanguage.misc.hellmap_treachery; } public static void PatchAct3(ref GameObject canvasObj) { string currentSceneName = CommonFunctions.GetCurrentSceneName(); string levelName = Act3Strings.GetLevelName(); string levelChallenge = Act3Strings.GetLevelChallenge(currentSceneName); CommonFunctions.PatchResultsScreen(levelName, levelChallenge); PatchHellmap(ref canvasObj); if (currentSceneName.Contains("7-2")) { GameObject gameObjectChild = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetInactiveRootObject("Other Interiors"), "9 - Tram Station"), "9 Stuff"), "9A"), "InteractiveScreenWithStand"), "InteractiveScreen"), "Canvas"), "Background"); TextMeshProUGUI textMeshProUGUI = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "A"), "Opened"), "Text (TMP)")); TextMeshProUGUI textMeshProUGUI2 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "A"), "Closed"), "Text (TMP)")); TextMeshProUGUI textMeshProUGUI3 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "B"), "Opened"), "Text (TMP)")); TextMeshProUGUI textMeshProUGUI4 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "B"), "Closed"), "Text (TMP)")); TextMeshProUGUI textMeshProUGUI5 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "C"), "Opened"), "Text (TMP)")); TextMeshProUGUI textMeshProUGUI6 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "C"), "Closed"), "Text (TMP)")); TextMeshProUGUI textMeshProUGUI7 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "D"), "Opened"), "Text (TMP)")); TextMeshProUGUI textMeshProUGUI8 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "D"), "Closed"), "Text (TMP)")); ((TMP_Text)textMeshProUGUI).text = LanguageManager.CurrentLanguage.act3.act3_violenceSecond_gateControlOpen; ((TMP_Text)textMeshProUGUI2).text = LanguageManager.CurrentLanguage.act3.act3_violenceSecond_gateControlClosed; ((TMP_Text)textMeshProUGUI3).text = LanguageManager.CurrentLanguage.act3.act3_violenceSecond_gateControlOpen; ((TMP_Text)textMeshProUGUI4).text = LanguageManager.CurrentLanguage.act3.act3_violenceSecond_gateControlClosed; ((TMP_Text)textMeshProUGUI5).text = LanguageManager.CurrentLanguage.act3.act3_violenceSecond_gateControlOpen; ((TMP_Text)textMeshProUGUI6).text = LanguageManager.CurrentLanguage.act3.act3_violenceSecond_gateControlClosed; ((TMP_Text)textMeshProUGUI7).text = LanguageManager.CurrentLanguage.act3.act3_violenceSecond_gateControlOpen; ((TMP_Text)textMeshProUGUI8).text = LanguageManager.CurrentLanguage.act3.act3_violenceSecond_gateControlClosed; GameObject gameObjectChild2 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetInactiveRootObject("Outdoors"), "10 - Ambush Station"), "10 Nonstuff"), "InteractiveScreenWithStand"), "InteractiveScreen"), "Canvas"), "Background"); TextMeshProUGUI textMeshProUGUI9 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild2, "Text (TMP) (1)")); TextMeshProUGUI textMeshProUGUI10 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild2, "Button (Open)"), "Text (TMP)")); TextMeshProUGUI textMeshProUGUI11 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild2, "Button (Closed)"), "Text (TMP)")); ((TMP_Text)textMeshProUGUI9).text = LanguageManager.CurrentLanguage.act3.act3_violenceSecond_cartGateControlTitle; ((TMP_Text)textMeshProUGUI10).text = LanguageManager.CurrentLanguage.act3.act3_violenceSecond_cartGateControlOpen; ((TMP_Text)textMeshProUGUI11).text = LanguageManager.CurrentLanguage.act3.act3_violenceSecond_cartGateControlClosed; GameObject gameObjectChild3 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetInactiveRootObject("Outdoors"), "11 - Bomb Station"), "11 Nonstuff"), "Bomb Mechanisms"), "InteractiveScreenWithStand"), "InteractiveScreen"), "Canvas"); TextMeshProUGUI textMeshProUGUI12 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild3, "Text (TMP)")); TextMeshProUGUI[] componentsInChildren = CommonFunctions.GetGameObjectChild(gameObjectChild3, "UsableButtons").GetComponentsInChildren(true); TextMeshProUGUI textMeshProUGUI13 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild3, "UsableButtons"), "Error")); TextMeshProUGUI textMeshProUGUI14 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild3, "Done")); ((TMP_Text)textMeshProUGUI12).text = LanguageManager.CurrentLanguage.act3.act3_violenceSecond_payloadControlTitle; TextMeshProUGUI[] array = componentsInChildren; foreach (TextMeshProUGUI val in array) { if (((TMP_Text)val).text.Contains("LOWER")) { ((TMP_Text)val).text = LanguageManager.CurrentLanguage.act3.act3_violenceSecond_payloadControlLower; } } ((TMP_Text)textMeshProUGUI13).text = LanguageManager.CurrentLanguage.act3.act3_violenceSecond_payloadControlError1 + "\n" + LanguageManager.CurrentLanguage.act3.act3_violenceSecond_payloadControlError2; ((TMP_Text)textMeshProUGUI14).text = LanguageManager.CurrentLanguage.act3.act3_violenceSecond_payloadControlHell; } else if (currentSceneName.Contains("7-3")) { GameObject gameObjectChild4 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetInactiveRootObject("Outdoors Areas"), "8 - Upper Garden Battlefield"), "8 Stuff"), "Destructible Tunnel"), "InteractiveScreenWithStand"), "InteractiveScreen"), "Canvas"), "Background"); TextMeshProUGUI textMeshProUGUI15 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild4, "PreActivation"), "Text (TMP) (1)")); TextMeshProUGUI textMeshProUGUI16 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild4, "PreActivation"), "InteractiveScreenButton"), "Text (TMP)")); TextMeshProUGUI textMeshProUGUI17 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild4, "PostActivation"), "Text (TMP) (1)")); ((TMP_Text)textMeshProUGUI15).text = LanguageManager.CurrentLanguage.act3.act3_violenceThird_becomeMarked; ((TMP_Text)textMeshProUGUI16).text = LanguageManager.CurrentLanguage.act3.act3_violenceThird_becomeMarkedButton; ((TMP_Text)textMeshProUGUI17).text = LanguageManager.CurrentLanguage.act3.act3_violenceThird_starOfTheShow; } else if (currentSceneName.Contains("7-4")) { ((TMP_Text)CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(canvasObj, "Warning"), "Text (TMP)"))).text = LanguageManager.CurrentLanguage.act3.act3_violenceFourth_floodingWarning; ((TMP_Text)CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(canvasObj, "Countdown"), "Text (TMP)"))).text = LanguageManager.CurrentLanguage.act3.act3_violenceFourth_countdownTitle; } else if (currentSceneName.Contains("8-2")) { GameObject inactiveRootObject = CommonFunctions.GetInactiveRootObject("4 - Hub"); if ((Object)(object)inactiveRootObject == (Object)null) { inactiveRootObject = CommonFunctions.GetInactiveRootObject("Hub"); } if ((Object)(object)inactiveRootObject != (Object)null) { TextMeshProUGUI[] componentsInChildren2 = inactiveRootObject.GetComponentsInChildren(true); string act3_fraudSecond_outOfOrder = LanguageManager.CurrentLanguage.act3.act3_fraudSecond_outOfOrder; string act3_fraudSecond_errorResetPower = LanguageManager.CurrentLanguage.act3.act3_fraudSecond_errorResetPower; bool flag = string.IsNullOrEmpty(act3_fraudSecond_outOfOrder); bool flag2 = string.IsNullOrEmpty(act3_fraudSecond_errorResetPower); if (flag) { Logging.Warn("[Act3] Translation for 'act3_fraudSecond_outOfOrder' is missing or empty. Will keep original text."); } if (flag2) { Logging.Warn("[Act3] Translation for 'act3_fraudSecond_errorResetPower' is missing or empty. Will keep original text."); } TextMeshProUGUI[] array = componentsInChildren2; foreach (TextMeshProUGUI val2 in array) { string text = ((TMP_Text)val2).text; string text2 = Regex.Replace(Regex.Replace(text, "<.*?>", ""), "\\s+", " ").Trim().ToUpperInvariant(); if (text2.Contains("ERROR") || text2.Contains("RESET") || text2.Contains("POWER") || text2.Contains("OUT") || text2.Contains("ORDER")) { Logging.Info("[Act3] Text candidate: original='" + text + "', normalized='" + text2 + "'"); } if (text2 == "OUT OF ORDER" && !flag) { Logging.Info("[Act3] Replacing OUT OF ORDER with translation"); ((TMP_Text)val2).text = act3_fraudSecond_outOfOrder; } else if (text2 == "ERROR RESET POWER TO OPEN" && !flag2) { Logging.Info("[Act3] Replacing ERROR RESET POWER TO OPEN with translation"); ((TMP_Text)val2).text = act3_fraudSecond_errorResetPower; } } } else { Logging.Warn("[Act3] Hub not found"); } } else if (currentSceneName.Contains("8-3")) { string[] obj = new string[2] { "Pre-Space/Rooms/10B - Night Street/10B Nonstuff/Office/ElevatorSet (1)/ElevatorStop/InteractiveScreen/Canvas/Background/Text (TMP)", "Pre-Space/Rooms/10B - Night Street/10B Nonstuff/Office/ElevatorSet (1)/ElevatorStop (1)/InteractiveScreen/Canvas/Background/Text (TMP)" }; string act3_fraudSecond_outOfOrder2 = LanguageManager.CurrentLanguage.act3.act3_fraudSecond_outOfOrder; bool flag3 = string.IsNullOrEmpty(act3_fraudSecond_outOfOrder2); if (flag3) { Logging.Warn("[Act3] Translation for 'act3_fraudSecond_outOfOrder' is missing or empty. Will keep original text."); } string[] array2 = obj; foreach (string text3 in array2) { GameObject @object = CommonFunctions.GetObject(text3); if ((Object)(object)@object != (Object)null) { TextMeshProUGUI textMeshProUGUI18 = CommonFunctions.GetTextMeshProUGUI(@object); if ((Object)(object)textMeshProUGUI18 != (Object)null) { if (!flag3) { ((TMP_Text)textMeshProUGUI18).text = act3_fraudSecond_outOfOrder2; Logging.Info("[Act3] Replaced OUT OF ORDER text on 8-3 screen at path: " + text3); } } else { Logging.Warn("[Act3] Text (TMP) component not found on screen object at path: " + text3); } } else { Logging.Warn("[Act3] Screen object not found at path: " + text3); } } } else { if (!currentSceneName.Contains("8-4")) { return; } TextMeshProUGUI textMeshProUGUI19 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(canvasObj, "HeightMarkerParent"), "HeightMarker"), "Title")); string act3_fraudFourth_heightMarkerTitle = LanguageManager.CurrentLanguage.act3.act3_fraudFourth_heightMarkerTitle; ((TMP_Text)textMeshProUGUI19).text = CommonFunctions.MakeVertical(act3_fraudFourth_heightMarkerTitle); ((TMP_Text)textMeshProUGUI19).ForceMeshUpdate(false, false); GameObject inactiveRootObject2 = CommonFunctions.GetInactiveRootObject("The Intro"); if (!((Object)(object)inactiveRootObject2 != (Object)null)) { return; } GameObject gameObjectChild5 = CommonFunctions.GetGameObjectChild(inactiveRootObject2, "3 - Upper Intro"); if (!((Object)(object)gameObjectChild5 != (Object)null)) { return; } GameObject gameObjectChild6 = CommonFunctions.GetGameObjectChild(gameObjectChild5, "ElevatorSet"); if (!((Object)(object)gameObjectChild6 != (Object)null)) { return; } GameObject gameObjectChild7 = CommonFunctions.GetGameObjectChild(gameObjectChild6, "Elevator"); if (!((Object)(object)gameObjectChild7 != (Object)null)) { return; } GameObject gameObjectChild8 = CommonFunctions.GetGameObjectChild(gameObjectChild7, "InteractiveScreen"); if (!((Object)(object)gameObjectChild8 != (Object)null)) { return; } GameObject gameObjectChild9 = CommonFunctions.GetGameObjectChild(gameObjectChild8, "Canvas"); if (!((Object)(object)gameObjectChild9 != (Object)null)) { return; } GameObject gameObjectChild10 = CommonFunctions.GetGameObjectChild(gameObjectChild9, "Background"); if (!((Object)(object)gameObjectChild10 != (Object)null)) { return; } GameObject gameObjectChild11 = CommonFunctions.GetGameObjectChild(gameObjectChild10, "1 (Nope)"); if (!((Object)(object)gameObjectChild11 != (Object)null)) { return; } TextMeshProUGUI textMeshProUGUI20 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild11, "Text (TMP)")); if ((Object)(object)textMeshProUGUI20 != (Object)null) { string act3_fraudFourth_nope = LanguageManager.CurrentLanguage.act3.act3_fraudFourth_nope; if (!string.IsNullOrEmpty(act3_fraudFourth_nope)) { ((TMP_Text)textMeshProUGUI20).text = act3_fraudFourth_nope; } else { Logging.Warn("[Act3] Translation for 'act3_fraudFourth_nope' is missing or empty. Will keep original text."); } } } } } public static class Act3Strings { public static string Level71(string message, string message2) { if ((message + message2).Contains("A door opens.")) { return LanguageManager.CurrentLanguage.act3.act3_violenceFirst_doorOpens; } return "Unimplemented string"; } public static string Level72(string message, string message2, string input) { string text = message + message2; if (text.Contains("Swap arms with")) { return LanguageManager.CurrentLanguage.act3.act3_violenceSecond_guttermanTutorial + " '" + input + "'."; } if (text.Contains("You should probably")) { return LanguageManager.CurrentLanguage.act3.act3_violenceSecond_guttermanTutorialNoKB; } if (text.Contains("BIGGER BOOM")) { return "" + LanguageManager.CurrentLanguage.act3.act3_violenceSecond_biggerBoom + ""; } if (message.Contains("versions")) { return LanguageManager.CurrentLanguage.misc.hud_alternateVersion; } if (text.Contains("ALTERNATE SHOTGUN")) { return LanguageManager.CurrentLanguage.act3.act3_violenceSecond_alternateShotgun; } return "Unimplemented string"; } public static string Level73(string message, string message2) { if ((message + message2).Contains("F E E D")) { return "" + LanguageManager.CurrentLanguage.act3.act3_violenceThird_feedIt + ""; } return "Unimplemented string"; } public static string Level74(string message, string message2) { if ((message + message2).Contains("MAGENTA")) { return LanguageManager.CurrentLanguage.act3.act3_violenceFourth_magentaAttack; } return "Unimplemented string"; } public static string Level7Secret(string message, string message2) { return "Unimplemented string"; } public static string Level81(string message, string message2) { string text = message + message2; if (text.Contains("The cycle of life")) { return LanguageManager.CurrentLanguage.act3.act3_fraudSecond_cycleOfLife; } if (text.Contains("It is happening again")) { return LanguageManager.CurrentLanguage.act3.act3_fraudSecond_happeningAgain; } return "Unimplemented string"; } public static string Level82(string message, string message2) { string text = message + message2; if (text.Contains("The cycle of life")) { return LanguageManager.CurrentLanguage.act3.act3_fraudSecond_cycleOfLife; } if (text.Contains("YOU'RE NOT SUPPOSED TO BE HERE.")) { return LanguageManager.CurrentLanguage.act3.act3_secretNotReady; } if (text.Contains("It is happening again")) { return LanguageManager.CurrentLanguage.act3.act3_fraudSecond_happeningAgain; } return "Unimplemented string"; } public static string Level83(string message, string message2) { string text = message + message2; if (text.Contains("The cycle of life")) { return LanguageManager.CurrentLanguage.act3.act3_fraudSecond_cycleOfLife; } if (text.Contains("It is happening again")) { return LanguageManager.CurrentLanguage.act3.act3_fraudSecond_happeningAgain; } return "Unimplemented string"; } public static string Level84(string format = "", string message2 = "", string[] inputs = null) { string text = format + message2; if (text.Contains("WARNING:") && text.Contains("free fall")) { string text2 = ((inputs != null && inputs.Length != 0) ? CommonFunctions.GetLocalizedInput(inputs[0]) : ""); string text3 = ((inputs != null && inputs.Length > 1) ? CommonFunctions.GetLocalizedInput(inputs[1]) : ""); return LanguageManager.CurrentLanguage.act3.act3_fraudFourth_fallWarning_part1 + "\n" + LanguageManager.CurrentLanguage.act3.act3_fraudFourth_fallWarning_part2 + " " + text2 + " " + LanguageManager.CurrentLanguage.act3.act3_fraudFourth_fallWarning_part3 + " " + text3 + "."; } if (text.Contains("The cycle of life")) { return LanguageManager.CurrentLanguage.act3.act3_fraudSecond_cycleOfLife; } if (text.Contains("It is happening again")) { return LanguageManager.CurrentLanguage.act3.act3_fraudSecond_happeningAgain; } return "Unimplemented string"; } public static string Level8Secret(string message, string message2) { return "Unimplemented string"; } public static string Level91(string message, string message2) { return "Unimplemented string"; } public static string Level92(string message, string message2) { return "Unimplemented string"; } public static string GetMessage(string message, string message2, string input) { string currentSceneName = CommonFunctions.GetCurrentSceneName(); _ = message + message2; return currentSceneName switch { "Level 7-1" => Level71(message, message2), "Level 7-2" => Level72(message, message2, input), "Level 7-3" => Level73(message, message2), "Level 7-4" => Level74(message, message2), "Level 7-S" => Level7Secret(message, message2), "Level 8-1" => Level81(message, message2), "Level 8-2" => Level82(message, message2), "Level 8-3" => Level83(message, message2), "Level 8-4" => Level84(message, message2), "Level 8-S" => Level8Secret(message, message2), "Level 9-1" => Level91(message, message2), "Level 9-2" => Level92(message, message2), _ => "Unimplemented string", }; } public static string GetLevelChallenge(string currentLevel) { return currentLevel switch { "Level 7-1" => LanguageManager.CurrentLanguage.levelChallenges.challenges_violenceFirst, "Level 7-2" => LanguageManager.CurrentLanguage.levelChallenges.challenges_violenceSecond, "Level 7-3" => LanguageManager.CurrentLanguage.levelChallenges.challenges_violenceThird, "Level 7-4" => LanguageManager.CurrentLanguage.levelChallenges.challenges_violenceFourth, "Level 8-1" => LanguageManager.CurrentLanguage.levelChallenges.challenges_fraudFirst, "Level 8-2" => LanguageManager.CurrentLanguage.levelChallenges.challenges_fraudSecond, "Level 8-3" => LanguageManager.CurrentLanguage.levelChallenges.challenges_fraudThird, "Level 8-4" => LanguageManager.CurrentLanguage.levelChallenges.challenges_fraudFourth, "Level 9-1" => LanguageManager.CurrentLanguage.levelChallenges.challenges_treacheryFirst, "Level 9-2" => LanguageManager.CurrentLanguage.levelChallenges.challenges_treacherySecond, _ => "Unknown challenge description", }; } public static string GetLevelName() { return CommonFunctions.GetCurrentSceneName() switch { "Level 7-1" => "7-1: " + LanguageManager.CurrentLanguage.levelNames.levelName_violenceFirst, "Level 7-2" => "7-2: " + LanguageManager.CurrentLanguage.levelNames.levelName_violenceSecond, "Level 7-3" => "7-3: " + LanguageManager.CurrentLanguage.levelNames.levelName_violenceThird, "Level 7-4" => "7-4: " + LanguageManager.CurrentLanguage.levelNames.levelName_violenceFourth, "Level 8-1" => "8-1: " + LanguageManager.CurrentLanguage.levelNames.levelName_fraudFirst, "Level 8-2" => "8-2: " + LanguageManager.CurrentLanguage.levelNames.levelName_fraudSecond, "Level 8-3" => "8-3: " + LanguageManager.CurrentLanguage.levelNames.levelName_fraudThird, "Level 8-4" => "8-4: " + LanguageManager.CurrentLanguage.levelNames.levelName_fraudFourth, "Level 9-1" => "9-1: " + LanguageManager.CurrentLanguage.levelNames.levelName_treacheryFirst, "Level 9-2" => "9-2: " + LanguageManager.CurrentLanguage.levelNames.levelName_treacherySecond, _ => "Unknown level name", }; } } internal class AngryLevel { public static bool IsAngryCustomLevel() { Type type = Type.GetType("AngryLevelLoader.Managers.AngrySceneManager, AngryLevelLoader"); if (type == null) { return false; } PropertyInfo property = type.GetProperty("isInCustomLevel"); if (property == null) { return false; } return (bool)property.GetValue(null); } public static void PatchAngry() { CommonFunctions.PatchResultsScreen(null, null); GameObject @object = CommonFunctions.GetObject("Canvas/Hellmap/Hellmap Container"); if ((Object)(object)@object != (Object)null) { @object.SetActive(false); @object.SetActive(true); } } } public static class Books { public static string GetBookText(string originalText) { string currentSceneName = CommonFunctions.GetCurrentSceneName(); switch (currentSceneName) { case "CreditsMuseum2": return DevMuseum.GetMuseumBook(originalText); case "Level 1-4": return "" + LanguageManager.CurrentLanguage.books.books_limboFourth1 + "\n\n" + LanguageManager.CurrentLanguage.books.books_limboFourth2 + "\n\n" + LanguageManager.CurrentLanguage.books.books_limboFourth3 + "\n\n" + LanguageManager.CurrentLanguage.books.books_limboFourth4 + "\n\n" + LanguageManager.CurrentLanguage.books.books_limboFourth5 + ""; case "Level 2-2": return "" + LanguageManager.CurrentLanguage.books.books_lustSecond1 + "\n\n" + LanguageManager.CurrentLanguage.books.books_lustSecond2 + LanguageManager.CurrentLanguage.books.books_lustSecond3 + LanguageManager.CurrentLanguage.books.books_lustSecond4 + "\n\n" + LanguageManager.CurrentLanguage.books.books_lustSecond5 + ""; case "Level 4-2": return "" + LanguageManager.CurrentLanguage.books.books_greedSecond1 + "\n\n" + LanguageManager.CurrentLanguage.books.books_greedSecond2 + "\n\n" + LanguageManager.CurrentLanguage.books.books_greedSecond3 + "\n\n" + LanguageManager.CurrentLanguage.books.books_greedSecond4 + "\n\n" + LanguageManager.CurrentLanguage.books.books_greedSecond5 + "\n\n" + LanguageManager.CurrentLanguage.books.books_greedSecond6 + ""; case "Level 4-3": return LanguageManager.CurrentLanguage.books.books_greedThird1 + "\n\n" + LanguageManager.CurrentLanguage.books.books_greedThird2 + "\n\n" + LanguageManager.CurrentLanguage.books.books_greedThird3 + "\n\n" + LanguageManager.CurrentLanguage.books.books_greedThird4; case "Level 5-2": return "" + LanguageManager.CurrentLanguage.books.books_wrathSecond1 + "\n\n" + LanguageManager.CurrentLanguage.books.books_wrathSecond2 + "\n\n" + LanguageManager.CurrentLanguage.books.books_wrathSecond3 + "\n\n" + LanguageManager.CurrentLanguage.books.books_wrathSecond4 + "\n\n" + LanguageManager.CurrentLanguage.books.books_wrathSecond5 + "\n\n" + LanguageManager.CurrentLanguage.books.books_wrathSecond6 + "\n\n" + LanguageManager.CurrentLanguage.books.books_wrathSecond7 + "\n\n" + LanguageManager.CurrentLanguage.books.books_wrathSecond8 + "\n\n" + LanguageManager.CurrentLanguage.books.books_wrathSecond9 + ""; case "Level 5-S": if (originalText.Contains("DAY 529")) { return LanguageManager.CurrentLanguage.fishing.fish_book1 + "\n\n" + LanguageManager.CurrentLanguage.fishing.fish_book2 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book3 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book4 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book8 + "\n\n" + LanguageManager.CurrentLanguage.fishing.fish_book5 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book6 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book7 + "\n\n" + LanguageManager.CurrentLanguage.fishing.fish_book8 + "\n\n" + LanguageManager.CurrentLanguage.fishing.fish_book7 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book8 + "\n\n" + LanguageManager.CurrentLanguage.fishing.fish_book7 + "\n\n" + LanguageManager.CurrentLanguage.fishing.fish_book8 + "\n\n\n" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "\n" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "\n\n\n" + LanguageManager.CurrentLanguage.fishing.fish_book10; } return LanguageManager.CurrentLanguage.fishing.fish_bottleMessage1 + "\n\n\n" + LanguageManager.CurrentLanguage.fishing.fish_bottleMessage2 + "\n\n\n" + LanguageManager.CurrentLanguage.fishing.fish_bottleMessage3 + "\n\n\n" + LanguageManager.CurrentLanguage.fishing.fish_bottleMessage4 + "\n\n\n" + LanguageManager.CurrentLanguage.fishing.fish_bottleMessage5 + "\n\n\n" + LanguageManager.CurrentLanguage.fishing.fish_bottleMessage6; case "Level 6-1": return "" + LanguageManager.CurrentLanguage.act2.act2_heresyFirst_armboy + ""; case "Level 7-1": if (originalText.Contains("The unending halls of")) { return "" + LanguageManager.CurrentLanguage.books.books_violenceFirst1 + "\n" + LanguageManager.CurrentLanguage.books.books_violenceFirst2 + "\n\n" + LanguageManager.CurrentLanguage.books.books_violenceFirst3 + "\n\n" + LanguageManager.CurrentLanguage.books.books_violenceFirst4 + "\n\n\n" + LanguageManager.CurrentLanguage.books.books_violenceFirst5 + "\n\n" + LanguageManager.CurrentLanguage.books.books_violenceFirst6 + "\n\n" + LanguageManager.CurrentLanguage.books.books_violenceFirst7 + "\n\n" + LanguageManager.CurrentLanguage.books.books_violenceFirst8 + "\n\n" + LanguageManager.CurrentLanguage.books.books_violenceFirst9 + ""; } return LanguageManager.CurrentLanguage.books.books_violenceFirst_Slate1 + "\n\n" + LanguageManager.CurrentLanguage.books.books_violenceFirst_Slate2 + "\n\n" + LanguageManager.CurrentLanguage.books.books_violenceFirst_Slate3 + "\n\n" + LanguageManager.CurrentLanguage.books.books_violenceFirst_Slate4; case "Level 7-2": if (originalText.Contains("> < < > < < > > < > > < >")) { return LanguageManager.CurrentLanguage.books.books_violenceSecond1 + "\n\n" + LanguageManager.CurrentLanguage.books.books_violenceSecond2 + "\n\n> < < > < < > > < > > < >"; } return "" + LanguageManager.CurrentLanguage.books.books_violenceSecondAmbush1 + "\n\n\n\n" + LanguageManager.CurrentLanguage.books.books_violenceSecondAmbush2 + "\n\n\n\n\n" + LanguageManager.CurrentLanguage.books.books_violenceSecondAmbush1 + "\n\n\n\n" + LanguageManager.CurrentLanguage.books.books_violenceSecondAmbush3 + "\n\n\n\n\n" + LanguageManager.CurrentLanguage.books.books_violenceSecondAmbush1 + "\n\n\n\n" + LanguageManager.CurrentLanguage.books.books_violenceSecondAmbush4 + ""; case "Level 7-4": return "" + LanguageManager.CurrentLanguage.books.books_violenceFourth1 + "\n\n\n" + LanguageManager.CurrentLanguage.books.books_violenceFourth2 + "\n\n\n" + LanguageManager.CurrentLanguage.books.books_violenceFourth3 + "\n\n\n" + LanguageManager.CurrentLanguage.books.books_violenceFourth4 + "\n\n\n" + LanguageManager.CurrentLanguage.books.books_violenceFourth5 + ""; case "Level 7-S": return LanguageManager.CurrentLanguage.books.books_violenceSecret_Slate1 + "\n\n" + LanguageManager.CurrentLanguage.books.books_violenceSecret_Slate2; case "Level 8-2": if (originalText.Contains("Layer 8: Fraud has become exactly what I had dreamed it would be")) { return LanguageManager.CurrentLanguage.books.books_fraudSecond1_1 + "\n\n" + LanguageManager.CurrentLanguage.books.books_fraudSecond1_2 + "\n" + LanguageManager.CurrentLanguage.books.books_fraudSecond1_3 + "\n" + LanguageManager.CurrentLanguage.books.books_fraudSecond1_4 + "\n" + LanguageManager.CurrentLanguage.books.books_fraudSecond1_5 + "\n" + LanguageManager.CurrentLanguage.books.books_fraudSecond1_6 + "\n" + LanguageManager.CurrentLanguage.books.books_fraudSecond1_7 + "\n" + LanguageManager.CurrentLanguage.books.books_fraudSecond1_8 + "\n\n" + LanguageManager.CurrentLanguage.books.books_fraudSecond1_9 + "\n\n" + LanguageManager.CurrentLanguage.books.books_fraudSecond1_10; } if (originalText.Contains("TEXT SCANNED - EARTHMOVER MENTIONS DETECTED:")) { return "" + LanguageManager.CurrentLanguage.books.books_fraudSecond2_1 + "\n\n" + LanguageManager.CurrentLanguage.books.books_fraudSecond2_2 + "\n\n" + LanguageManager.CurrentLanguage.books.books_fraudSecond2_3 + "\n\n" + LanguageManager.CurrentLanguage.books.books_fraudSecond2_4 + "\n" + LanguageManager.CurrentLanguage.books.books_fraudSecond2_5 + "\n\n" + LanguageManager.CurrentLanguage.books.books_fraudSecond2_6 + "\n" + LanguageManager.CurrentLanguage.books.books_fraudSecond2_7 + "\n\n" + LanguageManager.CurrentLanguage.books.books_fraudSecond2_8 + ""; } if (originalText.Contains("I SEE ICY ULYSSES FROZEN")) { return "" + LanguageManager.CurrentLanguage.books.books_fraudSecond3_1 + "\n\n" + LanguageManager.CurrentLanguage.books.books_fraudSecond3_2 + "\n\n" + LanguageManager.CurrentLanguage.books.books_fraudSecond3_3 + "\n\n" + LanguageManager.CurrentLanguage.books.books_fraudSecond3_4 + "\n" + LanguageManager.CurrentLanguage.books.books_fraudSecond3_5 + "
" + LanguageManager.CurrentLanguage.books.books_fraudSecond3_6 + "
" + LanguageManager.CurrentLanguage.books.books_fraudSecond3_7 + "
\n\n\n" + LanguageManager.CurrentLanguage.books.books_fraudSecond3_8 + ""; } return originalText; case "Level 8-3": if (originalText.Contains("TEXT SCANNED - ANOMALY DETECTED:")) { return "" + LanguageManager.CurrentLanguage.books.books_fraudThird1_1 + "\n\n" + LanguageManager.CurrentLanguage.books.books_fraudThird1_2 + "\n\n" + LanguageManager.CurrentLanguage.books.books_fraudThird1_3 + "\n\n" + LanguageManager.CurrentLanguage.books.books_fraudThird1_4 + "\n" + LanguageManager.CurrentLanguage.books.books_fraudThird1_5 + "\n\n" + LanguageManager.CurrentLanguage.books.books_fraudThird1_6 + ""; } if (originalText.Contains("ATAVISTIC ANTAGONIST")) { return "" + LanguageManager.CurrentLanguage.books.books_fraudThird2_1 + "\n\n" + LanguageManager.CurrentLanguage.books.books_fraudThird2_2 + "\n\n" + LanguageManager.CurrentLanguage.books.books_fraudThird2_3 + "\n\n" + LanguageManager.CurrentLanguage.books.books_fraudThird2_4 + "\n\n" + LanguageManager.CurrentLanguage.books.books_fraudThird2_5 + "\n" + LanguageManager.CurrentLanguage.books.books_fraudThird2_6 + "\n\n\n" + LanguageManager.CurrentLanguage.books.books_fraudThird2_7 + ""; } return originalText; default: Logging.Warn("Unknown book in " + currentSceneName + "!"); return originalText; } } } public static class BossStrings { public static string GetBossName(string originalBossName) { Logging.Warn(originalBossName); return EnemyBios.GetName(originalBossName); } } public static class Cheats { public static void PatchCheatConsentPanel(ref GameObject canvasObj) { //IL_00fb: Unknown result type (might be due to invalid IL or missing references) GameObject gameObjectChild = CommonFunctions.GetGameObjectChild(canvasObj, "Cheat Menu"); GameObject gameObjectChild2 = CommonFunctions.GetGameObjectChild(gameObjectChild, "Cheats Consent"); GameObject gameObjectChild3 = CommonFunctions.GetGameObjectChild(gameObjectChild2, "Text"); ((TMP_Text)CommonFunctions.GetTextMeshProUGUI(gameObjectChild3)).text = LanguageManager.CurrentLanguage.cheats.cheats_disclaimer1 + "\n\n" + LanguageManager.CurrentLanguage.cheats.cheats_disclaimer2; TextMeshProUGUI textMeshProUGUI = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild2, "Yes"), "Text")); ((TMP_Text)textMeshProUGUI).text = LanguageManager.CurrentLanguage.cheats.cheats_disclaimerYes; ((TMP_Text)textMeshProUGUI).fontSize = 22f; ((TMP_Text)CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild2, "No"), "Text"))).text = LanguageManager.CurrentLanguage.cheats.cheats_disclaimerNo; ((TMP_Text)CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Cheats Manager"), "Title"))).text = LanguageManager.CurrentLanguage.cheats.cheats_panelTitle; ((Behaviour)gameObjectChild3.GetComponents(typeof(Component))[2]).enabled = false; GameObject gameObjectChild4 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(canvasObj, "Cheat Menu"), "Cheats Overlay"), "Cheats Enabled"); ((TMP_Text)CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild4, "Title"))).text = LanguageManager.CurrentLanguage.cheats.cheats_cheatsEnabled; GameObject gameObjectChild5 = CommonFunctions.GetGameObjectChild(gameObjectChild4, "Details Tip"); Component[] components = gameObjectChild5.GetComponents(typeof(Component)); foreach (Component val in components) { if (((object)val).GetType().Name == "TextOverride") { Object.Destroy((Object)(object)val); } } ((TMP_Text)CommonFunctions.GetTextMeshProUGUI(gameObjectChild5)).text = LanguageManager.CurrentLanguage.cheats.cheats_cheatsOpenButtons; ((TMP_Text)CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(canvasObj, "Cheat Menu"), "Cheats Teleport"), "Title"))).text = LanguageManager.CurrentLanguage.cheats.cheats_teleportMenu; } public static string GetCheatStatus(string cheatStatus) { if (cheatStatus == null) { return null; } try { return cheatStatus switch { "STAY ACTIVE" => LanguageManager.CurrentLanguage.cheats.cheats_stayActive, "DISABLE ON RELOAD" => LanguageManager.CurrentLanguage.cheats.cheats_disableOnReload, "SAVE" => LanguageManager.CurrentLanguage.cheats.cheats_dupesSave, "NEW SAVE" => LanguageManager.CurrentLanguage.cheats.cheats_dupesNewSave, "LOAD LATEST SAVE" => LanguageManager.CurrentLanguage.cheats.cheats_loadLatestSave, "EQUIP" => LanguageManager.CurrentLanguage.cheats.cheats_equip, "REMOVE" => LanguageManager.CurrentLanguage.cheats.cheats_remove, "OPEN" => LanguageManager.CurrentLanguage.cheats.cheats_open, "KILL ALL" => LanguageManager.CurrentLanguage.cheats.cheats_killAll, "STATIC" => LanguageManager.CurrentLanguage.cheats.cheats_static, "DYNAMIC" => LanguageManager.CurrentLanguage.cheats.cheats_dynamic, "REBUILD" => LanguageManager.CurrentLanguage.cheats.cheats_rebuild, "REBUILDING..." => LanguageManager.CurrentLanguage.cheats.cheats_rebuilding, _ => null, }; } catch (Exception e) { CommonFunctions.HandleError(e, cheatStatus); return ""; } } public static string GetCheatName(string cheatIdentifier) { try { return cheatIdentifier switch { "ultrakill.keep-enabled" => LanguageManager.CurrentLanguage.cheats.cheats_keepEnabled, "ultrakill.spawner-arm" => LanguageManager.CurrentLanguage.cheats.cheats_spawnerArm, "ultrakill.teleport-menu" => LanguageManager.CurrentLanguage.cheats.cheats_teleportMenu, "ultrakill.full-bright" => LanguageManager.CurrentLanguage.cheats.cheats_fullBright, "ultrakill.invincibility" => LanguageManager.CurrentLanguage.cheats.cheats_invincibility, "ultrakill.noclip" => LanguageManager.CurrentLanguage.cheats.cheats_noclip, "ultrakill.flight" => LanguageManager.CurrentLanguage.cheats.cheats_flight, "ultrakill.infinite-wall-jumps" => LanguageManager.CurrentLanguage.cheats.cheats_infiniteWallJumps, "ultrakill.no-weapon-cooldown" => LanguageManager.CurrentLanguage.cheats.cheats_noWeaponCooldown, "ultrakill.infinite-power-ups" => LanguageManager.CurrentLanguage.cheats.cheats_infinitePowerUps, "ultrakill.blind-enemies" => LanguageManager.CurrentLanguage.cheats.cheats_blindEnemies, "ultrakill.enemy-hate-enemy" => LanguageManager.CurrentLanguage.cheats.cheats_enemiesHateEnemies, "ultrakill.enemy-ignore-player" => LanguageManager.CurrentLanguage.cheats.cheats_enemiesIgnorePlayer, "ultrakill.disable-enemy-spawns" => LanguageManager.CurrentLanguage.cheats.cheats_disableEnemySpawns, "ultrakill.invincible-enemies" => LanguageManager.CurrentLanguage.cheats.cheats_invincibleEnemies, "ultrakill.kill-all-enemies" => LanguageManager.CurrentLanguage.cheats.cheats_killAllEnemies, "ultrakill.sandbox.quick-save" => LanguageManager.CurrentLanguage.cheats.cheats_quickSave, "ultrakill.sandbox.quick-load" => LanguageManager.CurrentLanguage.cheats.cheats_quickLoad, "ultrakill.sandbox.save-menu" => LanguageManager.CurrentLanguage.cheats.cheats_saveMenu, "ultrakill.sandbox.clear" => LanguageManager.CurrentLanguage.cheats.cheats_clear, "ultrakill.sandbox.rebuild-nav" => LanguageManager.CurrentLanguage.cheats.cheats_rebuildNav, "ultrakill.sandbox.snapping" => LanguageManager.CurrentLanguage.cheats.cheats_snapping, "ultrakill.sandbox.physics" => LanguageManager.CurrentLanguage.cheats.cheats_physics, "ultrakill.clash-mode" => LanguageManager.CurrentLanguage.cheats.cheats_crashMode, "ultrakill.hide-weapons" => LanguageManager.CurrentLanguage.cheats.cheats_hideWeapons, "ultrakill.hide-ui" => LanguageManager.CurrentLanguage.cheats.cheats_hideUi, "ultrakill.ghost-drone-mode" => LanguageManager.CurrentLanguage.cheats.cheats_ghostDroneMode, _ => cheatIdentifier, }; } catch (Exception e) { CommonFunctions.HandleError(e, cheatIdentifier); return ""; } } } public static class CommonFunctions { [CompilerGenerated] private sealed class d__5 : IEnumerator, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public float seconds; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__5(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(seconds); <>1__state = 1; return true; case 1: <>1__state = -1; return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } private static readonly Dictionary LocalizedInputs = new Dictionary { { "space", LanguageManager.CurrentLanguage.inputStrings.input_space }, { "enter", LanguageManager.CurrentLanguage.inputStrings.input_enter }, { "tab", LanguageManager.CurrentLanguage.inputStrings.input_tab }, { "escape", LanguageManager.CurrentLanguage.inputStrings.input_esc }, { "leftshift", LanguageManager.CurrentLanguage.inputStrings.input_leftShift }, { "rightshift", LanguageManager.CurrentLanguage.inputStrings.input_rightShift }, { "leftcontrol", LanguageManager.CurrentLanguage.inputStrings.input_leftControl }, { "leftctrl", LanguageManager.CurrentLanguage.inputStrings.input_leftCtrl }, { "rightcontrol", LanguageManager.CurrentLanguage.inputStrings.input_rightControl }, { "rightctrl", LanguageManager.CurrentLanguage.inputStrings.input_rightCtrl }, { "leftalt", LanguageManager.CurrentLanguage.inputStrings.input_leftAlt }, { "rightalt", LanguageManager.CurrentLanguage.inputStrings.input_rightAlt }, { "leftmeta", LanguageManager.CurrentLanguage.inputStrings.input_leftMeta }, { "rightmeta", LanguageManager.CurrentLanguage.inputStrings.input_rightMeta }, { "leftbracket", LanguageManager.CurrentLanguage.inputStrings.input_leftBracket }, { "rightbracket", LanguageManager.CurrentLanguage.inputStrings.input_rightBracket }, { "lmb", LanguageManager.CurrentLanguage.inputStrings.input_LMB }, { "rmb", LanguageManager.CurrentLanguage.inputStrings.input_RMB }, { "mmb", LanguageManager.CurrentLanguage.inputStrings.input_MMB }, { "uparrow", LanguageManager.CurrentLanguage.inputStrings.input_arrowUp }, { "downarrow", LanguageManager.CurrentLanguage.inputStrings.input_arrowDown }, { "leftarrow", LanguageManager.CurrentLanguage.inputStrings.input_arrowLeft }, { "rightarrow", LanguageManager.CurrentLanguage.inputStrings.input_arrowRight }, { "forward", LanguageManager.CurrentLanguage.inputStrings.input_forward }, { "back", LanguageManager.CurrentLanguage.inputStrings.input_back }, { "comma", LanguageManager.CurrentLanguage.inputStrings.input_comma }, { "capslock", LanguageManager.CurrentLanguage.inputStrings.input_capsLock }, { "slash", LanguageManager.CurrentLanguage.inputStrings.input_slash }, { "backslash", LanguageManager.CurrentLanguage.inputStrings.input_backslash }, { "backspace", LanguageManager.CurrentLanguage.inputStrings.input_backspace }, { "equals", LanguageManager.CurrentLanguage.inputStrings.input_equals }, { "minus", LanguageManager.CurrentLanguage.inputStrings.input_minus }, { "numlock", LanguageManager.CurrentLanguage.inputStrings.input_numLock }, { "delete", LanguageManager.CurrentLanguage.inputStrings.input_delete }, { "period", LanguageManager.CurrentLanguage.inputStrings.input_period }, { "semicolon", LanguageManager.CurrentLanguage.inputStrings.input_semicolon }, { "quote", LanguageManager.CurrentLanguage.inputStrings.input_quote }, { "insert", LanguageManager.CurrentLanguage.inputStrings.input_insert }, { "pageup", LanguageManager.CurrentLanguage.inputStrings.input_pageUp }, { "pagedown", LanguageManager.CurrentLanguage.inputStrings.input_pageDown }, { "start", LanguageManager.CurrentLanguage.inputStrings.input_start }, { "end", LanguageManager.CurrentLanguage.inputStrings.input_end }, { "scrolllock", LanguageManager.CurrentLanguage.inputStrings.input_scrollLock }, { "pause", LanguageManager.CurrentLanguage.inputStrings.input_pause }, { "nobinding", LanguageManager.CurrentLanguage.inputStrings.input_noBinding } }; public static ColorBlock UkButtonColors; public static string PreviousHudMessage; public static string GetLocalizedInput(string input) { if (string.IsNullOrEmpty(input)) { return input; } if (input.Length == 1 && char.IsLetter(input[0])) { return input; } string text = input.Replace(" ", "").ToLowerInvariant(); switch (text) { case "numpadperiod": return LanguageManager.CurrentLanguage.inputStrings.input_numpadPeriod; case "numpaddivide": return LanguageManager.CurrentLanguage.inputStrings.input_numpadDivide; case "numpadmultiply": return LanguageManager.CurrentLanguage.inputStrings.input_numpadMultiply; case "numpadminus": return LanguageManager.CurrentLanguage.inputStrings.input_numpadMinus; case "numpadenter": return LanguageManager.CurrentLanguage.inputStrings.input_numpadEnter; case "numpadplus": return LanguageManager.CurrentLanguage.inputStrings.input_numpadPlus; default: { if (text.StartsWith("numpad")) { return LanguageManager.CurrentLanguage.inputStrings.input_numpad + text.Substring(6); } if (LocalizedInputs.TryGetValue(text, out var value)) { return value; } return input; } } } public static bool isUsingEnglish() { return LanguageManager.CurrentLanguage.metadata.langDisplayName == "English"; } [IteratorStateMachine(typeof(d__5))] public static IEnumerator WaitforSeconds(float seconds) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__5(0) { seconds = seconds }; } public static void HandleError(Exception e, string missingID = "") { Logging.Error(e.ToString()); } public static GameObject GetInactiveRootObject(string objectName) { //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) Dictionary dictionary = new Dictionary(); float num = 0f; if (Time.time - num < 1f && dictionary.TryGetValue(objectName, out var value)) { if ((Object)(object)value != (Object)null) { return value; } dictionary.Remove(objectName); } if (Time.time - num >= 1f) { dictionary.Clear(); num = Time.time; } Scene activeScene = SceneManager.GetActiveScene(); GameObject[] rootGameObjects = ((Scene)(ref activeScene)).GetRootGameObjects(); foreach (GameObject val in rootGameObjects) { if (((Object)val).name == objectName) { dictionary[objectName] = val; return val; } } dictionary[objectName] = null; return null; } public static string GetCurrentSceneName() { return SceneHelper.CurrentScene; } public static GameObject CreateButton(string buttonText = "Text", string buttonName = "Button") { //IL_0002: 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_003e: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Expected O, but got Unknown //IL_00fb: 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_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_01ad: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_0201: Unknown result type (might be due to invalid IL or missing references) ColorBlock val = default(ColorBlock); ((ColorBlock)(ref val)).normalColor = new Color(0f, 0f, 0f, 0.512f); ((ColorBlock)(ref val)).highlightedColor = new Color(1f, 1f, 1f, 0.502f); ((ColorBlock)(ref val)).pressedColor = new Color(1f, 0f, 0f, 1f); ((ColorBlock)(ref val)).selectedColor = new Color(0f, 0f, 0f, 0.512f); ((ColorBlock)(ref val)).disabledColor = new Color(0.7843f, 0.7843f, 0.7843f, 0.502f); ((ColorBlock)(ref val)).colorMultiplier = 1f; ((ColorBlock)(ref val)).fadeDuration = 0.1f; ColorBlock colors = val; GameObject val2 = new GameObject(); ((Object)val2).name = buttonName; val2.AddComponent(); val2.AddComponent(); val2.AddComponent(); val2.AddComponent