Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of InfernoRU v1.0.8
InfernoTranslationMod.dll
Decompiled 2 years agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Logging; using Inferno; using Microsoft.CodeAnalysis; using On.RoR2; using R2API; using RoR2; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName = ".NET Standard 2.0")] [assembly: AssemblyCompany("InfernoTranslationMod")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("InfernoTranslationMod")] [assembly: AssemblyTitle("InfernoTranslationMod")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.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.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace InfernoTranslationMod { [BepInPlugin("Lecarde17.InfernoRU", "InfernoRU", "1.0.8")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Main : BaseUnityPlugin { [CompilerGenerated] private static class <>O { public static hook_GetLocalizedStringByToken <0>__Language_GetLocalizedStringByToken; } public const string PluginGUID = "Lecarde17.InfernoRU"; public static ManualLogSource modLogger; public const string PluginAuthor = "Lecarde17"; public const string PluginName = "InfernoRU"; public const string PluginVersion = "1.0.8"; public void Awake() { //IL_0514: Unknown result type (might be due to invalid IL or missing references) //IL_0519: Unknown result type (might be due to invalid IL or missing references) //IL_051f: Expected O, but got Unknown modLogger = ((BaseUnityPlugin)this).Logger; LanguageAPI.Add("INFERNO_NAME", "Геенна", "RU"); LanguageAPI.Add("INFERNO_DESCRIPTION", "Только для опытных игроков. Каждый шаг требует сосредоточенности и сноровки. Вы будете уничтожены.<style=cStack>\n\n>Регенерация здоровья игрока: <style=cDeath>-40%</style> \n" + ((Main.Scaling.Value <= 0f) ? ">Сложность: <style=cDeath>0%</style>\n" : ((Main.Scaling.Value == 100f) ? "" : ((object)((Main.Scaling.Value < 100f) ? (">Сложность: <style=cIsHealing>" + (Main.Scaling.Value - 100f) + "% + Бесконечно</style>\n") : (">Сложность: <style=cDeath>+" + (Main.Scaling.Value - 100f) + "% + Бесконечно</style>\n"), "RU"))))?.ToString() + ((Main.LevelAttackSpeed.Value > 0f || Main.LevelMoveSpeed.Value > 0f || Main.LevelRegen.Value > 0f) ? ">Характеристики врагов: <style=cDeath>Постоянно растут</style>\n" : "", "RU").ToString() + ((Main.ProjectileSpeed.Value > 1f) ? (">Скорость вражеских снарядов: <style=cDeath>+" + (Main.ProjectileSpeed.Value - 1f) * 100f + "%</style>\n") : "", "RU").ToString() + (Main.EnableCDirector.Value ? ">Постановщик сражений: <style=cDeath>Хитрый и находчивый</style>\n" : "", "RU").ToString() + ((Main.LevelDiffBoost.Value > 0f) ? ">Начальная сложность: <style=cDeath>Увеличенная</style>\n" : "", "RU").ToString() + ((Main.EnableSkills.Value || Main.EnableStats.Value) ? ">Способности врагов: <style=cDeath>Улучшенные</style>\n" : "", "RU").ToString() + (Main.EnableAI.Value ? (">Вражеский ИИ: <style=cDeath>Обновлённый" + ((Main.AIScaling.Value > 0f) ? " + Развивающийся</style>\n" : "</style>\n")) : "", "RU").ToString() + (((float)Main.MonsterLimit.Value == 40f) ? "" : (((float)Main.MonsterLimit.Value < 40f) ? (">Предел количества врагов: <style=cIsHealing>" + ((float)Main.MonsterLimit.Value - 40f) / 40f * 100f + "%</style>") : (">Предел количества врагов: <style=cDeath>+" + ((float)Main.MonsterLimit.Value - 40f) / 40f * 100f + "%</style>\n")), "RU").ToString() + ((Main.AllyPermanentDamage.Value > 0f) ? ">Союзники получают <style=cDeath>неизгладимый урон</style>\n" : "") + "</style>", "RU"); LanguageAPI.Add("ACHIEVEMENT_COMMANDOCLEARGAMEINFERNO_NAME", "Коммандо: <style=cDeath>выживание</style>", "RU"); LanguageAPI.Add("ACHIEVEMENT_COMMANDOCLEARGAMEINFERNO_DESCRIPTION", "Играя за Коммандо, пройдите игру или уничтожьтесь на уровне сложности <style=cDeath>«Геенна»</style>.", "RU"); LanguageAPI.Add("ACHIEVEMENT_BANDIT2CLEARGAMEINFERNO_NAME", "Бандит: <style=cDeath>выживание</style>", "RU"); LanguageAPI.Add("ACHIEVEMENT_BANDIT2CLEARGAMEINFERNO_DESCRIPTION", "Играя за Бандита, пройдите игру или уничтожьтесь на уровне сложности <style=cDeath>«Геенна»</style>.", "RU"); LanguageAPI.Add("ACHIEVEMENT_CAPTAINCLEARGAMEINFERNO_NAME", "Капитан: <style=cDeath>выживание</style>", "RU"); LanguageAPI.Add("ACHIEVEMENT_CAPTAINCLEARGAMEINFERNO_DESCRIPTION", "Играя за Капитана, пройдите игру или уничтожьтесь на уровне сложности <style=cDeath>«Геенна»</style>.", "RU"); LanguageAPI.Add("ACHIEVEMENT_ARTIFICERCLEARGAMEINFERNO_NAME", "Изобретатель: <style=cDeath>выживание</style>", "RU"); LanguageAPI.Add("ACHIEVEMENT_ARTIFICERCLEARGAMEINFERNO_DESCRIPTION", "Играя за Изобретателя, пройдите игру или уничтожьтесь на уровне сложности <style=cDeath>«Геенна»</style>.", "RU"); LanguageAPI.Add("ACHIEVEMENT_MERCENARYCLEARGAMEINFERNO_NAME", "Наёмник: <style=cDeath>выживание</style>", "RU"); LanguageAPI.Add("ACHIEVEMENT_MERCENARYCLEARGAMEINFERNO_DESCRIPTION", "Играя за Наёмника, пройдите игру или уничтожьтесь на уровне сложности <style=cDeath>«Геенна»</style>.", "RU"); LanguageAPI.Add("ACHIEVEMENT_RAILGUNNERCLEARGAMEINFERNO_NAME", "Рельсотронщица: <style=cDeath>выживание</style>", "RU"); LanguageAPI.Add("ACHIEVEMENT_RAILGUNNERCLEARGAMEINFERNO_DESCRIPTION", "Играя за Рельсотронщицу, пройдите игру или уничтожьтесь на уровне сложности <style=cDeath>«Геенна»</style>.", "RU"); LanguageAPI.Add("DOTFLARE_SKIN_BCAPTAIN_NAME", "<style=cDeath>Еинеледжов</style>", "RU"); LanguageAPI.Add("DOTFLARE_SKIN_CARTI_NAME", "<style=cDeath>Кристаллический</style>", "RU"); LanguageAPI.Add("DOTFLARE_SKIN_DBANDIT_NAME", "<style=cDeath>Дэдшот</style>", "RU"); LanguageAPI.Add("DOTFLARE_SKIN_HMERC_NAME", "<style=cDeath>Безголовый</style>", "RU"); LanguageAPI.Add("DOTFLARE_SKIN_MMANDO_NAME", "<style=cDeath>Заросший</style>", "RU"); LanguageAPI.Add("DOTFLARE_SKIN_PGUNNER_NAME", "<style=cDeath>Погребённая</style>", "RU"); object obj = <>O.<0>__Language_GetLocalizedStringByToken; if (obj == null) { hook_GetLocalizedStringByToken val = Language_GetLocalizedStringByToken; <>O.<0>__Language_GetLocalizedStringByToken = val; obj = (object)val; } Language.GetLocalizedStringByToken += (hook_GetLocalizedStringByToken)obj; } private static string Language_GetLocalizedStringByToken(orig_GetLocalizedStringByToken orig, Language self, string token) { if (self.name == "RU" || self.name == "ru") { if (token == "INFERNO_DESCRIPTION") { return "Только для опытных игроков. Каждый шаг требует сосредоточенности и сноровки. Вы будете уничтожены.<style=cStack>\n\n>Регенерация здоровья игрока: <style=cDeath>-40%</style> \n" + ((Main.Scaling.Value <= 0f) ? ">Сложность: <style=cDeath>0%</style>\n" : ((Main.Scaling.Value == 100f) ? "" : ((Main.Scaling.Value < 100f) ? (">Сложность: <style=cIsHealing>" + (Main.Scaling.Value - 100f) + "% + Бесконечно</style>\n") : (">Сложность: <style=cDeath>+" + (Main.Scaling.Value - 100f) + "% + Бесконечно</style>\n")))) + ((Main.LevelAttackSpeed.Value > 0f || Main.LevelMoveSpeed.Value > 0f || Main.LevelRegen.Value > 0f) ? ">Характеристики врагов: <style=cDeath>Постоянно растут</style>\n" : "") + ((Main.ProjectileSpeed.Value > 1f) ? (">Скорость вражеских снарядов: <style=cDeath>+" + (Main.ProjectileSpeed.Value - 1f) * 100f + "%</style>\n") : "") + (Main.EnableCDirector.Value ? ">Постановщик сражений: <style=cDeath>Хитрый и находчивый</style>\n" : "") + ((Main.LevelDiffBoost.Value > 0f) ? ">Начальная сложность: <style=cDeath>Увеличенная</style>\n" : "") + ((Main.EnableSkills.Value || Main.EnableStats.Value) ? ">Способности врагов: <style=cDeath>Улучшенные</style>\n" : "") + (Main.EnableAI.Value ? (">Вражеский ИИ: <style=cDeath>Обновлённый" + ((Main.AIScaling.Value > 0f) ? " + Развивающийся</style>\n" : "</style>\n")) : "") + (((float)Main.MonsterLimit.Value == 40f) ? "" : (((float)Main.MonsterLimit.Value < 40f) ? (">Предел количества врагов: <style=cIsHealing>" + ((float)Main.MonsterLimit.Value - 40f) / 40f * 100f + "%</style>") : (">Предел количества врагов: <style=cDeath>+" + ((float)Main.MonsterLimit.Value - 40f) / 40f * 100f + "%</style>\n"))) + ((Main.AllyPermanentDamage.Value > 0f) ? ">Союзники получают <style=cDeath>неизгладимый урон</style>\n" : "") + "</style>"; } if (Main.InfernalEclipse.Value) { switch (token) { case "TITLE_ECLIPSE": return "<style=cDeath>Геенническое Затмение</style>"; case "ECLIPSE_GAMEMODE_NAME": return "<style=cDeath>Геенническое Затмение</style>"; case "TITLE_EXTRAGAMEMODE_DESC": return "Сыграйте в другие режимы игры Risk of Rain 2, например «Призматические испытания» и <style=cDeath>«Геенническое Затмение»</style>."; case "ECLIPSE_GAMEMODE_DESCRIPTION": return "<style=cIsUtility>«Геенническое Затмение»</style>\u00a0— это режим игры, добавляющий складывающиеся модификаторы испытаний к вашей попытке. Каждый раз, когда вы <style=cIsUtility>проходите игру</style>, ваш уровень Гееннического Затмения при игре за данного выжившего <style=cIsUtility>повышается навсегда</style>. Уровень может повышаться до <style=cIsUtility>8</style> раз."; case "ECLIPSE_GAMEMODE_START": return "Start <style=cDeath>Геенническое Затмение</style>"; case "ECLIPSE_1_NAME": return "<style=cDeath>Геенническое Затмение (1)</style>"; case "ECLIPSE_2_NAME": return "<style=cDeath>Геенническое Затмение (2)</style>"; case "ECLIPSE_3_NAME": return "<style=cDeath>Геенническое Затмение (3)</style>"; case "ECLIPSE_4_NAME": return "<style=cDeath>Геенническое Затмение (4)</style>"; case "ECLIPSE_5_NAME": return "<style=cDeath>Геенническое Затмение (5)</style>"; case "ECLIPSE_6_NAME": return "<style=cDeath>Геенническое Затмение (6)</style>"; case "ECLIPSE_7_NAME": return "<style=cDeath>Геенническое Затмение (7)</style>"; case "ECLIPSE_8_NAME": return "<style=cDeath>Геенническое Затмение (8)</style>"; case "ECLIPSE_9_NAME": return "<style=cDeath>Геенническое Затмение (9)</style>"; case "ECLIPSE_10_NAME": return "<style=cDeath>Геенническое Затмение (10)</style>"; case "ECLIPSE_11_NAME": return "<style=cDeath>Геенническое Затмение (11)</style>"; case "ECLIPSE_12_NAME": return "<style=cDeath>Геенническое Затмение (12)</style>"; case "ECLIPSE_13_NAME": return "<style=cDeath>Геенническое Затмение (13)</style>"; case "ECLIPSE_14_NAME": return "<style=cDeath>Геенническое Затмение (14)</style>"; case "ECLIPSE_15_NAME": return "<style=cDeath>Геенническое Затмение (15)</style>"; case "ECLIPSE_16_NAME": return "<style=cDeath>Геенническое Затмение (16)</style>"; } } } return orig.Invoke(self, token); } } }