Decompiled source of UltrakULL v1.2.4

plugins/UltrakULL/UltrakULL.dll

Decompiled 4 months ago
using System;
using System.CodeDom.Compiler;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
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.Tasks;
using ArabicSupportUnity;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using Discord;
using HarmonyLib;
using Newtonsoft.Json;
using Sandbox;
using TMPro;
using UltrakULL.Harmony_Patches;
using UltrakULL.audio;
using UltrakULL.json;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.Networking;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: 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")]
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 class ArabicMapping
{
	public int from;

	public int to;

	public ArabicMapping(int from, int to)
	{
		this.from = from;
		this.to = to;
	}
}
internal class ArabicTable
{
	private static List<ArabicMapping> mapList;

	private static ArabicTable arabicMapper;

	internal static ArabicTable ArabicMapper
	{
		get
		{
			if (arabicMapper == null)
			{
				arabicMapper = new ArabicTable();
			}
			return arabicMapper;
		}
	}

	private ArabicTable()
	{
		mapList = new List<ArabicMapping>();
		mapList.Add(new ArabicMapping(1569, 65152));
		mapList.Add(new ArabicMapping(1575, 65165));
		mapList.Add(new ArabicMapping(1571, 65155));
		mapList.Add(new ArabicMapping(1572, 65157));
		mapList.Add(new ArabicMapping(1573, 65159));
		mapList.Add(new ArabicMapping(1609, 64508));
		mapList.Add(new ArabicMapping(1574, 65161));
		mapList.Add(new ArabicMapping(1576, 65167));
		mapList.Add(new ArabicMapping(1578, 65173));
		mapList.Add(new ArabicMapping(1579, 65177));
		mapList.Add(new ArabicMapping(1580, 65181));
		mapList.Add(new ArabicMapping(1581, 65185));
		mapList.Add(new ArabicMapping(1582, 65189));
		mapList.Add(new ArabicMapping(1583, 65193));
		mapList.Add(new ArabicMapping(1584, 65195));
		mapList.Add(new ArabicMapping(1585, 65197));
		mapList.Add(new ArabicMapping(1586, 65199));
		mapList.Add(new ArabicMapping(1587, 65201));
		mapList.Add(new ArabicMapping(1588, 65205));
		mapList.Add(new ArabicMapping(1589, 65209));
		mapList.Add(new ArabicMapping(1590, 65213));
		mapList.Add(new ArabicMapping(1591, 65217));
		mapList.Add(new ArabicMapping(1592, 65221));
		mapList.Add(new ArabicMapping(1593, 65225));
		mapList.Add(new ArabicMapping(1594, 65229));
		mapList.Add(new ArabicMapping(1601, 65233));
		mapList.Add(new ArabicMapping(1602, 65237));
		mapList.Add(new ArabicMapping(1603, 65241));
		mapList.Add(new ArabicMapping(1604, 65245));
		mapList.Add(new ArabicMapping(1605, 65249));
		mapList.Add(new ArabicMapping(1606, 65253));
		mapList.Add(new ArabicMapping(1607, 65257));
		mapList.Add(new ArabicMapping(1608, 65261));
		mapList.Add(new ArabicMapping(1610, 65265));
		mapList.Add(new ArabicMapping(1570, 65153));
		mapList.Add(new ArabicMapping(1577, 65171));
		mapList.Add(new ArabicMapping(1662, 64342));
		mapList.Add(new ArabicMapping(1670, 64378));
		mapList.Add(new ArabicMapping(1688, 64394));
		mapList.Add(new ArabicMapping(1711, 64402));
		mapList.Add(new ArabicMapping(1705, 64398));
		mapList.Add(new ArabicMapping(1740, 64508));
	}

	internal int Convert(int toBeConverted)
	{
		foreach (ArabicMapping map in mapList)
		{
			if (map.from == toBeConverted)
			{
				return map.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 = false;

	internal static string RemoveTashkeel(string str, out List<TashkeelLocation> tashkeelLocation)
	{
		tashkeelLocation = new List<TashkeelLocation>();
		char[] array = str.ToCharArray();
		int num = 0;
		for (int i = 0; i < array.Length; i++)
		{
			if (array[i] == '\u064b')
			{
				tashkeelLocation.Add(new TashkeelLocation('\u064b', i));
				num++;
			}
			else if (array[i] == '\u064c')
			{
				tashkeelLocation.Add(new TashkeelLocation('\u064c', i));
				num++;
			}
			else if (array[i] == '\u064d')
			{
				tashkeelLocation.Add(new TashkeelLocation('\u064d', i));
				num++;
			}
			else if (array[i] == '\u064e')
			{
				if (num > 0 && combineTashkeel && tashkeelLocation[num - 1].tashkeel == '\u0651')
				{
					tashkeelLocation[num - 1].tashkeel = 'ﱠ';
					continue;
				}
				tashkeelLocation.Add(new TashkeelLocation('\u064e', i));
				num++;
			}
			else if (array[i] == '\u064f')
			{
				if (num > 0 && combineTashkeel && tashkeelLocation[num - 1].tashkeel == '\u0651')
				{
					tashkeelLocation[num - 1].tashkeel = 'ﱡ';
					continue;
				}
				tashkeelLocation.Add(new TashkeelLocation('\u064f', i));
				num++;
			}
			else if (array[i] == '\u0650')
			{
				if (num > 0 && combineTashkeel && tashkeelLocation[num - 1].tashkeel == '\u0651')
				{
					tashkeelLocation[num - 1].tashkeel = 'ﱢ';
					continue;
				}
				tashkeelLocation.Add(new TashkeelLocation('\u0650', i));
				num++;
			}
			else if (array[i] == '\u0651')
			{
				if (num > 0 && combineTashkeel)
				{
					if (tashkeelLocation[num - 1].tashkeel == '\u064e')
					{
						tashkeelLocation[num - 1].tashkeel = 'ﱠ';
						continue;
					}
					if (tashkeelLocation[num - 1].tashkeel == '\u064f')
					{
						tashkeelLocation[num - 1].tashkeel = 'ﱡ';
						continue;
					}
					if (tashkeelLocation[num - 1].tashkeel == '\u0650')
					{
						tashkeelLocation[num - 1].tashkeel = 'ﱢ';
						continue;
					}
				}
				tashkeelLocation.Add(new TashkeelLocation('\u0651', i));
				num++;
			}
			else if (array[i] == '\u0652')
			{
				tashkeelLocation.Add(new TashkeelLocation('\u0652', i));
				num++;
			}
			else if (array[i] == '\u0653')
			{
				tashkeelLocation.Add(new TashkeelLocation('\u0653', i));
				num++;
			}
		}
		string[] array2 = str.Split('\u064b', '\u064c', '\u064d', '\u064e', '\u064f', '\u0650', '\u0651', '\u0652', '\u0653', 'ﱠ', 'ﱡ', 'ﱢ');
		str = "";
		string[] array3 = array2;
		foreach (string text in array3)
		{
			str += text;
		}
		return str;
	}

	internal static char[] ReturnTashkeel(char[] letters, List<TashkeelLocation> tashkeelLocation)
	{
		char[] array = new char[letters.Length + tashkeelLocation.Count];
		int num = 0;
		for (int i = 0; i < letters.Length; i++)
		{
			array[num] = letters[i];
			num++;
			foreach (TashkeelLocation item in tashkeelLocation)
			{
				if (item.position == num)
				{
					array[num] = item.tashkeel;
					num++;
				}
			}
		}
		return array;
	}

	internal static string FixLine(string str)
	{
		string text = "";
		List<TashkeelLocation> tashkeelLocation;
		string text2 = RemoveTashkeel(str, out tashkeelLocation);
		char[] array = text2.ToCharArray();
		char[] array2 = text2.ToCharArray();
		for (int i = 0; i < array.Length; i++)
		{
			array[i] = (char)ArabicTable.ArabicMapper.Convert(array[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] = 'ﻷ';
					array2[j + 1] = '\uffff';
					flag = true;
				}
				else if (array[j + 1] == 'ﺍ')
				{
					array[j] = 'ﻹ';
					array2[j + 1] = '\uffff';
					flag = true;
				}
				else if (array[j + 1] == 'ﺃ')
				{
					array[j] = 'ﻵ';
					array2[j + 1] = '\uffff';
					flag = true;
				}
				else if (array[j + 1] == 'ﺁ')
				{
					array[j] = 'ﻳ';
					array2[j + 1] = '\uffff';
					flag = true;
				}
			}
			if (!IsIgnoredCharacter(array[j]))
			{
				if (IsMiddleLetter(array, j))
				{
					array2[j] = (char)(array[j] + 3);
				}
				else if (IsFinishingLetter(array, j))
				{
					array2[j] = (char)(array[j] + 1);
				}
				else if (IsLeadingLetter(array, j))
				{
					array2[j] = (char)(array[j] + 2);
				}
			}
			text = text + Convert.ToString(array[j], 16) + " ";
			if (flag)
			{
				j++;
			}
			if (useHinduNumbers)
			{
				if (array[j] == '0')
				{
					array2[j] = '٠';
				}
				else if (array[j] == '1')
				{
					array2[j] = '١';
				}
				else if (array[j] == '2')
				{
					array2[j] = '٢';
				}
				else if (array[j] == '3')
				{
					array2[j] = '٣';
				}
				else if (array[j] == '4')
				{
					array2[j] = '٤';
				}
				else if (array[j] == '5')
				{
					array2[j] = '٥';
				}
				else if (array[j] == '6')
				{
					array2[j] = '٦';
				}
				else if (array[j] == '7')
				{
					array2[j] = '٧';
				}
				else if (array[j] == '8')
				{
					array2[j] = '٨';
				}
				else if (array[j] == '9')
				{
					array2[j] = '٩';
				}
			}
		}
		if (showTashkeel)
		{
			array2 = ReturnTashkeel(array2, tashkeelLocation);
		}
		List<char> list = new List<char>();
		List<char> list2 = new List<char>();
		for (int num = array2.Length - 1; num >= 0; num--)
		{
			if (char.IsPunctuation(array2[num]) && num > 0 && num < array2.Length - 1 && (char.IsPunctuation(array2[num - 1]) || char.IsPunctuation(array2[num + 1])))
			{
				if (array2[num] == '(')
				{
					list.Add(')');
				}
				else if (array2[num] == ')')
				{
					list.Add('(');
				}
				else if (array2[num] == '<')
				{
					list.Add('>');
				}
				else if (array2[num] == '>')
				{
					list.Add('<');
				}
				else if (array2[num] == '[')
				{
					list.Add(']');
				}
				else if (array2[num] == ']')
				{
					list.Add('[');
				}
				else if (array2[num] != '\uffff')
				{
					list.Add(array2[num]);
				}
			}
			else if (array2[num] == ' ' && num > 0 && num < array2.Length - 1 && (char.IsLower(array2[num - 1]) || char.IsUpper(array2[num - 1]) || char.IsNumber(array2[num - 1])) && (char.IsLower(array2[num + 1]) || char.IsUpper(array2[num + 1]) || char.IsNumber(array2[num + 1])))
			{
				list2.Add(array2[num]);
			}
			else if (char.IsNumber(array2[num]) || char.IsLower(array2[num]) || char.IsUpper(array2[num]) || char.IsSymbol(array2[num]) || char.IsPunctuation(array2[num]))
			{
				if (array2[num] == '(')
				{
					list2.Add(')');
				}
				else if (array2[num] == ')')
				{
					list2.Add('(');
				}
				else if (array2[num] == '<')
				{
					list2.Add('>');
				}
				else if (array2[num] == '>')
				{
					list2.Add('<');
				}
				else if (array2[num] == '[')
				{
					list.Add(']');
				}
				else if (array2[num] == ']')
				{
					list.Add('[');
				}
				else
				{
					list2.Add(array2[num]);
				}
			}
			else if ((array2[num] >= '\ud800' && array2[num] <= '\udbff') || (array2[num] >= '\udc00' && array2[num] <= '\udfff'))
			{
				list2.Add(array2[num]);
			}
			else
			{
				if (list2.Count > 0)
				{
					for (int k = 0; k < list2.Count; k++)
					{
						list.Add(list2[list2.Count - 1 - k]);
					}
					list2.Clear();
				}
				if (array2[num] != '\uffff' && array2[num] != 0)
				{
					list.Add(array2[num]);
				}
			}
		}
		if (list2.Count > 0)
		{
			for (int l = 0; l < list2.Count; l++)
			{
				list.Add(list2[list2.Count - 1 - l]);
			}
			list2.Clear();
		}
		array2 = new char[list.Count];
		for (int m = 0; m < array2.Length; m++)
		{
			array2[m] = list[m];
		}
		str = new string(array2);
		return str;
	}

	internal static bool IsIgnoredCharacter(char ch)
	{
		bool flag = char.IsPunctuation(ch);
		bool flag2 = char.IsNumber(ch);
		bool flag3 = char.IsLower(ch);
		bool flag4 = char.IsUpper(ch);
		bool flag5 = char.IsSymbol(ch);
		bool flag6 = ch == 'ﭖ' || ch == 'ﭺ' || ch == 'ﮊ' || ch == 'ﮒ' || ch == 'ﮎ';
		bool flag7 = ch <= '\ufeff' && ch >= 'ﹰ';
		bool flag8 = flag7 || flag6 || ch == 'ﯼ';
		return flag || flag2 || flag3 || flag4 || flag5 || !flag8 || ch == 'a' || ch == '>' || ch == '<' || ch == '؛';
	}

	internal static bool IsLeadingLetter(char[] letters, int index)
	{
		bool flag = index == 0 || letters[index - 1] == ' ' || letters[index - 1] == '*' || letters[index - 1] == 'A' || 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] == 'ﺀ' || letters[index - 1] == 'ﺇ' || letters[index - 1] == 'ﺅ';
		bool flag2 = 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 flag3 = 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 (flag && flag2 && flag3)
		{
			return true;
		}
		return false;
	}

	internal static bool IsFinishingLetter(char[] letters, int index)
	{
		bool flag = index != 0;
		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] != 'ﺅ' && letters[index - 1] != 'ﺀ' && !char.IsPunctuation(letters[index - 1]) && !char.IsSymbol(letters[index - 1]) && letters[index - 1] != '>' && letters[index - 1] != '<';
		bool flag3 = letters[index] != ' ' && letters[index] != 'ﺀ';
		if (flag2 && flag3)
		{
			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] != '*';
		bool flag3 = 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]);
		if (flag3 && flag2 && flag)
		{
			try
			{
				if (char.IsPunctuation(letters[index + 1]))
				{
					return false;
				}
				return true;
			}
			catch
			{
				return false;
			}
		}
		return false;
	}
}
namespace ArabicSupportUnity
{
	public class ArabicFixer
	{
		public static string Fix(string str)
		{
			return Fix(str, showTashkeel: false, useHinduNumbers: true);
		}

		public static string Fix(string str, bool rtl)
		{
			if (rtl)
			{
				return Fix(str);
			}
			string[] array = str.Split(new char[1] { ' ' });
			string text = "";
			string text2 = "";
			string[] array2 = array;
			foreach (string text3 in array2)
			{
				if (char.IsLower(text3.ToLower()[text3.Length / 2]))
				{
					text = text + Fix(text2) + text3 + " ";
					text2 = "";
				}
				else
				{
					text2 = text2 + text3 + " ";
				}
			}
			if (text2 != "")
			{
				text += Fix(text2);
			}
			return text;
		}

		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");
				TextMeshProUGUI textMeshProUGUI = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild, "Text"));
				((TMP_Text)textMeshProUGUI).text = LanguageManager.CurrentLanguage.misc.hellmap_limbo;
				TextMeshProUGUI textMeshProUGUI2 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild, "Text (1)"));
				((TMP_Text)textMeshProUGUI2).text = LanguageManager.CurrentLanguage.misc.hellmap_lust;
				TextMeshProUGUI textMeshProUGUI3 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild, "Text (2)"));
				((TMP_Text)textMeshProUGUI3).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);
		}
	}
	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 + " '<color=orange>" + input + "'</color> " + LanguageManager.CurrentLanguage.act1.act1_limboFirst_items2;
				return LanguageManager.CurrentLanguage.act1.act1_limboFirst_items1 + " '<color=orange>" + input + "'</color> " + LanguageManager.CurrentLanguage.act1.act1_limboFirst_items2;
			}
			if (text.Contains("NAILGUN"))
			{
				CommonFunctions.PreviousHudMessage = LanguageManager.CurrentLanguage.act1.act1_limboFirst_nailgun1 + " '<color=orange>" + input + "'</color> " + LanguageManager.CurrentLanguage.act1.act1_limboFirst_nailgun2 + "\n" + LanguageManager.CurrentLanguage.act1.act1_limboFirst_nailgun3;
				return LanguageManager.CurrentLanguage.act1.act1_limboFirst_nailgun1 + " '<color=orange>" + input + "'</color> " + LanguageManager.CurrentLanguage.act1.act1_limboFirst_nailgun2 + "\n" + LanguageManager.CurrentLanguage.act1.act1_limboFirst_nailgun3;
			}
			return CommonFunctions.PreviousHudMessage;
		}

		private static string Level12(string message, string message2)
		{
			string text = message + message2;
			if (text.Contains("BLUE"))
			{
				return LanguageManager.CurrentLanguage.act1.act1_limboSecond_blueAttack;
			}
			return "Unknown 1-2 string";
		}

		private static string Level13(string message, string message2)
		{
			string text = message + message2;
			if (text.Contains("SPLIT"))
			{
				return LanguageManager.CurrentLanguage.act1.act1_limboThird_splitDoor1 + "\n" + LanguageManager.CurrentLanguage.act1.act1_limboThird_splitDoor2;
			}
			return "Unknown 1-3 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 (text.Contains("ALTERNATE"))
			{
				return LanguageManager.CurrentLanguage.act1.act1_limboFourth_alternateRevolver;
			}
			if (text.Contains("EQUIPPED"))
			{
				return LanguageManager.CurrentLanguage.act1.act1_limboFourth_newArm + " '<color=orange>" + input + "'</color>.";
			}
			return "Unknown 1-4 string";
		}

		private static string Level1Secret(string message, string message2)
		{
			string text = message + message2;
			if (text.Contains("LOOKS"))
			{
				return LanguageManager.CurrentLanguage.act1.act1_limboSecret_noclipSkip;
			}
			return "Unknown 1-S 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 + " '<color=orange>" + input + "</color>' " + LanguageManager.CurrentLanguage.act1.act1_lustFirst_knuckleblaster2;
			}
			if (text.Contains("DASH"))
			{
				return LanguageManager.CurrentLanguage.act1.act1_lustFirst_dashJump;
			}
			return "Unknown 2-1 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 + " '<color=orange>" + input + "</color>'.";
			}
			if (text.Contains("RAILCANNON"))
			{
				return LanguageManager.CurrentLanguage.act1.act1_lustSecond_railcannon;
			}
			return "Unknown 2-2 string";
		}

		private static string Level23(string message, string message2)
		{
			string text = message + message2;
			if (text.Contains("water"))
			{
				return LanguageManager.CurrentLanguage.act1.act1_lustThird_water;
			}
			return "Unknown 2-3 string";
		}

		private static string Level24()
		{
			return "Unknown 2-4 string";
		}

		private static string Level2Secret()
		{
			return "Unknown 2-S string";
		}

		private static string Level31()
		{
			return "Unknown 3-1 string";
		}

		private static string Level32()
		{
			return "Unknown 3-2 string";
		}

		public static string GetMessage(string message, string message2, string input)
		{
			string currentSceneName = CommonFunctions.GetCurrentSceneName();
			string text = message + message2;
			if (text.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(), 
				"Level 2-S" => Level2Secret(), 
				"Level 3-1" => Level31(), 
				"Level 3-2" => Level32(), 
				_ => "Unimplemented Act 1 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_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: 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<GameObject> list = new List<GameObject>();
			foreach (Transform item in gameObjectChild2.transform)
			{
				Transform val = item;
				if (((Object)((Component)val).gameObject).name == "Choices Box")
				{
					list.Add(((Component)val).gameObject);
				}
			}
			GameObject parentObject = list[0];
			GameObject parentObject2 = list[1];
			Text textfromGameObject = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(parentObject, "Button (A)"), "Text"));
			textfromGameObject.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_fallenPromptFirst1;
			Text textfromGameObject2 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(parentObject, "Button (B)"), "Text"));
			textfromGameObject2.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_fallenPromptFirst2;
			Text textfromGameObject3 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(parentObject, "Button (C)"), "Text"));
			textfromGameObject3.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_fallenPromptFirst3;
			Text textfromGameObject4 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(parentObject2, "Button (A)"), "Text"));
			textfromGameObject4.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_fallenPromptSecond1;
			Text textfromGameObject5 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(parentObject2, "Button (B)"), "Text"));
			textfromGameObject5.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_fallenPromptSecond2;
			Text textfromGameObject6 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(parentObject2, "Button (C)"), "Text"));
			textfromGameObject6.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_fallenPromptSecond3;
			GameObject gameObjectChild3 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Middle"), "Choices Box (1)");
			Text textfromGameObject7 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild3, "Button (A)"), "Text"));
			textfromGameObject7.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_middlePrompt1;
			Text textfromGameObject8 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild3, "Button (B)"), "Text"));
			textfromGameObject8.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_middlePrompt2;
			Text textfromGameObject9 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild3, "Button (C)"), "Text"));
			textfromGameObject9.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_middlePrompt3;
			GameObject gameObjectChild4 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Middle"), "Choices Box (2)");
			Text textfromGameObject10 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild4, "Button (A)"), "Text"));
			textfromGameObject10.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_middlePromptSecondRecklessness;
			Text textfromGameObject11 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild4, "Button (B)"), "Text"));
			textfromGameObject11.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_middlePromptSecondWaiting;
			Text textfromGameObject12 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild4, "Button (C)"), "Text"));
			textfromGameObject12.text = "...Pourquoi sommes-nous ici?";
			GameObject gameObjectChild5 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Recklessness"), "Choices Box");
			Text textfromGameObject13 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild5, "Button (A)"), "Text"));
			textfromGameObject13.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_recklessnessPrompt1;
			Text textfromGameObject14 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild5, "Button (B)"), "Text"));
			textfromGameObject14.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_recklessnessPrompt2;
			GameObject gameObjectChild6 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Recklessness"), "Choices Box (1)");
			Text textfromGameObject15 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild6, "Button (A)"), "Text"));
			textfromGameObject15.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_recklessnessPrompt3;
			GameObject gameObjectChild7 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Waiting"), "Choices Box");
			Text textfromGameObject16 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild7, "Button (A)"), "Text"));
			textfromGameObject16.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_waitingPromptFirst1;
			Text textfromGameObject17 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild7, "Button (B)"), "Text"));
			textfromGameObject17.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_waitingPromptFirst2;
			GameObject gameObjectChild8 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Waiting"), "Choices Box (1)");
			Text textfromGameObject18 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild8, "Button (A)"), "Text"));
			textfromGameObject18.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_waitingPromptThird;
			GameObject gameObjectChild9 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (2)");
			Text textfromGameObject19 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild9, "Button (A)"), "Text"));
			textfromGameObject19.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt1;
			GameObject gameObjectChild10 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (3)");
			Text textfromGameObject20 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild10, "Button (A)"), "Text"));
			textfromGameObject20.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt2;
			GameObject gameObjectChild11 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (4)");
			Text textfromGameObject21 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild11, "Button (A)"), "Text"));
			textfromGameObject21.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt3;
			GameObject gameObjectChild12 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (5)");
			Text textfromGameObject22 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild12, "Button (A)"), "Text"));
			textfromGameObject22.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt4;
			GameObject gameObjectChild13 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (6)");
			Text textfromGameObject23 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild13, "Button (A)"), "Text"));
			textfromGameObject23.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt5;
			GameObject gameObjectChild14 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (7)");
			Text textfromGameObject24 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild14, "Button (A)"), "Text"));
			textfromGameObject24.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt6;
			GameObject gameObjectChild15 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (8)");
			Text textfromGameObject25 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild15, "Button (A)"), "Text"));
			textfromGameObject25.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt7;
			GameObject gameObjectChild16 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (9)");
			Text textfromGameObject26 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild16, "Button (A)"), "Text"));
			textfromGameObject26.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt8;
			GameObject gameObjectChild17 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (10)");
			Text textfromGameObject27 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild17, "Button (A)"), "Text"));
			textfromGameObject27.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt9;
			GameObject gameObjectChild18 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (11)");
			Text textfromGameObject28 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild18, "Button (A)"), "Text"));
			textfromGameObject28.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt10;
			GameObject gameObjectChild19 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (12)");
			Text textfromGameObject29 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild19, "Button (A)"), "Text"));
			textfromGameObject29.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt11;
			GameObject gameObjectChild20 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (13)");
			Text textfromGameObject30 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild20, "Button (A)"), "Text"));
			textfromGameObject30.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt12;
			GameObject gameObjectChild21 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (14)");
			Text textfromGameObject31 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild21, "Button (A)"), "Text"));
			textfromGameObject31.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt13;
			GameObject gameObjectChild22 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (16)");
			Text textfromGameObject32 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild22, "Button (A)"), "Text"));
			textfromGameObject32.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt14;
			GameObject gameObjectChild23 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (17)");
			Text textfromGameObject33 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild23, "Button (A)"), "Text"));
			textfromGameObject33.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt15;
			GameObject gameObjectChild24 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (18)");
			Text textfromGameObject34 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild24, "Button (A)"), "Text"));
			textfromGameObject34.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt16;
			GameObject gameObjectChild25 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (19)");
			Text textfromGameObject35 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild25, "Button (A)"), "Text"));
			textfromGameObject35.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt17;
			GameObject gameObjectChild26 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (20)");
			Text textfromGameObject36 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild26, "Button (A)"), "Text"));
			textfromGameObject36.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt18;
			GameObject gameObjectChild27 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (21)");
			Text textfromGameObject37 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild27, "Button (A)"), "Text"));
			textfromGameObject37.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt19;
			GameObject gameObjectChild28 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (22)");
			Text textfromGameObject38 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild28, "Button (A)"), "Text"));
			textfromGameObject38.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt20;
			GameObject gameObjectChild29 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (25)");
			Text textfromGameObject39 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild29, "Button (A)"), "Text"));
			textfromGameObject39.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt21;
			GameObject gameObjectChild30 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (23)");
			Text textfromGameObject40 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild30, "Button (A)"), "Text"));
			textfromGameObject40.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt22;
			GameObject gameObjectChild31 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Nihilism"), "Choices Box (24)");
			Text textfromGameObject41 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild31, "Button (A)"), "Text"));
			textfromGameObject41.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_nihilismPrompt23;
			GameObject gameObjectChild32 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Conclusion"), "Choices Box (2)");
			Text textfromGameObject42 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild32, "Button (A)"), "Text"));
			Text textfromGameObject43 = CommonFunctions.GetTextfromGameObject(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild32, "Button (B)"), "Text"));
			textfromGameObject42.text = LanguageManager.CurrentLanguage.visualnovel.visualnovel_conclusionPrompt1;
			textfromGameObject43.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" + 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");
			TextMeshProUGUI textMeshProUGUI = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild, "Text"));
			((TMP_Text)textMeshProUGUI).text = LanguageManager.CurrentLanguage.misc.hellmap_greed;
			TextMeshProUGUI textMeshProUGUI2 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild, "Text (1)"));
			((TMP_Text)textMeshProUGUI2).text = LanguageManager.CurrentLanguage.misc.hellmap_wrath;
			TextMeshProUGUI textMeshProUGUI3 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild, "Text (2)"));
			((TMP_Text)textMeshProUGUI3).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()
		{
			return "Unknown 4-1 string";
		}

		private static string Level42(string message, string message2)
		{
			string text = message + message2;
			if (text.Contains("BLEED"))
			{
				return LanguageManager.CurrentLanguage.act2.act2_greedSecond_sand;
			}
			return "Unknown 4-2 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 "Unknown 4-3 string";
		}

		private static string Level44(string message, string message2, string input)
		{
			string text = message + message2;
			if (text == "")
			{
				return _previousMessage;
			}
			if (text.Contains("ALTERNATE"))
			{
				return LanguageManager.CurrentLanguage.act1.act1_limboFourth_alternateRevolver;
			}
			if (text.Contains("You're"))
			{
				return LanguageManager.CurrentLanguage.act2.act2_greedFourth_v2;
			}
			if (text.Contains("Hold"))
			{
				_previousMessage = LanguageManager.CurrentLanguage.act2.act2_greedFourth_whiplash1 + " <color=orange>" + input + "</color> " + LanguageManager.CurrentLanguage.act2.act2_greedFourth_whiplash2;
				return LanguageManager.CurrentLanguage.act2.act2_greedFourth_whiplash1 + " <color=orange>" + input + "</color> " + LanguageManager.CurrentLanguage.act2.act2_greedFourth_whiplash2;
			}
			if (text.Contains("HEAVY"))
			{
				_previousMessage = LanguageManager.CurrentLanguage.act2.act2_greedFourth_whiplash3;
				return LanguageManager.CurrentLanguage.act2.act2_greedFourth_whiplash3;
			}
			if (text.Contains("HARD DAMAGE"))
			{
				_previousMessage = LanguageManager.CurrentLanguage.act2.act2_greedFourth_whiplashHardDamage1 + "\n" + LanguageManager.CurrentLanguage.act2.act2_greedFourth_whiplashHardDamage2;
				return LanguageManager.CurrentLanguage.act2.act2_greedFourth_whiplashHardDamage1 + "\n" + LanguageManager.CurrentLanguage.act2.act2_greedFourth_whiplashHardDamage2;
			}
			return "Unknown 4-4 string";
		}

		private static string Level4Secret(string message, string message2, string input)
		{
			string text = message + message2;
			if (text.Contains("HOLD"))
			{
				return LanguageManager.CurrentLanguage.act2.act2_greedSecret_holdToJump1 + "<color=orange> " + input + " </color>" + LanguageManager.CurrentLanguage.act2.act2_greedSecret_holdToJump2;
			}
			return LanguageManager.CurrentLanguage.act2.act2_greedSecret_holdToJump1 + "<color=orange> " + input + " </color>" + LanguageManager.CurrentLanguage.act2.act2_greedSecret_holdToJump2;
		}

		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("WHIPLASH"))
			{
				return LanguageManager.CurrentLanguage.act2.act2_wrathFirst_whiplashUnderwater;
			}
			if (text.Contains("SENTRIES"))
			{
				return LanguageManager.CurrentLanguage.act2.act2_wrathFirst_sentry;
			}
			if (text.Contains("drained"))
			{
				return LanguageManager.CurrentLanguage.act2.act2_wrathFirst_waterDrained;
			}
			return "Unknown 5-1 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 "Unknown 5-2 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 "Unknown 5-3 string";
		}

		private static string Level54()
		{
			return "Unknown 5-4 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 "Unknown 5-S string";
		}

		private static string Level61(string message, string message2)
		{
			string text = message + message2;
			if (text.Contains("A R M B O Y"))
			{
				return LanguageManager.CurrentLanguage.act2.act2_heresyFirst_armboy;
			}
			return "Unknown 6-1 string";
		}

		private static string Level62()
		{
			return "Unknown 6-2 string";
		}

		public static string GetMessage(string message, string message2, string input)
		{
			string currentSceneName = CommonFunctions.GetCurrentSceneName();
			string text = message + message2;
			if (text.Contains("opens"))
			{
				return LanguageManager.CurrentLanguage.act2.act2_greed_secretDoor;
			}
			if (text.Contains("YOU'RE"))
			{
				return LanguageManager.CurrentLanguage.act2.act2_secretNotReady;
			}
			return currentSceneName switch
			{
				"Level 4-1" => Level41(), 
				"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(), 
				"Level 5-S" => Level5Secret(message), 
				"Level 6-1" => Level61(message, message2), 
				"Level 6-2" => Level62(), 
				_ => "Unimplemented Act 2 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");
			TextMeshProUGUI textMeshProUGUI = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild, "Text"));
			((TMP_Text)textMeshProUGUI).text = LanguageManager.CurrentLanguage.misc.hellmap_violence;
			TextMeshProUGUI textMeshProUGUI2 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild, "Text (1)"));
			((TMP_Text)textMeshProUGUI2).text = LanguageManager.CurrentLanguage.misc.hellmap_fraud;
			TextMeshProUGUI textMeshProUGUI3 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild, "Text (2)"));
			((TMP_Text)textMeshProUGUI3).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);
		}
	}
	public static class Act3Strings
	{
		public static string Level71()
		{
			return "Unknown 7-1 string";
		}

		public static string Level72()
		{
			return "Unknown 7-2 string";
		}

		public static string Level73()
		{
			return "Unknown 7-3 string";
		}

		public static string Level74()
		{
			return "Unknown 7-4 string";
		}

		public static string Level7Secret()
		{
			return "Unknown 7-S string";
		}

		public static string Level81()
		{
			return "Unknown 8-1 string";
		}

		public static string Level82()
		{
			return "Unknown 8-2 string";
		}

		public static string Level83()
		{
			return "Unknown 8-3 string";
		}

		public static string Level84()
		{
			return "Unknown 8-4 string";
		}

		public static string Level8Secret()
		{
			return "Unknown 8-S string";
		}

		public static string Level91()
		{
			return "Unknown 9-1 string";
		}

		public static string Level92()
		{
			return "Unknown 9-2 string";
		}

		public static string GetMessage(string message, string message2, string input)
		{
			string currentSceneName = CommonFunctions.GetCurrentSceneName();
			string text = message + message2;
			return currentSceneName switch
			{
				"Level 7-1" => Level71(), 
				"Level 7-2" => Level72(), 
				"Level 7-3" => Level73(), 
				"Level 7-4" => Level74(), 
				"Level 7-S" => Level7Secret(), 
				"Level 8-1" => Level81(), 
				"Level 8-2" => Level82(), 
				"Level 8-3" => Level83(), 
				"Level 8-4" => Level84(), 
				"Level 8-S" => Level8Secret(), 
				"Level 9-1" => Level91(), 
				"Level 9-2" => Level92(), 
				_ => "Unimplemented Act 3 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", 
			};
		}
	}
	public static class Books
	{
		public static string GetBookText(string originalText)
		{
			switch (CommonFunctions.GetCurrentSceneName())
			{
			case "CreditsMuseum2":
				return DevMuseum.GetMuseumBook(originalText);
			case "Level 1-4":
				return "<b>" + LanguageManager.CurrentLanguage.books.books_limboFourth1 + "</b>\n\n<i>" + LanguageManager.CurrentLanguage.books.books_limboFourth2 + "\n\n" + LanguageManager.CurrentLanguage.books.books_limboFourth3 + "\n\n" + LanguageManager.CurrentLanguage.books.books_limboFourth4 + "</i>\n\n<b>" + LanguageManager.CurrentLanguage.books.books_limboFourth5 + "</b>";
			case "Level 2-2":
				return "<b>" + LanguageManager.CurrentLanguage.books.books_lustSecond1 + "</b>\n\n<i>" + LanguageManager.CurrentLanguage.books.books_lustSecond2 + "\n\n" + LanguageManager.CurrentLanguage.books.books_lustSecond3 + "\n\n" + LanguageManager.CurrentLanguage.books.books_lustSecond4 + "</i>\n\n<b>" + LanguageManager.CurrentLanguage.books.books_lustSecond5 + "</b>";
			case "Level 4-2":
				return "<b>" + LanguageManager.CurrentLanguage.books.books_greedSecond1 + "</b>\n\n<i>" + 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 + "</i>\n\n<b>" + LanguageManager.CurrentLanguage.books.books_greedSecond6 + "</b>\n";
			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 + "\n\n";
			case "Level 5-2":
				return "<b>" + LanguageManager.CurrentLanguage.books.books_wrathSecond1 + "</b>\n\n<b>" + LanguageManager.CurrentLanguage.books.books_wrathSecond2 + "</b>\n\n" + LanguageManager.CurrentLanguage.books.books_wrathSecond3 + "\n\n" + LanguageManager.CurrentLanguage.books.books_wrathSecond4 + "\n\n" + LanguageManager.CurrentLanguage.books.books_wrathSecond5 + "\n\n<i>" + LanguageManager.CurrentLanguage.books.books_wrathSecond6 + "</i>\n\n" + LanguageManager.CurrentLanguage.books.books_wrathSecond7 + "\n\n" + LanguageManager.CurrentLanguage.books.books_wrathSecond8 + "\n\n<b>" + LanguageManager.CurrentLanguage.books.books_wrathSecond9 + "</b>";
			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 + " " + LanguageManager.CurrentLanguage.fishing.fish_book8 + "\n\n<size=47>" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "</size>\n<size=45>" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "</size>\n<size=43>" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "</size>\n<size=41>" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "</size>\n<size=39>" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "</size>\n<size=37>" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "</size>\n<size=35>" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "</size>\n<size=33>" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "</size>\n<size=31>" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "</size>\n<size=29>" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "</size>\n<size=27>" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "</size>\n<size=25>" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "</size>\n<size=23>" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "</size>\n<size=21>" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "</size>\n<size=19>" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "</size>\n<size=17>" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "</size>\n<size=15>" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "</size>\n<size=13>" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "</size>\n<size=11>" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "</size>\n<size=9>" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "</size>\n<size=7>" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "</size>\n<size=5>" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "</size>\n<size=3>" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "</size>\n<size=1>" + LanguageManager.CurrentLanguage.fishing.fish_book9 + "</size>\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 + "\n\n\n";
			default:
				return "Unknown book";
			}
		}
	}
	public static class BossStrings
	{
		public static string GetBossName(string originalBossName)
		{
			Logging.Warn(originalBossName);
			return EnemyBios.GetName(originalBossName.ToUpper());
		}
	}
	public static class Cheats
	{
		public static void PatchCheatConsentPanel(ref GameObject canvasObj)
		{
			//IL_0136: Unknown result type (might be due to invalid IL or missing references)
			//IL_013d: Expected O, but got Unknown
			GameObject gameObjectChild = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(canvasObj, "Cheat Menu"), "Cheats Consent"), "Panel");
			GameObject gameObjectChild2 = CommonFunctions.GetGameObjectChild(gameObjectChild, "Text");
			TextMeshProUGUI textMeshProUGUI = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild, "Text"));
			((TMP_Text)textMeshProUGUI).text = LanguageManager.CurrentLanguage.cheats.cheats_disclaimer1 + "\n\n" + LanguageManager.CurrentLanguage.cheats.cheats_disclaimer2;
			TextMeshProUGUI textMeshProUGUI2 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "Yes"), "Text"));
			((TMP_Text)textMeshProUGUI2).text = LanguageManager.CurrentLanguage.cheats.cheats_disclaimerYes;
			((TMP_Text)textMeshProUGUI2).fontSize = 22f;
			TextMeshProUGUI textMeshProUGUI3 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(gameObjectChild, "No"), "Text"));
			((TMP_Text)textMeshProUGUI3).text = LanguageManager.CurrentLanguage.cheats.cheats_disclaimerNo;
			GameObject gameObjectChild3 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(canvasObj, "Cheat Menu"), "Cheats Manager");
			TextMeshProUGUI textMeshProUGUI4 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild3, "Title"));
			((TMP_Text)textMeshProUGUI4).text = LanguageManager.CurrentLanguage.cheats.cheats_panelTitle;
			Component[] components = gameObjectChild2.GetComponents(typeof(Component));
			Behaviour val = (Behaviour)components[3];
			val.enabled = false;
			GameObject gameObjectChild4 = CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(canvasObj, "Cheat Menu"), "Cheats Overlay"), "Cheats Enabled");
			TextMeshProUGUI textMeshProUGUI5 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(gameObjectChild4, "Title"));
			((TMP_Text)textMeshProUGUI5).text = LanguageManager.CurrentLanguage.cheats.cheats_cheatsEnabled;
			TextMeshProUGUI textMeshProUGUI6 = CommonFunctions.GetTextMeshProUGUI(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(CommonFunctions.GetGameObjectChild(canvasObj, "Cheat Menu"), "Cheats Teleport"), "Title"));
			((TMP_Text)textMeshProUGUI6).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, 
					"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.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.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, 
					_ => cheatIdentifier, 
				};
			}
			catch (Exception e)
			{
				CommonFunctions.HandleError(e, cheatIdentifier);
				return "";
			}
		}
	}
	public static class CommonFunctions
	{
		public static ColorBlock UkButtonColors;

		public static string PreviousHudMessage;

		public static bool isUsingEnglish()
		{
			return LanguageManager.CurrentLanguage.metadata.langDisplayName == "English";
		}

		public static IEnumerator WaitforSeconds(float seconds)
		{
			yield return (object)new WaitForSeconds(seconds);
		}

		public static void HandleError(Exception e, string missingID = "")
		{
			Logging.Error(e.ToString());
		}

		public static GameObject GetInactiveRootObject(string objectName)
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			List<GameObject> list = new List<GameObject>();
			Scene activeScene = SceneManager.GetActiveScene();
			((Scene)(ref activeScene)).GetRootGameObjects(list);
			foreach (GameObject item in list)
			{
				if (((Object)item).name == objectName)
				{
					return item;
				}
			}
			return null;
		}

		public static string GetCurrentSceneName()
		{
			return SceneHelper.CurrentScene;
		}

		public static GameObject CreateButton(string buttonText = "Text", string buttonName = "Button")
		{
			//IL_0003: 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_0040: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d0: Expected O, but got Unknown
			//IL_0104: Unknown result type (might be due to invalid IL or missing references)
			//IL_011f: Unknown result type (might be due to invalid IL or missing references)
			//IL_013a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0170: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_021b: 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<RectTransform>();
			val2.AddComponent<CanvasRenderer>();
			val2.AddComponent<Image>();
			val2.AddComponent<Button>();
			val2.GetComponent<RectTransform>().sizeDelta = new Vector2(200f, 50f);
			val2.GetComponent<RectTransform>().anchorMax = new Vector2(1f, 1f);
			val2.GetComponent<RectTransform>().anchorMin = new Vector2(0f, 0f);
			val2.GetComponent<Image>().type = (Type)1;
			((Selectable)val2.GetComponent<Button>()).targetGraphic = (Graphic)(object)val2.GetComponent<Image>();
			GameObject val3 = CreateText();
			((Selectable)val2.GetComponent<Button>()).colors = colors;
			((Object)val3).name = "Text";
			((Transform)val3.GetComponent<RectTransform>()).SetParent((Transform)(object)val2.GetComponent<RectTransform>());
			val3.GetComponent<RectTransform>().anchorMax = new Vector2(1f, 1f);
			val3.GetComponent<RectTransform>().anchorMin = new Vector2(0f, 0f);
			val3.GetComponent<RectTransform>().sizeDelta = Vector2.zero;
			val3.GetComponent<Text>().text = buttonText;
			val3.GetComponent<Text>().font = Core.VcrFont;
			val3.GetComponent<Text>().fontSize = 32;
			val3.GetComponent<Text>().alignment = (TextAnchor)4;
			((Graphic)val3.GetComponent<Text>()).color = Color.white;
			return val2;
		}

		public static GameObject CreateText()
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0031: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0067: 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)
			GameObject val = new GameObject();
			((Object)val).name = "Text";
			val.AddComponent<RectTransform>();
			val.AddComponent<CanvasRenderer>();
			val.GetComponent<RectTransform>().sizeDelta = new Vector2(200f, 50f);
			val.GetComponent<RectTransform>().anchorMax = new Vector2(1f, 1f);
			val.GetComponent<RectTransform>().anchorMin = new Vector2(0f, 0f);
			val.AddComponent<Text>();
			val.GetComponent<Text>().text = "Text";
			val.GetComponent<Text>().font = Core.VcrFont;
			val.GetComponent<Text>().fontSize = 32;
			val.GetComponent<Text>().alignment = (TextAnchor)4;
			((Graphic)val.GetComponent<Text>()).color = Color.black;
			return val;
		}

		public static void PatchResultsScreen(string name, string challenge)
		{
			GameObject parentObject = GameObject.Find("Player");
			GameObject gameObjectChild = GetGameObjectChild(GetGameObjectChild(GetGameObjectChild(GetGameObjectChild(GetGameObjectChild(parentObject, "Main Camera"), "HUD Camera"), "HUD"), "FinishCanvas"), "Panel");
			GameObject gameObjectChild2 = GetGameObjectChild(gameObjectChild, "Title");
			TextMeshProUGUI textMeshProUGUI = GetTextMeshProUGUI(GetGameObjectChild(gameObjectChild2, "Text"));
			((TMP_Text)textMeshProUGUI).text = name;
			LevelNameFinder component = ((Component)textMeshProUGUI).GetComponent<LevelNameFinder>();
			if ((Object)(object)component != (Object)null)
			{
				((Behaviour)component).enabled = false;
			}
			GameObject gameObjectChild3 = GetGameObjectChild(gameObjectChild, "ff");
			TextMeshProUGUI textMeshProUGUI2 = GetTextMeshProUGUI(GetGameObjectChild(gameObjectChild3, "Text"));
			((TMP_Text)textMeshProUGUI2).text = LanguageManager.CurrentLanguage.misc.stats_time;
			GameObject gameObjectChild4 = GetGameObjectChild(gameObjectChild, "Kills - Info");
			TextMeshProUGUI textMeshProUGUI3 = GetTextMeshProUGUI(GetGameObjectChild(gameObjectChild4, "Text"));
			((TMP_Text)textMeshProUGUI3).text = LanguageManager.CurrentLanguage.misc.stats_kills;
			GameObject gameObjectChild5 = GetGameObjectChild(gameObjectChild, "Style - Info");
			TextMeshProUGUI textMeshProUGUI4 = GetTextMeshProUGUI(GetGameObjectChild(gameObjectChild5, "Text"));
			((TMP_Text)textMeshProUGUI4).text = LanguageManager.CurrentLanguage.misc.stats_style;
			GameObject gameObjectChild6 = GetGameObjectChild(gameObjectChild, "Secrets -  Title");
			TextMeshProUGUI textMeshProUGUI5 = GetTextMeshProUGUI(GetGameObjectChild(gameObjectChild6, "Text"));
			((TMP_Text)textMeshProUGUI5).text = LanguageManager.CurrentLanguage.misc.stats_secrets;
			GameObject gameObjectChild7 = GetGameObjectChild(gameObjectChild, "Challenge - Title");
			TextMeshProUGUI textMeshProUGUI6 = GetTextMeshProUGUI(GetGameObjectChild(gameObjectChild7, "Text"));
			((TMP_Text)textMeshProUGUI6).text = LanguageManager.CurrentLanguage.misc.stats_challenge;
			GameObject gameObjectChild8 = GetGameObjectChild(gameObjectChild, "Challenge");
			TextMeshProUGUI textMeshProUGUI7 = GetTextMeshProUGUI(GetGameObjectChild(gameObjectChild8, "ChallengeText"));
			((TMP_Text)textMeshProUGUI7).text = challenge;
			TextMeshProUGUI textMeshProUGUI8 = GetTextMeshProUGUI(GetGameObjectChild(GetGameObjectChild(gameObjectChild, "Total Points"), "Text (1)"));
			((TMP_Text)textMeshProUGUI8).text = LanguageManager.CurrentLanguage.cyberGrind.cybergrind_total + ":";
		}

		public static GameObject GetGameObjectChild(GameObject parentObject, string childToFind)
		{
			return ((Component)parentObject.transform.Find(childToFind)).gameObject;
		}

		public static Text GetTextfromGameObject(GameObject objectToUse)
		{
			return objectToUse.GetComponent<Text>();
		}

		public static TextMeshProUGUI GetTextMeshProUGUI(GameObject objectToUse)
		{
			return objectToUse.GetComponent<TextMeshProUGUI>();
		}

		public static IEnumerable<CodeInstruction> IL(params (OpCode, object)[] instructions)
		{
			return ((IEnumerable<(OpCode, object)>)instructions).Select((Func<(OpCode, object), CodeInstruction>)(((OpCode, object) i) => new CodeInstruction(i.Item1, i.Item2))).ToList();
		}

		public static GameObject GetObject(string path)
		{
			//IL_0050: Unknown result type (might be due to invalid IL or missing references)
			//IL_0055: Unknown result type (might be due to invalid IL or missing references)
			string text = null;
			string rootPath;
			if (!Enumerable.Contains(path, '/'))
			{
				rootPath = path;
			}
			else
			{
				string[] array = path.Split(new char[1] { '/' }, 2);
				rootPath = array[0];
				text = array[1];
			}
			List<GameObject> list = new List<GameObject>();
			GameObject val = null;
			Scene activeScene = SceneManager.GetActiveScene();
			((Scene)(ref activeScene)).GetRootGameObjects(list);
			foreach (GameObject item in list.Where((GameObject child) => ((Object)child).name == rootPath))
			{
				val = item;
			}
			if ((Object)(object)val == (Object)null)
			{
				return null;
			}
			return (text == null) ? val : ((Component)val.transform.Find(text)).gameObject;
		}

		static CommonFunctions()
		{
			//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_003f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			//IL_0081: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a2: 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_00c8: Unknown result type (might be due to invalid IL or missing references)
			ColorBlock ukButtonColors = default(ColorBlock);
			((ColorBlock)(ref ukButtonColors)).normalColor = new Color(0f, 0f, 0f, 0.512f);
			((ColorBlock)(ref ukButtonColors)).highlightedColor = new Color(1f, 1f, 1f, 0.502f);
			((ColorBlock)(ref ukButtonColors)).pressedColor = new Color(1f, 0f, 0f, 1f);
			((ColorBlock)(ref ukButtonColors)).selectedColor = new Color(0f, 0f, 0f, 0.512f);
			((ColorBlock)(ref ukButtonColors)).disabledColor = new Color(0.7843f, 0.7843f, 0.7843f, 0.502f);
			((ColorBlock)(ref ukButtonColors)).colorMultiplier = 1f;
			((ColorBlock)(ref ukButtonColors)).fadeDuration = 0.1f;
			UkButtonColors = ukButtonColors;
		}
	}
	public static class Core
	{
		public static Font VcrFont;

		public static GameObject ultrakullLogo;

		public static bool updateAvailable;

		public static bool updateFailed;

		public static bool GlobalFontReady;

		public static bool TMPFontReady;

		public static Font GlobalFont;

		public static Font MuseumFont;

		public static TMP_FontAsset GlobalFontTMP;

		public static TMP_FontAsset MuseumFontTMP;

		public static bool wasLanguageReset = false;

		private static readonly HttpClient Client = new HttpClient();

		public static void PatchFrontEnd(GameObject frontEnd)
		{
			MainMenu.Patch(frontEnd);
			Options options = new Options(ref frontEnd);
		}

		public static async Task CheckForUpdates()
		{
			string updateUrl = "https://api.github.com/repos/clearwateruk/ultrakull/releases/latest";
			Client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
			Client.DefaultRequestHeaders.UserAgent.TryParseAdd("request");
			Client.Timeout = TimeSpan.FromSeconds(5.0);
			try
			{
				UpdateInfo responseJson = JsonConvert.DeserializeObject<UpdateInfo>(await Client.GetStringAsync(updateUrl));
				Logging.Message("Latest version on GitHub: " + responseJson.tag_name.Substring(1));
				Logging.Message("Current local version: " + MainPatch.GetVersion());