using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Cryptography; using System.Security.Permissions; using System.Text; using System.Text.RegularExpressions; using BepInEx; using BepInEx.Logging; using HarmonyLib; using Microsoft.CodeAnalysis; using TMPro; using UnityEngine; using UnityEngine.Events; using UnityEngine.SceneManagement; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyCompany("ATOKoreanMod")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyDescription("ATOKoreanMod")] [assembly: AssemblyFileVersion("2026.5.16.0")] [assembly: AssemblyInformationalVersion("2026.5.16+8bb2f613cccac8a4532e1703d958afe8b2b4f507")] [assembly: AssemblyProduct("ATOKoreanMod")] [assembly: AssemblyTitle("ATOKoreanMod")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("2026.5.16.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace ATOKoreanMod { [BepInPlugin("ATOKoreanMod", "ATOKoreanMod", "2026.5.16")] public class Plugin : BaseUnityPlugin { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static UnityAction <>9__18_0; public static UnityAction <>9__21_0; public static UnityAction <>9__21_1; public static UnityAction <>9__23_0; internal void b__18_0() { Application.OpenURL("https://discord.gg/PJGBvtHsvr"); } internal void b__21_0() { Application.OpenURL("https://discord.gg/PJGBvtHsvr"); } internal void b__21_1() { Application.OpenURL("https://gall.dcinside.com/mgallery/board/lists/?id=acrosstheobelisk"); } internal void b__23_0(int value) { if ((Object)(object)GameManager.Instance == (Object)null || !GameManager.Instance.PrefsLoaded) { return; } string text = (IsKoreanSelected() ? "ko" : ""); if (!(text == selectedLanguage)) { selectedLanguage = text; TextStrings = new Dictionary>(StringComparer.OrdinalIgnoreCase); TextKeynotes = new Dictionary>(StringComparer.OrdinalIgnoreCase); if (selectedLanguage != "") { TextStrings[selectedLanguage] = new Dictionary(); TextKeynotes[selectedLanguage] = new Dictionary(); } if ((Object)(object)AlertManager.Instance != (Object)null) { AlertManager.Instance.AlertConfirm(Texts.Instance.GetText("selectLanguageChanged", ""), ""); } } } } internal static ManualLogSource Log = null; private static readonly string PluginDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); private static Dictionary> TextStrings; private static Dictionary> TextKeynotes; private static string selectedLanguage = ""; private static bool listenerRegistered = false; private static List tips = new List(); private static TMP_FontAsset alternativeFont = null; private static string translationsDir = ""; private static string _versionLabel = ""; private static readonly byte[] _mk = new byte[6] { 79, 98, 101, 108, 105, 115 }; private static readonly byte[] _b0 = new byte[32] { 254, 251, 230, 130, 223, 87, 206, 68, 113, 62, 84, 7, 145, 214, 34, 183, 184, 226, 135, 16, 143, 122, 106, 163, 57, 43, 176, 247, 242, 120, 185, 36 }; private static readonly byte[] _b1 = new byte[32] { 214, 123, 200, 47, 136, 134, 1, 188, 33, 140, 115, 168, 193, 73, 75, 152, 26, 45, 69, 54, 31, 36, 1, 213, 10, 69, 172, 108, 10, 228, 108, 156 }; private static readonly byte[] _b2 = new byte[32] { 254, 251, 230, 130, 223, 87, 206, 68, 113, 62, 84, 7, 145, 214, 34, 183, 184, 226, 135, 16, 143, 122, 106, 163, 57, 43, 176, 247, 242, 120, 185, 36 }; private const string KoreanDiscordUrl = "https://discord.gg/PJGBvtHsvr"; private const string DCInsideUrl = "https://gall.dcinside.com/mgallery/board/lists/?id=acrosstheobelisk"; private static bool _modVersionCreated = false; private static bool _discordButtonPatched = false; private void Awake() { Log = ((BaseUnityPlugin)this).Logger; Harmony.CreateAndPatchAll(typeof(Plugin), (string)null); SceneManager.sceneLoaded += OnSceneLoaded; } private static void OnSceneLoaded(Scene scene, LoadSceneMode mode) { if (((Scene)(ref scene)).name == "MainMenu") { _modVersionCreated = false; _discordButtonPatched = false; } else if (((Scene)(ref scene)).name == "Lobby" && selectedLanguage != "") { PatchLobbyDiscordButton(); } } private static void PatchLobbyDiscordButton() { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Expected O, but got Unknown //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Expected O, but got Unknown //IL_00f4: Unknown result type (might be due to invalid IL or missing references) Button val = null; Button[] array = Resources.FindObjectsOfTypeAll