Decompiled source of InfernoRU v1.0.8

InfernoTranslationMod.dll

Decompiled 8 months ago
using 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);
		}
	}
}